42
Modelagem de Sistemas MODELAGEM DE SISTEMAS Diagrama de Classes Profa. Rosemary Melo

Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

MODELAGEM DE SISTEMAS

Diagrama de Classes

Profa. Rosemary Melo

Page 2: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

2

Considerado o diagrama mais importante e utilizado da UML.

Seu principal enfoque é permitir a visualização das classespertencentes a um sistema, os atributos e métodos destasclasses, assim como as relações entre estas classes.

São criados para fornecer uma visão de como as classespertencentes a um sistema estão organizadas (visão estáticado sistema).

Serve como base para a construção da maioria dos outrosdiagramas da UML.

2

Diagrama de Classes

Page 3: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

33

Diagrama de Classes

Exemplo de diagrama de classes representando um Sistema de Vendas

Page 4: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

4

Uma classe descreve um conjunto de objetos compropriedades comuns (atributos, operações erelacionamentos).

Ela representa os estados e comportamentos que os objetospodem assumir:

o estado corresponde os atributos;

o comportamento corresponde as operações;

ao criar uma classe estamos informando que seus objetosterão o mesmo tipo de estado e comportamento.

As classes podem ser usadas para representar: software,hardware ou puramente itens conceituais.

4

Classes

Page 5: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

55

Representação básica

A classe é representada graficamente com um retângulocontendo nome, atributos e operações.

A apresentação dos atributos e operações pode variarconforme as necessidades e objetivos.

Nome

Atributos

Operações

Page 6: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

66

Nomes de Classes

Cada classe deve ter um nome único;

Classes em pacotes diferentes podem ter o mesmo nome;

Procure usar substantivos;

A primeira letra de cada palavra deve ser maiúscula.

Exemplos: Produto

Cliente

ItemPedido

Page 7: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

77

Atributos da Classe

Representam o estado das instâncias da classe;

São valores que a classe e ou instâncias (objetos) contém;

Pensando em linguagem de programação: são variáveismembro de classe, isto é, são declaradas no corpo da classe,fora de métodos.

Uma classe pode conter nenhum ou vários atributos;

Sugere-se que os atributos sejam iniciados em minúsculo,demais palavras com inicial maiúsculo.

Exemplos:

nomeCliente

enderecoResidencial

decricaoProduto

Page 8: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

88

Operações da Classe

É a implementação de um serviço que pode modificar ocomportamento do objeto;

A classe pode ter nenhuma ou várias operações;

Os nomes das operações inicia-se com verbos;

Mesmo que não tenha parâmetros, finalizar com parênteses“()”;

Assinatura de uma operação é composta pelo seu nome,quantidade de parâmetros e pelos tipos dos parâmetros;

Iniciado em minúsculo, demais palavras com inicial maiúsculo.

Exemplos: apresentarCliente()

incluirNotaFiscal()

consultarPedido()

Page 9: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

9

As marcações de acesso servem para especificar o tipo deacesso permitido aos atributos e operações:

+ publico: visível a todos os classificadores

# protegido: visível ao próprio classificador e seusdescendentes

- privado: visível apenas ao próprio classificador

9

Visibilidade

Page 10: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

10

Descreve o vínculo que ocorre entre as classes, com o intuitode compartilhar informações e colaborarem umas com asoutras para permitir a execução de tarefas executadas pelosistema.

Tipos de relacionamentos em diagramas de classes:

Associação

Generalização

Dependência

Realização

10

Relacionamentos

Page 11: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

11

Uma associação descreve o vínculo que ocorre entre as classes, taiscomo: associação unária ou reflexiva (entre uma classe), associaçãobinária (entre duas classes) ou associação ternária ou N-ária (entretrês ou várias classes).

Ela determina que as instâncias de uma classe estão de alguma formaligadas às instâncias das outras classes envolvidas na associação,podendo haver troca de informações entre elas e e compartilhamentode métodos.

Uma associação é representada por uma linha sólida entre as classes(pode ter um título) e nos extremos da linha deve-se acrescentar:

Os papéis das classes naquela associação

A multiplicidade

A navegabilidade da associação.

11

Associação

Page 12: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

1212

Exemplo – Associação com Papel

Page 13: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

13

Define o limite de vezes que as instâncias de uma classe devemse relacionar com as instâncias de outra classe (cardinalidadeda associação).

Tipos de cardinalidade:0..1 - Cardinalidade pode ser 0 ou 11 - Cardinalidade só pode ser 10..* - Cardinalidade pode variar de 0 até infinito* - Cardinalidade pode variar de 0 até infinito1..* - Cardinalidade pode variar de 1 até infinito1..6 - Cardinalidade pode variar de 1 até 6

