La conception avec UML: les diagrammes ACDA CPOO () Mathieu Sassolas IUT de Sénart Fontainebleau Département Informatique Année 2015-2016
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 2 / 51
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 3 / 51
Planning général du cours Conception et Programmation Orientée Objet (CPOO) 5 semaines «Conception et modélisation» Cours, TD, TP M.S. Évaluation (Total : coefficient 5) Écrit ( 1h) semaine du 23/11 ; coeff. 3,5. Évaluation continue des TP : participation, TPs rendus... ; coeff. 1,5. 7 semaines «De la conception à l implémentation» Cours, TD, TP Luc Hernandez. Évaluation TP noté ; coefficient 7. 4 / 51
EPREL (http://eprel.u-pec.fr) Le cours -CPOO a été créé sur EPREL. Y seront accessibles (au fur et à mesure) : Les cours (version présentation et imprimable). Les sujets de TD/TP. Des corrections de TD/TP. Sans doute d autres choses (contrôles...). Les TPs seront à rendre sur EPREL. Si besoin, les annonces pour le cours passeront par là. 5 / 51 En conséquence Il faut être inscrit à l université pour faire partie des utilisateurs du cours. Il faut lire vos mails @etu.u-pec.fr (directement ou en redirection).
ACDA dans la suite de l année On veut voir de l ACDA (conception, modélisation, diagrammes...) : Dans le projet tutoré. Dans les rapports de stage. 6 / 51
Point info PT Je n ai pas encore tous les groupes! Il y a des sujets fournis par des entreprises ou associations sur projetc. Il est raisonnable que les groupes/sujets/tuteurs soient connus au plus tard pour le 17 octobre. 7 / 51
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 8 / 51
Motivations Il est utile de réfléchir avant de coder besoin de conception (M3301 avec William Giuseffi). Pour concevoir, on utilise des modèles : Semperoper de Dresde, Wikimedia Une fois conçu, le plan sert à documenter. On doit concevoir/documenter à différents niveaux d abstraction. 9 / 51
UML : Unified Modeling Language Pour se comprendre, il faut parler la même langue. Le langage naturel est ambigü : «[Petit Ours Brun] aime bien son Papa, sa Maman aussi.» Représenter un programme signifie représenter des structures logiques et non des objets réels. Pas de représentation «canonique» qui s imposerait, au contraire des cartes, modèles réduits, etc. 10 / 51
UML : Unified Modeling Language Pour se comprendre, il faut parler la même langue. Le langage naturel est ambigü : «[Petit Ours Brun] aime bien son Papa, sa Maman aussi.» Représenter un programme signifie représenter des structures logiques et non des objets réels. Pas de représentation «canonique» qui s imposerait, au contraire des cartes, modèles réduits, etc. UML : Unified Modeling Language 10 / 51 Création à partir de 1994. Standard reconnu par l industrie en 1997. Standard ISO depuis 2000.
Différents diagrammes pour différents buts La modélisation est multi-échelle et concerne plusieurs aspects différents (sous-ensemble ; utilisation principale) : Abstrait Modèle des besoins Modèle d analyse Aspects fonctionnels Diag. s Aspects statiques Diag. de classes d analyse, de paquetage Aspects dynamiques Scénarios, diag. de séquences système Diag. d activités Modèle de conception Diag. de classes métier Diag. d états, de séquences, 11 / 51 Modèle de déploiement Concret Diag. de déploiement
Différents diagrammes pour différents buts La modélisation est multi-échelle et concerne plusieurs aspects différents (sous-ensemble ; utilisation principale) : Abstrait Modèle des besoins Modèle d analyse Aspects fonctionnels Diag. s today Aspects statiques Diag. de classes d analyse, de paquetage Aspects dynamiques Scénarios, diag. de séquences système Diag. d activités Modèle de conception not today! Diag. de classes métier Diag. d états, de séquences, 11 / 51 Modèle de déploiement Concret Diag. de déploiement
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 12 / 51
Utilité des cas Identifier les interactions du système avec son environnement : humains et autres systèmes. Identifier les besoins : fonctionnalités du système. Identifier les dépendences entre les fonctionnalités. 13 / 51
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 14 / 51
Les acteurs Tout sauf le système : personnes ou autres systèmes. Définit les rôles des interactions : une même personne peut se comporter suivant différents rôles. Les acteurs seront liés aux cas les concernant. 15 / 51
Les acteurs Tout sauf le système : personnes ou autres systèmes. Définit les rôles des interactions : une même personne peut se comporter suivant différents rôles. Les acteurs seront liés aux cas les concernant. Les acteurs peuvent être liés par héritage/généralisation. 15 / 51
Les cas Recensent les besoins (phase d analyse des besoins) ou les fonctionnalités (documentation). Souvent un verbe à l infinitif avec un complément : Faire quelque chose. Leur atomicité dépend du niveau de détail voulu : vs 16 / 51
Exemple On veut un système de notes Système de notes Système de notes 17 / 51
Exemple On veut un système de notes où les enseignants Système de notes Système de notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes Système de notes Système de notes Entrer des notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants Etudiant Système de notes Système de notes Entrer des notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; Etudiant Système de notes Système de notes Consulter des notes Entrer des notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; les enseignants peuvent également consulter les notes des étudiants. Etudiant Système de notes Système de notes Consulter des notes Entrer des notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; les enseignants peuvent également consulter les notes des étudiants. Etudiant Système de notes Système de notes Consulter des notes Entrer des notes 17 / 51 Enseignant
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; les enseignants peuvent également consulter les notes des étudiants. À la fin du semestre, les notes sont transmises Etudiant Système de notes Système de notes Consulter des notes Entrer des notes 17 / 51 Enseignant Transmettre des notes
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; les enseignants peuvent également consulter les notes des étudiants. À la fin du semestre, les notes sont transmises au serveur central de notes qui s occupera de l édition des diplômes. 17 / 51 Etudiant Enseignant Système de notes Système de notes Consulter des notes Entrer des notes Transmettre des notes Serveur central
Exemple On veut un système de notes où les enseignants pourront entrer leurs notes et les étudiants les consulter ; les enseignants peuvent également consulter les notes des étudiants. À la fin du semestre, les notes sont transmises au serveur central de notes qui s occupera de l édition des diplômes. 17 / 51 Etudiant Enseignant Système de notes Système de notes Consulter des notes Entrer des notes Transmettre des notes Serveur central
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 18 / 51
Relations acteur cas Cas habituel : association. Système Système Acteur Cas D utilisation interaction bidirectionnelle. 19 / 51
Relations acteur cas Cas habituel : association. Système Système Acteur Cas D utilisation interaction bidirectionnelle. Peut lier plusieurs acteurs à un même cas. Exemple : Système bancaire Système bancaire Effectuer virement 19 / 51 Client Banquier
Remarque Un cas lié à plusieurs acteurs ne donne pas pour autant d information sur la concomitance. Système bancaire Système bancaire Effectuer virement Client Sortir extraits de compte Banquier 20 / 51
Relations acteur cas suite Association unidirectionnelle de l acteur vers le système : stimulus, message entrant pour le système. Exemple : Capteur Système industriel Système industriel Sonner alarme Association unidirectionnelle du système vers l acteur : message sortant. Exemple : Système des absences Système des absences Prévenir absence répétée 21 / 51 Tuteur
Relations entre cas Trois types : Héritage/généralisation : <<extend>> Extension : <<include>> Inclusion : 22 / 51
Héritage/Généralisation Système Système Acteur1 Acteur2 Cas général Cas particulier 1 Cas particulier 2 23 / 51 Remarque Acteur1 peut faire le cas général, donc il peut faire les cas particuliers 1 et 2. Acteur2 ne peut pas faire le cas particulier 2.
Héritage/Généralisation Exemple Système bancaire Système bancaire Client Retirer de l argent au guichet Retirer de l argent Retirer de l argent à l automate Ouvrir un compte Client jeune Ouvrir un compte courant 24 / 51 Ouvrir un livret jeune
Extension Un cas qui fait tout ce que fait un autre et plus. Système Système Cas de base <<extend>> Extension Acteur L acteur est nécessairement impliqué dans le cas de base. 25 / 51
Extension Exemple Informaticien <<extend>> Exporter en SVG Système de l INSEE Système de l INSEE Exporter en XML <<extend>> Statisticien Exporter en HTML 26 / 51
Inclusion Une partie d un autre cas qui n est pas utile en soi (càd sans le cas contenant) ; peut être partagé entre divers cas contenants ; est nécessaire au bon fonctionnement du cas contenant. Système Système Cas de base <<include>> Sous-partie Acteur 27 / 51 L acteur est nécessairement impliqué dans la sous-partie.
Inclusion Exemple Système Système Lire un e-mail <<include>> Authentification <<include>> Écrire un e-mail Utilisateur 28 / 51
Inclusion Exemple Système Système Lire un e-mail Serveur OTP <<include>> Authentification <<include>> Utilisateur Écrire un e-mail 28 / 51 Le sous-cas peut avoir des associations propres.
Extension vs héritage Pour éviter les confusions Une extension fait plus, un héritage fait différemment. Système de l INSEE Système de l INSEE Exporter en XML Informaticien <<extend>> Exporter les données Exporter en HTML Statisticien 29 / 51
Extension vs Inclusion Pour éviter les confusions Une extension et l étendu sont des cas à part entière. Dans l inclusion, l inclus seul n a pas de raison d être. Un cas inclus est souvent partagé par plusieurs autres cas. Exemple canonique : S authentifier. 30 / 51
Extension vs Inclusion Pour éviter les confusions Une extension et l étendu sont des cas à part entière. Dans l inclusion, l inclus seul n a pas de raison d être. Un cas inclus est souvent partagé par plusieurs autres cas. Exemple canonique : S authentifier. Dans plusieurs cas, les deux seront acceptables. Il faut seulement être capable de le justifier. 30 / 51
Ce que ne dit pas un DCU Pas d information sur le temps Si les acteurs interagissent ou peuvent participer indépendamment à un cas commun. On ne fait pas apparaître l enchaînement temporel de divers cas. Système de FLOT Système de FLOT S inscrire Étudiant Suivre un cours 31 / 51
Plan de la séance 1 Organisation pratique et administrative 2 Qu est-ce qu UML? 3 32 / 51
L inscription à l université L énoncé textuel La scolarité de l université s occupe de la gestion des inscriptions. Cela consiste à inscrire les étudiants, modifier leurs inscriptions, voire les supprimer. Les inscriptions peuvent être particulières s il s agit d une inscription en double cursus ou en alternance. Les inscriptions en alternance ont besoin de l accord du CFA, et ce cas particulier est de la responsabilité de certains membres de la scolarité. L inscription en double cursus peut être gérée par n importe quel agent de la scolarité. Une fois l inscription terminée, il faut imprimer la carte d étudiant, à l aide d une imprimante spéciale. Que ce soit pour inscrire, modifier ou supprimer une inscription, la scolarité doit pouvoir vérifier le paiement des droits d inscription. 33 / 51
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). 34 / 51
L inscription à l université L énoncé textuel La scolarité de l université s occupe de la gestion des inscriptions. Cela consiste à inscrire les étudiants, modifier leurs inscriptions, voire les supprimer. Les inscriptions peuvent être particulières s il s agit d une inscription en double cursus ou en alternance. Les inscriptions en alternance ont besoin de l accord du CFA, et ce cas particulier est de la responsabilité de certains membres de la scolarité. L inscription en double cursus peut être gérée par n importe quel agent de la scolarité. Une fois l inscription terminée, il faut imprimer la carte d étudiant, à l aide d une imprimante spéciale. Que ce soit pour inscrire, modifier ou supprimer une inscription, la scolarité doit pouvoir vérifier le paiement des droits d inscription. 35 / 51
L inscription à l université Diagramme Scolarité Système de gestion des inscriptions Système de gestion des inscriptions Imprimante Scolarité FA CFA 36 / 51
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. 37 / 51
L inscription à l université L énoncé textuel La scolarité de l université s occupe de la gestion des inscriptions. Cela consiste à inscrire les étudiants, modifier leurs inscriptions, voire les supprimer. Les inscriptions peuvent être particulières s il s agit d une inscription en double cursus ou en alternance. Les inscriptions en alternance ont besoin de l accord du CFA, et ce cas particulier est de la responsabilité de certains membres de la scolarité. L inscription en double cursus peut être gérée par n importe quel agent de la scolarité. Une fois l inscription terminée, il faut imprimer la carte d étudiant, à l aide d une imprimante spéciale. Que ce soit pour inscrire, modifier ou supprimer une inscription, la scolarité doit pouvoir vérifier le paiement des droits d inscription. 38 / 51
L inscription à l université Diagramme Scolarité Système de gestion des inscriptions Système de gestion des inscriptions Imprimante Scolarité FA CFA 39 / 51
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. Identifier les cas. 40 / 51
L inscription à l université L énoncé textuel La scolarité de l université s occupe de la gestion des inscriptions. Cela consiste à inscrire les étudiants, modifier leurs inscriptions, voire les supprimer. Les inscriptions peuvent être particulières s il s agit d une inscription en double cursus ou en alternance. Les inscriptions en alternance ont besoin de l accord du CFA, et ce cas particulier est de la responsabilité de certains membres de la scolarité. L inscription en double cursus peut être gérée par n importe quel agent de la scolarité. Une fois l inscription terminée, il faut imprimer la carte d étudiant, à l aide d une imprimante spéciale. Que ce soit pour inscrire, modifier ou supprimer une inscription, la scolarité doit pouvoir vérifier le paiement des droits d inscription. 41 / 51
L inscription à l université Diagramme Système de gestion des inscriptions Système de gestion des inscriptions Vérifier paiement Scolarité Inscrire Modifier inscription Supprimer inscription Imprimer carte étudiant Imprimante Inscrire en double cursus 42 / 51 Scolarité FA Inscrire en alternance CFA
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. Identifier les cas. Associer les cas s et les acteurs. 43 / 51
L inscription à l université L énoncé textuel La scolarité de l université s occupe de la gestion des inscriptions. Cela consiste à inscrire les étudiants, modifier leurs inscriptions, voire les supprimer. Les inscriptions peuvent être particulières s il s agit d une inscription en double cursus ou en alternance. Les inscriptions en alternance ont besoin de l accord du CFA, et ce cas particulier est de la responsabilité de certains membres de la scolarité. L inscription en double cursus peut être gérée par n importe quel agent de la scolarité. Une fois l inscription terminée, il faut imprimer la carte d étudiant, à l aide d une imprimante spéciale. Que ce soit pour inscrire, modifier ou supprimer une inscription, la scolarité doit pouvoir vérifier le paiement des droits d inscription. 44 / 51
L inscription à l université Diagramme Système de gestion des inscriptions Système de gestion des inscriptions Vérifier paiement Scolarité Inscrire Modifier inscription Supprimer inscription Imprimer carte étudiant Imprimante Inscrire en double cursus 45 / 51 Scolarité FA Inscrire en alternance CFA
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. Identifier les cas. Associer les cas s et les acteurs. Trouver les dépendances (inclusion/extension) entre les cas. 46 / 51
L inscription à l université Diagramme Système de gestion des inscriptions Système de gestion des inscriptions Scolarité <<include>> Inscrire <<include>> Vérifier paiement <<include>> <<include>> Modifier inscription Supprimer inscription Imprimer carte étudiant Imprimante <<extend>> <<extend>> Inscrire en double cursus 47 / 51 Scolarité FA Inscrire en alternance CFA
Les différentes étapes de la construction du DCU Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. Identifier les cas. Associer les cas s et les acteurs. Trouver les dépendances (inclusion/extension) entre les cas. Supprimer les associations superflues. 48 / 51
L inscription à l université Diagramme Système de gestion des inscriptions Système de gestion des inscriptions Scolarité <<include>> Inscrire <<include>> Vérifier paiement <<include>> <<include>> Modifier inscription Supprimer inscription Imprimer carte étudiant Imprimante <<extend>> <<extend>> Inscrire en double cursus 49 / 51 Scolarité FA Inscrire en alternance CFA
Les différentes étapes de la construction du DCU 50 / 51 Attention! On va construire puis effacer des choses! Identifier les acteurs (et ce qui est dans le système). Identifier les héritages entre acteurs. Identifier les cas. Associer les cas s et les acteurs. Trouver les dépendances (inclusion/extension) entre les cas. Supprimer les associations superflues. Factoriser par héritage.
L inscription à l université Diagramme Système de gestion des inscriptions Système de gestion des inscriptions <<include>> Vérifier paiement Scolarité Gérer les inscriptions Inscrire Modifier inscription <<include>> Supprimer inscription Imprimer carte étudiant Imprimante <<extend>> <<extend>> Inscrire en double cursus 51 / 51 Scolarité FA Inscrire en alternance CFA