SlideShare uma empresa Scribd logo
1 de 42
Baixar para ler offline
Especialização em Desenvolvimento Java
UML e Padrões de Projetos
Aula 02 – DIAGRAMA DE CLASSES
Prof. Vinícius de Paula - viniciusdepaula@unitri.edu.br
Diagrama de Classes
•  Seu principal enfoque está em:
•  Permitir a visualização das classes que irão compor o sistema com seus
respectivos atributos e métodos;
•  Demonstrar como as classes do diagrama se relacionam,
complementam e transmitem informações entre si.
•  Apresenta uma visão estática de como as classes estão
organizadas, preocupando-se em como definir a estrutura lógica das
mesmas.
UML e Padrões de Projeto Centro Universitário do Triângulo
2
Diagrama de Classes
•  Na fase de análise, um modelo conceitual do diagrama de classes é
produzido.
•  As informações que o software necessitará, em termos de classes e seus
atributos, bem como as associações entre as classes devem ser
representadas
•  Já na fase de projeto, com base no modelo conceitual do diagrama
de classe é produzido o modelo de domínio.
•  A solução do problema é enfocada.
•  Os métodos que as classes poderão conter fazem parte de como o software
será desenvolvido e por este motivo eles devem aparecer no modelo de
domínio.
UML e Padrões de Projeto Centro Universitário do Triângulo
3
Atributos e Métodos
•  Classes costumam ter:
•  Atributos que armazenam os dados dos objetos da classe e;
•  Métodos que são funções que uma instância da classe pode executar.
UML e Padrões de Projeto Centro Universitário do Triângulo
4
Nome da Classe
Atributos
Operações
Características
Comportamento
Visibilidade
•  Marcações de acesso podem ser usadas para especificar o tipo de
acesso permitido aos atributos e métodos da classe.
+ público
# protegido
- privado
Nenhuma marcação para default
UML e Padrões de Projeto Centro Universitário do Triângulo
5
Relacionamentos
•  Permite compartilhar informações e colaborar com a execução dos
processos do sistema.
•  Descreve um vínculo que ocorre normalmente entre os objetos de uma
ou mais classes.
•  Os relacionamentos são representados por linhas ligando as classes
envolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
6
Tipos de Relacionamentos
•  Os tipos de relacionamentos são:
•  Associação
•  Agregação
•  Composição
•  Especialização/Generalização
•  Dependência
UML e Padrões de Projeto Centro Universitário do Triângulo
7
Associação
Herança
Dependência
Agregação
Composição
Associação Unária ou Reflexiva
•  Ocorre quando existe um relacionamento de um objeto de uma
classe com objetos da mesma classe.
•  No exemplo abaixo, um funcionário pode supervisionar outros
funcionários.
•  O supervisor de um funcionário também é um funcionário da empresa e,
portanto, também se constitui em uma instância da classe Funcionario.
UML e Padrões de Projeto Centro Universitário do Triângulo
8
Um funcionário pode não supervisionar ninguém,
ou pode supervisionar um ou mais funcionários
Multiplicidade
•  Procura determinar o número mínimo e máximo de objetos
envolvidos em cada extremidade da associação.
•  Permite especificar o nível de dependência de um objeto para com
os outros envolvidos na associação.
UML e Padrões de Projeto Centro Universitário do Triângulo
9
1 empresa possui 1 ou mais pessoas ligadas a ela
1 pessoa está ligada a apenas 1 empresa
Tipos de Multiplicidade
•  Não especificada
•  Exatamente um
•  Zero ou mais
•  Muitos (mesmo que 0..*)
•  Um e somente um
•  Um ou mais
•  Zero ou um
•  Intervalo determinado
•  Valores múltiplos
UML e Padrões de Projeto Centro Universitário do Triângulo
10
1
0..*
*
1..*
0..1
2..4
2, 4..6
1..1
Papéis
•  Informações extras na associação que podem ajudar a explicar a
função de um objeto (o papel que este representa) dentro da
associação.
UML e Padrões de Projeto Centro Universitário do Triângulo
11
Associação Binária
•  Ocorrem quando são identificados relacionamentos entre objetos de
duas classes distintas.
UML e Padrões de Projeto Centro Universitário do Triângulo
12
public class Funcionario {
private int nroMatricula;
private String nome;
private double salario;
private Dependente [] dependentes;
//métodos
}
public class Dependente {
private String nome;
private String parentesco;
//métodos
}
Navegabilidade
•  É representada por uma seta em uma das extremidades e identifica
o sentido em que as informações são transmitidas entre os objetos
das classes envolvidas.
•  No exemplo abaixo, um objeto da classe Funcionario poderá chamar
métodos da classe Dependente.
UML e Padrões de Projeto Centro Universitário do Triângulo
13
Agregação
•  Demonstra que as informações de um objeto (objeto-todo) precisam
ser complementadas pelas informações contidas em um ou mais
objetos de outra classe (objetos-parte).
•  O símbolo de agregação contém um losango na extremidade da classe
que contém os objetos-todo.
UML e Padrões de Projeto Centro Universitário do Triângulo
14Objetos da classe Pessoa são objetos-todo que precisam ter suas
informações complementadas pelos objetos da classe ContaComum,
que nesta associação são objetos-parte.
Agregação
•  A associação de agregação pode, em muitos casos ser substituída
por uma associação binária simples.
•  A função principal de uma de uma associação do tipo agregação é
identificar a obrigatoriedade de uma complementação das informações
de um objeto-todo por seus objetos-parte, quando este for consultado.
UML e Padrões de Projeto Centro Universitário do Triângulo
15
Composição
•  É uma variação da agregação e considerada mais forte.
•  O objeto-parte não pode existir sem o objeto-todo.
•  Se o objeto-todo for destruído, o objeto-parte também será.
UML e Padrões de Projeto Centro Universitário do Triângulo
16
Composição
•  É uma variação da agregação e considerada mais forte.
•  O objeto-parte não pode existir sem o objeto-todo.
•  Se o objeto-todo for destruído, o objeto-parte também será.
UML e Padrões de Projeto Centro Universitário do Triângulo
17
Generalização/Especialização
•  Tem como objetivo representar a ocorrência de herança entre as
classes identificando as superclasses e subclasses.
UML e Padrões de Projeto Centro Universitário do Triângulo
18
Classe Associativa
•  Classes produzidas quando as associações possuem a
multiplicidade muitos (*) em todas as suas extremidades.
•  São necessárias nos casos em que existem atributos relacionados à
associação que não podem ser armazenados por nenhuma das classes
envolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
19
Classe Associativa
•  Classes produzidas quando as associações possuem a
multiplicidade muitos (*) em todas as suas extremidades.
•  São necessárias nos casos em que existem atributos relacionados à
associação que não podem ser armazenados por nenhuma das classes
envolvidas.
UML e Padrões de Projeto Centro Universitário do Triângulo
20
Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores atuando nele.
Classe Associativa
Caso um ator interpretasse dois papéis em um mesmo filme?
UML e Padrões de Projeto Centro Universitário do Triângulo
21
Classe Associativa
Caso um ator interpretasse dois papéis em um mesmo filme?
O uso da classe associativa não seria o mais adequado.
Poderíamos inserir uma classe normal atuando como uma classe
intermediária.
UML e Padrões de Projeto Centro Universitário do Triângulo
22
Classe Associativa
Caso um ator interpretasse dois papéis em um mesmo filme?
O uso da classe associativa não seria o mais adequado.
Poderíamos inserir uma classe normal atuando como uma classe
intermediária.
UML e Padrões de Projeto Centro Universitário do Triângulo
23
Dependência
•  Identifica certo grau de dependência de uma classe em relação à
outra.
•  Uma dependência difere de uma associação porque a conexão entre as
classes é temporária.
UML e Padrões de Projeto Centro Universitário do Triângulo
24
Dependência
•  Identifica certo grau de dependência de uma classe em relação à
outra.
•  Uma dependência difere de uma associação porque a conexão entre as
classes é temporária.
UML e Padrões de Projeto Centro Universitário do Triângulo
25
Funcionario não instancia um Automovel, apenas usa-o como parâmetro de um método
Realização
•  Tipo de relacionamento especial que mistura características de
generalização e dependência.
•  Usada para identificar classes responsáveis por executar funções para
outras classes.
UML e Padrões de Projeto Centro Universitário do Triângulo
26
Realização
•  Tipo de relacionamento especial que mistura características de
generalização e dependência.
•  Usada para identificar classes responsáveis por executar funções para
outras classes.
UML e Padrões de Projeto Centro Universitário do Triângulo
27
A classe Monitor implementa algum dos serviços oferecidos pela classe IMonitor.
Restrição
•  Informações extras que definem condições a serem validadas
durante a implementação dos métodos de uma classe, das
associações entre as classes ou mesmo de seus atributos.
•  Representadas por textos limitados por chaves.
UML e Padrões de Projeto Centro Universitário do Triângulo
28
Restrição
•  Restrições podem ser aplicadas também para validar um atributo ou
método de uma classe.
UML e Padrões de Projeto Centro Universitário do Triângulo
29
Estereótipos
•  Possibilitam certo grau de extensibilidade aos componentes ou
associações.
•  Permite a identificação de componentes ou associações que, embora
semelhantes aos outros, tenham alguma característica que os
diferenciem.
•  Existem 3 estereótipos predefinidos na UML bastante utilizados nos
diagramas de classes:
•  <<entity>>
•  <<boundary>>
•  <<control>>
UML e Padrões de Projeto Centro Universitário do Triângulo
30
Classes Estereotipadas
•  Entity: classe de entidade, geralmente implementa os objetos
persistentes.
•  Boundary: classe de fronteira, geralmente interfaces gráficas.
•  Control: classe de controle, geralmente implementa as regras de
negócio.
UML e Padrões de Projeto Centro Universitário do Triângulo
31
Estereótipo <<entity>>
•  Tem por objetivo tornar explícito que uma classe é uma entidade.
•  Uma entidade é uma classe contém informações recebidas e
armazenadas pelo sistema ou geradas por meio deste.
•  Classes com o estereótipo <<entity>> também fornecem a
informação de que normalmente terão muitos objetos, podendo
ainda serem persistidos.
UML e Padrões de Projeto Centro Universitário do Triângulo
32
Estereótipo <<entity>>
•  Tem por objetivo tornar explícito que uma classe é uma entidade.
•  Uma entidade é uma classe contém informações recebidas e
armazenadas pelo sistema ou geradas por meio deste.
•  Classes com o estereótipo <<entity>> também fornecem a
informação de que normalmente terão muitos objetos, podendo
ainda serem persistidos.
UML e Padrões de Projeto Centro Universitário do Triângulo
33
Fica explícito que a classe ContaComum é uma entidade, ela armazena informações
referentes ao problema que o sistema no qual ela está inserida procura solucionar.
Estereótipo Customizado
•  No exemplo abaixo, definimos um novo estereótipo chamado
<<persistente>> para deixar claro que a classe tem que preservar
fisicamente suas instâncias.
UML e Padrões de Projeto Centro Universitário do Triângulo
34
Estereótipo <<boundary>>
•  Identifica uma classe que serve de comunicação entre os atores
externos e o sistema propriamente dito.
•  Muitas vezes uma classe <<boundary>> é associada à própria interface
do sistema.
•  Uma classe do tipo <<boundary>> muitas vezes necessita interagir com
outra classe do tipo <<control>>
•  Sua utilização é importante quando é preciso definir a existência de uma
interface para o sistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
35
Estereótipo <<control>>
•  Identifica classes que servem de intermédio entre as classes
<<boundary>> e as demais classes do sistema.
•  Os objetos <<control>> são responsáveis por interpretar os eventos
ocorridos sobre os objetos <<boundary>> e retransmiti-los aos objetos
das classes de entidade que fazem parte do sistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
36
Estereótipo <<control>>
•  Identifica classes que servem de intermédio entre as classes
<<boundary>> e as demais classes do sistema.
•  Os objetos <<control>> são responsáveis por interpretar os eventos
ocorridos sobre os objetos <<boundary>> e retransmiti-los aos objetos
das classes de entidade que fazem parte do sistema.
UML e Padrões de Projeto Centro Universitário do Triângulo
37
A classe InterfaceBanco representa a interface do sistema e seus objetos representam os
componentes gráficos, os eventos que ocorrem sobre tais objetos são repassados para
um objeto da classe ControladorBanco que interpretará esses eventos.
Boundary, Control e Entity
UML e Padrões de Projeto Centro Universitário do Triângulo
38
Exemplo de Diagrama de Classes
UML e Padrões de Projeto Centro Universitário do Triângulo
39
UML e Padrões de Projeto Centro Universitário do Triângulo
40
Lista de Exercícios II
UML e Padrões de Projeto Centro Universitário do Triângulo
41
UML e Padrões de Projeto - Lista de Exercícios II.pdf
45min
Bibliografia
•  GUEDES, Gilleanes. UML Uma Abordagem Prática. Editora Novatec.
São Paulo, 2014.
•  FURLAN, José. Modelagem de Objetos através da UML. Editora
Makron Books.
•  BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do
Usuário. Editora Campus.
UML e Padrões de Projeto Centro Universitário do Triângulo
42

