SlideShare una empresa de 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

Más contenido relacionado

La actualidad más candente

Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoVinícius de Paula
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processosVirgínia
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosEvandro Agnes
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresMarcelo Schumacher
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
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 ProjetoVinícius de Paula
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linuxRogério Cardoso
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de SoftwareMarcelo Yamaguti
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Arthur Emanuel
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Cristiano Pires Martins
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 

La actualidad más candente (20)

Aula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de ProjetoAula 03 - UML e Padrões de Projeto
Aula 03 - UML e Padrões de Projeto
 
Gerência de processos
Gerência de processosGerência de processos
Gerência de processos
 
Padrões de Projeto
Padrões de ProjetoPadrões de Projeto
Padrões de Projeto
 
Fundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetosFundamentos e princípios do projeto orientado a objetos
Fundamentos e princípios do projeto orientado a objetos
 
Implantação e Manutenção de Softwares
Implantação e Manutenção de SoftwaresImplantação e Manutenção de Softwares
Implantação e Manutenção de Softwares
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Modelos de Engenharia de Software
Modelos de Engenharia de SoftwareModelos de Engenharia de Software
Modelos de Engenharia de Software
 
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
 
03 mer2
03 mer203 mer2
03 mer2
 
Aula 1 sistema operacional linux
Aula 1 sistema operacional linuxAula 1 sistema operacional linux
Aula 1 sistema operacional linux
 
Capítulo 2 modelos de redes
Capítulo 2   modelos de redesCapítulo 2   modelos de redes
Capítulo 2 modelos de redes
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
CON08 - VLAN.pdf
CON08 - VLAN.pdfCON08 - VLAN.pdf
CON08 - VLAN.pdf
 
Análise e Modelagem de Software
Análise e Modelagem de SoftwareAnálise e Modelagem de Software
Análise e Modelagem de Software
 
Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02Sistemas Distribuídos - Aula 02
Sistemas Distribuídos - Aula 02
 
8 02
8 028 02
8 02
 
Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1Aula 02-processos-e-threads-tanenbaum-parte-1
Aula 02-processos-e-threads-tanenbaum-parte-1
 
Diagrama de sequência
Diagrama de sequênciaDiagrama de sequência
Diagrama de sequência
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 

Similar a Visibilidade e diagramas de classe 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
 
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 BridgeLorran Pegoretti
 
Aula 1 - Introdução a POO
Aula 1 -  Introdução a POOAula 1 -  Introdução a POO
Aula 1 - Introdução a POODaniel Brandão
 
5507 os principais design patterns
5507   os principais design patterns5507   os principais design patterns
5507 os principais design patternsAndre Baltieri
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
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 sociaisRicardo Cabral
 
Arquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHArquitetura Limpa @ 32º CocoaTalks BH
Arquitetura Limpa @ 32º CocoaTalks BHHugo Ferreira
 
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 UMLEliseu Castelo
 
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 DELBONIFábio Delboni
 
Apresentação versão 1.5
Apresentação   versão 1.5Apresentação   versão 1.5
Apresentação versão 1.5oliveiraprog
 

Similar a Visibilidade e diagramas de classe UML (20)

Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
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
 

Visibilidade e diagramas de classe 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 del 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: