Le langage UML 2.0 Notion d Objet



Documents pareils
Université de Bangui. Modélisons en UML

Diagramme de classes

Les diagrammes de modélisation

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

Cours de Génie Logiciel

Chapitre 1 : Introduction aux bases de données

GOL-502 Industrie de services. Travaux Pratique / Devoir #7

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Chapitre I : le langage UML et le processus unifié

Bases de Données. Plan

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

IFT2255 : Génie logiciel

LES CARTES À POINTS : POUR UNE MEILLEURE PERCEPTION

MODELISATION UN ATELIER DE MODELISATION «RATIONAL ROSE»

C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement

OASIS Date de publication

3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes

Qu'est-ce que le BPM?

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

UML (Diagramme de classes) Unified Modeling Language

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

Rappel sur les bases de données

2 Grad Info Soir Langage C++ Juin Projet BANQUE

CINEMATIQUE DE FICHIERS

Sage CRM. 7.2 Guide de Portail Client

RÉSOLUTION DE SYSTÈMES À DEUX INCONNUES

Chapitre 10. Architectures des systèmes de gestion de bases de données

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

NOTIONS DE PROBABILITÉS

modélisation solide et dessin technique

Le modèle de données

Chapitre 2. Classes et objets

Alcatel OmniPCX Enterprise

Sciences de Gestion Spécialité : SYSTÈMES D INFORMATION DE GESTION

LES INTERFACES HOMME-MACHINE

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

WEA Un Gérant d'objets Persistants pour des environnements distribués

Didacticiel du service cartographique en cache

CLAIRE, UN OUTIL DE SIMULATION ET DE TEST DE LOGICIELS CRITIQUES. Jean GASSINO, Jean-Yves HENRY. Rapport IPSN/Département d'évaluation de sûreté N 280

Généralités sur le Langage Java et éléments syntaxiques.

Fiche des fonctions du téléphone Business Communications Manager

MEDIAplus elearning. version 6.6

MANUEL D'UTILISATION Téléphone Aastra 6753i, PoE

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

Information utiles. webpage : Google+ : digiusto/

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

Manuel d utilisation NETexcom

LibreOffice Calc : introduction aux tableaux croisés dynamiques

Méthodes de développement. Analyse des exigences (spécification)

Business Process Modeling (BPM)

Conception d'un système d'information WEB avec UML Par Ass SERGE KIKOBYA

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

Table des matières Sources

Cahier Technique. «Développer une application intranet pour la gestion des stages des étudiants» Antonin AILLET. Remi DEVES

DÉVELOPPEMENT INFONUAGIQUE - meilleures pratiques

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Fiche méthodologique Rédiger un cahier des charges

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

MASTER II ECONOMIE ET GESTION Spécialité Management des Organisations de la Neteconomie

Modèle conceptuel : diagramme entité-association

Pourquoi l apprentissage?

Dessiner dans Galaad FRANÇOIS PALLUT

Bases de données avancées Introduction

ORACLE TUNING PACK 11G

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

Guide de configuration de SQL Server pour BusinessObjects Planning

Windows Server Chapitre 3 : Le service d annuaire Active Directory: Concepts de base

Projet Active Object

O b s e r v a t o i r e E V A P M. Taxonomie R. Gras - développée

Sommaire. G. Pujolle, F. Ravat, C. Soulé-Dupuy, G. Zurfluh

1S9 Balances des blancs

constitue le point d'entrée pour accéder au paramétrage de votre poste.

Créer le schéma relationnel d une base de données ACCESS

Analyse,, Conception des Systèmes Informatiques

Conservation des documents numériques

MEGA Database Builder. Guide d utilisation

Microsoft Dynamics AX 2012 Une nouvelle génération de système ERP

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Edutab. gestion centralisée de tablettes Android

QUELQUES CONSEILS POUR LA MAINTENANCE DE VOTRE ORDINATEUR

Guide de l'utilisateur du IP Audio Conference Phone BCM Business Communications Manager

Cédric Gendre Inra, ESR Toulouse

CONDITIONS GENERALES D UTILISATION DE L APPLICATION L@GOON Version Mai 2015

CONDITIONS GENERALES D UTILISATION. L application VAZEE et le site internet sont édités par :

Petite définition : Présentation :

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies

La GEIDE. Dans une solution GEIDE, il est possible d'associer au sein même d'un dossier:

Didacticiel de mise à jour Web

ETI/Domo. Français. ETI-Domo Config FR

Business Intelligence avec SQL Server 2012

CONCEPTION Support de cours n 3 DE BASES DE DONNEES

Environnement logiciel open source pour la création d œuvres artistiques interactives

Logique binaire. Aujourd'hui, l'algèbre de Boole trouve de nombreuses applications en informatique et dans la conception des circuits électroniques.

Chapitre 4 : les stocks

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

Logiciel de gestion de données

Dans la série LES TUTORIELS LIBRES présentés par le site FRAMASOFT. Compression - Décompression avec 7-Zip. Georges Silva

