LOCADORA DE VEÍCULOS
!
"
$
%
&
!
'
%
#
(
)
)
*
'$
+
)
$
)
$
,
-
.
,
&
/
0
,
&
$
!1
"
&
!/
&
!
!
!
&
#
2 /3
&
#
)
&
#
)
&
1
#
&
#
*
#
0
&
&
&
#
*
'
)
)
#
*
#
*
) $
)
)
*
0
#
#
#
!"# $ %
#
&!'
'
'
4
0
%
*
)
()
&
/
"
5
$
& () # &
*+ ( ,
!1
-. /"
#&
0 &1
&
!/
&
2
!
!
#
&
#
)
&
#
.
)
&
.
)
2/("& & $ %"/"$ , $% 3% # -",&(", ,&4
2! ("/"
#
/ &3 %" ,& +&5/.( 4
&
0
2
#
*
6
&
&
& )'
&
,
*
2+"!. ("6 %,& ()&!, +&5/.( 4
2&!/ () , +&5/.( 4
#
&
#
*
'
)
)
)
+
#
*
#
*
7
) $
)
)
)
*
0
#
#
#
#
&
)
2& +" %/
)
)
* )
-"%# 78 4
#
9'
$
,& &: & !8 2/("& & $ %"/"$ , $% 3% # ,& -",&(", ,&4
)
$
&
;'
$
,& &: & !8 2+"!. ("6 %,& ()&!, +&5/.( 4
0 )
&
*
&
<'& %& !$
!,& &: & !8 2! ("/"
0
!
)
)
)
#
&
7
/ &3 %" ,& +&5/.( 4 & 2&!/ () , +&5/.( 4
&
)
#
&
#
0
#
#
&
)
&
8
&
&
9
3
='
$
,& &: & !8 2& +" %/
-"%# 78 4
$
)
1>/>, ,& "-"/ %>-"(% % !/( !!&!,&
$
?("!& & ,&!/%&+&% !%&!$
1 : %)
! 1"(", ,&!
)
;
.
!
4
<
&
=
*
?
4 14 4
&
>1
>4
'
@
A
+
)
$
.
)
"! ,& !.1!
+
7
!
"+ !*&# 6.(/( !!&!!&(&/"
)
&
3
'
4
&
!
!
)
&
)
)
'
&
("& &'!"# )
)
*
4
!
!
)
)
)
)
!
)
!
/
,!
)
!
)'
/
!
"(" (* ,"/"
)
, '
)
&
4
.
&
0
B
=
&
&
&
,
!
)'
+& ?%" ,& +&5/.( !!
&
&
C
!
C
)
&
=
&
)
)
)
)
!
<
!
!
)
)'
&
)'
4
.
!
.
)'
!
*
)
&%-"(, /("& &'
4
)
*
% 3% # ,& -",&(", ,&'
&!&%+ !
)
)'
E
&
.
F
!
&5/.( !
'
*
* )
)
)
&
)'
)
&
*
)
)
D
)
:
&
% &78 !
)
&
D
*
'
*
&
:
&
&
)
'
&
4
?
G
?
+
+
E
4
G
G
G
*
G
)
class Analysis Model
Proteção
(from Reservar Veículo)
IUReserva
(from Reservar Veículo)
PerfilCliente
ProgramaFidelidade
(from Reservar Veículo)
(from Reservar Veículo)
CtrlReserva
(from Reservar Veículo)
Inventário
(from Reservar Veículo)
Cliente
Filial
(from Reservar Veículo)
(from Reservar Veículo)
Reserva
(from Reservar Veículo)
Veículo
(from Reservar Veículo)
5
%
!
+
'
'
+
)
)
)
)
0&
*
/
)
0
'
+
0
%
-
)
+
B-
&
$
&
0
G%
%"1. !" "/" "!, !/( !!&!
6
sd Seq Reserv ar Veículo
cliente
IUReserv a
CtrlReserv a
Filial
PerfilCliente
Cliente
Inv entário
Veículo
Proteção
Reserv a
num fidelidade
num fidelidade?
fornece num
num fidelidade
obter perfil
obter cliente
solicitar locais, datas, horários
datas, horários e locais?
locais, datas, horários
locais, datas, horários
buscar veículos data e hora
buscar veículos
satisfaz critérios
mostrar veículos
lista de veículos
veículo escolhido
veículo escolhido
prepopular
obter informações
obter informações proteção
obter info por estado, local, etc.
solicitar dados cliente, proteções
dados cliente, proteções?
escolhas proteção
popular com info. recebidas
obter email
enviar reserva por email
obter número confirmação
mostrar reserva e confirmação
reserva e confirmação
7
class Analysis Model
«entity»
Cliente
«boundary»
IUReserv aVeic
PerfilCliente
«control»
CtrlReserv aVeic
+
+
fumante
preferenciaCategoriaVeic
«entity»
Filial
«entity»
Inv entário
+
+
+
+
+
+
+
+
email
endereço
nome
telComercial
telResidencial
Reserv a
ProgramaFidelidade
endereço
estadoFederação
IDFilial
+
saldoPontos
+
+
+
+
+
custoEstimado
dataInício
dataTérmino
horaInício
horaTérmino
«entity»
Veículo
«entity»
Proteção
+
+
+
+
coberutraAdicional
custoDiario
exclusões
limitesResponsabilidade
+
+
+
acessorio
categoriaVeic
estado
%
'
'
+
#
#
0
,
&( 7@&!& %& /( !!&!,&
)
?("!& */ $5.(
A &:&%/5/" B
8
class Classes de análise (completo)
«boundary»
IUReserv aVeic
«entity»
Filial
«control»
CtrlReserv aVeic
1
1
1
1
1
1
1
+
+
+
endereço
estadoFederação
IDFilial
1
1
1
PerfilCliente
1
fumante
preferenciaCategoriaVeic
1
*
«entity»
Cliente
1
+
+
«entity»
Inv entário
+
+
+
+
+
email
endereço
nome
telComercial
telResidencial *
«entity»
Veículo
reserva
*
+
+
+
acessorio
categoriaVeic
estado
Reserv a
ProgramaFidelidade
+
%/
saldoPontos
+
+
+
1 +
+
< é aplicada
0..1
/(."%'
&
custoEstimado
dataInício
dataTérmino
horaInício
horaTérmino
«entity»
Proteção
+
+
* +
+
coberturaAdicional
custoDiario
exclusões
limitesResponsabilidade
'
7
&
'
%
)
*
?
'
#
$ )
!&3.% 7
$ /
' " &%- /& %
&
<
&/
%
"!# ,&
D
,
4 + %QE: C# F ,,R /
&
%
* )
0)
)'
'
D$
%
!
&/ "!# ,& # $(&# &
6 34
HC
#
)F
)# 0
6
IJ
<
+ LMNO)C: P M + %%4
78
M
&
)
"
)
&!&%+ %
0
$ )
'
&/ "!# ,& % C&
1 3<
# # 3<
1< ,
2
4 ,4
K
,3<
?("!&
0
+ '
6 )6
$&%!"! "%
'
1
2
F &
)
0
"
%
)
6
9
deployment proj eto casos de uso
Serv idor WEB
«http»
«http»
«http»
Nav egador 1
Nav egador N-1
Nav egador 2
4
Nav egador N
«http»
* )
SD
@
&
A
)
0)
&
&
10
sd Reserv ar Veículo (prj )
«jsp page»
«jsp page»
«servlet»
:IUReserva
:MostraInventario
:CtrlReserva
:DataAccess
:Cliente
pág. de reserva
veíc, IDFilial e datas
POST veic, IDFilial e datas
:Filial
popular(IDFilial)
buscarFilial(IDFilial)
preencher(regDB)
validar(datas)
verifica se a filial estará
aberta nos dias e horários
solicitados
ok
«entity»
:Inventario
popular(IDFilial, datas, catVeic)
buscarVeiculos(this)
«entity»
:Veiculo
preencher(regDB)
adicionar(veiculo)
armazena coleção veics. na sessão
forward pág. inventario
mostrar inventário
mostra todos veícs. disponíveis
11
+
SD
)
$
+
*
*
6%
)
class Classes proj eto (delta 1)
DataAccess
+
+
«jsp page»
IUReserv a
buscarFilial(int) : regDB
buscarVeiculos(Inventario) : regDB
«entity»
Inv entario
«servlet»
CtrlReserv a
«jsp page»
MostraInv entario
+
+
«instantiate»
«entity»
Filial
«instantiate»
+
+
+
endereco
estadoFederecao
IDFilial
+
+
+
popular(int) : void
preencher(regDB) : void
validar(Date[2]) : boolean
adicionar(Veiculo) : void
popular(int, Date[2], int) : void
1
1
1
*
«entity»
Veiculo
+
+
+
acessorio
categoriaVeic
estado
+
preencher(regDB) : void
&,& !&'
-
SD
12
sd Efetiv arReserv a (prj delta2)
«jsp page»
«jsp page»
«jsp page»
«servlet»
:IUReserva
:MostraInventario
:Confirmacao
:CtrlReserva
:DataAccess
:Cliente
:PerfilCliente
:Inv entario
:Veiculo
escolhe um veíc.
POST "reservar" veicID
escolhe
um veículo
para
reservar
indisponibiliza o
veic. por período
de tempo = tout
marcarReservado(veicID)
marcarReservado(tout)
obterIDCli
:Cliente
popular(cliID)
buscarCliente(cliID)
preencher(regDB)
associar(PerfilCliente)
setarPai(this)
dispatcher.forward(Confirmacao)
controle
pegar obj. cliente da sessão
obter campos
obterPerfil
obter dados
mostra info. e pede para completar
continuar
poderia ser
+detalhado
atualizar cliente e perfil
POST confirmação realizada
!"
#
$ %
&'
(
)
*
(+
,
%
,
-
,
,
.
/
.
0
.
( 0
$
'0 , -
0
,)
1
13
class Classes proj eto (delta 2)
DataAccess
«jsp page»
IUReserv a
+
+
+
+
buscarCliente(cliID) : regDB
buscarFilial(IDFilial) : void
buscarPerfil(cliID) : regDB
buscarVeiculos(Inventario) : regDB
«servlet»
CtrlReserv a
«jsp page»
MostraInv entario
«instantiate»
«jsp page»
Confirmacao
+
+
fumante: Boolean
preferenciaCategoriaVeic
+
+
+
popular(cliID) : void
preencher(regDB) : void
setarPai(Cliente) : void
1 1
1
+
+
+
endereco
estadoFederecao
IDFilial
+
+
+
popular(int) : void
preencher(regDB) : void
validar(Date[2]) : boolean
1
*
«entity»
Veiculo
+
+
+
+
+
email
endereço
nome
telComercial
telResidencial
+
+
+
+
+
associar(PerfilCliente) : void
Cliente()
obterPerfil() : PerfilCliente
popular(cliID) : void
preencher(regDB) : PerfilCliente
#
SD
%
3
F &
adicionar(Veiculo) : void
popular(int, Date[2], int) : void
1
«entity»
Cliente
«entity»
PerfilCliente
+
)
'
+
+
+
acessorio
categoriaVeic
estado
+
+
marcar(tout) : void
preencher(regDB) : void
)
0
%
3
E
0
)
)
?1%"/ ,& 1C& !
T
0
$% :D!
)'
)
'
'
!
0
&
H C)
)
<
)
'
,
0
0
0
4
0
&
K!
D
)
0
, ), &
%
0
D
1C&
+
+
«entity»
Filial
«instantiate»
4
«entity»
Inv entario
0)
$
0
K
0
0
class Classes proj eto (delta 3)
FabricaObj etos
BDCliente
InPersist
Conexao
RegistroBD
Statement
InSGBDR
14
sd Reserv ar Veículo (com camada de persistência)
«servlet»
:FabricaObjetos
:InPersist
:InSGBDR
:CtrlReserva
criar(class=Cliente, cliID)
:Cliente
BDCliente(Cliente)
:BDCliente
buscar(cliID)
connect(BD, user, pwd)
:Conexao
connect
obj conexão
getStatement
Statement
:Statement
obj. statement
executarQuery(SQLString)
exec cmdo SQL
RegistroDB
:RegistroBD
popular
registro BD
obter valor de cada campo
setar campos com valores de registro BD
ok
retorna obj Cliente
15