Aula 7 diagramas_classes2

819 views
700 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
819
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
25
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula 7 diagramas_classes2

  1. 1. DIAGRAMAS DE CASOS DE USO Profs: Edgar Gemo Zeferino SaugeneUML Casos de uso • Os Uses Cases ou ”casos de utilização” constituem em UML uma técnica para representar o levantamento de requisitos do sistema (Nunes, 2001) • Desde sempre que o correcto levantamento de requisitos no desenvolvimento de sistemas de informação tenta garantir que o sistema será útil para o utilizador final, estando de acordo com as suas necessidades (Nunes, 2001:13)UML 1
  2. 2. Diagramas Classes • Profs: Edgar Gemo • Zeferino SaugeneUML Introdução Aspectos tratados pelos Diagramas de Classe: Dados e FunçõesUML 2
  3. 3. Introdução • Um Diagrama de Classes: – Dá uma visão estática do sistema; – Exibe um conjunto de classes, interfaces e seus relacionamentos; – As classes especificam tanto a estrutura como o comportamento dos objectos (que são instâncias de classes);UML Introdução • Ao completar os diagramas de interação, podemos completar o diagrama de classes: – Normalmente criamos os diagramas de classe em paralelo aos de interação • No final, precisamos apenas incluir os detalhes que faltam (métodos, atributos ou associações)UML 3
  4. 4. Introdução • Informações tipicamente encontradas num Diagrama de Classes: – Classes, associações e atributos – Interfaces, incluindo métodos e constantes – Métodos – Informação de tipo de atributos – Navegabilidade – DependênciasUML Exemplo de Diagrama de ClassesNome da Classe Atributo Estudante Disciplina CodEstudante : string CodDisciplina : String Nome : String Inscrição Nome : String Apelido : String CodEstudante : String Descrição : String BI/DIR : String CodDisciplina : String Nível(Ano) : Integer Endereço : String DataInscrição : date Semestre : String Sexo : char RegimeTemporal : Integer dataNascimento : date 1 1..* efectuarInscricao() 1..* 1 CargaSemanal : integer Naturalidade : string alterarIncricao() Bibliografia : String removerInscricao() registarEstudante() listarInscritos() registarDisciplina() alterarDadosestudante() alterarDisciplina() removerEstudante() removerDisciplina() Operação Associação MultiplicidadeUML 4
  5. 5. Construindo um Diagrama de Classes • Identificar todas as classes que participam no sistema • Adicionar as classes ao diagrama • Identificar os atributos para cada classe • Adicionar os métodos respectivos a cada classeUML Construindo um Diagrama de Classes • Escolher os tipos dos atributos e dos parâmetros dos métodos • Incluir as associações necessárias para dar visibilidade de atributos • Adicionar setas às associações para indicar a direção da visibilidade de atributos (opcional) • Introduzir linhas de relações de dependência para indicar a visibilidadeUML que não seja de atributo 5
  6. 6. Atributos • Um atributo representa alguma propriedade que é compartilhada por todos os objectos de uma classe • Descrevem os dados contidos nas instâncias de uma classe • Servem para manter o estado dos objectos. – Cada objecto possui valores independentes para os mesmos atributosUML Sintaxe de Atributos • Sintaxe – [visibilidade] nome [[multiplicidade]] [:tipo] [= valor inicial] [{propriedades}] – Atributos de classe são sublinhados • Exemplos – CPF: Integer – Nome: String = “Alberto” – Endereço [0..20] : String – gerenciadorDeJanelas: GerenciadorDeJanelasUML 6
  7. 7. Operações • Uma operação é a implementação de um serviço que pode ser requisitado a qualquer objecto ou classe, possivelmente afectando o seu estado – A execução de uma operação pode resultar na alteração do valor de seus atributos – Operações de instância • Actuam sobre uma instância (objecto) de uma classe – Operações de classe • Actuam sobre a classe, criando e/ou modificando atributos de classeUML Sintaxe para Operações • Sintaxe – [visibilidade] nome [(lista-de- parâmetros)] [:tipo-de-retorno] [{propriedades}] – Operações de classe são sublinhadas • Exemplos – LerTemperatura () : Number – Área (Lado : Integer) : Integer – ValorPadrão () : Integer {query}UML 7
  8. 8. Relacionamentos • Poucas classes têm sentido sozinhas • Os relacionamentos ligam classes/objectos entre si criando relações lógicas entre eles • Os relacionamentos podem ser dos seguintes tipos: – Associação, – Agregação e Composição , – Generalização e Herança.UML Notação para Relacionamentos Associação Herança Agregação Dependência Realização ComposiçãoUML 8
  9. 9. Associação • Surge da necessidade de obter mais informação de uma associação. • Normalmente, as classes associativas surgem nas relações de “Muitos para Muitos” rótulo da associação emprega Companhia FuncionárioUML Classe Associativa • É introduzida quando uma associação tem propriedades associadas * 1..* Companhia Empregado Trabalho descrição salárioUML 9
  10. 10. Associação Unária • Quando há um relacionamento de uma classe para ela mesma Funcionário 1..* 1 rótulo da associação gerenciaUML Associação Binária • Quando há duas classe envolvidas na forma direta de uma para a outra Cliente faz Pedido 1 0..*UML 10
  11. 11. Associação N-ária • As linhas das associações são conectadas por um losangoUML Agregação e Composição • A Agregação pretende demonstrar que um “Todo” é composto por “Partes” • A Composição é uma forma mais forte de Agregação – Há uma coincidência da vidas das partes – Uma vez criada a parte, ela irá viver e morrer com o todo – O “Todo” é responsável pelo gerenciamento da criação e destruição das partesUML 11
  12. 12. Agregação e Composição • Exemplo de uma Agregação Mesa Restaurante Num_Mesa Nome 1 1..* MoradaUML Exemplo de uma Composição Item Encomenda Encomenda numItem numE 1 1..* quantidade data tipoEUML 12
  13. 13. Generalização e Herança • Generalização (Herança) – Relacionamento entre um elemento mais geral e um mais específico – O Conceito Herança está presente, pois as subclasses (filhos) herdam da superclasse (pai) a estrutura em termos de atributos e operações.UML Exemplo de Generalização Forma origem mover() exibir() Retângulo Círculo Polígono ponto : Ponto raio : float pontos : ListaDePontos exibir() QuadradoUML 13
  14. 14. Multiplicidade • É a cardinalidade de uma associação (também usa-se 0..*)UML Navegabilidade • Em geral a navegação entre as classes de uma associação é bi- direcional. • Porém, podemos limitá-la a apenas uma direção tem Usuário SenhaUML 14
  15. 15. Exemplos de Diagramas de Classes Classes que se relacionam duplamente: Informação que surge a partir da associação de duas outras classes:UML Exemplos de Diagramas de Classes Agregação:UML 15
  16. 16. Exemplos de Diagramas de Classes Composição: • A remoção do todo implica na remoção das partes; • O acesso às partes é restrito ao todo.UML Exemplos de Diagramas de Classes Generalização/Especificação – A Classe Abstracta •Não permite a criação de objectos; •Existe apenas para gerar novas sub-classes.UML 16
  17. 17. Diagramas de Classes - Restrições • Descrevem situações que NÃO podem ocorrer no modelo • Pode ser usado para: Que o programador siga a orientação, Transformação formal de modelos (MDA).UML Diagramas de Classes - Restrições Restrição {ou} implica na selecção exclusiva entre duas ou mais associações existentes em uma classe. Observação: possível mapeamento para uso de restrição {ou} com multiplicidadeUML máxima 1. 17
  18. 18. Diagramas de Classes - Restrições Observar que para associações OU do tipo 1..* não possível mapear directamente para herança.UML Diagramas de Classes - RestriçõesUML 18
  19. 19. Diagramas de Classes - Discussão Dado o modelo de controle académico: • O aluno pode exercer o papel de monitor durante um período • Permitir que uma pessoa exerça simultaneamente o papel de Professor e Aluno da Universidade Qual é o Problema?UML Diagramas de Classes - Discussão Qual é o Problema? • Acomodação inábil de objectos que mudam de classes, • Transmutação.UML 19
  20. 20. Diagramas de Classes - Discussão A Solução Óptima: • Combinar herança e associação.UML Diagramas de Classes - Erros Comuns 1. Usar classes ou associações para representar consultas ou operações do sistema que não devem ser registradas. 2. Identificar métodos nas classes sem ter feito a modelação temporal O que é sintonizar? -Quem usa?UML -Quais os parâmetros? 20
  21. 21. Diagramas de Classes - Erros Comuns 3. Inserir atributos quando o ideal é criar uma classe.UML Diagramas de Classes - Erros Comuns 4. Usar herança quando a quantidade de tipos é grande ou dinâmica.UML 21
  22. 22. Diagramas de Classes - Erros Comuns 5. Inserir chaves-estrangeiras no diagrama de classes: • As associações são suficientes.UML Diagramas de Classes - Exercícios 1. Em uma Universidade, o plano de carreira para professores é dividido em quatro etapas: Auxiliar, Assistente, Adjunto e Titular. • Construa um modelo de classes que preserve o histórico de um professor durante a sua vida profissional. Em particular, é importante manter o registro do início e término do desempenho em uma das etapas. 2. Considerando um sistema de gestão duma cadeia de Hoteis e os seus serviços, desenhar um diagrama de classes mostrando relacionamentos entre as seguintes classes de objectos (Incluir associações, agregações, generalizações e atributos): • Hotel, quarto, hóspede, funcionário, sauna, boate, restaurante, bar, piscina, reserva e outras classes relacionadas.UML 22
  23. 23. Diagramas de Classes - Exercícios 3. Considere o diagrama de classes UML abaixo e marque a alternativa correcta: a) Considerando um objecto e qualquer de Empresa, pode-se afirmar que a quantidade de objectos de Funcionário que participam da associação a com e é sempre inferior à quantidade de objectos que participam de b (também com e); b) Não existem objectos de Funcionário que participam simultaneamente da associação a e b com um objecto de Empresa; c) Pode existir um objecto de Empresa que não esteja associado a qualquer objecto de Funcionário, seja pela associação a ou b; d) Um objecto de Funcionário pode estar associado com mais de um objecto de Empresa; e) A associação de subordinação garante que um supervisor está associado com subordinados que estão na mesma Empresa.UML Diagramas de Classes - Exercícios 4. Considere o diagrama de classes UML abaixo e marque a alternativa correcta: a) Para cada objecto de Actividade existe somente um único valor de data-início; b) Um objecto de Actor pode simultaneamente gerir vários projetos e actuar em várias actividades; c) Um Objectivo pode ser atendido por vários objectos de Actividade; d) Em um Projecto sua duração é determinada pela duração de suas actividades; e) Os objectos de Actividade são ordenados pelo valor do atributo id.UML 23
  24. 24. Bibliografia • Bennett, S. et all (2002) Object-Oriented Systems Analysis and Design using UML, U.S., Mc Graw-Hill Education • Bezerra, E. (2003), Princípios de Análise e Projecto de Sistemas com UML, Rio de Janeiro, Editora Campus Ltda • Neto, A.C. (2001), Análise e Projeto de Sistemas I, http://www.dcce.ufs.br/ • Nunes, M. e O´Neill (2001), Fundamental de UML, Lisboa, FCA - Editora de InformáticaUML 24

×