Pour les articles homonymes, voirSpécification.
Unespé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 desorganismes 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).
La phase de spécification doit être précédée par uneétude préalable, qui décrit l'existant et les attentes etexigences 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 lalangue du logiciel, qui doit être adaptée à l'utilisateur. Dans le cas où l'on s'oriente vers unprogiciel, il faut s'assurer qu'il est possible et peu coûteux d'adapter lespages-é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.
Rédigée par unanalyste fonctionnel, la spécification fonctionnelle décrit lesprocessus 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 :
Rédigée par unarchitecte 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 exempleSGBD. 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éthodeMerise. 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.
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 unmodè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 celangage 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 logicielassistant 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).
Éléments deprogrammation informatique | |||||||||
---|---|---|---|---|---|---|---|---|---|
Bibliothèque logicielle | |||||||||
Vocabulaire |
| ||||||||
Code source |
| ||||||||
Outil de développement | |||||||||
Folklore | |||||||||
Catégories : |