Você está na página 1de 23

Analise e Projeto

de Sistemas I
Diagrama de classe
Prof. Msc Eduardo Siqueira

Classes

Na UML uma classe representada da


seguinte forma:
Venda
- Forma de Pagamento
- Valor
- Data
+ Inserir Venda()
+ Gravar Venda()
+ Excluir()
+ Totalizar()
+ Emitir Ticket()
+ Emitir Nota Fiscal()
+ Imprimir Nota Fiscal()
+ Finalizar Impresso Nota Fiscal()
+ Totalizar Impostos()
+ Finalizar Impresso Ticket()

Atividades de Anlise

Identificao das classes


Organizao das classes
Identificao dos relacionamentos
Identificao dos atributos e
heranas

Realizao dos
de uso

Reviso da anlise

casos

Identificao das Classes

Uma tcnica bsica para auxiliar na identificao


das classes procurar os substantivos existentes nos
fluxos de casos de uso.
Todos os documentos gerados tambm podem ser
utilizados.
Cada substantivo normalmente ser:

Uma provvel classe;


Um atributo de uma classe;
Uma operao de uma classe;
Um aspecto de implementao (ex. relatrio);
Um entidade fora do escopo do produto;

No se deve incluir os atores (sujeitos das frases nos


fluxos dos casos de uso) como provveis classes.

Identificao das Classes

Anlise do fluxo de caso de uso:


O caixa faz a abertura da venda.
Para cada item de venda:
O caixa registra informa a identificao e a quantidade do item.
O Sistema totaliza a venda para o cliente.
O caixa encerra a venda.
O Sistema emite o ticket de caixa para o cliente.
O caixa registra a forma de pagamento.
O Sistema faz a baixa no estoque das mercadorias vendidas.

Identificao das Classes


Anlise das classes candidatas:
Classe candidata

Anlise

abertura

operao

venda

provvel classe

item vendido

provvel classe (Item de Venda)

identificao

atributo do Item de Venda

quantidade

atributo do Item de Venda

cliente

entidade fora do escopo

ticket de caixa

relatrio (entidade de implementao)

forma de pagamento

atributo de Venda

baixa

operao

estoque

Atributo da mercadoria (saldo do estoque)

mercadoria

provvel classe

Identificao das Classes

Classes candidatas encontradas:

Venda

Item de Venda

Mercadoria

Geralmente as classes encontradas so classes


persistentes (classes que possuem dados persistentes, ou
seja, dados que devem ser armazenados pelo sistema).
As classes persistentes so aquelas que sobrevivem a
cada execuo do programa por estarem
armazenadas em arquivos ou bancos de dados.
Quando se tem um ER disponvel cada entidade
corresponde naturalmente a uma classe persistente do
problema.

Especificao das Classes


Especificao das classes identificadas: a
documentao de cada classe deve conter:

Definio clara e concisa da classe;

Lista de responsabilidades da classe;

Lista de colaboraes da classe;

Lista de regras e restries aplicveis a classe;

Ao longo da Anlise a especificao das


classes ser completada com:

Atributos e operaes necessrias para cumprir as


responsabilidades;

Relacionamentos com as classes colaboradoras.

Especificao das Classes

Neste ponto podemos verificar alguns


problemas comuns as classes identificadas:
Sintoma

Soluo

classes com diferentes nomes e documentao parecida

combinar as classes

classes com documentao muito longa

dividir a classe

classe difcil de denominar ou documentar

Necessita-se de mais anlise

Algumas abstraes que a princpio no foram


aprovadas como classes devem continuar
sempre estudadas.

Organizao das Classes

Para facilitar o entendimento da modelagem


das classes a UML possui algumas notaes
para organizao das classes.

Agrupar as classes correlatas em pacotes


lgicos.
Vendas

Compras

Administrao

Organizao das Classes

Jacobson (um dos autores da UML) prope a


diviso das classes atravs dos seguintes
esteritipos:

Entidades: modelam informaes persistentes,


sendo normalmente independentes da aplicao.
Frequentemente correspondem a entidades de
banco de dados.

Fronteiras: tratam da comunicao com o


ambiente do produto. Modelam as interfaces do
produto com usurios e outros sistemas. Surgem
tipicamente de cada par ator/caso de uso.

Controle: coordenam fluxos de casos de uso


complexos, encapsulando lgicas (especficas da
aplicao) que no se enquadram nas
responsabilidades das entidades.

Organizao das Classes

Entidade

Fronteira

Controle

Venda
<<entity>>

Tela de Venda
<<boundary>>

