Escopo

  • O CarHelp é uma plataforma na qual na qual o usuário pode buscar por assistência ao seu automóvel, seja para buscar um mecânico, eletricista, manutenção de suspensão, oficina de performance, lava jato ou guincho. Para esses profissionais a plataforma será uma forma de divulgação para eles e uma forma de conhecer novos profissionais para possíveis colaborações entre eles.



5W2H

What

Qual o nome do seu projeto?

  • CarHelp

Qual o objetivo deste projeto?

  • Temos como objetivo poder auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.

Quais os maiores desafios, na sua opinião, para se realizar este trabalho?

  • Os maiores desafios para realizar esse trabalho são: adquirir e conseguir implementar os conhecimentos necessários para esse projeto.

Quais os conhecimentos básicos que devemos ter para se implementar este projeto?

  • Banco de dados, linguagem de programação, gestão de projeto, integração de sistemas, estrutura de dados, arquitetura, conhecimento do ambiente Android e iOS e conhecimento em tecnologias de localização.

Quais soluções similares existem no mercado?


Why

Porque é interessante desenvolver este projeto?

  • É interessante desenvolver esse projeto, porque o CarHel pode auxiliar as pessoas que possuem automóveis a cuidarem de seus veículos e também ajudar as pessoas que prestam serviços relacionados aos mesmos.

Porque deve usar a tecnologia escolhida?

  • O desenvolvimento do app na plataforma mobile é essencial para completa funcionalidade do aplicativo, pois com ela podemos usar várias funções que acompanham o aplicativo, como o gps e a conexão de dados.

Porque usar o hardware específico?

  • Porque os dispositivos móveis são de fácil uso e bem consolidado no mercado.

Porque usar o sistema específico?

  • Porque o uso de sistema como Android e iOS representam a maioria dispositivos moveis existentes.


Who

Quem pode se beneficiar deste projeto?

  • As pessoas que podem se beneficiar deste projeto são: donos de oficinas, lava jatos, guinchos e pessoas que possuem automóveis.

Quem poderá operar o sistema?

  • Os próprios usuários finais que iram operar o sistema.

Quem deverá participar do desenvolvimento do sistema?

  • Desenvolvedores, programadores e designers.


Where

Onde os dados serão inseridos?

  • Os dados serão inseridos na interface gráfica local onde haverá a primeira interação e comunicação com o usuário.

Onde os dados serão externalizados, publicados?

  • Os dados serão externalizados em interfaces presentes em dispositivos móveis, relacionados tanto ao usuário quanto as empresas filiadas ao aplicativo.

Onde esta aplicação poderá ser usada?

  • O aplicativo será disponibilizado para as plataformas android e iOS.

Onde o dados serão armazenadas?

  • Os dados serão armazenados em bancos dados que possam ser atualizados em tempo real.

Onde o software deverá ser hospedado?

  • O software será hospedado em sistema cliente-servidor.


When

Em quanto tempo pretende desenvolver o sistema?

  • De 7 a 12 meses.

Quais serão as fases e em quanto tempo cada uma?

  • 01/04/2019 Entrega 1 - Pitches
  • 08/04/2019 Entrega 2 - Mockup
  • 29/04/2019 Entrega 3 - DC e DFD
  • 30/04/2019 Entrega 4 - DER
  • 18/06/2019 Entrega 5: Diagramas OO
  • 20/06/2019 Codificação e Criação de Interface
  • 15/08/2019 Implementação
  • 07/09/2019 Teste e Correção de bugs
  • 01/11/2019 Entrega final

Qual o tempo de resposta do dispositivo ou do sistema?

  • Milissegundos

Quanto tempo para responder a uma entrada?

  • Milissegundos

Quanto tempo para gerar a saída?

  • Milissegundos


How

Como será dividido o desenvolvimento do sistema?

  • Codificação
  • Criar de interface
  • Implementação
  • Testes e Correção de bugs

Como será feita a entrada de dados?

  • Por meio de telas touchscreen ou outras formas de entrada em Smartphone, realizados por usuários comuns e donos de estabelecimentos que prestam serviços a automóveis.

Como será feita a saída de dados?

  • A saída será definida nas interfaces do app para cada usuário, seja ele um usuário comum ou donos de estabelecimentos que prestam serviços a automóveis.

