L'importance des spécifications logicielles
Le cycle de vie du développement de logiciel
- Définition et différentiation des types de spécifications
- Localisation des sources de recueil de besoins
- Approches de développement
Présentation des spécifications logicielles
- Structuration du document de spécifications
- Éléments de spécification : texte, diagrammes, données
Structuration du projet
Adapter la méthodologie à l'envergure du projet
- Adaptation du processus à des systèmes restreints, de taille moyenne et complexes
- Différentiation des techniques agiles et standards
Analyse des besoins utilisateur
- Identification et hiérarchisation des parties prenantes
- Détermination des principaux besoins sur la base des documents fournis
- Itération collaborative du recueil des besoins
Application du processus de spécification
- Détermination
- Analyse
- Spécification
- Validation
- IEEE
- Standards SWEBOK
- Le Processus Unifié
Collecte et enrichissement des cas d'utilisation
Rédaction de scénarios
- Élaboration de scénarios et de cas d'utilisation synthétiques
- Itération et élaboration progressive de cas d'utilisation
Création de cas d'utilisation structurés
- Cas d'utilisation axés sur les comportements
- Identification des parties prenantes et acteurs
- Dénomination et définition du champ d'application des cas d'utilisation
- Rédaction de scénarios : scénarios nominaux et alternatifs
- Ajout de pré-conditions et de post-conditions
Itération des cas d'utilisation
- Enrichissement des cas d'utilisation en concertation avec les parties prenantes
- Factorisation des étapes élémentaires
- Découverte de scénarios alternatifs
- Contrôle de l'exhaustivité des cas d'utilisation
Organisation des cas d'utilisation
- Modélisation des scénarios avec UML
- Choix entre le texte libre et la notation formelle de cas d'utilisation
Identification des spécifications d'une interface
Intégration des besoins d'interface
- Cas d'utilisation et maquettes d'interfaces utilisateur
- Comparaison des divers types d'interfaces
Création d'interfaces types
- Développement d'un story-board et d'un prototype
- Modélisation d'interfaces à partir de schémas de navigation et de diagrammes d'état UML
Spécifications des données
Analyse des besoins de données
- Étude des cas d'utilisation et de l'interface
- Identification des règles de gestion
Création d'un modèle de spécifications de données
- Représentation des modèles de données par des diagrammes de classes UML
- Entités
- Attributs
- Multiplicité d'associations
- Actualisation du glossaire
Spécifications non fonctionnelles
Collecte des exigences non fonctionnelles
- Obtention de données volumétriques
- Classification des besoins non fonctionnels via la méthode FURPS
Illustration des spécifications non fonctionnelles
- Fiabilité du système : disponibilité, intégrité et défaillances
- Flexibilité, évolutivité, simplicité d'utilisation, réutilisabilité et robustesse
Validation des spécifications et création de scénarios de test
Validation des exigences
- Validation de la mise en forme des exigences
- Processus de révision des exigences
- Inspection des exigences pour vérification
Génération des cas d'utilisation de test à partir des exigences
- Vérification de la testabilité des exigences
- Extrapolation des scripts et scénarios de test sur la base des exigences
- Exigences, tests système et test d'acceptation Utilisateur (UA)
Gestion de l'évolution des exigences
- Développement d'un processus de gestion des exigences
- Pilotage des changements via une CCB (Change Control Board — Commission de contrôle du changement)
- Confirmation des exigences via une matrice de traçabilité