portnox pour un contrôle amélioré des accès réseau Copyright 2008 Access Layers. Tous droits réservés.

Transcription:

Claude Belleil Université de Nantes Le langage UML 2.0 Notion d Objet 1 UML et le concept d objet UML permet d'exprimer et d'élaborer des modèles «objet», indépendamment de tout langage de programmation. Il a été pensé pour servir de support à une analyse basée sur le paradigme «objet». C'est un langage formel qui est avant tout un support de communication performant. Il facilite la représentation, la compréhension et la communication autour de solutions de type «objet» : Sa notation graphique permet d'exprimer visuellement une solution objet, ce qui facilite la comparaison et l'évaluation de solutions vis à vis du client. L'aspect formel de sa notation, limite les ambiguïtés et les incompréhensions. Son indépendance par rapport aux langages informatiques, aux domaines d'application et aux processus, en fait un langage universel. UML utilisant le paradigme objet, nécessite une bonne connaissance de celui-ci. De plus, même si les notations sont claires, elles n'en sont pas moins nombreuses. Cela demande une certaine pratique des modèles avant de les avoir suffisamment bien en main. La modélisation complète d'un processus avec UML est longue et complexe, mais précise et très complète. Tout cela fait qu'uml est reconnu comme un langage d'analyse objet standard et performant. Utiliser UML, c est donc avant tout avoir intégrer la notion d objet. L objectif de ce document est d expliquer ce que sont les «objets» 2 Des objets partout Le monde dans lequel nous vivons est constitué d'objets matériels de toutes sortes. La taille de ces objets peut varier : certains sont de taille modeste, comme une montre ou un téléphone portable, et d'autres très volumineux, comme un pétrolier ou un immeuble. Par analogie, il est tout à fait possible de définir d'autres objets, sans réalité physique, comme les contrats d'assurance ou encore les équations mathématiques. Ces objets correspondent alors à des abstractions plutôt qu'à des éléments concrets. Ces objets, chacun d entre nous les perçoit en fonction : de ce qu ils sont, de ce qu ils font, 1

de ce que l on en attend. Comment définir le concept d objet? Encyclopédie Hachette : Objet n. masc : Chose matérielle qui constitue une unité par sa configuration. La matière, la couleur, les contours d'un objet. Manipuler un objet. Des objets d'art. Objets volants non identifiés : V. ovni. / Chose destinée à un certain usage. Les objets de toilette. Objets personnels. Webencyclo des Éditions Atlas 2001 Objet : Chose concrète, perceptible en particulier par les sens de la vue et du toucher. Dans son acception la plus courante - qui correspond à l'étymologie latine du terme : objectum, " ce qui se trouve placé en face "-, l'objet est ce qui est devant le sujet percevant, connaissant, examinant. Dans une acception plus large, le terme désigne ce sur quoi porte toute opération mentale : on parle ainsi de l'objet d'un problème, d'un jugement ou de l'objet d'une passion, d'un désir. Qualificatifs de l Objet : [Objet] concret adj. et n. m. Ce qui qualifie un objet en tant qu'il est donné dans l'expérience, externe ou interne, et qu'il est saisi dans sa singularité (du latin concretus, participe passé de concrescere," se solidifier par agrégation "). Tel objet extérieur est concret parce qu'il est appréhendé sous les qualités sensibles qui le caractérisent à un moment donné. Le concret est toujours singulier ou individuel. Les qualités communes à plusieurs objets (le rouge, par exemple) ou à plusieurs sujets (la peur) sont dites, par opposition, abstraites. [Objet] abstraction n. f. Mécanisme d'élaboration de la généralité par l'entendement. En séparant, isolant et extrayant des objets donnés aux sens leurs traits généraux, nous obtenons une idée générale, que le mot signifie et que la définition développe. [Objet] concept n. m. Représentation abstraite que forme l'entendement (ou la réflexion) afin de rassembler, sous une signification commune, des représentations singulières d'objets individuels possédant un ou plusieurs aspects communs. Que retenir de ces définitions générales? Un objet est : un élément concret ou abstrait qui constitue une unité 2

il est perceptible il représente ce qui est devant le sujet percevant, connaissant, examinant il a une existence propre parce qu'il est appréhendé sous les qualités sensibles qui le caractérisent à un moment donné Quelques exemples permettant d illustrer la notion d objet : Figure 1: Mon téléphone Attention, il ne s agit pas d un téléphone, mais de MON téléphone, c est à dire celui que j utilise pour téléphoner. MON téléphone fait référence à un objet réel, UN téléphone fait référence plutôt à un concept! Figure 2: Le téléphone de mon voisin Là aussi, ce téléphone est identifié. C est celui que je reconnais comme appartenant à mon voisin. Il est persique semblable au mien. Mais pas tout à fait! Figure 3: Le téléphone portable de ma fille 3

