diagrama de classes profa. rosemary...
TRANSCRIPT
Modelagem de Sistemas
MODELAGEM DE SISTEMAS
Diagrama de Classes
Profa. Rosemary Melo
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
Modelagem de Sistemas
33
Diagrama de Classes
Exemplo de diagrama de classes representando um Sistema de Vendas
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
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
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
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
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()
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
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
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
Modelagem de Sistemas
1212
Exemplo – Associação com Papel
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
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
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
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;
}
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
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
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
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)
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.
.
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
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
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 .
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
Modelagem de Sistemas
2626
Composição - Exemplo
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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:
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: