Objetivo da aula


  • Explicar uma técnica de detalhamento de projetos
  • Mostrar projetos anteriores que servem como benchmarking
  • Identificar um projeto modelo
  • Sugerir passos para o levantamento de dados para construção do software
  • Entender Requisitos Funcionais




5W2H


What

  1. Qual o nome do seu projeto?
  2. Qual o objetivo deste projeto?
  3. Quais os maiores desafios, na sua opinião, para se realizar este trabalho?
  4. Quais os conhecimentos básicos que devemos ter para se implementar este projeto?
  5. Quais soluções similares existem no mercado?


Why

  1. Porque é interessante desenvolver este projeto?
  2. Porque deve usar a tecnologia escolhida?
  3. Porque usar o hardware específico?
  4. Porque usar o sistema específico?


Who

  1. Quem pode se beneficiar deste projeto?
  2. Quem poderá operar o sistema?
  3. Quem deverá participar do desenvolvimento do sistema?


Where

  1. Por onde os dados serão inseridos?
  2. Onde os dados serão externalizados, publicados?
  3. Em que SOs/dispositivos esta aplicação poderá ser usada?
  4. Onde os dados serão armazenadas?
  5. Onde o software deverá ser hospedado?


When

  1. Em quanto tempo pretende desenvolver o sistema?
  2. Quais serão as fases e quanto tempo terá cada uma?
  3. Existe tempo mínimo ou ideal para resposta do dispositivo ou sistema?
  4. Usuário pode esperar quanto tempo por um processamento?


How

  1. Como será dividido o desenvolvimento do sistema?
  2. Como funcionam as entradas de dados? Existe conversão, uso de protocolos, etc?
  3. Como funcionam as saídas de dados? Existe conversão, uso de protocolos, etc?
  4. Descreva a 1a. funcionalidade?
  5. Descreva a 2a. funcionalidade?
  6. ............
  7. Descreva a enésima funcionalidade?


How much

  1. Quanto custa cada parte do sistema?
  2. Quanto deverá custar todo o sistema?
  3. Quantas pessoas deverão ser usadas (Equipe) ?
  4. Qual o valor hora ou mensal de cada profissional?
  5. Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?


Requisitos


  • O que são requisitos de um software?
    • Serviços (funcionalidades) de um software e restrições sob as quais o mesmo deve operar ou ser desenvolvido


  • Características:
    • O termo “requisito” pode ser escrito diferentes formas:
      • “Declaração em linguagem natural sobre um serviço ou uma restrição.”
      • “Uma definição formal sobre uma função do software.”
    • Um requisito pode ser apresentado em diferentes níveis de detalhe:
      • Requisitos do Usuário
        • Lista das funcionalidades e restrições do software.
      • Requisitos para o Software
        • Detalhes técnicos sobre cada requisito do usuário.
    • Os requisitos são organizados em duas classes:
      • Funcionais
        • Funcionalidades do software
      • Não Funcionais
        • Restrições ou condições para o software


  • Levantamento de requisitos é útil para:
    • Identificar as necessidades dos usuários
    • Verificar a viabilidade de implementar estas necessidades
    • Distribuir as funções do sistema entre as pessoas, o hardware, o software e outros elementos do sistema
    • Criar um modelo do sistema que será utilizado nas fases de desenvolvimento seguintes


  • Técnicas para levantamento de dados
    • O sucesso de um projeto depende diretamente do levantamento de dados
    • O levantamento de dados é tão importante no desenvolvimento do projeto que seu resultado pode colaborar ou comprometer o desempenho do projeto
    • Para realizá-lo em um sistema de informação, existem diversas técnicas de levantamento de dados
    • Dependendo das características do projeto, essas técnicas podem ser aplicadas de forma isolada ou em conjunto
    • Abaixo, algumas dessas técnicas:
      • Entrevistas: Identificar as pessoas que serão entrevistadas buscando especialistas no assunto.
      • Questionários: Gerar perguntas organizadas com o objetivo de levantar dados para uma pesquisa ou estudo, cujas respostas são fornecidas pelo informante sem a orientação direta do pesquisador;
      • Revisão de documentação: Utilizar várias fontes de informação como:manuais de procedimentos, documentação, manuais de projeto, relatórios, diagramas e outros;
      • Análise de observação: Observar os usuários em seu ambiente de trabalho enquanto eles executam suas atividades. Pode ser usada para confirmar os resultados de uma entrevista, identificar documentos que devem ser analisados etc.
      • Brainstorm: Termo do Inglês que significa “tempestade de ideias”. É uma metodologia que objetiva explorar as ideias de um grupo de pessoas a fim de obter as melhores soluções. Não há julgamento ou autocrítica. Todas as idéias são aceitas, mesmo aquelas que parecem ser absurdas. Tem-se como objetivo principal fazer com que o grupo libere o seu conhecimento e criatividade. O resultado da técnica Brainstorm tem o seu mérito distribuído porque foi obtido usando as ideias de todo o grupo envolvido.
      • JAD: Join Application Design é uma metodologia criada pela IBM e baseada em sessões de dinâmica de grupo. Define o ponto de vista dos usuários sobre o sistema, incluindo objetivos e as aplicações do sistema até a geração de telas e relatórios. Diferente da técnica Brainstorm, é refinada, organizada e com uma abordagem mais estruturada;


Requisitos funcionais

  • Especificam ações que um sistema deve executar, sem levar em consideração restrições físicas
  • Melhor descrito quando são usados casos de uso
  • Descrevem a funcionalidade ou os serviços do sistema
  • Depende do tipo de software, possíveis usuários e o tipo de sistema em que o software é usado
  • Requisitos funcionais dos usuários podem ser declarações de alto nível a respeito do que o sistema deve fazer
  • Devem descrever detalhadamente os serviços do sistema
  • Exemplos:
    • Um sistema acadêmico fictício deve:
      • Matricular os alunos
      • Montar uma turma para cada grupo de alunos
      • Alocar a turma em salas
      • Gerar Diário
      • Controlar frequência e faltas
      • Calcular pontuação do aluno
      • Gerar relatório de aprovados e reprovados


Exemplos