Dans les trois exemples ci-dessus, nous sommes bien en présence d objets. Nous les appréhendons au travers «des qualités sensibles qui les caractérisent à un moment donné». Ce sont des réalisations concrètes et identifiables de la notion ou du concept de téléphone. Figure 4: Des représentations du concept de téléphone Les téléphones représentés dans la figure ci-dessus n appartiennent à personne. Il s agit d illustrations qui nous renvoient au concept, à l idée générale de téléphone. Ce ne sont donc pas des objets dans le sens où nous venons de le définir. Mais, dans les exemples précédents, étions-nous pour autant en présence de mon téléphone, de celui de mon voisin et de celui de ma fille? La réponse est NON! 3 Objets réels ou représentation d objets? En précisant pour les figures 1, 2 et 3 qu il s agit d objets, nous avons commis un abus de langage. La figure 1 ce n est pas MON téléphone, mais la représentation de celui-ci sous la forme d une image. Il est évident que je ne peux pas téléphoner avec la figure 1! Il s agit donc d une abstraction L'abstraction est un des piliers de l'approche objet. Il s'agit d'un processus qui consiste à identifier les caractéristiques pertinentes d'un élément concret ou abstrait, en vue d'une utilisation précise. Les caractéristiques d un objet sont «pertinentes», par rapport à un objectif. Mais l abstraction désigne aussi le résultat de ce processus, c'est-à-dire l'ensemble des caractéristiques retenues par un observateur. Un modèle est donc une vue subjective de la réalité. Il définit une frontière entre la réalité et la perspective de l'observateur. Ce n'est pas "la réalité", mais ce que nous en avons retenu, vis à vis de l objectif poursuivi. 4 Notion de modèle La modélisation, c'est-à-dire l'élaboration d'un modèle, est (plus ou moins explicitement) à la base de toute simulation. Elle a pour but de définir une représentation, par exemple un système d'équations, dont on peut tirer les différentes relations entre variables caractéristiques du processus étudié. Le modèle d'un processus donné est rarement unique, sa constitution dépend des aspects que l'on souhaite privilégier, ainsi que des hypothèses simplificatrices choisies. Il peut être exprimé à l'aide de concepts différents (fonctions mathématiques, langage naturel, langage formel) et admettre une représentation graphique. 4

4.1 Modéliser, c est simplifier pour communiquer Le modèle est une représentation de la réalité, à travers un filtre. Celui-ci est définit par l'analyste, qui le calibre pour ne laisser passer que ce qui lui semble pertinent. 4.1.1 Le modèle, outil de représentation Pour présenter les prévisions météorologiques à la télévision, les commentateurs ne peuvent pas se contenter d afficher une photographie satellite. La photo est assimilable à la réalité, telle qu elle est. Elle est trop précise et contient un volume et un niveau de détails représentant une masse trop importante d informations. Il est donc nécessaire de construire un modèle qui ne reprendra que les éléments qui intéressent le public, c est à dire : les températures et le niveau d ensoleillement. Ces informations sont représentées sous la forme de dessins représentant des nuages plus ou moins volumineux pour indiquer le niveau de couverture nuageuse, accompagnés éventuellement de dessins de gouttes de pluie indiquant d éventuelles précipitations. Enfin de petits soleils symbolisent le «beau temps» et des valeurs numériques les minima et maxima des températures prévues. C est un modèle! Figure 5: La réalité perçue et sa modélisation Un bon modèle doit permettre de faciliter la compréhension du système étudié, car il en réduit la complexité. Il doit aussi permettre de le simuler, c'est à dire de reproduire ses comportements. Par exemple, en construction, les modèles permettent de dimensionner les éléments à utiliser pour éviter qu'un ouvrage ne s'écroule à cause d'un vent trop fort. Un bon modèle représente les éléments pertinents du système étudié reproduit ses comportements permet de simuler son fonctionnement 5

4.1.2 Le modèle, outil de communication Les diagrammes de modélisation sont des instruments de communication. Communiquer autour d un modèle pour évaluer et comparer des solutions, c est avant tout «reconnaître» la réalité perçue. Or, si un modèle est «reconnu», c est avant tout parce qu il était «connu». Voici un exemple : Figure 6: un modèle "grossier" mais identifiable : la Bretagne Nous pouvons tous nous accorder sur le fait que ce schéma, qui a l ambition de représenter la Bretagne, n est pas une réussite sur le plan graphique. Cependant, chacun l a reconnu! Figure 7: la réalité correspondant au modèle précédent! 6

Or ce n est pas obligatoirement le cas du schéma suivant! Figure 8: Un autre 1 modèle grossier et moins identifiable! Le modèle représenté ci-dessus est beaucoup moins parlant que celui de la figure précédente. Il est moins «reconnaissable», pour nous! mais ce n est pas obligatoirement le cas pour d autres observateurs. Dans le premier cas, nous sommes en présence d un élément qui appartient à notre univers culturel de référence. Les formes même grossières évoquent quelque chose à tous ceux qui ont usé leurs fonds de culottes sur les bancs de l école élémentaire. Ce n est pas le cas de l autre figure! Le style du dessin est pourtant le même, la référence aussi : elle est géographique. Cependant, la forme n évoque rien, nous ne reconnaissons pas ce modèle. Que conclure de cette petite démonstration? Un modèle est «reconnu» parce qu il était «connu»! C est là que se situe toute la puissance des modèles graphiques. Ils permettent d établir une communication immédiate entre l analyste et le client. Figure 9 : La vocation de l approche «objet» : créer l illusion de la simplicité! 1 C est Praslin, une des îles de l archipel des Seychelles 7

