Main Page

From Grupo4 Ahand

Revision as of 12:50, 23 June 2007 by 143.106.73.78 (Talk)
Grupo A-Hand 4
André Misse
Clayton Leite
Daphne Nobrega
Otavio Fernandes
Paulo Ortolan
Sergio Pereira
Wellington Oliveira

Default Page

Contents

Declaração do Problema

Projeto: Estacionamento Tropical

O cliente, Estacionamento Tropical, vem sofrendo de alguns problemas como: a falta de organização do Caixa (Financeiro); falta de documentação e controle dos veículos que utilizam o serviço; dificuldade na localização rápida do veículo.
Esse problema afeta os manobristas, que ficam sem um maior controle sobre que veículo está sobre sua reponsabilidade. Afeta os clientes, proprietários dos automóveis, que perdem um tempo precioso com a desorganização do serviço. E afeta também o administrador do estacionamento que tem mais trabalho para gerenciar tudo.
Isso se deve devido ao fato do processo de guarda de veículos ser feita informalmente, os registros serem feitos em papel, os cálculos serem feitos a mão, sem qualquer controle mais rígido.
O grupo propõe informatizar o estacionamento trazendo diversos benefícios como: redução de perdas devido a cálculos incorretos; agilidade no atendimento e localização do veículo no pátio, controle sobre os manobristas devido a avarias na guarda dos automóveis, criação facilitada de relatórios de faturamento diários/mensais.

Causa Raiz

A informalidade dos processos da empresa leva uma perda de faturamento.
  • Na maioria dos casos os manobristas são pessoas de baixo nível de instrução. Cálculos de tempo de permanência e troco errados com utilização de arredondamentos não permitidos.
  • Outra ocorrência bastante comum é uma demora na localização dos carros no pátio, cuja capacidade é de 70 veículos, causando descontentamento ao cliente ao esperar o veiculo na saída.
  • Hoje, todo o controle é feito em papel, os recibos são somados no fim do dia em uma folha A4, que por sua vez são contabilizados ao final de cada mês, Dessa forma não há como visualizar os faturamentos da empresa, impossibilitando-o de tomar estratégias para obtenção de melhor resultado.
    Além disso, esse tipo de controle informal é muito fácil de ser burlado dando margem para furtos e pequenos roubos bastante comuns na empresa.
  • Quando ocorrem acidentes ou avarias no carro, ou mesmo reclamações de falta de algum objeto no interior do veículo, é bastante difícil lidar com a situação, pois não existe um controle de que manobrista estacionou ou retirou o carro da vaga. Frequentemente o prejuízo fica para o dono do estacionamento pela falta de informação do que aconteceu. A perda do cliente nesses casos também é comum.


Stakeholders e Usuários

Usuários Outros Stakeholders
Funcionários que recebem os carros e registram em papel o modelo, placa e horarios de entrada e saida Manobristas e Administrador do Estacionamento.
Clientes que utilizam-se de serviços oferecidos pelo estacionamento Donos de Veículos que contratam serviços.

Contexto da Solução

Os clientes irão receber um cupom impresso pelo sistema que irá ter Datas, Horarios e Descrições do Veiculo.
Os manobristas terão acesso apenas para registrar a entrada e saída dos veículos e o recebimento do valor calculado pelo sistema.
O gerente da empresa terá acesso completo ao sistema podendo consultar as bases de dados e a partir dessas informações implementar melhorias na sua empresa.

Restrições

Fonte Restrição Lógica
Operacional Nível de profissionalismo de usuário baixa, gerando um treinamento rápido do novo sistema Efetuar treinamento do funcionário a cada nova versão do sistema.
Orçamento de Equipamentos Aquisição de um PC básico e uma impressora para emitir os recibos. Conservação do sistema e dos equipamentos adquiridos.
Orçamento de Pessoal Nenhum investimento devido à utilização da equipe já existente. O grupo aHand4 para desenvolverá o sistema gratuitamente.
Tecnologia Obrigatória Utilização de ferramentas livres. Banco de Dados MySQL e linguagem de desenvolvimento JAVA. O pessoal contratado domina a tecnologia utilizada na solução e oferece um treinamento para operação do sistema na entrega do produto.

Análise Essencial do Negógio

Lista de Evento do Negócio

