Qual é a diferença entre um requisito não funcional e um atributo de qualidade?

13

Estou tentando entender a diferença entre requisitos não funcionais e atributos de qualidade. Eles são a mesma coisa?

Você pode encontrar um conjunto de atributos de qualidade no padrão ISO9126.

Eu sei que cada sistema é definido por um conjunto de requisitos funcionais e cada um desses requisitos associou um ou mais atributos de qualidade. Por exemplo, suponha que você tenha o requisito que descreve a funcionalidade de login de um sistema. Você pode associar a esse requisito os atributos de segurança e desempenho.

Se eu disser que o sistema não pode demorar mais de 1 segundo para responder, estou falando de uma restrição.

Então, onde entra o conceito de requisitos não funcionais? Eles são definidos pelos usuários? Como posso identificá-los?

Hugo Assanti
fonte
3
Para responder sua pergunta: sim, requisitos não funcionais e atributos de qualidade são a mesma coisa.
devorado elysium

Respostas:

9

Eu acho que você está pensando sobre isso um pouco demais. Os requisitos funcionais e não funcionais não são realmente tão separáveis ​​quanto você sugere. Veja o caso de login, por exemplo.

O usuário será capaz de fazer login através de uma interface web. Tecnicamente, esse é um requisito funcional.

O sistema DEVE responder às solicitações de login dentro de 1 segundo. Tecnicamente, esse é um requisito não funcional.

De qualquer maneira, ambos são igualmente importantes, independentemente da classificação específica.

Os requisitos podem vir de qualquer número de lugares. Você pode querer ter um desempenho melhor do que um concorrente. Um cliente pode ter necessidades específicas. Pode haver uma solicitação de marketing ou vendas. Não há um lugar de onde eles vieram. No entanto, você provavelmente poderia abstrair todas as fontes diferentes e se referir a elas como clientes. Em última análise, é isso que eles são.

Você pode identificar a diferença usando a seguinte métrica. Os requisitos funcionais descrevem o que um sistema fará. Um requisito não funcional especifica como ele o faz.

Pemdas
fonte
9

A regra é simples e clara.

Requisitos funcionais são coisas que o sistema faz .

Requisitos não funcionais são atributos de qualidade ou aspectos de como o sistema é projetado, construído ou implementado.

  • Desempenho (1 segundo)
  • Manutenção
  • Adaptabilidade
  • Custo
  • segurança
  • usabilidade (que é uma propriedade do sistema como um todo)
  • testabilidade
  • escalabilidade

Leia isso. Está muito claro. http://en.wikipedia.org/wiki/Non-functional_requirement

Os requisitos não funcionais aparecem da mesma forma que os requisitos funcionais. Comercial. O contexto em que o sistema será implementado. Muitos lugares. Gestão. Outras organizações. Administradores de rede, administradores de sistema, administradores de banco de dados. Todo mundo que é uma parte interessada ou apenas um espectador contribuirá com requisitos não funcionais.

Ao examinar os "documentos de requisitos" nos últimos 30 anos, posso dizer isso. Muitos documentos de requisitos escritos por grandes organizações de TI internas são declarações políticas com talvez 80% de requisitos não funcionais e menos de 20% de requisitos funcionais.

Eu li uma que tinha uma única frase que era um requisito funcional. O restante do documento de 30 páginas falava sobre plataforma, suporte, backups e restaurações, sistemas operacionais e bancos de dados, padrões e operações, além de muitas coisas que o sistema não fazia .

S.Lott
fonte
LOL, eu tive a experiência oposta de muitos requisitos funcionais e não-funcionais até que o sistema esteja pronto e não seja rápido o suficiente (ou seguro o suficiente etc.), mas nossos requisitos são escritos por pessoas no lado do negócio.
HLGEM
4

Os requisitos não funcionais e os atributos de qualidade são um e o mesmo

A idéia por trás da mudança de nome nos últimos tempos é que, esses chamados requisitos não funcionais são, de fato, a funcionalidade do sistema (ou um conjunto de funcionalidades do sistema) que tem um impacto transversal no sistema. Ou seja, o impacto transversal que esse tipo de "funcionalidade especial" tem em um sistema faz dele um Atributo de Qualidade desse sistema. Como um exemplo:

Um sistema com 5 componentes deve processar uma solicitação em 10ms. Se um componente tiver um defeito que demora 5ms para fazer sua parte no processamento, isso afetará o desempenho do sistema como um todo.

Assim como a segurança não é apenas um login e quando é afetado, afeta todo o sistema.

Resumindo, os atributos de qualidade (ou seja, requisitos não funcionais) são sobre funcionalidade, como você implementa algo e como essa implementação afeta seus sistemas. Normalmente, a diferença para os "requisitos normais" está em seu impacto, alcance e visibilidade.

Aqui está um link interessante sobre como identificá-los de maneira estruturada:

E um livro sobre como documentá-los e defini-los corretamente:

mimsugara
fonte