Análise e Concepção de Sistemas de Informação Unified Modeling Language (UML) - Introdução - Alberto Manuel Rodrigues da Silva Prof. DEI/IST/UTL Introdução ao UML Contexto Histórico Âmbito Visão Global Estrutura de Conceitos Mecanismos Comuns Tipos de Dados ACSI/UML-Intro, Copyright, Alberto Silva 2 Introdução - Contexto Histórico ACSI/UML-Intro, Copyright, Alberto Silva 3 Introdução - Contribuições para o UML Booch Rumbaugh Meyer Pré e Pós Condições Harel Diagramas de Estado Gamma, et al. Frameworks, patterns, nodes Shlaer-Mellor Ciclos de vida dos objectos ACSI/UML-Intro, Copyright, Alberto Silva Jacobson Fusion Descrição operações Numeração mensagens Wirfs-Brock Responsabilidades Odell Classificação 4 Introdução - Âmbito UML não é: – – – – Uma metodologia Um processo de desenvolvimento de software Dependente de ferramentas CASE Dependente do domínio de aplicação O UML é uma linguagem para: – visualização – especificação – construção – documentação dos artefactos de um sistema ACSI/UML-Intro, Copyright, Alberto Silva 5 Introdução - Âmbito O UML apresenta as particularidades principais: Semântica e notação para tratar um grande número de tópicos actuais de modelação. Semântica para tratar tópicos de modelação futura, relacionados em particular com a tecnologia de componentes, computação distribuída, frameworks e Internet. Mecanismos de extensão de modo que futuras aproximações e notações de modelação possam continuar a ser desenvolvidas sobre o UML. Semântica e sintaxe para facilitar a troca de modelos entre distintas ferramentas. ACSI/UML-Intro, Copyright, Alberto Silva 6 Introdução - Âmbito Novos elementos introduzidos no UML... Mecanismos de extensão Elementos para modelar processos e threads Elementos para modelar distribuição e concorrência Padrões de desenho e colaborações Diagramas de actividade (para modelação de processos de negócio) Refinamento (para tratar relações entre diferentes níveis de abstracção) Interfaces e componentes Linguagem de restrições (Object Contraint Language) Semântica de acções (Action Semantics) associada à visão do UML executável (xUML) ACSI/UML-Intro, Copyright, Alberto Silva 7 Introdução - Âmbito Benefícios que se obtêm com o UML... Terminam as diferenças, geralmente inconsequentes, entre as linguagens de modelação dos anteriores métodos Unifica as distintas perspectivas entre diferentes tipos de sistemas (e.g., negócio vs. software), fases de um processo e conceitos internos. ACSI/UML-Intro, Copyright, Alberto Silva 8 Introdução - Visão Global Um sistema é melhor representado segundo diferentes modelos, visões, facetas ou projecções, complementares. visão B visão A UoD visão C Qual é, dos 4 Princípios de Modelação do Booch? ACSI/UML-Intro, Copyright, Alberto Silva 9 A Estrutura de Conceitos do UML “Elementos” Relações (relacionam “elementos”) Diagramas (agrupam “elementos”) ACSI/UML-Intro, Copyright, Alberto Silva 10 A EC do UML : Elementos Elementos de Estrutura Elementos de Comportamento Elementos de Agrupamento Elementos de Anotação ACSI/UML-Intro, Copyright, Alberto Silva 11 A EC do UML : Elementos Elementos de Estrutura ACSI/UML-Intro, Copyright, Alberto Silva 12 A EC do UML : Elementos ACSI/UML-Intro, Copyright, Alberto Silva 13 A EC do UML : Relações Tipos de Relações ACSI/UML-Intro, Copyright, Alberto Silva 14 A EC do UML : Diagramas Visão Funcional Diagrama de casos de utilização Diagrama de actividade Visão Dinâmica Diagrama de máquina de estados (state machine diagram) Diagrama de interacção – Diagrama de sequência – Diagrama de comunicação – Diagrama de visão geral da interacção (interaction overview diagram) – Diagrama temporal (timing diagram) ACSI/UML-Intro, Copyright, Alberto Silva Visão Estática ou Estrutural Diagrama de pacotes Diagrama de classes Diagrama de objectos Diagrama de estrutura composta (composite structure diagram) Diagrama de componentes Diagrama de instalação 15 A EC do UML : Exemplos Diagrama de Casos de Utilização: representa a visão do sistema na perspectiva dos seus utilizadores (e.g., UAnónimo no contexto do WebGTTI) ACSI/UML-Intro, Copyright, Alberto Silva 16 A EC do UML : Exemplos Diagrama de Classes: especifica a estrutura estática de um sistema segundo a abordagem baseada em objectos (e.g., classes do WebGTTI) ACSI/UML-Intro, Copyright, Alberto Silva 17 A EC do UML : Exemplos Diagrama de Sequências: especifica a dinâmica ou o comportamento de um sistema (e.g., registo de membro no WebGTTI) ACSI/UML-Intro, Copyright, Alberto Silva 18 A EC do UML : Exemplos Exemplo de um Diagrama de Actividades (processo de negócio “Fazer Proposta”) ACSI/UML-Intro, Copyright, Alberto Silva 19 A EC do UML : Exemplos Diagrama de Distribuição (e.g., arquitectura hardware de um sistema distribuído) ACSI/UML-Intro, Copyright, Alberto Silva 20 A EC do UML : Exemplos Diagrama de (Transição de) Estados (e.g., da classe “Termo” do WebGTTI) ACSI/UML-Intro, Copyright, Alberto Silva 21 UML – Mecanismos Comuns Notas ou Anotações Mecanismos de extensão O UML contém um conjunto de mecanismos comuns que são aplicados de modo consistente ao longo dos seus diferentes diagramas ACSI/UML-Intro, Copyright, Alberto Silva 22 Mecanismos Comuns - Notas Uma “nota” ilustra um comentário e não tem qualquer impacto semântico, no sentido que o seu conteúdo não altera o significado do modelo no qual ela se encontra. Por isso é normal usarem-se “notas” para se especificar: requisitos, restrições, observações, revisões, explicações. O AgentManager tem de criar os restantes agentes da aplicação. Ver htto://www.objectspace.com para mais informação sobre o ORB Voyager Alb 2001/6/12 ACSI/UML-Intro, Copyright, Alberto Silva 23 Mecanismos Comuns - Notas Observações: Localização: Notas são colocadas graficamente perto dos elementos que descrevem Visibilidade: Podem-se esconder ou tornar visíveis Extensão: Usar referências (e.g., nomes de docs, ou URL) caso se pretenda um comentário mais extenso. Evolução: Há medida que o modelo evoluí as notas antigas (que deixem de ter sentido) devem ser eliminadas ACSI/UML-Intro, Copyright, Alberto Silva 24 Mecanismos Comuns - Estereótipos Um estereótipo é um metatipo permite definir novos tipos de “coisas” sem se alterar o metamodelo do UML i.e., permite estender o UML Exemplos Na modelação de processos de negócio: – «trabalhador», «documento», «política» Na modelação de aplicações específicas: – «interface», «controlo», e «entidade» ACSI/UML-Intro, Copyright, Alberto Silva 25 Mecanismos Comuns - Estereótipos Um estereótipo define um novo elemento através de: propriedades (pode providenciar o seu próprio conjunto de marcas) semântica (pode providenciar a sua próprias restrições) notação (pode providenciar o seu próprio icon) ACSI/UML-Intro, Copyright, Alberto Silva 26 Mecanismos Comuns - Estereótipos Cada elemento do modelo pode ter no máximo um estereótipo. Podem ser utilizados para: – alterar o comportamento da geração de código – facilitar a compreensão de um modelo Estereótipos pré-definidos: – <<actor>>, <<entity>>, <<boundary>>, <<extends>>, ... <<Interface>> <<Control>> <<communicates>> <<Entity>> ACSI/UML-Intro, Copyright, Alberto Silva 27 Mecanismos Comuns - Marcas com Valor Tagged value Cada “elemento” em UML tem um conjunto de propriedades. Ex.: classes têm: i) nome, ii) atributos, e iii) operações associações têm: i) nome, e ii) 2 ou mais participantes Com estereotipos introduz-se novas “coisas” ao UML Com marcas introduz-se novas propriedades ACSI/UML-Intro, Copyright, Alberto Silva 28 Mecanismos Comuns - Marcas com Valor Uma marca com valor não é um atributo de classe! Deve ser entendido como metadata, pois o seu valor aplica-se ao próprio elemento e não às suas instâncias. Aplicações Usuais: geração de código: Ex: {language=Java}, {linker=Blinker} produção automática de documentação gestão de configurações: Ex: {autor=AMRS}, {data=...} ACSI/UML-Intro, Copyright, Alberto Silva 29 Mecanismos Comuns - Restrições (Constraints) Qualquer “coisa” em UML tem uma semântica… As Restrições permitem adicionar ou alterar a semântica Uma restrição específica condições que têm de ser validadas para que o modelo seja “bem definido”. Portfolio restrição entre vários elementos Empresa {secure-access} 0..1 ContaBancária restrição simples ACSI/UML-Intro, Copyright, Alberto Silva {or} restrição formal usando OCL homem Pessoa género:{m, f} 0..1 mulher {self.mulher.genero=“f” and self.marido.genero=“m”} 30 Mecanismos Comuns - Restrições (Constraints) Como especificar que uma pessoa pode estar casada apenas com outra pessoa do sexo oposto? 0..1 homem Pessoa género:{m, f} {self.mulher.genero=“f” and self.marido.genero=“m”} 0..1 mulher restrição formal usando OCL OCL (Object Constraint Language) é uma linguagem para especificação formal de restrições; é uma parte definida no UML ACSI/UML-Intro, Copyright, Alberto Silva 31 Mecanismos Comuns - Restrições (Constraints) Como especificar que uma pessoa, para ser gestor de um departamento tem também de ser, necessariamente, membro desse departamento? Departamento * * {subset} membro 1..* 1 gestor Pessoa ACSI/UML-Intro, Copyright, Alberto Silva 32 Mecanismos Comuns - Sugestões Ao estender um modelo com estereótipos, valores com marcas, ou restrições, deve ter em conta as seguintes sugestões: Definir um número reduzido desses elementos. Escolher nomes curtos e com significado evidente para estereótipos e marcas. Sempre que a precisão puder ser relaxada usar texto livre para especificação das restrições. Caso contrário, usar OCL. ACSI/UML-Intro, Copyright, Alberto Silva 33 Tipos de Dados Um tipo de dado é uma abstracção utilizada de forma implícita no UML. Os tipos de dados não são elementos do modelo e por conseguinte não lhe são associados estereótipos, marcas com valor ou restrições. Um tipo primitivo é um tipo de dados que não tem uma subestrutura. Exemplos de tipos de dados: – Primitivos: Integer, String, Time – Enumerados: Boolean, AggregationKind, VisibilityKind – Outros: Expression, Mapping, Name, Multiplicity ACSI/UML-Intro, Copyright, Alberto Silva 34 Tipos de Dados ACSI/UML-Intro, Copyright, Alberto Silva 35