Projet
Mémoire : Projet. Rechercher de 53 000+ Dissertation Gratuites et Mémoirese la définition du logiciel
Conduite de Projet Logiciel
Problématique de communication
ANALYSER & COMPRENDRE le discours de l’utilisateur REDUIRE LA COMPLEXITE en quantifiant/modélisant/structurant FORMALISER ET COMMUNIQUER clairement EXPRIMER précisément les
EXIGENCES
Conduite de Projet Logiciel
La spécification: Questions posées
A QUEL USAGE EST DESTINE LE LOGICIEL ?
• • • • • • •
Quel est son environnement d’exploitation? Quelles sont ses fonctions ? Quelles sont ses limites et restrictions?
QUELLES SONT LES INFORMATIONS QUE LE LOGICIEL DOIT TRAITER ?
Quelles sont les données à prendre en considération? Comment faut-il les représenter? Quels sont les processus qui régissent le fonctionnement? Quels sont les sollicitations et les critères de décision ?
QUEL DOIT ETRE LE COMPORTEMENT DU LOGICIEL?
Conduite de Projet Logiciel
Cadre contractuel de la spécification
Le but de la spécification est de Traduire les besoins des utilisateurs du logiciel en exigences techniques (fonctionnelles, d'environnement, de qualité,...) exploitables par le développeur. Définir les clauses techniques du contrat passé entre le demandeur et le développeur. Etablir une référence pour la validation et le prononcé de qualification du logiciel.
LA SPECIFICATION DOIT DONC OBLIGATOIREMENT ET EN TOUTE CONNAISSANCE DE CAUSE FAIRE L'OBJET D'UN ACCORD ENTRE LE CLIENT ET LE FOURNISSEUR
Conduite de Projet Logiciel
Contre exemple
Soit le texte suivant, extrait d'un cahier des charges:
(...) Les transactions d'interrogation-réponse véhiculent des articles. Ces articles sont mémorisés sur les mémoires d'une façon ou d'une autre. On décrit la façon dont ils doivent apparaître à l'extérieur. Un article se présentera comme une chaîne de champs ordonnés séparés par des drapeaux. Il existera un minimum de 20 drapeaux parmi lesquels: MA Magasin CD Code denrée TP Taille ou pointure DL Délai de livraison PU Prix unitaire (...) Les drapeaux seront codés sur 2 octets: un octet drapeau et un octet désignateur de drapeau. Chaque champ sera rédigé en caractères de saisie dont la liste est jointe avec les codes correspondants. (...) Certains champs des articles seront obligatoires, d'autres facultatifs. Certains champs distincts dans la liste ci-dessus peuvent en fait être confondus en un champ unique: par exemple CD - TP peuvent être remplacés par un code numérique unique (...)
Conduite de Projet Logiciel
Description fonctionnelle
Utilisateurs potentiels :
désignation et caractérisation des utilisateurs du logiciel développé
Environnement de mise en œuvre :
contexte d’utilisation ou d’exploitation du logiciel (description sommaire de la plate-forme cible, lieu physique d’implantation, exigences d’interactions avec d’autres systèmes, etc.)
Cas d’utilisation / scénarii clients: 1) Liste des différents types d’usage auxquels est destiné le produit = cas dans
lesquels le produit peut rendre service à un utilisateur
Diagramme UML ou expression sous la forme d’une phase courte commençant par « L’utilisateur X devra pouvoir …. ». Par exemple : « L’administrateur devra pouvoir installer une nouvelle base de données ».
2) Hiérarchisation en concertation avec le client (compromis priorité/difficulté) 3) Description détaillée de chaque cas d’utilisation sous la forme d’un scénario.
Conduite de Projet Logiciel
Qualités d’une spécification
COMPLETE MODIFIABLE TRACABLE COHERENTE VERIFIABLE NON AMBIGUE PRECISE
Conduite de Projet Logiciel
Complétude (auto-suffisance)
Une spécification est complète si, et seulement si, elle satisfait les 4 conditions suivantes:
Elle contient la définition de toutes les exigences relatives aux aspects fonctionnels et opérationnels, de toutes les interfaces externes et toutes les contraintes de conception. Elle contient la définition de réponses fournies par le logiciel pour tous les types de sollicitations et d'entrées possibles (valides ou invalides), dans tous les cas de figures envisageables. Elle respecte les standards ou normes applicables à sa forme ou à son contenu. Toute partie non applicable doit être référencée et la justification de sa non-application doit être fournie. Elle contient un glossaire ou un dictionnaire qui fournit une définition claire et précise de tous les labels, références, identificateurs, termes, etc. qui sont utilisés dans les textes, diagrammes, tables ou autres figures.
Conduite de Projet Logiciel
Facilité de modification
Une spécification est modifiable si sa structure et sa forme sont telles que, si une modification intervient, la spécification peut être mise à jour facilement, complètement et en préservant la cohérence.
2 règles élémentaires:
formaliser et gérer la spécification Pour pouvoir répondre à la question « Faut-il modifier? » organiser et rationaliser la structure du support de formalisation Pour pouvoir répondre à la question « Que faut-il modifier? »
Conduite de Projet Logiciel
Traçabilité
Une spécification est traçable si, seulement si,
Les besoins de l'utilisateur qui en sont l'origine peuvent être identifiés sans ambiguïtés Les composants logiciels créés pour sa mise en œuvre pourront être facilement recensés
Conduite de Projet Logiciel
Cohérence
Une spécification est cohérente si, et seulement si, il n'existe aucune contradiction et aucun conflit entre les différentes propriétés qui la déterminent.
Conduite de Projet Logiciel
Vérifiabilité
Une spécification est vérifiable si, et seulement si, il existe un moyen (automatique ou manuel) de s'assurer que le logiciel répond aux exigences définies.
EXEMPLE DE SPECIFICATION NON VERIFIABLE:
• • • •
"Le produit doit fonctionner correctement..." "Le produit doit avoir des performances satisfaisantes..." "Le temps de réponse ne doit pas être supérieur à 2 secondes en exploitation normale... »
EXEMPLE DE SPECIFICATION VERIFIABLE:
"Le temps de réponse doit être inférieur à 2 secondes dans 70% des cas et inférieur à 5 secondes dans 100% des cas"
Conduite de Projet Logiciel
Absence d ’ambiguïté
Une spécification est non ambiguë si, et seulement si, chaque énoncé de spécification a une et une seule interprétation possible.
EXEMPLE DE SPECIFICATION AMBIGUE: "Dans l'entreprise, tous les projets sont gérés par un responsable." peut signifier que
• • •
Un responsable gère l'ensemble des projets de l'entreprise ... Chaque projet est géré par son propre responsable ... Chaque projet est géré par un responsable qui peut gérer plusieurs projets ...
Conduite de Projet Logiciel
Intérêt de la spécification formelle
LE LANGAGE FORMEL DE SPECIFICATION
• • • • • •
MAIS
remplace le langage naturel ou le précise est conçu pour exprimer un certain type de caractéristique supprime les ambiguïtés permet d'automatiser la production du logiciel permet de prouver que le logiciel répond à sa spécification peut être graphique
requiert une formation ou un apprentissage est difficilement compréhensible par un lecteur non averti (cf. Spécifications algébriques ou axiomatiques, Réseaux de Pétri, etc.)
Conduite de Projet Logiciel
Degré de formalisme
Lisibilité Compréhensibilité Communicabilité
+
...