Instituto Federal de Santa Catarina – Câmpus Chapecó
Ensino Médio Integrado em Informática – Módulo V
Unidade Curricular: Engenharia de Software
Professora: Lara P. Z. B. Oberderfer
Uma visão mais clara da UML
Sumário
1 Diagrama de Classes.........................................................................................................................2
1.1 Como descobrir as Classes de Objetos.....................................................................................2
1.2 Notações...................................................................................................................................4
1.3 Classes / Entidade.....................................................................................................................5
1.4 Relacionamentos.......................................................................................................................5
1.4.1 Associação.........................................................................................................................6
1.4.2 Agregação..........................................................................................................................6
1.4.3 Composição.......................................................................................................................7
1.4.4 Generalização....................................................................................................................7
1.4.5 Dependência.....................................................................................................................7
2 Exercícios..........................................................................................................................................8
3 Referências Bibliográficas.................................................................................................................9
1
1 Diagrama de Classes
1.1 Como descobrir as Classes de Objetos
É o processo de examinar o conjunto de “Use Cases” para extrair os Objetos e Classes do
sistema sob desenvolvimento. Os Objetos e Classes são podem ser obtidos do detalhamento dos
Cenários (instâncias de “Use Case”).
Objetos pertencente à Classe de Entidades são identificados examinando-se os
substantivos e frases substantivadas no cenário. Os substantivos podem ser: Objetos, descrição do
estado de um Objeto, entidade externa e/ou ator ou ainda nenhuma das anteriores.
Exemplo: Cenário para criar matrícula
Cleber entra com o número de identificação do aluno 369 53 3449 e o sistema valida o
número. O sistema pergunta a qual semestre refere-se a matrícula. Cleber indica que é para o
semestre atual e escolhe a opção “nova matrícula”.
Da lista de cursos disponíveis, Cleber seleciona como cursos de primeira escolha:
Engenharia de Softwarwe 101, Sistemas Computacionais Cliente Servidor 110, Tópicos em
Análise Orientada a Objetos 200 e Gerência de Mainframe 110. Ele seleciona como cursos de
segunda escolha: Introdução a Programação Java 200 e Teoria da Musica 300.
O sistema verifica que Cleber tem todos os pré-requisitos necessários, examinando os
registro do aluno e adiciona-o à lista de alunos do curso.
O sistema indica que a atividade esta completa. O sistema imprime a matrícula e envia a
informação de cobrança, referente aos quatro cursos, para processamento no sistema de
cobrança.
Objetos pertencente à Classe de Entidades são identificados examinando-se os
substantivos e frases substantivadas no cenário. No cenário acima estão destacados os
substantivos candidatos à Objetos da Classe de Entidade. Os substantivos podem ser: Objetos,
descrição do estado de um Objeto, entidade externa e/ou ator ou ainda nenhuma das anteriores.
Lista de substantivos e sua classificação
Cleber.- ator
número de identificação do aluno 369 53 3449 – propriedade de aluno
sistema. – o que está sendo definido
número – propriedade do aluno
semestre – estado (que é selecionado quando aplicável)
semestre atual – mesmo que semestre
nova matrícula – Objeto candidato
lista de cursos disponíveis - Objeto candidato
cursos de primeira escolha - estado
Engenharia de Softwarwe 101 - Objeto candidato
Sistemas Computacionais Cliente Servidor 110 - Objeto candidato
2
Tópicos em Análise Orientada a Objetos 200 - Objeto candidato
Gerência de Mainframe 110 - Objeto candidato
cursos de Segunda escolha - estado
Introdução a Programação Java 200 - Objeto candidato
Teoria da Musica 300.- Objeto candidato
pré-requisitos necessários – cursos com outra identificação
registro do aluno - Objeto candidato
lista de alunos do curso. - Objeto candidato
atividade . expressão
matrícula – mesmo que nova matrícula
informação de cobrança - Objeto candidato
quatro cursos - informação necessária ao sistema de cobrança
sistema de cobrança. - ator
Lista de Objetos da Classe Entidade
nova matrícula – Lista de cursos para um dado semestre de um dado aluno
lista de cursos disponíveis – Lista de todos os cursos que estão sendo oferecidos no
semestre
Engenharia de Softwarwe 101 – Um curso oferecido no semestre
Sistemas Computacionais Cliente Servidor110 - Um curso oferecido no semestre
Tópicos em Análise Orientada a Objetos 200 - Um curso oferecido no semestre
Gerência de Mainframe 110 - Um curso oferecido no semestre
Introdução a Programação Java 200 - Um curso oferecido no semestre
registro do aluno – Lista dos cursos feitos pelo aluno nos semestres anteriores
lista de alunos do curso – Lista com os alunos matriculados num curso específico.
informação de cobrança – Informações necessárias para o ator sistema de cobrança.
Lista de Classes de Entidades presentes no Cenário “Criar Matrícula”
Matrícula – Lista dos cursos para um dado semestre para um dado aluno.
Catálogo – Lista de todos os cursos oferecidos num semestre.
Curso – Curso oferecido para um semestre.
RegistroDoAluno – Lista dos cursos feitos anteriormente.
ListaDosAlunosNumCurso – Lista dos alunos matriculados num curso específico.
InformaçõesDeCobrança – Informações necessárias para o ator sistema de cobrança.
3
Figura 1: Classes de Entidades
1.2 Notações
Mostra um conjunto de classes e seus relacionamentos, é o diagrama central da
modelagem orientada a objetos.
Figura 2: Diagrama de classe
Um diagrama de classes contém:
•
Entidades
•
Relacionamentos
•
Associações
 Agregação

