LOCADORA DE VEÍCULOS! " $! % & '( % ) )* '$ + ) $)$, -., & /0,& $"! &!/ &!!! &2 /3 & ) & )&
& 0 *& & & * ))$) ') ) * ** 0!"$% &!' ' ' 4 0 % )() *& / " 5 $ & ()& *+(,-./"& 0&! &!/ & 2!! & ) &. )&. ) 2/("& &$% "/"$,$%3%-",&(",,&4 2!("/" / &3%",&+&5/.(4 & 0 2
*& & 6 & &)' 2+"!.("6%,& ()&!,+&5/.(4 2&!/(),+&5/.(4 & * ))$) ') ),* + 7)) * ** 0 & )) )*) 2&+"%/-"% 784 9'$,&&: &!82/("& &$% "/"$,$%3%,&-",&(",,&4 ) $ & ;'$,&&: &!82+"!.("6%,& ()&!,+&5/.(4 0) & & *&! ) ))) & 7 <'& %&!$!,&&: &!82!("/" / &3%",&+&5/.(4&2&!/(),+&5/.(4 0 & ) & 0 && 8 & 9 3
='$,&&: &!82&+"%/-"% 784 $)$ >/>,,& "-"/%>-"( %%!/(!!&!,&?("!&&,&!/%&+&%!%&!$!"(",,&! :%) ) ;.! 4 < & = *4 4 4 > >4?&'@ A + )$. ) "!,&!.! "+!*&6.(/(!!&!!&(&/",! + 7!) & & 3 '!) ) 4 &!) '& ("& &'!")* )) ) 4!)!)!)!) /! )' /!) "("(*,"/",') & 4. 0B = & & & &,!)' +&?%",&+&5/.(!) & = & &&) )) C!) C! <!)'&!) )' 4
.!)' *.!) &%-"(,/("& &')* & D 4 D %3%,&-",&(",,&') ) ' &!&%+!)' E* ) & ) *) :. & & F!)' % &78!) & ) * * &5/.(!) '*& ) )&: & '&? 4 G?G + G + G E* G 4 ) class Analysis Model Proteção PerfilCliente ProgramaFidelidade IUReserva CtrlReserva Inventário Reserva Cliente Filial Veículo 5
%! + ' ') + ))+ )0& )*/ 0 )' + 0$0 %B-& &G% - %".!""/""!,!/(!!&! 6
sd Seq Reservar 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 Cliente «boundary» IUReserv aveic «control» CtrlReserv aveic PerfilCliente + fumante + preferenciacategoriaveic + email + endereço + nome + telcomercial + telresidencial Inv entário Filial + endereço + estadofederação + IDFilial ProgramaFidelidade + saldopontos Reserv a + custoestimado + datainício + datatérmino + horainício + horatérmino Proteção Veículo + coberutraadicional + custodiario + exclusões + limitesresponsabilidade + acessorio + categoriaveic + estado % ' 0 ' +, ) &(7@&!& %&/(!!&!,&?("!&*/$5.( A&:&%/5/"B 8
class Classes de análise (completo) «boundary» IUReservaVeic «control» CtrlReservaVeic Filial + endereço + estadofederação + IDFilial Inventário PerfilCliente + fumante + preferenciacategoriaveic Cliente + email + endereço + nome + telcomercial + telresidencial * reserva * * Veículo + acessorio + categoriaveic + estado ProgramaFidelidade + saldopontos 0.. < é aplicada Reserv a + custoestimado + datainício + datatérmino + horainício + horatérmino * Proteção + coberturaadicional + custodiario + exclusões + limitesresponsabilidade %//(."%' & ' 7 & ' % ) ' $&%!"! "%0&!&%+% * $) $)? '!&3.%7 *)0) $/)' '" &%-/&% ' & < ' D$%! &/"!,&?("!& &/"!,&%C& &/"!,& $(&& 78 %D 0, 3< 3< <, 2 4,4 K,3< 6 34 H C )F ) 0 6IJ < + LMNO)C: PM+%%4 4+%QE:CF,,R/ & M % & ) F & )0 " 2 + ')" 6)6%)6 9
deployment projeto casos de uso Serv idor WEB Navegador «http» «http» «http» «http» Nav egador N Navegador 2 Nav egador N- 4 *)SD @& A )0) & & 0
sd Reserv ar Veículo (prj) :Cliente :IUReserva :MostraInventario «servlet» :CtrlReserva :DataAccess pág. de reserva veíc, IDFilial e datas POST veic, IDFilial e datas :Filial popular(idfilial) buscarfilial(idfilial) preencher(regdb) verifica se a filial estará aberta nos dias e horários solicitados validar(datas) ok popular(idfilial, datas, catveic) :Inventario buscarveiculos(this) :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
+ SD )$ + * * ) 6% class Classes projeto (delta ) DataAccess IUReserva + buscarfilial(int) : regdb + buscarveiculos(inventario) : regdb Inventario «servlet» CtrlReserva «instantiate» + adicionar(veiculo) : void + popular(int, Date[2], int) : void MostraInv entario «instantiate» Filial + endereco + estadofederecao + IDFilial + popular(int) : void + preencher(regdb) : void + validar(date[2]) : boolean * Veiculo + acessorio + categoriaveic + estado + preencher(regdb) : void &,&!&' -SD - 2
sd Efetiv arreserv a (prj delta2) :Cliente :IUReserva :MostraInventario :Confirmacao «servlet» :CtrlReserva :PerfilCliente :Inv entario :Veiculo :DataAccess escolhe um veíc. escolhe um veículo para reservar POST "reservar" veicid marcarreservado(veicid) indisponibiliza o veic. por período de tempo = tout marcarreservado(tout) obteridcli popular(cliid) :Cliente 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.,) 3
class Classes projeto (delta 2) IUReserva MostraInv entario «servlet» CtrlReserva DataAccess + buscarcliente(cliid) : regdb + buscarfilial(idfilial) : void + buscarperfil(cliid) : regdb + buscarveiculos(inventario) : regdb «instantiate» Inv entario + adicionar(veiculo) : void + popular(int, Date[2], int) : void Confirmacao «instantiate» Filial + endereco + estadofederecao + IDFilial + popular(int) : void + preencher(regdb) : void + validar(date[2]) : boolean * PerfilCliente + fumante: Boolean + preferenciacategoriaveic + popular(cliid) : void + preencher(regdb) : void + setarpai(cliente) : void Cliente + email + endereço + nome + telcomercial + telresidencial + associar(perfilcliente) : void + Cliente() + obterperfil() : PerfilCliente + popular(cliid) : void + preencher(regdb) : PerfilCliente Veiculo + acessorio + categoriaveic + estado + marcar(tout) : void + preencher(regdb) : void SD % ) 3 + )'0 %4 ) 4 F & 3 E' 0,), -),'' ) )0&%0 D )'&0!?%"/,&C&!0 K! 00 T C& $%:D!D0& )0) ) H C) $ 0< 0 K 00 class Classes projeto (delta 3) FabricaObjetos BDCliente InPersist Conexao RegistroBD Statement InSGBDR 4
sd Reservar Veículo (com camada de persistência) «servlet» :CtrlReserva :FabricaObjetos :InPersist :InSGBDR 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 5