Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

39
Análise e Projeto de Análise e Projeto de Sistemas Sistemas Aula 9 Aula 9 Diagrama de Classes Diagrama de Classes

Transcript of Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

Page 1: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

Análise e Projeto de SistemasAnálise e Projeto de Sistemas

Aula 9Aula 9

Diagrama de ClassesDiagrama de Classes

Page 2: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama 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.

Page 3: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 4: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 5: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 6: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 7: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 8: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 9: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 10: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 11: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 12: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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 ()

Page 13: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 14: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 15: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 16: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 17: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 18: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 19: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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”.

Page 20: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.
Page 21: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 22: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.
Page 23: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 24: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.
Page 25: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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).

Page 26: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 27: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 28: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 29: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 30: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 31: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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.

Page 32: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 33: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

UML – Diagramas de Objetos

Representação Gráfica (Nomeando um Objeto):

Sintaxe:

nome do objeto : Nome da classe

Exemplo:

produto1 : Produto

Page 34: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

UML – Diagramas de Objetos

: NomedoCliente

Representação Gráfica:

pablo: NomedoCliente

pablo

nomedoobjeto : NomedaClasse

: NomedaClasse

nomedoobjeto

Page 35: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

UML – Diagramas de Objetos

Representação Gráfica (Atributos): Exemplo: Classe Objeto

Page 36: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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

Page 37: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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"

Page 38: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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"

Page 39: Análise e Projeto de Sistemas Análise e Projeto de Sistemas Aula 9 Diagrama de Classes.

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"