Professional Documents
Culture Documents
Diagrama de Classes de
Projeto
captura
Compra
data
completa
horario
Modelo do Domnio
Modelo do Projeto
Registrador
Compra
1
finalizaCompra
entraItem
fazPagamento
captura
data
completa
horario
fazItemLinha
Atributo
Notao textual de um atributo:
visibilidade nome : tipo multiplicidade = default {propriedade}
De acordo com a UML, a sintaxe de qualquer linguagem de
programao tambm pode ser usada na declarao dos atributos.
Se a visibilidade no apresentada, o atributo considerado privado.
pblico
protegido
privado
package
Atributo
Atributos que representam objetos de outras classes:
Compra
...
1
pgto
...
Pagamento
...
...
Compra
Pagamento
pgto: Pagamento
...
...
...
Compra
pgto: Pagamento
...
1
pgto
Pagamento
...
...
Atributo
Atributos que representam colees de objetos de outras classes:
Compra
...
itens
{ordered, List}
...
propriedade
pr-definida
Compra
itens: ItemCompra [1..*]
ou
itens: ItemCompra [1..*] {ordered}
...
Item Compra
1..*
...
...
propriedade
definida pelo
usurio
Item Compra
...
...
Operao
Uma operao a implementao de um servio que pode ser
requisitado a qualquer objeto da classe.
Uma classe pode ter zero ou mais operaes.
As assinaturas das operaes so mostradas no terceiro compartimento
do retngulo da classe.
SensorTemperatura
resetar ()
setarAlarme (t : Temperatura)
valor () : Temperatura
Operao
Se a visibilidade no apresentada, a operao considerada pblica.
Na UML, uma operao no um mtodo, uma operao uma
declarao.
Na UML, um mtodo a implementao de uma operao.
Um mtodo pode ser ilustrado:
nos diagramas de interao, pelos detalhes e seqncia das
mensagens;
nos diagramas de classes, dentro de um smbolo de nota
estereotipada com method;
nos diagramas de atividades.
Operaes abstratas, assim como as classes abstratas, so mostradas
com {abstract} ou com o nome em itlico.
Dependncia
Uma dependncia um relacionamento que indica que um elemento
cliente (ex. classe, pacote, caso de uso) tem conhecimento de outro
elemento fornecedor e que uma mudana no fornecedor pode afetar o
cliente.
Filme
call
Canal
Dependncia
Tipos de dependncia entre objetos e classes:
atributo do tipo do fornecedor
mensagem enviada a um fornecedor
parmetro recebido do tipo do fornecedor
o fornecedor uma superclasse ou interface
Alguns destes tipos de dependncia j possuem alguma linha que
sugere a dependncia.
Interface
Uma interface uma coleo de assinaturas de operaes que
definem um conjunto coesivo de comportamentos.
ObjetoPersistente
interface
ObjetoPersistente
salvar
remover
recuperar
Transporte
interface
ObjetoPersistente
dataTransporte
retornaPrecoTransporte
salvar
remover
recuperar
Transporte
dataTransporte
retornaPrecoTransporte
Navegao
A navegao indica que possvel navegar de objetos de um tipo para
objetos de outro tipo.
Quando a navegao no indicada, a associao bidirecional.
GrupoUsuario
Usuario
Senha
Definio do Diagrama de
Classes de Projeto
:Registrador
fazNovaCompra
:Compra
create
create
Registrador
Compra
ItemLinha
:ItemLinha
Object1
:Registrador
:Compra
2: fazLinhaItem(espec, qtidade)
1: fazItemLinha(espec, qtidade)
2.2: adiciona(it)
:CatalogoProduto
it:ItemLinha
1.1: espec:=procura(id)
:EspecificacaoProduto
: Map<Especificacao
Produto>
Registrador
CatalogoProduto
itens :
:ItemLinha
List<ItemLinha>
EspecificacaoProduto
Compra
ItemLinha
Loja
endereco
nome
CatalogoProduto
Compra
data
completa
duracao
EspecificacaoProduto
Pagamento
descricao
preco
IDItem
attribute1
valor
ItemLinha
quantidade
1: fazItemLinha
:Compra
Compra
fazItemLinha
CatalogoProduto
finalizaCompra
entraItem
fazNovaCompra
fazPagamento
getEspecificacao
Loja
Compra
endereco
nome
adicionaCompra
data
completa
duracao
tornaSeCompleta
fazItemLinha
fazPagamento
getTotal
EspecificacaoProduto
Pagamento
descricao
preco
IDItem
valor
ItemLinha
quantidade
getSubTotal
-endereco:String
-nome:String
CatalogoProduto
+getEspecificacao(id:IDItem):EspecificacaoProduto
+adicionaCompra(c:compra):void
Compra
Registrador
-data:String
-completa:boolean
-duracao:float
EspecificacaoProduto
-descricao:String
-preco:float
-IDItem:int
ItemLinha
-quantidade:int
+getSubTotal():void
+finalizaCompra():void
+entraItem(id:IDItem,quan:int):void +tornaSeCompleta():void
+fazNovaCompra():void
+fazItemLinha(esp:EspecificacaoProduto,quant:int):void
Pagamento
+fazPagamento(dinheiro:Money):void +fazPagamento(dinheiro:Money):void
+retornaTotal():Money
-valor:float
-compraCorrente:Compra1
+finalizaCompra:void
+entraItem:void
+fazNovaCompra:void
+fazPagamento:void
Compra
captura
1 -data:int
-completa:Boolean
-horario:int
+tornaSeCompleta:void
+fazItemLinha:void
+fazPagamento:void
+getTotal:void
Visibilidade de Atributo
Visibilidade de Atributo de A para B existe quando B um atributo de A.
uma visibilidade relativamente permanente porque ela persiste
enquanto A e B existem.
Object1
:Registrador
entraItem(id, qtidade)
:CatalogoProduto
espec:=getEspecificacao(id)
class Registrador
{
...
private CatalogoProduto catalogo;
...
{
}
public void entraItem (id,qtidade)
{
...
espec:= catalogo.getEspecificacao(id)
...
}
}
usa
-endereco:int
-nome:int
1
-descricao:int
-preco:int
1..* -IDItem:int
1
CatalogoProduto
+adicionaCompra():void
1
acessa
possui
1
EspecificacaoProduto
1
contem
+getEspecificacao(id:IDItem):EspecificacaoProduto
1
*
Compra
Registrador
1
+finalizaCompra():void
captura
+entraItem(id:IDItem,qtidade:int):void
+fazNovaCompra():void
+fazPagamento(dinheiro:Money):void
-data:int
-completa:int
1 -duracao:int
ItemLinha
+tornaSeCompleta():void
+fazItemLinha():void
+fazPagamento():void 1
* +getTotal():void
atualiza
descreve
contem 1..*
-quantidade:int
+getSubTotal():void
pago-por 1
Pagamento
-valor:int
Canal
Visibilidade de Parmetro
Visibilidade de Parmetro de A para B existe quando B passado
como parmetro de um mtodo de A.
uma visibilidade relativamente temporria porque ela persiste
somente dentro do escopo do mtodo.
Object1
3: entraItem(id,qtidade)
:Registrador
2: fazItemLinha(espec,qtidade)
1: espec:=getEspecificacao(id)
:CatalogoProduto
{
fazItemLinha(EspecificacaoProduto espec, int qtidade)
{
...
it = new ItemLinha(espec,qtidade)
}
}
:Compra
2.1: create(espec,qtidade)
it:ItemLinha
Visibilidade Local
Visibilidade Local de A para B existe quando B declarado como uma
varivel local dentro de um mtodo de A.
uma visibilidade relativamente temporria porque ela persiste
somente dentro do escopo do mtodo.
Object1
:Registrador
entraItem(id, qtidade)
:CatalogoProduto
espec:=getEspecificacao(id)
{
entraItem (id,qtidade)
{
...
// visibilidade local
EspecificacaoProduto espec:= catalogo.getEspecificacao(id)
...
}
}
3: entraItem(id,qtidade)
:Registrador
2: fazItemLinha(espec,qtidade)
:Compra
visibilidade de parmetro
1: espec:=getEspecificacao(id)
:CatalogoProduto
visibilidade local
{
fazItemLinha(EspecificacaoProduto espec, int qtidade)
{
...
it = new ItemLinha(espec,qtidade)
}
}
2.1: create(espec,qtidade)
it:ItemLinha
usa
-endereco:int
-nome:int
1
CatalogoProduto
acessa
possui
1
1
+finalizaCompra():void
captura
+entraItem(id:IDItem,qtidade:int):void
+fazNovaCompra():void
+fazPagamento(dinheiro:Money):void
1
contem
+getEspecificacao(id:IDItem):EspecificacaoProduto
1
*
Compra
Registrador
atualiza
-descricao:int
-preco:int
1..* -IDItem:int
+adicionaCompra():void
EspecificacaoProduto
-data:int
-completa:int
1 -duracao:int
descreve
ItemLinha
+tornaSeCompleta():void
+fazItemLinha():void
+fazPagamento():void 1
* +getTotal():void
contem 1..*
-quantidade:int
+getSubTotal():void
pago-por 1
Pagamento
-valor:int