catalysis - visão geral alexandre alvaro [email protected]
TRANSCRIPT
Catalysis - Visão Geral
Alexandre [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
• Código compilado {fonte}• Casos de testes• Modelos e projetos: frameworks e padrões• Interface de usuário• Planos, estratégias e regras arquiteturais
Reuso:Artefatos reutilizáveis [D’ Souza, 1999]
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
“ 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]
• O Conceito exato de componentes em DBC ainda não é um consenso…
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 definesan 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 fases, desde a especificação dos componentes até sua implementação para reutilização” [D’Souza, 1999]
• 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}
[D’ SOUZA, 1999]
• 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
Catalysis
• Três construções básicas
Catalysis
• Processo de Desenvolvimento UML com Catalysis
Catalysis
• Principais artefatos
Análise do Domínio
Mind Maps Data Dictionary System Context/Collaboration
Conhecimento do Domínio
Catalysis
• Principais artefatos (cont.)
Catalysis
• Principais artefatos (cont.)
Sales System <<type>>
Sale
SaleItemquantity
Payment
Authorization
*
**
CustProduct
inventory
Product
product: ProductOperations()
Product():AddProduct(String name):booleanDeleteProduct(String id):boolean...
Diagrama de Classe
(“o que”)
Catalysis
• Principais artefatos (cont.)
Framework de modelos
Domínio de Livraria
Catalysis
• Principais artefatos (cont.)
Modelo de Aplicação de Framework
Domínio de Livraria
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
Mind-Maps
Ação
ObjetoObjeto
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?
CatalysisRastreabilidadePonte Negócios e TI Vocabulário compartilhado precisoQuestões críticas de negócio antecipadas
ArquiteturaInfra-estruturainterfacesplug padrões… interoperabidade
Processo de ReusoDesenvolver para reusoDesenvolver com reuso
Componente ConectáveisProjeto preciso, focado na interfaceRastreabilidade de componentes de negócio
Integração Negócios eEngenharia de Sistemas
Dirigidos a NegóciosEntender o negócio primeiramente
Catalysis
Critério CatalysisConceito 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 diagramasCada diagrama possui uma representação (não-ambígua)
Adaptação Considera a utilização de componentes existentesNão contempla as técnicas e o suporte para as adaptações
• [Espindola, 2002]
Catalysis
Critério CatalysisIntegração Propicia um padrão para especificação de interfaces que
permite a interoperação entre componentes de diferentes origens
Notação Baseada em UML
Processo Camadas de desenvolvimento: Modelo de Negócios, Especificação de Requisitos, Projeto de Componentes, Projeto de Objetos e Arquitetura de Componentes.
Arquitetura Permite detalhamento entre os diversos diagramas, facilitando a visualização do domínio
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 Object-Oriented 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 Component-Based 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