13

Multiplicidade

Page 14: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

14

Quando não for definida a multiplicidade na extremidade darelação considera que a multiplicidade é 1.

14

Exemplo - Associação com Multiplicidade

Page 15: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

15

Representada por uma seta na extremidade da linha que indica orelacionamento entre duas classes.

Ela expressa o sentido em que as informações são transmitidas entre asclasses envolvidas.

Se houver seta na associação implica dizer que as informações trafegam emuma direção e que só uma classe está ciente desta relação, neste caso elapode ser referida como associação unidirecional (com navegabilidade).

Se não houver seta na associação implica dizer que as informações podemtrafegar em todas as direções entre as classes da associação e que todas asclasses da relação estão ciente da mesma, neste caso ele pode ser referidacomo associação bidirecional (sem navegabilidade).

Por padrão as associações são bidirecional.15

Navegabilidade

Page 16: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

1616

Exemplo – Associação com Navegabilidade

A empresa sabe quais são seus funcionários, mas o funcionárionão sabe a que empresa pertence.

public class Empresa {private string NomEmpresa;public funcionario empregado[];

}

public class Funcionário {

private long Codigo;private char Nome;private long codChefe;

}

Page 17: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

17

As associações podem ser modeladas da seguinte forma:

Associação Unária ou Reflexiva

Associação Binária

Classe de Associação (Classe Associativa)

Agregação

Composição

17

Associação

Page 18: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

18

Uma mesma classe pode se relacionar com ela própria atravésde uma associação.

18

Associação Unária ou Reflexiva

Page 19: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

19

Ocorrem quando são identificados relacionamentos entre duasduas classes.

Constitui-se o tipo de relacionamento mais comum encontradonos diagramas de classe.

19

Associação Binária

Page 20: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

20

São classes produzidas quando da ocorrência de associaçõesque possuem multiplicidade muitos (*) em todas as suasextremidades.

São necessárias para armazenar as informações produzidas pelaassociação, além dos atributos próprios da relação.

Uma classe de associação é representada por uma setatracejada partindo do meio da associação e atingindo umaclasse.

Classes associativas são válidas somente quando existe umúnico objeto associado a duas instâncias associadas.

20

Classe de Associação (Classe Associativa)

Page 21: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

21

.

21

Classe de Associação - Exemplo

Podem ser substitídas por classes normais, chamadas neste caso de ClassesIntermediária, porém ela permite vários objetos relacionados a duasinstâncias associadas.

No caso acima, um ator pode atuar no mesmo filme com vários papéisdiferentes.

.

Page 22: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

22

Agregação é um tipo especial de associação usado paramodelar relacionamentos do tipo todo-parte.

Ela busca demonstrar que as informações de um objeto(objeto-todo) precisam ser completadas pelas informaçõescontidas em um ou mais objetos de outra classe (objeto-parte).

Os objetos-parte podem ser compartilhados por mais de umobjeto-todo.

22

Agregação

Page 23: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

23

Este tipo de relação pode em muitos casos ser substituída poruma associação binária simples, sendo que na agregação háobrigatoriedade de complementação das informações de umobjeto-todo por seus objeto-parte, já na associação bináriaesta obrigatoriedade não está explícita

23

Agregação

Page 24: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

2424

Agregação - Exemplo

Neste caso, sempre que uma pessoa for consultada, além de suasinformações serão apresentadas todas as contas referentes a esta pessoa .

Page 25: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

25

Constitui-se em uma variação da associação de agregação.

Representa um vínculo mais forte entre os objetos-todo e osobjetos-parte.

Procura demonstrar que os objetos-parte tem de pertencerexclusivamente a um único objeto-todo com que serelacionam (um objeto-parte não pode pertencer a mais deum objeto-todo).

Em uma composição os objeto-parte não podem serdestruídos por um objeto diferente do objeto-todo ao qualestão relacionados.

25

Composição

Page 26: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

2626

Composição - Exemplo

Page 27: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

27

Generalização é um relacionamento utilizado para a modelagemde Herança.

Herança é a habilidade de uma classe (classe filha) de herdar aspropriedades de outra classe (classe pai), podendo possuiratributos e métodos próprios.

27

Generalização

Page 28: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

28

Expressa um certo grau de dependência de uma classe comrelação a outra.

Não costuma ser encontrado com muita frequência nosdiagramas de classes.

Especifica que sempre que ocorrer uma alteração na classe daqual uma outra depende, esta deverá também sofrer umaalteração.

