Académique Documents
Professionnel Documents
Culture Documents
Objetivos
Prover respostas para as seguintes
perguntas:
Em um nvel alto de abstrao, que
objetos constituem o sistema em
questo?
Quais so as classes candidatas?
Como as classes do sistema esto
relacionadas entre si?
Quais so as responsabilidades de cada
classe?
Classes
Uma classe descreve seus objetos
atravs de atributos e operaes.
Atributos correspondem s
informaes que um objeto armazena.
Operaes correspondem s aes
que um objeto sabe realizar.
Detalhamento utilizado depende do
estgio de desenvolvimento e do nvel
de abstrao desejado.
Exemplo
Associaes
Para representar o fato de que objetos
podem se relacionar uns com os outros,
utilizamos associaes.
Uma associao representa relacionamentos
que so formados entre objetos durante a
execuo do sistema.
Embora as associaes sejam representadas
entre classes do diagrama, tais associaes
representam ligaes possveis entre os
objetos das classes envolvidas.
Participao
Uma caracterstica de uma associao
que indica a necessidade (ou no) da
existncia desta associao entre
objetos.
A participao pode ser obrigatria ou
opcional.
Se o valor mnimo da multiplicidade de uma
associao igual a 1 (um), significa que a
participao obrigatria
Caso contrrio, a participao opcional.
Classe associativa
Classe que est ligada a uma associao,
em vez de estar ligada a outras classes.
Usada quando duas ou mais classes esto
associadas, e necessrio manter
informaes sobre esta associao.
Sinnimo: classe de associao
Associaes n-rias
Define-se o grau de uma associao como a
quantidade de classes envolvidas na
mesma.
Na notao da UML, as linhas de uma
associao n-ria se interceptam em um
losango.
Na grande maioria dos casos prticos de
modelagem, as associaes normalmente so
binrias.
Quando o grau de uma associao igual a
trs, dizemos que a mesma ternria.
Exemplo de associao
ternria
Na notao da UML, as linhas de uma
associao n-ria se interceptam em
um losango nomeado.
Associaes reflexivas
Associao que representa ligaes entre objetos
que pertencem a uma mesma classe.
No indica que um objeto se associa a ele
prprio.
A definio de papis importante para evitar
ambigidades na leitura da associao.
Cada objeto tem um papel distinto na
associao.
Agregaes e Composies
So assimtricas, no sentido de que, se um objeto A
parte de um objeto B, o objeto B no pode ser parte do
objeto A
Propagam comportamento, no sentido de que um
comportamento que se aplica a um todo automaticamente
se aplica s suas partes.
As partes so normalmente criadas e destrudas pelo todo.
Se uma das perguntas a seguir for respondida com um
sim, provavelmente h uma agregao onde X todo e Y
parte.
X tem um ou mais Y?
Y parte de X?
Exemplo
Pertinncia
Na composio, os objetos parte pertencem
a um nico todo.
Em uma agregao, pode ser que um
mesmo objeto participe como componente
de vrios outros objetos.
Agregao e Associao
Existe pouca diferena semntica
entre agregao e associao.
Na prtica, agregao usada
raramente.
Restries sobre
associaes
Generalizao e
Especializao
Relacionamentos entre classes.
Esses denotam relaes de generalidade
ou especificidade entre as classes
envolvidas.
O conceito mamfero mais genrico que o
conceito ser humano.
O conceito carro mais especfico que o
conceito veculo.
Terminologia
subclasse X superclasse .
classe base X classe herdeira .
classe de especializao X classe de
generalizao .
Notao definida pela UML
Herana de associaes
No somente atributos e operaes, mas
tambm associaes so herdadas pelas
subclasses.
No exemplo abaixo, cada subclasse est
associada a Pedido, por herana.
Propriedade da Herana
Transitividade: uma classe em uma
hierarquia herda propriedades e
relacionamentos de todos os seus ancestrais.
A herana pode ser aplicada em vrios nveis, dando
origem a hierarquia de generalizao.
Uma classe que herda propriedades de uma outra
classe pode ela prpria servir como superclasse.
Exemplo de herana
Classes Abstratas
Usualmente, a existncia de uma
classe se justifica pelo fato de haver
a possibilidade de gerar instncias
da mesma
Essas so as classes concretas.
Classes Abstratas
Classes abstratas so utilizadas para
organizar e simplificar uma hierarquia de
generalizao.
Propriedades comuns podem ser
organizadas e definidas em uma classe
abstrata a partir da qual as primeiras
herdam.
Subclasses de uma classe abstrata tambm
podem ser abstratas, mas a hierarquia deve
terminar em uma ou mais classes concretas.
Diagrama de Objetos
A UML define um segundo tipo de
diagrama estrutural, o diagrama de
objetos.
Pode ser visto com uma instncia de
diagramas de classes
Representa uma fotografia do sistema
em um certo momento.
exibe as ligaes formadas entre objetos
conforme estes interagem e os valores dos
seus atributos.
Exemplo Diagrama de
Objetos
i tem 1 : I tem P ed i d o
q u an ti d ad e = 6
P ed i d o 1 : P ed i d o
d a t aI t=PeP mr1eo3dPd/ i eu0dd9to/oi d2 o0 0 2
h o r a = 1 0 :0 0 a m
i tem 2 : I tem P ed i d o
q u an ti d ad e = 20
i tem 3 : I tem P ed i d o
q u an ti d ad e = 1
p ro d u to 20 : P ro d u to
n o m e = "C ad ern o M "
d es cri o = "C ad ern o em es p i ral tam an h o m d i o "
p r e o U n i t r i o = 4 ,5 0
d es co n to = 15
p ro d u to 12 : P ro d u to
n o m e = "C an eta E S F "
d e s c r i o = " C a n e t a e s f e r o g r fi c a 5 m m "
p r e o U n i t r i o = 1 ,2 0
d esco n to = 2
p ro d u to 07 : P ro d u to
n o m e = "E s q u ad ro "
d es cri o = "E s q u ad ro d e acr l i co 20 cm "
p r e o U n i t r i o = 2 ,3 5
d es co n to = 10
Categorias de Conceitos
Conceitos concretos: edifcios, carros, salas de aula.
Papis desempenhados por seres humanos:
professores, alunos, empregados, clientes.
Eventos, ou seja, ocorrncias em uma data e em uma
hora particulares: reunies, pedidos, aterrisagens,
aulas.
Lugares: reas reservadas para pessoas ou coisas:
escritrios, filiais, locais de pouso, salas de aula.
Organizaes: colees de pessoas ou de recursos:
departamentos, projetos, campanhas, turmas.
Conceitos abstratos: princpios ou idias no
tangveis: reservas, vendas, inscries, boleto.
Categorizao de Classes
Objetos de entidade : usualmente objetos
do domnio do problema
Objetos de fronteira : atores interagem
com esses objetos
Objetos de controle : servem como
intermedirios entre objetos de fronteira e
de entidade, definindo o comportamento
de um caso de uso especfico.
Categorizao de Classes
Categorizao proposta por
Jacobson.
Possui correspondncia (mas no
equivalncia!) com o padro de
arquitetura model-view-controller (MVC)
Objetos de Entidade
Repositrio para informaes e as regras de
negcio manipuladas pelo sistema.
Representam conceitos do domnio do negcio.
Caractersticas
Normalmente armazenam informaes persistentes.
Vrias instncias da mesma entidade existindo no sistema.
Participam de vrios casos de uso.
Exemplo:
Um objeto Pedido participa dos casos de uso Realizar
Pedido e Atualizar Estoque.
Este objeto pode existir por diversos anos ou mesmo tanto
quanto o prprio sistema.
Objetos de Fronteira
Comunicao do sistema com os atores.
traduzem os eventos gerados por um ator em
eventos relevantes ao sistema
tambm so responsveis por apresentar os
resultados de uma interao dos objetos.
Objetos de Controle
So a ponte de comunicao entre objetos de
fronteira e objetos de entidade.
Responsveis por controlar a lgica de execuo
correspondente a casos de uso.
Decidem o que o sistema deve fazer quando um
evento de sistema ocorre.
Agem como controladores dos outros objetos para a
realizao de um caso de uso.
Importncia da
Categorizao
A categorizao BCE parte do
princpio de que cada objeto
especialista em realizar um de trs
tipos de tarefa:
comunicar com atores (fronteira),
manter as informaes (entidade),
coordenar a realizao de um caso de
uso (controle).
Importncia da
Categorizao
A importncia dessa categorizao
est relacionada capacidade de
adaptao a eventuais mudanas.
Se cada objeto tem atribuies
especficas dentro do sistema, mudanas
podem ser menos complexas e mais
localizadas.
Uma modificao em uma parte do
sistema tem menos possibilidades de
resultar em mudanas em outras partes.
Classes de Projeto
O modelo de classes de projeto
resultante de refinamentos no modelo de
classes de anlise.
Esse modelo construdo em paralelo com o
modelo de interaes.
A construo do modelo de interaes gera
informaes para a transformao do modelo
de classes de anlise no modelo de classes de
projeto.
Especificao de classes de
fronteira
No atribuir a essas classes
responsabilidades relativas lgica do
negcio.
Classes de fronteira devem apenas servir
como:
Ponto de captao ou
Ponto de apresentao de informaes.
Especificao de classes de
fronteira (cont.)
H diversas razes para isso:
Se o sistema tiver que ser implantado
em outro ambiente, as modificaes
resultantes sobre seu funcionamento
seriam mnimas.
O sistema pode dar suporte a diversas
formas de interao com seu ambiente.
Essa separao resulta em melhor
coeso.
Especificao de classes de
fronteira (cont.)
Durante a anlise, considera-se que
h uma nica classe de fronteira
para cada ator.
No projeto, algumas dessas classes
podem resultar em vrias outras.
Especificao de classes de
fronteira (cont.)
Clientes WEB clssicos
Classes de fronteira so pginas HTML.
Clientes stand-alone
Recomendvel que os desenvolvedores
pesquisem os recursos fornecidos pelo
ambiente de programao sendo
utilizado. Ex. Swing/JFC
Especificao de classes de
fronteira (cont.)
A maioria das classes de entidade
normalmente permanece na passagem
da anlise ao projeto.
Classes de entidade so normalmente
as primeiras classes a serem
identificadas, na anlise de domnio.
Deve-se identificar quais delas geram
objetos que devem ser persistentes.
Especificao de classes de
fronteira (cont.)
Como identificar cada um de seus objetos
unicamente.
Ex. um objeto da classe Aluno unicamente
identificado pelo valor de sua matrcula.
Especificao de classes de
entidade
A maioria das classes de entidade
normalmente permanece na passagem
da anlise ao projeto.
Classes de entidade so normalmente
as primeiras classes a serem
identificadas, na anlise de domnio.
Deve-se identificar quais delas geram
objetos que devem ser persistentes.
Especificao de classes de
entidade
Como identificar cada um de seus
objetos unicamente.
Ex. um objeto da classe Aluno
unicamente identificado pelo valor de sua
matrcula.
Um identificador de
implementao, que no tem
correspondente com atributo
algum do domnio, pode ser criado.
Especificao de outras
classes
Alm do refinamento de classes preexistentes,
diversos outros aspectos demandam a
identificao de novas classes durante o projeto.
Persistncia de objetos
Distribuio e comunicao (RMI, CORBA, DCOM)
Autenticao/Autorizao
Logging
Classes para testes (Test Driven Development)
Uso de bibliotecas, componentes e frameworks
C l i en te
+ o b te r N o m e ( ) : S tr i n g
+ d e fi n i r N o m e ( i n u m N o m e : S t r i n g )
+ o b te r D a ta N a sc i m e n to ( ) : D a ta
+ d e fi n i r D a t a N a s c i m e n t o ( i n u m a D a t a : D a t a )
+ o b te r T e l e f o n e ( ) : S tr i n g
+ d e fi n i r T e l e f o n e ( i n u m T e l e f o n e : S t r i n g )
+ o b te r L i m i te C r d i to ( ) : M o e d a
+ d e fi n i r L i m i t e C r d i t o ( i n u m L i m i t e C r d i t o : fl o a t )
+ o b te r I d a d e ( ) : i n t
+ o b te r Q u a n ti d a d e C l i e n te s( ) : i n t
+ o b t e r I d a d e M d i a ( ) : fl o a t
Sublinhado: mtodo/atributo
esttico
/ : atributo derivado
Visibilidade
Qualificadores de visibilidade aplicveis a
atributos tambm podem ser aplicados a
operaes.
+ visibilidade pblica
# visibilidade protegida
- visibilidade privativa
Projeto de mtodos
Mtodos de criao e destruio de
objetos
Mtodos de acesso (getX/setX)
Outros mtodos:
Valores derivados, formatao,
converso,....
Detalhamento de mtodos
Diagramas de interao fornecem um
indicativo sobre como mtodos devem ser
implementados.
Como complemento, notas explicativas
tambm so teis no esclarecimento de
como um mtodo deve ser implementado.
O diagrama de atividades tambm pode
ser usado para detalhar a lgica de
funcionamento de mtodos mais
complexos.
Implementao de
associaes
H trs casos, em funo da
conectividade: 1:1, 1:N e N:M
Para uma associao 1:1 entre duas
classes A e B :
Se a navegabilidade unidirecional no
sentido de A para B, definido um atributo
do tipo B na classe A.
Se a navegabilidade bidirecional, pode-se
aplicar o procedimento para as duas
classes.
Conectividade 1:1
Classe parametrizada
Uma coleo pode ser representada
em um diagrama de classes atravs
uma classe parametrizada.
Def.: uma classe utilizada para
definir outras classes.
Possui operaes ou atributos cuja
definio feita em funo de um ou
mais parmetros.
Conectividade 1:N
Formas alternativas para
representao de uma associao
cuja conectividade 1:N.
Conectividade N:M
Classes Associativas
Tipos de Herana
Com relao quantidade de
superclasses que certa classe pode
ter.
herana mltipla
herana simples
Operaes polimrficas
Uma subclasse herda todas as propriedades de
sua superclasse que tenham visibilidade
pblica ou protegida.
Pode ser que o comportamento de alguma
operao herdada seja diferente para a
subclasse.
Nesse caso, a subclasse deve redefinir o
comportamento da operao.
A assinatura da operao reutilizada.
Mas, a implementao da operao (ou seja, seu
mtodo) diferente.
Operaes polimrficas
(Cont)
Operaes polimrficas so aquelas
que possuem mais de uma
implementao.
A assinatura repetida na(s)
subclasse(s) para enfatizar a
redefinio de implementao.
O objetivo de manter a assinatura
garantir que as subclasses tenham
uma interface em comum.
Operaes polimrficas
(Cont)
Se duas ou mais subclasses implementam
uma operao polimrfica, a mensagem
para ativar essa operao a mesma para
todas essas classes.
No envio da mensagem, o remetente no
precisa saber qual a verdadeira classe de
cada objeto, pois eles aceitam a mesma
mensagem.
A diferena que os mtodos da operao
so diferentes em cada subclasse.
Operaes polimrficas
Operaes polimrficas tambm podem
existir em classes abstratas.
Operaes polimrficas
(cont)
Operaes polimrficas implementam o
princpio do polimorfismo:
dois ou mais objetos respondem a
mesma mensagem de formas
diferentes.
Exerccios
Para cada especificao a seguir,
projete dois diagramas de classes:
De anlise
De projeto
Projeto
Mtodos complexos (relativos a duas ou mais classes)
Mtodos com atributos e valores de retorno
Atributos com tipo (inclusive criados) e visibilidade
Classes de fronteira e de controle (com mtodos)
Projetado durante/aps os modelos dinmicos