L approche Orientée Objet et UML

Documents pareils
UML (Diagramme de classes) Unified Modeling Language

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

Les diagrammes de modélisation

Université de Bangui. Modélisons en UML

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

UML (Paquetage) Unified Modeling Language

IFT2255 : Génie logiciel

Patrons de Conception (Design Patterns)

Bases de données. Chapitre 1. Introduction

Langage et Concepts de Programmation Objet. 1 Attributs et Méthodes d instance ou de classe. Travaux Dirigés no2

Méthodes d évolution de modèle produit dans les systèmes du type PLM

Apprendre la Programmation Orientée Objet avec le langage Java (avec exercices pratiques et corrigés)

Urbanisation des Systèmes d Information Architecture d Entreprise. 04 Architecture du SI : identifier et décrire les services, structurer le SI

Messagerie asynchrone et Services Web

Chapitre I : le langage UML et le processus unifié

GOL502 Industries de services

Cours STIM P8 TD 1 Génie Logiciel

Urbanisation des SI. Des composants technologiques disponibles. Urbanisation des Systèmes d'information Henry Boccon Gibod 1

Initiation à JAVA et à la programmation objet.

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Sommaire. Conduite de projet Méthode d analyse et de conception. Processus unifié. Objectifs d un processus de développement

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

Projet Active Object

Information utiles. webpage : Google+ : digiusto/

Le génie logiciel. maintenance de logiciels.

C est quoi le SWAT? Les équipes décrites par James Martin s appellent SWAT : Skilled With Advanced Tools.

Rappel sur les bases de données

Présentation générale de la méthode orientée objet : O.M.T. (Rumbaugh & al.)

Le Processus RUP. H. Kadima. Tester. Analyst. Performance Engineer. Database Administrator. Release Engineer. Project Leader. Designer / Developer

Objets et Programmation. origine des langages orientés-objet

TP1 : Initiation à Java et Eclipse

Description de la formation

NFP111 Systèmes et Applications Réparties

openarchitectureware & transformation de modèle Yannick Lizzi Architecte Logiciel itemis France Mail: lizzi@itemis.de

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Diagrammes de Package, de déploiement et de composants UML

Eléments de spécification des systèmes temps réel Pierre-Yves Duval (cppm)

Environnements de Développement

Table des matières Sources

Intégration de produits mécatroniques au sein d un système PLM

Méthodes de Conception Orientés Objet (MCOO) SOMMAIRE

Java - RMI Remote Method Invocation. Java - RMI

Semarchy Convergence for MDM La Plate-Forme MDM Évolutionnaire

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Comparaison de trois techniques de modélisation de processus: ADONIS, OSSAD et UML

Chapitre VI- La validation de la composition.

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

Chapitre VIII. Les bases de données. Orientées Objet. Motivation

Programmation Orientée Objet

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

ils entretiennent entre eux des flux, ils partagent des perceptions sur l environnement

Catalogue & Programme des formations 2015

Pascal Brunot Hadrien Cambazard UML FOR BUSINESS INTELLIGENCE PROJECT

Évaluation et implémentation des langages

Cours de Génie Logiciel

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

RTDS G3. Emmanuel Gaudin

Urbanisation des Systèmes d'information

Intégration de systèmes

INTRODUCTION AUX METHODES D INGENIERIE DES DONNEES DIRIGEE PAR LES MODELES

Introduction au Génie Logiciel

CQP Développeur Nouvelles Technologies (DNT)

Business Process Execution Language

Visual Paradigm Contraintes inter-associations

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

2 Chapitre 1 Introduction

Génie Logiciel avec Ada. 4 février 2013

Analyse,, Conception des Systèmes Informatiques

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

La démarche MDA. Auteur : Projet ACCORD (Assemblage de composants par contrats en environnement ouvert et réparti)*

UML et les Bases de Données

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Vérifier la qualité de vos applications logicielle de manière continue

Conception, architecture et urbanisation des systèmes d information

UML. Diagrammes de classes (suite) Delphine Longuet.

Conception des bases de données : Modèle Entité-Association

