UE RSX050 - Bases de l`informatique - séance 2
Transcription
UE RSX050 - Bases de l`informatique - séance 2
CC30 Certificat de compétence Conception, développement et animation de sites Web UE RSX050 Bases de l’informatique Séance 2 UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 1 Table des matières Séance 2 – Introduction ...................................................................... 4 Moyens et logiciels............................................................................ 4 Programmation Objet et UML............................................................... 5 1 Présentation d’UML.................................................................... 5 1 Qu’est-ce qu’UML ? ................................................................. 5 1.1. Points forts d’UML ................................................................ 6 1.2. Points faibles d’UML ............................................................. 6 1.3. Historique d’UML ................................................................. 6 2 Dictionnaire............................................................................. 7 3 Quelques outils UML ................................................................... 8 3.1. Outils de modélisation ........................................................... 8 3.2. Outils orientés génération de code ...........................................10 3.3. Autres outils ......................................................................11 4 Types de diagrammes ................................................................12 5 Résumé des diagrammes UML .......................................................14 Bibliographie ................................................................................. 15 UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 2 Table des illustrations Figure 1 La famille des diagrammes UML..................................................13 UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 3 Séance 2 – Introduction Le but de cette séance est d’énoncer les concepts UML et de présenter sommairement les 13 types de diagramme et leur classification. A l’issue de cette séance, l’élève devra être capable de connaître la finalité de chacun des diagrammes, et leur degré d’importance. Il aura, par ailleurs, pris connaissance de quelques outils possibles qui reposent sur la technologie UML. Moyens et logiciels L’outil Star UML et/ou l’outil Eclipse MDT sont supports de référence à ce cours pour créer des diagrammes UML. Les exercices se feront à l’aide de cet outil. Aucune notion de programmation à proprement parler n’est nécessaire pour cette séance. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 4 Programmation Objet et UML 1 Présentation d’UML 1 Qu’est-ce qu’UML ? UML signifie « Unified Modeling Language », langage de modélisation unifiée. Chaque mot a son importance : Modélisation : UML permet avant toute chose de modéliser des systèmes informatiques, et donc de les concevoir de façon théorique, ou encore de les abstraire. Modéliser permet de simplifier la réflexion, observer les choses selon un contexte simplifié, orienté. Un modèle peut d’ailleurs rester théorique et ne jamais être mis en pratique. Langage : UML est un outil de communication. Il demande à ce que les différents interlocuteurs connaissent au minimum les rudiments du langage. Mais nul besoin de connaître tout le vocabulaire ou d’être syntaxiquement irréprochable, il sera possible de communiquer à différents niveaux d’expertises. Le même langage pourra être utilisé par des équipes fonctionnelles ou techniques, des experts ou des débutants, des équipes françaises ou indiennes. Chacun peut utiliser le langage comme bon lui semble et le détourner. Le langage est lui-même extensible et peut s’enrichir de nouveaux concepts rajoutés, pour une utilisation précise. Le langage pourra enfin être traduit en d’autres langages, par exemple dans un langage de type code. Tout l’art réside alors dans la qualité des interprètes ! Unifiée : UML a été conçu à l’origine afin d’unifier les pratiques de modélisation objet qui pullulaient. Unifier signifie prendre le bon de chaque méthode, harmoniser, simplifier, converger. La version d’UML étudiée dans ce cours est la version 2.0. Cette version définit 13 types de diagramme. UML est un langage de modélisation, mais n’est pas une méthode. Une méthode associe un modèle (exemple UML) et une démarche, un processus, exemple RUP (Rational Unified Process). UML est un langage unifié, c'est-à-dire une synthèse de nombreuses notations. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 5 Les objectifs d’UML sont les suivants : Fournir aux utilisateurs un langage prêt à l’emploi, visuel pour développer et échanger des modèles compréhensifs. Fournir un mécanisme d’extensibilité et de spécialisation pour pouvoir au besoin étendre les besoins cœurs. Supporter les spécifications qui sont indépendantes des langages de programmation ou des processus de développement Fournir une base formelle pour comprendre le langage de modélisation Encourager et promouvoir les langages objets et les outils orientés objet Supporter des concepts de développement de haut-niveau tels que les frameworks de composants ou de collaboration, ou les « patterns ». Cadrer l’analyse objet Intégrer les meilleurs pratiques Via UML, on peut modéliser les aspects métier (processus, entité de gestion, organisation), les systèmes informatiques (logiciels avec IHM, batchs, bases de données) et bien d’autre encore. UML repose sur un méta-modèle, et n’est pas une notation fermée. UML est configurable par l’utilisateur, son extension est maitrisée grâce au méta-modèle. Il n’existe pas une représentation graphique pour tout. 1.1. Points forts d’UML UML offre des gains de précision, de stabilité et encourage l’utilisation d’outils (industrialisation). UML est surtout un support de communication performant, qui cadre l’analyse, facilite la compréhension de représentations abstraites complexes. Son caractère polyvalent et sa souplesse en font un langage universel. 1.2. Points faibles d’UML La mise en pratique d’UML nécessite un apprentissage et passe par une période d’adaptation. Le processus de développement, non couvert par UML, est une autre clé de la réussite d’un projet. Les outils UML sont parfois difficiles à prendre en main, peuvent être onéreux, et présentent tous des inconvénients et avantages (choix difficile). 1.3. Historique d’UML Les premiers langages de programmation objet ont vu le jour avec des langages tels que Simula (67), Smalltalk (76), C++ (années 80), Ada, Eiffel, Objective Loops. Java est lancé par Sun en 1995. UML unifie les méthodes qui existaient : La méthode Booch a été créée pour faciliter la conception objet. La conception détaillée a forcé les analystes à créer des modèles d’analyse (Rumbaugh). L’expression des besoins a vu naître la notion de cas d’utilisation (jacobson). UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 6 Ceci correspond à l’Object Oriented Paradigm Shift. … En 1996, une centaine de méthodes d’analyse, conception orientées objets sont recensées. UML est donc la synthèse des travaux de Grady Booch (OOD), Jim Rumbaugh (OMT), Ivar Jacobson ( OOSE) et d’autres. UML est alors adopté par l’OMG. Historique des versions: Septembre 1997 : version 1.1. Septembre 1999 : version 1.3 Juillet 2004 : version 2.0 Avril 2006 : version 2.1 Février 2007 : version 2.1.1 Depuis Novembre 2007, l’OMG diffuse la version 2.1.2 d’UML et travaille activement sur la version 2.2. 2 Dictionnaire Créer un dictionnaire est une étape qui ne fait pas forcément partie d’UML mais qui est une bonne pratique à mettre en œuvre sur tout projet qui utilise UML. En effet, que ce soit au stade des spécifications, de la conception, de l’implémentation ou du rétro-engineering d’un système, il est toujours nécessaire d’exploiter des concepts qui sont inhérents au système en lui-même. Les objets qui sont manipulés ne sont le plus souvent que la représentation formelle de quelques concepts métiers, qu’il est conseillé de définir clairement pour un bon entendement. Même les experts sur le sujet gagne à réfléchir sur une définition précise d’un concept, et ont parfois la surprise de découvrir que le même concept peut être mal-approprié par différentes personnes/ équipes. Avant même de pouvoir modéliser un système, il est donc important de recenser tous les concepts métier et de leur apposer une définition claire. Ceci facilitera la communication par la suite, mais aussi, en général, cela permet de commencer le travail de découverte des objets métiers. Exercice : on désire développer une application qui permet de commander des peintures de grands-peintres. Etablir un dictionnaire qui permet de deviner les concepts objets qui vont naître. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 7 3 Quelques outils UML 3.1. Outils de modélisation 3.1.1. Outils gratuits 3.1.1.1. StarUML StarUML est un outil complet qui permet de créer presque tous les diagrammes UML 2.0 et offre des fonctions de reverse-engineering exploitable. Ne fonctionne que sous Windows. 3.1.1.2. Eclipse MDT Eclipse MDT (Modeling Development tools) est un outil complet qui permet de créer presque tous les diagrammes UML 2.0 et offre des fonctions de reverseengineering exploitable. C’est l’outil qui devrait s’imposer dans les années à venir comme l’outil de référence. Il est téléchargeable à l’URL suivante : http://www.eclipse.org/downloads/download.php?file=/technology/epp/download s/release/galileo/SR1/eclipse-modeling-galileo-SR1-incubation-win32.zip. 3.1.1.3. ArgoUML ArgoUML est un outil qui a connu un réel succès en 2002, pour avoir été l’outil gratuit le plus abouti à cette époque. Il présente l’avantage de sa simplicité mais est déconseillé pour une utilisation extensive, la tenue en performances étant limitée. Il fonctionne sous Windows, Linux et Solaris par exemple. Adapté pour le standard UML 1.1. L’outil ne supporte pas tous les diagrammes. 3.1.1.4. BOUML BOUML est un outil UML 2 libre développé à l'aide de Qt. Outre les diagrammes, il propose aussi le reverse engineering et la génération de code C++ ou Java. Il est extensible. 3.1.1.5. Papyrus Papyrus est un outil open source (licence EPL) basé lui aussi sur la technologie Eclipse, version graphique du plugin UML2 de Eclipse. Il est téléchargeable à l’URL suivante : http://www.papyrusuml.org/. Les fonctionnalités de la version 1.10 sont les suivantes : Support d’Eclipse UML2 Respect UML2 tel que définit par l’OMG Respect du standard DI2 (Diagram Interchange ) Architecture extensible (plugins) pour ajouter des fonctions (diagrammes , générateurs de code, …) Support pour les profiles UML2. Utilisation des contraintes OCL dans la description des profiles. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 8 3.1.1.6. Autres Nous pouvons encore citer : ATL solution open source pour faire des transformations de modèles vers ou depuis UML (entre autres); ATL est un langage de type QVT ; Delphia Object Modeler (version personnelle), Outil de modélisation et de prototypage. Diagrammes de classe et d'état. Langage objet intégré. Générateur de Java ; Dia, logiciel de diagrammes pour GNOME ; Eclipse GMT-UMLX ; Eclipse UML2, méta modèle UML2, sans interface graphique ; Gaphor un modeleur UML sous GNU GPL ; Netbeans de Sun ; Neptune outil permettant de vérifier les modèles UML1.x via des règles OCL ; TOPCASED atelier en cours de développement basé sur la plate-forme Eclipse qui propose un éditeur UML2. Violet UML modeleur UML, autonome ou plugin pour Eclipse. Open States Machines Designer Editeur graphique de diagrammes à états transitions. Tibco business studio, un logiciel gratuit de modelisation de process 3.1.2. Outils de modélisation payants 3.1.2.1. Rational Software Architect / Rational Software Modeler, Rational Rose Incontestablement leader Mondial en outil de Modélisation UML, Rational propose des solutions robustes, industrielles, mais coûteuses. Plus que des outils UML, les outils UML sont plus des outils qui permettent la mise en œuvre du processus de développement poussé par Rational, le processus RUP (Rational Universal Process). 3.1.2.2. Objecteering (Softeam) Softeam (www.softeam.fr) a participe à la définition des standards actuels et futurs pour UML tels que MDA (Model Driven Architecture), SPEM (Software Process Engineering Metamodel) et UML 2. Objecteering/UML supporte la démarche MDATM de l'OMG (Object Management Group). Comparablement aux outils Rational, c’est un outil qui promeut une méthode de travail, en plus d’être un excellent modeleur UML. Pour plus d’informations : www.objecteering.com. 3.1.2.3. Borland Together / Model Maker Together est un outil Borland. Il s’intègre donc plus particulièrement avec les environnements de développement de l’éditeur, notamment JBuilder en java. Cette intégration permet notamment de travailler tout aussi bien au niveau modèle ou au niveau code, par fonctionnalités de retro-engineering. Ecrit en pur Java, il fonctionne dans des environnements Windows, Linux ou encore Solaris. ModelMaker est un outil écrit en Delphi dédié Delphi. Permet de s’interfacer avec du code Delphi donc. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 9 3.1.2.4. Gentelware Poseidon Issu du projet Open Source argoUML, Poseidon est un bon outil mais qui hérite des lacunes d’ArgoUML (tenue en performances délicate). 3.1.2.5. Omondo eclipseUML Propose une version gratuite qui ne permet pas le travail en équipe. Omondo, aussi appelé EcliseFreeUML est un outil très (trop ?) lié à l’outil Eclipse. 3.1.2.6. Umbrella UML Modeler Modeler modeleur UML sous GNU GPL pour KDE. 3.1.2.7. Microsoft Visio Visio est l’outil choisi par Microsoft pour créer des diagrammes UML et s’interfacer avec les solutions C++ et C# (visual Studio). 3.1.2.8. Sybase PowerAMC / PowerDesigner PowerAMC / PowerDesigner est un outil de modélisation complet intégrant l'UML en plus des classiques MCD, MPD ... 3.1.2.9. Telelogic Rhapsody, TAU Telelogic propose Rhapsody Modeler, un ensemble d'outil de modélisation UML pour une modélisation PSM (Platform Specific Model) complète de systèmes ou de logiciels embarqués et Telelogic Tau, pour la modélisation PIM (Platform Independant Model) de systèmes ou de logiciels, pour la modélisation d'architectures SOA ou l'implémentation d'applications pour architecture SOA. 3.1.2.10. Autres Nous pouvons encore citer les outils suivants : Enterprise Architect, un outil de modélisation UML ; Jude , en Java ; MagicDraw, un éditeur de diagrammes UML ; SDE for Eclipse, un plugin UML pour Eclipse ; Visual Paradigm for UML, de Visual Paradigm Internation Ltd. ; Delphia Object Modeler (version commerciale), Outil de modélisation et de prototypage. Diagrammes de classe et d'état. Langage objet intégré. Générateur de Java ; 3.2. Outils orientés génération de code Nous pouvons citer des outils gratuits: Acceleo, générateur de code source à partir de modèles UML ; intégré à Eclipse MDT. AndroMDA, atelier de génération de code à partir de modèles tels UML sous licence BSD ; des générateurs diverses comme J2EE ou .NET sont disponibles ; UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 10 PauWare moteur d'exécution Java des State Machine Diagrams et Sequence Diagrams d'UML 2 ; Ou des outils payants : BLU AGE, un atelier MDA permettant une transformation 100% automatisée de vos diagrammes UML 2.X en applications Java EE et .Net ; 3.3. Autres outils 3.3.1. Outils merise Win'Design Object est un des modules de Win'Design, logiciel de conception de systèmes d'information. Win'Design Object propose les modélisations UML1.5 suivantes : diagramme de classes, diagramme de cas d'utilisation, diagramme de séquence. diagramme de collaboration diagramme d'activité et marginalement diagramme de déploiement et diagramme de composants En proposant, dans le même outil, des modélisations Merise et UML, Win'Design offre aux concepteurs de disposer des meilleures modélisations adaptées à chaque problématique et aux diversités de cultures. 3.3.2. Outils de qualimétrie, mesure de la qualité d’un modèle UML MetricView Evolution est un outil qui mesure la qualité d’un modèle UML. SDMetrics: a UML-design quality-measurement and design-rule-checking tool UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 11 4 Types de diagrammes On distingue trois types de diagramme, les diagrammes de comportement, les diagrammes d’interaction, et les diagrammes de structure. Les diagrammes de comportement décrivent les fonctions dynamiques d’un système ou d’un processus métier. Les diagrammes de comportement ou diagrammes dynamiques définis par UML 2.0 sont: Les diagrammes d’état Les diagrammes d’activités Les diagrammes de cas d’utilisation Tous les diagrammes d’interaction Les diagrammes d’interaction sont une sous partie des diagrammes de comportement qui soulignent les interactions entre objet. On dénombre: Les diagrammes de communication, Les diagrammes de séquence Les diagrammes de temps Les diagrammes globaux d’interaction Les diagrammes de structure décrivent des états indépendants de la variable temps et compte : Les diagrammes de classes Les diagrammes de structures composites Les diagrammes de composants Les diagrammes de déploiement Les diagrammes d’objets Les diagrammes de paquetages Les diagrammes de comportement et d’interaction forment les diagrammes dynamiques, ou vue dynamique. Les diagrammes de structure forment eux la vue statique. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 12 La figure suivante catégorise plus finement les diagrammes : Figure 1 La famille des diagrammes UML Décrire un système en général se fera efficacement en présentation la vue statique d’un côté, et la vue dynamique de l’autre. UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 13 5 Résumé des diagrammes UML Le Tableau suivant présente la liste des diagrammes UML et leur importance. Diagramme Description Diagramme de classes Diagramme de paquetages Décrit les éléments statiques : classes, types, leurs contenus et leurs relations. Décrit comment les éléments du modèle sont classifies en paquetage ainsi que les dépendances entre paquetages. Décrit les composants qui composent une application, un système, ou une entreprise. Les composants, leurs interrelations, leurs interfaces publiques sont décrits. Montre l’architecture d’exécution de systèmes. Cela inclut les nœuds, les environnements d’exécution matériels ou logiciels, mais aussi les middlewares qui les connectent. Décrit la structure interne d’un conteneur (telle une classe, un composant, ou un cas d’utilisation), y compris les points d’interaction avec les autres conteneurs du système. Décrit les objets et leur relation à un instant donné, On peut ainsi représenter les instances issus d’un diagramme de classes ou d’un diagramme de communication. Décrit les processus de haut niveau, y compris les flux de données, ou bien permet de modéliser la logique interne d’un système (modélisation de processus). Décrit les états d’un objet ou d’une interaction, ainsi que les transitions d’un état à l’autre. Structure Priorité d’importance Haute Structure Normale Structure Normale Structure Normale Structure Basse Structure Basse Montre les cas d’utilisation, les acteurs, et leurs relations. Modélise la logique séquentielle, c’est à dire les enchainements d’appel de méthode entre objets. Variante d’un diagramme d’activité, qui permet de rendre compte globalement d’un flux de contrôle à l’intérieur d’un système ou d’un processus métier. Chaque nœud (activité) à l’intérieur du diagramme peut représenter un diagramme d’interaction. Décrit les changements d’états ou de condition d’un conteneur ou d’un rôle au fil du temps. Est utilise plus particulièrement pour montrer les changements d’at d’un objet au cours du temps en réponse aux événements extérieurs. Montre les instances de classe, leurs relations, et le flux de messages entre eux. Les diagrammes de communication ciblent l’organisation structurelle des objets qui envoient et reçoivent des messages. Remplace le diagramme de collaboration. Comportement Normale Diagramme de composants Diagrammes de déploiement Diagramme de structures composites Diagramme d’objets Diagramme d’activité Diagramme d’étatstransitions Diagramme de cas d’utilisation Diagramme de séquences Diagramme global d’interaction Diagramme de temps Diagramme de communication Type Comportement Haute Comportement Normale Interaction Haute Interaction Basse Interaction Basse Interaction Basse UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 14 6 Ce qu’il faut retenir de cette séance A l’issue de cette séance, l’élève devra connaître • La définition d’UML • la nécessité d’établir un dictionnaire avant tout projet informatique • les types d’outils UML existants • Les types de diagrammes qu’UML propose Bibliographie Description Site officiel UML Tutorial UML en français Site FTP de téléchargement de l’OMG Tutorial UML Tutorial UML Tutorial UML Outils UML Outils UML Eclipse MDT Papyrus StarUML BlueAge ArgoUML BOUML Rational Borland Telelogic Poseidon Omondo Sybase Umbrello Jude Site www.uml.org www.uml.free.fr ftp://ftp.omg.org http://www.sparxsystems.com.au/resources/uml2_tutorial/ http://dn.codegear.com/article/31863 http://www.smartdraw.com/tutorials/software/uml/tutorial_0 1.htm http://uml.developpez.com/outils/ http://en.wikipedia.org/wiki/List_of_UML_tools http://www.eclipse.org/home/categories/index.php?category= modeling http://www.papyrusuml.org/ http://www.staruml.com/ http://www.bluage.com/index.php?cID=fr_uml_tools http://argouml.tigris.org/ http://bouml.free.fr/index_fr.html http://www-01.ibm.com/software/fr/rational/ http://www.borland.com/fr/products/together/index.html http://www.telelogic.fr/products/tau/index.cfm http://www.gentleware.com/ http://www.eclipsedownload.com/ http://www.sybase.fr/ http://uml.sourceforge.net/ http://jude.change-vision.com/jude-web/index.html UERSX050 – Bases de l’informatique – séance 2 - 30/10/2009 15