engenharia de software baseada em componentes

25
ESBC - Engenharia de Software Baseada em Componentes Érika Ishy

Upload: elliando-dias

Post on 06-Jun-2015

4.207 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Engenharia de Software Baseada em Componentes

ESBC - Engenharia de Software Baseada em

Componentes

Érika Ishy

Page 2: Engenharia de Software Baseada em Componentes

Roteiro• Motivação• Conceitos Básicos• Atividades da ESBC• Componentes & Objetos• Métodos de Desenvolvimento• Tecnologias de Desenvolvimento• Ferramentas CASE

Page 3: Engenharia de Software Baseada em Componentes

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

Page 4: Engenharia de Software Baseada em Componentes

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

Page 5: Engenharia de Software Baseada em Componentes

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

Page 6: Engenharia de Software Baseada em 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

Page 7: Engenharia de Software Baseada em Componentes

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

Page 8: Engenharia de Software Baseada em Componentes

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

Page 9: Engenharia de Software Baseada em Componentes

Atividades da ESBC• ESBC abrange duas atividades

paralelas:• Engenharia de Domínio (ED)• Desenvolvimento Baseado em

Componente (DBC)

Page 10: Engenharia de Software Baseada em Componentes

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

Page 11: Engenharia de Software Baseada em Componentes

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

Page 12: Engenharia de Software Baseada em 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

Page 13: Engenharia de Software Baseada em Componentes

Componentes & Objetos

Page 14: Engenharia de Software Baseada em Componentes

Componentes & Objetos

Page 15: Engenharia de Software Baseada em Componentes

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

Page 16: Engenharia de Software Baseada em Componentes

Componentes & Objetos• Principal diferença:

Componentes estão em conformidade com um padrão definido através do modelo de

componentes

Page 17: Engenharia de Software Baseada em Componentes

Componentes & Objetos

Page 18: Engenharia de Software Baseada em Componentes

Componentes & Objetos

Page 19: Engenharia de Software Baseada em Componentes

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

Page 20: Engenharia de Software Baseada em Componentes

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

Page 21: Engenharia de Software Baseada em Componentes

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

Page 22: Engenharia de Software Baseada em Componentes

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

Page 23: Engenharia de Software Baseada em Componentes

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.

Page 24: Engenharia de Software Baseada em Componentes

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.

Page 25: Engenharia de Software Baseada em Componentes

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.