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]