Mercredi 15 Janvier 2014

Cours Gestion de projet

Workflow et Service Oriented Architecture (SOA)

Génie Logiciel Avancé Cours 3 Le modèle à objets

Classeur de suivi de l auditeur. Architecture et Ingénierie des Systèmes et des Logiciels

Diagramme de classes

Mise en œuvre des serveurs d application

Master Informatique et Systèmes. Architecture des Systèmes d Information. 02 Architecture Applicative

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

Génie Logiciel. Rappels. C. Crochepeyre Génie Logiciel Rappels 1

Modélisation des données

Chapitre 3 - VODEL, un langage de description d architectures logicielles statiques et dynamiques

Management des processus opérationnels

Introduction aux intergiciels

Éléments de programmation et introduction à Java

Les Architectures Orientées Services (SOA)

Nom de l application

RAPPORT DE CONCEPTION UML :

Encapsulation. L'encapsulation consiste à rendre les membres d'un objet plus ou moins visibles pour les autres objets.

Cours 1 : La compilation

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

UML 2.0. (IUT, département informatique, 1 re année) Laurent AUDIBERT

Devenez un véritable développeur web en 3 mois!

Transcription:

L approche Orientée Objet et UML Rémy Courdier V2.8 1

Plan du cours Introduction au Génie Logiciel L approche Orientée Objet et UML Les diagrammes de modélisation Relations entre les différents diagrammes De l analyse à la conception Relation entre les notations OMT et UML Les Design Pattern Rémy Courdier V2.8 2

Conception et Objet Rémy Courdier V2.8 3

Chapitre 2 : L approche Orientée Objet Rappel des principes de l orienté objet Les Objets Les messages ou la communication entre objets Les classes Les relations entre les classes L héritage entre classes Les architectures à base d objets Rémy Courdier V2.8 4

2.1 Rappels des principes de l orienté objet 2.1. Rappels des principes de l orienté objet Calquer le découpage de la représentation informatique sur les entités physiques et virtuelles mises en jeu dans les processus réels que l on cherche à modéliser ou à automatiser Privilégier une approche architecturale pour implémenter des solutions à des problèmes plutôt qu une approche fonctionnelle visant à résoudre un problème posé ü Stabilité de la modélisation par rapport aux entités du monde réel ü Construction itérative facilitée par le couplage faible entre composants ü Possibilités de réutiliser des éléments d un développement à un Autre ü... Rémy Courdier V2.8 5

2.2 Les Objets 2.2 Les Objets Définition : ü Un objet définit une représentation d une entité atomique réelle ou virtuelle, dans le but de le piloter ou de le simuler. Les objets encapsulent une partie des connaissances du monde dans lequel ils évoluent. ü Un objet associe données et traitements en ne laissant visible que l interface de l objet, c est à dire les traitements que l on peut faire dessus Objet = Identité + Etat + Comportement ü L Identité : En plus de son état un objet possède une identité qui permet de le distinguer de manière non ambiguë indépendamment de son Etat. ü L état : regroupement des valeurs instantanées de tous les attributs d un objet ü Le comportement : regroupe toutes les compétences d un objet et décrit les actions et les réactions de cet objet Rémy Courdier V2.8 6

2.2 Les Objets(2) Notations En UML un objet se représente sous la forme d un rectangle; le nom de l objet est souligné Le rectangle dont le coin en haut est replié représente une information de clarification optionnelle appelée note Les deux points précisent qu il s agit d objets anonymes Trois Héros de jeux :Héros Taille et niveau de rapidité Batman 2,00 m :Héros 0,5 m 5 5 1,50 m 3 Rémy Courdier V2.8 7

2.3. Les messages 2.3. Les messages Les objets d un système informatique travaillent en synergie pour réaliser les fonctions de l application. ü Le comportement global d une application repose sur la communication entre les objets qui la compose ü Il existe un grande richesse de communication entre les objets Le message est la représentation des interactions entre les objet ü il relie de façon dynamique les objets qui ont été séparés par le processus de décomposition ü il est un intégrateur dynamique qui permet de reconstituer une fonction de l application par la mise en collaboration d un groupe d objets Rémy Courdier V2.8 8

