Engenharia de Software Baseada em Componentes

5.135 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
5.135
No SlideShare
0
A partir de incorporações
0
Número de incorporações
36
Ações
Compartilhamentos
0
Downloads
204
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Engenharia de Software Baseada em Componentes

  1. 1. ESBC - Engenharia de Software Baseada em Componentes Érika Ishy
  2. 2. Roteiro <ul><li>Motivação </li></ul><ul><li>Conceitos Básicos </li></ul><ul><li>Atividades da ESBC </li></ul><ul><li>Componentes & Objetos </li></ul><ul><li>Métodos de Desenvolvimento </li></ul><ul><li>Tecnologias de Desenvolvimento </li></ul><ul><li>Ferramentas CASE </li></ul>
  3. 3. Motivação <ul><li>Melhorar o processo de desenvolvimento de software </li></ul><ul><ul><li>Maior produtividade </li></ul></ul><ul><ul><li>Menor custo </li></ul></ul><ul><li>Antes, abordagem de desenvolvimento em blocos monolíticos – complexidade alta, de difícil manutenção </li></ul>
  4. 4. Motivação <ul><li>Solução: Reuso/Componentização </li></ul><ul><ul><li>Quebrar os blocos monolíticos em componentes interoperáveis </li></ul></ul><ul><ul><li>Reduzir a complexidade </li></ul></ul><ul><ul><li>Facilitar a manutenção </li></ul></ul><ul><ul><li>Reutilização de componentes na criação de novas aplicações - redução nos custos e no tempo de desenvolvimento </li></ul></ul>
  5. 5. Motivação <ul><li>A reutilização tem duas abordagens distintas: </li></ul><ul><ul><li>1-Reutilização de componentes na montagem de novas aplicações </li></ul></ul><ul><ul><li>2-Desenvolvimento de componentes reutilizáveis </li></ul></ul><ul><li>Necessidade de um modelo de processo para suportar o desenvolvimento e à reutilização de componentes </li></ul>
  6. 6. Conceitos Básicos <ul><li>Subdisciplina da eng. de software </li></ul><ul><li>Principais objetivos: </li></ul><ul><ul><li>Desenvolver software a partir de componentes pré-construídos </li></ul></ul><ul><ul><li>Criar componentes reutilizáveis </li></ul></ul><ul><ul><li>Manter e customizar facilmente os componentes para que novas funções e características possam ser adicionadas </li></ul></ul>
  7. 7. Conceitos Básicos <ul><li>O que é um componente? </li></ul><ul><ul><li>Unidade de composição que pode ser desenvolvida independentemente </li></ul></ul><ul><ul><li>Função específica </li></ul></ul><ul><ul><li>Interfaces bem definidas </li></ul></ul><ul><ul><li>Plug-In </li></ul></ul><ul><ul><li>Flexível e extensível </li></ul></ul><ul><ul><li>Blocos previamente testados </li></ul></ul><ul><ul><li>REUTILIZÁVEL </li></ul></ul>
  8. 8. Conceitos Básicos <ul><li>O que é um componente reutilizável? </li></ul><ul><ul><li>Qualquer parte de trabalho que possa ser utilizado em mais de um projeto: </li></ul></ul><ul><ul><ul><li>Código compilado, objetos executáveis </li></ul></ul></ul><ul><ul><ul><li>Código fonte, classes e métodos </li></ul></ul></ul><ul><ul><ul><li>Casos de testes </li></ul></ul></ul><ul><ul><ul><li>Modelos e projetos: frameworks, padrões </li></ul></ul></ul><ul><ul><ul><li>Interface de usuário </li></ul></ul></ul><ul><ul><ul><li>Planos, estratégias e regras arquiteturais </li></ul></ul></ul>
  9. 9. Atividades da ESBC <ul><li>ESBC abrange duas atividades paralelas: </li></ul><ul><ul><li>Engenharia de Domínio (ED) </li></ul></ul><ul><ul><li>Desenvolvimento Baseado em Componente (DBC) </li></ul></ul>
  10. 10. Atividades da ESBC <ul><li>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 </li></ul><ul><li>Três etapas: </li></ul><ul><ul><li>1-Análise de Domínio: modelo de domínio </li></ul></ul><ul><ul><li>2-Projeto de Domínio: arquitetura de software </li></ul></ul><ul><ul><li>3-Implementação do Domínio: componentes reutilizáveis </li></ul></ul>
  11. 11. Atividades da ESBC <ul><li>DBC: “preencher” a arquitetura definida na ED com componentes novos ou disponíveis nas bibliotecas de reuso – reutilização de componentes </li></ul><ul><li>Três Etapas: </li></ul><ul><ul><li>1-Qualificação: escolher componentes candidatos </li></ul></ul><ul><ul><li>2-Adaptação: adaptar ou substituir </li></ul></ul><ul><ul><li>3-Composição: integrar os componentes </li></ul></ul>
  12. 12. Componentes & Objetos <ul><li>ESBC é considerada o passo seguinte à OO </li></ul><ul><li>Componentes  Objetos, mas conceitualmente são diferentes </li></ul><ul><li>Componentes são similares às classes </li></ul><ul><ul><li>Definem um comportamento </li></ul></ul><ul><ul><li>Criam objetos => instâncias de componentes </li></ul></ul>
  13. 13. Componentes & Objetos
  14. 14. Componentes & Objetos
  15. 15. 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
  16. 16. Componentes & Objetos <ul><li>Principal diferença: </li></ul><ul><li>Componentes estão em conformidade com um padrão definido através do modelo de componentes </li></ul>
  17. 17. Componentes & Objetos
  18. 18. Componentes & Objetos
  19. 19. Métodos de Desenvolvimento <ul><li>FODA; FORM; OODE; RESB </li></ul><ul><li>Catalysis (Wills e D’Souza) </li></ul><ul><ul><li>Considerado um dos melhores métodos </li></ul></ul><ul><ul><li>Define modelos para todas as fases de desenvolvimento: especificação, projeto e construção </li></ul></ul><ul><li>UML Components (Cheesman e Daniels) </li></ul><ul><ul><li>Baseado nos diagramas da UML </li></ul></ul><ul><ul><li>Ênfase na especificação de componentes para reutilização </li></ul></ul>
  20. 20. Ferramentas CASE <ul><li>Rational Rose (Rational) </li></ul><ul><li>Odyssey (COS/UFRJ) – Eng. Domínio </li></ul><ul><li>MVCase (DC/UFSCar): especificação, projeto e construção de componentes </li></ul><ul><ul><li>Ferramenta disponível gratuitamente </li></ul></ul><ul><ul><li>Método Catalysis e Linguagem UML </li></ul></ul><ul><ul><li>Geração automática de código JAVA </li></ul></ul><ul><ul><li>Faz deploy da aplicação </li></ul></ul>
  21. 21. Tecnologias de Desenvolvimento <ul><li>CORBA/OMG: especifica uma arquitetura orientada a objetos para dar suporte a aplicações distribuídas </li></ul><ul><li>COM/Microsoft: construção de softwares baseados em componentes </li></ul><ul><li>Enterprise JavaBeans/Sun Microsystems: extensão do modelo de componentes JavaBeans para componentes de servidor – ambiente mais robusto </li></ul>
  22. 22. Tecnologias de Desenvolvimento <ul><li>COM e CORBA procuram integrar componentes desenvolvidos em diferentes linguagens de programação </li></ul><ul><li>Enterprise JavaBeans contempla somente componentes desenvolvidos em Java, simplificando a sua arquitetura - permite maior interoperabilidade e portabilidade entre aplicações Web </li></ul>
  23. 23. Referências <ul><li>Almeida, E. S.; Bianchini, C. P.; Prado, A. F.; Trevekub, L. C. Engenharia de Software Baseada em Componentes. Developer’s Magazine , jan. 2003. </li></ul><ul><li>Cheesman, J.; Daniels, J. UML components – a simple process for specifying component-based. Addison-Wesley, 2001. p. 37-65. </li></ul><ul><li>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/> </li></ul><ul><li>Prado, A. F. Tecnologias para DBC . Disponível em: <http://www.cos.ufrj.br/~wdbc/2002/download/tecnologias.pdf> Acesso em: 04 jun. 2003. </li></ul>
  24. 24. Referências <ul><li>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. </li></ul><ul><li>Pressman, R. S. Software engineering : a practitioner’s approach. 5. ed., New York, USA: McGraw Hill, 2001. </li></ul><ul><li>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. </li></ul>
  25. 25. Referências <ul><li>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. </li></ul><ul><li>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. </li></ul>

×