A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

© Ricardo Pereira e Silva

Apresentações semelhantes


Apresentação em tema: "© Ricardo Pereira e Silva"— Transcrição da apresentação:

1 © Ricardo Pereira e Silva www.inf.ufsc.br/ricardo
Diagrama de classes Aula baseada no capítulo 3 do livro SILVA, Ricardo P. e. UML 2 em modelagem orientada a objetos. Florianópolis, SC: Visual Books, p. © Ricardo Pereira e Silva

2 Objetivo Apresentar o diagrama de classes de UML
Seus elementos sintáticos Sua finalidade em um processo de modelagem © Ricardo Pereira e Silva

3 Diagrama de classes Resultado do esforço mais primitivo de geração de modelos gráficos que descrevessem um programa orientado a objetos Reflete a estrutura do código Classes Cada classe com seus atributos e métodos Relacionamentos envolvendo classes © Ricardo Pereira e Silva

4 Aparência do diagrama de classes
© Ricardo Pereira e Silva

5 Finalidade do diagrama de classes
Modelar os elementos de um programa orientado a objetos em tempo de desenvolvimento Classes com seus atributos e métodos Modelar os relacionamentos entre classes, de forma mais explícita que aquela do código Herança Agregação (e composição) Associação © Ricardo Pereira e Silva

6 Representação de classe
Ver capítulo 3, seção 3.1 A divisão superior do retângulo é reservada ao identificador da classe, isto é, seu nome; a parte central, aos atributos e a inferior, aos métodos. O conjunto de atributos e métodos pode ser omitido da representação. Quando são omitidos, as linhas que dividem o retângulo também podem ser omitidas. © Ricardo Pereira e Silva

7 Representação de atributo
Exemplos ocupante # ocupante: Jogador # jogadores: Jogador [2..5] {ordenado, único} Sintaxe de UML para representação de atributo [<visibilidade >] [‘/’] <nome> [‘:’ < tipo >] [‘[‘ <multiplicidade> ‘]’] [‘=’ <valor_inicial>] [‘{‘ <propriedade> [‘,’ < propriedade >]* ’}’] <visibilidade > pode ser público (+), privado (-), protegido (#) ou pacote(~); ‘/’ significa que se trata de um atributo derivado – seu valor é computado a partir de outras informações; <nome> é o identificador do atributo (jamais iniciado com letra maiúscula); ‘:’ < tipo > é o identificador do tipo do atributo; <multiplicidade> ::= <faixa> [‘{’ <ordem> [ ‘,’ <unicidade> ] ‘}’ ]; <faixa> ::= [ <valor_inferior> ‘..’ ] <valor_superior>; <ordem> pode ser ordenado ou não ordenado; <unicidade> pode ser único ou não único; < propriedade > pode ser usado para indicar outras características não expressas em outros campos, como que o atributo não permite alteração de valor (readOnly). © Ricardo Pereira e Silva

8 Representação de atributo
Pode ser representado dentro da figura de classe ou por meio de uma seta (associação unidirecional) © Ricardo Pereira e Silva

9 Representação de método
Exemplos + iniciar() + alocarPeao (onde : Posicao, quem: Jogador): boolean Sintaxe de UML para representação de método [<visibilidade>] <nome> ‘(‘ [<lista_parametros>] ‘)’ [‘:’ [<tipo_retorno>] ‘{‘ <propriedade> [‘,’ < propriedade >]* ‘}’] © Ricardo Pereira e Silva

10 Recomendação para estabelecimento de visibilidade
Atributos → protegidos Princípio da ocultação de informação do paradigma de orientação a objetos Possibilita que atributos herdados ou definidos na classe sejam tratados de maneira uniforme Necessidades específicas podem justificar atributos privados Atributos públicos → JAMAIS © Ricardo Pereira e Silva

11 Recomendação para estabelecimento de visibilidade
Métodos → públicos O meio externo acessa uma classe através de seus métodos Necessidades específicas podem justificar o aumento de restrição de visibilidade © Ricardo Pereira e Silva

12 Métodos concretos e abstratos
Método concreto → composto por assinatura e corpo Pode ser invocado em tempo de execução para cumprir a responsabilidade atribuída a ele © Ricardo Pereira e Silva

13 Métodos concretos e abstratos
Método abstrato → composto apenas por assinatura Uma declaração de responsabilidade, mas sem a capacidade de cumpri-la, em função da ausência de algoritmo Grafado em itálico © Ricardo Pereira e Silva

14 Classes concretas e abstratas
Classe concreta → possui exclusivamente métodos concretos © Ricardo Pereira e Silva

15 Classes concretas e abstratas
Classe abstrata → possui pelo menos um método abstrato Identificador da classe grafado em itálico Nem todas as responsabilidades da classe materializadas em capacidades Nem todos os métodos possuem algoritmo definido Não pode originar instâncias em tempo de execução © Ricardo Pereira e Silva

16 Relacionamentos – herança
Ver capítulo 3, seção 3.2 © Ricardo Pereira e Silva

17 Herança Relação de especialização entre DUAS classes
Uma delas corresponde a um conceito mais genérico A outra, a um conceito mais específico Ver capítulo 3, seção 3.2 © Ricardo Pereira e Silva

18 Frase característica da herança
<subclasse> é uma espécie de <superclasse> No exemplo, estudante de graduação é uma espécie de estudante Estudante de pós-graduação também é uma espécie de estudante Se frase não faz sentido, o relacionamento de herança é inadequado Cachorro é uma espécie de gato Ver capítulo 3, seção 3.2 © Ricardo Pereira e Silva

