Você está na página 1de 53

1

1
Prof. Dr. Marcos Kalinowski
kalinowski@uva.br
Classe
Relacionamento
Diagrama de Classe
Pacote
Diagrama de Pacote
2
2
3
Classe uma descrio de um conjunto de objetos que
compartilham os mesmos atributos, operaes,
relacionamentos e semntica.
Principal bloco de construo de um sistema orientado a objeto;
Notao:
Atributos
Operaes
Nome
O nome da classe deve comear por letra
maiscula.
O nome do atributo deve iniciar por
minsculo, porm o segundo nome deve
ser maisculo (camelCase).
O nome da classe deve ser no singular.
4
3
5
Nome
Na prtica, os nomes das classes so substantivos ou expresses
breves, definidos a partir do vocabulrio do sistema cuja
modelagem est sendo feita.
6
Nome
4
Um atributo uma propriedade nomeada de uma classe.
Uma classe pode ter qualquer nmero de atributos ou mesmo
nenhum atributo.
7
Atributos
Exemplo:
Todo funcionrio possui
nome, data de nascimento,
sexo
Um objeto de uma classe
poder ter valores especficos
para cada um dos seus
atributos.
Uma operao a assinatura de uma
implementao de um servio.
Uma classe pode ter qualquer nmero de
operaes ou at no ter nenhuma.
Muitas vezes (mas nem sempre), a chamada a uma
operao em determinado objeto altera os dados
ou o estado do objeto.
8
5
As operaes podem ser representadas das seguintes
formas:
Somente o seu nome;
Sua assinatura nome, tipo e valor padro dos parmetros e (no
caso de funes) o tipo a ser retornado.
9
Na prtica, o nome de uma operao um verbo ou uma locuo verbal breve,
representando algum comportamento da classe correspondente.
Tipicamente, aparece com maisculo o primeiro caractere de cada palavra existente
no nome da operao, exceto a primeira letra, como em mover e setaAlarme.
Visibilidade uma propriedade cujo valor
(public, protected, or private) denota como
o elemento poder ser visto externamente:
+ public: significa que qualquer objeto que se relacione
com a classe pode acessar os atributos ou operaes da
classe.
# protected: atributos e operaes de uma classe so
acessveis apenas por ela mesma e suas subclasses.
- private: atributos e operaes de uma classe so
acessveis apenas pela prpria classe.
10
6
Concreta: pode ser
instanciada
Abstrata: no pode
ser instanciada.
11
Classe Abstrata
Toda classe deve representar uma abstrao
conceitual do domnio do problema ou da soluo.
Assim, uma classe bem estruturada deve:
Ser uma abstrao de um conceito presente no domnio do
problema ou da soluo;
Ser fortemente coesa;
Possuir baixo acoplamento;
12
7
Por exemplo, se o
requisito :
um sistema de reserva e
venda de ingressos para
apresentaes em
diferentes teatros
A tentativa de classes e
atributos poderia ser:
Sistema, ingresso,
apresentao, teatro.
13
Por exemplo, se o
requisito :
um sistema de reserva e
venda de ingressos para
apresentaes em
diferentes teatros
A tentativa de classes e
atributos poderia ser:
Reservar ingressos,
vender ingressos
14
8
Especifica como as classes se relacionam;
Podem ser de trs tipos:
Dependncia: relao usa.
Generalizao: relaciona classes generalizadas
com suas especializaes.
Associao: representa relao estrutural entre
duas classes.
Associao simples.
Agregao: faz parte.
Composio: membro de.
15
Relacionamento: um tipo de.
16
Classe Base
Generalizao
Classes Folha
9
Uma associao uma conexo semntica bidirecional entre
classes.
Indica que existe uma ligao entre objetos das classes
associadas.
A notao UML de uma associao mostrada como uma
linha conectando classes associadas.
Exemplo : Vendedor vende Produto.
17
Vendedor Produto Vende
Navegao
Considerando uma associao simples entre duas classes,
como Livro e Biblioteca, possvel navegar de objetos de um
tipo at objetos de outro tipo. A menos que seja especificado
o contrrio, a navegao bidirecional.
Para indicar a direo da navegao, podemos incluir setas
indicando a direo a ser seguida.
18
10
19
Associao
Generalizao
uma forma especializada de associao, na
qual uma classe faz parte da outra.
A notao UML de uma agregao uma
associao com um diamante prximo a
classe que representa o agregador (todo).
20
11
Um tipo de associao que representa a
relao todo-parte.
Utilizado quando:
As partes so parte do agregador;
Ou o agregador formado de partes;
21
um tipo forte de
agregao.
Se o objeto agregador
for destrudo, suas
partes tambm o
sero.
O objeto parte s
existe para compor o
agregador.
membro de.
22
12
Exemplos:
23
Embora a multiplicidade seja especificada para
classes, ela define a quantidade de objetos que
participam de um relacionamento.
24
13
Mltiplos objetos pertencentes mesma classe podem
precisar comunicar-se uns com os outros. Isso mostrado no
diagrama de classe como uma associao ou agregao
reflexiva.
Exemplo: Disciplinas de um curso de graduao, algumas
delas necessitam de pr-requisitos para serem cursadas.
25
So conceitos que so relacionados com
associaes.
So representados como classes ligadas a
associaes atravs de linhas pontilhadas.
Exemplo:
26
14
27
28
15
Coleo de operaes que especificam os servios de uma
classe ou componente.
Descreve os comportamentos que podem ser acessados
externamente.
similar a uma classe entretanto,
No possui estado;
Os mtodos no esto implementados.
Declarando a interface, voc pode estabelecer o
comportamento desejado de uma abstrao independente de
qualquer implementao desta interface.
29
Notao
Uma interface representada graficamente como
um crculo.
30
ISensor IValidao
IBusca
Na prtica, os nomes das interfaces so curtos ou expresses nominais definidas a
partir do vocabulrio do sistema que est sendo modelado.
Para diferenciar Interface e uma classe podemos utilizar a letra I antes do nome de
cada Interface.
16
Quando visualizamos a interface como um crculo, suprimimos a
exibio das operaes, caso seja necessrio, podemos
representar a interface como uma classe estereotipada(*), listando
as suas operaes no compartimento apropriado.
31
<<interface>>
ITrataURL
abreConexao ( )
analisaURL ( )
setaURL ( )
32
Realizao (ou
implementao) da
Interface
17
33
Pacote um mecanismo cujo objetivo organizar
elementos de modelagem em grupos.
Visualizar, especificar, construir e documentar sistemas grandes
envolve a manipulao de uma grande nmero de classes,
interfaces, componentes....
Utilizado para:
Organizar elementos de modelagem;
Manter elementos com afinidade semntica prximos;
Pacotes bem estruturados so fracamente acoplados e fortemente
coesos.
Produto Servico
Cliente
34
Nome
Dependncia
Pacote
18
Utilizado para quebrar um sistema em
pequenos pedaos mostrando a dependncia
entre classes dos diferentes pacotes.
Uma dependncia existe entre dois elementos
se modificaes na definio de um elemento
pode provocar modificaes no outro
Dependncias possveis entre duas classes:
uma classe envia uma mensagem para outra
uma classe possui outra como parte de seus dados
uma classe menciona outra como um parmetro para uma
operao
35
O Modelo do Domnio do Sistema omite as
classes de suporte.
Modelo do Sistema o diagrama de classes
de baixo nvel. Alm do modelo do domnio
do sistema, composto tambm por:
Classes de interface com o usurio;
Classes arquiteturais;
...
36
19
Exemplo:
Identifique um primeiro conjunto de
classes;
Adicione atributos e comportamentos;
Encontre generalizaes;
Adicione associaes;
Reveja o modelo construdo adicionando
ou removendo classes, atributos,
associaes ou generalizaes.
37
38
20
Descrio do Contexto:
Uma locadora de veculos deseja um sistema para facilitar o atendimento a seus
clientes. O processo de aluguel de carros atual confuso e est gerando
insatisfao entre os clientes. A locadora composta basicamente pelos seus
funcionrios e carros para aluguel. Os funcionrios so identificados por cpf,
nome, endereo, telefone. J os carros esto divididos em diversos tipos:
popular, luxo, utilitrio, etc. As informaes importantes sobre os carros a
serem armazenadas so: cdigo (chapa do carro), tipo, modelo, ano, cor,
chassis, km e valor do aluguel (dirias e semanais).
Os funcionrios sero responsveis pelo cadastro dos clientes e dos carros
adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e
dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os
especiais possuem uma taxa de desconto e um valor de quilometragem extra
para seus aluguis. Qualquer cliente identificado por rg, nome, cpf,
telefone, endereo, cidade.
39
Desta forma, o cliente poder solicitar o aluguel de carros a um funcionrio da
locadora. Os tpicos abaixo descrevem as funcionalidades do sistema.
Alugar Carro: cliente deve solicitar ao funcionrio o aluguel do carro. O
sistema verifica se o carro solicitado pelo cliente est disponvel. Caso
esteja, o processo de locao concludo e o carro passa a estar
indisponvel. A data de aluguel deve ser guardada para calculo do valor do
aluguel na devoluo.
Dar Baixa: cliente faz devoluo do carro para o funcionrio e solicita nota
fiscal (recibo) com a quilometragem percorrida e o valor do aluguel. O
funcionrio coloca o status do carro novamente como disponvel, solicita
ao sistema para calcular o valor a ser pago e emite o recibo para o cliente.
Cadastrar Cliente: cliente solicita ao funcionrio que o cadastre na
locadora. O funcionrio recebe os dados e cadastra-o.
Cadastrar Carro: funcionrio cadastra o carro adquirido.
40
21
Identifique um primeiro conjunto de classes;
Adicione atributos e comportamentos;
Encontre generalizaes;
Adicione associaes;
Reveja o modelo construdo adicionando ou
removendo classes, atributos, associaes ou
generalizaes
41
42
22
43
cliente
nome
cpf
telefone
endereo
Locadora
Veculo
sistema
carros
popular
luxo
utilitrios
Modelo
tipo
Ano
Contato
Status
recibo
cor
codigo
chassis
quilometragem
valor do aluguel diria
valor do aluguel semanal
clientes especiais
clientes comuns
taxa de desconto
valor de quilometragem
Aluguel
Data de aluguel
nota fiscal
quilometragem percorrida
valor do aluguel
funcionrio
cdigo
nome
endereo
telefone
cidade
44
Classes Candidatas
Locadora
Veculo
Cliente
Clientes Especial
Clientes Comum
Sistema
Carros
Popular
Luxo
Utilitrios
Funcionrio
Aluguel
Atributos
nome
cpf
telefone
endereo
Modelo
tipo
Ano
Contato
Status
quilometragem percorrida
valor do aluguel
cor
codigo
chassis
quilometragem
valor do aluguel diria
valor do aluguel semanal
taxa de desconto
valor de quilometragem
Data de aluguel
Informao Estranha
Nota fiscal
Redundncia
Recibo
23
45
Classes Candidatas
Locadora
Cliente
Clientes Especial
Clientes Comum
Carro
Popular
Luxo
Utilitrios
Funcionrio
Aluguel
Atributos
nome
cpf
telefone
endereo
Modelo
tipo
Ano
Contato
Status
quilometragem percorrida
valor do aluguel
cor
codigo
chassis
quilometragem
valor do aluguel diria
valor do aluguel semanal
taxa de desconto
valor de quilometragem
Data de aluguel
Informao Estranha
Nota fiscal
Sistema
Redundncia
Recibo
Veculo
Locadora
46
24
47
Alugar
Emitir nota fiscal
Calcular preo
Cadastrar carro
Cadastrar cliente
Alterar Disponibilidade
Verificar Disponibilidade
Pegar o valor do aluguel do carro
Pegar a data do aluguel
Pega valor de desconto do cliente
Pega valor de quilometragem extra
Confirmar Aluguel
48
25
Locadora
49
50
26
51
52
27
53
54
28
55
Uma associao existe se uma classe:
Possui;
Controla;
Est conectada para;
Est relacionada para;
parte de;
Tem como parte;
membro de;
Tem como membro.
alguma outra classe no modelo.
Especifique a multiplicidade.
56
29
57
58
30
59
60
Prof. Dr. Marcos Kalinowski
kalinowski@uva.br
31
61
Modelagem Comportamental
Cenrio
Diagramas de Interao
Diagrama de Seqncia
Diagrama de Colaborao (ou Comunicao)
62
Definio
Um cenrio um caminho entre os fluxos de um caso de uso
Um caso de uso uma coleo de cenrios
Um cenrio uma instncia de um caso de uso
Casos de uso so compostos de um fluxo principal e sub-
fluxos
Sub-fluxos tambm podem se ramificar em sub-fluxos
As ramificaes de fluxos e sub-fluxos formam uma rvore
Um cenrio um caminho da raiz at um n folha da rvore
de fluxos e sub-fluxos de um caso de uso
32
63
64
Um cenrio um caminho da raiz at uma folha da rvore de
ramificaes de um use case.
33
65
No desenvolvimento de um sistema, o
analista usualmente comea sua
investigao pelos cenrios primrios (fluxo
principal dos casos de uso);
Cenrios secundrios so progressivamente
agregados.
66
Esses diagramas representam mensagens trocadas
entre objetos para a execuo de cenrios dos
casos de uso do sistema.
Tipicamente, cada diagrama de interao est relacionado a
um cenrio do caso de uso.
A construo desses diagramas uma consolidao
do entendimento dos aspectos dinmicos do
sistema.
34
67
: lender : librarian
: index
: assitant
1: BookRequest
2: look up
3:
4: get
5:
6:
Interaes podem ser modeladas de duas maneiras:
(1) enfatizando a colaborao dos objetos;
(2) enfatizando a seqncia das mensagens enviadas;
(1)
(2)
68
Os objetos so organizados horizontalmente no diagrama.
Um objeto representado como uma caixa no topo de uma
linha vertical tracejada (linha de vida do objeto).
O autor que inicia a interao geralmente colocado na
esquerda superior do diagrama.
A dimenso vertical representa o tempo.
35
69
O princpio bsico da interao entre objetos o conceito de
mensagem.
O fato de um objeto precisar de ajuda indica a necessidade
de este enviar mensagens.
Na construo de diagramas de interao, mensagens de um
objeto a outro implicam em operaes que classes devem ter.
Uma mensagem implica na existncia de uma
operao no objeto receptor. A resposta do objeto
receptor ao recebimento de uma mensagem a
execuo da operao correspondente.
70
umUsurio: Usurio
validar(in id : String, in senha : String) : bool
login
senha
Usurio
validar(id, senha)
: ControladorAcesso
Mensagens so representadas por setas entre as caixas de ativao.
36
71
Tipos de mensagem definidos pela UML:
mensagem simples: utilizada quando a natureza da mensagem
no relevante.
mensagem sncrona: indica que o objeto remetente espera que
o objeto receptor processe a mensagem antes de recomear o
seu processamento.
mensagem assncrona: objeto remetente no espera a resposta
para prosseguir com o seu processamento.
mensagem de retorno: indica o trmino de uma operao.
Simples
Sncrona
Assncrona
Retorno
72
Objeto1 Objeto2 Objeto3
mensagem1
mensagem2
Ator
mensagem0
mensagem3
Classe
Ator Objeto
Foco de
controle
Mensagem
Classe
Linha de
vida
: : :
37
Duas formas de mostrar o valor de retorno de uma
mensagem
74
Objeto1
Objeto2
Objeto3
1*[i := 1..2]: m1()
1.1: criar()
1.2 *[i:=1..3]: r := r + m2()
destruir()
[r == 3]: m3()
[r < 3]: m4()
Iterao
Guarda
Mensagem
reflexiva
Mensagem
de retorno
Destruio
Mensagem
assncrona
Mensagem
simples
m5()
Mensagem
sncrona
:
:
:
38
75
76
Loops
39
77
78
40
79
80
41
81
Usando uma notao explcita
82
Usando uma notao implcita
42
83
84
Utilizar:
Diagrama de casos de uso e, principalmente, sua
descrio (cenrios);
Diagrama de classes caso j tenha sido projetado.
43
85
Fornece cenrios
Modelo de
Casos de Uso
Modelo de Interaes
(diagramas de colaborao ou de sequncia)
Fornece objetos
Valida responsabilidades
e fornece detalhes sobre objetos
Valida as interaes
Modelo de Classes
86
Um objeto representado
como uma caixa.
Linhas representam os
relacionamentos entre os
objetos.
Setas indicam as
mensagens envidas.
A seqncia de mensagens
indicada atravs de
numerao das mensagens.
Dar nfase maneira como
os objetos esto
estaticamente conectados!!!
: lender : librarian
: index
: assitant
1: BookRequest
2: look up
3:
4: get
5:
6:
44
87
Diagrama de Seqncia
Diagrama de Colaborao
Correspondente
88
Diagramas de Seqncia
Foco na ordem em que os objetos interagem.
So mais facilmente extrados a partir da
descrio dos casos de uso.
Desta forma, utilizar diagramas de seqncia
uma escolha natural quando voc est
construindo diagramas de interao a partir de
casos de uso.
til para verificao da descrio dos casos de
uso.
til para verificao dos diagramas de classe.
45
89
Diagramas de Colaborao
Pode ser visto como uma projeo do diagrama de
classes
Desta forma, pode ser escolhido caso os diagramas
de interao sejam construdos a partir do
diagrama de classes.
til para validao dos diagramas de classe.
90
46
91
Descrio dos Requisitos:
Uma locadora de veculos deseja um sistema para facilitar o atendimento a seus
clientes. O processo de aluguel de carros atual confuso e est gerando
insatisfao entre os clientes. A locadora composta basicamente pelos seus
funcionrios e carros para aluguel. Os funcionrios so identificados por cpf,
nome, endereo, telefone. J os carros esto divididos em diversos tipos:
popular, luxo, utilitrio, etc. As informaes importantes sobre os carros a
serem armazenadas so: cdigo (chapa do carro), tipo, modelo, ano, cor,
chassis, km e valor do aluguel (dirias e semanais).
Os funcionrios sero responsveis pelo cadastro dos clientes e dos carros
adquiridos pela locadora, por efetuar o aluguel de um carro para o cliente e
dar baixa no aluguel. Existem clientes especiais e clientes comuns. Os
especiais possuem uma taxa de desconto e um valor de quilometragem extra
para seus aluguis. Qualquer cliente identificado por rg, nome, cpf,
telefone, endereo, cidade.
92
Desta forma, o cliente poder solicitar o aluguel de carros a um funcionrio da
locadora. Os tpicos abaixo descrevem as funcionalidades do sistema.
Alugar Carro: cliente deve solicitar ao funcionrio o aluguel do carro. O
sistema verifica se o carro solicitado pelo cliente est disponvel. Caso
esteja, o processo de locao concludo e o carro passa a estar
indisponvel. A data de aluguel deve ser guardada para calculo do valor do
aluguel na devoluo.
Dar Baixa: cliente faz devoluo do carro para o funcionrio e solicita nota
fiscal (recibo) com a quilometragem percorrida e o valor do aluguel. O
funcionrio coloca o status do carro novamente como disponvel, solicita
ao sistema para calcular o valor a ser pago e emite o recibo para o cliente.
Cadastrar Cliente: cliente solicita ao funcionrio que o cadastre na
locadora. O funcionrio recebe os dados e cadastra-o.
Cadastrar Carro: funcionrio cadastra o carro adquirido.
47
93
Utilizar:
Diagrama de casos de uso e, principalmente, sua
descrio;
Diagrama de classes caso j tenha sido projetado.
94
48
95
96
Nome do Caso de Uso: _Efetuar Aluguel ____________________________________
Ator: _Funcionrio ______________________________________________________
Comeo: _Funcionrio inicia o processo de locao ____________________________
Funcionrio Sistema
Iniciar aluguel
Verificar disponibilidade do carro
Confirmar Aluguel
Alterar disponibilidade do carro
49
97
98
Nome do Caso de Uso: _Cadastrar Cliente ___________________________
Ator: _Funcionrio_______________________________________________________
Comeo: _Funcionrio insere os dados do cliente ______________________________
Funcionrio Sistema
Digita os dados do cliente
Cadastra cliente
50
99
10
0
Nome do Caso de Uso: _Cadastrar Carro ___________________________________
Ator: _Funcionrio_______________________________________________________
Comeo: _Funcionrio insere dados do carro _________________________________
Funcionrio Sistema
Digita dados do carro
Cadastra carro
51
101
10
2
Nome do Caso de Uso: _Encerrar Aluguel Cliente Comum ______________________
Ator: _Funcionrio_______________________________________________________
Comeo: _Funcionrio solicita emisso de Nota Fiscal __________________________
Funcionrio Sistema
Solicita Nota Fiscal
Pega o valor do aluguel do carro
Pega a data do aluguel
Calcula Preo
Altera Disponibilidade do Carro
52
103
10
4
Funcionrio Sistema
Solicita Nota Fiscal
Pega valor de desconto do cliente
Pega valor de quilometragem extra
Pega o valor do aluguel do carro
Pega a data do aluguel
Calcula Preo
Altera Disponibilidade do Carro
Nome do Caso de Uso: _Encerrar Aluguel Cliente Especial______________________
Ator: _Funcionrio_______________________________________________________
Comeo: _Funcionrio solicita emisso de Nota Fiscal __________________________
53
105
106

Você também pode gostar