Engenharia de Software Baseada em Componentes
Upcoming SlideShare
Loading in...5
×
 

Engenharia de Software Baseada em Componentes

on

  • 5,198 views

 

Statistics

Views

Total Views
5,198
Views on SlideShare
5,165
Embed Views
33

Actions

Likes
2
Downloads
161
Comments
0

1 Embed 33

http://www.slideshare.net 33

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Engenharia de Software Baseada em Componentes Engenharia de Software Baseada em Componentes Presentation 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çõ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.