19 Herança é unidirecional
Estudante de graduação é uma espécie de estudante MAS estudante NÃO é uma espécie de estudante de graduação © Ricardo Pereira e Silva

20 Semântica da herança Os atributos e métodos da superclasse são herdados pela subclasse Os atributos e métodos da superclasse também fazem parte da subclasse Como se tivessem sido definidos nela © Ricardo Pereira e Silva

21 Níveis hierárquicos de herança
Atributos e métodos de ClasseN herdados por todas as classes da hierarquia de herança © Ricardo Pereira e Silva

22 Herança de atributos É inócuo definir em uma subclasse um atributo com mesmo nome de um atributo de uma superclasse Em qualquer nível da hierarquia de herança Equivaleria à presença de mais de um atributo com o mesmo nome em uma mesma classe Inconsistente © Ricardo Pereira e Silva

23 Herança de métodos Método em subclasse tem a mesma assinatura de método definido em superclasse → sobrescrição de método Método definido na subclasse substitui o método herdado © Ricardo Pereira e Silva

24 Herança e classe abstrata
Classe abstrata → possui pelo menos um método abstrato, que pode ter sido definido na própria classe ou herdado e não sobrescrito O relacionamento de herança precisa ser considerado na definição de classe abstrata © Ricardo Pereira e Silva

25 Relacionamentos – agregação e composição
© Ricardo Pereira e Silva

26 Agregação e composição
Agregação → relacionamento entre DUAS classes que estabelece que uma instância de uma agrupa uma ou mais instâncias da outra Relacionamento todo / parte © Ricardo Pereira e Silva

27 Agregação e composição
Composição → um tipo de relação de agregação com restrições na ligação entre parte e agregado Uma instância da parte é agregada por uma única instância do agregado não há compartilhamento da parte A existência da parte depende da existência do agregado Instanciação do agregado precede a instanciação da parte Destruição do agregado implica na destruição da parte © Ricardo Pereira e Silva

28 Agregação e composição – exemplo
Isso significa que um empregado pode trabalhar para apenas uma empresa e se a empresa for destruída, o empregado também o será. Empresa e EquipeDeProjeto também mantêm uma relação de composição em que valem as mesmas restrições. Considerando que um empregado pode fazer parte de mais de uma equipe de projeto e que a extinção de uma equipe de projeto não implica necessariamente na destruição do objeto empregado, a relação entre EquipeDeProjeto e Empregado não pode ser considerada composição. © Ricardo Pereira e Silva

29 Relacionamentos – associação
© Ricardo Pereira e Silva

30 Associação Quando há o reconhecimento de um relacionamento entre classes, que não pode ser caracterizado como herança e nem como agregação ou composição Pode ser unidirecional ou bidirecional Pode envolver mais de duas classes A associação entre duas classes é chamada associação binária © Ricardo Pereira e Silva

31 Associação com rótulo e papéis
Relacionamento de hierarquia entre empregados, em que um assume o papel de chefe o outro(s) de subordinado © Ricardo Pereira e Silva

32 Associação com indicação de ordem de leitura
Lê-se: Empregado trabalha para Empresa (e não o oposto) © Ricardo Pereira e Silva

33 Associação com navegabilidade explícita
Tabuleiro referencia Jogador; Jogador não referencia Tabuleiro © Ricardo Pereira e Silva

34 Outros relacionamentos – associações especializadas
Realização → associação entre dois elementos em que um deles especifica uma responsabilidade a ser implementada e o outro incorpora a obrigação de implementá-la Usado para associar uma classe a uma interface Ver capítulo 3, seção 3.3 © Ricardo Pereira e Silva

35 Outros relacionamentos – associações especializadas
Dependência → associação entre dois elementos em que um deles é declarado como dependente daquilo que deve estar implementado em outro Um é cliente dos serviços oferecidos pelo outro Usado para relacionar outros elementos além de classes (como interface e classe) Usado também em outros diagramas © Ricardo Pereira e Silva

36 Interfaces (semântica de Java)
Ver capítulo 3, seção 3.4 Classe 1 implementa os métodos declarados em publicador Classe 2 invoca os métodos declarados em publicador (de alguma classe que os implemente) © Ricardo Pereira e Silva

37 Vinculação de classes a uma interface previamente definida
realização dependência © Ricardo Pereira e Silva

38 Estereótipo Ver capítulo 3, seção 3.5 © Ricardo Pereira e Silva

39 Estereótipo Estender o significado do elemento de modelagem a que ele é associado Pode ser usado em classes para dividi-las em categorias em uma especificação Pode ser associado a classes ou a qualquer elemento de qualquer diagrama de UML © Ricardo Pereira e Silva

40 Conclusão Diagrama de classes → modelagem gráfica mais primitiva de um programa orientado a objetos Reflete a estrutura do código Elementos sintáticos do diagrama Classes Relacionamentos Conhecer os elementos do diagrama é requisito para usá-lo em modelagem © Ricardo Pereira e Silva

41 Atividade extra-classe
Ler o texto de referência da presente aula Capítulo 3, O diagrama de classes de UML, do livro UML 2 em modelagem orientada a objetos* Exercitar a edição de diagrama em alguma ferramenta Como os diagramas apresentados nos exemplos SILVA, Ricardo P. e. UML 2 em modelagem orientada a objetos. Florianópolis, SC: Visual Books, p. © Ricardo Pereira e Silva


Carregar ppt "© Ricardo Pereira e Silva"

Apresentações semelhantes


Anúncios Google