2.3. Les messages(2) Notations Les messages sont représentés par des flèches placées le long des liens qui unissent les objets :Héros élimine :Ennemi Notion de synchronisation :Expéditeur envoi simple envoi synchrone :Destinataire (un seul objet à la fois est actif) (expéditeur bloqué jusqu à acceptation du destinataire) envoi dérobant (destinataire bloqué jusqu à réception du message) envoi minuté (bloque l expéditeur pendant un temps donné) envoi asynchrone (n interrompt pas l exécution de l expéditeur) Rémy Courdier V2.8 9

2.4. Les classes 2.4. Les classes Définition : ü La classe décrit le domaine de définition d un ensemble d objets : C est un modèle qui définit les données et les traitements communs à une collection d objets similaires ü Chaque objet appartient à une classe ü Les généralités sont contenues dans la classe et les particularités dans les objets Terminologie orientée objet ü Les traitements sont appelés méthodes ou opérations de l objet ü Les données sont appelées variables, données membres, attributs ou propriétés ü Les objets informatiques sont construits à partir de la classe par un processus appelé instanciation ü Tout objet est instance d une Classe Rémy Courdier V2.8 10

2.4. Les classes (2) Notation Chaque classe est représentée sous la forme d un rectangle divisé en 3 parties Nom de classe attributs nom taille Héros Instanciation :Héros Batman opérations() marcher()... coucher() 2,00 Instance Les parties peuvent êtres supprimées pour alléger les diagrammes Nom de classe Héros Rémy Courdier V2.8 11

Analyse et Conception objet du logiciel 2.4. Les classes (3) L encapsulation L occultation des détails de réalisation est appelée encapsulation ü Par défaut les valeurs des attributs d un objets sont encapsulées dans l objet et ne peuvent pas être manipulées directement par un autre objet Un accès «libre» a des attributs peut conduire rapidement à des données mal gérees Rémy Courdier V2.8 12