Descreva as funcionalidade?

  • Cadastrar prestador de serviços
  • Cadastrar usuário
  • Realizar login
  • Remover usuário
  • Remover prestador de serviços
  • Alterar o cadastro de prestadores de serviços
  • Visualizar os prestadores de serviços
  • Solicitar serviço
  • Cancelar serviço
  • Avaliar o serviço prestado
  • Realizar busca por serviços
  • Entrar em contato com o prestador de serviços
  • Denunciar usuário
  • Denunciar prestador de serviços
  • Mostrar a localização prestadores de serviços
  • Realizar busca personalizada
  • Avaliar usuário


How much

Quanto custa cada parte do sistema?

  • Codificação: R$ 9.136,00
  • Criar de interface: R$ 4.190,00
  • Implementação: R$ 4.568,00
  • Testes e Correção de bugs: R$ 12.990.00

Quanto deverá custar todo o sistema?

  • R$ 30.884,00

Quantas pessoas deverão ser usadas (Equipe) ?

  • A equipe será composta por 4 pessoas.

Quanto custa cada profissional?

  • Programador: R$ 2.284,99.
  • Designer: R$ 2.095.00.
  • Analista de Teste de Software: R$ 1.927.

Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?

  • Grátis para download porém com preços para o perfil que oferecerá serviços.


Canvas


DC

DFD

DER


