17/6/2010Boch, Jacobson, Rumbaugh; UML – Guia do Usuário; Editora: Elsevier; Ano: 2006 Martin Fowler; UML Essencial; Editora: Bookman; Ano: 2004 Fernando Pedrosa – [email protected] Fernando Pedrosa Lopes 1 Linguagem de Modelagem Unificada Linguagem Linguagem gráfica para especificar, visualizar, construir e documentar os artefatos de software Vantagens Modelagem ◦ Usa notação gráfica: mais clara que a linguagem natural (imprecisa) e código (muito detalhado) ◦ Ajuda a obter uma visão geral do sistema ◦ Não é dependente de tecnologia ◦ Diminui a fragmentação, aumenta a padronização ◦ Descrever um sistema em um alto nível de abstração Unificada ◦ UML se tornou o padrão mundial para modelagem de sistemas – www.omg.org Fernando Pedrosa Lopes 2 ◦ Usada para expressar e comunicar idéias ◦ Não é uma metodologia! Fernando Pedrosa Lopes 3 Fernando Pedrosa Lopes 4 Ano Versão Industrialização Padronização Unificação 2009: UML 2.2 2003: UML 2.0 2001: UML 1.4 1999: UML 1.3 1997: UML 1.0, 1.1 1996: UML 0.9 & 0.91 1995: Unified Method 0.8 OOSE (Jacobson) Fragmentação Outros métodos Booch (OOAD) OMT (Rumbaugh) Fernando Pedrosa Lopes 5 1 que pode ser descrita como uma série de mudanças no sistema com o passar do tempo Fernando Pedrosa Lopes Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.2) 7 Descreve os tipos de objetos presentes no sistema e os vários relacionamentos estáticos entre eles Inclui Fernando Pedrosa Lopes 8 Nome da Classe Atributos ◦ Propriedades (atributos) ◦ Operações (métodos) ◦ Relacionamentos e restrições Operações Fernando Pedrosa Lopes 9 Fernando Pedrosa Lopes 10 Nome da classe Visibilidade Nome Nome do atributo Nome + Atributos Multiplicidade Valor default Restrição Nome + Atributos + Operações Atributo estático Nome da operação Fernando Pedrosa Lopes 11 Tipo de retorno Tipo de dado Fernando Pedrosa Lopes 12 2 .17/6/2010 Diagramas estruturais Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de ◦ Mostram a estrutura estática do sistema e suas partes em diferentes níveis de abstração e como elas se relacionam ◦ Não utilizam conceitos relacionados ao tempo Diagramas comportamentais ◦ Mostram a natureza dinâmica dos objetos do sistema. criando relações lógicas Podem ser de: Público (+) 14 Operações abstratas. Fernando Pedrosa Lopes Visibilidade nome (lista de parâmetros): tipo-de-retorno {lista restrições} As propriedades (atributos) podem ter dois tipos de escopo ◦ Associação Simples Agregação Composição ◦ O elemento é visível apenas pela própria classe ◦ Generalização ◦ Dependência ◦ Realização ◦ O elemento é visível apenas dentro do pacote onde a classe está localizada Fernando Pedrosa Lopes 17 Fernando Pedrosa Lopes 18 3 . ex: {query}. etc. ◦ Escopo de classe (estático): o valor do atributo é comum a todos os objetos daquela classe. É o escopo default da UML. Tipo de retorno: o tipo de dado retornado pela operação Restrição: permite indicar propriedades adicionais. Nome: corresponde ao nome do atributo Tipo: domínio do atributo Multiplicidade: indicação de quantos objetos podem preencher a propriedade [min.17/6/2010 Notação completa: Visibilidade nome: tipo [multiplicidade] = valor_default {lista de restrições} ◦ Escopo de instância: cada objeto tem o seu próprio valor para o atributo.. ou seja. caso ele seja omitido no momento da criação Restrição: permite indicar propriedades adicionais.max] Valor Default: valor do atributo. que não têm uma implementação específica. {ordered}. Fernando Pedrosa Lopes 13 Notação completa: Fernando Pedrosa Lopes 15 Protegido (#) ◦ O elemento é visível apenas pelas subclasses da classe Pacote (~) 16 ◦ O elemento é visível por qualquer outra classe Privado (-) Fernando Pedrosa Lopes Relacionamentos ligam classes entre si. {readOnly}. {unique}. Para denotar este escopo o atributo deve ser sublinhado. devem ser escritas em itálico Operações estáticas devem ser escritas com fonte sublinhada Nome: corresponde ao nome da operação Lista de parâmetros: são os parâmetros da operação. entre uma classe e uma interface Fernando Pedrosa Lopes 24 4 . e ela não pode ser compartilhada em outros relacionamentos Agregação Composição Fernando Pedrosa Lopes 21 Indica que mudança em um elemento pode causar mudanças no outro (uso) Fernando Pedrosa Lopes 23 Pode ocorrer.17/6/2010 Indica que objetos de um elemento estão ligados a objetos de outro elemento A navegabilidade pode ser unidirecional ou bidirecional Nome da Associação Um qualificador de associação é um atributo do elemento-alvo capaz de identificar uma instância dentre as demais Associação simples Associação Associação qualificada Classe Cardinalidade Navegabilidade Fernando Pedrosa Lopes 19 Uma associação pode mostrar as mesmas informações que um atributo Relacionamentos “todo-parte” Agregação: a parte existe sem o todo Composição: o todo controla o ciclo de vida da parte. também. 2) Fernando Pedrosa Lopes Fernando Pedrosa Lopes 28 O diagrama de objetos representa uma fotografia do sistema em um dado momento Mostra os vínculos entre os objetos conforme estes interagem e os valores dos seus atributos Pode ser visto como uma “instância” do diagrama de classe 29 Fernando Pedrosa Lopes 30 5 .0) é utilizada para modelar uma dependência e uma realização entre duas classes e uma interface Dependência Realização Duas representações equivalentes entre si (semanticamente iguais) Fernando Pedrosa Lopes Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de 27 Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.17/6/2010 Relacionamento “é um tipo de” Pode ocorrer. entre interfaces Estereótipo Fernando Pedrosa Lopes 25 Há várias notações para realizações Fernando Pedrosa Lopes 26 A notação “bola-soquete” (UML 2. também. 17/6/2010 Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de vínculo objeto valor do atributo objeto anônimo Fernando Pedrosa Lopes Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2. outros em tempo de execução Fernando Pedrosa Lopes Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de 33 Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.2) Fernando Pedrosa Lopes Pacotes são estruturas que permitem agrupar qualquer construção da UML em estruturas de alto nível Pode mostrar: ◦ Pacotes e suas dependências ◦ Interfaces entre os pacotes ◦ Generalizações entre pacotes 35 Fernando Pedrosa Lopes 36 6 .2) 31 Fernando Pedrosa Lopes 32 Fernando Pedrosa Lopes 34 Modela o sistema em termos de componentes e seus relacionamentos através de interfaces Decompõe o sistema em subsistemas que detalham a estrutura interna Alguns componentes existem em tempo de ligação. ear web. revelando que pedaços de software rodam em que equipamentos de hardware Inclui ◦ Nós Dispositivos (Hardware) Ambientes de Execução ◦ Artefatos Código fonte.2) Linha de comunicação Nó (ambiente de execução) Fernando Pedrosa Lopes 41 Fernando Pedrosa Lopes 42 7 . etc.ear 40 Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.17/6/2010 Duas representações possíveis Realização (implementação) entre pacotes Pacote Pacote Dependência entre pacotes B A Nome do pacote C A C B Estrutura interna do pacote Fernando Pedrosa Lopes Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de 37 Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2. Fernando Pedrosa Lopes 39 Nó (dispositivo) Fernando Pedrosa Lopes Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de cliente. Código binário Executáveis.exe Artefato Forma de comunicação base.2) Fernando Pedrosa Lopes 38 Modela a configuração física do sistema. 2) Braço[2] Partes Fernando Pedrosa Lopes 45 Fernando Pedrosa Lopes 46 47 Fernando Pedrosa Lopes 48 É um diagrama auxiliar que permite definir tipos padronizados de estereótipos.17/6/2010 Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.2) Fernando Pedrosa Lopes ◦ Estruturas de partes interconectadas ◦ Estruturas de instâncias interconectadas Classe estruturada Carro GE_553912:Táxi :Volante Objeto [1] Eixo [1] lugares:Assentos Porta [0. objetos ou classes Pode ser usado para descrever 44 Classes Objetos Componentes Pacotes Implantação Estrutura Composta Perfis (UML 2.. valores rotulados e restrições A UML define o mecanismo de perfis como um “mecanismo leve de extensão” da linguagem Permite adaptar os modelos UML para diferentes plataformas e domínios Fernando Pedrosa Lopes 8 .5] Pessoa joão:Motorista Cabeça ana:Passageira [2] Perna[2] Fernando Pedrosa Lopes Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Diagrama de Roda[4] Busto [2] Parte: representa o conjunto de uma ou mais instâncias contidas em contidas em outro elemento Porta: ponto de interação entre os elementos 43 Colaboração Dirigir Táxi É utilizado para modelar colaborações entre interfaces. 17/6/2010 Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação ◦ Diagrama ◦ Diagrama ◦ Diagrama ◦ Diagrama de de de de ◦ Atores e o sistema ◦ O próprio sistema Descreve um conjunto de cenários Captura os requisitos do usuário Delimita o escopo do sistema Sequência Comunicação Tempo Interação Geral Fernando Pedrosa Lopes 49 Fernando Pedrosa Lopes Fernando Pedrosa Lopes Inclusão Fernando Pedrosa Lopes 52 Generalização entre Casos de Uso ◦ Use quando você identificar Casos de Uso semelhantes e um deles for uma forma especial (uma especialização) do outro Extensão Generalização entre Atores ◦ Use quando um ator (filho) é um tipo de outro ator mais genérico (pai) ◦ Use quando você quiser modelar um comportamento opcional de um Caso de Uso Fernando Pedrosa Lopes 50 O filho herda o comportamento do pai. podendo adicionar e redefinir passos em pontos arbitrários do comportamento original 51 ◦ Use quando o mesmo comportamento se repete em mais de um Caso de Uso e o processo de realizar X sempre envolve realizar Y pelo menos uma vez Contém um conjunto de casos de uso e modela interações entre 53 Fernando Pedrosa Lopes 54 9 . processos de negócio e fluxos de trabalho Permite que seja mostrado que entidade é responsável por cada ação no diagrama. com uso de raias (swimlanes) Fernando Pedrosa Lopes 56 Nó de bifurcação (fork node) Nó inicial Decisão Fluxo Ação ◦ Quem faz o quê? União Fernando Pedrosa Lopes Nó final Nó de junção (join node) 57 Fernando Pedrosa Lopes 58 Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação Unidades organizacionais ◦ Diagrama ◦ Diagrama ◦ Diagrama ◦ Diagrama Fernando Pedrosa Lopes 59 de de de de Sequência Comunicação Tempo Interação Geral Fernando Pedrosa Lopes 60 10 .17/6/2010 Concreto Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação ◦ É iniciado por um ator e constitui um fluxo completo de eventos Abstrato: nunca é instanciado diretamente ◦ Casos de Uso abstratos geralmente são: Incluídos em outros Casos de Uso Estendidos de outros Casos de Uso Generalizações de outros Casos de Uso ◦ Diagrama ◦ Diagrama ◦ Diagrama ◦ Diagrama Atores “enxergam” apenas casos de uso concretos Fernando Pedrosa Lopes de de de de Sequência Comunicação Tempo Interação Geral 55 Descreve lógicas de procedimento. em função de eventos que podem ocorrer Estados ◦ Situações na vida de um objeto na qual ele satisfaz uma condição ou realiza alguma atividade Transições ◦ Estados são associados através de transições ◦ Transições têm eventos associados Sintaxe: evento [condição]/ação Ações ◦ Ao passar de um estado para o outro o objeto pode realizar ações Atividades ◦ Executadas durante um estado Fernando Pedrosa Lopes dado disponível 61 Bloqueado Fernando Pedrosa Lopes 62 Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação transição interrupção / desalocar estado inicial ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de processo escolhido [tem espaço] / alocar Rodando Pronto comando de término [tem permissão] / desalocar estado Sequência Comunicação Tempo Interação Geral estado final Fernando Pedrosa Lopes 63 Fernando Pedrosa Lopes uma Compra Captura o comportamento de um determinado cenário Mostra os objetos e as mensagens trocadas entre eles Enfatiza a ordem temporal das mensagens É o diagrama mais utilizado na etapa de Projeto OO (solucionar o problema) Fernando Pedrosa Lopes um Pedido um Produto 64 um Cliente getQuantidade calcularPreço getProduto participante linha de vida umProduto ativação getDetalhesPreço calcularPreçoBase retorno auto-chamada mensagem calcularDescontos getInfoDesconto 65 Fernando Pedrosa Lopes 66 11 .17/6/2010 Mostra os vários estados possíveis por quais um objeto pode passar Um objeto muda de estado quando acontece algum evento interno ou externo ao sistema Através da análise das transições entre os estados. pode-se prever todas as possíveis operações realizadas. 1: getQuantidade 1.5 calcularDescontos 1.3: getDetalhesPreço um Pedido 69 um Produto Fernando Pedrosa Lopes 70 Captura o comportamento de objetos ao longo do tempo e a duração na qual eles permanecem em determinados estados O foco se dá nas restrições de tempo das interações É uma mistura entre o diagrama de sequências e o diagrama de máquina de estados Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação Sequência Comunicação Tempo Interação Geral Fernando Pedrosa Lopes um Cliente 1.4: calcularPreçoBase 1.2 : getProduto ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de 1.5.17/6/2010 um Controlador Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação consultar BD uma Classe de Dados um comando SQL ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de criação executar resultados destruição por outro objeto extrairResultados Sequência Comunicação Tempo Interação Geral resultados auto destruição Fernando Pedrosa Lopes 67 Captura o comportamento de um determinado cenário Mostra os objetos e as mensagens trocadas entre eles Enfatiza a ordem estrutural das mensagens (relacionamentos entre objetos) É equivalente ao diagrama de sequências Fernando Pedrosa Lopes 68 Fernando Pedrosa Lopes 1: calcularPreço 1.1: getInfoDesconto uma Compra 71 Fernando Pedrosa Lopes 72 12 . 17/6/2010 Diagrama de Casos de Uso Diagrama de Atividade Diagrama de Máquina de Estados Diagramas de Interação estado :Cafeteira evento Aquecedor Bomba águaVazia ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de ◦ Diagrama de mudança de estado objeto Sequência Comunicação Tempo Interação Geral restrição de tempo Fernando Pedrosa Lopes 73 Fernando Pedrosa Lopes 74 diagrama de sequência Fornece uma visão geral do controle de fluxo entre objetos É uma mistura entre diagramas de sequência e diagramas de atividade No exemplo. os dados são buscados de um XML. é gerado um relatório Fernando Pedrosa Lopes referência a outro diagrama de interação 75 Linguagem que faz parte da UML e tem o objetivo de desenvolver modelos mais precisos Uma restrição (constraint) atua sobre um ou mais valores de um modelo orientado a objetos Vantagens 76 Exemplos de restrições (regras de um sistema de Universidade) ◦ “A avaliação de supervisores acadêmicos deve ser melhor que a nota dos seus supervisionados” ◦ “A bolsa escolar dos alunos depende da sua avaliação acadêmica” Estas regras podem ser escritas em OCL E podem ser transformadas em ◦ Modelos mais completos. consistentes e precisos ◦ Comunicação sem ambigüidade ◦ Sintaxe e semântica formais Fernando Pedrosa Lopes Fernando Pedrosa Lopes ◦ Código ◦ Scripts de bancos de dados ◦ Outros modelos. Ao final. 77 Fernando Pedrosa Lopes 78 13 . se o Cliente for externo. Se for interno. os dados são buscados de um banco de dados. etc. A seqüência destes dois fluxos é detalhada. 17/6/2010 Fernando Pedrosa Lopes 79 14 .