5 Les objets possèdent des caractéristiques Prenons l exemple des téléphones représentés figures 1 et 2. Pour le téléphone de la figure 1, on peut mettre en évidence les caractéristiques suivantes: Marque : Alcatel Type : A220 Couleur : Blanc Poids : 600g Nombre de mémoires :5 Mémoire 1 : 05 65 89 45 78 Mémoire 2 : 04 78 54 21 45 Mémoire 3 : 06 56 85 45 78 Mémoire 4 : vide Mémoire 5: vide Ecran : non Interrupteur Haut-parleur : Off Réglage du Haut-parleur : 6 Etat : raccroché -------------------------------------- Décrocher Raccrocher Numéroter Mettre un numéro dans une mémoire Supprimer un numéro d une mémoire Activer le numéro d une mémoire Concernant le téléphone de la figure 2 : Marque : Alcatel Type : A240 Couleur : noir Poids : 600g Nombre de mémoires :10 Mémoire 1 : 05 65 89 45 78 Mémoire 2 : 04 78 54 21 45 Mémoire 3 : 06 56 85 45 78 Mémoire 4 : 02 56 42 15 45 Mémoire 5: 01 05 45 78 45 Mémoire 6 : 07 02 52 95 65 Mémoire 7 : 04 85 78 54 12 Mémoire 8 : 06 81 41 52 75 Mémoire 9 : 09 56 98 58 74 Mémoire 10: vide Ecran : oui Interrupteur Haut-parleur : Off Réglage du Haut-parleur : 3 Etat : raccroché -------------------------------------- Décrocher Raccrocher Numéroter Mettre un numéro dans une mémoire Supprimer un numéro d une mémoire Activer le numéro d une mémoire 8

5.1 Un objet possède des attributs Certaines de ces caractéristiques sont statiques. On les nomme «attributs». Pour les deux exemples précédents, la liste est la suivante : Ensemble des attributs du téléphone Alcatel 220 et de leurs valeurs Marque : Alcatel Type : A220 Couleur : Blanc Poids : 600g Nombre de mémoires :5 Mémoire 1 : 05 65 89 45 78 Mémoire 2 : 04 78 54 21 45 Mémoire 3 : 06 56 85 45 78 Mémoire 4 : vide Mémoire 5: vide Ecran : non Interrupteur Haut-parleur : Off Réglage du Haut-parleur : 6 Etat : raccroché Ensemble des attributs du téléphone Alcatel 240 et de leurs valeurs Marque : Alcatel Type : A240 Couleur : noir Poids : 600g Nombre de mémoires :10 Mémoire 1 : 05 65 89 45 78 Mémoire 2 : 04 78 54 21 45 Mémoire 3 : 06 56 85 45 78 Mémoire 4 : 02 56 42 15 45 Mémoire 5: 01 05 45 78 45 Mémoire 6 : 07 02 52 95 65 Mémoire 7 : 04 85 78 54 12 Mémoire 8 : 06 81 41 52 75 Mémoire 9 : 09 56 98 58 74 Mémoire 10: vide Ecran : oui Interrupteur Haut-parleur : Off Réglage du Haut-parleur : 3 Etat : raccroché Ces attributs ont des valeurs. Par exemple l attribut couleur peut prendre des couleurs différentes selon l objet qui est considéré. On notera que la liste des attributs n est pas la même pour les deux appareils. Il est vrai que ces deux téléphones ne sont pas du même type (220, 240) 9

5.2 Un objet possède des comportements D autres caractéristiques correspondent à ce que l objet est capable de faire. Ce que l utilisateur en attend. Pour les deux exemples précédents : Décrocher Raccrocher Numéroter Mettre un numéro dans une mémoire Supprimer un numéro d une mémoire Activer le numéro d une mémoire Notons deux choses importantes pour la suite : 1. Bien que les deux téléphones soient de types différents, la liste de leurs comportements est identique. Ce qui tendrait à mettre en évidence que deux objets assez semblables diffèrent plus par leurs caractéristiques statiques que par leurs comportements 2. Un comportement, appelé «opération» en modélisation informatique, met toujours en évidence une ou des communications avec d autres objets (y compris parfois lui-même) Décrocher la Ligne Raccrocher la Ligne Numéroter le Central téléphonique Mettre un numéro dans une mémoire Lui-même Supprimer un numéro d une mémoire Lui-même Activer le numéro d une mémoire Lui-même 6 Un objet. des objets Comme nous venons de le mettre en évidence, étudier le comportement d un objet, c est mettre en évidence les objets avec lesquels il entretient des relations. Un téléphone ne peut pas fonctionner seul. Il a besoin de la collaboration d autres objets. C est l objectif d un processus de modélisation de les mettre en évidence. Un comportement, donc une opération met en évidence les collaborations qu un objet est capable de développer avec d autres objets et avec lui-même Pour téléphoner Il faut : un téléphone 10

