catalysis - visão geral alexandre alvaro [email protected]

45
Catalysis - Visão Geral Alexandre Alvaro [email protected]

Upload: lucas-barreto-campos

Post on 07-Apr-2016

214 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis - Visão Geral

Alexandre [email protected]

Page 2: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Conteúdo

• Reuso• DBC {Desenvolvimento Baseado em

Componentes}• Catalysis• Conclusão• Outros métodos

Page 3: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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.

Page 4: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 5: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

• 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]

Page 6: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 7: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 8: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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…

Page 9: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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]• ...

Page 10: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 11: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 12: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Princípios• Abstração• Precisão• Partes Conectáveis

Page 13: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Níveis de modelagem

Page 14: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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”

Page 15: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 16: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Três construções básicas

Page 17: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Processo de Desenvolvimento UML com Catalysis

Page 18: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Principais artefatos

Análise do Domínio

Mind Maps Data Dictionary System Context/Collaboration

Conhecimento do Domínio

Page 19: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Principais artefatos (cont.)

Page 20: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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”)

Page 21: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Principais artefatos (cont.)

Framework de modelos

Domínio de Livraria

Page 22: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Principais artefatos (cont.)

Modelo de Aplicação de Framework

Domínio de Livraria

Page 23: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Uma Abordagem possível [Almeida, 2003]• Dissertação de Mestrado realizada na UFSCar• Trabalhei em conjunto • Estudo de Caso

• Domínio de Livraria

Page 24: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 1- Definir Problema

Mind-Maps

Ação

ObjetoObjeto

Page 25: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 1- Definir Problema

Modelo de Colaboração

Page 26: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 1- Definir Problema

Modelo de Use-Case

Page 27: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 2- Especificar Componentes (“o que”)

Dicionário de Dados

OCL

Modelo de Tipos

Page 28: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 2- Especificar Componentes

Page 29: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 2- Especificar Componentes

Modelo de Seqüência

Page 30: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 3- Projetar Componentes (“como”)

Modelo de Classes

Page 31: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• 3- Projetar Componentes• Requisitos Não-Funcionais

• Persistência• Distribuição• Segurança• Tratamento de Exceção• ...

Repositório

4 - Implementar Componentes

Page 32: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• Ferramentas• Cool : Spex - (Sterling Software)• MVCASE {suporte parcial} - (UFSCar)

• Visio : Catalysis/Modeler - (Microsoft)• SmartDraw - (SmartDraw Co.)

Page 33: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Catalysis

• [D’Souza, 1999]• Catalysis está baseado nos fatores chaves de

sucesso para um DBC efetivo• Quais são os fatores?

Page 34: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 35: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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]

Page 36: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 37: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

Page 38: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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

+

Page 39: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Outros métodos de DBC

• [Stojanovic, 2001]

Page 40: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Outros métodos de DBC

• [Boertin, 2001]

Page 41: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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...

Page 42: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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.

Page 43: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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.

Page 44: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

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.

Page 45: Catalysis - Visão Geral Alexandre Alvaro aa2@cin.ufpe.br

Discussão