Especificação Funcional


  • RF01: Cadastrar prestador de serviços
    • Interface solicita o CNPJ do usuário
    • O Sistema faz uma consulta no sistema da Receita Federal
      • Se o CNPJ for válido:
        • O prestador de serviço irá preencher os requisitos: nome da empresa, e-mail, endereço, telefone e quais tipos de serviços que ele oferece
        • Depois da entrada dos dados, o prestador de serviço tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
          • Se concordar com os termos o prestador de serviço pode concluir o cadastro
          • Caso contrário, não será possível concluir o cadastro
      • Se o CNPJ não for válido:
        • O Sistema comunicará por um janela que o CNPJ não é válido, logo não é possível realizar o cadastro
  • RF02: Cadastrar usuário
    • Interface solicita o CPF do usuário
    • O Sistema faz uma consulta no sistema da Receita Federal
      • Se o CPF for válido:
        • O usuário irá preencher os requisitos: nome, sobrenome, e-mail, endereço e telefone
        • Depois da entrada dos dados, o usuário tem a opção de ler os Termos e Condições de Uso e concordar ou não com o que foi escrito.
          • Se concordar com os termos o usuário pode concluir o cadastro
          • Caso contrário, não será possível concluir o cadastro
      • Se o CPF não for válido:
        • O Sistema comunicará por um janela que o CPF não é válido, logo não é possível realizar o cadastro
  • RF03: Realizar login
    • A interface solicita o CPF ou o CNPJ
    • Se o sistema faz uma consulta no Banco de Dados
      • Se o CPF ou CNPJ não estiver no Banco de Dados:
        • Aparecerá uma janela avisando que o CPF ou CNPJ não é válido
      • Se o CPF ou CNPJ estiver no Banco de Dados:
        • Uma outra interface irá pedir a senha referente ao CPF ou CNPJ citado
          • Se a senha estiver correta, será apresentado o menu principal do Sistema
          • Caso contrário, irá aparecer uma janela comunicando que a senha escrita não está correta
  • RF04: Remover usuário
    • Quando o usuário solicita a opção de Remover usuário
    • A interface solicita o nome do usuário a ser removido
    • Sistema procura pelo usuário pesquisando no Depósito Usuários
      • Se não encontrou:
        • Mostra mensagem "Usuário não encontrado"
      • Se encontrou:
        • Sistema mostra o nome completo do usuário
        • O Sistema pergunta a senha do usuário
          • Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o usuário
          • Se a senha estiver correta: Exclui os registros do usuário do Banco de Dados
    • No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
  • RF05: Remover prestador de serviços
    • Quando o prestador de serviços solicita a opção de Remover prestador de serviços
    • A interface solicita CNPJ do prestador de serviços a ser removido
    • Sistema procura pelo prestador de serviços pesquisando no Depósito Prestadores de Serviços
      • Se não encontrou:
        • Mostra mensagem "Prestador de serviços não encontrado"
      • Se encontrou:
        • Sistema mostra o nome da empresa do prestador de serviços
        • O Sistema pergunta a senha do prestador de serviços
          • Se a senha estiver incorreta: O sistema alega que a senha está incorreta e não remove o prestador de serviços
          • Se a senha estiver correta: Exclui os registros do prestador de serviços do Banco de Dados
    • No rodapé da tela, tem a opção: "Retornar ao Menu Principal"
  • RF06: Alterar o cadastro de prestadores de serviços
    • Uma interface com todas as informações do prestador de serviços será apresentada
    • O prestador de serviço pode realizar alguma alteração em relação a e-mail, endereço, telefone ou quais tipos de serviços que ele oferece
      • Após a alteração, ele apertará em um botão que finaliza a operação e salva as novas informações
      • As novas informações serão colocadas no Banco de Dados
  • RF07: Visualizar os prestadores de serviços
    • Ao clicar no botão de prestadores de serviços
    • O Sistema listará todos os prestadores de serviços atuantes
    • O usuário poderá visualizar todos os prestadores de serviços atuantes em forma de lista
  • RF08: Solicitar serviço
    • No menu principal, terá um botão no qual o usuário pode solicitar um serviço
    • Ao clicar nele, o usuário será apresentado a uma interface nova com campos a serem completados
      • Qual o tipo de serviço o usuário precisa, onde o usuário está, qual o automóvel o usuário está utilizando e a placa do automóvel
      • Após preencher todos os campos, o usuário deve apertar o botão, "Solicitar serviço"
    • O Sistema irá realizar uma busca no Banco de Dados para encontrar o prestador de serviços mais próximo que possa realizar o serviço de acordo com informações passadas pelo usuário
    • O prestador de serviços receberá uma notificação de serviço e poderá aceita-la ou não
      • Caso aceite, ele receberá as informações do usuário e poderá realizar o serviço
      • Caso contrario, o Sistema buscará outro prestador de serviços que possa realizar o serviço
    • Caso o Sistema não encontre nenhum prestador de serviços disponível, o usuário receberá uma notificação
  • RF09: Cancelar serviço
    • Após realizar a solicitação de serviço, o usuário pode cancelar a solicitação
    • Após a confirmação do pedido do serviço, o usuário será apresentado a uma interface com as informações do serviço
      • Quem o realizará, onde o prestador de serviço está (caso essa informação esteja disponível) e os detalhes informados pelo usuário
    • Caso o usuário queira cancelar o serviço, basta ele apertar o botão "Cancelar"
    • Caso o usuário cancele o serviço, uma janela aparecera com uma caixa de texto para que o usuário justifique o motivo do cancelamento
    • Depois basta ele apertar no botão "Cancelar" e o serviço será cancelado e o prestador de serviço será notificado
  • RF10: Avaliar o serviço prestado
    • Após a realização de um serviço, o usuário será apresentado a uma janela na qual ele poderá avaliar o prestador de serviços que prestou o serviço
    • A interface terá um forma de avaliação de notas, de 0 a 5
    • Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o usuário queira
    • E terá um botão "Avaliar", para concluir a avaliação do prestador de serviços
    • Por fim, o Sistema registrará a avaliação no Banco de Dados
  • RF11: Realizar busca por serviços
    • O usuário irá escrever em um campo específico qual tipo de serviço ele quer encontrar
    • O Sistema vai receber essa informação e buscará no Banco de Dados quais os prestadores de serviços realizam esse serviço
    • O Sistema irá apresentar para o usuário uma lista com todos os prestadores de serviços que realizam o serviço desejado
    • Caso o Sistema não encontre nenhum prestador de serviço que realize o serviço, aparecerá um aviso na tela
  • RF12: Entrar em contato com o prestador de serviços
    • No perfil do prestador de serviços, existirá um botão para entrar em contato com ele
    • Esse botão fará com que o Sistema busque as informações de telefone do prestador de serviço
    • O Sistema irá colocar o número do prestador de serviços direto no telefone do usuário para realizar uma ligação
  • RF13: Denunciar usuário
    • No perfil do usuário existirá um botão no qual é possível denunciar o perfil do usuário
    • Ao pressiona-lo:
      • Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do usuário
      • Após escrever sua queixa, o prestador de serviços deverá clicar em um botão escrito "Denunciar" e concluir a operação
    • A queixa será registrada no Banco de Dados
  • RF14: Denunciar prestador de serviços
    • No perfil do prestador de serviços existirá um botão no qual é possível denunciar o perfil do prestador de serviço
    • Ao pressiona-lo:
      • Aparecerá uma janela qual terá um campo onde o usuário pode escrever sua queixa a respeito do prestador de serviços
      • Após escrever sua queixa, o usuário deverá clicar em um botão escrito "Denunciar" e concluir a operação
    • A queixa será registrada no Banco de Dados
  • RF15: Mostrar a localização prestadores de serviços
    • Após ser solicitado um serviço e o prestador de serviços confirmar o pedido, será possível ver a localização do prestador de serviços
      • Caso a localização do dispositivo do prestador de serviço esteja ligada, o usuário receberá a opção de rastreá-lo
        • Assim, será apresentado ao usuário um mapa com a localização do usuário e a localização do prestador de serviços
      • Caso contrário, a opção de rastrear o prestador de serviços não será apresentada ao usuário
  • RF16: Realizar busca personalizada
    • O usuário irá realizar uma busca de serviço ou de prestador de serviços
    • Ele irá escrever em um campo específico o que ele tem interesse
    • A partir disso, ele poderá acrescentar filtros, por exemplo:
      • Intervalo de preço, localização e mais bem avaliado
    • A partir dessas informações o Sistema irá realizar uma busca no Banco de Dados
    • E irá apresentar todos os resultados possíveis em forma de lista
    • Caso não seja encontrado informações a respeito do que o usuário deseja, aparecerá um aviso na tela
  • RF17: Avaliar usuário
    • Após a realização de um serviço, o prestador de serviços será apresentado a uma janela na qual ele poderá avaliar o usuário a quem ele prestou o serviço
    • A interface terá um forma de avaliação de notas, de 0 a 5
    • Será possível por meio de uma caixa de texto, registrar maiores detalhes caso o prestador de serviço queira
    • E terá um botão "Avaliar", para concluir a avaliação do usuário
    • Por fim, o Sistema registrará a avaliação no Banco de Dados


