1. Cours 4 : Expression des besoins Cours IGLcours 4expression des besoins 1 Mostefai Mohammed Amine – m_mostefai@esi.dz Batata Sofiane – s_batata@esi.dz
2. Permettre à l’étudier de pouvoir exprimer les besoins d’un logiciel d’une manière formelle Apprendre le modèle de spécifications bien formées des spécifications Utiliser les diagrammes de cas d’utilisation pour modélisation les spécifications fonctionnelle Utiliser les techniques avancées des diagrammes de cas d’utilisation pour produire des diagrammes représentatifs Objectifs du cours 2 Cours 2 – Cycle de vie de logiciels Objectifs du cours
3. Cours 2 Cycles de vie de logiciels 3 Introduction au génie logiciel
4. Cours N° 4 Expression des besoins 4 Cours igl Section 1 : Introduction
5. Section 1 - introduction 5 Cours 4 – Expression des besoins Processus UP Expression des besoins Analyse Conception Implémentation Tests
6. Avant de coder, il faut savoir ce qu’on va coder et pourquoi le coder Les besoins sont un ensemble d’éléments qui doivent être implémentés Ces besoins doivent être exprimés selon une méthode bien définie Des besoins « incomplets » sont une des principales raisons d’échec des projets de développement Section 1 - introduction 6 Cours 4 – Expression des besoins Introduction
7. Section 1 - introduction 7 Cours 4 – Expression des besoins Types de besoins
8. Les spécifications sont l’expression formelle des besoins Une spécification fonctionnelle exprime comment est le système du point de vue utilisateur Une spécification technique exprime comment est le système d’un point de vue interne (technique, technologie,…etc.) Le langage naturel peut être utilisé pour les spécifications fonctionnelles et / ou techniques Section 1 - introduction 8 Cours 4 – Expression des besoins Spécifications
9. Le recensement des spécifications est une opération difficile à cause des facteurs suivants : Section 1 - introduction 9 Cours 4 – Expression des besoins Recensement des spécifications
10. Section 1 - introduction 10 Cours 4 – Expression des besoins L’expression de besoins - Processus Modèles des besoins Modèle de spécification (texte) L’expression des besoins Produit Modèle des cas d’utilisation (UML, optionnel)
11. Section 1 - introduction 11 Cours 4 – Expression des besoins L’expression de besoins - Processus
12. Section 1 - introduction UP propose deux modèles pour l’expression des besoins : le modèle de spécifications et le modèle des cas d’utilisation Le modèle des spécifications convient aussi bien pour les spécifications fonctionnelles que les spécifications non fonctionnelles Le modèle des cas d’utilisation est basé sur les diagrammes de cas d’utilisation d’UML Le modèle des cas d’utilisation s’adapte mieux aux spécifications fonctionnelles Le modèle de spécifications peut être créé en utilisant un éditeur de texte, un bloc-notes ou un outil dédié 12 Cours 4 – Expression des besoins L’expression de besoins - Processus
13. Cours N° 4 Expression des besoins 13 Cours igl Section 1 : Débat (05 mns)
14. Cours N° 4 Expression des besoins 14 Cours igl Section 2 : Modèle de spécifications
15. Section 2 – Modèle de spécifications Le modèle de spécifications est un ensemble de phrases bien formées (respectant une certaine formulation) et numérotées où chaque phrase est appelée spécification Chaque spécification a un numéro unique Une spécification décrit une seule fonction du système Une spécification peut être fonctionnelle (décrivant un aspect métier) ou non-fonctionnelle (décrivant un aspect technique) Les spécifications peuvent être rédigées en utilisant un éditeur texte ou un outil dédié 15 Cours 4 – Expression des besoins Modèle de spécifications
16. Section 2 – Modèle de spécifications (id) le (système) doit <fonction> 16 Cours 4 – Expression des besoins Spécifications bien formées Nom du système Identifiant de la spécification Description de la fonction
17. Section 2 – Modèle de spécifications Exemple Spécifications fonctionnelles : Le système GAB (distributeur) de biller doit vérifier la validité de la carte CIB insérée Le système GAB doit valider le code PIN entré par l’utilisateur Le système doit allouer une somme maximum de 20000 dinars à l’utilisateur Spécifications non fonctionnelles : Le système du GAB doit être écrit en C++ Le système du GAB doit utiliser un cryptage 256 bits pour les données sensibles Le système doit vérifier le PIN en moins de 03 secondes 17 Cours 4 – Expression des besoins Spécifications bien formées
18. Section 2 – Modèle de spécifications Les systèmes de moyenne et grande taille engendrent un nombre très important de spécifications (de quelques centaines à plusieurs milliers) L’organisation des spécifications permet de les structurer et bien gérer les autres activités de développement L’organisation permet aussi de scinder les spécifications en sous-domaines 18 Cours 4 – Expression des besoins Organisation des spécifications
19. Section 2 – Spécification formelle des besoins 19 Cours 4 – Expression des besoins Organisation des spécifications - Exemple
20. Il vaut mieux assigner des priorités aux spécifications La priorité permet de sélectionner les spécifications les plus importantes (par exemple, pour planifier une itération) La priorité peut être un nombre (de 1 à 5) MoSCoW est une méthode permettant d’affecter des priorités aux spécifications Section 2 – Expression des besoins sous up 20 Cours 4 – Expression des besoins Priorités de spécifications
21. Section 2 – Modèle de spécifications 21 Cours 4 – Expression des besoins Priorités de spécifications – Méthode MoSCoW
22. Section 2 – Spécification formelle des besoins Les spécifications peuvent être enrichies par d’autres attributs 22 Cours 4 – Expression des besoins Attributs de spécifications
23. Section 2 – Modèle de spécifications 23 Cours 4 – Expression des besoins Attributs de spécifications
24. Section 2 – Modèle de spécifications Les sources suivantes servent au recensement des spécifications : 24 Cours 4 – Expression des besoins Recensement des spécifications
25. Section 2 – Modèle de spécifications Plusieurs moyens sont utilisé pour recenser les spécifications : 25 Cours 4 – Expression des besoins Recensement des spécifications
26. « Le client parcourt le catalogue de produit et ajoute les produits qui lui plaisent à son panier. Quand le client souhaite finaliser son achat, il fournit ses informations sur sa carte et sur son adresse de livraison. Le système vérifie la carte du client ensuite valide la transaction. » Section 2 – Modèle de spécifications 26 Cours 4 – Expression des besoins Scénario
27. Section 2 – Modèle de spécifications 27 Cours 4 – Expression des besoins Scénario
28. Cours N° 4 Expression des besoins 28 Cours igl Section 2 – Modèle de spécifications : Débat (05)Mns
29. Cours N° 4 Expression des besoins 29 Cours igl Section 3 : Modèle des cas d’utilisation
30. Section 3 – Modèle des cas d’utilisation 30 Cours 4 – Expression des besoins Processus de recensement
31. Quelles sont les limites du système ? Qu’est-ce qui fait partie du système et qu’est-ce qui est externe au système ? Décider clairement des limites du système n’est pas aussi évident qu’on le croit La limite du système est aussi appelée « sujet » Section 3 – Modèle des cas d’utilisation 31 Cours 4 – Expression des besoins Limite du système
32. Section 3 – Modèle des cas d’utilisation 32 Cours 4 – Expression des besoins Limite du système – Notation UML Limite du système Note
33. Les utilisateurs du système sont appelé « acteurs » Un acteur identifie un rôle pas une personne Un cas d’utilisation peut avoir plusieurs acteurs Un acteur peut être impliqué dans plusieurs cas d’utilisation Un acteur interagit directement avec le système Un acteur peut identifier une entité non humaine : un matériel ou un autre système interagissant avec le système, il est aussi utilisé pour représenter le temps Les acteurs sont externes au système Les acteurs sont nommés en utilisant des noms courts et significatifs Section 3 – Modèle des cas d’utilisation 33 Cours 4 – Expression des besoins Acteurs
34. Les acteurs peuvent être représentés de plusieurs façons Section 3 – Modèle des cas d’utilisation 34 Cours 4 – Expression des besoins Acteurs
35. Poser les questions suivantes : Qui ou qu’est-ce qui utilise le système ? Quel est leur rôle dans l’interaction ? Qui installe le système ? Qui démarre ou arrête le système ? Quels sont les systèmes qui interagissent avec ce système ? Qui fournit les informations au système ? Quels sont les évènements qui ont lieu à un moment donné ? Section 3 – modélisation des cas d’utilisation 35 Cours 4 – Expression des besoins Identification des acteurs
36. Exemple d’un achat en ligne « Le client parcourt le catalogue de produit et ajoute les produits qui lui plaisent à son panier. Quand le client souhaite finaliser son achat, il fournit ses informations sur sa carte et sur son adresse de livraison. Le système vérifie la carte du client ensuite valide la transaction. » D’autres scénarios dérivés peuvent avoir lieu : par exemple le client a une remise ou la carte est invalide. Malgré leur différences, tous ces scénarios forment un seul cas d’utilisation car l’objectif est unique : acheter un produit. Section 3 – modélisation des cas d’utilisation 36 Cours 4 – Expression des besoins Scénario
37. Les cas d’utilisation sont une technique de capture des besoins fonctionnels du système Les cas d’utilisation décrivent les interactions entre les utilisateurs du système et le système lui-même Les cas d’utilisation est une description “narrative” de comment est utilisé le système Les cas d’utilisation sont basés sur des scénarios qui sont un séquencement des évènements se passant entre l’utilisateur et le système Les cas d’utilisation sont toujours déclenchés par les acteurs Les cas d’utilisation représentent le système du point de vue de l’acteur Section 3 – Modèle des cas d’utilisation 37 Cours 4 – Expression des besoins Cas d’utilisation
38. Section 3 – Modèle des cas d’utilisation 38 Cours 4 – Expression des besoins Cas d’utilisation
39. Section 3 – Modèle des cas d’utilisation 39 Cours 4 – Expression des besoins Cas d’utilisation - Création
40. Section 3 – modélisation des cas d’utilisation 40 Cours 4 – Expression des besoins Le diagramme de cas d’utilisation Relation d’usage Limite du système Cas d’utilisation Acteur
41. L’acteur principal déclenche le cas d’utilisation (CU) tandis que l’acteur secondaire réagit au CU Généralement, l’acteur principal est dessiné à gauche et le secondaire à droite Section 3 – Modèle des cas d’utilisation 41 Cours 4 – Expression des besoins Acteur principal et secondaire
42. Section 3 – Modèle des cas d’utilisation 42 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
43. Section 3 – Modèle des cas d’utilisation 43 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
44. Section 3 – Modèle des cas d’utilisation 44 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
45. LES ENCHAÎNEMENTS Un enchaînement est une suite d’actions numérotées La première action est formulée comme ceci : Le CU démarre quand <l’acteur><fonction> Chaque action est formulée comme ceci : <quelque chose / quelqu’un> <fonction> Section 3 – Modèle des cas d’utilisation 45 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
46. LES ENCHAÎNEMENTS L’enchaînement principal est une séquence d’évènements décrivant le CU Le CU suit idéalement un enchainement mais peut avoir des déviations, ces déviations sont appelées enchaînement alternatifs Les enchaînements sont aussi appelés scénarios Il existe deux types de déviations : les déviations simples qui sont formalisées dans l’enchaînement et les déviations complexes qui sont formalisées dans un autre enchaînement Section 3 – Modèle des cas d’utilisation 46 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
47. LES ENCHAÎNEMENTS - EXEMPLE Le CU démarre quand le client clique sur le bouton « se connecter » Le client entre son nom d‘utilisateur dans la zone « login » Le client entre son mot de passe dans la zone « mot de passe » Le système vérifie la validité du nom d’utilisateur et du mot de passe Section 3 – Modèle des cas d’utilisation 47 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
48. LES ENCHAÎNEMENTS – EXEMPLE D’UNE MAUVAISE FORMULATION « Les informations du client sont entrées et vérifiées » Qui entre les informations ? Dans quoi ? Quelles sont ces informations ? Ne pas s’exprimer en voix passive Se poser les questions : qui, quoi, quand et où ? Répondre avec précision. Section 3 – Modèle des cas d’utilisation 48 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
49. LES ENCHAÎNEMENTS – CONTRÔLE DE FLUX Pour éviter de créer des enchaînements alternatifs, on peut faire des instructions de contrôle de flux à l’intérieur d’un enchaînement Le mot clé si: contrôle conditionnel Le mot clé pour : répétition pour tous les éléments d’un ensemble Le mot clé tantque : répétition selon une condition Section 3 – Modèle des cas d’utilisation 49 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
50. Section 3 – Modèle des cas d’utilisation 50 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
51. Section 3 – Modèle des cas d’utilisation 51 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
52. Section 3 – Modèle des cas d’utilisation 52 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
53. Section 3 – Modèle des cas d’utilisation 53 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
54. LES ENCHAÎNEMENTS ALTERNATIFS Les enchaînements décrivent souvent des actions très complexes Les enchaînements alternatifs sont des déviations ou des interruptions des enchaînements principaux Les enchaînements alternatifs peuvent être documentés à l’intérieur de la spécification ou séparément Un enchaînement alternatif peut ne pas revenir à l’enchaînement principal Section 3 – Modèle des cas d’utilisation 54 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
55. LES ENCHAÎNEMENTS ALTERNATIFS Les noms des enchaînements alternatifs sont formulés de la manière suivante : Enchaînement Alternatif : NomCU:NomEnchaînementAlternatif L’id de l’enchaînement alternatif obéit à une numérotation hiérarchique. Par exemple, si l’ID un CU est 5, l’id de son premier enchaînement alternatif serait 5.1 Section 3 – Modèle des cas d’utilisation 55 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
56. LES ENCHAÎNEMENTS ALTERNATIFS L’EA peut démarrer au lieu de l’enchaînement principal. Dans ce cas, c’est l’utilisateur qui déclenche cette déviation. L’EA peut démarrer après une étape N de l’enchaînement principal « l’EA démarre après l’étape X de l’enchaînement principal » L’EA peut démarrer à n’importe quel moment Section 3 – Modèle des cas d’utilisation 56 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
57. LES ENCHAÎNEMENTS ALTERNATIFS Pour chaque CU il y a un seul enchaînement principal et plusieurs EA Eviter de donner trop d’enchaînements alternatifs Regrouper les EA similaires Section 3 – Modèle des cas d’utilisation 57 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
58. Section 3 – Modèle des cas d’utilisation 58 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
59. Section 3 – Modèle des cas d’utilisation 59 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
60. Section 3 – Modèle des cas d’utilisation 60 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
61. Section 3 – Modèle des cas d’utilisation 61 Cours 4 – Expression des besoins Documentation d’un cas d’utilisation
62. Un CU peut décrire une ou plusieurs spécifications Une spécification peut être représentée par un ou plusieurs CU La matrice de traçabilité définit les relations entre les spécifications et les CU Section 3 – Modèle des cas d’utilisation 62 Cours 4 – Expression des besoins Traçabilité des cas d’utilisation
63. LES CAS D’UTILISATION SONT RECOMMANDÉS QUAND : Le système est dominé par les spécifications fonctionnelles Le système est utilisé par plusieurs utilisateurs Le système a plusieurs interfaces Section 3 – Modèle des cas d’utilisation 63 Cours 4 – Expression des besoins Utilisation des cas d’utilisation
64. Cours N° 4 Expression des besoins 64 Cours igl Section 3 – Modèle des cas d’utilisation – Débat (05 Mns)
65. Cours N° 4 Expression des besoins 65 Cours igl Section 4 : Modélisation avancée des cas d’utilisation
66. Section 4 – modélisation avancée des cas d’utilisation Des acteurs peuvent avoir beaucoup de CU en commun Un acteur peut être différent d’un autre acteur par quelques CU supplémentaires La généralisation répond au souci d’encombrement des diagrammes de CU La généralisation des CU simplifie non seulement la présentation mais aussi la sémantique des CU 66 Cours 4 – Expression des besoins Généralisation des acteurs
67. Section 4 – modélisation avancée des cas d’utilisation 67 Cours 4 – Expression des besoins Généralisation des acteurs
68. Section 4 – modélisation avancée des cas d’utilisation 68 Cours 4 – Expression des besoins Généralisation des acteurs Généralisation
69. Section 4 – modélisation avancée des cas d’utilisation La généralisation des CU quand un CU est un cas spécialisé d’un autre CU 69 Cours 4 – Expression des besoins Généralisation des CU
70. Section 4 – modélisation avancée des cas d’utilisation 70 Cours 4 – Expression des besoins Généralisation des CU Généralisation
71. Section 4 – modélisation avancée des cas d’utilisation L’inclusion est une relation entre deux CU (CU1 et CU2). CU 1 est appelé CU de base et CU2 est appelé CU d’inclusion. Quand l’enchaînement arrive au point d’inclusion, CU1 ne s’exécuter que lorsque CU2 s’exécute. L’inclusion évite la répétition 71 Cours 4 – Expression des besoins Inclusion des CU
72. Section 4 – modélisation avancée des cas d’utilisation Un CU peut avoir plusieurs CU d’inclusion CU ne s’exécute que lorsque tous les CU d’inclusion ont été exécutés 72 Cours 4 – Expression des besoins Inclusion des CU
73. Section 4 – modélisation avancée des cas d’utilisation 73 Cours 4 – Expression des besoins Inclusion des CU
74. Section 4 – modélisation avancée des cas d’utilisation 74 Cours 4 – Expression des besoins Inclusion des CU
75. Section 4 – modélisation avancée des cas d’utilisation 75 Cours 4 – Expression des besoins Inclusion des CU
76. Section 4 – modélisation avancée des cas d’utilisation L’extension est une relation entre deux CU : CU1 et CU2 CU2 étend CU1 par un comportement optionnel qui a lieu sous une certaine condition Cette condition est appelé « point d’extension » 76 Cours 4 – Expression des besoins Extension des CU
77. Section 4 – modélisation avancée des cas d’utilisation 77 Cours 4 – Expression des besoins Extension des CU
78. Section 4 – modélisation avancée des cas d’utilisation 78 Cours 4 – Expression des besoins Extension des CU
79. Section 4 – modélisation avancée des cas d’utilisation Les acteurs doivent être appelés en utilisant leur rôle au singulier, pas au pluriel Ne pas montrer le comportement, plutôt montrer la fonctionnalité 79 Cours 4 – Expression des besoins Best practices
80. Section 4 – modélisation avancée des cas d’utilisation Les diagrammes ne doivent pas être trop encombrés. Par exemple, au maximum 15 CU par diagramme Tous les CU doivent avoir le même niveau d’abstraction Les spécifications des CU doit être de la même taille (1/2 page à 1 page) Si les CU sont trop grands, utiliser les inclusions / extensions / généralisations Sortir les éléments redondants en des CU inclus Sortir les éléments conditionnels en des CU d’extension Les CU sont appelé en utilisant des verbes Ne pas schématiser les communications entre acteurs 80 Cours 4 – Expression des besoins Best practices
81. Cours N° 4 Expression des besoins 81 Cours igl Section 4 - Exercice
82. Cours N° 4 Expression des besoins 82 Cours igl Section 4 : Modélisation avancée des cas d’utilisation – Débat (05 Mns)
83. UML Distilled3rd Edition, Martin Fowler, 2003, Addison Wesley UML2 and the Unified Process, Addison-Wesley Second Edition Wikipedia : Unified Modeling Language, http://fr.wikipedia.org/wiki/Unified_Modeling_Language bibliographie 83 Cours 3 – Introduction à UML Bibliographie