Conceito: Requisitos
Um requisito é definido como "uma condição ou um recurso com o qual um sistema deve estar em conformidade".
Relacionamentos
Descrição Principal

Um requisito é definido como "uma condição ou um recurso com o qual um sistema deve estar em conformidade".

Existem vários tipos de requisitos. Uma maneira de categorizá-los é descrita como o modelo FURPS+ [GRA92], utilizando o acrônimo FURPS para descrever as principais categorias de requisitos com subcategorias, conforme mostrado a seguir.

O "+" em FURPS+ é para lembrá-lo de incluir requisitos como:

(Consulte também [IEEE Std 610.12.1990].)

Tais categorias e exemplos de requisitos não-funcionais pode ser utilizada como uma lista de verificação, para você se perguntar se possui requisito em uma categoria particular.    Mas como se cria um conjunto completo de requisitos não-funcionais candidatos?   Algumas das outras fontes incluem:

  • Para obter uma descrição de uma abordagem sistemática à captura de requisitos usando FURPS+, consulte o artigo 'Capturando Requisitos de Arquitetura' do The Rational Edge, de Peter Eeles (http://www.ibm.com/developerworks/rational/library/4706.html).  Ele fornece um questionário que relaciona um grande número de requisitos não-funcionais, junto com questões para determinar sua aplicabilidade
  • O Software Engineering Institute também criou um catálogo de 'cenários gerais' - expressões de requisitos de atributos de qualidade - que podem ser reutilizados em diferentes tipos de sistemas para definir os requisitos de qualidade.  Para obter informações adicionais, consulte http://www.sei.cmu.edu/publications/documents/01.reports/01tr014.html ou Software Architecture in Practice, 2a Ed., de Len Bass, Paul Clements e Rick Kazman (Addison-Wesley, 2003).

Os requisitos funcionais especificam ações que um sistema deve ser capaz de executar, sem levar em consideração as restrições físicas. Eles são melhores descritos em um Modelo de Caso de Uso e em casos de uso. Os requisitos funcionais especificam, portanto, o comportamento de entrada e saída de um sistema.

Os requisitos que não são funcionais, como os listados a seguir, às vezes são chamados de requisitos não funcionais. Vários requisitos não são funcionais e descrevem apenas atributos do sistema ou atributos do ambiente do sistema.   Requisitos não-funcionais são aqueles que tratam de problemas como os descritos abaixo.   

Funcionalidade

Os requisitos funcionais podem incluir:

  • conjuntos de recursos
  • recursos
  • segurança

Utilidade

Os requisitos de utilidade podem incluir subcategorias como:

  • fatores humanos
  • estética
  • consistência na interface com o usuário
  • ajuda on-line e sensível ao contexto
  • assistentes e agentes
  • documentação do usuário
  • materiais de treinamento

Confiabilidade

Os requisitos de confiabilidade a serem considerados são:

  • freqüência e gravidade de falha
  • possibilidade de recuperação
  • possibilidade de previsão
  • precisão
  • tempo médio entre falhas (MTBF)

Desempenho

Um requisito de desempenho impõe condições aos requisitos funcionais. Por exemplo, para uma determinada ação, ele pode especificar parâmetros de desempenho para o seguinte:

  • velocidade
  • eficiência
  • disponibilidade
  • precisão
  • produtividade
  • tempo de resposta
  • tempo de recuperação
  • uso de recurso

Suportabilidade

Os requisitos de suportabilidade podem incluir:

  • possibilidade de teste
  • extensibilidade
  • possibilidade de adaptação
  • possibilidade de manutenção
  • compatibilidade
  • possibilidade de configuração
  • possibilidade de serviço
  • possibilidade de instalação
  • possibilidade de localização (internacionalização)

Requisito de Design

Um requisito de design, freqüentemente chamado de restrição de design, especifica ou restringe o design de um sistema.

Requisito de Implementação

Um requisito de implementação especifica ou restringe o código ou a construção de um sistema. Como exemplos, podemos citar:

  • padrões obrigatórios
  • linguagens de implementação
  • políticas para integridade de banco de dados
  • limites de recursos
  • ambientes de operação

Requisito de Interface

Um requisito de interface especifica:

  • um item externo com o qual o sistema deve interagir
  • restrições de formatos, tempos ou outros fatores utilizados por tal interação

Requisito Físico

Um requisito físico especifica uma característica física que um sistema deve possuir, por exemplo:

  • material
  • forma
  • tamanho
  • peso

Esse tipo de requisito pode ser utilizado para representar requisitos de hardware, como as configurações físicas de rede obrigatórias.