Mais conteúdo relacionado

Mais procurados

Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosLeonardo Melo Santos
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersDaniel Maia
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidosGleydson Sousa
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Leinylson Fontinele
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequenciaItalo Costa
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 

Mais procurados (20)

Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Aula 7 - Modelagem de Software
Aula 7 - Modelagem de SoftwareAula 7 - Modelagem de Software
Aula 7 - Modelagem de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Introdução à linguagem UML
Introdução à linguagem UMLIntrodução à linguagem UML
Introdução à linguagem UML
 
Diagrama sequencia
Diagrama sequenciaDiagrama sequencia
Diagrama sequencia
 
Aula 06 - Diagrama de classes
Aula 06 - Diagrama de classesAula 06 - Diagrama de classes
Aula 06 - Diagrama de classes
 
Conceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetosConceitos básicos de programação orientada a objetos
Conceitos básicos de programação orientada a objetos
 
Utilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggersUtilizando views, stored procedures e triggers
Utilizando views, stored procedures e triggers
 
casos de uso
casos de usocasos de uso
casos de uso
 
Apresentação da UML
Apresentação da UMLApresentação da UML
Apresentação da UML
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura MVC
Arquitetura MVCArquitetura MVC
Arquitetura MVC
 
Banco de dados exercícios resolvidos
Banco de dados exercícios resolvidosBanco de dados exercícios resolvidos
Banco de dados exercícios resolvidos
 
