Title: Uma compara
1Uma comparação de dois métodos de desenvolvimento
de software baseado em componentesCatalysis e
UML Components
- Projeto Final por
- Bernardo Faria de Miranda e
- Diego Delgado Lages
- bmiranda,lages_at_cos.ufrj.br
- Orientação
- Profª Cláudia Maria Lima Werner, D.Sc.
- Prof Marco Aurélio Souza Mangan, M.Sc.
2Roteiro
- Motivação
- Objetivo
- Método de trabalho
- Visão geral de um método de DBC
- Catalysis
- UML Components
- Comparação
- Considerações finais
3Motivação (1)
- Produtividade e qualidade no desenvolvimento de
software - Os métodos tradicionais de desenvolvimento de
software ainda não atendem às expectativas da
indústria Aoyama98 - O desenvolvimento baseado em componentes (DBC)
tem sido apontado como solução para esta crise
Szperski99 Szperski98
4Motivação (2)
- O DBC permite o ganho de qualidade e
produtividade por meio da reutilização de
componentes de software Crnkovic01 - Conceito antigo
- Tecnologias recentes aumentam a possibilidade de
reutilização - EJB, COM, CCM
- Os métodos de DBC ainda permanecem imaturos
Teixeira03 - Falta de exemplos de aplicações de métodos de DBC
na literatura
5Objetivo
- Nosso objetivo é comparar como os métodos atuais
de DBC tratam a identificação e representação dos
componentes que estão sendo criados - Foram selecionados dois métodos
- Catalysis Wills99
- UML Components Cheesman01
6Método de trabalho
- Coleta de bibiografia
- Seleção de exemplos para os estudos de caso
- Vídeo locadora do livro do Catalysis
- Sistema de hotelaria do livro do UML Components
- Modelagem do exemplo
- Estudo de caso da vídeo locadora usando o
Catalysis - Estudo de caso da hotelaria usando o UML
Components - Comparação de modelos
7Visão geral de um método DBC (1)
- Componentes
- Caixa preta
- Princípios OO Cheesman01
- Unificação de dados e métodos
- Encapsulamento
- Identidade
- Interfaces contratualmente especificadas
Szperski99 - Contratos
- Pré-condição, pós-condição e invariantes
- Escritos em OCL ou linguagem natural
- Define tudo que um cliente precisa saber e mais
nada além disso Cheesman01 - Os componentes desconhecem a parte interna de
outros componentes
8Visão geral de um método DBC (2)
- No contexto de uma aplicação baseada em
componentes, o seu desenvolvimento é composto por
dois processos Crnkovic01 - composição de componentes
- Análise de quais componentes podem ser utilizados
para satisfazer os requisitos levantados - Proporcionar um ganho de tempo de projeto
- desenvolvimento de componentes
- Menos atraente, pois requer mais esforço e tempo
de projeto - Por outro lado, oferece a oportunidade de
desenvolver funcionalidades do sistema que vão
ser, provavelmente, as de maior valor para a
empresa - O UML Components não orienta a composição de
componentes - Portanto, o desenvolvimento de componentes é o
objeto de estudo
9Catalysis
- Especificação de requisitos
- Casos de uso
- Glossário
- UI Sketches
- Modelagem de componentes e seus serviços
- Ações e cenários
- Especificação das ações
- Modelos de tipos
- Diagrama de estados
- Colaborações
- Abstrações e Refinamentos
- Frameworks e Padrões
10UML Components
- Especificação de requisitos
- Modelo conceitual
- Casos de uso
- Identificação de componentes
- Componentes de sistema
- Componentes de negócio
- Identificação de serviços
- Colaboração entre componentes
- Especificação de serviços
- OCL, linguagem natural
11Exemplo de modelo (1)
12Exemplo de modelo (2)
13Comparação (1)
- Catalysis
- ? Menos didático
- ? Induz a eliminação de inconsistências ao longo
da modelagem - ? Existem padrões que guiam o desenvolvedor na
implementação - ? Oferece técnicas que podem ser utilizadas fora
de DBC - ? Aborda todas as camadas do sistema (cliente e
servidor) - UML Components
- ? Bastante didático
- ? Supõe análise completa
- ? Não orienta a implementação, apenas a modelagem
- ? Apenas os componentes do lado do servidor
14Comparação (2)
Catalysis UML Components
Análise de Requisitos Casos de uso, rascunho de interface, glossário e ações. Modelo conceitual e casos de uso.
Identificação de componentes Não existe método sistemático. Sugere o uso de colaborações Tem método sistemático.
Identificação de serviços Emergem da colaboração entre os tipos de um componente. Examinando as interfaces, usando a arquitetura de componentes.
Representação de componentes Sugere muitas extensões da UML. Poucas extensões.
15Considerações Finais (1)
- Contribuições
- Identificar pontos forte e fracos dos métodos
dentro do contexto de modelagem - Verificar a aplicabilidade
- Servir de referência para trabalhos de DBC
- Detectar a inadequação das ferramentas CASE
16Considerações Finais (2)
- Limitações do Trabalho
- Apenas modelagem
- Estudos de caso
- Retirado da bibliografia
- Deficiência dos livros na descrição do problema
- Simplicidade
- Não permite aplicar todas as técnicas
- Falta de mudança de requisitos
17Uma comparação de dois métodos de desenvolvimento
de software baseado em componentesCatalysis e
UML Components
18Referências (1)
- Aoyama98 Aoyama, M. New age of software
development How component-based software
engineering changes the way of software
development. In Proceedings of International
Workshop on Component-Based Software Engineering,
Kyoto, Japão (http//www.sei.cmu.edu/cbs/icse98/pa
pers/p14.html) (1998). - Szperski98 Szperski, C. Component Software
Beyond Object-Oriented Programming.
Addison-Wesley, 1998. - Szperski99 Szperski, C. Component and objects
together. In Software Development Magazine
(1999), vol. 7. - Crnkovic01 Crnkovic, I. Component-based
software engineering - new challenges in software
development. In Software Focus (2001), vol. 2,
pp. 127133. - Teixeira03 Teixeira, H. V. Geração de
componentes de negócio a partir de modelos de
análise. Tese de Mestrado, COPPE/UFRJ, 2003.
19Referências (2)
- Cheesman01 Cheesman, J., e Daniels, J. UML
Components. The Component Software Series.
Addison-Wesley, 2001. - Wills99 Wills, A. C., e DSouza, D. Objects,
Components and Frameworks with UML The Catalysis
Approach. Addison-Wesley, 1999.