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

70
KobrA2-light & Revisão de UML / OCL

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

Page 1: 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.

KobrA2-light&Revisão de UML / OCL

Page 2: 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.

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

Page 3: 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.

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

Page 4: 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.

KobrA2

Page 5: 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.

Apresentação Integra

MDA Componentes Orientação a objetos

O que é? Um Processo de desenvolvimento

Define: O que modelar Em que ordem

Page 6: 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.

Princípios

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

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

Page 8: 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.

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

Page 9: 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.

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

Page 10: 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.

Estrutura baseada em Árvore

Page 11: 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.
Page 12: 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.

Artefatos

Page 13: 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.

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

Page 14: 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.

Especificação

Page 15: 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.

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

Page 16: 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.

Artefatos Specification Service View Specification Type View Specification Operation View

Page 17: 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.

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

Page 18: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 19: 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.

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

Page 20: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 21: 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.

Specification Operation View Especifica cada operação do

Specification Service View Tipicamente um conjunto de

anotações OCL

Page 22: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 23: 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.

Realização

Page 24: 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.

O que é? Especifica como o componente

realiza sua especificação Cada componente pode ter mais

de uma realização.

Page 25: 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.

Artefatos Realization Service View Realization Type View Realization Operation View Realization Algorithmic View

Page 26: 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.

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

Page 27: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 28: 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.

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

Page 29: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 30: 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.

Realization Operation View Especifica subconjunto das

operações do Realization Service View

Tipicamente um conjunto de anotações OCL

Page 31: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 32: 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.

Realization Algorithmic View Especifica subconjunto das

operações do Realization Service View

Tipicamente um diagrama de atividades

Page 33: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 34: 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.

Context Realization

Page 35: 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.

O que é? Artefato “top level”

Modela o domínio da aplicação e Ambiente não computacional

Page 36: 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.

Exemplo

Tirar exemplo do ElifeDesktop

Page 37: 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.

Revisão de UML

Page 38: 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.

Diagramas de Classe

Page 39: 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.

Classe Descreve um conjunto de objetos

que possui características em comum Comportamento e estrutura

Page 40: 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.

Interface

Page 41: 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.

Operation & Parameter

Page 42: 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.

Generalization

Page 43: 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.

DataType

Page 44: 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.

Property

Page 45: 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.

Enumeration & Enumeration Literal

Page 46: 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.

Association

Page 47: 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.

AssociationClass

Page 48: 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.

Constraint

Page 49: 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.

PackageableComponent

Page 50: 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.

Diagramas de Atividade

Page 51: 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.

Activity

Page 52: 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.

Call Behavior Action

Page 53: 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.

OpaqueAction

Page 54: 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.

ActivityParameterNode

Page 55: 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.

Pin

Page 56: 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.

Initial Node

Page 57: 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.

Activity Final Node

Page 58: 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.

Flow Final Node

Page 59: 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.

Fork & Join Nodes

Page 60: 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.

Decision Node

Page 61: 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.

Merge Node

Page 62: 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.

Control Flow

Page 63: 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.

Activity Partition

Page 64: 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.

InterruptibleActivityRegion

Page 65: 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.

SendSignal Action

Page 66: 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.

Accept Event Action

Page 67: 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.

Object Node

Page 68: 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.

Exception Handler

Page 69: 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.

OCL

Page 70: 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.

Referências Unified Modeling Language –

Xavier Blanc [link] KobrA: A Model-Driven Component-

Based Software Product Line Engineering Methodology – Jacques Robin [link]