2015-03-13 1 views
0

J'écris un document besoins des utilisateurs pour une application. J'ai distingué deux chapitres: un pour besoins fonctionnels et un autre pour besoins non fonctionnels.Est-ce que je mets les parties suivantes dans "besoins non fonctionnels"?

Dans les besoins fonctionnels, j'ai énuméré une liste de spécifications fonctionnelles. En fait, je suis confronté à la situation suivante: Je dois parler:

  • Interface utilisateur
  • Performance
  • sécurité
  • Format des données

Dois-je mettre ces pièces en Besoin non fonctionnel?

Répondre

1

Cette question (et ma réponse) est plutôt subjective car les gens peuvent avoir des opinions différentes et il n'y a pas de véritable norme acceptée ici mais j'essaie néanmoins d'expliquer mon raisonnement.

Le format de données requis (ou implémenté) est définitivement une exigence fonctionnelle car il définit la façon dont votre application communique avec les autres. Les autres exigences sont traditionnellement considérées comme non-fonctionnelles mais dans la pratique, vous pouvez obtenir un peu philosophique ici car il n'y a pas de réponse unique.

Traditionnellement, des éléments tels que la performance, la sécurité ou l'apparence d'une application étaient considérés comme des exigences non fonctionnelles et ont donc été rétrogradés de manière efficace vers l'arrière-pensée ou la convivialité. À mon avis, c'est fondamentalement faux. Par extension, je pense que cette distinction est erronée et ne devrait pas être faite en premier lieu. Selon votre application, différentes choses (ou fonctionnalités) sont plus importantes que d'autres, mais souvent, les exigences traditionnellement non fonctionnelles peuvent faire ou défaire une application. Par exemple, un système de messagerie peut être aussi beau que possible, s'il n'est pas sécurisé et s'il fuit des messages, il est inutile. De même, un jeu informatique rapide et sécurisé, mais qui n'a pas l'air sympa et n'est pas facile à comprendre ne vaudra probablement pas grand-chose (il y a des exceptions). Ainsi, les exigences traditionnellement non fonctionnelles peuvent très bien constituer une partie importante de la fonctionnalité fournie.

Le meilleur exemple est ce même site Web où vous posez votre question. L'exigence principale non fonctionnelle est la performance. Il est généralement considéré comme agréable d'avoir, non planifié dans le produit et non considéré comme une fonctionnalité de base. Sur Stack Overflow (et d'autres sites d'échange de pile), les performances sont considérées comme l'une des principales caractéristiques et les développeurs considèrent qu'une page lente n'est pas fonctionnelle.

Un autre exemple est dans l'espace UI/UX. Généralement, vous avez considéré le comportement d'une interface utilisateur (la fonction) séparé du look (la non-fonction). Mais si vous regardez par exemple applications de smartphone ou applications web, vous trouverez souvent que l'expérience de l'utilisateur est définie à la fois par le comportement exact et la conception qui ne peuvent pas être séparés car les deux sont fortement connectés et affectent de manière significative les uns les autres. Ainsi, pour ma conclusion: Vous devriez réfléchir à vos besoins réels en termes de ce que vous voulez que votre application fournisse. La distinction entre fonctionnel et non-fonctionnel est plutôt inutile car elle ne vous aide pas à définir ce qui est important et ce qui ne l'est pas.Au lieu de cela, se concentrer sur vos valeurs et de définir l'expérience utilisateur que vous souhaitez fournir (à la fois pour les utilisateurs finaux ainsi que les développeurs, les administrateurs, ...)

+0

Merci pour cette explication, je retiens une chose importante: je dois mettre l'accent sur le contenu, ne pas déranger moi-même avec fonctionnel et non fonctionnel parce que la limite n'est pas si croquante :) –

+0

Pouvez-vous suggérer une référence à maîtriser l'écriture de * document sur les exigences de l'utilisateur *? –

+0

Voici une source simple mais très efficace. http://reqtest.com/requirements-blog/functional-vs-non-functional-requirements/ – unknown

1

Je suis d'accord avec @ (Just Holger) surtout avec

Traditionnellement, des éléments tels que la performance, la sécurité ou l'apparence d'une application étaient considérés comme des exigences non fonctionnelles et ont donc été rétrogradés de manière efficace vers les idées après coup ou des objets de valeur.

Cependant, je voudrais ajouter quelques notes.

La distinction entre test fonctionnel et test non fonctionnel est parfois utile. Les domaines de test de performance et de sécurité sont différents du domaine de test fonctionnel. Ces tests non fonctionnels sont généralement inclus dans la discipline des tests spéciaux et nécessitent des compétences techniques différentes et parfois organisées dans les différentes équipes. Par exemple, le test de performance nécessite des connaissances dans les outils et techniques de test de performance (comme JMeter et/ou CPU et les profileurs de mémoire). Le test de sécurité est également un grand domaine et inclut des connaissances sur la modélisation des menaces et les tests de pénétration. Je voudrais également distinguer entre les bogues grossiers dans les performances et la sécurité qui ont une influence sur la fonctionnalité du produit et les tests de performance et de sécurité qui permettent de comprendre le niveau de produit dans ces domaines. Par exemple, le test de performance lancé chaque génération peut indiquer une dégradation du produit de performance (même en 10 ms) qui n'est généralement pas mesurable dans les tests fonctionnels.