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
Realization
Realization
Realization
Service View
Type View
Operation View
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
Realization
Realization
Realization
Service View
Type View
Operation View
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 ComponentBased Software Product Line
Engineering Methodology – Jacques
Robin [link]
Download

KobrA2-light & Revisão de UML / OCL