REtraining

Taxonomia unificada para requisitos Não Funcionais

Uma taxonomia para requisitos não funcionais baseada na unificação de diversos tipos de requisitos não funcionais propostos na literatura

Learn more

Uma taxonomia para requisitos não funcionais baseada na unificação de diversos tipos de requisitos não funcionais propostos na literatura:
[1] SOMMERVILLE, I. Engenharia de software. 8. ed. São Paulo: Addison Wesley, 2007.;
[2] CONALLEN, J. Building web applications with UML, 2. ed. Boston: Pearson Education, 2002.
[3] ISO/IEC 25010:2010. Systems and software engineering — Systems and software quality requirements and evaluation (SQuaRE) — System and software quality models. Switzerland, 2010.
[4] IEEE - INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS. IEEE recommended practice for software requirements specifications, Std 830- 1998. USA, 1998.
[5] RATIONAL SOFTWARE. Rational Unified Process. IBM, 2002.
[6] WITHALL, S. Software requirement patterns. Washington: Microsoft, 2007.
[7] LEFFINGWELL, D. Agile software requirements: lean requirements practices for teams, programs, and the enterprise. Boston: Addison Wesley, 2007.

O artigo original pode ser encontrado em: Benitti, F.B.V.; Rhoden, J.S. Uma taxonomia unificada para requisitos não funcionais. Revista Eletrônica de Sistemas de Informação, v. 14, n. 3, set-dez 2015. doi:10.21529/RESI.2015.1403004

Requisitos de Produto (58)

 Confiabilidade (11)

Capacidade do sistema realizar e manter seu funcionamento em circunstâncias de rotina, bem como em circunstâncias hostis e inesperadas.

Referências: [1,2,3,4,5,7]

  Disponibilidade

Período de tempo que o software deverá estar disponível para os usuários.

Referências: [3,4,5,6,7]

   Recuperabilidade

Período de tempo necessário para retornar ao funcionamento após uma falha.

Referências: [3,5,7]

   Recuperação de desastres

Políticas e procedimentos para recuperação de desastres naturais ou induzidos pelo homem.

Referência: [7]

  Eficácia

Capacidade de executar perfeitamente uma tarefa conforme previamente planejado.

Exemplo: o sistema deverá apresentar uma eficácia superior a 998 para cada 1000 saques em caixas 24 horas.

Referência: [7]

  Exatidão/precisão

Grau de exatidão ou precisão no processamento e apresentação dos resultados.

Referências: [5,7]

  Número de defeitos

Referencia o número máximo de defeitos por unidade.

Exemplo: máximo de 20 defeitos por cada mil linhas

de código (KLOC).

Referência: [7]

  Maturidade

Grau de maturidade indica o quão sólido o

software é. Pode ser avaliado principalmente pelo número de defeitos, que deve estar em declínio com o amadurecimento do software.

Referência: [3]

  Previsão de confiabilidade

Capacidade de estimar a confiabilidade ou o número de defeitos latentes do produto quando ele estiver disponível para os clientes.

Exemplo: em um sistema médico, a consulta de resultados de exame precisa estar funcional 97% do tempo.

Referência: [5]

  Resiliência/robustez/tolerância a falhas

Capacidade do sistema funcionar mesmo em condições anormais.

Exemplo: o sistema médico deve permitir a consulta de prontuários locais quando perder a comunicação com o sistema central, sinalizando a situação anormal.

Referências: [3,7]

  Tempo médio entre falhas

Tempo médio entre as falhas encontradas.

Referências: [5, 7]

   Frequência e gravidade de falha

Frequência e gravidade de falhas encontradas.

Referência: [5]

 Compatibilidade (4)

Capacidade do produto de software, sistema ou componente trocar informações com outros produtos, sistemas ou componentes e/ou realizar suas funções necessárias, mesmo compartilhando o mesmo hardware, software ou ambiente.

 Compatibilidade entre softwares, ferramentas e normas [7]

 Compatibilidade entre plataformas [7]

 Compatibilidade com ambientes operacionais [7]

Referências: [3, 5, 7]

  Coexistência

Capacidade de um produto de software coexistir com outros produtos em ambiente comum.

Referência: [3]

  Interoperabilidade

