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

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

Embed Size (px)

Citation preview

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]