Baixe o app para aproveitar ainda mais
Prévia do material em texto
Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Diagrama de classes �Estrutura do sistema (classes) �Representação estática da colaboração (relações) �Relações �associação (mais comum) �agregação (um tipo de associação), �generalização/especialização �dependência Associação Professor Disciplina leciona Objetos de uma classe se associam a objetos de outra Nome da associação Multiplicidade das relações �������� � �� � � � ����������� ����� ���������� �� � � ��������� ���� �� ��� �� � � �� �� ���� ���� ���� �� ���� ���� � ��!����!� ��� � �� � �������� Multiplicidade: exemplo Professor Disciplina leciona 1..* 1 João José Maria Matemática Física quim História Multiplicidade: exercício João José Maria FIAT AXY8704 FUSCA BHY9910 CORCEL ATT1020 Qual a representação em UML para o caso seguinte? Pessoa Carro Multiplicidade: exemplo Qual a representação em UML para o caso seguinte? Faça um exemplo com instâncias que ilustre a representação. Uma pessoa participa de no máximo 3 projetos, mas pode não participar. Um projeto pode ter vários participantes e somente pode começa a existir quando o primeiro participante é designado. Navegabilidade: unidirecional Professor Disciplina leciona Não navegável navegável Navegabilidade: bidirecional navegável navegável Professor Disciplina leciona Direção de leitura Navegabilidade: não especificada Professor Disciplina leciona Não especificada Não especificada Papéis Empresa Pessoa Trabalha ou emprega ? Qual a interpretação desejada? pessoa trabalha para Empresa ou empresa trabalha (presta um serviço) para Pessoa; Trabalha Emprega (contrata) empresa emprega Pessoa ou pessoa emprega (contrata) Empresa Papéis Empresa Pessoa empregador empregado Papel de empresa Papel de pessoa Uso de papéis pode suprimir ambigüidades Levantamento das associações �Examinar �Regras do negócio, �Modelo do domínio �Requisitos funcionais �Casos de uso �Diagramas de interação Associações reflexiva Objetos de uma classe se relacionam com objetos da mesma classe Associação reflexiva: exemplo 1 Pessoas Pessoa 0..* filho pai 0..1 Mário José Maria Carlos Filho(a) pai Mário é pai de Maria Quem é o pai de Mário? Associação reflexiva: exemplo 2 João Maria José Mário Gerente subordinado João é gerente de Maria e José Empregado 0..* gerente subordinado 1 José é gerente de Mário Quem é gerente de João? Classes associativas Quando uma relação associativa possui atributos próprios pode ser transformada em classe. Classes associativas: características �Frequentes em relações de multiplicidade *:* �Não é nomeada: somente a classe associativa �Classes associativas podem estar relacionadas a outras classes. Classes associativas: exercício � Uma companhia aérea oferece vôos �Número do vôo �Data e horário de partida �Duração � Passageiros tem programa de fidelidade �Número do cartão de fidelidade �Nome �Sobrenome � Passageiros recebem milhas por vôo função da duração Levantamento de associações �Exemplo: �regras do negócio de uma biblioteca �“um aluno pode emprestar no máximo quatro obras” Aluno Livro Empresta 0..4 0..1 Levantamento das associações sd análise casos de uso :meteorologista :IUConv ersao :CtrlConv ersao :Historico :Conv ersaoCF solicitar valor Celsius valor Celsius? c c converter valor c guardar conversao valor Fahrenheitmostrar valor convertido valor Fahrenheit Classes de análise e associações class Classes de análise (associações) ConversaoCFCtrlConversao Historico IUConversao :IUHistorico CtrlHistorico 0..10 pertence 1 1 111 1 11 1 AGREGAÇÃO � Composição/pertinência �associação � Parte � Todo � Propagação class Classe Janela Botão ComboBox ScrollBar 3 1 1 1 0..1 1 Exercício: desenhe uma instância possível da classe janela Agregação: adornos class Classe Time Jogador ** Qual a interpretação? Tipos de agregação �Composição �Associação class Classe Janela Botão ComboBox ScrollBar 3 1 1 1 0..1 1 class Classe Time Jogador ** Agregação por composição �Relação forte �Destruição do todo se propaga para as partes �Tempo de vida do todo = das partes Exemplo: agregação por composição class Aluno { public String nome; private Endereco endereço = new Endereco(“R. JP”,518, “APTO 14”, “Curitiba”); } Agregação por associação �Relação mais fraca que anterior �Tempos de vida diferentes Agregação: diferença Levantamento de agregações � Decomposição � dividir classe complexa � Composição � Coleção de objetos reunidos � barra de rolagem + menu + text area = janela � Partes comuns � classes com subconjunto de atributos semelhantes Agregação: partes comuns Classes de análise e relações class Classes de análise (associações) ConversaoCFCtrlConversao Historico IUConversao :IUHistorico CtrlHistorico 0..10 1 1 111 1 11 1 GENERALIZAÇÃO � Classes compartilham atributos e comportamentos � É um tipo de � Herda atributos e métodos Relação de generalização GENERALIZAÇÃO Sobreposição do método calcularIPVA Taxonomia: hierarquia de classes Atributos e operações comuns Atributos e operações específicas Qualidade de uma hierarquia �Estável: critérios de classificação não mudam ao longo do tempo. �Extensível: é fácil incluir novas classes derivadas na hierarquia �Dica: respeitar o princípio da substituição Princípio da substituição Qualquer instância de uma classe derivada pode ser tratada como se fosse uma instância de uma classe base sem alterar a semântica de um programa escrito para a classe base. Exemplo Círculo e polígonos podem ser tratados como FormaGeométrica Exemplo: taxonomia mal feita Livro LivroEmprestado LivroDisponível �Não construir hierarquias em função de estados das classes Herança múltipla ObjetoVoador Av ião Helicóptero Pássaro Animal
Compartilhar