Spécification (norme technique)

Un article de Wikipédia, l'encyclopédie libre.
Sauter à la navigation Sauter à la recherche
Page d'aide sur l'homonymie Pour les articles homonymes, voir Spécification.
Exemple de spécifications relatives à un appareil de sécurité.
Plaque de spécifications d'un camion.

Une spécification est un ensemble explicite d'exigences à satisfaire par un matériau, produit ou service. Si un matériau, produit ou service ne parviennent pas à satisfaire à une ou plusieurs des spécifications applicables, il peut être désigné comme étant hors spécification.

Une spécification technique peut être développée en privé, par exemple, par une société, un organisme de réglementation, ou une organisation militaire, ou bien elle peut être développée par des organismes de normalisation qui sont souvent plus amenés à développer des normes volontaires (ces normes volontaires pouvant devenir obligatoires si elles sont adoptées par un du gouvernement ou un contrat d'entreprise).

Attentes et exigences exprimées dans l'étude préalable[modifier | modifier le code]

La phase de spécification doit être précédée par une étude préalable, qui décrit l'existant et les attentes et exigences générales exprimées par les utilisateurs pour le domaine à informatiser.

Les spécifications reprendront ces exigences pour les décrire plus en détail.

Un exemple d'attente à prendre en compte à ce stade est la langue du logiciel, qui doit être adaptée à l'utilisateur. Dans le cas où l'on s'oriente vers un progiciel, il faut s'assurer qu'il est possible et peu coûteux d'adapter les pages-écran, les états, la documentation utilisateur et les aides en ligne à la langue de l'utilisateur. Ces exigences seront détaillées en phase de spécifications.

Typologie[modifier | modifier le code]

Spécification fonctionnelle[modifier | modifier le code]

Article détaillé : Spécification fonctionnelle.

Rédigée par un analyste fonctionnel, la spécification fonctionnelle décrit les processus métier dans lesquels le produit informatique devra intervenir. Les tâches prises en charge par le produit informatique, son interaction avec les autres intervenants — utilisateurs et autres produits — et les règles des interactions.

Exemple : le calcul de prévision se base sur une date. Seule une date future est autorisée. Si l'utilisateur entre une date passée, alors le logiciel devra afficher un message « date non autorisée ».

Il existe deux niveaux de spécifications fonctionnelles :

Spécification d'architecture[modifier | modifier le code]

Article connexe : Architecture informatique.

Rédigée par un architecte informatique, la spécification d'architecture décrit le système informatique dans lequel le produit sera implanté, son interaction avec les autres composants du système informatique – par exemple SGBD. La spécification d'architecture décrit également l'organisation générale du produit informatique, sa subdivision en modules et en couches.

La spécification d'architecture est quelquefois appelée étude technique dans la méthode Merise. L'étude technique décrit sous l'angle technique le système à développer (les langages informatiques, les caractéristiques des bases de données, les champs, les consignes, etc.).

La spécification d'architecture ou l'étude technique ne sont pas toujours vraiment nécessaires, si l'application à développer est de taille modeste et s'inscrit dans un cadre de développement plus large, en particulier dans une organisation où les standards techniques sont déjà définis. De bonnes spécifications détaillées peuvent alors suffire.

Utilisation[modifier | modifier le code]

  • Pour l'utilisateur : la spécification explique en détail les attentes du futur utilisateur, le produit qu'il espère voir être construit.
  • Pour le budget et le planning : la spécification sert de base pour calculer le coût de réalisation et la durée, informations clés pour établir le budget et le planning.
  • Pour le développeur : la spécification fonctionnelle explique le but à atteindre et la spécification d'architecture explique les moyens techniques à mettre en œuvre pour y parvenir.
  • Pour la garantie : une demande de modification pourra être faite sous garantie du moment que cette demande est déjà expliquée dans les documents de spécification — voir Bug informatique.

Exemples[modifier | modifier le code]

Validation de spécification[modifier | modifier le code]

Quand on se demande si le texte formel « dit bien » ce que l'on veut qu'il dise, s'il « traduit » bien la demande informelle faite par celui qui commande le logiciel, on dit que l'on fait de la validation. La validation ne peut pas être automatisée.

Ou bien, lorsque celui qui commande le logiciel le fait de manière formelle (par exemple pour un avion, une exigence formelle pourrait être que l'« accélération ne dépasse pas une certaine valeur », ce qui traduit formellement la phrase informelle « l'avion ne se crashe pas ») (par exemple, par un modèle mathématique non implémentable directement (du fait qu'il n'existe pas de compilateur (traducteur automatique) permettant de traduire un modèle écrit dans ce langage mathématique vers un code écrit en langage d'implémentation, ou langage d'automatisation de la construction et du montage pour la partie mécanique)), alors on parle de validation du modèle lorsque l'on vérifie la cohérence (la non-contradiction) du système ou que l'on prouve (à l'aide d'un logiciel assistant de preuve) que, sous réserve que les variables externes du système (ex. : température) restent bien dans une plage correspondant à une utilisation réaliste, les états possibles du système restent bien parmi les états admis par les contraintes définies dans la spécification (en reprenant l'exemple de l'avion : un état possible peut être la variable d'état « accélération » du système) (la validation peut aussi consister à passer des tests sur une simulation issue du modèle issu de la spécification, ces tests peuvent permettre de détecter des erreurs de la spécification).

Notes et références[modifier | modifier le code]


Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]