Define como o sistema interage com sistemas em outras organizações.

Referências: [1, 3, 7]

   Interface e interações entre sistemas

Especifica detalhes sobre a interface entre diferentes sistemas ou componentes externos.

Referências: [4, 5, 6]

    Restrições de formatos

Restrições de formatos, tempos ou outros fatores usados por tal interação, especifica como o sistema deve interagir, quais as restrições de formatos e outros fatores para essa interação.

Exemplo: Para consultar o nome da rua por meio do

CEP, deve ser utilizada a interface CEPBusca enviando o CEP no formato #####-###.

Referência: [5]

 Performance e Eficiência (7)

Utilização adequada dos recursos de forma a maximizar os resultados pré-determinados.

Exemplo: o relatório é finalizado em tempo menor do que o esperado.

Referências: [1, 3, 5, 7]

   Capacidade atual e futura (escalabilidade)

Definição da capacidade atual e formas de crescimento para o sistema.

Exemplo: o cadastro de clientes deve comportar um crescimento de cem mil clientes por ano.

Referências: [6,7]

   Capacidade dinâmica

Capacidade de processamento simultâneo do sistema.

Referência: [6]

   Capacidade estática

Capacidade de armazenamento do sistema (BD).

Referência: [6]

   Rendimento / velocidade / taxa de transferência

Índice ou taxa na qual o sistema deve ser capaz de executar como, por exemplo, 10 inscrições por minuto.

Referências: [5, 6, 7]

  Desempenho (tempo de resposta)

Especificar o tempo de resposta para uma solicitação.

Referências: [1, 3, 4, 5, 6, 7]

  Acurácia

Capacidade do produto de software atender às exigências dos limites máximos de um parâmetro de produto ou sistema.

Referência: [3]

  Comportamento em relação aos recursos

Capacidade do produto de software de usar a quantidade de recursos apropriada.

Referência: [3]

 Manutenção/Suporte (9)

Capacidade ou facilidade do produto de software ser modificado, incluindo tanto melhorias quanto correções de defeitos e falhas.

Referências: [3, 4, 5, 7]

  Modificabilidade/estabilidade

Capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas.

Exemplo: número de erros decorrentes de odificações inferior a 5 para cada mil linhas de código (KLOC).

Referências: [3, 7]

  Analisabilidade

Esforço necessário para diagnosticar deficiência ou causa das falhas e identificar as partes do software a serem modificadas.

Referência: [3]

  Extensibilidade

Esforço necessário para modificar um software, seja removendo erros ou melhorando seu desempenho.

Exemplo: o sistema deve permitir adicionar extensões (bibliotecas) sem a necessidade de reiniciar.

Referências: [5, 6, 7]

  Gerenciamento de falhas

Indica a necessidade de gerenciar falhas, como por exemplo, registrar no log as falhas ocorridas no sistema.

Referência: [7]

  Gerência de configuração

Indica a necessidade de controle contínuo das mudanças. Compreende a identificação da configuração, o controle das mudanças efetuadas e a rastreabilidade.

Referências: [5, 6, 7]

  Possibilidade de serviço

Possibilidade de executar determinadas operações na forma de serviços.

Exemplo: o sistema deve possuir um serviço para atualizações automáticas de versões.

Referência: [5]

  Testabilidade

Facilidade em executar testes e encontrar problemas no software.

Exemplo: o sistema deve possuir 80% de cobertura nos testes automatizados.

Referências: [3, 5, 7]

  Modularidade

Capacidade do produto de software ser composto de componentes modulares de forma que uma mudança em um componente tenha impacto mínimo nos outros componentes.

Referência: [3]

  Reusabilidade

Capacidade de um módulo ser utilizado em mais de um produto de software, ou ser utilizado como base para se desenvolver outros módulos.

Referência: [3]

 Portabilidade (3)

Facilidade de transpor um software de um ambiente a outro.

Referências: [1,3,4,7]

  Adaptabilidade

Capacidade do software se adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações).

Exemplo: o sistema deve funcionar em sistemas 32 bits e 64 bits.

Referências: [3, 5]

  Facilidade de substituição

Capacidade e esforço necessário para substituir outro software ou componente, com o mesmo propósito e mesmo ambiente.