Especificações Não Funcionais


  • RNF01: Desempenho
    • O Sistema deve responder a uma solicitação de um serviço específico de um usuário dentro de um intervalo de 2 segundos.
    • O Sistema de software possa processar, no mínimo, 6 transações por segundo.
    • O Sistema deveria efetuar leitura de dados 5 vezes por segundo, como condição mínima.
  • RNF02: Disponibilidade
    • O Sistema deve estar funcionando 24 x 7 (vinte e quatro horas por dia, sete dias por semana).
    • Sempre que o usuário abrir o sistema uma função deverá verificar se há conectividade com o servidor de banco de dados. Se houver, deverá conectar neste ambiente (servidor), senão, o usuário não poderá utilizar o Sistema.
  • RNF03: Segurança
    • O sistema não poderá permitir cache de senha, salvamento de senha ou qualquer outro recurso do tipo. A cada novo acesso, a autenticação deverá se realizada novamente, de maneira integral.
    • Apenas pessoas que tenham sido autenticadas por um componente de controle acesso e autenticação poderão visualizar informações dado que a confidencialidade permite esse tipo de acesso apenas às pessoas autorizadas.
    • As permissões de acesso ao sistema podem ser alteradas apenas pelo administrador de sistemas.
  • RNF04: Usabilidade
    • O sistema de Atendimento a Clientes será construído para rodar em ambiente web. Deverá possui um design responsivo
    • A interface do sistema deverá se comporta adequadamente independente do front-end que será utilizado para acesso – Browser, Smartphone ou Tablet.
  • RNF05: Compatibilidade
    • O Sistema deve ser compatível com os sistemas operacionais mobiles: iOS e Android. Para iOS a versão utilizada será a partir da versão 8.0 e para Android utiliza-se a partir da versão 4.0.3
    • Para ambos os sistemas são aplicadas atualizações, sempre que uma nova versão do sistema operacional seja lançada.
  • RNF06: Padrão
    • O projeto do software deverá ser fortemente orientado a baixo acoplamento e alta coesão, primando pela melhor separação de responsabilidades.
    • Todo o projeto deverá ser feito utilizando uma arquitetura separada em camadas, onde cada camada conterá apenas os algoritmos relacionados à sua responsabilidade.
  • RNF07: Reusabilidade
    • O Sistema deve ser composto de aplicações, subsistemas, objetos e funções que sejam reutilizáveis dentro do próprio Sistema


Diagrama de Classes



Diagrama de Casos de Usos


Arquivo:CDUCarHelp.pgn


Diagrama de Objetos