Catalysis - Visão Geral
Alexandre Alvaro
[email protected]
Conteúdo
•
•
•
•
•
Reuso
DBC {Desenvolvimento Baseado em Componentes}
Catalysis
Conclusão
Outros métodos
Reuso
• [Krueger, 1992], [Frakes, 1995]
• “Software reuse is the process of creating
software systems from existing
software, instead of building from
scratch.”
• Tudo que já foi feito, não deve ser
feito novamente.
Reuso
• Vantagens
• Aumenta…
• Qualidade
• Produtividade
• Diminui…
• Time to market
• Manutenibilidade
• Redução do custo de desenvolvimento, teste, etc.
• Reuso de Software…
– Não é simples
– Reuso de Software Sistemático
Reuso:
Artefatos reutilizáveis [D’ Souza, 1999]
•
•
•
•
•
Código compilado {fonte}
Casos de testes
Modelos e projetos: frameworks e padrões
Interface de usuário
Planos, estratégias e regras arquiteturais
DBC
• A idéia de Reuso de Software não é
nova…
• [McIlroy, 1969]
“Mass Produced Software Components”
• “Utilizar ao invés de construir”
• Catálogos de rotinas padronizadas, classificadas por
precisão, robustez e performance
DBC
• Visão Clássica...
– SW = Blocos monolíticos
– Partes inter-relacionadas
– Relacionamentos implícitos
• ... DBC
– Software foi “quebrado” em pequenas partes
– Partes estão menos acopladas
– Maior flexibilidade e manutenibilidade
– Redução da complexidade e custo de
desenvolvimento
– Reuso
Componente
• O Conceito exato de componentes em DBC ainda não é
um consenso…
“ A software component is a unit of composition
with contractually specified interfaces and
explicit context dependencies only. A
software component can be independently
deployed and is subject to third-party
composition”.
[Szyperski, 2002]
Métodos para Desenvolvimento de
Componentes
• Reutilização em todas as etapas do desenvolvimento
• Deve considerar duas etapas:
• Desenvolvimento de Componentes
• Desenvolvimento com Componentes
• ... extensões de métodos de desenvolvimento Orientado a
Objetos
• Diversos Métodos:
•
•
•
•
•
•
•
Catalysis
Select Perpective
UML Components
{RUP}
KobrA
Abordagem de DBC [Almeida, 2003]
...
Catalysis
“. . .Software development continues to be, as always,
a difficult and fascinating mixture of art, science,
black magic, engineering, and hype…Catalysis defines
an approach that covers all of them…”
www.catalysis.org
Catalysis
• Desenvolvido na Universidade de Brighton, Inglaterra
• D’Souza e Allan Wills
• “É um método de DBC completo, cobrindo todas as
desde a especificação dos componentes até sua
implementação para reutilização” [D’Souza, 1999]
fases,
• Busca solucionar problemas [D’Souza, 1999]:
•
•
•
•
•
•
•
Eliminar gaps entre as fases
Estabelecer um vocabulário comum
Rastreamento de requisitos
Semântica para verificar consistência
Níveis de granularidade e refinamento
Distinção entre modelos do domínio, modelos do sistema e arquitetura
Reuso em todas as fases do ciclo de vida
Catalysis
• Princípios
• Abstração
• Precisão
• Partes Conectáveis
Catalysis
• Níveis de modelagem
Catalysis
• Característica
• Traceability dos modelos de negócio para o código
• Gerenciamento de mudanças, garantia de qualidade,...
• Precisão -> modelos e documentos sem ambigüidades
• Identificar requisitos cedo, explicitar o vocabulário e entender
• Suporte ao Desenvolvimento Baseado em Componentes
• Reuso da especificação, projeto, modelos, arquitetura, ...
• Escalabilidade de pequenos para grandes times e projetos
• Consistência, integridade, desenvolvimento incremental
• Processo que é flexível e recursivo, com múltiplas
“rotas”
Catalysis – {Processo}
• Existem diversos caminhos possíveis
• Cada um com uma seqüência diferente de atividades e
artefatos
• Um caminho pode omitir atividades e/ou artefatos que
outro inclua
• Diferentes caminhos podem ser utilizados para qualquer
projeto ou subprojeto
• Um rota mais “leve” pode ser um bom caminho
[D’ SOUZA, 1999]
Catalysis
• Três construções básicas
Catalysis
• Processo de Desenvolvimento UML com Catalysis
Catalysis
• Principais artefatos
Conhecimento do Domínio
Mind Maps
Data Dictionary
Análise do
Domínio
System Context/Collaboration
Catalysis
• Principais artefatos (cont.)
Catalysis
• Principais artefatos (cont.)
Product
product: ProductOperations()
Sales System <<type>>
*
Product
inventory
Sale
*
*
SaleItem
quantity
Cust
Product():
AddProduct(String name):boolean
DeleteProduct(String id):boolean
...
Payment
Diagrama de Classe
Authorization
(“o que”)
Catalysis
• Principais artefatos (cont.)
Domínio de
Livraria
Framework de modelos
Catalysis
• Principais artefatos (cont.)
Domínio de
Livraria
Modelo de Aplicação de Framework
Catalysis
• Uma Abordagem possível [Almeida, 2003]
• Dissertação de Mestrado realizada na UFSCar
• Trabalhei em conjunto
• Estudo de Caso
• Domínio de Livraria
Catalysis
• 1- Definir Problema
Ação
Objeto
Mind-Maps
Objeto
Catalysis
• 1- Definir Problema
Modelo de Colaboração
Catalysis
• 1- Definir Problema
Modelo de Use-Case
Catalysis
• 2- Especificar Componentes (“o que”)
Dicionário
de Dados
OCL
Modelo de Tipos
Catalysis
• 2- Especificar Componentes
Catalysis
• 2- Especificar Componentes
Modelo de Seqüência
Catalysis
• 3- Projetar Componentes (“como”)
Modelo de Classes
Catalysis
• 3- Projetar Componentes
• Requisitos Não-Funcionais
•
•
•
•
•
Persistência
Distribuição
Segurança
Tratamento de Exceção
...
Repositório
4 - Implementar Componentes
Catalysis
• Ferramentas
• Cool : Spex - (Sterling Software)
• MVCASE {suporte parcial} - (UFSCar)
• Visio : Catalysis/Modeler - (Microsoft)
• SmartDraw - (SmartDraw Co.)
Catalysis
• [D’Souza, 1999]
• Catalysis está baseado nos fatores chaves de sucesso
para um DBC efetivo
• Quais são os fatores?
Catalysis
Rastreabilidade
Ponte Negócios e TI
Vocabulário compartilhado preciso
Questões críticas de negócio antecipadas
Dirigidos a
Negócios
Entender o negócio
primeiramente
Arquitetura
Infra-estrutura
interfaces
plug padrões
… interoperabidade
Integração Negócios e
Engenharia de Sistemas
Processo de Reuso
Desenvolver para reuso
Desenvolver com reuso
Componente Conectáveis
Projeto preciso, focado na interface
Rastreabilidade de componentes de negócio
Catalysis
• [Espindola, 2002]
Critério
Conceito
Catalysis
Pequena Escala: Artefatos Conectados através de Interfaces
Grande Escala: Aplicações Auto-Contidas
Reutilização
Preocupa-se com a utilização de componentes e soluções
existentes
Seleção
Existe preocupação, mas não existe sistemática
Documentação
Diversos níveis de detalhamento para os diagramas
Cada diagrama possui uma representação (não-ambígua)
Adaptação
Considera a utilização de componentes existentes
Não contempla as técnicas e o suporte para as adaptações
Catalysis
Critério
Integração
Catalysis
Notação
Processo
Baseada em UML
Arquitetura
Permite detalhamento entre os diversos diagramas,
facilitando a visualização do domínio
Propicia um padrão para especificação de interfaces que
permite a interoperação entre componentes de diferentes
origens
Camadas de desenvolvimento: Modelo de Negócios,
Especificação de Requisitos, Projeto de Componentes,
Projeto de Objetos e Arquitetura de Componentes.
Catalysis
• Conclusões
• Modelagem...
• Modelo de Componentes
• Classes -> componentes ?
• Interfaces ?
• Definição ?
• Pré e pós-condições ?
• Requisitos não funcionais
• Desenvolvimento com Componentes
Outros métodos de DBC
• RUP – Rational – 1995
•
•
•
•
Dirigido a Casos de Uso
Centrado na Arquitetura
Iterativo e Incremental
Baseado em UML
• Select Perspective – 1994-1995
• Rumbaugh’s Object Modeling Technique (OMT)
•
+
Jacobson Use Case driven Objectory method
• BPM Catalyst -> modelagem do negócio
• ERD (Entity-Relationship Diagrams ) ->modelagem dos dados
• Baseado em UML
Outros métodos de DBC
• [Stojanovic, 2001]
Outros métodos de DBC
• [Boertin, 2001]
Outros métodos de DBC
• UML Components - 2000
• Atividades:
• 1- Definição dos requisitos;
• 2- Identificação e descrição das interfaces entre os componentes;
• 3- Especificação;
• 4- Implementação;
• 5- Montagem dos componentes
• Independente de Plataforma
• KobrA - 2000
• Product-line, component-based software development, frameworks,
quality modeling, process modeling,...
• Partes de Catalysis, UML Components, Select Perpective, PULSE,...
• Quantidade de Modelos...
Referências
•
[Kueger, 1992] Krueger, C. W., 1992. Software Reuse. ACM Computing
Surveys, Vol. 24, No. 02, June, pp. 131-183.
•
[Frakes, 1995] Frakes, W., B., Fox, C., J. Sixteen Questions about Software
Reuse. Communications of the ACM, June, 1995.
•
[Mcllroy, 1968] Mcllroy, M. D., 1968. Mass Produced Software Components.
NATO Software Engineering Conference Report, October, pp. 79-85.
•
[Szyperski, 2002] Szyperski, C., 2002. Component Software: Beyond ObjectOriented Programming. Addison-Wesley, USA. ISBN 0-201-74572-0.
•
[D’Souza, 1999] D’Souza, D., F., Wills, C., A. Objects, Components, and
Frameworks with UML – The Catalysis Approach. Addison-Wesley, 1999.
•
[Almeida, 2003] Almeida, E.S. Uma Abordagem para o Desenvolvimento de
Software Baseado em Componentes Distribuídos, Dissertação de Mestrado,
Universidade Federal de São Carlos, 2003.
[Espindola, 2002] Espindola, A., Becker, K., Werner. C. Critérios para Análise
de Métodos DBC. No 2º Workshop de Desenvolvimento baseado em
Componentes (WDBC), Rio de Janeiro, 2002.
•
Referências
•
•
•
[Boertin, 2001] Boertin, N., Steen, M., Jonkers., H, Evaluation of ComponentBased Development Methods. In EMMSAD’2001, Sixth CAiSE/IFIP8.1, 2001.
[Stojanovic, 2001] Stojanovic, Z., Dahanayake, A., Sol., H. A Methodology
Framework for Component-Based System Development Support. In
EMMSAD’2001, Sixth CAiSE/IFIP8.1, 2001.
[Wills, 2001] Wills, A., C. Components and Connectors: Catalysis Techniques
for Designing Component Infrastructures, In Component-Based Software
Engineering: Putting the Pieces Together, Addison-Wesley, 2001.
•
[Jacobson, 1999] Jacobson I., Booch G., Rumbaugh J. The unified software
development process, Reading MA : Addison-Wesley. 1999.
•
[Allen, 1998] Allen, P., Frost, S. Component-Based Development for Enterprise
Systems: Applying the Select Perspective, Cambridge University Press. 1998.
•
[Cheesman, 2000] Cheesman, J., Daniels, J. UML Components: A Simple
Process for Specifying Component-Based Software. Addison-Wesley. USA, 1nd
edition, 2000.
Referências
•
[KobrA, 2000] Atkinson, C., et. al. Component-Based Software
Engineering:The KobrA Approach, In 3rd International Workshop on
Component-based Software Engineering: Reflection on Practice, in conjunction
with the 22th International Conference on Software Engineering (ICSE).
Limerick, Ireland, 2000.
Discussão
Download

Catalysis - Centro de Informática da UFPE