11
Prof. Dr. Marcos [email protected]
Classe
Relacionamento
Diagrama de Classe
Pacote
Diagrama de Pacote
2
23
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 letramaiscula.
O nome do atributo deve iniciar porminsculo, porm o segundo nome deveser maisculo (camelCase).
O nome da classe deve ser no singular.
4
35
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 ProdutoVende
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 umaclasse ou componente.
Descreve os comportamentos que podem ser acessadosexternamente.
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
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 [email protected]
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 trocadasentre objetos para a execuo de cenrios doscasos de uso do sistema. Tipicamente, cada diagrama de interao est relacionado a
um cenrio do caso de uso.
A construo desses diagramas uma consolidaodo entendimento dos aspectos dinmicos dosistema.
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
loginsenha
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
Atormensagem0
mensagem3
Classe
Ator Objeto
Foco decontrole
Mensagem
Classe
Linha devida
: : :
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
Mensagemreflexiva Mensagem
de retorno
Destruio
Mensagemassncrona
Mensagemsimples
m5() Mensagemsncrona
: :
:
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
Recommended