ESBC - Engenharia de Software Baseada em Componentes Érika Ishy
Roteiro Motivação Conceitos Básicos Atividades da ESBC Componentes & Objetos Métodos de Desenvolvimento Tecnologias de Desenvolvimento Ferramentas CASE
Motivação Melhorar o processo de desenvolvimento de software Maior produtividade Menor custo Antes, abordagem de desenvolvimento em blocos monolíticos – complexidade alta, de difícil manutenção
Motivação Solução: Reuso/Componentização Quebrar os blocos monolíticos em componentes interoperáveis Reduzir a complexidade Facilitar a manutenção Reutilização de componentes na criação de novas aplicações - redução nos custos e no tempo de desenvolvimento
Motivação A reutilização tem duas abordagens distintas: 1-Reutilização de componentes na montagem de novas aplicações 2-Desenvolvimento de componentes reutilizáveis Necessidade de um modelo de processo para suportar o desenvolvimento e à reutilização de componentes
Conceitos Básicos Subdisciplina da eng. de software Principais objetivos: Desenvolver software a partir de componentes pré-construídos Criar componentes reutilizáveis Manter e customizar facilmente os componentes para que novas funções e características possam ser adicionadas
Conceitos Básicos O que é um componente? Unidade de composição que pode ser desenvolvida independentemente  Função específica Interfaces bem definidas Plug-In Flexível e extensível Blocos previamente testados REUTILIZÁVEL
Conceitos Básicos O que é um componente reutilizável? Qualquer parte de trabalho que possa ser utilizado em mais de um projeto: Código compilado, objetos executáveis Código fonte, classes e métodos Casos de testes Modelos e projetos: frameworks, padrões Interface de usuário Planos, estratégias e regras arquiteturais
Atividades da ESBC ESBC abrange duas atividades paralelas: Engenharia de Domínio (ED) Desenvolvimento Baseado em Componente (DBC)
Atividades da ESBC ED: identificar e organizar o conhecimento dentro de um  domínio particular  para facilitar ao máximo a sua reutilização – criação de componentes Três etapas: 1-Análise de Domínio: modelo de domínio 2-Projeto de Domínio: arquitetura de software 3-Implementação do Domínio: componentes reutilizáveis
Atividades da ESBC DBC: “preencher” a arquitetura definida na ED com componentes novos ou  disponíveis nas bibliotecas de reuso – reutilização de componentes Três Etapas: 1-Qualificação: escolher componentes candidatos 2-Adaptação: adaptar ou substituir 3-Composição: integrar os componentes
Componentes & Objetos ESBC é considerada o passo seguinte à OO Componentes    Objetos, mas conceitualmente são diferentes Componentes são similares às classes Definem um comportamento Criam objetos => instâncias de componentes
Componentes & Objetos
Componentes & Objetos
Componentes & Objetos Define um conjunto de regras que devem ser seguidas pelo componente para tornar as implementações de objeto acessíveis a outras implementações de objeto Coleção de objetos  (implementações+interfaces) dentro de um modelo de componente
Componentes & Objetos Principal diferença: Componentes estão em conformidade com um padrão definido através do modelo de componentes
Componentes & Objetos
Componentes & Objetos
Métodos de Desenvolvimento FODA; FORM; OODE; RESB Catalysis (Wills e D’Souza) Considerado um dos melhores métodos Define modelos para todas as fases de desenvolvimento: especificação, projeto e construção UML Components (Cheesman e Daniels) Baseado nos diagramas da UML Ênfase na especificação de componentes para reutilização
Ferramentas CASE Rational Rose (Rational) Odyssey (COS/UFRJ) – Eng. Domínio MVCase (DC/UFSCar): especificação, projeto e construção de componentes Ferramenta disponível gratuitamente Método Catalysis e Linguagem UML Geração automática de código JAVA Faz deploy da aplicação
Tecnologias de Desenvolvimento CORBA/OMG:  especifica uma arquitetura orientada a objetos para dar suporte a aplicações distribuídas  COM/Microsoft:  construção de softwares baseados em componentes Enterprise JavaBeans/Sun Microsystems: extensão do modelo de componentes JavaBeans para componentes de servidor – ambiente mais robusto
Tecnologias de Desenvolvimento COM e CORBA procuram integrar componentes desenvolvidos em diferentes linguagens de programação Enterprise JavaBeans contempla somente componentes desenvolvidos em Java, simplificando a sua arquitetura - permite maior interoperabilidade e portabilidade entre aplicações Web
Referências Almeida, E. S.; Bianchini, C. P.; Prado, A. F.; Trevekub, L. C. Engenharia de Software Baseada em Componentes.  Developer’s Magazine , jan. 2003. Cheesman, J.; Daniels, J.  UML components  – a simple process for specifying component-based. Addison-Wesley,   2001. p. 37-65. D’Souza, D.; Wills, A.  Objects, components and frameworks with UML  – the catalysis approach.  Addison-Wesley, 1998.  Disponível em: <http://www.trireme.com/catalysis/> Prado, A. F.  Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf>  Acesso em: 04 jun. 2003.
Referências Prado, A. F.; Almeida, E. S.; Lucredio, D.; Bianchini, C. P.; Trevelin, L. C.  Ferramenta MVCase – uma ferramenta integradora de tecnologias para o desenvolvimento de componentes distribuídos. In: Simpósio Brasileiro de Engenharia de Software, 16, 2002, Gramado, RS.  Anais ...  Porto Alegre: Instituto de Informática da UFRGS, 2002. p. 432-437.  Pressman, R. S.  Software engineering : a practitioner’s approach. 5. ed., New York, USA: McGraw Hill, 2001. Thomas, A.  Enterprise JavaBeans technology : server component model for the Java TM  plataform. Patricia Seybold Group, dez. 1998.  Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
Referências WERNER, C. M. L.; MATTOSO, M.; BRAGA, R.; BARROS, M.; MURTA, L.; DANTAS, A.  Odyssey : infra-estrutura de reutilização baseada em modelos de domínio. In: Simpósio Brasileiro de Engenharia de Software, 13., 1999, Florianópolis. Disponível em: <http://www.cos.ufrj.br/~odyssey/> Acesso em: 09 dez. 2002. WERNER, C. M. L; BRAGA, R. M. M .  Desenvolvimento baseado em componente . In: Simpósio Brasileiro de Engenharia de Software, 14., 2000, João Pessoa, PB.  Disponível em:  <http://www.cos.ufrj.br/~odyssey/publicacoes/SBES2000_TutorialDBC_Apresentacao.pdf> Acesso em: 21 out. 2002.

