Validation de la spécification
Les exigences influent toutes les phases de développement du Selon IEEE 610.12, une exigence est :
logiciel : Une condition ou une capacité nécessaire à un utilisateur pour
o Architecture du système résoudre un problème ou atteindre un objectif
o Conception Une condition ou une capacité que doit posséder un système afin
o Définition des tests de satisfaire aux termes d'un contrat, d’une norme ou d’une
o Validation spécification formellement imposée.
1
Définition du terme spécification Catégorisation des spécifications
5 6
Selon IEEE 830 une spécification d’exigences comprend : Deux points de vue dans la description d’un système :
Les fonctionnalités : services et fonctions que le système doit
Point de vue externe celui des utilisateurs non
fournir.
informaticiens, des décideurs :
Les interfaces externes : identification des interactions avec les
utilisateurs et les autres systèmes avec lesquels le nouveau système o On définit une spécification des besoins : une description
doit s'intégrer. de haut niveau d’abstraction des services que doit rendre le
La performance : contraintes d'opération du système en système et les contraintes sous Lesquelles il opère.
disponibilité et en temps réponse.
Point de vue interne celui des concepteurs, du personnel
Les attributs du système : caractéristiques intrinsèques telles que la
portabilité, l'exactitude, la maintenabilité, la sécurité, etc. technique :
Les contraintes de conception : contraintes sur la façon de o On définit une spécification du système : une description
développer le système. la plus précise possible du système qui doit être réalisé.
2
Exigences fonctionnelles Propriétés des exigences
9 10
o Le système doit fournir la facture des ventes toujours sur la o Absence de conflits et de contradictions dans les
base d’une commande client descriptions des fonctionnalités et services du système
o Le logiciel ne doit accepter que les règlements par chèque Dans la pratique, il est difficile de produire un
o Le logiciel doit afficher la liste des produits achetés par document des besoins complet et cohérent
client
o Le logiciel doit afficher la liste des factures non réglées
Exigences produits :
o Spécifient que le logiciel produit doit se comporter
avec une manière particulière exp: vitesse d’exécution,
fonctionnel sur plusieurs plateformes, etc.
Exigences organisationnelles :
o Résultent des contraintes d’ordre politiques et
organisationnel
Exigences externes
o Proviennent de facteurs externes au système et au
processus de développement. Ex: législation.
3
Exigences orientés-produit Exigences orientés-produit
13 14
Propriété Mesure
Maintenabilité : modifications de fonctionnalités,
Vitesse Nombre de transactions par second (instruction/ seconde)
corrections Temps de réaction
Temps de rafraîchir l’écran
Lisibilité : code, documents
Taille Kbytes, Mbytes, GBytes
Testabilité : facilité à tester Facile pour utiliser Temps pour formation
Nombre d’écrans pages d’aide
Compréhensibilité : conception, architecture et code
Fiabilité Temps moyen sans panne
facile à comprendre/apprendre Probabilité de refus d’accès
Fréquence d’apparition d’erreurs
Intégrabilité : facilité à intégrer des composantes Disponibilité
Complexité : degré d’interaction entre modules Robustesse Temps de restart après une panne.
Pourcentage des événements causant une panne
Probabilité de perte ou corruption des données
Portabilité Pourcentage des instructions qui son machine dépendantes.
Nombre de systèmes cibles
4
Définition de l’ingénierie des besoins
17 18
Etude de faisabilité
o Vision, besoin ou opportunité d’affaire, étendue du système,
risques, etc.
Explicitation et analyse des exigences
o Les exigences sont découvertes en consultant (et parfois
même en provoquant) les diverses parties prenantes.
o Les exigences sont analysées et les conflits résolus, souvent
par négociation.
Spécification des exigences
o Un document précis décrivant les exigences est produit.
5
Processus de l’ingénierie des besoins Étude de faisabilité
21 22
Il faut déterminer les personnes intéressées par le système L’analyse des besoins a lieu une fois que l’étude de
(stakeholders) et procéder à une extraction d’information faisabilité a reçu une réponse positive.
Exemples de questions à poser :
On doit alors expliciter et analyser les besoins.
o Que feriez-vous si le système n’était pas implémenté ?
o Quels sont les problèmes avec les systèmes existants ?
o Il s’agit d’une extraction minutieuse d’information.
o Pourquoi un nouveau système améliorerait cette situation ?
o Quelle contribution directe apporterait un tel système sur votre Il est nécessaire de :
travail ?
o Définir les personnes affectées (stakeholders) par le
o Est-ce que des informations sont partagées avec des systèmes
système
externes ?
o Est-ce que le système nécessiterait une technologie inconnue des o D’évaluer leurs besoins par ordre d’importance
utilisateurs ? Quel serait du ressort du système et qu’est-ce qu’il
ne le serait pas ?
6
Identification des exigences et leur analyse Identification des exigences et leur analyse
25 26
L’identification des exigences est liée à chaque domaine de systèmes Le travail est itératif et peut se poursuivre en parallèle avec le
(banques, automobile, commande d’installation industrielle, BD, début des autres étapes du cycle de développement.
multimédia...). Beaucoup de praticiens dans le GL conseillent l’identification
Les questions à se poser pour déterminer ce que doit faire le système sont
des scénarios de fonctionnement du système (cas d’utilisation
d’UML) pour mieux voir les interactions du système avec son
donc étroitement liées à la nature du système :
environnement et les interactions entre les sous-systèmes.
o Il faut être capable de répertorier les exigences,
Certains scénarios (cas courants d’utilisation) sont souvent
o les classer par catégorie, faciles à déterminer
o leur donner des priorités, D’autres scénario au contraire ne peuvent être identifiés que
o Et de déterminer à ce niveau les liens entre les différentes exigences, très tard dans le cycle de vie ou carrément une fois que le
système réalisé se trouve en situation d’échec (on ne peut pas
tout prévoir !)
L’équipe responsable de l’analyse des exigences doit alors : Les difficultés de l’interaction avec les personnes
affectées par le système sont multiples :
o Communiquer avec d’autres équipes
o Elles sont pour la plupart étrangères à l’informatique et
o Utiliser leur savoir-faire, décrivent donc leur interaction avec le système en utilisant
des termes imprécis
o Eviter les erreurs commises dans d’autres projets
o Elles n’ont pas de notion de ce qui est réalisable ou non.
o Identifier des exigences même de manière partielle, voire o Elles n’ont pas conscience de la connaissance implicite sur
très incomplète, en identifiant des aspects au sujet desquels leur travail qu’elle véhicule dans leur discours.
le client ne connaît pas encore ce qu’il souhaite, o Les différentes stakeholders ont des besoins et des points de
vue différents (conflictuels), sur le système et la
o Marquer ces exigences et revenir sur ces aspects plus tard. hiérarchisation des fonctionnalités.
(Ainsi, c’est mieux que de les ignorer totalement). o Des considérations politiques peuvent rentrées en jeu.
o En d’autres termes, il faut prévoir des changements dans la o L’environnement économique, par définition changeant,
spécification des exigences, voire des zones d’ombre joue un rôle important sur l’évolution possible du système.
7
Spécification des exigences Validation de la spécification
29 30
Après avoir identifié et classé les exigences, il faut utiliser La validation de la spécification vise à montrer que
des techniques formelles ou non pour spécifier ces
exigences. les besoins explicités correspondent effectivement à
La spécification consiste à : ceux des utilisateurs du système.
o Décrire les exigences en vue d’une utilisation dans les phases Elle sert aussi à débusquer les erreurs dans le
suivante du cycle de développement. cahier des charges
o Construire une représentation tangible (un document) des
besoins, Dans le cas général, détecter une erreur dans la
La tendance est de plus en plus vers l’utilisation de spécification une fois que la conception, le
techniques formelles (ou au moins semi-formelles) pour développement et la validation du système sont
spécifier les exigences.
Un document précis décrivant les exigences est produit au cours de
terminés impliquent une nouvelle passe sur plusieurs
cette phase . phases
8
Points de vérification Management d’une spécification
33 34
o Contrôle de cohérence : est-ce que certaines exigences ne Garder une trace de l’évolution d’une spécification est
sont pas en conflit ou contradictoires avec d’autres ? essentiel car elle peut servir à justifier les choix qui ont été pris
o Contrôle de complétude : est-ce tout ce dont a besoin a été (Eviter de revenir en arrière dans le développement)
dit pour concevoir et réaliser le système ? Maintenir une dépendance entre les différentes parties de la
spécification permet de déterminer rapidement les parties
o Contrôle de réalisme : est-ce les objectifs fixés peuvent être
impactées par une modification ou la prise en compte d’une
atteints avec les technologies ciblées ? meilleure compréhension d’un point donné.
o Vérifiabilité : pour éviter les malentendus avec le client, Lorsqu’une modification de la spécification est issue d’une
contrôler si tout a été écrit de manière à pouvoir vérifier évolution du logiciel, on peut évaluer les coûts et les
assertions (affirmations, dires, discours...) des uns et des conséquences en termes de modifications de l’implémentation
autres. Cette vérifiabilité est facilitée par l’utilisation de plus efficacement.
méthodes de spécification formelles.
Références
35