SlideShare uma empresa Scribd logo
1 de 27
João F. M. Figueiredo www.joaomatosf.com [email_address] Departamento de Informática – UFPB
Sumário ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
1.1 Visibilidade entre objetos ,[object Object],[object Object],[object Object],[object Object],mensagem
1.1 Visibilidade entre objetos Figura 18.1 – A Visibilidade do Registro para o CatálogoDeProduto é exigida.
1.2 Tipos de Visibilidade ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],mensagem
1.2 Tipos de Visibilidade (2) ,[object Object],Figura 18.2 – Visibilidade por atributo
[object Object],1.2 Tipos de Visibilidade (3) Figura 18.3 – Visibilidade por parâmetro
[object Object],1.2 Tipos de Visibilidade (4) Figura 18.1 – A Visibilidade de parâmetro para atributo.
[object Object],1.2 Tipos de Visibilidade (5) Figura 18.1 – Visibilidade local
[object Object],[object Object],[object Object],1.2 Tipos de Visibilidade (6)
[object Object],1.3 Visibilidade na UML Figura 18.6 – Implementação de estereótipos para visibilidade
2. Como Criar Diagramas de Classe de Projeto ,[object Object],[object Object],[object Object]
2.1 O que é e Quando Criar DCPs ,[object Object],[object Object],[object Object]
2.1 O que é e Quando criar DCPs (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2.2 Exemplo de DCPs Figura 19.1 – Amostra de diagrama de classe de projeto
2.3 Modelo de Domínio  Versus  Classes de Modelo de Projeto Figura 19.2 – Modelo do domínio  vs   classes do modelo de projeto
2.4 Criação De Um DCP Para o Estudo de Caso ,[object Object],[object Object],[object Object]
2.4 Criação De Um DCP Para o Estudo de Caso (2) Figura 19.3 – Classes de software na aplicação
2.4 Criação De Um DCP Para o Estudo de Caso (3) ,[object Object],Figura 19.4 – Nomes de métodos a partir dos diagramas de interação
2.4 Criação De Um DCP Para o Estudo de Caso (3) ,[object Object],Figura 19.5 – Métodos na aplicação
2.4 Criação De Um DCP Para o Estudo de Caso (4) ,[object Object],Figura 19.7 – Informação de tipo
2.4 Criação De Um DCP Para o Estudo de Caso (5) ,[object Object],Figura 19.8 – Mostrar navegabilidade ou visibilidade do atributo
2.4 Criação De Um DCP Para o Estudo de Caso (5) ,[object Object],Figura 19.10 – Associações com adorno de navegabilidade
2.4 Criação De Um DCP Para o Estudo de Caso (6) ,[object Object],Figura 19.10 – Relacionamentos de dependência que indicam visibilidade que não é implementada por atributo
2.4 Criação De Um DCP Para o Estudo de Caso (7) ,[object Object],[object Object],Figura 19.12 – Detalhes da notação de membro do  diagrama de classes UML
3. Referências Bibliográficas ,[object Object]
João F. M. Figueiredo www.joaomatosf.com [email_address] Brian Departamento de Informática – UFPB

Mais conteúdo relacionado

Mais procurados

MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
Jorge Tressino Rua
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
elliando dias
 

Mais procurados (20)

Domain Driven Design (DDD)
Domain Driven Design (DDD)Domain Driven Design (DDD)
Domain Driven Design (DDD)
 
Class Diagram
Class DiagramClass Diagram
Class Diagram
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 
Ferramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projetoFerramentas Case - fase de análise e projeto
Ferramentas Case - fase de análise e projeto
 
Rational Unified Process (RUP)
Rational Unified Process (RUP)Rational Unified Process (RUP)
Rational Unified Process (RUP)
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Uml
UmlUml
Uml
 
Uml diagrama de atividades
Uml   diagrama de atividadesUml   diagrama de atividades
Uml diagrama de atividades
 
Diagramas uml
Diagramas umlDiagramas uml
Diagramas uml
 
Aula8 diagrama sequencia
Aula8 diagrama sequenciaAula8 diagrama sequencia
Aula8 diagrama sequencia
 
Tugas kelompok 2 (RekWeb) # Penjelasan UML & Flowchart Project E-Commerce
Tugas kelompok 2 (RekWeb) # Penjelasan UML & Flowchart Project E-CommerceTugas kelompok 2 (RekWeb) # Penjelasan UML & Flowchart Project E-Commerce
Tugas kelompok 2 (RekWeb) # Penjelasan UML & Flowchart Project E-Commerce
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula03 - JavaScript
Aula03 - JavaScriptAula03 - JavaScript
Aula03 - JavaScript
 
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões ArquiteturaisMVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
MVC, MVP e MVVM: Uma Comparação de Padrões Arquiteturais
 
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de DadosBanco de Dados - Sistemas de Gerenciamento de Banco de Dados
Banco de Dados - Sistemas de Gerenciamento de Banco de Dados
 
Introdução a poo
Introdução a pooIntrodução a poo
Introdução a poo
 
UML
UMLUML
UML
 
Diagrama de implantação
Diagrama de implantaçãoDiagrama de implantação
Diagrama de implantação
 
JAVA - Herança
JAVA - HerançaJAVA - Herança
JAVA - Herança
 

Semelhante a Visibilidade e Diagrama de Classe de Projeto na UML

Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)
marcondes da luz barros
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
ejdn1
 
