features functional requirements
Ce didacticiel explique les types, les fonctionnalités, la comparaison des exigences fonctionnelles et non fonctionnelles et des exigences métier vs fonctionnelles avec des exemples:
Les exigences fonctionnelles définissent ce qu'un système logiciel doit faire. Il définit une fonction d'un système logiciel ou de son module. La fonctionnalité est mesurée comme un ensemble d'entrées du système testé à la sortie du système.
La mise en œuvre des exigences fonctionnelles dans un système est planifiée dans la phase de conception du système alors que, en cas d'exigences non fonctionnelles, elle est planifiée dans le document d'architecture du système. L'exigence fonctionnelle prend en charge la génération des exigences non fonctionnelles.
Ce que vous apprendrez:
- Exigences fonctionnelles et exigences non fonctionnelles
- Exigences fonctionnelles vs non fonctionnelles
- Conclusion
Exigences fonctionnelles et exigences non fonctionnelles
Exigences fonctionnelles
Comprenons quelles sont les exigences fonctionnelles à l'aide d'exemples-
Exemple: Dans un projet ADAS automobile, une exigence fonctionnelle du système de vision panoramique pourrait être «La caméra arrière devrait détecter une menace ou un objet». Les exigences non fonctionnelles ici pourraient être «la rapidité avec laquelle l'alerte d'un utilisateur doit être affichée lorsqu'une menace est détectée par les capteurs de la caméra».
Prends un autre Exemple du projet des systèmes d'infodivertissement. L'utilisateur active Bluetooth ici à partir de l'IHM et vérifie si Bluetooth est activé ou non. Noter , d'autres services Bluetooth sont activés (du gris au gras) lorsque l'utilisateur active Bluetooth.
comment créer de faux comptes de messagerie
Ainsi, les exigences fonctionnelles parlent d'un résultat système particulier lorsqu'une tâche est exécutée sur eux par l'utilisateur. D'autre part, l'exigence non fonctionnelle donne le comportement global du système ou de son composant et non sur la fonction.
Types d'exigences fonctionnelles
Les exigences fonctionnelles peuvent inclure les composants suivants qui peuvent être mesurés dans le cadre des tests fonctionnels:
# 1) Interopérabilité: L'exigence décrit si un système logiciel est interopérable entre différents systèmes.
Exemple: Pour les exigences fonctionnelles Bluetooth dans le système d'infodivertissement de voiture, lorsque l'utilisateur associe un smartphone Android compatible Bluetooth à un système d'infodivertissement basé sur QNX, nous devrions être en mesure de transférer le répertoire vers le système d'infodivertissement ou de diffuser de la musique de notre appareil téléphonique vers le système d'infodivertissement.
L'interopérabilité vérifie donc si la communication entre les deux appareils différents est possible ou non.
Un autre Exemple provient des systèmes de messagerie comme Gmail. Gmail permet d'importer des e-mails à partir d'un autre serveur d'échange de messagerie comme Yahoo.com ou Rediffmail.com. Cela est possible en raison de l'interopérabilité entre les serveurs de messagerie.
# 2) Sécurité: Le fonctionnel l'exigence décrit l'aspect sécurité des exigences logicielles.
Exemple: Services basés sur la cybersécurité dans le système basé sur une caméra à vision panoramique ADAS qui utilise le Controller Area Network (CAN) qui protège le système contre les menaces de sécurité.
Un autre Exemple provient du site de réseautage social Facebook . Les données d’un utilisateur doivent être sécurisées et ne doivent pas être divulguées à un tiers. Nous espérons que cet exemple de Facebook donnera aux lecteurs un champ de sécurité plus large en raison de l'incidence récente des violations de données sur Facebook et des conséquences subies par Facebook.
# 3) Précision: La précision définit qu'une donnée saisie dans le système est correctement calculée et utilisée par le système et que la sortie est correcte.
Exemple: Dans le Controller Area Network, lorsqu'une valeur de signal CAN est transmise sur le bus CAN par un ECU (c.-à-d. Unité ABS, unité HVAC, unité de tableau de bord, etc.), un autre ECU sera en mesure d'identifier si les données envoyées sont correctes ou non via le contrôle CRC.
Un autre Exemple peut provenir d'une solution bancaire en ligne. Lorsque l'utilisateur reçoit un fonds, le montant reçu doit être exactement crédité sur le compte et aucune variation de précision n'est acceptée.
# 4) Conformité: Les exigences fonctionnelles de conformité valident que le système développé est conforme aux normes industrielles.
Exemple: Si les fonctionnalités des profils Bluetooth (à savoir le streaming audio via A2DP, les appels téléphoniques via HFP) sont compatibles avec les versions de profil de sortie Bluetooth SIG.
Un autre Exemple peut être celui d'Apple Car jouer dans le système d'infodivertissement de voiture. L'application de l'infodivertissement obtient un certificat de Pomme si toutes les conditions préalables mentionnées sur le site Web d'Apple sont remplies par des appareils Car Play tiers (infodivertissement dans ce cas).
Un autre Exemple peut provenir d'une application Web pour le système de billetterie ferroviaire. Le site Web doit suivre les directives de cybersécurité et se conformer au World Wide Web en termes d'accessibilité.
Exemple de formulaire d'exigence:
Nous avons déjà vu ce qu'est l'exigence fonctionnelle avec quelques exemples. Voyons maintenant à quoi ressemblerait une exigence fonctionnelle une fois intégrée dans des outils de gestion des exigences comme IBM DOORS. Il existe plusieurs attributs à prendre en compte lors de la documentation d'une exigence fonctionnelle dans l'outil de gestion des exigences.
Voici quelques attributs à prendre en compte:
- Type d'objet: Cet attribut explique quelle section du document d'exigence fait partie de cet attribut. Il peut s'agir d'en-tête, d'explication, d'exigence, etc. La plupart du temps, la section «Exigence» est considérée pour la mise en œuvre et les tests, tandis que les sections d'en-tête et d'explication sont utilisées comme descriptions de soutien des exigences pour une meilleure compréhension.
- Responsable: Un auteur qui a documenté l'exigence dans l'outil de gestion des exigences.
- Nom du projet / système: Le projet pour lequel l'exigence s'applique, par exemple, «Systèmes d'infodivertissement pour XYZ OEM (Original Equipment Manufacturer) une entreprise automobile ou une application Web pour ABC Banking Limited Company».
- Numéro de version de l'exigence: Ce champ / attribut notifie le numéro de version de l'exigence si l'exigence a subi plusieurs modifications en raison de mises à jour du client ou de changements dans la conception du système.
- ID d'exigence: Cet attribut mentionne l'identifiant d'exigence unique. L'identifiant d'exigence est utilisé pour suivre facilement les exigences dans la base de données et également pour cartographier efficacement les exigences dans le code. Il peut également être utilisé pour fournir une référence aux exigences lors de la journalisation des défauts dans les outils de suivi des bogues.
- Description de l'exigence: Cet attribut est l'un des attributs les plus importants expliquant l'exigence. En lisant cet attribut, un ingénieur serait en mesure de comprendre l'exigence.
- Statut de l'exigence: L'attribut d'état de l'exigence indique l'état d'une exigence dans l'outil de gestion des exigences, c'est-à-dire si elle est acceptée, suspendue, rejetée ou supprimée du projet.
- Commentaires: Cet attribut offre à la personne responsable ou au gestionnaire des exigences une option pour documenter tout commentaire sur l'exigence. Exemple: un commentaire possible pour une exigence fonctionnelle pourrait être «la dépendance à un progiciel tiers pour mettre en œuvre l'exigence».
Un instantané de DOORS
Dériver les exigences fonctionnelles des exigences métier
Ceci est déjà traité dans la section ' Dériver les exigences fonctionnelles des exigences métier ' sous le Analyse des besoins article.
Exigences commerciales vs exigences fonctionnelles
Cette différence est vaguement couverte dans le Analyse des besoins article. Nous essaierons cependant de mettez en évidence quelques points supplémentaires ici dans le tableau ci-dessous:
Sl. Non. | Besoins de l'entreprise | Exigences fonctionnelles |
---|---|---|
7 | Par exemple, dans le système bancaire en ligne, une exigence commerciale pourrait être: «En tant qu'utilisateur, je devrais pouvoir obtenir un relevé de transaction en espèces». | L'exigence fonctionnelle de ce système bancaire en ligne pourrait être: «Lorsque l'utilisateur fournit la plage de dates dans la requête de transaction, cette entrée est utilisée par le serveur et la page Web est fournie avec les données de transaction en espèces nécessaires». |
1 | Les exigences commerciales indiquent «quel» aspect des exigences du client. Exemple, Ce qui devrait être visible pour l'utilisateur une fois que l'utilisateur s'est connecté. | Les exigences fonctionnelles indiquent l'aspect «comment» des exigences commerciales. Exemple, Comment la page Web doit afficher la page de connexion de l'utilisateur lorsque l'utilisateur s'authentifie. |
deux | Les besoins commerciaux sont identifiés par les analystes commerciaux. | Les exigences fonctionnelles sont créées / dérivées par les développeurs / architecte logiciel |
3 | Ils mettent l'accent sur les avantages pour l'organisation et sont liés aux objectifs commerciaux. | Leur objectif est la satisfaction des besoins des clients. |
4 | Les exigences commerciales proviennent du client. | Les exigences fonctionnelles sont dérivées des exigences logicielles, qui, à leur tour, sont dérivées des exigences métier. |
5 | Les exigences commerciales ne sont pas testées directement par les ingénieurs de test logiciel. Ils sont principalement testés par le client. | Les exigences fonctionnelles sont testées par les ingénieurs de test logiciel et ne sont généralement pas testées par les clients. |
6 | L'exigence métier est un document d'exigence de haut niveau. | Une exigence fonctionnelle est un document d'exigence technique détaillé. |
Exigence non fonctionnelle
L'exigence non fonctionnelle indique «ce qu'un système devrait être» plutôt que «ce qu'un système devrait faire» (exigence fonctionnelle). Ils sont principalement dérivés d'exigences fonctionnelles basées sur les commentaires du client et d'autres parties prenantes. Les détails de mise en œuvre des exigences non fonctionnelles sont documentés dans le document d'architecture du système.
Les exigences non fonctionnelles expliquent les aspects qualité du système à construire, à savoir. performances, portabilité, utilisabilité, etc. Les exigences non fonctionnelles, contrairement aux exigences fonctionnelles, sont implémentées de manière incrémentielle dans n'importe quel système.
URPS (Convivialité, fiabilité, performances et supportabilité) de FURPES (Fonctionnalité, utilisabilité, fiabilité, performance et prise en charge) les attributs de qualité qui sont largement utilisés dans l'industrie informatique pour mesurer la qualité d'un développeur de logiciel, sont tous couverts par des exigences non fonctionnelles. En outre, il existe également d'autres attributs de qualité (détails dans la section suivante).
Wikipédia appelle parfois l’exigence non fonctionnelle comme «ilities», en raison de la présence de divers attributs de qualité comme la portabilité et la stabilité.
Types d'exigences non fonctionnelles
Les exigences non fonctionnelles comprennent les sous-types ci-dessous (non exhaustifs):
# 1) Performance:
Un type d'attribut de performance d'exigence non fonctionnelle mesure les performances du système. Exemple: Dans le système de vision surround ADAS, «la vue de la caméra arrière doit être affichée dans les 2 secondes suivant le démarrage de l'allumage de la voiture».
Un autre Exemple des performances pourraient provenir d'un système d'infodivertissement Système de navigation. «Lorsqu'un utilisateur accède à l'écran de navigation et entre la destination, l'itinéraire doit être calculé en« X »secondes». Un de plus Exemple à partir de la page de connexion de l'application Web. 'Temps nécessaire au chargement de la page de profil utilisateur après la connexion.'
N'oubliez pas que la mesure des performances du système est différente de la mesure de la charge. Pendant les tests de charge, nous chargeons le processeur et la RAM du système et vérifions le débit du système. Dans le cas des performances, nous testons le débit du système dans des conditions normales de charge / contrainte.
# 2) Convivialité :
L'utilisabilité mesure la facilité d'utilisation du système logiciel en cours de développement.
Par exemple , une application Web mobile est développée pour vous donner des informations sur la disponibilité des plombiers et des électriciens dans votre région.
L'entrée de cette application est le code postal et le rayon (en kilomètres) de votre emplacement actuel. Mais pour entrer ces données, si l'utilisateur doit parcourir plusieurs écrans et que l'option de saisie de données est affichée dans de petites zones de texte qui ne sont pas facilement visibles pour un utilisateur, cette application n'est pas conviviale et donc la convivialité de l'application sera très lent.
# 3) Maintenabilité :
La maintenabilité d'un système logiciel est la facilité avec laquelle le système peut être maintenu. Si le temps moyen entre les pannes (MTBF) est faible ou le temps moyen de réparation (MTTR) est élevé pour le système en cours de développement, alors la maintenabilité du système est considérée comme faible.
La maintenabilité est souvent mesurée au niveau du code à l'aide de la complexité cyclomatique. La complexité cyclomatique dit que moins le code est complexe, plus il est facile de maintenir le logiciel.
Exemple: Un système logiciel est développé qui a le nombre élevé de codes morts (codes non utilisés par d'autres fonctions ou modules), très complexe en raison d'une utilisation excessive de la condition if / else, de boucles imbriquées, etc. ou si le système est énorme avec des codes en cours d'exécution en plusieurs millions de lignes de codes et pas de commentaires appropriés. Un tel système est peu maintenable.
Un autre Exemple pourrait être une page Web d'achat en ligne. S'il existe de nombreux liens externes sur le site Web afin que l'utilisateur puisse avoir une vue d'ensemble du produit (ceci pour économiser de la mémoire), la maintenabilité de ce site Web est faible. En effet, si le lien de page Web externe change, il doit également être mis à jour sur le site Web d'achat en ligne et cela trop fréquemment.
# 4) Fiabilité :
La fiabilité est un autre aspect de la disponibilité. Cet attribut de qualité met l'accent sur la disponibilité d'un système sous certaines conditions. Il est mesuré en MTBF, tout comme la maintenabilité.
Exemple: Des fonctionnalités mutuellement exclusives telles que la caméra de recul et la remorque dans le système de caméra à vue panoramique ADAS devraient fonctionner de manière fiable dans le système sans aucune interférence les unes avec les autres. Lorsqu'un utilisateur appelle la fonction Remorque, la vue arrière ne doit pas interférer et vice versa car les deux fonctions accèdent à la caméra arrière de la voiture.
Un autre Exemple du système de réclamation d'assurance en ligne. Lorsqu'un utilisateur commence le rapport de réclamation, puis télécharge les notes de frais pertinentes, le système doit laisser suffisamment de temps pour que le téléchargement se termine et ne doit pas annuler le processus de téléchargement rapidement.
# 5) Portabilité:
La portabilité signifie la capacité d'un système logiciel à fonctionner dans un environnement différent si le cadre dépendant sous-jacent reste le même.
Exemple: Le système / composant logiciel d'un système d'infodivertissement développé (c'est-à-dire le service Bluetooth ou le service multimédia) pour un constructeur automobile devrait permettre d'être utilisé dans un autre système d'infodivertissement avec peu ou pas de changement de code, bien que les deux systèmes d'infodivertissement soient entièrement différents .
Prenons un autre Exemple de WhatsApp. Il est possible d'installer et d'utiliser le service de messagerie sur IOS, Android, Windows, tablette, ordinateur portable et téléphone.
# 6) Prise en charge:
L'aptitude au service d'un système logiciel est la capacité d'un service / expert technique à installer le système logiciel dans un environnement en temps réel, à surveiller le système pendant son exécution, à identifier tout problème technique dans le système et à fournir une solution pour résoudre le problème.
La maintenance est possible si le système est développé pour faciliter la maintenance.
Exemple: Fournir une fenêtre contextuelle de rappel périodique à l'utilisateur pour une mise à jour logicielle, fournir un mécanisme de journalisation / trace pour déboguer les problèmes, une récupération automatique après une panne via un mécanisme de retour arrière (ramener le système logiciel à son état de fonctionnement précédent).
Un autre Exemple de Rediffmail. Lorsqu'il y avait une mise à jour de la version du service de messagerie Web, le système permettait à l'utilisateur de passer à une version plus récente du système de messagerie en gardant l'ancienne intacte pendant quelques mois. Cela améliore également l'expérience utilisateur.
# 7) Adaptabilité:
L'adaptabilité d'un système est définie comme la capacité d'un système logiciel à s'adapter aux changements d'un environnement sans aucun changement de son comportement.
Exemple: Le système de freinage antiblocage dans la voiture doit fonctionner selon la norme dans toutes les conditions météorologiques (chaudes ou froides). Un autre Exemple pourrait être celui d'un système d'exploitation Android. Il est utilisé dans différents types d'appareils, à savoir. Smartphones, tablettes électroniques et systèmes d'infodivertissement sont hautement adaptables.
En plus des 7 exigences non fonctionnelles énumérées ci-dessus, nous en avons beaucoup d'autres comme:
Accessibilité, sauvegarde, capacité, conformité, intégrité des données, conservation des données, dépendance, déploiement, documentation, durabilité, efficacité, exploitabilité, extensibilité, gestion des pannes, tolérance aux pannes, interopérabilité, modifiabilité, opérabilité, confidentialité, lisibilité, reporting, résilience, réutilisabilité Robustesse, évolutivité, stabilité, testabilité, débit, transparence, intégrabilité.
La couverture de toutes ces exigences non fonctionnelles sort du cadre de cet article. Vous pouvez cependant en savoir plus sur ces types d'exigences non fonctionnelles dans Wikipédia.
Dérivation d'exigences non fonctionnelles à partir d'exigences fonctionnelles
Les exigences non fonctionnelles peuvent être dérivées de plusieurs façons, mais la meilleure et la plus éprouvée de l'industrie est celle des exigences fonctionnelles.
Prenons l'exemple de nos systèmes d'infodivertissement que nous avons déjà pris à quelques endroits dans cet article. L'utilisateur peut effectuer de nombreuses actions sur le système d'infodivertissement, à savoir. changer la chanson, changer la source de la chanson de l'USB à l'audio FM ou Bluetooth, définir la destination de navigation, mettre à jour le logiciel d'infodivertissement via une mise à jour logicielle, etc.
# 1) Collecte des exigences non fonctionnelles:
Nous listerons les tâches effectuées par un utilisateur, ce qui fait partie des exigences fonctionnelles. Une fois que les actions de l'utilisateur sont notées dans le diagramme de cas d'utilisation UML (chaque ovale), nous commencerons les questions pertinentes (chaque rectangle) sur les actions de chaque utilisateur. Les réponses à ces questions donneront nos exigences non fonctionnelles.
comment ouvrir un fichier .air
# 2) Catégorisation des exigences non fonctionnelles:
La prochaine étape est la catégorisation des exigences non fonctionnelles que nous avons identifiées via des questions. À ce stade, nous pouvons vérifier la réponse possible et classer les réponses en catégories non fonctionnelles possibles ou qualités différentes.
Dans l'image ci-dessous, vous pouvez voir les attributs de qualité possibles identifiés à partir des réponses.
Exigences fonctionnelles vs non fonctionnelles
Nous avons déjà vu ce que sont les exigences fonctionnelles et non fonctionnelles et comment elles sont dérivées. Voyons les principales différences entre les exigences fonctionnelles et non fonctionnelles.
Sl. non | Exigences fonctionnelles (FR) | Exigences non fonctionnelles (NFR) |
---|---|---|
7 | Les exigences fonctionnelles forment le squelette de la mise en œuvre du système logiciel | Les exigences non fonctionnelles complètent le système SW en aidant les exigences fonctionnelles à coller ensemble, comme un muscle. |
1 | Ils disent ce qu'un système devrait faire. | Ils disent ce que devrait être un système. |
deux | Ils sont détaillés dans le document de conception du système. | Ils sont détaillés dans le document sur l'architecture du système. |
3 | Ils parlent du comportement d'une fonction ou d'une fonctionnalité. | Ils parlent du comportement de fonctionnement d'un système entier ou d'un composant du système et non d'une fonction particulière. |
4 | L'utilisateur passera l'entrée et vérifiera si la sortie est correctement affichée. | Lorsque l'utilisateur transmet une entrée, les NFR peuvent répondre aux questions suivantes: i) Combien de temps faut-il pour afficher la sortie? ii) La production est-elle cohérente avec le temps? iii) Existe-t-il d'autres moyens de transmettre le paramètre d'entrée? iv) Est-il facile de passer le paramètre d'entrée? |
5 | Dans une application Web, l'utilisateur doit pouvoir se connecter via l'authentification est FR | Dans une application Web, combien de temps faut-il pour se connecter au site Web, l'apparence de la page de connexion, la facilité d'utilisation d'une page Web, etc. font partie de NFR |
6 | Les exigences fonctionnelles sont d'abord dérivées des exigences logicielles. | Les exigences non fonctionnelles sont dérivées des exigences fonctionnelles. |
8 | Les exigences fonctionnelles peuvent exister sans exigence non fonctionnelle. | Les exigences non fonctionnelles ne peuvent exister sans exigence fonctionnelle. |
9 | Une exigence fonctionnelle donne des informations concrètes sur une fonctionnalité, Exemple , La photo de profil sur Facebook doit être visible lors de la connexion. | Une exigence fonctionnelle peut avoir de nombreux attributs d'exigences non fonctionnelles. Exemple, temps de connexion (performances), aspect et convivialité de la page de profil (convivialité), nombre d'utilisateurs pouvant se connecter à la fois (capacité, performances) |
dix | Il est possible de dériver les exigences fonctionnelles des exigences du logiciel pour presque toutes les exigences de l'entreprise | Les RFN sont souvent omis pour être documentés, car les questions pertinentes ne sont pas posées sur les RF. |
Onze | La mise en œuvre d'une exigence fonctionnelle est normalement effectuée dans une seule version de logiciel. | Les NFR sont mis en œuvre tout au long du cycle de vie du projet jusqu'à ce que le comportement souhaité soit atteint. |
12 | Ceux-ci sont principalement visibles par le client. | Celles-ci ne sont généralement pas visibles pour le client, mais pourraient être vécues à long terme. Exemple, La convivialité, les performances, etc. ne peuvent être expérimentées que sur le long terme, mais ne peuvent pas être visibles du tout. |
Conclusion
Les exigences forment la pierre angulaire du développement de tout système logiciel. Il est possible de construire un système avec des exigences fonctionnelles mais ses capacités ne peuvent être ni déterminées ni mesurées. Cela dit, il est très important d'avoir des exigences fonctionnelles de bonne qualité dérivées d'une exigence commerciale pour avoir un système logiciel de travail de haute qualité.
Par conséquent, les exigences fonctionnelles donnent la direction de la mise en œuvre d'un système logiciel, mais les exigences non fonctionnelles déterminent la qualité de la mise en œuvre que les utilisateurs finaux connaîtront.
lecture recommandée
- Comment tester la spécification des exigences logicielles (SRS)?
- Test fonctionnel vs test non fonctionnel
- Comment tester une application sans exigences?
- Qu'est-ce que l'analyse et la collecte des exigences dans SDLC?
- 5 erreurs mortelles dans la gestion des exigences et comment les surmonter
- Caractéristiques des exigences fonctionnelles et des exigences non fonctionnelles
- Comment créer une matrice de traçabilité des exigences (RTM): exemple et modèle d'échantillon
- Top 20+ meilleurs outils de gestion des exigences (la liste complète)