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