Uml
UmlUml
Uml
 
POO - 17 - Interfaces
POO - 17 - InterfacesPOO - 17 - Interfaces
POO - 17 - Interfaces
 
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
Banco de Dados II Aula Dinâmica 1 (Perguntas e Respostas)
 
Diagrama de Classes
Diagrama de ClassesDiagrama de Classes
Diagrama de Classes
 
Uml diagrama de sequencia
Uml diagrama de sequenciaUml diagrama de sequencia
Uml diagrama de sequencia
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 

Destaque

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
 
Aula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoAula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoVinícius de Paula
 
Aula 06 - UML e Padrões de Projeto
Aula 06 - UML e Padrões de ProjetoAula 06 - UML e Padrões de Projeto
Aula 06 - UML e Padrões de ProjetoVinícius de Paula
 
PHP Profissional - Ferramentas e Padrões
PHP Profissional - Ferramentas e PadrõesPHP Profissional - Ferramentas e Padrões
PHP Profissional - Ferramentas e PadrõesFlávio Lisboa
 
Uml caso de estudo
Uml   caso de estudoUml   caso de estudo
Uml caso de estudoRafael Zeen
 
UML - Historia e Diagrmas
UML - Historia e DiagrmasUML - Historia e Diagrmas
UML - Historia e DiagrmasBruno Bazoti
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAAricelio Souza
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoVinícius de Paula
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksPablo Dall'Oglio
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto ObserverLuiza Uira
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyJoão Carlos Ottobboni
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Anderson Kanegae Soares Rocha
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Natanael Simões
 
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
 
