aula 02 - uml e padrões de projeto
TRANSCRIPT
![Page 1: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/1.jpg)
Especialização em Desenvolvimento Java UML e Padrões de Projetos Aula 02 – DIAGRAMA DE CLASSES Prof. Vinícius de Paula - [email protected]
![Page 2: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/2.jpg)
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
![Page 3: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/3.jpg)
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
![Page 4: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/4.jpg)
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
![Page 5: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/5.jpg)
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
![Page 6: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/6.jpg)
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
![Page 7: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/7.jpg)
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
![Page 8: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/8.jpg)
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
![Page 9: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/9.jpg)
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
![Page 10: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/10.jpg)
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
![Page 11: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/11.jpg)
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
![Page 12: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/12.jpg)
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
}
![Page 13: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/13.jpg)
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
![Page 14: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/14.jpg)
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
14 Objetos 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.
![Page 15: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/15.jpg)
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
![Page 16: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/16.jpg)
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
![Page 17: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/17.jpg)
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
![Page 18: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/18.jpg)
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
![Page 19: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/19.jpg)
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
![Page 20: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/20.jpg)
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.
![Page 21: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/21.jpg)
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
![Page 22: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/22.jpg)
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
![Page 23: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/23.jpg)
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
![Page 24: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/24.jpg)
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
![Page 25: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/25.jpg)
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
![Page 26: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/26.jpg)
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
![Page 27: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/27.jpg)
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.
![Page 28: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/28.jpg)
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
![Page 29: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/29.jpg)
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
![Page 30: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/30.jpg)
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
![Page 31: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/31.jpg)
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
![Page 32: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/32.jpg)
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
![Page 33: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/33.jpg)
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.
![Page 34: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/34.jpg)
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
![Page 35: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/35.jpg)
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
![Page 36: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/36.jpg)
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
![Page 37: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/37.jpg)
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.
![Page 38: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/38.jpg)
Boundary, Control e Entity
UML e Padrões de Projeto Centro Universitário do Triângulo
38
![Page 39: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/39.jpg)
Exemplo de Diagrama de Classes
UML e Padrões de Projeto Centro Universitário do Triângulo
39
![Page 40: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/40.jpg)
UML e Padrões de Projeto Centro Universitário do Triângulo
40
![Page 41: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/41.jpg)
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
![Page 42: Aula 02 - UML e Padrões de Projeto](https://reader033.vdocuments.site/reader033/viewer/2022051123/587477271a28ab4a758b6cf1/html5/thumbnails/42.jpg)
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