Engenharia de Software Baseada em Componentes

  • 1.
    ESBC - Engenhariade Software Baseada em Componentes Érika Ishy
  • 2.
    Roteiro Motivação ConceitosBásicos Atividades da ESBC Componentes & Objetos Métodos de Desenvolvimento Tecnologias de Desenvolvimento Ferramentas CASE
  • 3.
    Motivação Melhorar oprocesso de desenvolvimento de software Maior produtividade Menor custo Antes, abordagem de desenvolvimento em blocos monolíticos – complexidade alta, de difícil manutenção
  • 4.
    Motivação Solução: Reuso/ComponentizaçãoQuebrar os blocos monolíticos em componentes interoperáveis Reduzir a complexidade Facilitar a manutenção Reutilização de componentes na criação de novas aplicações - redução nos custos e no tempo de desenvolvimento
  • 5.
    Motivação A reutilizaçãotem duas abordagens distintas: 1-Reutilização de componentes na montagem de novas aplicações 2-Desenvolvimento de componentes reutilizáveis Necessidade de um modelo de processo para suportar o desenvolvimento e à reutilização de componentes
  • 6.
    Conceitos Básicos Subdisciplinada eng. de software Principais objetivos: Desenvolver software a partir de componentes pré-construídos Criar componentes reutilizáveis Manter e customizar facilmente os componentes para que novas funções e características possam ser adicionadas
  • 7.
    Conceitos Básicos Oque é um componente? Unidade de composição que pode ser desenvolvida independentemente Função específica Interfaces bem definidas Plug-In Flexível e extensível Blocos previamente testados REUTILIZÁVEL
  • 8.
    Conceitos Básicos Oque é um componente reutilizável? Qualquer parte de trabalho que possa ser utilizado em mais de um projeto: Código compilado, objetos executáveis Código fonte, classes e métodos Casos de testes Modelos e projetos: frameworks, padrões Interface de usuário Planos, estratégias e regras arquiteturais
  • 9.
    Atividades da ESBCESBC abrange duas atividades paralelas: Engenharia de Domínio (ED) Desenvolvimento Baseado em Componente (DBC)
  • 10.
    Atividades da ESBCED: identificar e organizar o conhecimento dentro de um domínio particular para facilitar ao máximo a sua reutilização – criação de componentes Três etapas: 1-Análise de Domínio: modelo de domínio 2-Projeto de Domínio: arquitetura de software 3-Implementação do Domínio: componentes reutilizáveis
  • 11.
    Atividades da ESBCDBC: “preencher” a arquitetura definida na ED com componentes novos ou disponíveis nas bibliotecas de reuso – reutilização de componentes Três Etapas: 1-Qualificação: escolher componentes candidatos 2-Adaptação: adaptar ou substituir 3-Composição: integrar os componentes
  • 12.
    Componentes & ObjetosESBC é considerada o passo seguinte à OO Componentes  Objetos, mas conceitualmente são diferentes Componentes são similares às classes Definem um comportamento Criam objetos => instâncias de componentes
  • 13.
  • 14.
  • 15.
    Componentes & ObjetosDefine um conjunto de regras que devem ser seguidas pelo componente para tornar as implementações de objeto acessíveis a outras implementações de objeto Coleção de objetos (implementações+interfaces) dentro de um modelo de componente
  • 16.
    Componentes & ObjetosPrincipal diferença: Componentes estão em conformidade com um padrão definido através do modelo de componentes
  • 17.
  • 18.
  • 19.
    Métodos de DesenvolvimentoFODA; FORM; OODE; RESB Catalysis (Wills e D’Souza) Considerado um dos melhores métodos Define modelos para todas as fases de desenvolvimento: especificação, projeto e construção UML Components (Cheesman e Daniels) Baseado nos diagramas da UML Ênfase na especificação de componentes para reutilização
  • 20.
    Ferramentas CASE RationalRose (Rational) Odyssey (COS/UFRJ) – Eng. Domínio MVCase (DC/UFSCar): especificação, projeto e construção de componentes Ferramenta disponível gratuitamente Método Catalysis e Linguagem UML Geração automática de código JAVA Faz deploy da aplicação
  • 21.
    Tecnologias de DesenvolvimentoCORBA/OMG: especifica uma arquitetura orientada a objetos para dar suporte a aplicações distribuídas COM/Microsoft: construção de softwares baseados em componentes Enterprise JavaBeans/Sun Microsystems: extensão do modelo de componentes JavaBeans para componentes de servidor – ambiente mais robusto
  • 22.
    Tecnologias de DesenvolvimentoCOM e CORBA procuram integrar componentes desenvolvidos em diferentes linguagens de programação Enterprise JavaBeans contempla somente componentes desenvolvidos em Java, simplificando a sua arquitetura - permite maior interoperabilidade e portabilidade entre aplicações Web
  • 23.
    Referências Almeida, E.S.; Bianchini, C. P.; Prado, A. F.; Trevekub, L. C. Engenharia de Software Baseada em Componentes. Developer’s Magazine , jan. 2003. Cheesman, J.; Daniels, J. UML components – a simple process for specifying component-based. Addison-Wesley, 2001. p. 37-65. D’Souza, D.; Wills, A. Objects, components and frameworks with UML – the catalysis approach. Addison-Wesley, 1998. Disponível em: <http://www.trireme.com/catalysis/> Prado, A. F. Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf> Acesso em: 04 jun. 2003.
  • 24.
    Referências Prado, A.F.; Almeida, E. S.; Lucredio, D.; Bianchini, C. P.; Trevelin, L. C. Ferramenta MVCase – uma ferramenta integradora de tecnologias para o desenvolvimento de componentes distribuídos. In: Simpósio Brasileiro de Engenharia de Software, 16, 2002, Gramado, RS. Anais ... Porto Alegre: Instituto de Informática da UFRGS, 2002. p. 432-437. Pressman, R. S. Software engineering : a practitioner’s approach. 5. ed., New York, USA: McGraw Hill, 2001. Thomas, A. Enterprise JavaBeans technology : server component model for the Java TM plataform. Patricia Seybold Group, dez. 1998. Relatório técnico. Disponível em: <http://www.ejbean.com/documents/downloads/white_paper.pdf> Acesso em: 16 nov. 2002.
  • 25.
    Referências WERNER, C.M. L.; MATTOSO, M.; BRAGA, R.; BARROS, M.; MURTA, L.; DANTAS, A. Odyssey : infra-estrutura de reutilização baseada em modelos de domínio. In: Simpósio Brasileiro de Engenharia de Software, 13., 1999, Florianópolis. Disponível em: <http://www.cos.ufrj.br/~odyssey/> Acesso em: 09 dez. 2002. WERNER, C. M. L; BRAGA, R. M. M . Desenvolvimento baseado em componente . In: Simpósio Brasileiro de Engenharia de Software, 14., 2000, João Pessoa, PB. Disponível em: <http://www.cos.ufrj.br/~odyssey/publicacoes/SBES2000_TutorialDBC_Apresentacao.pdf> Acesso em: 21 out. 2002.