Composição
•
Generalização
•
Dependência
4
1.3 Classes / Entidade
As classes, no diagrama de classes, são representadas por um retângulo com,
normalmente, três divisões, a saber: o nome da classe, os atributos e as operações, esses dois
últimos, com os seus tipos e respectivos escopos. É importante que o nome da classe seja uma
palavra única, preferencialmente sem caracteres especiais e acentuados, isso evitará problemas na
geração do código fonte do diagrama.
Nome da Classe
Atributos
(Propriedades da Classe)
Operações
(Comportamentos da Classe)
Figura 3: Representação de uma classe
Os atributos representam o conjunto de características (estado) dos objetos daquela classe,
eles podem ser:
•
+ público: visível em qualquer classe de qualquer pacote;
•
# protegido: visível para classes de mesmo pacote;
•
- privado: visível somente para classe
As classes possuem métodos que representam as operações (comportamentos) que a
classe fornece. Assim como os atributos também podem ser público, protegido ou privado.
1.4 Relacionamentos
Os relacionamentos possuem:
•
Nome: descrição dada ao relacionamento (faz, tem, possui,...)
•
Sentido da leitura
•
Navegabilidade: indicada por uma seta no fim do relacionamentos
•
Multiplicidade: 0..1, 0..*, 1, 1..0, 2, 3..7
•
Tipo: associação (agregação, composição), generalização e dependência
•
Papéis: desempenhados por classes em um relacionamento
5
Figura 4: Relacionamentos
1.4.1 Associação
Uma associação é um relacionamento estrutural que indica que os objetos de uma classe
estão vinculados a objetos de outra classe. É representada por uma linha sólida entre as classes.
Notação usada para representar os diferentes tipos de multiplicidade
Multiplicidade
Simbologia
Zero ou um (opcional)
0..1
Um para um
1..1
Um para muitos
1..n ou 1..*
Zero ou muitos
0..n ou 0..*
Um a vinte (intervalo estabelecido)
1..20
1.4.2 Agregação
É um tipo especial de associação, utilizada para indicar “todo-parte” ou “parte-de”. É um
tipo de relacionamento que não força a destruição do conjunto, ou seja, uma vez destruído o
objeto todo, não há obrigatoriedade da destruição do objeto parte.
Exemplo: mesmo se a equipe “X” acabar, o jogador poderá fazer parte de outra equipe.
Figura 5: Agregação
6
1.4.3 Composição
Também é a descrição de um relacionamento “todo-parte” ou “parte de”, mas neste caso o
objeto parte pertence somente a um objeto todo, ou seja, esse é um tipo de relacionamento mais
forte entre duas classes ou entidades. Esse tipo de relacionamento traz, assim como a Agregação,
os conceitos de responsabilidades entre as classes, porém de forma mais acentuada. Quando
“todo” acaba, todas as suas partes também acabam.
Figura 6: Composição
1.4.4 Generalização
É um relacionamento onde temos uma classe ancestral (superclasses) e outras classes
herdadas (subclasses). A subclasse deve incluir todos os elementos (atributos e operações) da
superclasse. Na implementação física corresponde a um processo de herança. Este tipo de
relacionamento na linguagem JAVA pode ser identificado com o operador “instanceOff”.
Figura 7: Generalização
1.4.5 Dependência
Representa que a alteração de um objeto (o objeto independente) pode afetar outro objeto
(o objeto dependente).
Figura 8: Dependência
No exemplo acima, 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 e fornecedor é recebido por parâmetro de método.
7
2 Exercícios
1. Elabore um diagrama de classes para um sistema de ponto de vendas.
•
O gerente deve fazer login com um ID e senha para iniciar e finalizar o sistema;
•
O caixa (operador) deve fazer login com um ID e senha para poder utilizar o sistema;
•
Registrar a venda em andamento – os itens comprados;
•
Exibir a descrição e preço e do item registrado;
•
Calcular o total da venda corrente;
•
Tratar pagamento com dinheiro – capturar a quantidade recebida e calcular o troco;
•
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;
•
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;
•
Reduzir as quantidades em estoque quando a venda é confirmada;
•
Registrar as vendas completadas;
•
Permitir que diversas lojas utilizem o sistema, com catálogo de produtos e preços
unificados, porém estoques separados;
8
3 Referências Bibliográficas
1. CAMPOS, José C., RIBEIRO, Antonio N. Desenvolvimento de Sistemas de Software.
Disponível em: http://sim.di.uminho.pt/disciplinas/dss/0708/AulaT_20071016.pdf. Acesso
em: 10/04/2013.
2. LES, Laboratório de Engenharia de Software. UML: Diagrama de Sequência. Disponível em:
http://www.les.inf.puc-rio.br/wiki/images/e/ef/Aula02-diagrama_sequencia.pdf.
Acesso
em: 15/04/2013.
3. Macoratti.net.
UML
Conceitos
Básicos.
http://www.macoratti.net/vb_uml2.htm. Acesso em: 10/04/2013.
Disponível
em:
4. ZATYCKO, Florisbela. UML – Unified Modeling Language. Disponível em: Apostilando.com.
Acesso em: 10/04/2013.
5. Diagrama de Classes. Disponível em: http://www.lidel.pt/dcso/722-636-8_des_sis_inf.pdf .
Acesso em: 16/04/2013.
6. BORBA, Gilmar. Diagrama de Classes. Disponível em: http://gilmarborba.com.br/?p=184 .
Acesso em: 16/04/2013.
9
10
Download

1 Diagrama de Classes