Erro ao criar miniatura: Arquivo não encontrado

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


Motivação


  • Vídeo de 2013
  • As vagas na área de Tecnologia de Informação continuam cada vez mais amplas
    • Nos últimos anos surgiram muitas oportunidades diferentes em torno de SI, em praticamente todas as áreas


  • Entender sobre o problema que queremos resolver passa a ser a primeira necessidade
    • O 5W2H ajuda a organizar esse processo ....


Usando o 5W2H para definir Requisitos Funcionais


  • Entre os 7 conjuntos de perguntas, algumas nos permitem tratar dos requisitos funcionais com mais profundidade:

What

  • Qual o objetivo deste projeto?
    • Quando se escreve o objetivo, propósito, já conseguimos enxergar alguns serviços possíveis para a aplicação
  • Quais soluções similares existem no mercado?
    • Depois de pesquisar e encontrar soluções similares, eventualmente copiamos algumas funcionalidades.


Why

  • Porque usar o sistema específico?
    • Quando avaliamos outros sistemas que se comunicarão com o nosso, no mínimo, a ação de conectar nosso sistema ao outros já é uma nova funcionalidade.


  • Porque usar o hardware específico?
    • Quando avaliamos outros hardwares que se comunicarão com o nosso, efetivamente teremos que criar uma função para falar com esse hardware.


Who

  • Quem poderá operar o sistema?
    • Quando imaginamos quem pode usar o nosso sistema, sejam pessoas, sistemas ou hardwares, identificamos que deverão ser criadas interfaces específicas.


Where

  • Por onde os dados serão inseridos?
    • Quando definimos as entradas implica que deverão haver funcionalidades que façam esse papel
  • Onde os dados serão externalizados, publicados?
    • De mesma forma, quando definimos as saídas implica que deverão haver funcionalidades que também façam esse papel.


How

  • Como será dividido o desenvolvimento do sistema?
    • As funcionalidades definidas. dependendo do número, nos levam a dividir em fases para um melhor controle
  • Como funcionam as entradas de dados? Existe conversão, uso de protocolos, etc?
    • Idem ao Where
  • Como funcionam as saídas de dados? Existe conversão, uso de protocolos, etc?
    • Idem ao Where
  • Enumere e descreva as funcionalidades?
    • Aqui efetivamente irão descrever todas as funcionalidades ou requisitos funcionais que o sistema deverá ter. Pode chegar a dezenas ou centenas.


How much

  • Quantas pessoas deverão ser usadas (Equipe) ?
    • Quando relaciono no How quantos requisitos terei que construir, me leva a ter uma ideia mais clara de quantas pessoas necessitaremos.
  • Qual deverá ser o preço de aquisição do seu software para o usuário final (Valor de mercado)?
    • Uma forma de definir o preço de um SI é avaliando quantos requisitos ele tem.


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