2.4. Les classes (3) L encapsulation L occultation des détails de réalisation est appelée encapsulation ü Des règles de visibilité précisent la notion d encapsulation ; assouplissement du degré d encapsulation et de protection au profit de certaines classes bien particulières ; intérêt : réduire le temps d accès aux attributs ü Trois niveaux d encapsulation : ; privé (-): attribut non vu de l extérieur de l objet en C++ les classes amies peuvent encore accéder aux attributs ; protégé (#): attribut vu par des classes dérivées ; public (+): attribut visible pour toutes les classes Nombre complexe - partie imaginaire - partie réelle + addition() + soustraction() + multiplication() + division() Rémy Courdier V2.8 13

2.5 Les relations entre les classes La relation d association 2.5. Les relations entre les classes Une association représente une relation sémantique entre les objets, elle correspond à une abstraction des liens qui existent entre les objets instances :Combat Batman :Héros Combat association Héros Zoro :Héros Nommage d une association une association se représente par une ligne continue tracée entre les classes Rôle d une association Combat met en jeux > Héros Combat Héros Personnage Combat < s engage dans Héros le nommage des associations facilite la compréhension des modèles Spectacle Public Le rôle décrit comment une classe voit une autre classe au travers d une association Le rôle prend tout son intérêt lorsque plusieurs associations existent entre 2 classes Rémy Courdier V2.8 14

Analyse et Conception objet du logiciel 2.5. Les relations entre les classes(2) Multiplicité et Contraintes La multiplicité précise le nombre d instances (et non de liens comme dans Merise) qui participent à la relation Trop d instances peuvent conduire à une catastrophe! Imaginez le même type de problème avec un A380 Rémy Courdier V2.8 15

2.5. Les relations entre les classes(2) Multiplicité et Contraintes (2) Toutes sortes de contraintes peuvent être définies sur une relation ou un groupe de relations exemple : {ordonnés} ; {Sous-ensemble} ; (Ou-exclusif} Combat 0..1 {Ou-exclusif} 1 Spectacle Héros 2..* * Public Personnage Un combat met en jeu différents personnages ; certains joueront le rôle du public et d autres le rôle de Héros de combat. Un Héros donné peut s engager dans un combat ou non. Un personnage du public est toujours spectateur d un combat. Rémy Courdier V2.8 16

Navigabilité et association récursive Navigabilité d une association Manager s occupe de flèche Héros Restriction de la navigabilité d'une association à un seul sens à l'exécution. Le manager peut transmettre des message au Héros mais le Héros ne peux pas prendre l initiative de communication avec le Manager Association récursive Personnage Manager Héros * < s occupe de Rémy Courdier V2.8 17

2.5. Les relations entre les classes(3) Les classes-associations Une association peut être représentée par une classe pour ajouter des attributs et des opérations ü Une telle classe peut participer à plusieurs relations ü Une telle classe qui ne participe pas à d autres relations est appelée association attribuée et ne porte pas de nom La notation UML utilise une ligne pointillée pour attacher une classe à une association Combat < s engage dans * 2..* Héros Combat < s engage dans * 2..* Héros prime niv. challenger Contrat prime challenger 1..* Techniques type grade * association attribuée classe association Rémy Courdier V2.8 18

2.5. Les relations entre les classes(4) Les restrictions ou qualification Une qualification consiste à sélectionner un sousensemble d'objets parmi l ensemble des objets qui participent à une relation C1 C1 ü réduction du nombre d instances qui participent à une association (multiplicité ou cardinalité) ü Une restriction est réalisée au moyen d un attribut particulier appelé Clé ü La clé est représentée au niveau de la classe de départ dans un compartiment rectangulaire EspaceJeux clé C2 C2 :C1 :C1 :C2 :C2 :C2 :C2 :C2 :C2 :C2 ligne colonne Position Rémy Courdier V2.8 19 1

2.5. Les relations entre les classes(5) La relation d agrégation Décrit une relation de contenance ou de composition Il s agit d une variante de l association portant la sémantique suivante : «Est inclus dans» Propriétés ü une classe fait partie d une autre classe (composition) ü les valeurs d attributs d une classe se propagent dans les valeurs d attributs d une autre classe ü une action sur une classe implique une action sur une autre classe ü les objets d 1 classe sont subordonnés à ceux d 1 autre classe Note : L agrégation n implique par contre pas nécessairement ces critères! Notation UML : ü Une agrégation se représente avec un losange placé du coté de l agrégat C1 1..* * Inclus dans > C2 Rémy Courdier V2.8 20

La relation d agrégation forte ou de composition 2.5. Les relations entre les classes(5) Représente une contenance structurelle entre instances Décrit la notion de «tout et parties» dans laquelle les parties sont indissociables du tout. Association portant la sémantique suivante : «est composé de» Propriétés La cardinalité placé à coté de l agrégat et facultative et correspond par défaut à 1..1, elle peut être 0..1 mais jamais x.. *. Une partie d un tout n appartient qu à un seul tout. Notation UML : Une agrégation se représente avec un losange plein placé C1 0..1 * est composé de > C2 du coté de l agrégat. Rémy Courdier V2.8 21

Agrégation et compostion On utilise une composition et non une simple agrégation si : La destruction de l instance représentant «le tout» implique obligatoirement la destruction des instances représentant les parties (les composants) La copie de l instance représentant «le tout» implique nécessairement la copie de ses composants car ceux-ci ne peuvent faire partie que de ce «tout» et ne peuvent pas être associés à d autres «tout». Rémy Courdier V2.8 22

2.7 La relation de Dépendance Relation exprimant une dépendance sémantique entre les éléments du modèle Cette relation est nécessairement orientée. Cadre d utilisation: ü Dépendance d interface : entre une classe et une interface que celle-ci s impose de respecter. Sémantique «réalise» ou «implemente» ü Dépendance de Stéréotype : Pour définir une classe générique paramétrable. Sémantique «bind» ü Dépendance d instanciation : Poir décrire une relation entre une classe et ses instances sémantique «instanceof» Notation UML : Représentée par une ligne pointillée orientée C1 C2 Rémy Courdier V2.8 23

2.6. L héritage entre classes 2.6 La relation d héritage entre classes Les hiérarchies de classes ordonnent les objets au sein d arborescences d abstraction croissante Généralisation ü Factorisation des éléments communs d un ensembles de classes dans une classe plus générale appelée super-classe Spécialisation ü Capture des particularités d un ensemble d objets non discriminés par les classes déjà identifiées Notation UML ü La généralisation est symbolisée par une ligne entre deux classe terminée par une flèche qui pointe vers la classe la plus générale Spécialisation Super-classe < sorte de Sous-classe Généralisation Rémy Courdier V2.8 24

2.6. L héritage entre classes(2) Le polymorphisme caractéristique d un élément qui peut prendre plusieurs formes Chaque sous classe peut modifier localement le comportement de ses opérations pour considérer le particularisme de son niveau d abstraction Combat < s engage dans 0..1 2..* Héros frapper() L opération frapper est polymorphe car sa réalisation peut prendre plusieurs formes Monstre frapper() Superman frapper() Extraterrestre frapper() frapper() pattes frapper() poings frapper() ondes cosmiques Rémy Courdier V2.8 25

2.6. L héritage entre classes(3) Notions avancées Critères de généralisation ü Spécialisation selon plusieurs critères simultanément ü On associe des discréminants à la relation de généralisation Contraintes ü généralisation exclusives /inclusives ; {Exclusif} : par défaut une généralisation est exclusive ; une classe descendante d une classe A peut être descendante d une seule sousclasse de A ; {Inclusif} : Une classe descendante de la classe A appartient au produit cartésien des sous-classes de la classes A ü Généralisation complète / Incomplète ; {Complète} : existence de toutes les sous-classes ; {Incomplète} : généralisation extensible Critère1 Critère2 {Incomplète} {Inclusif} A1.1 A1.2 A2.1 A2.2 Rémy Courdier V2.8 26 A A3

2.6. L héritage entre classes(4) Les classes abstraites Classe non instanciable ü Ne donne pas naissance à des objets Classe de spécification générale ü Il s agit de sorte de type de classe Base pour les logiciels extensibles ü L ensemble des mécanismes généraux est décrit dans les classes abstraites sans tenir compte des spécificités rassemblées dans les classes concrètes Notation UML : ü Le nom des classes abstraites est en italique Héros frapper() Monstre Superman Extraterrestre frapper() frapper() frapper() Rémy Courdier V2.8 27

2.7. Les architectures à base d objets 2.8 Les architectures à base d objets Les mécanismes objets se retrouvent : ü dans les langages de programmation, on parle alors de POO ü au cœur de certaines Bases de Données ü dans les environnements d interface Homme-Machine ü dans l archi. des documents du World Wide Web et de l Internet ü comme base des modèles et méthodologies de développement Langages orientés objets : ü Smalltalk : Xerox Palo-Alto - Californie ü C++ : Bell Laboratories d AT&T ü Java : Sun micro-système ü Simula, Eiffel, Ada 95, Pascal Objet,... Les objets distribués : ü Corba et les ORB - (Common Object Request Broker Architecture) ü OLE/DCOM et les ActiveX - (Object linking et embedding) ü Java Beans - Java RMI (Remote Méthode Invocation) Rémy Courdier V2.8 28

Difficultés Les principales difficultés que l'on rencontre quand on commence UML sont généralement les suivantes : Il faut découvrir à la fois le langage UML, une méthode de mise en œuvre et un environnement de modélisation. On réalise une étude de très haut niveau donc relativement abstraite qui doit malgré tout trouver un sens dans le monde réel. La sémantique des nouvelles technologies est très faible et UML n'apportent pas encore assez de sens aux termes employés. Il faut donc rester vigilant sur le sens des choses. Rémy Courdier V2.8 29

Analyse et Conception objet du logiciel Fin du Chapitre 2 L approche Orientée Objet et UML Rémy Courdier V2.8 30