Emissor de Relatrios
<<control>>

Observaes:

Nem sempre os analistas mostram as classes de fronteira


considerando estas implcitas no relacionamento entre
os atores e as demais classes.
Normalmente uma classe de controle corresponde a
um caso de uso. Pode ser usada at para subfluxos mais
complexos.
As classes de controle auxiliam reaproveitamento das
classes de entidade.
Um caso tpico de uso de uma classe de controle a
gerao de operaes financeiras.

Relacionamento entre Classes


Associao

Denotam dependncias entre as classes.

Associaes entre classes indicam a possibilidade de


comunicao direta entre os objetos destas classes (objetos
de uma classe tem conhecimento dos objetos de outra
classe.

Exemplo de relacionamento de associao:

Empresa
Incluir produto()
Excluir produto()

Mercadoria
Incluir fornecedor()
Excluir fornecedor()
Listar fornaecedor()

Relacionamento entre Classes

Ao especificar uma associao pode ser til


incluir:
1) Nome da associao

fornece

Empresa

Mercadoria

emprega

Pessoa
2) Multiplicidade dos papis:
Empresa
0..1

1..*

fornece

0..*

Mercadoria

emprega
1..*

Pessoa

Relacionamento entre Classes


3) Papis dos participantes
Empresa

fornecedor
0..*

0..1
empregador

fornece

produto
0..*

Mercadoria

emprega
empregado

Pessoa

1..*

4) Restries da associao navegabilidade


fornecedor
Empresa

fornece

produto

0..*

0..*

Mercadoria

empregador
emprega

empregado

Pessoa

Relacionamento entre Classes


Associao reflexiva

indica um relacionamento entre objetos de uma


mesma classe com participaes diferentes.

Pessoa
chefe 0..1

subordinado
1..*

filho
Pessoa
pai
1..1

1..*

Relacionamento entre Classes

Observaes:

Para nomear relacionamentos recomendase usar substantivos.

Dificuldades para nomear relacionamentos


um alerta para uma possvel falha de
modelagem.

Relacionamentos obrigatrios tm
multiplicidade mnima 1.

Tanto a denominao dos relacionamentos


quanto dos papis apenas devem ser
usados quando houver necessidade.

Relacionamento entre Classes

Generalizao

Visa estabelecer relaes entre tipos

Leitura: um

Se Gerente um Funcionrio

Todas as operaes e propriedades (no privadas)


de Funcionrio vo estar disponveis em Gerente

Gera o efeito de herana e polimorfismo quando


mapeado para cdigo

Relacionamento entre Classes

Agregao

uma associao com a semntica de contm


Serve como uma relao todo-parte fraca
O todo existe sem as partes
As partes existem sem o todo
Empresa

todo

Polgono

todo

0..1

0..1

1..*

3..*

Departamento

parte

Pontos

parte

Relacionamento entre Classes

Composio:

uma associao com a semntica de composto


de

Serve como uma relao todo-parte forte

As partes no existem sem o topo

As partes pertencem a somente um todo

A remoo do todo implica na remoo das partes

Venda
Multiplicidade omitida: por definio,
obrigatoriamente 1

1..*

Item de Venda

Relacionamento entre Classes

Classe de associao:
Permitem a adio de informaes em uma associao
Devem
ser transformadas em classes comuns
posteriormente para viabilizar implementao
Possuem atributos e operaes que so propriedades
do relacionamento como um todo no de cada
participante isoladamente.
Emprega
empregado
empregador
Empresa
Pessoa

1..*

0..1
Emprego
Empresa

possui

tem

Emprego

1..*

0..*

1..*

Pessoa

Exemplo
Como exemplo vamos supor que voc tivesse que desenvolver um sistema para
automatizar um consultrio dentrio. As etapas bsicas envolvidas seriam:
Levantamento e anlise de requisitos do sistema a ser desenvolvido. Entrevista
com o dentista(s) e com as pessoas que trabalham no consultrio
Definio dos objetos do sistema : Paciente , agenda , dentista , servio ,
contrato , consulta , pagamento , etc..
Definio dos atores do sistema : paciente, dentista , secretria
Definio e detalhamento dos casos de uso: marcar consulta , confirmar
consulta , cadastrar paciente , cadastrar servios , etc.
Definio das classes : paciente , dentista , exame , agenda , servio
Definir os atributos e mtodos das classes
Aps toda esta anlise voc chega no diagrama de classes do sistema
(representado abaixo a ttulo de exemplo ilustrativo)

Exemplo

Você também pode gostar