Diagramas de
Classe
Professor	
  	
  
Wagner	
  Gadêa	
  Lorenz	
  
wagnerglorenz@gmail.com	
  	
  
Disciplina:	
  Engenha...
Introdução
O Diagrama de Classe é um dos mais importantes e mais
utilizados na UML.
Seu principal enfoque está em permitir...
Introdução
Esse diagrama apresenta uma visão estática de como as
classes estão organizadas, preocupando-se como
definir a ...
Introdução
O Diagrama de Classes é composto por suas classes e
pelas associações existentes entre elas, ou seja, os
relaci...
Diagrama de Classes
Objetivo
Descrever os vários tipos de objetos no sistema e o
relacionamento entre eles.
Perspectivas
U...
Diagrama de Classes - Perspectivas
• Conceitual (exemplo)
• Representa os conceitos do domínio em estudo.
• Perspectiva de...
Diagrama de Classes - Perspectivas
• Conceitual
• Representa os conceitos do domínio em estudo.
• Perspectiva destinada ao...
Diagrama de Classes - Perspectivas
Engenharia de Software II
8
Prof. Wagner Gadêa Lorenz
Diagrama de Classes - Perspectivas
• Especificação
• Tem foco nas principais interfaces da arquitetura, nos principais mét...
Diagrama de Classes - Perspectivas
Engenharia de Software II
10
Prof. Wagner Gadêa Lorenz
Diagrama de Classes - Perspectivas
• Implementação - a mais utilizada de todas
• Aborda vários detalhes de implementação, ...
Diagrama de Classes - Perspectivas
Engenharia de Software II
12
Prof. Wagner Gadêa Lorenz
Um Diagrama de Classes contém:
• Entidades
• Relacionamentos
Engenharia de Software II
13
Prof. Wagner Gadêa Lorenz
Entidades
• Classe
• Representação gráfica
Engenharia de Software II
14
Prof. Wagner Gadêa Lorenz
• Classe Concreta
• Uma ...
Entidades
• Interface
• Representação gráfica
Engenharia de Software II
15
Prof. Wagner Gadêa Lorenz
• Representação Icon
Entidades
• Perspectivas
• Conceitual
• Apenas classes são utilizadas. Neste tipo de perspectiva, uma classe é interpretad...
Relacionamentos
• Papel
• Descreve o relacionamento
Engenharia de Software II
17
Prof. Wagner Gadêa Lorenz
Relacionamentos
• Multiplicidade (utilizado em todas as perspectivas de forma
uniforme)
• Notações possíveis:
• Exemplo:
E...
Relacionamentos
• Associação (utilizado em todas as perspectivas)
• Representação Gráfica
Associação
• Perspectiva:
• Conc...
Relacionamentos
• Perspectiva:
• Implementação
• Permite saber quem está apontando para quem, através da representação
grá...
Relacionamentos
• Herança ou Generalização (utilizado em todas as perspectivas)
• Representação Gráfica
• Perspectiva:
• S...
Relacionamentos
• Herança ou Generalização (utilizado em todas as perspectivas)
• Exemplo de uma herança de implementação:...
Relacionamentos
• Herança ou Generalização (utilizado em todas as perspectivas)
• Navegabilidade (utilizado apenas na pers...
Relacionamentos
• Agregação (utilizado apenas na perspectiva de implementação)
• Definição
• Agregação é uma associação em...
Relacionamentos
• Composição (utilizado apenas na perspectiva de implementação)
• Definição
• Em mais baixo nível, em term...
Relacionamentos
• Implementação (utilizado apenas na perspectiva de implementação)
• Em Inglês: realization
• Definição
• ...
Exemplo contendo as notações
Engenharia de Software II
27
Prof. Wagner Gadêa Lorenz
Próxima Aula
•Exercícios de fixação sobre Diagramas de Classe.
Engenharia de Software II
28
Prof. Wagner Gadêa Lorenz
Dúvidas
• Conteúdo
• Moodle
• (http://wagnerglorenz.com.br/moodle/)
• Dúvidas
• wagnerglorenz@gmail.com
Engenharia de Soft...
Referências Bibliográficas
• GUEDES, Gilleanes T. A.. UML: uma abordagem
prática. São Paulo: Novatec, 2004.
• Software Arc...
Próximos SlideShares
Carregando em…5
×

Diagrama de classe

497 visualizações

Publicada em

Diagrama de Classe

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
497
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
26
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Diagrama de classe

  1. 1. Diagramas de Classe Professor     Wagner  Gadêa  Lorenz   wagnerglorenz@gmail.com     Disciplina:  Engenharia  de  So>ware  II   Curso  de  Sistemas  de  Informação Cachoeira do Sul, 01 de Abril de 2015.
  2. 2. Introdução O Diagrama de Classe é um dos mais importantes e mais utilizados na UML. Seu principal enfoque está em permitir a visualização das classes que comporão o sistema com seus respectivos atributos e métodos, bem como em demonstrar como as classes do diagrama se relacionam, complementam e transmitem informações entre si. Engenharia de Software II 2 Prof. Wagner Gadêa Lorenz
  3. 3. Introdução Esse diagrama apresenta uma visão estática de como as classes estão organizadas, preocupando-se como definir a estrutura lógica das mesmas. Engenharia de Software II 3 Prof. Wagner Gadêa Lorenz
  4. 4. Introdução O Diagrama de Classes é composto por suas classes e pelas associações existentes entre elas, ou seja, os relacionamentos entre as classes. Engenharia de Software II 4 Prof. Wagner Gadêa Lorenz
  5. 5. Diagrama de Classes Objetivo Descrever os vários tipos de objetos no sistema e o relacionamento entre eles. Perspectivas Um diagrama de classes pode oferecer três perspectivas, cada uma para um tipo de observador diferente. Engenharia de Software II 5 Prof. Wagner Gadêa Lorenz
  6. 6. Diagrama de Classes - Perspectivas • Conceitual (exemplo) • Representa os conceitos do domínio em estudo. • Perspectiva destinada ao cliente. • Especificação (exemplo) • Tem foco nas principais interfaces da arquitetura, nos principais métodos, e não como eles irão ser implementados. • Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento, tais como gerentes de projeto. • Implementação - a mais utilizada de todas (exemplo) • Aborda vários detalhes de implementação, tais como navegabilidade, tipo dos atributos, etc. • Perspectiva destinada ao time de desenvolvimento. Engenharia de Software II 6 Prof. Wagner Gadêa Lorenz
  7. 7. Diagrama de Classes - Perspectivas • Conceitual • Representa os conceitos do domínio em estudo. • Perspectiva destinada ao cliente. Engenharia de Software II 7 Prof. Wagner Gadêa Lorenz
  8. 8. Diagrama de Classes - Perspectivas Engenharia de Software II 8 Prof. Wagner Gadêa Lorenz
  9. 9. Diagrama de Classes - Perspectivas • Especificação • Tem foco nas principais interfaces da arquitetura, nos principais métodos, e não como eles irão ser implementados. • Perspectiva destinada as pessoas que não precisam saber detalhes de desenvolvimento, tais como gerentes de projeto. Engenharia de Software II 9 Prof. Wagner Gadêa Lorenz
  10. 10. Diagrama de Classes - Perspectivas Engenharia de Software II 10 Prof. Wagner Gadêa Lorenz
  11. 11. Diagrama de Classes - Perspectivas • Implementação - a mais utilizada de todas • Aborda vários detalhes de implementação, tais como navegabilidade, tipo dos atributos, etc. • Perspectiva destinada ao time de desenvolvimento. Engenharia de Software II 11 Prof. Wagner Gadêa Lorenz
  12. 12. Diagrama de Classes - Perspectivas Engenharia de Software II 12 Prof. Wagner Gadêa Lorenz
  13. 13. Um Diagrama de Classes contém: • Entidades • Relacionamentos Engenharia de Software II 13 Prof. Wagner Gadêa Lorenz
  14. 14. Entidades • Classe • Representação gráfica Engenharia de Software II 14 Prof. Wagner Gadêa Lorenz • Classe Concreta • Uma classe é representada na forma de um retângulo, contendo duas linhas que separam 3 partes. A primeira contém no nome da classe, a segunda os atributos da classe e a última os métodos da mesma. • Classe Abtrata • Única diferença é o estilo da fonte do nome da classe que fica em itálico.
  15. 15. Entidades • Interface • Representação gráfica Engenharia de Software II 15 Prof. Wagner Gadêa Lorenz • Representação Icon
  16. 16. Entidades • Perspectivas • Conceitual • Apenas classes são utilizadas. Neste tipo de perspectiva, uma classe é interpretada como um conceito. Apenas atributos são utilizados. • Especificação • Tanto classes como interfaces são utilizados neste tipo de perspectiva. O foco consiste em mostrar as principais interfaces e classes juntamente com seus métodos. • Não é necessário mostrar todos os métodos, pois o objetivo deste diagrama nesta perspectiva é prover uma maior entendimento da arquitetura do software a nível de interfaces. • Implementação • Nesta perspectiva, vários detalhes de implementação podem ser abordados, tais como: • visibilidade de atributos e métodos; • parâmetros de cada método, inclusive o tipo de cada um; • tipos dos atributos e dos valores de retorno de cada método. Engenharia de Software II 16 Prof. Wagner Gadêa Lorenz
  17. 17. Relacionamentos • Papel • Descreve o relacionamento Engenharia de Software II 17 Prof. Wagner Gadêa Lorenz
  18. 18. Relacionamentos • Multiplicidade (utilizado em todas as perspectivas de forma uniforme) • Notações possíveis: • Exemplo: Engenharia de Software II 18 Prof. Wagner Gadêa Lorenz Tipos Significa 0..1 Zero ou uma instância. A notação n..m indica n para m instâncias. 0..* ou * Não existe limite para o número de instâncias. 1 Exatamente uma instância. 1..* Ao menos uma instância.
  19. 19. Relacionamentos • Associação (utilizado em todas as perspectivas) • Representação Gráfica Associação • Perspectiva: • Conceitual • Define um relacionamento entre duas entidades conceituais do sistema. • Especificação • Define responsabilidades entre duas classes. Implica que existem métodos que tratam desta responsabilidade. Engenharia de Software II 19 Prof. Wagner Gadêa Lorenz
  20. 20. Relacionamentos • Perspectiva: • Implementação • Permite saber quem está apontando para quem, através da representação gráfica da navegabilidade. Além disto, é possível compreender melhor de que lado está a responsabilidade. Engenharia de Software II 20 Prof. Wagner Gadêa Lorenz public class A { private B b; public A( ){ } public void setB( B b ){ this.b = b; } public B getB( ) { return b; } } public class B { public B( ){ } }
  21. 21. Relacionamentos • Herança ou Generalização (utilizado em todas as perspectivas) • Representação Gráfica • Perspectiva: • Seja B uma generalização (extensão) de A. • Conceitual • Considera que B é um subtipo ou um tipo especial de A. O que é válido para A, também é válido para B. • Especificação • Ocorre uma herança de interface. • Implementação • Ocorre uma herança de implementação. Engenharia de Software II 21 Prof. Wagner Gadêa Lorenz
  22. 22. Relacionamentos • Herança ou Generalização (utilizado em todas as perspectivas) • Exemplo de uma herança de implementação: • Navegabilidade (utilizado apenas na perspectiva de implementação) • Um relacionamento sem navegabilidade implica que ele pode ser lido de duas formas, isto é, em suas duas direções. Ex.: • Uma empresa possui um trabalhador, como também um trabalhador trabalha em uma empresa. Engenharia de Software II 22 Prof. Wagner Gadêa Lorenz
  23. 23. Relacionamentos • Herança ou Generalização (utilizado em todas as perspectivas) • Navegabilidade (utilizado apenas na perspectiva de implementação) • Utilizando a propriedade de navegabilidade, podemos restringir a forma de ler um relacionamento. Isto é, em vez de termos duas direções, teremos apenas uma direção (de acordo com a direção da navegação). Ex.: • Uma empresa possui um trabalhador. Engenharia de Software II 23 Prof. Wagner Gadêa Lorenz
  24. 24. Relacionamentos • Agregação (utilizado apenas na perspectiva de implementação) • Definição • Agregação é uma associação em que um objeto é parte de outro, de tal forma que a parte pode existir sem o todo. • Em mais baixo nível, uma agregação consiste de um objeto contendo referências para outros objetos, de tal forma que o primeiro seja o todo, e que os objetos referenciados sejam as partes do todo. • A diferença entre os relacionamentos de associação e agregação ainda é algo de bastante discussão entre os gurus. De forma geral, utiliza-se agregação para enfatizar detalhes de uma futura implementação (perspectiva de implementação). • Representação gráfica • Agregação com navegabilidade Engenharia de Software II 24 Prof. Wagner Gadêa Lorenz public class A { private B b; public A( ){ } public void setB( B b ){ this.b = b; } public B getB( ) { return b; } } public class B { public B( ){ } }
  25. 25. Relacionamentos • Composição (utilizado apenas na perspectiva de implementação) • Definição • Em mais baixo nível, em termos de passagem por parâmetro, seria uma passagem por valor. Enquanto que agregação seria uma passagem por referência. • O todo contém as partes (e não referências para as partes). Quando o todo desaparece, todas as partes também desaparecem. • Representação Gráfica Engenharia de Software II 25 Prof. Wagner Gadêa Lorenz public class A { private B b; public A( ){ b = new B(); } } public class B { public B( ){ } }
  26. 26. Relacionamentos • Implementação (utilizado apenas na perspectiva de implementação) • Em Inglês: realization • Definição • Utilizado para indicar que uma classe implementa uma interface • Representação Gráfica • Exemplo Engenharia de Software II 26 Prof. Wagner Gadêa Lorenz Implementação de uma interface representada por um círculo Implementação de uma interface representada por um retângulo
  27. 27. Exemplo contendo as notações Engenharia de Software II 27 Prof. Wagner Gadêa Lorenz
  28. 28. Próxima Aula •Exercícios de fixação sobre Diagramas de Classe. Engenharia de Software II 28 Prof. Wagner Gadêa Lorenz
  29. 29. Dúvidas • Conteúdo • Moodle • (http://wagnerglorenz.com.br/moodle/) • Dúvidas • wagnerglorenz@gmail.com Engenharia de Software II 29 Prof. Wagner Gadêa Lorenz
  30. 30. Referências Bibliográficas • GUEDES, Gilleanes T. A.. UML: uma abordagem prática. São Paulo: Novatec, 2004. • Software Architecture and the UML, Grady Booch (http:// www.engr.uconn.edu/~steve/Cse298300/umlbooch.ppt) • Material Prof. Dr. Jacques Philippe Sauvé. Universidade Federal de Campina Grande. Engenharia de Software II 30 Prof. Wagner Gadêa Lorenz

×