UML Unified Modeling Language 1 Tpicos abordados Diagramas
UML – Unified Modeling Language 1
Tópicos abordados Diagramas e elementos UML relacionados a fase de Análise & Projeto n n Diagrama de de Classes Estados Interações Componentes Modelagem dos conceitos OO em UML 2
Objetivos Mapear os conceitos de OO em UML Ser capaz de modelar um sistema usando UML 3
O que é a Unified Modeling Language (UML)? A UML combina o melhor de n n Modelagem de de Dados Negócios Objetos Componentes A UML é a linguagem padrão para visualizar, especificar, construir e documentar artefatos de um sistema de software 4
História da UML Nov ‘ 97 UML aprovada pelo OMG 5
UML: A Linguagem de Modelagem 6
Modelagem Visual permite que você construa da forma correta na primeira vez: n n n Entender os requisitos do usuário Validar que o design atende as necessidades Visualizar interface, lógica de negócio e dados separadamente Separar domínios de negócio conforme apropriado Vizualizar todas as dependências Validar performance antes do código começar 7
Quem deve modelar? Analista de Negócios Requisitos e Modelos de Negócio HTML CGI XML Java. Script Modelos de SW Engenheir o de Software Java, C++, etc. Modelos de Dados Desenvolv edor de Conteúdo Web Projetista de Banco de Dados 8
Conceitos da UML A UML pode ser usada para modelar visualmente: n n n A interação de sua aplicação com o mundo externo O comportamento de sua aplicação A estrutura de seu sistema Os componentes de seu sistema A arquitetura de sua empresa 9
Diagramas UML Digrama de classes Diagrama de casos de uso Diagrama de componentes Diagrama de distribuição Diagrama de estados Diagrama de atividades Diagrama de interação n n Diagrama de seqüência Diagrama de colaboração 10
Diagrama de classes Um diagrama de classes mostra a estrutura de seu software Algoritmo. Calendario Janela. Matricula 0. . * 1 Gerenciador. Matricula ad. Aluno(Curso, Aluno. Info) Curso 1 nome 0. . * num. Creditos Usuario. Matricula nome Aluno aberto() ad. Aluno(Aluno. Info) data. Graduacao 1 3. . 10 Professor classificacao 4 1 1. . * Curso. Oferecido localizacao 0. . 4 aberto() ad. Aluno(Aluno. Info) 11
Classe em UML Classe é representada usando-se um retângulo Professor 12
Atributo em UML Objeto Valor do Atributo Classe Professor titulo nome Nome do Atributo : Professor titulo = “Mestre” Nome = “Gibeon” : Professor titulo = “Ph. D” nome = “Ivan” 13
Operação em UML Especificação das operações Professor criar() atribuir. Disc() get. Titulo() get. Nome() 14
Resumo de classes Uma classe é composta por três seções Nome da Classe Atributos Operações DVD Hora Status Voltar() Pausar() Adiantar() Parar() Tocar() estrutura comportamento 15
Interface em UML (Canônica) <<interface>> Forma Desenhar Mover Rotacionar Cubo Tubo Piramide Relacionamentos de realização 16
Interface em UML (Icônica) Tubo Piramide Forma Cubo Relacionamentos de realização 17
Pacote em UML Favorece a modularidade Pode ser aplicado para modularizar outros elementos de UML nome do pacote 18
Relacionamentos Associação n n agregação composição Dependência Generalização Realização 19
Associação Modela a conexão semântica entre classes Nome da associação Professor Trabalha para Universidade Associação Papéis Classe Professor Universidade Empregador 20
Agregação Uma forma especial de associação que modela um relacionamento todo-parte entre um agregado (todo) e suas partes Todo Agregação Estudante Parte Disciplina 21
Composição Uma forma de agregação com uma relação de posse forte n As partes não vivem sem o todo Todo Composição Estudante Parte Disciplina 22
Associação x Agregação x Composição Como você modelaria: n n Dependente e Funcionário? Pedido e Item do pedido? Funcionário e Cartão de ponto? Carro, Roda, Direção e Carburador? Na dúvida, use agregação! Na dúvida, use associação! 23
Exercicios Identificar os relacionamentos do sistema de reserva 24
Multiplicidade define quantos objetos participam do relacionamento n n O número de instâncias de uma classe relacionada a uma instância de outra classe Especificado em cada uma das pontas da associação 25
Tipos de Multiplicidade Não especificada Exatamente um 1 Zero ou mais 0. . * Muitos (mesmo que 0. . *) * Um ou mais Zero ou um Intervalo determinado 1. . * 0. . 1 2. . 4 2, 4. . 6 Valores múltiplos 26
Exemplo: Multiplicidade Estudante 1 1. . * Disciplina 27
Navegação Especifica a direção da associação Associações e agregações são bidirecionais por default 28
Exemplo: Navegação Estudante 1 1. . * Disciplina Navegação 29
Exercicios Identificar navegação e multiplicidade 30
Dependência Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro Relacionamento não estrutural (uso) n mais fraco que associação Cliente Fornecedor Relacionamento de Dependência 31
Dependência na prática (OO) Parâmetros de entrada de métodos Tipos de retorno de métodos Utilização dentro do código de métodos Exceções lançadas 32
Dependência em Java class Log {. . . void gravar(){ Arquivo a =. . . ; a. escrever(. . . ); } } 33
Dependência Pode existir relacionamento de dependência entre vários elementos de UML Classe Cliente Pacote. Cliente Componente Fornecedor Cliente Pacote. Fornecedor Dependência 34
Generalização Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes Relacionamento “é um tipo de” 35
Herança Simples Uma classe herda de uma outra Figura Superclasse (pai) cor largura da linha desenhar() selecionar() Relacionamento de Generalização Subclasses Círculo raio centro desenhar() Retângulo vertices desenhar() diagonal() 36
Herança Múltipla Classes herdando de mais de uma classe Mamífero Animal. Voador Herança múltipla Cachorro Gato Morcego Passarinho Gaviao 37
Herança Múltipla O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome? O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método? 38
Realização Indica que um elemento serve como contrato que o outro deve seguir Classe Subsistema Componente Realização Caso de uso Realização de Caso de uso 39
Objeto em UML : Professor Apenas o nome da classe gibeon : Professor gibeon Apenas o nome do objeto Nome da classe e do objeto 40
Diagrama de estados Um diagrama de estados mostra o ciclo de vida de um objeto Adiciona Aluno[ contador < 10 ] Inicializado Adiciona Aluno / contador = 0 do: Incializa Curso Aberto Cancela [ contador = 10 ] Cancelado do: Notifica Alunos Cancela Fechado do: Finaliza curso 41
Exercício 42
Diagrama de componentes Diagramas de Componentes ilustram a organização e dependências entre componentes de software 43
O que são componentes Parte não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s) Exemplos n n n um código fonte um componente de tempo de execução um componente executável 44
Componente em UML Arquivo fonte <<EXE>> Arquivo executável <<DLL>> Componente Interface do Componente 45
Exemplo de Diagrama de componentes Matricula. exe Cobranca. exe Sistema Cobranca Pessoa. dll Curso. dll Usuario Curso 46
Subsistemas Uma combinação de pacotes (pode conter outro elementos) e classe (tem comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento Facilita o encapsulamento e a modularidade 47
Subsistema em UML Realização Subsistema <<subsystem>> Interface Nome do subsistema 48
Subsistemas e Componentes Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes são a realização física dos subsistemas Projeto <<subsystem>> Nome do subsistema Implementação Nome do componente 49
Diagramas de Interação Modelam interações do sistema com seus atores A interação é iniciada por um ator e envolve instâncias (objetos) das classes Diagramas de interação capturam a semântica do fluxo de eventos do caso de uso n Auxiliam a identificar classes, responsabilidades e relacionamentos 50
Diagramas de iteração Existem dois tipos n n Diagrama de Seqüência Diagrama de Colaboração São semanticamente equivalentes Um pode ser gerado automaticamente a partir do outro 51
Forma Geral dos Diagramas de Seqüência Objeto fornecedor Objeto cliente : Cliente : Fornecedor Mensagem reflexiva 1: Realize responsabilidade 1. 1: Realize outra responsabilidade Mensagem Numeração hierárquica para as mensagens Foco de controle 52
Exemplo de Diagrama de Seqüência : Aluno janela de matrícula controle de matrícula mat 101 section 1 1: preenche info 2: submete 3: ad curso(Jose, mat 101) 4: ad(Jose) 5: curso aberto? 6: ad(Jose) 53
Forma Geral de Diagramas de Colaboração Objeto cliente Mensagem reflexiva Link 1. 1: Realize outra responsabilidade : Cliente : Fornecedor 1: Realize responsabilidade Mensagem Objeto fornecedor 54
Exemplo de Diagrama de Colaboração 1: informação do curso 2: processa janela de curso : Janela. Curso 3: adiciona curso : Secretaria gerenciador : Gerenciador. Curriculo curso : Curso 4: novo curso 55
Colaboração X Sequência Colaboração n n Melhores para visualizar os relacionamentos e responsabilidades de um dado objeto Mais fáceis de desenhar - úteis em sessões de brainstorm Seqüência n n n Melhores para visualizar a seqüência do fluxo no tempo Melhores para visualizar o fluxo completo Mais adequados para cenários complexos 56
Exercício 57
Mecanismos adicionais de UML Estereótipos Notas Propriedades (Tagged values) Restrições 58
Estereótipos Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro já existente Pode ser aplicado a todos os elementos Representado como n n um novo ícone A notação <<novo_elemento>> 59
Estereótipos - Exemplo Classes de fronteira: <<boundary>> Classe. Fronteira 60
Notas Anotação utilizada para adicionar informação a diagramas n n Pode ser afixionada a qualquer elemento de UML Pode ser ligada a um elemento com uma linha tracejada Leitora. Cartao Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético. 61
Propriedades (Tagged Values) Servem para estender elementos UML, adicionando informações a eles Exemplos já definidos em UML: n n Persistence Location (ex: no cliente, no servidor) Novas propriedade podem ser criadas Cliente {persistence} Leitora. Cartao {location=server} 62
Restrições Usadas para criação de novas regras sobre elementos do modelo ou modificação de regras existentes Funcionário Professor 1. . * Coordenador 3 1 Departamento {subset} 1 63
FIM!!! 64
- Slides: 64