Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação...
Transcript of Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação...
![Page 1: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/1.jpg)
Análise e projeto de
sistemasPROF. REGILAN SILVA
![Page 2: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/2.jpg)
Objetivos
Conhecer os elementos do diagrama de classes.
Usar o diagrama de classes para a modelagem dos dados de um
sistema.
![Page 3: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/3.jpg)
Introdução
O diagrama de classe tem por objetivo descrever as informações que o
sistema deve representar e gerenciar.
Para elaborar um diagrama de classes, é preciso:
a) Identificar classes
b) Identificar atributos e associações
c) Especificar Hierarquias de Generalização/Especialização
![Page 4: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/4.jpg)
Introdução
Classe: Uma classe é o agrupamento de objetos com a mesma estrutura de
dados (definida pelos atributos ou propriedades) e comportamento (operações),
ou seja, classe são as descrições dos objetos!
Após os levantamentos feitos na fase inicial, quando conhecemos os requisitos e
domínio do sistema, escrevemos o diagrama de classes.
Em programação, um diagrama de classes é uma representação da estrutura e
relações das classes que servem de modelo para objetos.
É o diagrama central da modelagem orientada a objetos
![Page 5: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/5.jpg)
Diagrama de classe
Exemplo:
![Page 6: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/6.jpg)
Diagrama de classe
Elementos de um diagrama de classes:
Classes
Generalização
Dependência
Relacionamentos:
Associação
Agregação
Composição
![Page 7: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/7.jpg)
Representação dos elementos do
diagrama de classes
As classes na UML são representadas por
um retângulo divididos em três partes:
a) na primeira temos o nome da classe;
b) na segunda temos os atributos da
classe;
c) na terceira temos os métodos da
classe.
![Page 8: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/8.jpg)
Representação dos elementos do
diagrama de classes
É comum adotar um padrão para nomear as classes.
Ex: todos os nomes de classes serão substantivos singulares com a
primeira letra maiúscula
![Page 9: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/9.jpg)
Atributos
Os atributos são mostrados como um elemento textual no formato:
[visibilidade] nome do atributo: tipo
Utilizamos a seguinte notação para a visibilidade de atributos e métodos:
a) +: public
b) -: private
![Page 10: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/10.jpg)
Métodos
Os métodos representam o conjunto de operações (comportamento) que a classe fornece.
Os métodos (ou operações) são mostrados na parte de baixo do retângulo como um elemento
textual no formato:
[visibilidade] nome da operação (lista de parâmetros): tipo de retorno
![Page 11: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/11.jpg)
Associação
Uma associação é um
relacionamento estrutural
que indica que os objetos
de uma classe estão
vinculados a objetos de
outra classe.
Uma associação é
representada por uma
linha sólida conectando
duas classes.
![Page 12: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/12.jpg)
Associação
Indicadores de multiplicidade:
a) 1 : Exatamente um
b) 1..* : Um ou mais
c) 0..* : Zero ou mais (muitos)
d) *: Zero ou mais (muitos)
e) 0..1 : Zero ou um
f) m..n: Faixa de valores (por exemplo: 4..7)
![Page 13: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/13.jpg)
Associação
Exemplo:
a) Um estudante pode ser um aluno de uma disciplina e um jogador da
equipe de futebol
b) Cada disciplina deve ser cursada por no mínimo 1 aluno
c) Um aluno pode cursar de 0 até 8 disciplinas
![Page 14: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/14.jpg)
Generalização
Uma generalização (herança) é mostrada com o símbolo ,como
mostrado nas imagens abaixo.
É um relacionamento entre itens gerais (superclasses) e itens mais
específicos (subclasses)
![Page 15: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/15.jpg)
Composição e agregação
A composição e a agregação são usadas para representar as relações de “todo” e
“parte” existentes entre alguns objetos.
Denominamos composição a relação na qual o objeto “todo” é constituído pelo
objeto “parte”, de maneira que sem o objeto “todo” o objeto “parte” não tem sentido.
A representação da composição contém um pequeno losango preenchido em um
dos lados da linha horizontal que liga os dois retângulos.
![Page 16: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/16.jpg)
Representação dos elementos do
diagrama de classes
A instância Endereço só faz sentido se houver uma instância correspondente de
Cliente. Ou podemos perguntar: para que guardar um endereço se não sei a que
cliente ele pertence?
Quando excluímos o objeto “pai”, destruímos também o objeto “filho”. No nosso
exemplo, quando destruímos o objeto Cliente destruímos também o objeto Endereço.
![Page 17: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/17.jpg)
Representação dos elementos do
diagrama de classes
A Agregação acontece quando usamos também um objeto “todo” e outro objeto “parte”; porém, a “vida” dos objetos é independente.
Neste caso, a representação gráfica possui o losango NÃO preenchido.
Se eliminarmos o objeto LinhaPedido, não devemos eliminar a DescriçãoProduto. Faz sentido não eliminarmos a DescriçãoProduto pois esse objeto provavelmente deverá ser utilizado por outros objetos.
![Page 18: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/18.jpg)
”
“Exemplo prático de codificação:
POO no Visual Studio a partir de
Diagrama UML
![Page 19: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/19.jpg)
Exemplos em classe
![Page 20: Análise e projeto de sistemas€¦ · Composição e agregação A composição e a agregação são usadas para representar as relações de “todo” e “parte” existentes](https://reader035.fdocumentos.tips/reader035/viewer/2022071020/5fd495bb88c8be7abc3e2706/html5/thumbnails/20.jpg)
Próxima aula...
Exemplos e exercícios de modelagem de casos de uso