A linguagem unificada de modelagem UML A linguagem unificada de modelagem Visão Geral
Origens e Criadores OMT-2 (James Rumbaugh) Booch-94 (Grady Booch) OOSE (Ivar Jacobson)
História e padronização
Tradicional e Moderna Classes Objetos Use Cases Interfaces Relacionamentos Componentes ODBMS RDBMS Sistemas de grande porte Java Beans Sistemas de tempo real CORBA Design Patterns Objetos de negócio ActiveX/COM+
Usos de UML Visualização Especificação Documentação Comunicação Construção
Elementos essenciais Elementos Estruturais Elementos Comportamentais Elementos de Extensão e Anotação Elementos de Agrupamento
Elementos estruturais OBJETO CLASSE NÓ INTERFACE COMPONENTE IPessoa RELACIONAMENTOS Associação Herança Navegabilidade Agregação Composição Realização Dependência
Elementos comportamentais Cadastrar cliente USE CASE MENSAGENS e TRANSIÇÕES ESTADOS H Retorno/controle Mensagem assíncrona Auto-(mensagem/transição) Mensagem/transição ATOR
Elementos de Agrupamento PACOTES
Elementos de Extensão e Anotação «importa» ESTEREÓTIPO {autor=Janjão Lima data=12/105/2004} TAGGED VALUES {frozen} RESTRIÇÃO Permitem adicionar novas propriedades aos elementos de UML. ANOTAÇÃO Esta operação deve ser chamada depois da conexão
Conceitos (I) UML pode ser usado para Mostrar os limites de um sistema e suas principais funções, usando use cases e atores Ilustrar a realização dos use cases, usando os diagramas de interação Representar a estrutura estática de um sistema, usando diagramas de classe
Conceitos (II) UML pode ser usado, também, para Modelar o comportamento de objetos, com diagramas de estados Apresentar a implementação física e a arquitetura de um sistema, com diagramas de componentes e diagramas de implantação Criar extensões, usando estereótipos
Atores Atores são pessoas ou coisas que interagem com o sistema em desenvolvimento <<Ator>> Coordenador
Use cases Um use case é a especificação de sequências de ações que um sistema, subsistema, ou classe pode realizar, interagindo com um dos atores Use cases podem incluir seqüências alternativas, ou seqüências excepcionais (de erro) Verificar pré-requisitos Matricular aluno Solicitar histórico
Diagramas de Use cases Solicitar Solicitar histórico do histórico <<estende>> Solicitar histórico do curso atual Solicitar histórico de todos os cursos Solicitar histórico Estudante Verificar dependências Matricular aluno <<inclue>> Sistema de controle de pre-requisitos
Diagramas de Interação Um diagrama de interação mostra um conjunto de objetos, seus relacionamentos e as mensagens que podem ser enviadas entre eles Podem ser de dois tipos (isomórficos): Diagramas de seqüência dão ênfase à ordenação das mensagens Diagramas de colaboração enfatizam o relacionamento entre os objetos que trocam mensagens
Diagramas de Seqüência
Diagramas de Colaboração
Diagramas de Atividades Os Diagramas de Atividades mostram o fluxo entre atividades (ações não-atômicas). Ex: fluxos de processos, fluxos de eventos, detalhamento de operações. São um caso especial dos Diagramas de Estados, com a maioria das transições resultantes do término das atividades São semelhantes aos antigos fluxogramas São muito usados para modelar atividades concorrentes
Diagramas de Atividades
Diagramas de classes Os diagramas de classes são os principais diagramas estruturais da UML Diagramas de classe mostram classes, interfaces e os relacionamentos entre esses elementos As classes especificam a estrutura e o comportamento dos objetos Objetos são instâncias de classes
Diagramas de Classe itens representante de vendas IPessoa Cliente Pedido Cliente -codigo: Integer -nome: String -dataRecebido -endereco: String -total: Currency -dataPrimeiraCompra: Date -dataUltimaCompra: Date +confirmar() -totalComprado: Currency +cancelar() -calcularTotal():Currency #creditoPermitido: Currency gerarNovoCodigo: String #nivelCredibilidade() itens * Cliente pessoa-jurídica Item de Pedido Cliente pessoa-física nomeContato: String -quantidade: Integer nome: String -preco: Currency telefones[1..10]: String CPF: String CGC: String -emEstoque: Boolean numCartaoCredito FAX[1..3]: String colocarListaNegra() * representante de vendas Produto * Empregado IPessoa
Diagramas de objetos Os diagramas de objetos mostram uma “fotografia” de um sistema OO em execução São mostrados os objetos, com os valores de seus atributos e as ligações entre eles Os diagramas de objetos são úteis para a modelagem de estruturas de dados complexas
Diagramas de Objetos * -matrícula: String -nome: String Professor -codDisciplina: String -descrição: String -codTurma: String Curso -período: Integer Aluno [0..10] ministra [1..5] * [1..3]
Diagramas de estados Os diagramas de estados são usados para modelar o comportamento de objetos (com comportamento complexo) Nos diagramas de estados são modelados os estados em que um objeto pode estar e os eventos que fazem o objeto passar de um estado para outro
Diagramas de estados Ativo Ocioso Validando Selecionando Processando cartãoInserido Ativo Ocioso cancelar Validando H fazerManutenção [continuar] [não continuar] Selecionando Processando Manutenção Imprimindo entry / lerCartão exit / ejetarCartão
Diagramas de Componentes Diagramas de componentes são usados para modelar o aspecto físico de um sistema São mostrados componentes e os relacionamentos entre eles Exemplos de componentes são documentos, executáveis, e tabelas de bancos de dados
Diagramas de Componentes
Diagramas de Implantação Os diagramas de implantação são usados para modelar o ambiente em que o o sistema será executado São compostos por nós e relacionamentos de comunicação Um nó pode ser, por exemplo, um computador, uma rede, um disco rígido, um sensor, etc.
Diagramas de Implantação
Bibliografia Recomendada The Unified Modelling Language User Guide (Grady Booch) The Unified Modelling Language Reference Manual (James Rumbaugh) The Unified Software Development Process (Ivar Jacobson) UML Distilled (Martin Fowler) http://www.eribeiro.com.br/pablo/uml