Exemplo: as versões disponíveis para o sistema devem ser compatíveis com a versão original.

Referência: [3]

  Facilidade de instalação

Grau de facilidade para instalar e atualizar o sistema ou parte dele.

Referências: [3,5, 6]

 Usabilidade (13)

Grau de facilidade de utilização do software.

Referências: [1,2,3,5,7]

  Acessibilidade

Extensão em que um sistema ou parte dele deve ser acessível por pessoas com certo tipo de deficiência ou outra necessidade específica.

Referências: [3,6,7]

  Ajuda on-line e contextual

Indica a necessidade de ajuda on-line e contextual.

Referência: [5]

  Assistentes e agentes

Indica a necessidade de assistentes e agentes.

Referência: [5]

  Consistência na interface do usuário

Diretrizes gerais aplicáveis à criação da interface do usuário. Exemplo: a interface do usuário deve ser elaborada utilizando o conceito de janelas e menus gráficos.

Referência: [5]

  Estética/fatores humanos

Diretrizes gerais aplicáveis na aparência do software.

Exemplo: utilizar fonte Ariel tamanho 12 na cor preta com fundo claro.

Referência: [3, 5]

  Apreensibilidade

Esforço necessário para aprender a utilizar as potencialidades oferecidas pelo sistema.

Exemplo: em um jogo infantil, haver uma apresentação inicial em que os comandos básicos são apresentados por um personagem.

Referência: [3]

  Inteligibilidade

Indica a facilidade com que o usuário pode compreender as funcionalidades do software e avaliar se elas podem ser usadas para satisfazer suas necessidades.

Exemplo: o sistema deve exibir tooltips sobre os menus e botões com uma breve descrição da funcionalidade.

Referência: [3]

  Manual do usuário

Indica a necessidade de elaboração de manual do usuário.

Referência: [5]

  Materiais de Treinamento

Indica a necessidade de materiais de treinamento.

Referência: [5]

  Múltiplo (suportar múltiplas empresas e moedas)

Especifica que o software deve acomodar múltiplas empresas e moedas ao mesmo tempo.

Referência: [6]

  Internacionalização

Especifica que um sistema deve apresentar sua interface em mais de uma língua.

Referências: [5, 6]

  Operabilidade/operacionalidade

Atributos do software que evidenciam o esforço do usuário para sua operação e controle.

Exemplo: em um sistema para biblioteca, o empréstimo e devolução de um livro devem ser realizados em uma única janela/tela.

Referência: [3]

  Proteção contra erros

Capacidade do sistema proteger o usuário de cometer erros.

Referência: [3]

 Segurança (11)

Especifica os requisitos de segurança.

Referências: [1,2,3,4,6,7]

  Auditoria e Controle

Especificam os aspectos a serem contemplados para viabilizar a auditoria e controle.

Referência: [7]

  Integridade

Capacidade do produto de software prevenir acessos ou modificações de programas de computador ou dados

Referência: [3]

  Contestabilidade e responsabilização

Quantidade de ações ou eventos que podem ter sua ocorrência comprovada, de modo que os eventos ou ações não possam ser contestados mais tarde, bem como registro de ações de uma entidade podendo identificar exclusivamente as ações à uma entidade.

Referência: [3]

   Cronologia (logs)

Especifica a utilização de logs para registrar alterações no software.

Referência: [6]

  Autenticidade

Capacidade do produto de software identificar que um objeto ou recurso é realmente quem ele declara ser.

Referência: [3]

  Confidencialidade/controle de acesso

Capacidade do produto de software de garantir que os dados estarão acessíveis somente aos usuários que possuem autorização de acesso.

Referências: [3,6]

   Registro de usuário

Especifica como novos usuários são registrados.

Referência: [6]

   Autenticação de usuário

Especifica que uma pessoa deve ser autenticada para acessar áreas não públicas.

Referência: [6]

   Autorização específica

Especifica que um conjunto de usuários está autorizado ou não a fazer ou ver coisas.

Referência: [6]

   Autorização configurável

Especifica que a autorização do usuário é configurável.

Referência: [6]

   Aprovação

Especifica que uma determinada ação deve ser aprovada.

Referência: [6]

Requisitos Organizacionais (24)

 Restrições de desenho/projeto (21)