Relié à une ligne téléphonique Elle-même reliée à un standard téléphonique Le téléphone de la personne que l on souhaite appeler et quelqu un qui décroche 11

7 Les objets en informatique En informatique, l'objet est une unité élémentaire formée de l'union d'un état et d'un comportement. C est la notion d'encapsulation. Elle assure à la fois une cohésion interne très forte et un faible couplage avec l'extérieur. L'objet, par l'intermédiaire de l'envoi de messages que nous étudierons plus loin, s'insère dans un scénario de communication. Les objets informatiques sont des représentations abstraites, des entités du monde réel. Ils sont le résultat d une modélisation dans le but de les piloter ou de les simuler. Ces représentations abstraites sont des images simplifiées des objets perçus par l'utilisateur. Ils, encapsulent une partie de la connaissance du monde dans lequel ils évoluent. Comme les êtres vivants, les objets du monde réel qui nous entourent naissent, vivent et meurent. La modélisation objet permet de représenter ce cycle de vie au travers de leurs interactions. En UML, un objet se représente sous la forme d'un rectangle. Dans le premier cartouche figure le nom de l'objet qui est souligné. On peut également, dans un second cartouche, y faire figurer des attributs avec leurs valeurs. On ne fait jamais figurer les opérations 2. Selon les diagrammes développés, on peut choisir plusieurs niveau de représentations. Dans certains cas, le nom suffit, dans d autre on y ajoutera la liste exhaustive de tous les couples attributs-valeurs, enfin dans un troisième cas, seuls les couples attributs-valeurs pertinents pour le contexte de modélisation. Figure 10: Une représentation d'objets en UML En modélisation informatique la définition d un objet dépend de la phase du cycle de modélisation : Sur le plan général, un objet est ce sur quoi porte notre connaissance. Dans le domaine correspondant au processus d analyse, c est une entité pertinente. Vis à vis d un langage de programmation objet, c est une structure de donnée et un ensemble de fonctions associées à cette structure de données. 2 Elles seront présentes dans les classes comme nous le verrons prochainement 12

7.1 Définitions D après Coad et Yourdon (1991) : «C est l abstraction de quelque chose du domaine du problème qui reflète les capacités d un système à mémoriser des informations ou à interagir avec le domaine» D après Jacobson (1992) : «Une entité capable de mémoriser un état (information) et qui offre des opérations (comportement) pour à la fois explorer et modifier cet état» En informatique, un objet est donc une unité formée de l union d un état interne (les attributs) et d un comportement (des opérations) qui a une origine dans le monde réel et sa propre identité. 7.2 Notion de «point de vue» Un objet est une abstraction d un élément concret ou abstrait observé, construite par le processus d analyse. Cette abstraction est modélisée en utilisant les concepts appropriés. Figure 11 : Les détails retenus sont relatifs à la perspective de l observateur 13

Deux personnes différentes peuvent avoir des perceptions différentes et donc construire des modèles différents d un même phénomène réel. Voici, par exemple, plusieurs façons de percevoir le concept de téléphone! Figure 12: Différentes représentations du concept "téléphone" 8 Caractéristiques fondamentales d un objet Tout objet présente les trois caractéristiques suivantes Objet = Identité + Etat + Comportement Figure 13 : Etat, Comportement (responsabilité) et Identité! 14

