Você está na página 1de 38

Prof.

Tiago Alves de Oliveira


tiago.alves@uemg.br
É o diagrama mais utilizado da UML;

Permite a visualização das classes que


comporão o sistema, apresentando:
◦ Atributos;
◦ Métodos;
◦ Relacionamento entre as classes;

Este diagrama serve como base para a


construção da maioria dos outros diagramas
da UML;
Este diagrama é composto por dois
elementos:

◦ Classes;

◦ Relacionamentos;
Graficamente, as classes são representadas
por retângulos incluindo nome, atributos e
métodos:
Nome da Classe

atributo1
atributo2
atributo3
...
metodo1
metodo2
metodo2
...
Devem receber nomes de acordo com o
vocabulário do domínio do problema;

É comum adotar um padrão para nomeá-las:


◦ Ex: todos os nomes de classes serão substantivos
singulares com a primeira letra maiúscula: Cliente,
Pessoa, Conta;
Representam o conjunto de características
(estado) dos objetos daquela classe;

Os valores dos atributos podem variar de


instância para instância;

Atributos devem conter o tipo de dados a ser


armazenado:
◦ Byte, boolean, int, double, char, String, etc;
Visibilidade:
◦ Público (+):
Visível em qualquer classe de qualquer pacote;
◦ Protegido (#):
Visível para subclasses;
◦ Privado (-):
Visível somente para classe;

Exemplo:
◦ - nome : String;
Representam o conjunto de operações
(comportamento) que a classe fornece;
São apenas declarados neste diagrama:
◦ Diagrama de Classes não define a implementação;

Possuem as mesmas regras de visibilidade dos


atributos:
◦ Ex.: + getNome() : String;

Outros diagramas perm item modelar o


comportamento interno dos métodos:
◦ Diagrama de Sequência;
◦ Diagrama de Atividades;
Exemplo de representação gráfica de uma
classe:

Nome Carro

- ano : int
- marca: String
Atributos - motor: Motor

+ acelerar() : void
Métodos + getAno() : int
+ frear(forca : float) : void
# lerSensor() : float
Uma interface é semelhante a uma classe,
mas não tem atributos;

A interface é composta por:


◦ Nome da Interface;
◦ Métodos da Interface;
◦ Estereótipo:
< < interface > >
Exemplo de representação gráfica de uma
interface:
Estereótipo

< < interface > >


Nome IVeiculo
+ acelerar() : void
Métodos + getAno() : int
+ frear(forca : float) : void
# lerSensor() : float
Classes possuem relacionamentos entre elas
(para comunicação):
◦ Compartilham informações;
◦ Colaboram umas com as outras;

Principais tipos de relacionamentos:


◦ Associação;
◦ Agregação / Composição;
◦ Herança (Generalização/Especialização);
◦ Dependência;
Descreve um vínculo entre duas classes:
◦ Associação Unária ou Reflexiva;
◦ Associação Binária (mais comum);
◦ Associação Ternária (pouco utilizada);

Determina que as instâncias de uma classe


estão de alguma forma ligadas às instâncias
da outra classe;
Uma associação é representada por uma linha
sólida conectando duas classes;
Multiplicidade Significado
No mínimo zero (nenhum) e no máximo um. Indica que os
0..1 objetos das classes associadas não precisam
obrigatoriamente estar relacionados.
Um e somente um. Indica que apenas um objeto da classe se
1..1 relaciona com os objetos da outra classe.
No mínimo nenhum e no máximo muitos. Indica que pode
0..* ou não haver instâncias de classe participando do
relacionamento.
Muitos. Indica que muitos objetos da classe estão envolvidos
* no relacionamento.
No mínimo 1 e no máximo muitos. Indica que há pelo menos
1..* um objeto envolvido no relacionamento, podendo haver
muitos envolvidos.
No mínimo 3 e no máximo 5. Valores específicos
3..5
Associação Unária ou Reflexiva:
◦ Ocorre quando existe um relacionamento de uma
classe para consigo mesma;

Sentido da Leitura Nome

Associação

Multiplicidade
Associação Binária:
◦ Ocorre quando são id entificados relacionamentos
entre duas classes;
◦ Mais comum das associações;

Implícito: 1..1
Um Estudante pode ser:
◦ Um aluno de uma Disciplina;
◦ Um jogador da Equipe de Futebol;
Cada Disciplina deve ser cursada por no mínimo 1 aluno;
Um aluno pode cursar de 0 até 8 disciplinas;
Cada Equipe de Futebol possui de 11 a 22 jogadores;
Um jogador pode competir apenas para uma Equipe de
Futebol;
Tipo especial de associação;

Demonstra que as informações de um objeto


precisam ser complementadas por um objeto
de outra classe;

Associação Todo-Parte:
◦ Objeto-todo;
◦ Objeto- parte – Não podem ser destruídos por um
objeto diferente do objeto-todo;
Representado por um losango na
extremidade da classe que contém os
objetos- todo;
É uma variação do tipo agregação;

Representa um vínculo mais forte entre objetos-


todo e objetos-parte;

Objetos-parte têm que pertencer ao objeto-todo:


◦ O todo não existe (ou não faz sentido) sem as partes;
◦ Ou, as partes não existem sem o todo;

Os objetos “parte” só podem pertencer a um


único objeto “todo” e têm o seu tempo de vida
coincidente com o dele;
Representado por um losango preenchido
◦ Da mesma forma que na Agregação, deve ficar ao
lado do objeto-todo

Errado

Quando o “todo” morre todas as suas “partes” também morrem;


Os objetos-parte somente pertencem a UM objeto-todo;
Exemplo de agregação e composição:

Implícito: 1..1
Identificar super- classe (geral) e subclasses
(especializadas):
◦ Semântica “é um”;
◦ Tudo que a classe geral pode fazer, as classes
específicas também podem;

Atributos e métodos definidos na classe-mãe


são herdados pelas classes-filhas;
superclasse

“É um”
“É um tipo de”

subclasses
Exemplo:
Tipo menos comum de relacionamento;

Identifica uma ligação fraca entre objetos de


duas classes;

Quando ocorrer uma mudança na classe


independente, a classe dependente também
sofrerá uma mudança;
Representado por uma reta tracejada entre
duas classes;

Uma seta na extremidade indica a classe


independente;
A classe cliente depende de algum serviço da classe
fornecedor;
A mudança de estado do fornecedor afeta o objeto
cliente;
A classe cliente não declara nos seus atributos um
objeto do tipo fornecedor;
Fornecedor é recebido por parâmetro de método;
Desenvolva um diagrama de classes para um sistema de
cursos de informática equivalente ao módulo de matrícula
de acordo com os seguintes fatos:
◦ Um curso pode ter muitas turmas, no entanto, uma turma se
relaciona exclusivamente com um único curso;
◦ Uma turma pode ter diversos alunos matriculados, no entanto,
uma matrícula refere-se exclusivamente a uma determinada
turma. Cada turma tem um número mínimo de 5 matrículas para
iniciar o curso;
◦ Um aluno pode realizar muitas matrículas, mas cada matrícula
refere-se exclusivamente a uma turma específica e a um único
aluno;
◦ Um aluno possui nome, endereço, telefone e data de nascimento.
Já uma turma deve conter as datas de inicio e fim e a informação
se a mesma está em aberto ou concluída;
◦ Incluir outros atributos e métodos que se façam necessários;
RF01 – o sistema deve permitir à secretaria cadastrar cursos contendo código, descrição e
coordenador.
RF02 – o sistema deve permitir à secretaria cadastrar disciplinas de cursos, contendo código, descrição,
carga horária, ementa, bibliografia e pré-requisitos.
RF03 – o sistema deve permitir à secretaria cadastrar alunos, contendo matrícula, nome, endereço,
telefone e curso para o qual foi aprovado.
RF04 – o sistema deve permitir ao departamento de recursos humanos (RH) cadastrar professores,
contendo nome, endereço, telefone e titulação máxima (graduação, especialização, mestrado,
doutorado) e cursos que esteja vinculado.
RF05 – o sistema deve permitir à secretaria abrir turmas de disciplinas de cursos, informando ano e
semestre, dias da semana e horários de realização.
RF06 – o sistema deve permitir aos coordenadores de curso alocar professores a determinadas turmas.
RF07 – o sistema deve permitir à secretaria matricular alunos em turmas.
RF08 – o sistema deve permitir aos professores lançar avaliações (duas notas parciais, nota da prova
final e frequência) dos alunos das turmas que estejam sob sua responsabilidade.
RF09 – o sistema deve permitir aos alunos consultar suas avaliações.
RF10 – o sistema deve permitir à secretaria emitir diários de classe das turmas.
RF11 – o sistema deve permitir à secretaria emitir históricos escolares dos alunos.
RF12 – o sistema deve efetuar o cálculo da aprovação de alunos em turmas, sendo que, para ser
aprovado, deve-se ter frequência mínima de 75%. Além disso, para aprovação sem prova final, a média
das notas parciais deve ser maior ou igual a 70. para reprovação direta, esta média deve ser menor que
30. médias entre 30 (inclusive) e 70 (exclusive) colocam o aluno em prova final. Se a média da prova
final com a média anterior for menor que 50, o aluno está reprovado, caso contrário, aprovado.
RF13 – o sistema deve controlar a situação de um aluno, podendo estar matriculado, trancado,
formado ou evadido.
Construa uma hierarquia de classes para os
seguintes tipos de obra: romance, livro de
ficção, livro de auto-ajuda, gibi, rock, mpb,
filme ficção e comédia.
Qual a diferença de interpretação entre os relacionamentos livro-
sobrecapa e livro-página?

Livro-página é uma agregação por composição, logo se destruirmos o livro, somem as


páginas e os parágrafos. Representamos um livro como algo fisicamente constituído de
páginas.

Na agregação livro-sobrecapa representamos que um livro pode ser constituído por


uma sobrecapa mas que a sobrecapa é um objeto que existe independentemente do
livro. Os tempos de vida dos objetos não são semelhantes.
Todo aluno matriculado em trabalho de
diplomação será orientado por um professor.
Alguns professore orientam vários alunos e
outros, nenhum. Faça o diagrama de classes
que representa essa relação.
R01. O gerente deve fazer login com um ID e senha para iniciar e finalizar o
sistema;
R02. O caixa (operador) deve fazer login com um ID e senha para poder utilizar o
sistema;
R03. Registrar a venda em andamento – os itens comprados;
R04. Exibir a descrição e preço e do item registrado;
R05. Calcular o total da venda corrente;
R06. Tratar pagamento com dinheiro – capturar a quantidade recebida e calcular o
troco;
R07. Tratar pagamento com cartão de crédito – capturar a informação do cartão
através de um leitor de cartões ou entrada manual e autorizar o pagamento
utilizando o serviço de autorização de crédito (externo) via conexão por modem;
R08. Tratar pagamento com cheque – capturar o número da carteira de identidade
por entrada manual e autorizar o pagamento utilizando o serviço de autorização
de cheque (externo) via conexão por modem;
R09. Reduzir as quantidades em estoque quando a venda é confirmada;
R10. Registrar as vendas completadas;
R11. Permitir que diversas lojas utilizem o sistema, com catálogo de produtos e
preços unificado, porém estoques separados;

Você também pode gostar