UML A linguagem unificada de modelagem Visão Geral Origens e Criadores • OMT-2 • Booch-94 • OOSE UML Visão Geral (James Rumbaugh) (Grady Booch) (Ivar Jacobson) História e padronização UML Visão Geral 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 ActiveX/COM+ UML Visão Geral Objetos de negócio Usos de UML • • • • • UML Visão Geral Visualização Especificação Documentação Comunicação Construção Elementos essenciais Elementos Estruturais Elementos de Extensão e Anotação UML Visão Geral Elementos Comportamentais Elementos de Agrupamento Elementos estruturais OBJETO CLASSE umCliente: Cliente Cliente nome: String sobrenome: String dataNascimento: Date INTERFACE alterarNome(nome: String) alterarTelefone(novoTel: String) calcularSalario(): Currency IPessoa RELACIONAMENTOS Associação Herança Agregação Composição Dependência UML Visão Geral NÓ Navegabilidade Realização Se rvidor Web COMPONENTE Cadastro.exe Elementos comportamentais USE CASE ESTADOS Cadastrar cliente MENSAGENS e TRANSIÇÕES Conectando Mensagem/transição ATOR H Auto-(mensagem/transição) Mensagem assíncrona Retorno/controle UML Visão Geral Elementos de Agrupamento PACOTES Interface gráfica Regras de negócio Acesso ao Banco UML Visão Geral Elementos de Extensão e Anotação ESTEREÓTIPO «importa» RESTRIÇÃO {frozen} ANOTAÇÃO Esta operação deve ser chamada depois da conexão UML Visão Geral TAGGED VALUES {autor=Janjão Lima data=12/105/2004} Permitem adicionar novas propriedades aos elementos de UML. 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 UML Visão Geral 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 UML Visão Geral Atores • Atores são pessoas ou coisas que interagem com o sistema em desenvolvimento <<Ator>> Coordenador Professora UML Visão Geral Sistema de controle de pre-requisitos Secretária Estudante 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) Matricular aluno UML Visão Geral Solicitar histórico Verificar pré-requisitos Diagramas de Use cases Solicitar histórico <<estende>> Solicitar histórico do curso atual <<estende>> Solicitar histórico de todos os cursos Estudante <<inclue>> Matricular aluno Verificar dependências Secretária UML Visão Geral 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): UML Visão Geral – 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 Janela de entrada de pedido p: Pedido : ItemPedido :ItemEstoque pr eparar () * [para cada item do pedido] pr eparar () emEstoque := v erificar () [emEstoque] remover () estoqueBaixo := v erific EstoqueBaixo() [estoqueBaix o] <<criar>> [emEstoque] <<criar>> UML Visão Geral :ItemRenov Estoque :ItemEntrega Diagramas de Colaboração Janela de entrada de pedido 1: preparar() p: Pedido 1.1.2.1: estoqueBaixo := verif icEstoqueBaixo() 1.1: *[para cada item do pedido] preparar() 1.1.1 : emEstoque := verif icar() 1.1.2 : [emEstoque] remover() : ItemPedido 1.1.3 : [emEstoque] <<criar>> UML Visão Geral :ItemEntrega :ItemEstoque 1.1.2.2 [estoqueBaixo] <<criar>> :ItemRenovEstoque 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 UML Visão Geral Diagramas de Atividades Pessoa [sem café] H [sem Coca] Procurar bebida [achou café] Colocar café no filtro Adicionar água à máquina [achou Coca] Pegar xícara Pegar lata de Coca Colocar filtro na máquina Ligar máquina Filtrar café UML Visão Geral Colocar café na xícara Beber H 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 UML Visão Geral Diagramas de Classe Cliente Pedido -nome: String -endereco: String -dataPrimeiraCompra: Date -dataUltimaCompra: Date -totalComprado: Currency -codigo: Integer -dataRecebido -total: Currency +confirmar() +cancelar() -calcularTotal():Currency gerarNovoCodigo: String itens #creditoPermitido: Currency #nivelCredibilidade() * Item de Pedido -quantidade: Integer -preco: Currency -emEstoque: Boolean Cliente pessoa-jurídica nomeContato: String telefones[1..10]: String CGC: String FAX[1..3]: String Cliente pessoa-física nome: String CPF: String numCartaoCredito colocarListaNegra() * Produto representante de vendas * Empregado UML Visão Geral 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 UML Visão Geral Diagramas de Objetos Curso Professor ministra -matrícula: String -nome: String [1..3] [1..5] -codDisciplina: String -descrição: String -codTurma: String Aluno * -matrícula: String -nome: String -período: Integer [0..10] p1: Prof essor p2: Prof essor matricula: "205-6712-09" nome: "Jaelson Castro" c1: Curso : Curso c2: Curso : Curso codCurso: "IF291" descrição: "MPS" codTurma: I7 codCurso: "IF185" descrição: "AER" codTurma: I6 c3: Curso : Aluno : Aluno : Aluno : Aluno : Aluno :aluno Bill matricula: "219846534" nome: "Nelson Mandella" :aluno UML Visão Geral matricula: "562746134" nome: "John Major" : Aluno Lew insky 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 UML Visão Geral Diagramas de estados cartãoInserido Ativo Ocioso cancelar Validando fazerManutenção H [continuar] [não continuar] Manutenção Selecionando entry / lerCartão exit / ejetarCartão UML Visão Geral Processando Imprimindo 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 UML Visão Geral Diagramas de Componentes Cadastro.exe <<link>> Usuários FormCadastro.html Banco <<link>> Principal.html FormEntrada.html UML Visão Geral Autenticacao.exe Senhas 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. UML Visão Geral Diagramas de Implantação PC - G309 Nestscape Communicator 5.0 Principal.html servidorWeb FormCadastro.html Autenticação.exe servidorDeArquivos Cadastro.exe FormEntrada.html servidorBancoDeDados UML Visão Geral SGBD O SGBD a ser utilizado ainda não f oi escolhido. 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 UML Visão Geral