Evento Descrição Estímulo Ação Resposta
Chegou um carro Um cliente chega com seu carro no estacionamento. O manobrista coleta os dados do carro e emite um recibo para o cliente. Modelo, placa e hora de entrada do carro. Recepcionar carro. Recibo.
Chegou o momento de estacionar o carro Respeitando a ordem de chegada dos carros, o manobrista estaciona em uma vaga livre e informa ao sistema o local estacionado. . Estacionar o carro. .
Retirada do carro O cliente chegou para retirar o seu veículo. Recibo. Recepcionar cliente. Valor a pagar.
Pagamento O cliente paga o valor informado. Dinheiro Receber pagamento .
Cálculo do valor à pagar O sistema calcula o preço à pagar a partir dos dados de entrada e saída do carro e a tabela de preços. . Calcular preço. .
Entrega do carro Após o pagamento efetuado o manobrista busca o carro na vaga indicada pelo sistema. . Buscar carro. Chave.

DFD Essencial

Modelagem do Negócio

Diagrama de Casos de Uso do Negócio

Diagrama de Realização de Casos de Uso de Negócio

Recepcionar Carro

Diagrama de Atividades
Diagrama de Colaboração
Diagrama de Sequencia
VOPC

Estacionar Carro

Diagrama de Atividades
Diagrama de Colaboração
Diagrama de Sequencia
VOPC

Recepcionar Cliente

Diagrama de Atividades
Diagrama de Colaboração
Diagrama de Sequencia
VOPC

Calcular Preço

Diagrama de Atividades
Diagrama de Colaboração
Diagrama de Sequencia
VOPC

Receber Pagamento

Diagrama de Atividades
Diagrama de Colaboração
Diagrama de Sequencia
VOPC

Buscar Carro

Diagrama de Atividades
Diagrama de Colaboração
VOPC
Diagrama de Sequencia

Modelagem do Sistema

Lista de Requisitos Funcionais

Entrada do Veículo

  • O sistema deverá permitir cadastrar veículos.
  • O sistema deve verificar se há vagas disponíveis.
  • O sistema deverá permitir consultar se o veículo está cadastrado.
  • O sistema deverá permitir fazer o registro data/hora de entrada e a vaga a ser alocada.
  • O sistema deverá emitir um recibo para o cliente.

Saída do Veículo

  • O sistema deverá permitir que o usuário localize o registro entrado.
  • O usuário deverá inseriros dados do cliente.
  • O sistema deverá calcular o valor que será cobrado.
  • O sistema deverá emitir um comprovante de pagamento.

Diagrama de Casos de Uso de Sistema

Cadastrar Veículo

Cadastrar Veículo

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Verificar Vaga

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Verificar Vaga (Cheio)

Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Calcular Valor

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Consultar Recibo

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Consultar Veículo

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Emitir Comprovante

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema


Emitir Recibo

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Fazer Registro

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Saida de Veículo

Diagrama de Realização de Casos de Uso de Sistema
Diagrama de Colaboração de Casos de Uso de Sistema
Diagrama de Sequência de Casos de Uso de Sistema

Modelo de dados

Modelo Conceitual

Modelo Lógico Relacional

Modelo Físico Relacional