Representado por uma reta tracejada entre duas classescontendo uma seta na extremidade da classe da qual a outraclasse depende.

28

Relacionamento de Dependência

Page 29: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

2929

Dependência - Exemplo

A classe Item Carrinho possui dependência com a classeCarrinho, implica que a maioria dos eventos ocorridos nasinstâncias desta classe, senão todos, afetam de alguma formaas instâncias da classe Item Carrinho.

Page 30: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

30

Tipo de relacionamento especial que mistura característicasdos relacionamentos de generalização e dependência.

Usado para identificar classes responsáveis por executarfunções para classes que representam interfaces.

Este tipo de relacionamento herda o comportamento de umaclasse mas não sua estrutura.

É representado por uma seta tracejada contendo uma setavazia que aponta para a classe de interface, enquanto que naoutra extremidade é definida a classe que realiza ocomportamento pretendido pela interface.

30

Relacionamento de Realização

Page 31: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3131

Realização - Exemplo

O comportamento pretendido para a Interface não érealmente realizado por esta interface, ela apenas repassa asinformações fornecidas pela outra classe, que é a realresponsável pela execução do método Registrar Artigos.

Page 32: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3232

Interface

Usada como um meio de descrever serviços disponíveis declasses específicas.

A interface pode ser representada através de classeestereotipada (<<interface>>) ou por um círculo.

Interfaces podem participar de associações, generalizações edependências.

Page 33: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3333

Interface

A partir da versão 2.0 da UML as interfaces podem ser de dois tipos:fornecidas ou requeridas.

A interface fornecida descreve um serviço implementado por uma classe.

A interface requerida descreve os serviços que outra classes devemfornecer a uma determinada classe, que não precisam ter conhecimentode quais classes implementarão esses serviços.

Page 34: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3434

Representação de Restrição

Constituem-se em informações extras que definem condiçõesa serem validadas durante a implementação dosrelacionamentos entres as classes.

Em geral, são representadas nos diagramas de classes portextos limitados por chaves.

Page 35: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3535

Representação de Restrição - Exemplo

Neste exemplo, utiliza-se restrição para determinar que umsócio somente poderá realizar uma locação se não possuirnenhuma locação pendente.

Page 36: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3636

Representação de Restrição - Exemplo

Neste exemplo, uma nota informa a necessidade de que oatributo Senha possua no mínimo 4 dígitos, restringindo onúmero de senhas com número inferior.

Page 37: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3737

Representação de Restrição - Exemplo

Neste exemplo, uma conta corrente pode tanto ser possuídapor uma pessoa física como uma pessoa jurídica, mas umadeterminada conta só pode pertencer a uma única pessoa.

Page 38: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3838

Representação de Restrição para classes especializadas

. Neste exemplo, foram derivadas duas sub-classes a partir daclasse Pessoa. Sendo que, no momento que uma pessoa forfísica, ela não pode ser jurídica e vice-versa.

Page 39: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

3939

Representação de Restrição para classes especializadas

. Neste exemplo, foram derivadas duas sub-classes a partir daclasse Pessoa. Sendo que, no momento que uma pessoa forfísica, ela não pode ser jurídica e vice-versa.

Page 40: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

4040

Representação de Restrição para classes especializadas

. Este exemplo indica que um veículo pode ser tanto aéreocomo aquático, como é o caso de um hidro-avião.

Page 41: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

41

Não é obrigatório especificar os atributos-chave e atributoschave-estrangeira nas classes, desde que estes atributossirvam somente para identificar de forma única uma instânciade uma classe.

Os atributos que representam chave só deverão serobrigatoriamente declarados, caso os mesmos possuam outrafunção que os torne necessário.

41

Observações importantes:

Page 42: Diagrama de Classes Profa. Rosemary Melofiles.rosefib.webnode.com.br/200000395-d4cbdd6bfd/Aula04... · 2016. 9. 6. · Modelagem de Sistemas 11 Uma associação descreve o vínculo

Modelagem de Sistemas

42

1) Desenvolva o diagrama de classes para um sistema decursos de informática com as seguintes características:

i. Um curso pode ter muitas turmas, no entanto, umaturma se relaciona exclusivamente com um único curso.

ii. Uma turma pode ter diversos alunos matriculados, noentanto uma matrícula refere-se exclusivamente a umadeterminada turma. Cada turma tem um númeromínimo de matrículas para iniciar o curso.

iii. Um aluno pode realizar muitas matrículas, mas cadamatrícula refere-se exclusivamente a uma turmaespecífica e a um único aluno.

42

Exercício proposto: