engenharia de software baseada em componentes
TRANSCRIPT
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ções2-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ínio2-Projeto de Domínio: arquitetura de
software3-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
candidatos2-Adaptação: adaptar ou substituir3-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 JavaTM 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.