CREATE TABLE TabelaPrecos (
  idPreco INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Descritivo VARCHAR(60) NULL,
  valor FLOAT NULL,
  PRIMARY KEY(idPreco)
);
CREATE TABLE Modelos (
  idModelo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  descritivo VARCHAR(60) NULL,
  PRIMARY KEY(idModelo)
);
CREATE TABLE Marcas (
  idMarca INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  descritivo VARCHAR(60) NULL,
  PRIMARY KEY(idMarca)
);
CREATE TABLE Veiculos (
  idVeiculo INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Modelos_idModelo INTEGER UNSIGNED NOT NULL,
  placa VARCHAR(8) NOT NULL,
  Marcas_idMarca INTEGER UNSIGNED NOT NULL,
  PRIMARY KEY(idVeiculo),
)
);
CREATE TABLE Funcionarios (
  idFuncionario INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  descritivo VARCHAR(60) NULL,
  celular VARCHAR(60) NULL,
  cpf VARCHAR(11) NULL,
  habilitacao VARCHAR(15) NULL,
  endereco VARCHAR(60) NULL,
  bairro VARCHAR(40) NULL,
  cidade VARCHAR(40) NULL,
  uf VARCHAR(2) NULL,
  cep VARCHAR(10) NULL,
  PRIMARY KEY(idFuncionario)
);
CREATE TABLE Vagas (
  idVaga INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  descritivo VARCHAR(60) NULL,
  status BOOLEAN,
  PRIMARY KEY(idVaga)
);
CREATE TABLE Estacionados (
  idCupom INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  Veiculos_idVeiculo INTEGER UNSIGNED NOT NULL,
  TabelaPrecos_idPreco INTEGER UNSIGNED NOT NULL,
  Funcionarios_idFuncionario INTEGER UNSIGNED NOT NULL,
  Vagas_idVaga INTEGER UNSIGNED NOT NULL,
  entrada DATETIME NULL,
  saida DATETIME NULL,
  valor FLOAT NULL,
  observacao VARCHAR(60) NULL,
  PRIMARY KEY(idCupom),
  INDEX Caixa_FKIndex2(Vagas_idVaga),
  INDEX Caixa_FKIndex3(Veiculos_idVeiculo),
  INDEX Caixa_FKIndex4(Funcionarios_idFuncionario),
  INDEX Estacionados_FKIndex4(TabelaPrecos_idPreco)
);

Consultas

Consultar quanto foi cobrado no estacionamento do carro x placa em um determinado dia

SELECT e.idCupom as "IdCupom", m.descritivo as "Marca", 
       mo.descritivo as "Modelo", v.placa as "Placa", 
       e.valor as "Valor"

FROM Estacionados e, veiculo v, marca m, modelo mo

WHERE e.veiculo_idveiculo = v.idveiculo and
      v.modelo_idmodelo = mo.idmodelo and
      v.marca_idmarca = m.idmarca and
      v.placa = :placa and
      e.entrada between :dataI and :dataF

ORDER BY Entrada;

Consultar qual foi a vaga utilizada no estacionamento do carro x (placa) em um determinado dia

SELECT e.idCupom as "IdCupom", m.descritivo as "Marca", 
       mo.descritivo as "Modelo", v.placa as "Placa", 
       e.vaga

FROM Estacionados e, veiculo v, marca m, modelo mo

WHERE e.veiculo_idveiculo = v.idveiculo and
      v.modelo_idmodelo = mo.idmodelo and
      v.marca_idmarca = m.idmarca and
      v.placa = :placa and
      e.entrada between :dataI and :dataF

ORDER BY Entrada;

Consultar qual manobrista estacionou o carro x (placa) em um determinado dia

SELECT e.idCupom as "IdCupom", m.descritivo as "Marca", 
       mo.descritivo as "Modelo", v.placa as "Placa", 
       ma.descritivo as "Manobrista"

FROM Estacionados e, veiculo v, marca m, modelo mo, manobrista ma

WHERE e.veiculo_idveiculo = v.idveiculo and
      v.modelo_idmodelo = mo.idmodelo and
      v.marca_idmarca = m.idmarca and
      v.placa = :placa and
      e.entrada between :dataI and :dataF and
      e.manobrista_idfuncionario = ma.idfuncionario

ORDER BY Entrada;

Consultar qtde de carros estacionados por manobrista

SELECT m.descritivo as "Manobrista", 
       COUNT(*) AS "Qtde Carros"

FROM Estacionados e, Manobrista m

WHERE e.manobrista_idfuncionario = m.idFuncionario and
      e.entrada between :dataI and :dataF

GROUP BY Manobrista.descritivo

ORDER BY manobrista.descritivo;

Quantidade de clientes e Valor Recebido por dia

SELECT Saida as "Saida", count(*) as "Qtde Cliente,    SUM(valor) AS "Total"

FROM Estacionados

WHERE entrada between :datai and :dataf

GROUP BY saida


Projeto Final

Download das implementações:

  • Apresentação JPA
  • Apresentação do Sistema
  • Implementação Naked Objects
  • Implementação JUnit
  • Implementação Regra de Negócio Eclipse
  • Implementação Interface Usuário Netbeans


[rapidshare[dot]com/files/38877110/Projeto_Final_JPA[dot]rar Material Grupo04]

Personal tools