Nbr iso 27001 2006 - gestão de segurança da informação
Nbr iso 27001 2006 - gestão de segurança da informaçãoNbr iso 27001 2006 - gestão de segurança da informação
Nbr iso 27001 2006 - gestão de segurança da informaçãoDilamar Hoffmann
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwareEmanuel Poletto
 
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
 

Destaque (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
 
Aula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de ProjetoAula 04 - UML e Padrões de Projeto
Aula 04 - UML e Padrões de Projeto
 
Aula 06 - UML e Padrões de Projeto
Aula 06 - UML e Padrões de ProjetoAula 06 - UML e Padrões de Projeto
Aula 06 - UML e Padrões de Projeto
 
PHP Profissional - Ferramentas e Padrões
PHP Profissional - Ferramentas e PadrõesPHP Profissional - Ferramentas e Padrões
PHP Profissional - Ferramentas e Padrões
 
Frameworks PHP
Frameworks PHPFrameworks PHP
Frameworks PHP
 
Uml caso de estudo
Uml   caso de estudoUml   caso de estudo
Uml caso de estudo
 
UML - Historia e Diagrmas
UML - Historia e DiagrmasUML - Historia e Diagrmas
UML - Historia e Diagrmas
 
Padrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAAPadrões de projeto - Martin Fowler - P of EAA
Padrões de projeto - Martin Fowler - P of EAA
 
Aula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de ProjetoAula 05 - UML e Padrões de Projeto
Aula 05 - UML e Padrões de Projeto
 
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworksDo Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
Do Clipper e Delphi ao Ruby e PHP: Antes e depois dos frameworks
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto Observer
 
Projeto de software
Projeto de softwareProjeto de software
Projeto de software
 
Padrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e StrategyPadrões de Projeto - Observer e Strategy
Padrões de Projeto - Observer e Strategy
 
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
Arquitetura de Software Baseada em Componentes: Um Estudo de Caso para o Cont...
 
Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1Projeto de sistemas com UML - Parte 1
Projeto de sistemas com UML - Parte 1
 
Design Patterns com PHP
Design Patterns com PHPDesign Patterns com PHP
Design Patterns com PHP
 
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
 
Nbr iso 27001 2006 - gestão de segurança da informação
Nbr iso 27001 2006 - gestão de segurança da informaçãoNbr iso 27001 2006 - gestão de segurança da informação
Nbr iso 27001 2006 - gestão de segurança da informação
 
Padrões no Desenvolvimento de Software
Padrões no Desenvolvimento de SoftwarePadrões no Desenvolvimento de Software
Padrões no Desenvolvimento de Software
 
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
 

Semelhante a Aula 02 - UML e Padrões de Projeto

Apresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosApresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosmauroladeiafilho
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxCarlos Albuquerque
 
Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.NunoVieira83
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaMoises Omena
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classesErica Fabri
 
Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdfJean440975
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de umlaudiclerio
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesMaria Alice Jovinski
 
Aula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniaoAula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniaoMaria Alice Jovinski
 

Semelhante a Aula 02 - UML e Padrões de Projeto (20)

Apresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplosApresentação sobre Diagrama de Classes com exemplos
Apresentação sobre Diagrama de Classes com exemplos
 
Aula 5 uml1 (1)
Aula 5   uml1 (1)Aula 5   uml1 (1)
Aula 5 uml1 (1)
 
Diagrama classes
Diagrama classesDiagrama classes
Diagrama classes
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de ClassesModelagem de Sistemas de Informação 08 - Diagrama de Classes
Modelagem de Sistemas de Informação 08 - Diagrama de Classes
 
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptxAula sobre Diagrama Classe para a modelagem de requisitos.pptx
Aula sobre Diagrama Classe para a modelagem de requisitos.pptx
 
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de ClassesAnálise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
Análise de Sistemas Orientado a Objetos - 06 - Diagrama de Classes
 
Relatório da uml
Relatório da umlRelatório da uml
Relatório da uml
 
Si diagrama de classes
Si  diagrama de classesSi  diagrama de classes
Si diagrama de classes
 
Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.Diagrama de classe aula 02 PDF para UML.
Diagrama de classe aula 02 PDF para UML.
 
8 02
8 028 02
8 02
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e HerançaJava - Aula 4 - Sobrecarga de construtores, UML e Herança
Java - Aula 4 - Sobrecarga de construtores, UML e Herança
 
Trabalho de análise e projeto 2
Trabalho de análise e projeto 2Trabalho de análise e projeto 2
Trabalho de análise e projeto 2
 
Diagrama de classes
Diagrama de classesDiagrama de classes
Diagrama de classes
 
Diagrama de Classes (8).pdf
Diagrama de Classes (8).pdfDiagrama de Classes (8).pdf
Diagrama de Classes (8).pdf
 
[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe[CEFET][ESw] Aula 5 - Diagrama de Classe
[CEFET][ESw] Aula 5 - Diagrama de Classe
 
Apostila de uml
Apostila de umlApostila de uml
Apostila de uml
 
Revisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e ClassesRevisão 1º bimestre - Casos de Usos e Classes
Revisão 1º bimestre - Casos de Usos e Classes
 
Aula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniaoAula classe de associacao 3º periodo uniao
Aula classe de associacao 3º periodo uniao
 

Último

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...Martin M Flynn
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxconcelhovdragons
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveaulasgege
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoCelianeOliveira8
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfIedaGoethe
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfErasmo Portavoz
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdfProfGleide
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024Sandra Pratas
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdfCarlosRodrigues832670
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxacaciocarmo1
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasRicardo Diniz campos
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxLuizHenriquedeAlmeid6
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfAnaGonalves804156
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxLuizHenriquedeAlmeid6
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.HildegardeAngel
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira partecoletivoddois
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxIsabellaGomes58
 

Último (20)

HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
HORA DO CONTO4_BECRE D. CARLOS I_2023_2024
 
treinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppttreinamento brigada incendio 2024 no.ppt
treinamento brigada incendio 2024 no.ppt
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
DIGNITAS INFINITA - DIGNIDADE HUMANA -Declaração do Dicastério para a Doutrin...
 
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptxSlide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
Slide de exemplo sobre o Sítio do Pica Pau Amarelo.pptx
 
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chaveAula - 2º Ano - Cultura e Sociedade - Conceitos-chave
Aula - 2º Ano - Cultura e Sociedade - Conceitos-chave
 
Gametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e femininoGametogênese, formação dos gametas masculino e feminino
Gametogênese, formação dos gametas masculino e feminino
 
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdfDIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
DIA DO INDIO - FLIPBOOK PARA IMPRIMIR.pdf
 
O guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdfO guia definitivo para conquistar a aprovação em concurso público.pdf
O guia definitivo para conquistar a aprovação em concurso público.pdf
 
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do  3ANO fundamental 1 MG.pdfPLANEJAMENTO anual do  3ANO fundamental 1 MG.pdf
PLANEJAMENTO anual do 3ANO fundamental 1 MG.pdf
 
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
HORA DO CONTO5_BECRE D. CARLOS I_2023_2024
 
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdforganizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
organizaao-do-clube-de-lideres-ctd-aamar_compress.pdf
 
Baladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptxBaladão sobre Variação Linguistica para o spaece.pptx
Baladão sobre Variação Linguistica para o spaece.pptx
 
Mesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecasMesoamérica.Astecas,inca,maias , olmecas
Mesoamérica.Astecas,inca,maias , olmecas
 
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptxSlides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
Slides Lição 2, Central Gospel, A Volta Do Senhor Jesus , 1Tr24.pptx
 
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdfPPT _ Módulo 3_Direito Comercial_2023_2024.pdf
PPT _ Módulo 3_Direito Comercial_2023_2024.pdf
 
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptxSlides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
Slides Lição 4, CPAD, Como se Conduzir na Caminhada, 2Tr24.pptx
 
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
LIVRO A BELA BORBOLETA. Ziraldo e Zélio.
 
Dança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parteDança Contemporânea na arte da dança primeira parte
Dança Contemporânea na arte da dança primeira parte
 
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptxQUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
QUARTA - 1EM SOCIOLOGIA - Aprender a pesquisar.pptx
 

Aula 02 - UML e Padrões de Projeto

  • 1. Especialização em Desenvolvimento Java UML e Padrões de Projetos Aula 02 – DIAGRAMA DE CLASSES Prof. Vinícius de Paula - viniciusdepaula@unitri.edu.br
  • 2. Diagrama de Classes •  Seu principal enfoque está em: •  Permitir a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos; •  Demonstrar como as classes do diagrama se relacionam, complementam e transmitem informações entre si. •  Apresenta uma visão estática de como as classes estão organizadas, preocupando-se em como definir a estrutura lógica das mesmas. UML e Padrões de Projeto Centro Universitário do Triângulo 2
  • 3. Diagrama de Classes •  Na fase de análise, um modelo conceitual do diagrama de classes é produzido. •  As informações que o software necessitará, em termos de classes e seus atributos, bem como as associações entre as classes devem ser representadas •  Já na fase de projeto, com base no modelo conceitual do diagrama de classe é produzido o modelo de domínio. •  A solução do problema é enfocada. •  Os métodos que as classes poderão conter fazem parte de como o software será desenvolvido e por este motivo eles devem aparecer no modelo de domínio. UML e Padrões de Projeto Centro Universitário do Triângulo 3
  • 4. Atributos e Métodos •  Classes costumam ter: •  Atributos que armazenam os dados dos objetos da classe e; •  Métodos que são funções que uma instância da classe pode executar. UML e Padrões de Projeto Centro Universitário do Triângulo 4 Nome da Classe Atributos Operações Características Comportamento
  • 5. Visibilidade •  Marcações de acesso podem ser usadas para especificar o tipo de acesso permitido aos atributos e métodos da classe. + público # protegido - privado Nenhuma marcação para default UML e Padrões de Projeto Centro Universitário do Triângulo 5
  • 6. Relacionamentos •  Permite compartilhar informações e colaborar com a execução dos processos do sistema. •  Descreve um vínculo que ocorre normalmente entre os objetos de uma ou mais classes. •  Os relacionamentos são representados por linhas ligando as classes envolvidas. UML e Padrões de Projeto Centro Universitário do Triângulo 6
  • 7. Tipos de Relacionamentos •  Os tipos de relacionamentos são: •  Associação •  Agregação •  Composição •  Especialização/Generalização •  Dependência UML e Padrões de Projeto Centro Universitário do Triângulo 7 Associação Herança Dependência Agregação Composição
  • 8. Associação Unária ou Reflexiva •  Ocorre quando existe um relacionamento de um objeto de uma classe com objetos da mesma classe. •  No exemplo abaixo, um funcionário pode supervisionar outros funcionários. •  O supervisor de um funcionário também é um funcionário da empresa e, portanto, também se constitui em uma instância da classe Funcionario. UML e Padrões de Projeto Centro Universitário do Triângulo 8 Um funcionário pode não supervisionar ninguém, ou pode supervisionar um ou mais funcionários
  • 9. Multiplicidade •  Procura determinar o número mínimo e máximo de objetos envolvidos em cada extremidade da associação. •  Permite especificar o nível de dependência de um objeto para com os outros envolvidos na associação. UML e Padrões de Projeto Centro Universitário do Triângulo 9 1 empresa possui 1 ou mais pessoas ligadas a ela 1 pessoa está ligada a apenas 1 empresa
  • 10. Tipos de Multiplicidade •  Não especificada •  Exatamente um •  Zero ou mais •  Muitos (mesmo que 0..*) •  Um e somente um •  Um ou mais •  Zero ou um •  Intervalo determinado •  Valores múltiplos UML e Padrões de Projeto Centro Universitário do Triângulo 10 1 0..* * 1..* 0..1 2..4 2, 4..6 1..1
  • 11. Papéis •  Informações extras na associação que podem ajudar a explicar a função de um objeto (o papel que este representa) dentro da associação. UML e Padrões de Projeto Centro Universitário do Triângulo 11
  • 12. Associação Binária •  Ocorrem quando são identificados relacionamentos entre objetos de duas classes distintas. UML e Padrões de Projeto Centro Universitário do Triângulo 12 public class Funcionario { private int nroMatricula; private String nome; private double salario; private Dependente [] dependentes; //métodos } public class Dependente { private String nome; private String parentesco; //métodos }
  • 13. Navegabilidade •  É representada por uma seta em uma das extremidades e identifica o sentido em que as informações são transmitidas entre os objetos das classes envolvidas. •  No exemplo abaixo, um objeto da classe Funcionario poderá chamar métodos da classe Dependente. UML e Padrões de Projeto Centro Universitário do Triângulo 13
  • 14. Agregação •  Demonstra que as informações de um objeto (objeto-todo) precisam ser complementadas pelas informações contidas em um ou mais objetos de outra classe (objetos-parte). •  O símbolo de agregação contém um losango na extremidade da classe que contém os objetos-todo. UML e Padrões de Projeto Centro Universitário do Triângulo 14Objetos da classe Pessoa são objetos-todo que precisam ter suas informações complementadas pelos objetos da classe ContaComum, que nesta associação são objetos-parte.
  • 15. Agregação •  A associação de agregação pode, em muitos casos ser substituída por uma associação binária simples. •  A função principal de uma de uma associação do tipo agregação é identificar a obrigatoriedade de uma complementação das informações de um objeto-todo por seus objetos-parte, quando este for consultado. UML e Padrões de Projeto Centro Universitário do Triângulo 15
  • 16. Composição •  É uma variação da agregação e considerada mais forte. •  O objeto-parte não pode existir sem o objeto-todo. •  Se o objeto-todo for destruído, o objeto-parte também será. UML e Padrões de Projeto Centro Universitário do Triângulo 16
  • 17. Composição •  É uma variação da agregação e considerada mais forte. •  O objeto-parte não pode existir sem o objeto-todo. •  Se o objeto-todo for destruído, o objeto-parte também será. UML e Padrões de Projeto Centro Universitário do Triângulo 17
  • 18. Generalização/Especialização •  Tem como objetivo representar a ocorrência de herança entre as classes identificando as superclasses e subclasses. UML e Padrões de Projeto Centro Universitário do Triângulo 18
  • 19. Classe Associativa •  Classes produzidas quando as associações possuem a multiplicidade muitos (*) em todas as suas extremidades. •  São necessárias nos casos em que existem atributos relacionados à associação que não podem ser armazenados por nenhuma das classes envolvidas. UML e Padrões de Projeto Centro Universitário do Triângulo 19
  • 20. Classe Associativa •  Classes produzidas quando as associações possuem a multiplicidade muitos (*) em todas as suas extremidades. •  São necessárias nos casos em que existem atributos relacionados à associação que não podem ser armazenados por nenhuma das classes envolvidas. UML e Padrões de Projeto Centro Universitário do Triângulo 20 Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores atuando nele.
  • 21. Classe Associativa Caso um ator interpretasse dois papéis em um mesmo filme? UML e Padrões de Projeto Centro Universitário do Triângulo 21
  • 22. Classe Associativa Caso um ator interpretasse dois papéis em um mesmo filme? O uso da classe associativa não seria o mais adequado. Poderíamos inserir uma classe normal atuando como uma classe intermediária. UML e Padrões de Projeto Centro Universitário do Triângulo 22
  • 23. Classe Associativa Caso um ator interpretasse dois papéis em um mesmo filme? O uso da classe associativa não seria o mais adequado. Poderíamos inserir uma classe normal atuando como uma classe intermediária. UML e Padrões de Projeto Centro Universitário do Triângulo 23
  • 24. Dependência •  Identifica certo grau de dependência de uma classe em relação à outra. •  Uma dependência difere de uma associação porque a conexão entre as classes é temporária. UML e Padrões de Projeto Centro Universitário do Triângulo 24
  • 25. Dependência •  Identifica certo grau de dependência de uma classe em relação à outra. •  Uma dependência difere de uma associação porque a conexão entre as classes é temporária. UML e Padrões de Projeto Centro Universitário do Triângulo 25 Funcionario não instancia um Automovel, apenas usa-o como parâmetro de um método
  • 26. Realização •  Tipo de relacionamento especial que mistura características de generalização e dependência. •  Usada para identificar classes responsáveis por executar funções para outras classes. UML e Padrões de Projeto Centro Universitário do Triângulo 26
  • 27. Realização •  Tipo de relacionamento especial que mistura características de generalização e dependência. •  Usada para identificar classes responsáveis por executar funções para outras classes. UML e Padrões de Projeto Centro Universitário do Triângulo 27 A classe Monitor implementa algum dos serviços oferecidos pela classe IMonitor.
  • 28. Restrição •  Informações extras que definem condições a serem validadas durante a implementação dos métodos de uma classe, das associações entre as classes ou mesmo de seus atributos. •  Representadas por textos limitados por chaves. UML e Padrões de Projeto Centro Universitário do Triângulo 28
  • 29. Restrição •  Restrições podem ser aplicadas também para validar um atributo ou método de uma classe. UML e Padrões de Projeto Centro Universitário do Triângulo 29
  • 30. Estereótipos •  Possibilitam certo grau de extensibilidade aos componentes ou associações. •  Permite a identificação de componentes ou associações que, embora semelhantes aos outros, tenham alguma característica que os diferenciem. •  Existem 3 estereótipos predefinidos na UML bastante utilizados nos diagramas de classes: •  <<entity>> •  <<boundary>> •  <<control>> UML e Padrões de Projeto Centro Universitário do Triângulo 30
  • 31. Classes Estereotipadas •  Entity: classe de entidade, geralmente implementa os objetos persistentes. •  Boundary: classe de fronteira, geralmente interfaces gráficas. •  Control: classe de controle, geralmente implementa as regras de negócio. UML e Padrões de Projeto Centro Universitário do Triângulo 31
  • 32. Estereótipo <<entity>> •  Tem por objetivo tornar explícito que uma classe é uma entidade. •  Uma entidade é uma classe contém informações recebidas e armazenadas pelo sistema ou geradas por meio deste. •  Classes com o estereótipo <<entity>> também fornecem a informação de que normalmente terão muitos objetos, podendo ainda serem persistidos. UML e Padrões de Projeto Centro Universitário do Triângulo 32
  • 33. Estereótipo <<entity>> •  Tem por objetivo tornar explícito que uma classe é uma entidade. •  Uma entidade é uma classe contém informações recebidas e armazenadas pelo sistema ou geradas por meio deste. •  Classes com o estereótipo <<entity>> também fornecem a informação de que normalmente terão muitos objetos, podendo ainda serem persistidos. UML e Padrões de Projeto Centro Universitário do Triângulo 33 Fica explícito que a classe ContaComum é uma entidade, ela armazena informações referentes ao problema que o sistema no qual ela está inserida procura solucionar.
  • 34. Estereótipo Customizado •  No exemplo abaixo, definimos um novo estereótipo chamado <<persistente>> para deixar claro que a classe tem que preservar fisicamente suas instâncias. UML e Padrões de Projeto Centro Universitário do Triângulo 34
  • 35. Estereótipo <<boundary>> •  Identifica uma classe que serve de comunicação entre os atores externos e o sistema propriamente dito. •  Muitas vezes uma classe <<boundary>> é associada à própria interface do sistema. •  Uma classe do tipo <<boundary>> muitas vezes necessita interagir com outra classe do tipo <<control>> •  Sua utilização é importante quando é preciso definir a existência de uma interface para o sistema. UML e Padrões de Projeto Centro Universitário do Triângulo 35
  • 36. Estereótipo <<control>> •  Identifica classes que servem de intermédio entre as classes <<boundary>> e as demais classes do sistema. •  Os objetos <<control>> são responsáveis por interpretar os eventos ocorridos sobre os objetos <<boundary>> e retransmiti-los aos objetos das classes de entidade que fazem parte do sistema. UML e Padrões de Projeto Centro Universitário do Triângulo 36
  • 37. Estereótipo <<control>> •  Identifica classes que servem de intermédio entre as classes <<boundary>> e as demais classes do sistema. •  Os objetos <<control>> são responsáveis por interpretar os eventos ocorridos sobre os objetos <<boundary>> e retransmiti-los aos objetos das classes de entidade que fazem parte do sistema. UML e Padrões de Projeto Centro Universitário do Triângulo 37 A classe InterfaceBanco representa a interface do sistema e seus objetos representam os componentes gráficos, os eventos que ocorrem sobre tais objetos são repassados para um objeto da classe ControladorBanco que interpretará esses eventos.
  • 38. Boundary, Control e Entity UML e Padrões de Projeto Centro Universitário do Triângulo 38
  • 39. Exemplo de Diagrama de Classes UML e Padrões de Projeto Centro Universitário do Triângulo 39
  • 40. UML e Padrões de Projeto Centro Universitário do Triângulo 40
  • 41. Lista de Exercícios II UML e Padrões de Projeto Centro Universitário do Triângulo 41 UML e Padrões de Projeto - Lista de Exercícios II.pdf 45min
  • 42. Bibliografia •  GUEDES, Gilleanes. UML Uma Abordagem Prática. Editora Novatec. São Paulo, 2014. •  FURLAN, José. Modelagem de Objetos através da UML. Editora Makron Books. •  BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar. UML Guia do Usuário. Editora Campus. UML e Padrões de Projeto Centro Universitário do Triângulo 42

Notas do Editor

  1. É um dos diagramas mais importantes e mais utilizados da UML. O Diagrama de classes serve como base para a construção da maioria dos outros diagramas da linguagem UML.
  2. É um dos diagramas mais importantes e mais utilizados da UML. O Diagrama de classes serve como base para a construção da maioria dos outros diagramas da linguagem UML.
  3. Métodos, também chamados operações... - Os valores dos atributos podem variar de uma instância para outra. - Os métodos são idênticos para todas as instâncias de uma classe específica.
  4. Public: Uma declaração com o modificador public pode ser acessada de qualquer lugar e por qualquer entidade que possa visualizar a classe a que ela pertence. Private: Os membros da classe definidos como não podem ser acessados ou usados por nenhuma outra classe. Esse modificador não se aplica às classes, somente para seus métodos e atributos. Esses atributos e métodos também não podem ser visualizados pelas classes herdadas. Protected: O modificador protected torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados. Default: A classe e/ou seus membros são acessíveis somente por classes do mesmo pacote, na sua declaração não é definido nenhum tipo de modificador, sendo este identificado pelo compilador.
  5. Se comparada ao modelo ER, seria um auto-relacionamento. Essa associação determina se um funcionário pode ou não chefia outros funcionários.
  6. 1 instância da classe Empresa está associada a 1 ou mais instâncias de Pessoa 1 instância da classe Pessoa está relacionada a apenas 1 instância da classe Empresa
  7. O uso de papéis pode facilitar a compreensão da associação existente, mas nem sempre é necessário, e seu uso excessivo pode deixar os diagramas visualmente muito poluídos.
  8. Esse tipo de associação é a mais comumente encontrada.
  9. A recíproca não é verdadeira.
  10. Tipo especial de associação... Este tipo de associação tenta demonstrar uma relação todo/parte entre os objetos associados. Uma pessoa pode possuir muita contas, um conta pode ser possuída por várias pessoas (conta conjunta). Objetos-parte podem ser compartilhados por mais de um objeto-todo.
  11. Um vínculo mais forte entre os objetos-todo e os objetos-parte.
  12. Um vínculo mais forte entre os objetos-todo e os objetos-parte.
  13. Demonstra a hierarquia entre as classes e possivelmente métodos polifórmicos nas classes especializadas. Classes com características semelhantes Duas classes especializadas derivadas de ContaComum. ContaEspecial: atributo limite diz respeito a quanto o cliente pode sacar além do saldo. ContaPoupanca: contém o atributo dtAnivesario que diz respeito a data em que a conta renderá juros
  14. Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores atuando nele. Um ator atuando em um filme terá um único papel. Um ator específico atuando em um determinado filme. Como existe a multiplicidade em ambas as classes da associação, não há como reservar atributos para armazenar as informações decorrentes da associação em quaisquer das classes.
  15. Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores atuando nele. Classe para armazenar os atributos transmitidos pela associação
  16. Um ator pode atuar em muitos filmes, e um filme pode ter muitos atores atuando nele.
  17. Classe intermediária: Apresenta, exatamente, a mesma função da classe associativa, podendo possuir seus próprios atributos.
  18. Um ator pode atuar em um ou mais papéis em um filme. Um ator pode atuar em um ou mais papéis em muitos filmes.
  19. Criar objetos, recebê-los como parâmetros ou retorná-los como resultado de algum método normalmente implica em uma dependência com a classe do objeto.
  20. Usa-o: Presente do Indicativo
  21. Esse tipo de relacionamento herda o comportamento de uma classe, mas não sua estrutura. Pode ser comparada à palavra implements da linguagem Java.
  22. Esse tipo de relacionamento herda o comportamento de uma classe, mas não sua estrutura. Pode ser comparada à palavra implements da linguagem Java.
  23. Utilizado para diferenciar componentes semelhantes com alguma característica diferente (maior destaque no diagrama). A linguagem permite a criação de estereótipos particulares.
  24. Utilizado para diferenciar componentes semelhantes com alguma característica diferente (maior destaque no diagrama). A linguagem permite a criação de estereótipos particulares.
  25. Esse estereótipo é um estereótipo gráfico, ele modifica o desenho padrão da classe. Um dos problemas de se utilizar este estereótipo é que ele esconde os atributos e métodos da classe, porém isto é vantajoso em diagramas grandes.
  26. Preservar obrigatoriamente de forma física e de alguma forma suas instâncias.
  27. Um ator pode ser qualquer elemento externo que interaja com o software.