Modélisation Objet avec UML
Transcription
Modélisation Objet avec UML
Modélisation avec UML – Philippe Lalevée 14/11/2013 Cycle ISMIN – 2e année Version 1.0 Introduction à la Modélisation Objet avec UML Philippe LALEVÉE ENSM-SE / CMP Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 1 Quelques mots d’introduction PRÉSENTATION Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 2 1 Modélisation avec UML – Philippe Lalevée 14/11/2013 Objectifs • Modélisation et conception de systèmes informatiques basées sur UML – Cycle de vie – Méthodologies • Principes généraux de la modélisation • Présentation du langage UML – Histoire et nécessités – Diagrammes structurels et comportementaux • Réalisation d’une étude de cas – Travail en groupes – Soutenance finale Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 3 La fiche programme • Séance 1 : Modélisation orientée Objet, principes – Méthodologie et modélisation – Conception et Programmation Orientée Objet – Focus sur « Unified Process » • Lecture 2: Evolution of UML – Objective of programming and software crisis – History and advantage of UML • Lecture 3: Structure (Static) Diagrams – Define objects, classes, relationships, operations and attributes – Class, object, package, component, deployment diagrams • Lectures 4 & 5: Behavior (Dynamic) Diagrams – – – – – Understand system behavior and scenarios Design use case, activity, state machine diagrams Realize object behavior and interactions Implement interaction (sequence, collaboration) diagrams Review the modeling architecture • Exam: Project Evaluation – Oral presentation of selected case – Tutor and peer review Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 4 2 Modélisation avec UML – Philippe Lalevée 14/11/2013 Les enseignants… • Responsable du GP – François JAUJARD [email protected] • Responsable de l’UP et enseignant des TD UML – Jakey Blue [email protected] • Enseignant cours introduction – Philippe LALEVÉE Année 2013-2014 [email protected] ISMIN - 2A -M O U (version 1.0) 5 Bibliographie • Sources principales du cours – Object-oriented Analysis and Design: Understanding System Development with UML 2.0. M. O’Docherty. Wiley & Sons, 2005. – Head First Object-Oriented Analysis and Design. B. Mclaughlin, G. Pollice, D. West. O’Reilly, 2007. – Systems Analysis & Design with UML 2.0: An Object-Oriented Approach. A. Dennis, B. Wixom, D. Tegarden. Wiley & Sons, 2009 – Software Modeling & Design: UML, Uses Cases, Patterns & Software Architectures. H Gomaa, Cambridge University Press 2011. • Lectures conseillées – Systems Engineering with SysML/UML: Modeling, Analysis, Design. T. Weilkiens. Morgan Kaufmann, 2006. – Model-Based Development. H. Lahman. Addison-Wesley, 2011. – Essential Scrum: A Practical Guide to the Most Popular Agile Process. K. Rubin. Addison-Wesley, 2012. – Software Requirements. K. Wiegers, J. Beatty. Microsoft Press, 2013 Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 6 3 Modélisation avec UML – Philippe Lalevée 14/11/2013 Quelques éléments de compréhension CYCLE DE VIE DE DÉVELOPPEMENT Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 7 Développement d’un système • « Systems Development Life Cycle » – – – – Conception, réalisation et déploiement d’un système Répondre à des besoins création de valeur Système merveilleux ou système utile ? Cathédrale (Gaudì) ou cabanon ? • Phases fondamentales – – – – Planification Analyse Conception Implémentation • Chaque phase est composée d’étapes – Aspects techniques (outils) – Donnant lieu à la fourniture de livrables • Documents, fichiers, etc. Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 8 4 Modélisation avec UML – Philippe Lalevée 14/11/2013 Exercice : comment avez-vous procédé ? • Intégration dans une école – – – – Collecte d’information (recherche, contacts) Évaluation des brochures (critères, choix) Inscription (formulaires, documents) Acceptation (contrat, paiement) • Construction d’une maison – – – – Idées générales (besoins) Plans (interactions client) Maquettes (maîtrise d’ouvrage) Construction (réalisation) Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 9 Invariants de gestion de projet PHASES ET ÉTAPES DE DÉVELOPPEMENT Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 10 5 Modélisation avec UML – Philippe Lalevée 14/11/2013 Principes généraux • Illusion d’un chemin logique d’un « début » vers une « fin » étape par étape – En fait, le parcours peut prendre toute forme : • • • • Incrémentale Itérative Chaotique … • Nécessité de maîtriser les phases et les étapes et/pour en contrôler le parcours • Amélioration (refinement) graduelle étape par étape, phase par phase – Les livrables sont « raffinés » à chaque étape, chaque phase – Ces raffinements impactent le parcours – Le dernier livrable est le système final Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 11 Phase de planification • Étape initiale – Étude des besoins • Améliorations de l’existant • Fonctionnalités attendues – Étude de faisabilité : • Technique : peut-on le construire ? • Économique : créera-t-il de la valeur ? • Organisationnelle : sera-t-il utile et utilisé ? « Approval committee » : doit-on « entreprendre » le projet ? • Gestion de projet – Échéancier prévisionnel – Équipe projet – Technologies nécessaires « Cahier des charges » : comment le projet sera développé ? Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 12 6 Modélisation avec UML – Philippe Lalevée 14/11/2013 Phase d’analyse • Réponses aux questions : – Qui va utiliser le système ? – Que va faire le système ? – Où et quand le système sera utilisé ? • Analyse stratégique – Analyse de l’existant : problèmes – Nouveau système : solutions • Recueil des exigences – Spécifications fonctionnelles – Modèle de processus métier et de données Réponse technique Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 13 Phase de conception • Comment le système va fonctionner ? Matériel ? Logiciel ? Réseau ? IHM ? Formulaires ? Rapports ? Programmes ? Bases de données ? Fichiers ? • Stratégie de conception – En interne ? Par un prestataire (outsourcing) ? – Achat d’un système existant ? Externalisation (offshore) ? • Architecture générale – – – – Besoins techniques Interfaces utilisateurs (besoins fonctionnels) Spécifications des données métier Décomposition et organisation du système Spécifications techniques : point de départ de la réalisation Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 14 7 Modélisation avec UML – Philippe Lalevée 14/11/2013 Phase de réalisation • Construction effective du système – – – – Développement (ou achat…) Tests unitaires Tests fonctionnels Recette • Installation et déploiement – Phase de transition ancien / nouveau système – Plan de formation / Conduite du changement – Plan de maintenance Système final ! Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 15 Exercices • Le projet de « programmation système d’exploitation » – Retrouvez les phases et étapes – Retrouvez les livrables demandés dans celles-ci – Comment avez-vous géré votre projet ? • Votre projet industriel – Quelles seront les phases et étapes ? – Quels sont les livrables demandés dans celui-ci ? – Comment allez-vous gérer votre projet ? Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 16 8 Modélisation avec UML – Philippe Lalevée 14/11/2013 Un peu de culture LES MÉTHODOLOGIES Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 17 Méthode ? Méthodologie ? • Étymologie : « Recherche d'un chemin pour réaliser quelque chose » Approche formelle pour réaliser le cycle de vie de développement d’un système – Selon Larousse: • Ensemble ordonné de manière logique de principes, de règles, d'étapes, qui constitue un moyen pour parvenir à un résultat – Selon wikipédia : • Démarche systématique, qui permet de décomposer le thème d'étude en tâches simples, à appliquer pas à pas, éventuellement avec une liste de contrôle « Pense-bête » d'actions à ne pas oublier, check list, etc. • Méthodologie : Étude des méthodes permettant de réaliser des projets similaires (≈ méta-méthode) Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 18 9 Modélisation avec UML – Philippe Lalevée 14/11/2013 Conception structurée : principes • Le développement est effectué phase par phase, étape par étape – Chaque étape/phase part des résultats de l’étape/phase précédente – Rôles : analystes développeurs programmeurs • Application des principes de programmation – Programmation structurée – Programmation modulaire – Compilation séparée Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 19 Conception structurée : méthodes • Cascade Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 20 10 Modélisation avec UML – Philippe Lalevée 14/11/2013 Conception structurée : méthodes • Cycle en V Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 21 « Rapid Application Development » : principes • Réponses aux inconvénients des méthodes structurées – Adaptation des phases et étapes pour « fournir » rapidement « un » système – La responsabilité du temps consacré aux phases et étapes est laissée aux acteurs – Meilleure prise en compte du système final • Utilisation d’outils – Computer-Aided Software Engineering – Visual programming – Génération de code Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 22 11 Modélisation avec UML – Philippe Lalevée 14/11/2013 « Rapid Application Development » : méthodes • Par phases Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 23 « Rapid Application Development » : méthodes • Par prototypes Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 24 12 Modélisation avec UML – Philippe Lalevée 14/11/2013 « Agile Development » : principes • Centrée sur la production de code – Limiter la modélisation – Construire la documentation en même temps que le code • Développement itératifs – Boucles (par phase) ou ellipse (par étape) – Production d’un livrable « à chaque tour » • Meilleure adaptation – Réduction des délais de livraison – Prise en compte de besoins fonctionnels variables http://computertrainingcenters.com/agile-development-meets-customer-needs/ Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 25 « Agile Development » : méthode • eXtreme Programming http://www.extremeprogramming.org/introduction.html Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 26 13 Modélisation avec UML – Philippe Lalevée 14/11/2013 « Agile Development » : méthode • SCRUM http://www.agileforall.com/intro-to-agile/ Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 27 Critères de choix Type Cascade Cycle en V Phase Prototype XP SCRUM Spécifications peu claires Faible Bon Bon Excellent Excellent Excellent Technologies non maîtrisées Faible Faible Bon Faible Faible Faible Complexe Bon Bon Bon Faible Faible Faible Forte fiabilité Bon Bon Bon Faible Bon Bon Livraison rapide Faible Faible Excellent Excellent Excellent Excellent Agenda prévisible Faible Bon Excellent Excellent Bon Excellent Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 28 14 Modélisation avec UML – Philippe Lalevée 14/11/2013 Exercices • Vous êtes un analyste pour une importante compagnie de consultants en logiciels, avec des bureaux basés partout dans le monde, qui veut bâtir un système de « Knowledge Management » lui permettant d’identifier et mesurer l’expertise de ses consultants, à partir de leur formation et des projets sur lesquels ils ont travaillé. Les bureaux de chaque pays utilisent des matériels et des logiciels tous différents. Vous avez un an pour réaliser et déployer ce système, en supposant qu’il s’agit d’un tout nouveau projet. – Quelle méthode recommandez-vous ? Pourquoi ? • Votre projet de « programmation système d’exploitation » – Quelle méthode fallait-il choisir ? Pourquoi ? – Quelle méthode ne fallait-il pas choisir ? Pourquoi ? • Votre projet industriel – Quelle méthode faudrait-il choisir ? Pourquoi ? – Quelle méthode ne faudrait-il pas choisir ? Pourquoi ? Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 29 Représenter le monde réel LA MODÉLISATION Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 30 15 Modélisation avec UML – Philippe Lalevée 14/11/2013 Modélisation (modeling) • Modélisation : Conception d’un modèle – Selon l’OMG : « modeling is the designing of software applications before coding » – Pratique consistant à construire d’abord un prototype, concret ou conceptuel, qui servira de « modèle » à une construction réelle – Nombreux domaines d’application • Modèle : Représentation d’un objet réel – Le modèle devient un assemblage de concepts (abstraction) représentant de manière simplifiée une chose réelle déjà existante en vue de la comprendre, d’en prédire le comportement, etc. Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 31 Modélisation en informatique Réalité Problème Besoins Solution ? Virtuel Analyse Modélisation Résultats Exécution Déploiement Système solution Modèle Conception Réalisation Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 32 16 Modélisation avec UML – Philippe Lalevée 14/11/2013 Intérêts de modéliser • Au cœur du développement logiciel qui nécessite un « plan », cela permet une représentation simple d’une activité – – – – – – Fournit une contexte structuré pour résoudre des problèmes Permet d’expérimenter et d’explorer des solutions Offre des perspectives différentes (vues) Fournit des abstractions pour gérer la complexité Réduit le temps de réalisation et diminue les coûts de développement Limite le risque d’erreurs, augmente la qualité et la satisfaction utilisateur • Pas de besoin de modélisation quand – Le système est « petit » avec un seul développeur – Pas de transmission à d’autres personnes (pas de maintenance) • Il faut une modélisation quand : – Le système est très « grand » avec de nombreux développeurs (4 ? ) – Développement itératif – Maintenance Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 33 Modélisation dans les S. I. • L’évolution des S.I. apporte de nouvelles limites – Toutes les activités liées à toute les méthodes de développement nécessitent d’être modélisées Un modèle par activité et par méthode – Hypothèses de conception remises en cause : stabilité, besoins donnés au départ, besoins non fonctionnels… – Complexité des systèmes d’information : ouverts, hétérogènes, répartis – Architectures distribuées, multi-tier, en couches, à composants, orientées service – Influence de l’approche objet (langages) : abstraction, intégration données/traitements • De nouveaux modes de conception – – – – – L’analyse et la conception orientées objet La conception par réutilisation La conception conduite par l’usage La conception centrée sur l’architecture Le processus de conception adaptable Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 34 17 Modélisation avec UML – Philippe Lalevée 14/11/2013 Exercice personnel • Établissez un glossaire personnel des termes importants – – – – – – – – – Modèle / Modélisation Prototype Structurel / Comportemental Abstraction Objet / Composant Besoins fonctionnels Systèmes ouverts / répartis Architecture multi-tier / orientées service … Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 35 Premiers éléments pour développer un système MÉTHODE « UNIFIED PROCESS » Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 36 18 Modélisation avec UML – Philippe Lalevée 14/11/2013 Comment appréhender le système ? • Vision centrée sur les processus métier – Le système est décomposé en processus métier – L’enchainement des processus pilote son fonctionnement • Vision centrée sur les données – Le système est modélisé par les données qu’il gère – Le changement des données (provoqués par les traitements) pilote son fonctionnement • Vision mixte – Les visions processus et données sont gérées en même temps : analyse systémique – Logiques distinctes, peu compatibles et difficilement mises en adéquation – Exemple : MERISE • Approche « orientée objet » – Vision hybride : la séparation processus et données est retardée (traçabilité) – Le système est décomposé en ses principaux composants – Unification de l’approche pour chaque étape / phase Unified Process ! Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 37 Unified Process : généralités • Cycle de développement organisé en 4 phases : – Initialisation : définition de la portée et de la faisabilité du projet – Élaboration : planification du projet, spécifications des fonctionnalités, construire l’architecture – Construction : construction du produit – Transition : appropriation du produit par les utilisateurs • Et en 5 activités répétées en itération par phase (raffinement) – – – – – Spécification des besoins : recueil des besoins et des spécifications Analyse : délimitation du système et scénarios d’usage Conception : élaboration du modèle fonctionnel Implantation : construction et déploiement Test : recette Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 38 19 Modélisation avec UML – Philippe Lalevée 14/11/2013 Unified Process : les « livrables » • Ensemble de modèles – – – – – Modèle des cas d’utilisation Modèle d’analyse Modèle de conception Modèle de déploiement Modèle de test • Les modèles – sont raffinés dans chaque phase / itération – évoluent en parallèle • D’autres résultats : documents, planning, etc. Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 39 Unified Process : variante 2TUP (« en Y ») • 2TUP : « 2 Tracks Unified Process » Contraintes Fonctionnelles Spécification des besoins fonctionnels Analyse Spécification des besoins techniques Conception générique Conception Préliminaire Branche Fonctionnelle Contraintes Techniques Conception détaillée Prototype Branche Technique Implantation Tests et recette Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 40 20 Modélisation avec UML – Philippe Lalevée 14/11/2013 Les activités • Spécification des besoins – Piloté par les usages – Cas d’utilisation • Analyse – Architecture fonctionnelle, logicielle et technique – Vue structurelle (statique) • Conception – Vue comportementale (dynamique) • Implantation et tests Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 41 Apports d’UML (Unified Modeling Language) • Notation standardisée unifiée – Fusion des principales notations précédentes – Expression « sûre » des résultats (sémantique) – Langage graphique (visuel) orienté objet • Capitalisation (et réutilisation) du savoir-faire sous forme de « patterns » • Ensemble cohérent de techniques de modélisation – – – – – Différents points de vue Différentes dimensions Différents niveaux d’abstraction Différents niveaux de détail Différentes perspectives • Mais UML … – … n’est pas une méthode ! – … ne propose qu’une notation nécessité de disposer d’outils Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 42 21 Modélisation avec UML – Philippe Lalevée 14/11/2013 Principes « orienté objet » (révisions ?) • Encapsulation • Abstraction – Séparation interface de la réalisation – Partie publique / privée – “Concept or idea not associated with any specific instance” – Pas d’instance en propre – Classe abstraite = partition de classes concrètes • Objet – Attributs et méthodes – Instances d’une classe • Spécialisation / Généralisation – Classification des types – Héritage simple – Union / intersection • Classe – Type abstrait de données – Ensemble d’instances • Polymorphisme • Associations – Support pour les messages entre instances – Relation, compositions, agrégations – Appartenance à un ensemble – Interface vers des types différents – Liaison retardée Exercice : illustrer avec des exemples Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 43 La démarche en marchant EXEMPLE COMMENTÉ Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 44 22 Modélisation avec UML – Philippe Lalevée 14/11/2013 Gestion d’une médiathèque : prêts • La médiathèque permet l’emprunt de documents, par des clients inscrits pour une durée et à un tarif donnés. Les clients remplissent une fiche le nom, le prénom et l’adresse. Ils peuvent payer à chaque emprunt (type tarif normal ou tarif réduit) ou payer une cotisation annuelle (type abonné). Le type fixe le nombre de documents empruntables et la durée de prêt. Le tarif réduit est vérifié à l'inscription, puis à chaque date anniversaire. • Les documents sont des CD, des DVD ou des livres. Ils ont un code unique et une localisation (salle/rayon). Certains ne sont que consultables. Les informations communes sont : le titre, le ou les auteurs et l'année de sortie. Le nombre d'emprunts est mémorisé pour chaque type. – Les CD ont un genre et une classification dans ce genre (opéra pour le genre classique). – Les DVD ont un genre, une durée et une mention légale de diffusion. – Les livres ont un genre et un nombre de pages. • Chaque emprunt est associé à une fiche : emprunteur, date du prêt et la date limite de chaque document. Les durées de prêt dépendent du type de document et de la catégorie du client. • Tout ajout/suppression de clients et de documents doit être possible. Les formats sont libres, mais les données devront être cohérentes (noms différents, même emprunt, etc.). Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 45 Gestion d’une médiathèque : règles de prêt • Un client ne peut pas emprunter plus d'un nombre de documents fixé par son type (tarif réduit: 1, tarif normal: 3 et abonné: 10). • Un client ayant un ou des documents non restitués avant sa date limite ne doit plus pouvoir en emprunter jusqu’à sa régularisation. Chaque soir, les fiches emprunt sont parcourues pour détecter celles hors délai : le client concerné est marqué et une lettre de rappel lui est envoyé. • Le tarif des emprunts dépend du type de document (livre: 1 €, CD: 2 € et DVD: 3 €) et du client (tarif normal: tarif de chaque document emprunté, tarif réduit: moitié du tarif normal, abonnés: la cotisation annuelle permet la gratuité des emprunts). • La durée des emprunts dépend du type de document (DVD: 15 jours, CD: 1 mois et livre: 6 semaines) et du client (tarif normal: durée nominale, tarif réduit: moitié de cette durée, abonnés: double de cette durée). QUESTIONS 1. 2. 3. Année 2013-2014 ISMIN – 2A - P2015 Quelle méthode choisissez-vous ? Pourquoi ? Donner le contexte du système Donner les acteurs ISMIN - 2A -M O U (version 1.0) 46 23 Modélisation avec UML – Philippe Lalevée 14/11/2013 Modélisation fonctionnelle • Délimitations du système – – – – Recherche des acteurs Recherche des cas d’utilisation Scénarios Contexte • Diagrammes – Use-case Diagrams – Activity Diagrams – Sequence Diagrams Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 47 Modélisation Structurelle • Délimitations du système – – – – Recherche des classes métier Recherche des instances principales Relations entre les classes / objets Spécifications (requirements) • Diagrammes – Class Diagrams Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 48 24 Modélisation avec UML – Philippe Lalevée 14/11/2013 Modélisation Comportementale • Délimitations du système – Recherche des classes métier – Recherche des instances principales – Relations entre les classes / objets • Diagrammes – Communication Diagrams – Sequence Diagrams – State Machine Diagrams Année 2013-2014 ISMIN - 2A -M O U (version 1.0) 49 Construction des diagrammes LA SUITE AVEC JAKEY… Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 50 25 Modélisation avec UML – Philippe Lalevée 14/11/2013 FIN Année 2013-2014 ISMIN – 2A - P2015 ISMIN - 2A -M O U (version 1.0) 51 26