Prof. M.Sc. Ronaldo C. de Oliveira ronaldooliveira@facom.ufu.br FACOM - 2011
UML Linguagem Unificada de Modelagem Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UML Diagrama de Caso de Uso com os cenários Modelo Conceitual Diagrama de Classe Simplificado Diagrama de Seqüência Diagrama de Estado de Objeto Ronaldo C. Oliveira 3
Modelo Conceitual do Sistema (Diagrama de Classe Simplificado)
UML - Modelo Conceitual Um diagrama de classe ilustra as especificações de software para as classes e interfaces do sistema Inclui: Classes, associações e atributos; Interfaces (com operações e constantes); Métodos que manipulam os objetos; Informação sobre o tipo dos atributos; Navegabilidade; Dependências; UML não diferencia modelo conceitual de diagrama de classe (o termo classe de implementação é usado para distinguir o segundo do primeiro) Ronaldo C. Oliveira 5
UML - Modelo Conceitual Modelo Conceitual (diagrama de Classe Inicial) Artefato mais importante da AOO Representa conceitos relevantes (do ponto de vista do modelador) do domínio do problema Na UML, ilustrado com diagramas de estruturas estáticas contendo: Conceitos Associações entre conceitos Atributos de conceitos Ronaldo C. Oliveira 6
UML - Modelo Conceitual Conceitos Idéias, coisas, ou objetos do mundo real Loja Cliente Venda data hora Não representam componentes de software VendasDatabase artefato do software, não faz parte do modelo conceitual data hora Venda classe do software; não faz parte do modelo conceitual imprima() Ronaldo C. Oliveira 7
UML - Modelo Conceitual Identificando Conceitos Regras úteis: É melhor especificar demais do que especificar de menos; Não exclua conceitos simplesmente porque os requisitos não indicam a necessidade de guardar informações sobre eles Comece fazendo uma lista de conceitos candidatos a partir de uma lista de conceitos comuns; Considere os substantivos e frases nominais nas descrições dos cenários dos casos de uso como possíveis candidatos a conceitos ou atributos. Ronaldo C. Oliveira 8
UML - Modelo Conceitual Identificando os Conceitos Analise a descrição dos casos de uso. Identifique os substantivos ou cláusulas substantivas. Classifique os substantivos para um melhor entendimento. FACOM/UFU/BCC/ESofEngenharia de Software Ronaldo C. Oliveira 9
UML - Modelo Conceitual Categoria Objeto físico ou tangível Lugares Transações Itens de transação Papéis de pessoas Container de coisas Coisas em um container Sistemas externos Nomes abstratos Organizações Eventos Catálogos Registros contratuais Serviços financeiros Manuais, livros Exemplos Terminal de ponto-de-venda; Avião Loja; Aeroporto Venda, Pagamento; Reserva Itens de venda; Parcelas de pagamento Operador; Piloto Loja; Avião Item; Passageiro Serviço de crédito; Controle de tráfego aéreo Fome; Aracnofobia Departamento de vendas; Companhia aérea Política de devolução; Política de cancelamento Catálogo de produtos; Catálogo de peças Recibo, Contrato de trabalho; Registro de manutenção Linha de crédito; Ações Manual do empregado; Manual de reparos Ronaldo C. Oliveira 10
UML - Modelo Conceitual Critérios para definição de conceitos Possui atributos? Guarda informação? Há atributos comuns a outros conceitos? O conceito é essencial ao sistema? FACOM/UFU/BCC/ESofEngenharia de Software Ronaldo C. Oliveira 11
UML - Modelo Conceitual Criando um Modelo Conceitual Passos sugeridos: 1. Liste os conceitos candidatos para os casos de usos em questão usando a lista de categorias comuns e identificação textual de nomes; 2. Desenhe-os em um modelo conceitual; 3. Adicione as associações necessárias para registrar os relacionamentos para os quais é preciso preservar alguma memória; 4. Adicione os atributos necessários para cumprir os requisitos de informação. Ronaldo C. Oliveira 12
UML - Diagrama de Classe Modelo Conceitual Identificando Associações Regras úteis: Focar nas associações cujo conhecimento deve ser preservado; Usar nomes baseados em expressões verbais que façam sentido quando lidas no contexto do modelo; Evitar mostrar associações deriváveis ou redundantes; É mais importante identificar conceitos do que associações; Associações demais tendem a confundir um modelo conceitual ao invés de iluminá-lo. Ronaldo C. Oliveira 13
UML - Diagrama de Classe Modelo Conceitual Atributo Um atributo é um dado lógico de um objeto do domínio Definidos para conceitos cujos requisitos (casos de uso) sugerem a necessidade de preservar algum tipo de informação Ex.: atributos data e hora para o conceito Venda Notação na UML Venda data horainicial : Time atributos Ronaldo C. Oliveira 14
UML - Diagrama de Classe Modelo Conceitual Identificando Atributos Atributos devem preferencialmente representar tipos primitivos de dados ou de valores simples Ex.: Data, Número, Texto, Hora, Endereço, etc. Atributos não devem ser usados para: Representar um conceito complexo Relacionar conceitos (atributo chaveestrangeira ) Ronaldo C. Oliveira 15
UML - Diagrama de Classe Modelo Conceitual Um atributo deve ser de tipo não-primitivo quando: É composto de seções separadas Ex.: endereço, data Precisa ser analisado ou validado Ex.: CPF, número de matrícula Possui outros atributos Ex.: Um preço promocional com prazo de validade É uma quantidade com uma unidade Ex.: valores monetários, medidas Ronaldo C. Oliveira 16
UML - Diagrama de Classe Exemplo de Modelo Conceitual responsavel Escola nome : Nome endereco : Sequencia de Caracteres telefone : Numero tem 1 1..* 0..* Departamento nome : Nome 1 1..* atribuido a 1..* possui memb ro * Aluno matricula : Número fre quenta * * Curso 1..* códigocurso: Número nome: Nome ensina * 1..* 1..* 1 Instrutor titulo : Nome Pess oa Nom e En dereço Telefone Ronaldo C. Oliveira 17
UML - Diagrama de Classe Exemplo de Modelo Conceitual Exercício: Construir o Modelo Conceitual do Sistema de Vídeo Locadora Ronaldo C. Oliveira 18
Diagrama de Interação
UML Diagrama de Interação O Diagrama de Interação visa construir a modelagem comportamental ou dinâmica do sistema, mostrando o comportamento dos objetos, considerando a seqüência da troca de mensagens entre estes objetos, para que cumpra um determinado papel ou se atenda a um determinado contexto; Favorecem a identificação das responsabilidades que as classes poderão ter, uma vez que as mensagens trocadas pelos objetos correspondem a métodos da classe ao qual pertencem; O diagrama de interação tem o foco em um caso de uso, onde busca-se identificar quais os objetos participam da interação. Ronaldo C. Oliveira 20
UML Diagrama de Interação Um diagrama de interação ilustra as interações de mensagens entre instâncias (e classes) no modelo de classes Atribuição de responsabilidades aos objetos Ponto de partida é o cumprimento das pós-condições especificadas nos contratos de operação A UML defines dois tipos de diagramas de interação: Diagramas de seqüência (faz parte da análise) Diagramas de colaboração entre os objetos (faz parte do projeto) Ronaldo C. Oliveira 21
Diagrama de Seqüência
UML Diagrama de Seqüência Mostra como diversos objetos se relacionam (interagem, colaboram) no ambiente de negócios para a realização de um caso de uso; Auxilia na identificação de serviços/métodos e delegação de responsabilidades; Elementos: Objetos; Mensagens; Linha da vida; Foco de controle; Retorno. Ronaldo C. Oliveira 23
UML Diagrama de Seqüência Diagramas de seqüência Representa interações entre objetos através de mensagens envidadas :Instância da Classe A :Instância da Classe B mensagem1() mensagem2() mensagem3() Ronaldo C. Oliveira 24
UML Diagrama de Seqüência Um diagrama de seqüência ilustra a ordem das interações dos atores externos com o sistema (representado como uma caixa-preta ) e os eventos que eles geram sistema como uma caixa preta Ator Comprar Ítens Caixa :Sistema Repita até não existir mais itens entraritem(código, quantidade) encerrarvenda() Texto explicativo Lógica, controle, Iteração Deve ser trazido do Use case fazerpagamento(valor) Ronaldo C. Oliveira 25
UML Diagrama de Seqüência Eventos e Operações Um evento de sistema é um evento externo de entrada gerado por um ator do sistema Inicia uma operação de resposta de mesmo nome Uma operação de sistema é uma operação que é executada em resposta a um evento de sistema Comprar Itens Caixa :Sistema entraritem(código, quantidade) Ronaldo C. Oliveira 26
UML Diagrama de Seqüência Representando Operações: O conjunto necessário de operações de sistema é determinado através da identificação dos eventos de sistema Exemplos de operações: entraritem(código, quantidade) encerrarvenda() fazerpagamento(quantia) Na UML, representado como operações de um objeto denominado Sistema: Sistema As mensagens que chegam a um determinado objeto farão parte dos métodos da classe ao qual o objeto pertence. entraritem() encerrarvenda() fazerpagamento() Ronaldo C. Oliveira 27
UML Diagrama de Seqüência Como fazer Diagramas de Seqüência Regras úteis: 1. Identificar os atores que operam diretamente com o sistema. Desenhar uma linha vertical representando cada um desses atores; 2. Desenhar uma linha vertical representando cada um dos objeto (classes) que o caso de uso manipula; 3. A partir da descrição das seqüências típicas de eventos dos casos de uso, identificar os eventos de sistema que cada ator gera. Ilustrar os eventos no diagrama através de mensagens.; 4. Opcionalmente, incluir o texto do caso de uso à esquerda do diagrama. Ronaldo C. Oliveira 28
UML Diagrama de Seqüência Nomeando Eventos e Operações Regras úteis: Começar com um verbo Enfatizar intenção em vez do meio físico de entrada ou componente gráfico da interface com o usuário Ex.: encerrarvenda em vez de pressionarteclaenter Expressar intenção no nível mais alto de abstração Ex.: fazerpagamento em vez de entrarquantia Ronaldo C. Oliveira 29
UML - Diagrama de Seqüência Exemplo Ronaldo C. Oliveira 30
UML - Diagrama de Seqüência Exemplo Clinica Médica Paciente MarcarConsulta() Secretária ObterHorariosVagos() :Agenda SelecionarHorario() [Horario selecionado] EfetivarAgendamento(horario, Nome,Telefone) Agendar(ConsultaMarcada) Ronaldo C. Oliveira 31
Diagrama de Estados
UML Diagrama de Estados Normalmente um sistema reage a estímulos provenientes de fora dele ou ainda estímulos temporais por ele mesmo desencadeados. Essa reação pode originar respostas externas ao sistema. Esta dinâmica é fruto da colaboração entre os objetos, os quais estarão em determinado estado em um certo período de tempo. O Diagrama de Estados é usado para mostrar os possíveis estados dos objetos de uma classe. A mudança de um estado para outro é chamada de Transição de Estado. Ronaldo C. Oliveira 33
UML Diagrama de Estados Componentes de um diagrama de estado Estado representação de uma situação de um determinado objeto em determinado tempo estado 1 Início do diagrama Final do diagrama Ronaldo C. Oliveira 34
UML Diagrama de Estados Todo diagrama de estado deve conter uma indicação de início e pode conter uma ou mais situações de finalização; Durante a vida de um objeto, pode vir a existir controle sobre várias situações, cada qual podendo assumir diversos estados possíveis; Um objeto permanece em um determinado estado por um tempo finito. Ronaldo C. Oliveira 35
UML Diagrama de Estados A transição de um estado para outro deve conter algumas características: Condição ou evento que ocasiona a mudança de estado; A ação ou operação que deverá ser executada para que a mudança de estado aconteça. Estado 1 Estado 2 Condição Ação Ronaldo C. Oliveira 36
UML - Diagrama de Estados Exemplo Mat riculado efetivar matricula Cursando Disciplina matricular matricular aprovar reprovar Aprovado Reprovado concluir curs o deseistir do curso Ronaldo C. Oliveira 37
UML - Diagrama de Estados Exemplo Clinica Médica Ronaldo C. Oliveira 38