Uma comparação de dois métodos de
desenvolvimento de software baseado
em componentes:
Catalysis e UML Components
Projeto Final por:
Bernardo Faria de Miranda e
Diego Delgado Lages
{bmiranda,lages}@cos.ufrj.br
Orientação
Profª Cláudia Maria Lima Werner, D.Sc.
Prof° Marco Aurélio Souza Mangan, M.Sc.
Roteiro
•
•
•
•
•
•
•
•
Motivação
Objetivo
Método de trabalho
Visão geral de um método de DBC
Catalysis
UML Components
Comparação
Considerações finais
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
2
Motivaçã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]
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
3
Motivaçã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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
4
Objetivo
• 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]
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
5
Mé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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
6
Visã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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
7
Visã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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
8
Catalysis
• 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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
9
UML 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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
10
Exemplo de modelo (1)
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
11
Exemplo de modelo (2)
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
12
Comparaçã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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
13
Comparaçã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.
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
14
Consideraçõ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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
15
Consideraçõ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
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
16
Uma comparação de dois métodos de
desenvolvimento de software baseado
em componentes:
Catalysis e UML Components
Dúvidas?
Referê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 ComponentBased Software Engineering, Kyoto, Japão
(http://www.sei.cmu.edu/cbs/icse98/papers/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. 127–133.
• [Teixeira03] Teixeira, H. V. Geração de componentes de negócio a partir
de modelos de análise. Tese de Mestrado, COPPE/UFRJ, 2003.
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
18
Referências (2)
•
•
[Cheesman01] Cheesman, J., e Daniels, J. UML Components. The Component
Software Series. Addison-Wesley, 2001.
[Wills99] Wills, A. C., e D’Souza, D. Objects, Components and Frameworks
with UML: The Catalysis Approach. Addison-Wesley, 1999.
Bacharelado em Informática - DCC
IM/UFRJ - Outubro de 2003
19
Download

UML Components