Um estudo de recomendadores baseados em conteúdo e redes sociais
Um estudo de recomendadores baseados em conteúdo e redes sociaisUm estudo de recomendadores baseados em conteúdo e redes sociais
Um estudo de recomendadores baseados em conteúdo e redes sociais
Ricardo Cabral
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
oliveiraprog
 

Semelhante a Visibilidade e Diagrama de Classe de Projeto na UML (20)

Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)Atividade integradora mod iii tec informatica 2016(1)
Atividade integradora mod iii tec informatica 2016(1)
 
DCI com PHP
DCI com PHPDCI com PHP
DCI com PHP
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Padrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e BridgePadrões de projeto - Adapter, Proxy, Composite e Bridge
Padrões de projeto - Adapter, Proxy, Composite e Bridge
 
UMLIntro.pptx
UMLIntro.pptxUMLIntro.pptx
UMLIntro.pptx
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POO
 
Sld 4
Sld 4Sld 4
Sld 4
 
UMLIntro.pdf
UMLIntro.pdfUMLIntro.pdf
UMLIntro.pdf
 
Projeto de Software
Projeto de SoftwareProjeto de Software
Projeto de Software
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patterns
 
Aula1
Aula1Aula1
Aula1
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Um estudo de recomendadores baseados em conteúdo e redes sociais
Um estudo de recomendadores baseados em conteúdo e redes sociaisUm estudo de recomendadores baseados em conteúdo e redes sociais
Um estudo de recomendadores baseados em conteúdo e redes sociais
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BH
 
Padrões de projeto
Padrões de projetoPadrões de projeto
Padrões de projeto
 
Análise Orientada a Objetos com UML
Análise Orientada a Objetos com UMLAnálise Orientada a Objetos com UML
Análise Orientada a Objetos com UML
 
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONITOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
TOTVS IP CAMPINAS FSW Treinamento .NET C# - v4 POR FABIO DELBONI
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5
 
Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos Módulo 9 - Introdução à Programação Orientada a Objectos
Módulo 9 - Introdução à Programação Orientada a Objectos
 

Visibilidade e Diagrama de Classe de Projeto na UML

  • 1. João F. M. Figueiredo www.joaomatosf.com [email_address] Departamento de Informática – UFPB
  • 2.
  • 3.
  • 4. 1.1 Visibilidade entre objetos Figura 18.1 – A Visibilidade do Registro para o CatálogoDeProduto é exigida.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. 2.2 Exemplo de DCPs Figura 19.1 – Amostra de diagrama de classe de projeto
  • 16. 2.3 Modelo de Domínio Versus Classes de Modelo de Projeto Figura 19.2 – Modelo do domínio vs classes do modelo de projeto
  • 17.
  • 18. 2.4 Criação De Um DCP Para o Estudo de Caso (2) Figura 19.3 – Classes de software na aplicação
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27. João F. M. Figueiredo www.joaomatosf.com [email_address] Brian Departamento de Informática – UFPB

