Engenharia de Requisitos

Índice

Sommerville afirma que os requisitos de software são frequentemente classificados como requisitos funcionais e requisitos não funcionais:

Requisitos funcionais: são declarações de serviços que o sistema deve fornecer, de como o sistema deve reagir a entradas específicas e de como o sistema deve se comportar em determinadas situações. Em alguns casos, os requisitos funcionais também podem explicitar o que o sistema não deve fazer.

Requisitos não funcionais: são restrições aos serviços ou funções oferecidos pelo sistema. Incluem restrições de timing, restrições no processo de desenvolvimento e restrições impostas pelas normas. Ao contrário das características individuais ou serviços do sistema, os requisitos não funcionais, muitas vezes, aplicam-se ao sistema como um todo.

Os requisitos não funcionais podem ser provenientes das características requeridas para o software (requisitos de produto), da organização que desenvolve o software (requisitos organizacionais) ou de fontes externas:

Requisitos de produto. Esses requisitos especificam ou restringem o comportamento do software. Exemplos incluem os requisitos de desempenho quanto à rapidez com que o sistema deve executar e quanta memória ele requer, os requisitos de confiabilidade que estabelecem a taxa aceitável de falhas, os requisitos de proteção e os requisitos de usabilidade.

Requisitos organizacionais. Esses são os requisitos gerais de sistemas derivados das políticas e procedimentos da organização do cliente e do desenvolvedor. Exemplos incluem os requisitos do processo operacional, que definem como o sistema será usado, os requisitos do processo de desenvolvimento que especificam a linguagem de programação, o ambiente de desenvolvimento ou normas de processo a serem usadas, bem como os requisitos ambientais que especificam o ambiente operacional do sistema.

Requisitos externos. Esse tipo abrange todos os requisitos que derivam de fatores externos ao sistema e seu processo de desenvolvimento. Podem incluir requisitos reguladores, que definem o que deve ser feito para que o sistema seja aprovado para uso, por um regulador, tal como um banco central; requisitos legais, que devem ser seguidos para garantir que o sistema opere dentro da lei; e requisitos éticos, que asseguram que o sistema será aceitável para seus usuários e o público em geral.

Classificação dos Requisitos Não Funcionais

Requisitos de produtos: Requisitos que especificam o comportamento do produto.Ex. portabilidade; tempo na execução; confiabilidade, mobilidade, etc.

Requisitos de usabilidade (facilidade de uso). Ex.: usuários deverão operar o sistema após um determinado tempo de treinamento.

Requisitos de eficiência. Ex.: o sistema deverá processar n requisições por um determinado tempo.

Requisitos de confiabilidade. Ex.: o sistema deverá ter alta disponibilidade, p.exemplo, 99% do tempo.

Requisitos de portabilidade. Ex.: o sistema deverá executar em qualquer plataforma.

Requisitos organizacionais: Requisitos decorrentes de políticas e procedimentos corporativos. Ex. padrões, infraestrutura,etc.

Requisitos de entrega. Ex.: um relatório de acompanhamento deverá ser fornecido toda segunda-feira.

Requisitos de implementação. Ex.: o sistema deverá ser desenvolvido na linguagem Java.

Requisitos de padrões. Ex.: uso de programação orientada a objeto sob a plataforma A.

Requisitos externos: Requisitos decorrentes de fatores externos ao sistema e ao processo de desenvolvimento. Ex. requisitos de interoperabilidade, legislação,localização geográfica etc.

Requisitos de interoperabilidade. Ex.: o sistema deverá se comunicar com o banco SQL Server. [GABARITO DA QUESTÃO]

Requisitos éticos. Ex.: o sistema não apresentará aos usuários quaisquer dados de cunho privativo.

Requisitos legais. Ex.: o sistema deverá atender às normas legais, tais como padrões, leis, etc.

Assim, temos que a interoperabilidade entre um software que esteja em desenvolvimento e outros sistemas existentes é considerada um requisito não funcional.