KobrA2-light&Revisão de UML / OCL
Por que modelar? Um modelo é a
simplificação/abstração de uma realidade Quando falamos de sistemas
complexos: Nós somos incapazes de compreendê-los
na sua totalidade O código não nos permite
compreender/abstrair a realidade
Como modelar? É necessário escolher:
Qual linguagem de modelagem? UML – Unified Modeling Language OCL – Object Constraints Language
O que modelar? O que não modelar? Que nível de detalhes?
KobrA – Komponentenbasisert Anwendungsentwicklung
KobrA2
Apresentação Integra
MDA Componentes Orientação a objetos
O que é? Um Processo de desenvolvimento
Define: O que modelar Em que ordem
Princípios
Princípios Processo dirigido pelos componentes
Dirigido pela arquitetura e não pelas entidades, relacionamentos ou pelas funcionalidades
Uniformidade Aninhamento recursivo de artefatos de um
mesmo conjunto de artefatos Unidade: Componente KobrA (Komponent) Linguagem de modelagem uniforme:
Cada artefato é um diagrama que utiliza um subconjunto de UML/OCL
Todo o sistema é especificado utilizando o mesmo conjunto de artefatos
Princípios Encapsulamento:
Diminui acoplamento Separação clara entre Especificação (O que)
e Realização (Como) Localidade
Cada artefato contém uma visão limitada, local, não redundante do sistema
Cada componente tem uma visão “black box” dos outros componentes
O modelo do sistema é a junção de dezenas visões locais
Princípios Estrutura baseada em árvore
Normalmente a utilização dos componentes não obedece a uma estrutura:
Gera um grafo arbitrário de componentes Sem uma ordem “óbvia” de
desenvolvimento/manutenção
Estrutura baseada em Árvore
Artefatos
Artefatos KobrA2 Especificação
Specification Service View Specification Type View Specification Operation View
Realização Realization Service View Realization Type View Realization Operation View Realization Algorithmic View
Especificação
O que é? Especifica as propriedades do
componente visíveis externamente e as expectativas que ele tem em relação ao ambiente externo
Especifica os requisitos ou a interface do componente
Artefatos Specification Service View Specification Type View Specification Operation View
Specification Service View Especifica os serviços providos e
requeridos pelo componente Diagrama de Classe Contém
O componente sendo especificado (subject component)
As interfaces que ele provê e que ele requer As operações das interfaces
As relações de generalização entre os componentes e interfaces
Invariantes
Exemplo
Tirar exemplo do ElifeDesktop
Specification Type View Especifica os tipos de dados utilizados
nas operações do Specification Service View
Diagrama de Classe Contém
Classes Tipos de dados primitivos Enumerations Invariantes As relações de generalização entre as classes
Exemplo
Tirar exemplo do ElifeDesktop
Specification Operation View Especifica cada operação do
Specification Service View Tipicamente um conjunto de
anotações OCL
Exemplo
Tirar exemplo do ElifeDesktop
Realização
O que é? Especifica como o componente
realiza sua especificação Cada componente pode ter mais
de uma realização.
Artefatos Realization Service View Realization Type View Realization Operation View Realization Algorithmic View
Realization Service View Especifica como o componente realiza o serviço
Realizando as interfaces Delegando a realização para interfaces mais internas
Diagrama de Classe Contém
O componente sendo especificado (subject component) Incluindo atributos e operações
Componentes auxiliares As interfaces providas e requeridas pelos componentes As relações de generalização entre os componentes e
interfaces Invariantes
Exemplo
Tirar exemplo do ElifeDesktop
Realization Type View Especifica os tipos de dados utilizados
na Realiztion Service View Diagrama de Classe Contém
Classes Tipos de dados primitivos Enumerations Invariantes As relações de generalização entre as
classes
Exemplo
Tirar exemplo do ElifeDesktop
Realization Operation View Especifica subconjunto das
operações do Realization Service View
Tipicamente um conjunto de anotações OCL
Exemplo
Tirar exemplo do ElifeDesktop
Realization Algorithmic View Especifica subconjunto das
operações do Realization Service View
Tipicamente um diagrama de atividades
Exemplo
Tirar exemplo do ElifeDesktop
Context Realization
O que é? Artefato “top level”
Modela o domínio da aplicação e Ambiente não computacional
Exemplo
Tirar exemplo do ElifeDesktop
Revisão de UML
Diagramas de Classe
Classe Descreve um conjunto de objetos
que possui características em comum Comportamento e estrutura
Interface
Operation & Parameter
Generalization
DataType
Property
Enumeration & Enumeration Literal
Association
AssociationClass
Constraint
PackageableComponent
Diagramas de Atividade
Activity
Call Behavior Action
OpaqueAction
ActivityParameterNode
Pin
Initial Node
Activity Final Node
Flow Final Node
Fork & Join Nodes
Decision Node
Merge Node
Control Flow
Activity Partition
InterruptibleActivityRegion
SendSignal Action
Accept Event Action
Object Node
Exception Handler
OCL
Referências Unified Modeling Language –
Xavier Blanc [link] KobrA: A Model-Driven Component-
Based Software Product Line Engineering Methodology – Jacques Robin [link]