Notas do Editor

  1. Habilidade de um objeto ver ou fazer referência a outro objeto. Inserir figura 18.1 Ao criar um projeto de objetos interativos, é necessário assegurar que a visibilidade necessária esteja presente para apoiar a interação da mensagem. A UML tem notação especial para ilustrar a visibilidade.
  2. Habilidade de um objeto ver ou fazer referência a outro objeto. Inserir figura 18.1 Ao criar um projeto de objetos interativos, é necessário assegurar que a visibilidade necessária esteja presente para apoiar a interação da mensagem. A UML tem notação especial para ilustrar a visibilidade.
  3. Na figura, temos a motivação para considerar a visibilidade: Para um A enviar uma mensagem para um objeto B, B deve ser visível para A. Há quatro meios comuns pelos quais pode ser alcançada a visibilidade de A para B.
  4. A visibilidade por atributo de A para B, existe quando B é um atributo(variável de instância) de A. Persiste enquanto A e B existem. É uma forma bastante comum em sistemas OOP.
  5. A visibilidade por parâmetro de A para B existe quando B é passado como um parâmetro para um método de A. Persiste somente dentro do corpo do método. É a segunda forma mais comum em OOP. Na figura, Registro já possui visibilidade para CatálogoDeProdutos por atributo, conforme o exemplo anterior, porém Venda não possui essa visibilidade. Então, quando a mensagem criarLinhaDeItem é enviada para Venda, uma instancia de EspecificaçãoDeProduto é passada como parâmetro. Assim, dentro do escopo criarLinhaDeVenda, venda tem visibilidade por parâmetro para CatalogoDeProduto. É comum esse tipo de visibilidade se transformar em visibilidade por atributo, usando o construtor para tal.
  6. A visibilidade por parâmetro de A para B existe quando B é passado como um parâmetro para um método de A. Persiste somente dentro do corpo do método. É a segunda forma mais comum em OOP. Na figura, Registro já possui visibilidade para CatálogoDeProdutos por atributo, conforme o exemplo anterior, porém Venda não possui essa visibilidade. Então, quando a mensagem criarLinhaDeItem é enviada para Venda, uma instancia de EspecificaçãoDeProduto é passada como parâmetro. Assim, dentro do escopo criarLinhaDeVenda, venda tem visibilidade por parâmetro para CatalogoDeProduto. É comum esse tipo de visibilidade se transformar em visibilidade por atributo, usando o construtor para tal.
  7. Visibilidade local de A para B existe quando B é declara como um objeto local dentro de um método de A. Persiste somente dentro do escopo do método; Terceira forma mais comum em sistemas OOP. Dois meios comuns pelos quais a visibilidade se realiza: Criar uma nova instancia e atribuir a uma variável local Atribuir o objeto que retorna de uma invocação de método para uma variável local Ex: //existe visibilidade local implícita para objeto ‘foo’ retornado via chama objterFoo umObjeto.obterFoo().executarBar();
  8. Um objeto global é visível a todos Não uma boa forma de ter visibilidade Se for obrigado a ter objetos globais, é melhor usar o padrão de projeto Singleton (GoF) Existe visibilidade gloca de A para B quando B é global em A. Existe enquanto A e B existirem. Forma menos comum em sistemas OOP; Pode ser alcançada atribuindo-se uma instancia a uma variável global; Possíbel em C++ mas não em java. Normalmente se usa o padrão Objeto Unitário, que será tratado no proximo capitulo.
  9. Objetivos do Capítulo! A UML tem notação para mostrar detalhes de projetos em diagramas de Classes. Ilustrar-se-á isso.
  10. São diagramas mais detalhistas com relação ao software. Exibindo informações como métodos, por exemplos. São geralmente criados em paralelo com os diagramas de interação;
  11. São diagramas mais detalhistas com relação ao software. Exibindo informações como métodos, por exemplos. São geralmente criados em paralelo com os diagramas de interação; Vale apena ressaltar que apartir das DCPs, pode-se gerar código em alguma linguagem de programação.
  12. Conforme pode-se ver, nas dcps tem-se 3 caixas na definição de calsses. Uma delas define informações de tipos, a seguinte define os métodos. A navegabilidade também está disponível nas dcps. OBS: os parâmetros dos métodos não são especificados
  13. Neste ponto, já pode-se perceber a diferença das DCPs para o MD. Para ambos, UML usa o diagrama de classes No modelo conceitual, uma entidade não representa uma classe de software mas um conceito do domínio do problema No diagrama de classes da fase de projeto, as classes são de software
  14. Verificar os diagramas de interação para identificar as classes; Adicioná-las ao diagrama de classes, junto com os atributos; Não incluir classes que não participam da iteração atual. Localizar as mensagens para identificar os métodos das classes.
  15. Verificar os diagramas de interação para identificar as classes; Adicioná-las ao diagrama de classes, junto com os atributos; Não incluir classes que não participam da iteração atual.
  16. Analisar os diagramas de interação para descobrir os métodos de cada classe Alguns detalhes sobre métodos O método create() de UML não aparece em muitas linguagens, pois é uma chamada a um construtor Muitas vezes, não se incluem os métodos acessores (getAtributo() e setAtributo()) Se classes de bibliotecas (ex. Vector em Java) são mostrados no diagrama, não se precisa mencionar seus métodos Pode-se usar a sintaxe da linguagem de programação final, se desejado
  17. Analisar os diagramas de interação para descobrir os métodos de cada classe Alguns detalhes sobre métodos O método create() de UML não aparece em muitas linguagens, pois é uma chamada a um construtor Muitas vezes, não se incluem os métodos acessores (getAtributo() e setAtributo()) Se classes de bibliotecas (ex. Vector em Java) são mostrados no diagrama, não se precisa mencionar seus métodos Pode-se usar a sintaxe da linguagem de programação final, se desejado
  18. Este passo é opcional Se o diagrama de classes está sendo criado numa ferramenta CASE (ex. Rational Rose), e a ferramenta será usada para gerar código, todos os detalhes de tipos devem ser dados Se o diagrama for preparado apenas para leitura por desenvolvedores, o nível de detalhamento pode ser menor O seguinte diagrama contém toda a informação de tipo
  19. A navegabilidade implica visibilidade da fonte para o destino Normalmente navegabilidade de atributo, incluída na implementação As associações devem ser apenas aquelas necessárias para a visibilidade de objetos Isso é diferente das associações no modelo conceitual, as quais podem ser incluídas para melhorar o entendimento Os diagramas de interação são usados para descobrir a visibilidade, associações e navegabilidade Situações comuns que levam a associações: A envia uma mensagem a B A cria uma instância de B A deve manter conhecimento de B Exemplo:
  20. A navegabilidade implica visibilidade da fonte para o destino Normalmente navegabilidade de atributo, incluída na implementação As associações devem ser apenas aquelas necessárias para a visibilidade de objetos Isso é diferente das associações no modelo conceitual, as quais podem ser incluídas para melhorar o entendimento Os diagramas de interação são usados para descobrir a visibilidade, associações e navegabilidade Situações comuns que levam a associações: A envia uma mensagem a B A cria uma instância de B A deve manter conhecimento de B Exemplo:
  21. Quando uma classe conhece outra (tem visibilidade), mas a visibilidade não é de atributo, usa-se uma linha tracejada Exemplo: TPDV recebe um objeto da classe EspecificaçãoDeProduto como retorno do método especificação da classe TPDV Diagrama de classes com dependências:
  22. UML possui sintaxe para especificar: Visibilidade Valores iniciais etc. Exemplo:
  23. UML possui sintaxe para especificar: Visibilidade Valores iniciais etc. Exemplo: