Upload
internet
View
108
Download
2
Embed Size (px)
Citation preview
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Aula 9Aula 9
Diagrama de ClassesDiagrama de Classes
UML – Modelo de Elementos
Classes: É uma descrição de um tipo de objeto. Usamos classes para classificar os objetos
que identificamos no mundo real. Uma classe pode ser a descrição de um
objeto em qualquer tipo de sistema.
UML – Modelo de Elementos
Existem algumas questões que podem nos ajudar a identificar as classes:
Existem informações que devem ser armazenadas ou analisadas? Se existir alguma informação que tenha de ser guardada, transformada ou analisada de alguma forma, então é uma possível candidata para ser uma classe.
UML – Modelo de Elementos
Existem algumas questões que podem nos ajudar a identificar as classes:
Existem sistemas externos ao modelado? Se existir, eles deverão ser vistos como classes pelo sistema para que possa interagir com outros atores externos.
UML – Modelo de Elementos
Existem algumas questões que podem nos ajudar a identificar as classes:
Existem classes de bibliotecas, componentes ou modelos externos a serem utilizados pelo sistema modelado? Se existir, normalmente essas classes, componentes e modelos conterão classes candidatas ao nosso sistema.
UML – Modelo de Elementos
Existem algumas questões que podem nos ajudar a identificar as classes:
Qual o papel dos atores dentro do sistema? Talvez, o papel destes atores possa ser visto como classes, por exemplo, usuário, operador, cliente e daí por diante.
UML – Classes
Em UML as classes são representadas por um retângulo divididos em 3 compartimentos:
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Nome
Atributos
Operações
UML – Classes
Compartimentos:OBS: A sintaxe usada em cada um destes compartimentos
é independente de qualquer linguagem de programação.
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Nome: conterá apenas o nome da classe modelada.
UML – Classes
Compartimentos:OBS: A sintaxe usada em cada um destes compartimentos
é independente de qualquer linguagem de programação.
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
Atributos: possuirá a relação de atributos que a classe possui em sua estrutura interna.
UML – Classes
Compartimentos:OBS: A sintaxe usada em cada um destes compartimentos
é independente de qualquer linguagem de programação.
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados() Operações: serão os métodos
de manipulação de dados e de comunicação de uma classe com outras do sistema
UML – Classes
As normas de estilo da UML determinam que:Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
• Nome da classe seja centralizado e negrito;• Escrever as iniciais dos nomes das classes em maiúsculas, inclusive as primeiras letras de nomes compostos; Ex: AlunoUniversitario, PessoaFisica
UML – Classes
As normas de estilo da UML determinam que:Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
• Os atributos e as operações devem ser escritos com formatação normal e alinhados a esquerda;• Os nomes de atributos e operações devem iniciar com letra minúscula, entretanto as iniciais das palavras compostas devem iniciar com letra maiúscula; Ex:nomeCliente reajustarSalario ()
UML – Diagrama de Classes
O diagrama de classes demonstra a estrutura estática das classes de um sistema onde estas representam as “coisas” que são gerenciadas pela aplicação modelada.
UML – Diagrama de Classes
Classes podem se relacionar com outras através de diversas maneiras:
Associação : conectadas entre si; Dependências: uma classe depende ou usa
outra classe; Especialização: uma classe é uma
especialização de outra classe; Pacotes: Classes agrupadas por
características similares.
UML – Diagrama de Classes
Todos os relacionamentos são mostrados no diagramas de classe juntamente com suas estruturas internas, que são os atributos e operações.
O diagrama de classes é considerado estático já que a estrutura descrita é sempre válida em qualquer ponto do ciclo de vida do sistema.
UML – Diagrama de Classes
Um sistema normalmente possui alguns diagramas de classe, já que não são todas as classes que estão inseridas em um único diagrama e uma certa classes pode participar de vários diagramas de classes.
Para se criar um diagrama de classes, as classes tem de estar identificadas, descritas e relacionadas entre si.
UML – Diagrama de ClassesContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
possui
0..*
1
0..*
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
1..*
refere a
0..*1
possui
EmpresadeAluguel
codigo:integernomeEmpresa: string
Caminhao
torque:string
Tipos de Veículos
CarroEsporte
potenciaMotor:integeraerofolio: string
VeiculoAlugado
codigoVeiculo:integermodelo: stringfabricante: String
cadastraVeiculo()alteraDadosVeiculo()
CarroPasseio
potenciaMotor: integer
Navegabilidade
- Os relacionamentos podem ter direção de
navegação. Por exemplo, a Figura 29 indica que,
dada uma “Mercadoria", é possível localizar
diretamente o respectivo "Fornecedor", mas a
recíproca não é verdadeira.
Relacionamento de Agregação
- A Agregação é um caso particular de associação:
reflete uma posse lógica.
- Deve ser utilizado apenas quando se deseja
destacar o caráter todo-parte do relacionamento: -
Uma Classe representa um item maior (o
“todo”), formado por itens menores (as “partes”):
“tem um”, “parte de”.
Relacionamento de Composição
- Um caso especial do tipo Agregação.
- Expressa um relacionamento em que os objetos da classe parte não têm existência independente da classe “todo”.
- Expressa também que cada objeto da classe “parte” pode pertencer a um único objeto da classe “todo”.
- Isto implica que se um objeto da classe todo for eliminado, todos os objetos da classe parte também devem ser eliminados: efeito cascata.
Associação Reflexiva (auto-associação ou associação recursiva):
Uma Associação Reflexiva indica um relacionamento entre objetos de uma mesma classe que desempenham diferentes participações.
UML – Diagramas de Estrutura Composta
A UML 2.0 deu uma importância maior à composição, com a inclusão deste novo diagrama.
O objetivo deste diagrama é permitir que se exiba um pequeno diagrama de classes dentro de uma classe. (agrupamento de estruturas).
UML – Diagramas de Estrutura Composta
Esta notação leva uma apresentação menos confusa de um relacionamento de composição.
Torna-se útil quando temos em um mesmo diagrama de classes relacionamentos entre classes, entre as classes-todo e suas partes e entre as próprias partes.
UML – Diagramas de Estrutura Composta
Exemplo:
Classe-Todo
Parte-1 [Multipl]
Parte-n [Multipl]
Classe-todo do relacionamento de
composição
Classe-parte com sua
multiplicidade
Conector Assembly
UML – Diagramas de Estrutura Composta
As classes-partes podem ser ligadas por conectores.
Conectores Assembly permite que uma classe-parte supra serviços que outra classe-parte necessita. Ele conecta duas partes como associação.
Multiplicidade: Mostra o intervalo numérico permitido de valores que determinados elementos da UML possuem com outro elemento.
UML – Diagrama de Objetos
Diagrama de Objetos:
É uma variação do diagrama de classes e utiliza quase a mesma notação.
Mostra os objetos que foram instanciados das classes.
O diagrama de objetos é como se fosse o perfil do sistema em um certo momento de sua execução.
UML – Diagrama de Objetos
Diagrama de Objetos:
Dizem muito mais do que a simples estrutura de uma classe, pois passamos a trabalhar com dados reais.
Esclarece o relacionamento entre as classes. Facilita a modelagem de estruturas mais
complexas.
UML – Diagrama de Objetos
Cuidado:
É impossível exibirmos tudo. Desta forma, deve-se mostrar no diagrama de objetos somente um conjunto de objetos que tenham relevância dentro da modelagem.
UML – Diagrama de Objetos
Representação Gráfica:
É similar a de uma classe.
É um retângulo com dois compartimentos:
cliente
nome: "Pablo F. Barros"endereco:" Rua Paru, 784"
Nome do Objeto
Atributos do Objeto
UML – Diagramas de Objetos
Representação Gráfica (Nomeando um Objeto):
Sintaxe:
nome do objeto : Nome da classe
Exemplo:
produto1 : Produto
UML – Diagramas de Objetos
: NomedoCliente
Representação Gráfica:
pablo: NomedoCliente
pablo
nomedoobjeto : NomedaClasse
: NomedaClasse
nomedoobjeto
UML – Diagramas de Objetos
Representação Gráfica (Atributos): Exemplo: Classe Objeto
UML – Diagramas de Objetos Exemplo de um diagrama de Classes:
ContratoAluguel
codigo:integernomeCliente: string
cadastraContrato()alteraDadosCont()
possui
0..*
1
0..*
Cliente
nome: stringendereco:string
cadastraCliente()alteraDados()
1..*
refere a
0..*1
possui
EmpresadeAluguel
codigo:integernomeEmpresa: string
Caminhao
torque:string
Tipos de Veículos
CarroEsporte
potenciaMotor:integeraerofolio: string
VeiculoAlugado
codigoVeiculo:integermodelo: stringfabricante: String
cadastraVeiculo()alteraDadosVeiculo()
CarroPasseio
potenciaMotor: integer
UML – Diagramas de Objetos Exemplo de diagrama de Objetos:
No diagrama de objetos acima existe 1 objeto Cliente que se relaciona com 2 objetos Contratos e também temos 1 objeto Cliente que não se relaciona com nenhum objeto contrato (como esta descrito no diagrama de classes).
1234: ContratoAluguel
codigo: 1234nomeCliente: "Pablo F. Barros"
2188: ContratoAluguel
codigo: 2188nomeCliente: "Pablo F. Barros"
pablo :Cliente
nome: "Pablo F. Barros"endereco: "Rua Paru, 784"
alberto :Cliente
nome: "Alberto S. Alves"endereco: "Rua Salinas,25"
UML – Diagramas de Objetos Exemplo de um diagrama de Objetos na
instancia de cliente:
1234: ContratoAluguel
codigo: 1234nomeCliente: "Pablo F. Barros"
001 :VeiculoAlugado
codigoVeiculo: 001nome: "Fiesta"fabricante: "Ford"potenciaMotor: 1.0
005 :VeiculoAlugado
codigoVeiculo: 005nome: "A3"fabricante: "Audi"potenciaMotor: 2.0aerofolio: "A540"
2188: ContratoAluguel
codigo: 2188nomeCliente: "Pablo F. Barros"
006 :VeiculoAlugado
codigoVeiculo: 006nome: "Palio"fabricante: "Fiat"potenciaMotor: 1.5
003 :VeiculoAlugado
codigoVeiculo: 003nome: "F3000"fabricante: "Ford"torque: "4500"
001: EmpresadeAluguel
codigo: 001nomeEmpresa: "ALB Veiculos"
pablo :Cliente
nome: "Pablo F. Barros"endereco: "Rua Paru, 784"
alberto :Cliente
nome: "Alberto S. Alves"endereco: "Rua Salinas, 25"
UML – Diagramas de Objetos Exemplo de um diagrama de Objetos na
instancia de veiculo:
003 :VeiculoAlugado
codigoVeiculo: 003nome: "F3000"fabricante: "Ford"torque: "4500"
2188: ContratoAluguel
codigo: 2188nomeCliente: "Pablo F. Barros"
001: EmpresadeAluguel
codigo: 001nomeEmpresa: "ALB Veiculos"
001 :VeiculoAlugado
codigoVeiculo: 001nome: "Fiesta"fabricante: "Ford"potenciaMotor: 1.0
pablo :Cliente
nome: "Pablo F. Barros"endereco: "Rua Paru, 784"