KobrA2-light & Revisão de UML / OCL. Por que modelar? Um modelo é a...

Preview:

Citation preview

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]

Recommended