Referências: [5, 4, 7]

  Implantação

Indica como o sistema deverá ser instalado e acessado pela equipe de atualização.

Referência: [2]

  Implementação

Especifica ou restringe a construção de um sistema. Como, por exemplo, a especificação da linguagem de implementação, da arquitetura, do banco de dados, dos ambientes operacionais.

Referências: [1, 5]

  Backup

Especifica as regras para criação dos backups.

Referência: [7]

  Banco de dados

Indica as restrições de banco de dados.

Referência: [4]

   Arquivamento de dados

Especifica a movimentação ou cópia dos dados de um local para outro.

Referência: [6]

   Longevidade do dado

Especifica quanto tempo um dado deve ser mantido ou estar disponível para acesso.

Referência: [6]

   Políticas de integridade de banco de dados

Eestrições sobre políticas de integridade de banco de dados.

Referência: [5]

  Fundamental

Referência: [6]

   Documentação

Especifica o formato e abrangência da documentação.

Referências: [6, 7]

   Referência a requisito

Especificar quais requisitos externos devem ser atendidos como requisitos presentes no projeto.

Referência: [6]

   Tecnologia

Eestringe a utilização de determinada tecnologia.

Referências: [6, 7]

   Linguagens de implementação

Restringe a utilização de determinada linguagem de implementação.

Referência: [5]

   Padrões

Especifica a utilização de determinado padrão.

Referências: [1, 5, 6]

  Hardware

Requisitos de hardware do sistema.

Referência: [2]

  Organização dos requisitos específicos

Requisitos específicos tendem a ser extensivas quando se trata de um sistema não trivial, por isso os requisitos devem ser organizados de uma forma simples de compreender.

Exemplo: organização por módulos.

Referência: [4]

  Requisito físico

Requisitos físicos do produto.

Exemplo: deve ser construído com material resistente a pequenas quedas (até 1 metro), com tamanho não ultrapassando 10x15 cm e peso máximo de 300 gramas.

Referência: [5]

   Material

Restrições quanto aos materiais utilizados no produto.

Referência: [5]

   Forma

Restrições quanto ao formato do produto.

Referência: [5]

   Tamanho

Restrições quanto ao tamanho do produto.

Referência: [5]

   Peso

restrições quanto ao peso do produto.

Referência: [5]

  Restrições de recursos

Especificam as restrições de recursos como, por exemplo, velocidade do processador, memória, espaço em disco, largura de banda de rede, entre outros.

Referências: [5, 7]

 Comerciais (3)

Referência: [6]

  Entrega

Especificam quando o produto e seus documentos devem ser entregues.

Referência: [1]

  Preço

Especificam limites quanto ao preço do produto.

Referência: [7]

  Unidade multi-organizacional

Especifica um tipo de estrutura organizacional que o sistema deve suportar.

Exemplo: o sistema deve ser capaz de suportar múltiplas empresas simultaneamente. Cada empresa terá seus próprios empregados que utilizam o sistema. Uma instalação do sistema deverá acomodar até uma dúzia de empresas.

Referência: [6]

Requisitos Externos (7)

 Legais (6)

Devem ser seguidos para assegurar que o sistema opere de acordo com a lei.

Referência: [1]

  Certificação

Especifica as certificações ou padrões mínimos

exigidos para o funcionamento do sistema.

Exemplo: o sistema deve apresentar o certificado “site blindado”.

Referência: [7]

  Contrato de custódia

Estabelece restrições relativas à custódia

do software.

Referência: [7]

  Privacidade

Estabelece restrições relativas à privacidade do

software.

Referências: [1, 7]

  Questões legais e de licenciamento

Contrato de licença de usuário final ou acordo de licença de software entre o concedente e o comprador, estabelecendo o direito do comprador de utilizar o software.

Referência: [7]

  Ilimitado

Definir que o sistema poderá ser instalado em outras empresas/filiais ou vendido.

Referência: [6]

  Violação de patentes

Estabelece a necessidade de controlar a violação de patentes.

Referência: [7]

 Éticos (1)

Requisitos definidos para garantir a aceitação do software pelos seus usuários e o público em geral. Exemplo: em um sistema médico, o sistema não deve apresentar aos usuários quaisquer dados de cunho privativo.

Referência: [1]