8.1 Identité d un objet En plus de son état, un objet possède une identité qui caractérise son existence propre. Elle permet de distinguer tout objet de façon non ambiguë, indépendamment de son état Cela permet, entre autres, de distinguer deux objets dont toutes les valeurs d'attributs peuvent être identiques (deux téléphones Alcatel 220 de même couleur). L'identité est un concept, elle ne se représente pas de manière spécifique en modélisation. Chaque objet possède une identité de manière implicite. L existence d un objet est donc caractérisée par son identité qui est : Immuable Permanente en permettant de distinguer tout objet de façon non ambiguë et indépendamment de son état Deux objets peuvent être égaux (valeurs d attributs et associations) et correspondre à deux objets différents ayant chacun son identité Au sujet de l identité d un objet Bernard Morand 3 écrit : «La question de l'identité distingue fondamentalement un objet d'un n-uplet d'une base de données : 2 n-uplets d'une même table se distinguent par la valeur d'un attribut spécial nommé clé primaire. - 2 objets d'une même classe se distinguent par un identificateur externe (OID pour Object IDentifier). Il indique en fait une position mémoire attribuée par la machine, à l'exécution. On peut formuler cette différence d'une manière imagée : en OO, 2 jumeaux sont différents par leur OID mais peuvent avoir exactement les mêmes valeurs d'attributs. En BD (relationnelle) les jumeaux sont interdits s'ils n'ont pas une propriété distinctive. On a ainsi un mécanisme puissant d'indirection : on peut faire référence à un objet sans rien connaître de ses valeurs internes et sans se préoccuper de ses changements d'état (i.e. de valeurs). Cette facilité se paye : pour garantir la fiabilité de la communication entre le programmeur et les objets logiciels, un Gestionnaire d'objets doit fournir un service de nommage (table de correspondance adresse mémoire - nom d'objet) - si un même objet possède plusieurs versions (i.e. états : par exemple chargé en mémoire vive et persistant sur disque), il faut un mécanisme qui garantit la permanence de son identité. C'est une fonction standard des SGBDOO. La question des valeurs d'instance permet de comprendre la dissymétrie des rôles joués par les attributs et les opérations d'une classe : un objet possède en propre ses valeurs dans une structure spécifiée par la classe. Mais il ne possède pas d'opérations propres : celles-ci sont détenues par sa classe à laquelle il doit poliment demander de les exécuter (pour modifier ses valeurs par exemple). Par ailleurs, ces valeurs n'ayant pas elles-mêmes d'identité, ce ne sont pas des objets. On est donc, à l'exécution, en présence d'un système dual (au moins) : 3 Institut Universitaire de Technologie, Département Informatique, Rue Anton Tchékhov, B.P. 53, 14123 Ifs Cedex 15

des objets et des valeurs (et éventuellement des classes). Ce qui peut poser des problèmes comme par exemple lorsqu'on souhaite ne rendre persistantes qu'une partie des valeurs d'un objet.» 8.2 Etat d un objet Un attribut est une information qui qualifie l'objet qui le contient. L'état regroupe les valeurs des attributs d'un objet à un moment donné. Chaque attribut peut prendre une valeur dans un domaine de définition donné. Ainsi, l'état d'un objet à un instant, correspond à une sélection de valeurs, parmi toutes les valeurs possibles des différents attributs. Dans le cas d'un téléphone portable, la couleur, le poids le niveau de chargement de sa batterie font partie de l'état. Celui-ci évolue au cours du temps ; ainsi, lorsqu'un téléphone est utilisé, le niveau de charge de la batterie va diminuer. Certaines composantes de l'état peuvent être constantes : c'est le cas par exemple de sa couleur et de son poids. Toutefois, en règle générale, l'état d'un objet est variable et peut être vu comme la conséquence de ses comportements passés.!!"## $ "% %""& Figure 14: Deux états différents d'un même objet 8.3 Attributs Un attribut est constitué d un couple (nom, valeur). Les valeurs prises par les attributs et les associations qui les relient déterminent l état d un objet à un moment donné. Cet état peut être une simple valeur, par exemple «décroché» ou «raccroché» pour un combiné téléphonique. Il peut également représenter un autre objet, par exemple : 16

L absence de tonalité peut signifier un état particulier du central téléphonique ou bien l avertissement sonore d occupation un état «décroché» du combiné de l interlocuteur. 8.4 Comportement Le comportement regroupe toutes les compétences d un objet, c est à dire l ensemble des opérations applicables à cet objet. Chaque atome de comportement est appelé opération. Les opérations d'un objet sont déclenchées suite à une stimulation externe, représentée sous la forme d'un message envoyé par un autre objet. Dans le diagramme suivant, selon la valeur du message, l'opération 1 ou l'opération 2 est déclenchée. Figure 15: Exemple de déclenchements d'opérations Un objet est donc un élément distinct et insécable dans un système, qui possède un état et un ensemble de comportements. On peut considérer qu il assume une responsabilité. La notion de comportement est à prendre au sens : ce que l'objet veut bien montrer de ses opérations. Une voiture offre un comportement visible qui correspond aux opérations : démarrer, avancer, reculer, etc. A l'intérieur, les opérations qui permettent d'obtenir ce comportement visible correspondent à de nombreux déplacements, en particulier les pistons qui bougent verticalement, les bielles qui transforment ce mouvement linéaire en mouvement rotatif... Le comportement est finalement la partie visible de l'iceberg. Plus tard, les opérations sont réalisées, mises en œuvre dans des méthodes. Les responsabilités des objets forment une excellente approche de ce qu'est un système : découvrir le rôle spécifique des objets dans le système. Une opération est la définition d'un service qui peut être demandé à un objet. Une méthode est une implémentation d'une opération dont elle spécifie l'algorithme ou la procédure associée. 8.5 Représentation des objets en UML En UML les objets se représentent au moyen d'icônes rectangulaires. Le diagramme suivant représente une personne utilisant son portable. Le trait qui relie les objets symbolise le lien qui existe entre un utilisateur particulier et un téléphone particulier. 17

$ Figure 16: Deux objets et un lien 9 Les liens entre objets Définir le comportement d un objet, c est faire apparaître les objets qui lui sont associés dans un certain contexte, et donc les relations qu ils entretiennent entre eux. Les associations peuvent être : statiques, ce qui correspond à des liens durables dynamiques, ce qui correspond à des liens liés à certaines opérations liées aux différents comportements de l objet Quand des liens s établissent entre objet au travers d échanges de messages, un objet peut être : un acteur, il est à l origine d une interaction Les acteurs sont toujours des objets à l'origine d'une interaction. Ce sont généralement des objets actifs, c'est-à-dire qu'ils possèdent un fil d'exécution (thread) et que ce sont eux qui passent la main aux autres objets. un serveur : il n est pas à l origine d une interaction et est destinataire des messages de façon passive Ce sont souvent des objets passifs qui attendent qu'un autre objet ait besoin de leurs services. Dans ce cas, le flot de contrôle est passé au serveur par l'objet qui envoie le message et est récupéré après exécution du service. un agent : l objet est à la fois acteur et serveur Les agents cumulent les caractéristiques des acteurs et des serveurs. Ces objets ont un comportement très proche de celui des humains ; ils peuvent interagir avec les autres objets à tout moment, de leur fait ou suite à une sollicitation externe. Le terme acteur est également employé pour désigner une catégorie d'utilisateurs dans le modèle des cas d'utilisation (use case) qui sera présenté plus tard. 18

10 Les objets communiquent Le message est l'unité de communication entre objets. Il constitue le support d'une relation de communication qui relie, de façon dynamique, les objets qui ont été séparés par le processus de modélisation. Il permet l'interaction de manière flexible, en étant à la fois agent de couplage et agent de découplage. C'est lui qui assure la délégation des tâches et garantit le respect des contraintes. 10.1 Notion de message Le message est un intégrateur dynamique qui permet de reconstituer une fonction de l'application par la mise en collaboration d'un groupe d'objets. Un acteur Un Objet Un message() Un lien Un Autre Objet Figure 17: Les objets communiquent en échangeant des messages. Un message regroupe les flots de contrôle et les flots de données au sein d'une entité unique. La notion de message est un concept abstrait qui peut être mis en œuvre selon de nombreuses variantes, comme : l'appel de procédure, l'événement discret, l'interruption, le datagramme, la recherche dynamique, etc. 10.2 Catégories de messages Il existe cinq catégories principales de messages : 19

les constructeurs qui créent des objets, les destructeurs qui détruisent des objets, les sélecteurs qui renvoient tout ou partie de l'état d'un objet, les modificateurs qui changent tout ou partie de l'état d'un objet, les itérateurs qui visitent l'état d'un objet ou le contenu d'une structure de données qui contient plusieurs objets. 10.3 Synchronisation des messages Il s agit de décrire la nature des mécanismes de communication qui permettent le passage de messages d'un objet vers un autre. La notion de synchronisation prend tout son intérêt lorsque plusieurs objets sont actifs simultanément et qu'il faut, par exemple, protéger l'accès à des objets partagés. La notion de synchronisation précise la nature de la communication, et les règles qui régissent le passage des messages. 10.4 Représentation des interactions entre les objets Les objets interagissent pour réaliser collectivement les services offerts par les applications. Les diagrammes d'interaction représentent les objets les uns par rapport aux autres et montrent comment ils communiquent au sein d'une interaction. Chaque interaction possède un nom et un contexte de validité qu'il convient de préciser de manière textuelle. Il existe deux sortes de diagrammes d'interaction : les diagrammes de collaboration et les diagrammes de séquence. Ils feront l objet d une étude détaillée dans la suite du cours Figure 18: Un exemple de diagramme de collaboration d'objets 11 En matière de conclusion Un objet se trouve caractérisé par une identité, un état et un comportement. L'identité définit que chaque objet est unique et a sa propre identité. C'est en général le 20

système qui se charge d'associer à chaque objet un identifiant. L'état est définit par l'ensemble des valeurs de ses attributs. Son comportement est définit par ses opérations. Pour un objet, l'identité et l'égalité sont deux choses différentes. Deux objets sont égaux si leurs états sont égaux. Deux objets sont identiques si leurs identifiants sont égaux. La spécification d'une opération, indépendamment du code qui l'implémente, est fournie par sa signature qui définit le type des arguments d'entrée et de sortie. Les variables aux sens habituel existent également, mais désignent simplement une entité permettant de désigner un objet. Elles s'apparentent donc souvent aux pointeurs des langages classiques. La liste suivante reprend quelques unes des définitions importantes du paradigme Objet : Un objet du monde réel est une chose dont les informations qui le décrivent constituent un objet informationnel (data object). Un tel objet est une entité couplée à un comportement. L'objet informationnel est une représentation abstraite du concept inhérent à l'objet réel. Il comporte à la fois les données attachées à ce concept et les opérations qui sont responsables de son comportement en agissant de manière exclusive sur ses données. Les détails d'implantation sont cachés, le monde extérieur n'ayant accès aux données que par l'intermédiaire d'une des méthodes de l'objet. Les attributs d'un objet sont les valeurs stockées dans l'objet sous forme de données. Une certaine stabilité est assurée lorsque les données dans un système sont regroupées pour décrire de manière exclusive la nature de chaque objet du système (normalisation). L'état d'un objet est représenté par l'ensemble des valeurs des n attributs. Cet ensemble constitue un n-tuple où chaque élément est une valeur qui doit être prise dans le domaine respectif des valeurs possibles de l'attribut. L'identité est une propriété qui garantit que deux objets ne peuvent être confondus, bien que les valeurs de leurs attributs respectifs puissent être les mêmes. Une identification numérique de chaque objet (OID) permet d'assurer l'unicité des objets, donc une identité propre. En pratique un objet affiche un comportement qui dépend du message reçu. Ce comportement peut appartenir à l'une des trois catégories de services qui commandent des actions données. Un service spécialisé commande une action originale de l'objet et produit une réponse non standard spécifique au message reçu. Un service passif assure le stockage d'une valeur dans un attribut de l'objet et peut répondre de manière standard True ou remettre la valeur reçue pour confirmer le stockage. Un service d'accès ne fait que remettre systématiquement la valeur de l'attribut requise par le message reçu. Le message ne fait qu'invoquer une fonction dont la réponse se trouve dans la valeur calculée par la fonction ou bien dans les arguments de la fonction altérés par une méthode de l'objet appelé. L'univers d'un système est composé d'un ensemble d'objets, qui détiennent chacun pour sa part, les clés de leur comportement: des fragments de 21

programmes qui entrent en action et produisent une réponse au message de l'objet appelant. Au cours du processus d'analyse, il est possible de simuler le comportement et les rôles des objets du système sur papier ou au tableau par le biais de formules telles que "Transaction, enregistre-toi". Dans un langage à objets ou un SGBDO, les méthodes sont conservées dans une BD et sont liées indirectement aux données de l'objet, sans avoir à répliquer dans chaque objet leurs méthodes. L'encapsulation assure le masquage du contenu de l'objet en restreignant l'accès à quelques éléments privilégiés. L'encapsulation réduit la complexité d'un système et assure sa modifiabilité. Il est en effet possible de changer la définition des objets avec un minimum d'interaction avec les autres objets, un peu comme un brise lame réduit l'effet des vagues dans un port. La lisibilité et la compréhensibilité d'un programme sont grandement améliorées car les interfaces des objets constituent autant de modes d'emploi précis et détaillés des objets tout en cachant les détails d'implantation. Le seul moyen de communiquer avec un objet est l'envoi d'un message appartenant à l'interface de l'objet. Tout objet possède un état à un instant donné. Tout passage à un nouvel état suite à un changement à ses attributs correspond à une transition d'état. Le cycle de vie d'un objet représente l'ensemble des états que peut connaître un objet ainsi que les diverses possibilités de transition d'un état à l'autre, partant généralement d'un état initial depuis sa création jusqu'à l'état final ou il disparaît. Le diagramme de transition d'états vise précisément à modéliser le cycle de vie d'un objet (nous étudierons ce diagramme plus tard) Index du texte : 1 UML et le concept d objet... 1 2 Des objets partout... 1 3 Objets réels ou représentation d objets?... 4 4 Notion de modèle... 4 4.1 Modéliser, c est simplifier pour communiquer... 5 4.1.1 Le modèle, outil de représentation... 5 4.1.2 Le modèle, outil de communication... 6 5 Les objets possèdent des caractéristiques... 8 5.1 Un objet possède des attributs... 9 5.2 Un objet possède des comportements... 10 6 Un objet. des objets... 10 7 Les objets en informatique... 12 7.1 Définitions... 13 7.2 Notion de «point de vue»... 13 8 Caractéristiques fondamentales d un objet... 14 8.1 Identité d un objet... 15 22

8.2 Etat d un objet... 16 8.3 Attributs... 16 8.4 Comportement... 17 8.5 Représentation des objets en UML... 17 9 Les liens entre objets... 18 10 Les objets communiquent... 19 10.1 Notion de message... 19 10.2 Catégories de messages... 19 10.3 Synchronisation des messages... 20 10.4 Représentation des interactions entre les objets... 20 11 En matière de conclusion... 20 Index des figures: Figure 1: Mon téléphone... 3 Figure 2: Le téléphone de mon voisin... 3 Figure 3: Le téléphone portable de ma fille... 3 Figure 4: Des représentations du concept de téléphone... 4 Figure 5: La réalité perçue et sa modélisation... 5 Figure 6: un modèle "grossier" mais identifiable : la Bretagne... 6 Figure 7: la réalité correspondant au modèle précédent!... 6 Figure 8: Un autre modèle grossier et moins identifiable!... 7 Figure 9 : La vocation de l approche «objet» : créer l illusion de la simplicité!... 7 Figure 10: Une représentation d'objets en UML... 12 Figure 11 : Les détails retenus sont relatifs à la perspective de l observateur... 13 Figure 12: Différentes représentations du concept "téléphone"... 14 Figure 13 : Etat, Comportement (responsabilité) et Identité!... 14 Figure 14: Deux états différents d'un même objet... 16 Figure 15: Exemple de déclenchements d'opérations... 17 Figure 16: Deux objets et un lien... 18 Figure 17: Les objets communiquent en échangeant des messages... 19 Figure 25: Un exemple de diagramme de collaboration d'objets... 20 23