Iniciando um projeto


  • Aquisição
  • Análise
  • Especificação
  • Gestão de requisitos de software



Requisitos


  • Levantamento de requisitos é útil para:
    • Identificar as necessidades dos usuários
    • Verificar a viabilidade de implementar estas necessidades
    • Distribuir as funções do sistema entreas 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âmicade 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;


Classificação dos requisitos


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 tipode sistema em que o software é usado
  • Requisitos funcionais dos usuários podem ser declaraçõesde 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


Requisitos não-funcionais


  • Descrevem qualidades do sistema (como ele é) ao invés de suas funcionalidades (o que ele faz)
  • Definem as propriedades e as restriçõesdo sistema, por exemplo:
    • confiabilidade
    • tempo de resposta
    • ocupação de área
  • As restrições são capacidades de dispositivos de E/S, as representações do sistema, etc
  • Os requisitos de processo também podem ser especificados impondo um IDE particular, linguagem de programação ou método de desenvolvimento
  • Podem ser mais críticos do que os requisitos funcionais. Se esses não forem atendidos,o sistema pode ser inútil
  • Exemplos:
    • O sistema:
      • deve ter baixo tempo de resposta
      • precisa ser Orientado a Objeto
      • necessita usar o Banco de Dados Oracle
      • deverá estar hospedado na nuvem
      • tem que ser desenvolvido em Java


Algumas métricas para requisitos não-funcionais


Propriedade Medida
Velocidade Transações processadas/segundo
Tempo de resposta de usuário/evento
Tempo de atualização de tela
Tamanho MegaBytes
Número de processadores
Área disponível em cm
Facilidade de uso Tempo de treinamento do usuário
Número de telas/campos de entrada
Confiabilidade Tempo médio para falha
Probabilidade de indisponibilidade
Taxa de ocorrência de falhas
Disponibilidade
Robustez Tempo de reinício após falha
Percentual de eventos que causam falhas
Probabilidade de corrupção de dados em caso de falha
Segurança Número de tentativas erradas de autenticação
Número máximo de invasões
Interfaces Tipo do dispositivo
Comunicação Tipo de tecnologia