Escolar Documentos
Profissional Documentos
Cultura Documentos
EAPLI
Trabalho Prático
Submissão 3
Maio 2009
EAPLI 2008-2009
Neste momento a gestão dos automóveis, de grupos de automóveis e de manutenção não são consideradas relevantes
para serem suportadas pelo sistema.
Resolução:
Actor E1 E2
Use Case
principal Breve/Casual 1 Completo 2
UC1 Adicionar Cliente B
UC2 Elaborar Contrato Aluguer(breve) B
UC3 Elaborar Contrato Aluguer B R
UC4 Devolução Automóvel Funcionário B R
UC5 Pesquisa de cliente B
UC6 Seleccionar Automóvel B
UC7 Entregar Automóvel B R
1 B = Formato Breve
1 R = refine, S = start C = Formato Casual
1.1.1
1.1.2 Caso de Uso 1 (UC1): Adicionar Cliente (breve)
O funcionário solicita uma ficha de cliente ao sistema.
Introduz os dados completos do cliente.
O sistema adiciona novo registo de cliente.
1.1.3 UC2: Elaborar contrato de Aluguer (breve)
O cliente solicita ao funcionário um contrato de aluguer.
O funcionário insere os dados necessários para a elaboração do contrato de aluguer.
O sistema calcula e apresenta o valor a pagar.
O funcionário confirma.
O sistema regista o contrato no registo de contratos.
Pré-condições
???
Pós-condições
É registado um contrato de aluguer de um automóvel a um cliente na empresa.
Fluxo Principal de Acções (Sucesso)
6. O funcionário insere dados do serviço que o cliente pretende contratar (nomeServiço, Quant., Preço).
7. O sistema calcula e apresenta o valor a pagar pelo aluguer de acordo com os serviços contratados, (incluindo
eventuais taxas).
12. O funcionário insere dados para autorização de débito de eventuais despesas (combustível, danos automóvel, etc).
13. O sistema emite cópia(s) do contrato de aluguer para efeitos de assinaturas pelas partes interessadas.
14. O sistema emite autorização de débito para ser assinado pelo cliente.
17. O cliente dirige-se ao parque auto com uma cópia do contrato para receber o automóvel.
Cenários alternativos
10a. O cliente não aceita o valor a pagar mas, para reduzir custos decide alterar o período de aluguer.
1. O funcionário não confirma e altera o período de aluguer.
2. O fluxo principal é retomado. (passo 9).
Requisitos Especiais
??
Frequência de Ocorrência
??
Dúvidas em Aberto
• Qual a identificação a utilizar para o cliente?
• Qual a identificação a utilizar para o grupo de automóveis e para o automóvel?
• Qual a frequência diária de alugueres?
• O funcionário deve estar ou não identificado e autenticado no sistema, para elaborar o contrato?
• Como deve ser tratado o pagamento dos serviços prestados (Devem ser facturados, etc?)?
• Devemos incluir gestão da conta cliente(Para permitir o acesso à consulta da situação (devedor/credor) do cliente)?
Pré-condições
Existir um contrato de aluguer para aquele cliente e para aquele automóvel.
Pós-condições
É registada no sistema a entrega do automóvel.
11. O sistema regista a entrega e apresenta a mensagem “Entrega registada com Sucesso”.
Cenários alternativos
3a. O funcionário verifica que os dados do automóvel ou/e os dados do contrato não estão correctos.
1. O sistema não permite alterar os dados do contrato e o use case termina.
9a. O cliente não concorda com os dados do estado físico do automóvel e não assina o comprovativo.
1. O sistema permite alterar ao dados do estado físico e retoma o passo 7.
2. O funcionário não altera os dados físicos do automóvel, não confirma o registo de entrega no sistema e o caso
de uso termina.
Requisitos Especiais
??
Dúvidas em Aberto
• Qual a frequência diária de entregas?
• O funcionário deve estar ou não identificado e autenticado no sistema, para efectuar a entrega?
Pré-condições
Existir um contrato de aluguer para aquele cliente.
Pós-condições
É registada no sistema a devolução do automóvel.
0. O cliente informa o funcionário que pretende devolver o automóvel e mostra a copia do contrato de aluguer.
10. O funcionário solicita ao cliente a assinatura do comprovativo(confirma que aceita os valores calculados no passo
8).
12. O sistema regista a devolução e apresenta a mensagem “Devolução registada com Sucesso”.
13. O funcionário entrega uma copia do comprovativo de devolução ao Cliente .
Cenários alternativos
2a. O funcionário verifica que os dados do automóvel não correspondem ao do automóvel que o cliente está a
devolver.
1. O funcionário não confirma os dados, informa o cliente do problema e o use case termina.
Requisitos Especiais
??
Frequência de Ocorrência
??
Dúvidas em Aberto
• Qual a frequência diária das devoluções
• O funcionário deve estar ou não identificado e autenticado no sistema, para efectuar o registo da devolução do
automóvel?
• Como deve ser tratado o pagamento dos custos adicionais (Deve ser emitida factura, recibo, etc?)?
Sistema
Adicionar Cliente
Pesquisar Cliente
Include
Include
Seleccionar Automóvel
Devolução Automóvel
Entrega Automóvel
1.3 Diagramas de Sequência de Sistema (SSD)
:Sistema Sistema
Funcionário Funcionário
NovoContrato Aluguer( ) AdicionaCliente(nome, endereço, tel, email, Obs)
IdentificaCliente(clienteId)
Cliente Adicionado
Mostra dados do cliente
ConfirmaCliente
IdentificaAutomóvel(matricula)
Mostra dados do automóvel UC2 – Entrega Automóvel
ComfirmaAutomóvel()
Introduzir LocalDevolução() Sistema
Introduzir DataContrato()
Funcionário
Serviço (descrição, preçoUnit, quant,) Loop IdentificaContrato(contratoId)
Mostra Dados do contrato
Condutor (Nome, Endereço, Carta Loop
CondNum, CartaCondValidade) IntroduzDadosEntrega(estadoFisico, km,
combustível, localEntrega, data hora)
ConfirmaContrato () Confirma
MostraValorTotal Emite comprovativo
ConfirmaContrato ()
AutorizaçaoContrato(nºCartaoCredito,etc)
Emite cópia contrato
Emite autorização de debito UC4 – Devolução Automóvel
Contrato registado com sucesso
Sistema
Funcionário
IdentificaContrato(contratoId)
Mostra Dados do contrato
IntroduzDadosDevolução(estadoFisico,
km, combustível, localDevol., data hora)
Confirma
Emite comprovativo
UC 5 – Pesquisa de cliente UC 6 – Seleccionar Automóvel
:Sistema :Sistema
Funcionário Funcionário
PesquisaCliente(critérios de pesquisa) SelecionaAutomovel(grupoAutomoveis)
SelecionaAutomóvel
MostraAutomóvel
descrições
Documentos • ?
referidos/para executar as
tarefas
1.4.2 Modelo de domínio (sem atributos)
RegistoCliente
EmpresaAluguer Cliente
RegistoContratoAluguer
Funcionario
RegistoDevolucao
RegistoEntrega
RegistoEntrega
RegistoServiços
RegistoAutorizaçãoDebito
GrupoAutomoveis
Automovel
LinhaCondutor ContratoAluguer
LinhaServicos
Devolucao
Entrega
Serviços
CopiaAutorizaçaoDébito
Condutor
CopiaContrato
AutorizaçaoDebito
1.4.3 Racional para identificação de relações de domínio
Para a identificação das relações entre as classes de domínio aplica-se a lista de categorias.
Categoria A relação B
A está fisicamente (ou logicamente) contido em • Contrato está contido em Registo de
B Contratos
• Devolução está contida em Registo de
Devoluções
A está relacionado com uma transacção de B • Devolução está relacionada com Contrato
1.4.4 Modelo de domínio
Automovel
1.4.5 GrupoAutomoveis Condutor RegistoEntrega
Marca, modelo, grupoAuto, nomeGrupo, numPortas, nome, endereco, cartaNum,
matricula, cor, anoFabrico, combustivel, classe, data validade arrayEntregas
anoAquisição Descreve 1..* cilindrada, arCondicionado
1
listaAutomovel() listaGrupoAutomovel() listaCondutor() addEntrega()
1..* getEntrega()
1 1 1..* 1..*
RespeitanteA
RespeitanteA 1 EstadoFisicoAuto
Regista Servicos
Contem
idEstadoFisicoAuto,
LinhaCondutor CondutorDe 1 idContrato, Descrição
idServico
RespeitanteA
infoCondutor 1 preço getInfoEstadoFisicoAuto()
descriçaoServico
1 1 coAuto
calculoTotalLinha() Entrega
arrayFisicoAuto
Detém RespeitanteA idEntrega, data, hora,
RespeitanteA
1 1 ,localEntrega, km,
1..* combustivel, estadoFisico
Contem
1 getEstadoFisicoAuto
1 (estadiofisicoAutoId)
ContratoAluguer addEstadoFisicoAuto(
Devolucao estadofisicoAuto)
Detém
1 1 idContrato, infoCliente, 1
idDevolucao, data, hora, infoAutomovel, dataInicio,
dataFim, dataContrato,
estadoFisico, local RegistoCliente
Devolucao, km, 1 arrayCondutor, arrayServiços, 1..*
combustivel, idContrato autorizaçaoDebitoId
arrayClientes
calculaPeriodoAlug()
calculaPreco() CalculaValorContrato()
1..*
1..* 1 Detém 1 addClinte(Cliente)
EmpresaAluguer
1..* getCliente()
RespeitanteA
1..*
Capturado
nome, endereço,
Capturado
em
numContribuinte
1
Registado em
em
listaEmpresa()
1
1
RegistoDevolucao 1..* 1..* 1..* 1..*
RegistoContratoAluguer
Cliente
Detém
arrayDevolucao
Detém
arrayContratosAluguer
idCliente, nome, endereço,
telef, email, observ
Recebe
addDevolucao() 1
addContratoAluguer()
listaCliente()
getContratoAluguer() RespeitanteA
1..* 1..* 1..*
1..*
Gere
Recebe
Gere
1 1
Funcionario 1
1 1
AutorizaçaoDebito RegistoAutorizaçao
idFuncinario, nome, CopiaAutorizaçao CopiaContrato
endereço, telef, biNum autorizaçãoId, ClienteId,
Debito
contratoId, arrayAutorizaçãoDebito()
listaFuncionario() numCartaoCredito, data,
GetInfoCartaoCredito()
GetAutorizaçãoDebito(autor
1 1 izaçãoId)
1..*
Registado em 1 1..*
Gere
Gere
1.4.5 Diagrama de Classes do Use Case Elaborar Contrato de Aluguer
ElaboraContratoAluguer()
SetCliente(clienteId)
setAutomovel(matricula) ElaboraContratoAluguer() Condutor(Nome, endereco,
SetDataInicio(Data) addContrato( ) CartaCondNum,
SetDataFim(Data) CartaCondValidade)
SetLocalDevoluçao(local) AutorizaçãoDebito
SetCondutor(nome, endereco, (numCartaoCredito, Banco)
cartaCondNum,
cartaCondValidade)
SetServiço(nomeServiço,. preço,
quant)
RegistoCliente RegistoAutorizaçãoDébito
SetAutorizaçãoDebito
(numCartaoCredito, Banco)
ConfirmaContrato()
TerminaContrato() SetAutorizaçãoDebito
(numCartaoCredito, Banco)
InfoCliente = addAutorizaçãoDebito(Autorização
getInfoCliente(clienteId) Debito)
ContratoAluguer
LinhaContratoServiço(serviço,
quant) getInfoAutomovel(matricula)
Serviço(nomeServiço, preço)
Diagrama de Sequência (interacção) Caso de Uso – Devolução de Automóvel
addDevolução( ) 9 – O RegistoDevoluçãoAuto
adiciona a DevoluçãoAuto.
Diagrama de Sequência (interacção) Caso de Uso – Entrega de Automóvel
8- O funcionário confirma a
12- TerminaEntrega() entrega
addEntregaAuto( ) 9 – O RegistoEntregasAuto
adiciona a EntregaAuto.
Diagrama de Sequência (interacção) Caso de Uso – Elaborar Contrato de Aluguer
SetAutomovel(infoAutomovel) Condutor
6- O funcionário introduz a
data inicio.
6- SetDataInicio(Data) Serviço
SetDataInici o(Data)
7-O funcionário introduz data
7- SetDataFim(Data) fim.
SetDataFim(Data)
LinhaContrato 8- O funcionário introduz
8- SetLocalDevoluçao(local)
SetLocalDevoluçao(local) Serviço local de devolução.
addContrato( )