- Specification (informatique)
-
Spécification (informatique)
En génie informatique, la spécification est un ensemble de documents qui - par des textes et des diagrammes - décrit de manière formelle et exhaustive le produit informatique à réaliser. La rédaction de la spécification est la première étape du développement d'un logiciel.
Chaque document de spécification est rédigé soit par un analyste fonctionnel, soit par un architecte, puis validé par le client - futur utilisateur du produit. Les documents serviront de référence pour la construction, ainsi que le budget, le planning, et la garantie du produit.
Sommaire
Les différents types de spécifications
Spécification fonctionnelle
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 sortes de spécifications fonctionnelles :
- Les spécifications fonctionnelles générales décrivent les différentes procédures d'un même processus métier (les cas qui peuvent se présenter), ainsi que le modèle conceptuel, le modèle logique, et le modèle physique des données associés ; elles sont généralement élaborées par la maîtrise d'ouvrage,
- Les spécifications fonctionnelles détaillées décrivent dans le détail les opérations et les tâches à exécuter par les utilisateurs, ainsi que la description détaillée du contenu des bases de données ; elles sont généralement élaborées par la maîtrise d'œuvre.
Spécification d'architecture
Rédigée par un architecte, 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…).
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 de la spécification
- 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 oeuvre 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 bogue.
Exemples
Validation de spécification
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.
Formel vs rigoureux
Celui qui prouve fait un raisonnement formel. Celui qui spécifie en disant « il est évident que » et en sautant des étapes dans ses preuves, fait un raisonnement rigoureux. Autre exemple : On peut faire une spécification formelle en B. Puis faire un développement (passage au code exécutable) rigoureux.
L'écriture des commentaires d'une spécification formelle
Les commentaires d'une spécification formelle sont écrits en langage naturel, mais en évitant les irrégularités[1].
Mais celles-ci ne sont pas toujours un défaut !
- le bruit, information non nécessaire au moment où elle est donnée
- le silence, notions introduites sans définition (un peu comme une non-déclaration de variable)
- la contradiction
- la sur-spécification : en dire trop. Par exemple, traiter d'implémentation alors qu'on n'a pas spécifié la fonction que l'on veut implémenter.
- l'ambiguïté, c'est-à-dire un énoncé à interprétations multiples
- la référence en avant (n'est pas forcément mauvaise !), on mentionne des concepts dont la définition sera fournie plus loin. Par exemple, un sommaire est fait de référence en avant !
Notes et références
- ↑ Toussaint Y. , Méthodes informatiques et linguistiques pour l'aide à la spécification de logiciel, oct. 1992, Thèse U.P.S. Toulouse
Voir aussi
Liens internes
- Exigence
- Gestion des exigences, notamment pour connaître les outils de développement (spécification, ...) et de gestion des exigences.
Liens externes
- Norme 830 de IEEE (IEEE Std 830, IEEE Recommended Practice for Software Requirements Specifications) [1]
- Norme 1233 de IEEE (IEEE Std 1233, IEEE Guide for Developing System Requirements Specifications) [2]
- Guide ASD-STE100 (ASD Simplified Technical English Specification; anciennement AECMA PSC-85-16598)
- Article Savoir exiger, publié dans la revue Direction informatique [3]
- Article Ingénierie des exigences - Une méthode simple et systématique, publié dans la revue canadienne de l'IEEE [4]
- Portail de la programmation informatique
Catégories : Méthode formelle | Programmation informatique
Wikimedia Foundation. 2010.