modélisation orientée objet / uml - laurent henocquelaurent.henocque.com/oldsite/doc/modelisation...
TRANSCRIPT
Modélisation Orientée Objet / UML
Laurent Henocquehttp://laurent.henocque.free.fr/
Enseignant Chercheur ESIL/INFO Francehttp://laurent.henocque.perso.esil.univmed.fr/
mis à jour en Octobre 2006
Licence Creative Commons
Cette création est mise à disposition selon le Contrat Paternité-Partage des Conditions Initiales à l'Identique 2.0 France disponible en ligne
http://creativecommons.org/licenses/by-sa/2.0/fr/
ou par courrier postal à Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Références Normatives
• L'infrastructure UML • http://www.omg.org/cgi-bin/doc?formal/05-07-05 • La superstructure UML • http://www.omg.org/cgi-bin/doc?formal/05-07-04 • OCL • http://www.omg.org/cgi-bin/doc?ptc/05-06-06
Autres références
• Ce support de cours s'appuie sur des exemples concrets mis à disposition librement sur internet par différentes sources– http://www.rational.com– http://www.visualuml.com– http://uml.free.fr– http://http://www.sparxsystems.com.au/resourc
es/uml2_tutorial/index.html
Objectifs
• Présenter une vision globale du problème et des enjeux de la modélisation jusqu'à UML2 avec des exemples visuels.
Modèle <> Abstraction
• Un modèle est une représentation de la réalité faisant abstraction de larges niveaux de détail.
• S'il n'y a pas d'abstraction, il n'y a pas de modèle : on parle de la réalité
• Exemple de modèle : une maquette d'architecte
Modèle <> Point de vue
• Un même problème peut avoir des modèles selon de très nombreux points de vue
• On s'intéresse alors seulement à un aspect du problème
• Par exemple : le schéma électrique d'un bâtiment en architecture
Modèle <> Spécification
• Les modèles ont pour utilité première de décrire, pour communiquer
• Si l'on décrit pour communiquer avant de construire, le modèle tient lieu de document de spécification ou de conception
Modélisation en Informatique
Pour la conception : • diagramme d'activités décrivant un
algorithme• diagramme décrivant des classes avec leurs
relations héritage et les associations• un fichier ".h" déclarant des structures,
fonctions, classes et méthodes sans préciser leur implantation
Modélisation en Informatique
Pour la spécification• diagrammes de cas d'utilisation• diagrammes de séquence• diagrammes de composants• diagrammes de déploiement• diagrammes d'architecture• ...
Merise
• Une méthode conçue pour décrire des bases de données
• Permet de voir la base d'un coup d'œil, et de réfléchir aux optimisations à lui apporter (mise sous forme normale par exemple)
Avantages / Inconvénients
• Merise n'est pas orientée objet (même si des évolutions en ce sens sont apparues en même temps que d'autres méthodes plus populaires aujourd'hui)– diagrammes lourds– manque d'abstraction– ce n'est pas une méthode cognitive mais une méthode
technique• Très bien adaptée aux BD conventionnelles et
encore très utilisée
La méthode OOA
Object Oriented Analysis (Analyse Orientée Objet)
• Inventée par Grady Booch• Une des premières méthodes
"conceptuelles" ou cognitives• Née dans le sillage du langage ADA• Aujourd'hui noyée dans la méthode UML
Avantages / Inconvénients
• Prise en compte de l'héritage• Trop incomplète pour s'intégrer dans le
processus logiciel plus loin que dans l'analyse (spécification avancée)
La méthode OMT
• Object Modeling Technique (Technique de Modélisation Objet)
• Inventée par Rumbaugh• Tournée vers la conception• Orientée Objet
Avantages / Inconvénients
• A fait apparaître l'utilisation combinée de plusieurs diagrammes : diagrammes de classes / diagrammes d'états / diagrammes de flots
• A décrit le processus de raffinement d'un modèle• Les diagrammes de flots de UML n'ont jamais été
bien expliquée• La méthode est trop près du programme
La méthode OOSE
• Object Oriented Software Engineering
• Inventée par Jacobson• Une méthode pour l'analyse intitiale des
usages de logiciel, fondée sur les "Cas d'utilisation" (Use case)
Avantages / Inconvénients
• OOSE fournit la méthode permettant d'initier le processus de spécification / conception
• Aucun support pour faire évoluer la spécification vers une conception
• Ses diagrammes de composants et de flots ne sont pas convaincants
La méthode Objecteering
• Une méthode orientée objet, propriétaire (la société française Softeam),
• Populaire car elle était associée à un outil de "design", capable de générer du code
• En ce sens un premier vrai challenger orienté objet à Merise
Aujourd'hui UML 2.0
• Fusion de OOA / OOSE / OMT• Un standard de l' OMG• Associée à des outils : Rational Rose /
Poséidon / Borland Together / ...• Couvre tous les aspects de la spécification,
de l'analyse la plus initiale en passant par la génération de code au déploiement
• Très riche méthode cognitive
Modularité
• Une modification élémentaire du modèle ne doit pas engendrer de modifications globales du logiciel
Approche Fonctionnelle
• L'approche du développement logiciel centrée sur les fonctions est non modulaire :
• Un changement dans les données se répercute en des changements massifs et diffus dans le code
• Exemple : gestion de bibliothèque : on doit prendre en compte un nouveau type de média (vidéo par exemple)
Impact sur les Processus
• Permet de mieux séparer des activités qui sinon auraient été trop interdépendantes
Les aspects : un souci moderne de modularité
• Un exemple moderne de prise en compte de la modularité : la programmation orientée aspect
• Un aspect décrit des mécanismes ou des données qui s'étendent sur des ensembles de classes, indépendamment de la hiérarchie
• Exemple : le profiling• Les aspects pour Java : AspectJ