Requisito de produto
Referências: [?]
Confiabilidade: 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]
Disponilidade: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ências: [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 da falha: Frequência e gravidade de falhas encontradas.
Referência: [5]
Compatibilidade: 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.
Analisar: (i) Compatibilidade entre softwares, ferramentas e normas; (ii) Compatibilidade entre plataformas; e (iii) Compatibilidade com ambientes operacionais.
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: 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: 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ências: [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ências: [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ências: [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ências: [3]
Portabilidade: 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ências: [3]
Facilidade de instalação: Grau de facilidade para instalar e atualizar o sistema ou parte dele.
Referências: [3, 5, 6]
Usabilidade: 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ências: [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ências: [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: 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
Referências: [1, 3, 7]
Restrições de desenho/projeto
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: Restrições sobre políticas de integridade de banco de dados.
Referência: [5]
Fundamental
Referências: [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: Restringe 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: [6]
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:
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ências: [6]
Requisitos Externos
Referências: [1, 3, 7]
Legais: 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ências: [7]
Ilimitado: Definir que o sistema poderá ser instalado em outras empresas/filiais ou vendido.
Referências: [6]
Violação de patentes: Estabelece a necessidade de controlar a violação de patentes.
Referências: [7]
Éticos: 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]