Programmation Orient Ee Objet (UML) - ENIB

1y ago
17 Views
3 Downloads
2.41 MB
131 Pages
Last View : 3d ago
Last Download : 3m ago
Upload by : Aarya Seiber
Transcription

Ecole Nationale d’Ingénieurs de Brest— Cours d’Informatique S4 —Programmation Orientée Objet(UML)Cédric BUCHEbuche@enib.frversion du 25 novembre 20131

Table des matièresDiagramme d’interactionsInformatiqueS4-POOProgrammation Orientée Objet— Cours S4 —1Introduction32Diagramme de classes (4 UC)63Diagramme de cas d’utilisation (1 UC)484Diagrammes d’interaction (2 UC)63— Labo —— UML —Cédric Buche20 novembre 2013Cédric Buche (ENIB)POODiagramme de classes (4 UC)6Diagramme de cas d’utilisation (2 UC)1097Diagramme d’interactions (4 UC)114135 / 135Ces notes de cours accompagnent les enseignements d’informatique du 4ieme semestre (S4) deProgrammation Orientée Objet (POO) de l’Ecole Nationale d’Ingénieurs de Brest (ENIB :www.enib.fr). Leur lecture ne dispense en aucun cas d’une présence attentive aux cours nid’une participation active aux travaux dirigés.Une partie de ce document est librement inspiré de l’ouvrage de Laurent Audibert. Unepartie des exercices a été rédigée par Pierre Chevaillier.2971258Diagramme de classes1269Diagramme de cas d’utilisation13010 Diagramme d’interactions20 novembre 2013975— Solutions Labo —École Nationale d’Ingénieurs de Brest (ENIB)3131

Cours S41IntroductionSommaire1.11.21.31.41.51.1Objectifs du cours – prérequis .Importance de la modélisationPourquoi modéliser ? . . . . . .Modélisation informatique : desIntroduction à UML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .logiciels au génie. . . . . . . . . . . . . . . . . . . . . . .logiciel. . . . .33345Objectifs du cours – prérequisLes objectifs du cours en S4 sont :. Connaı̂tre le langage de modélisation UML. Comprendre la sémantique des principaux éléments des différents modèlesLe prérequis est la maı̂trise des principes de la programmation orientée objet.1.2Importance de la modélisationPrenons l’image de la niche, la maison familiale et l’immeuble Pour construire une niche,il suffit de quelques planches, des clous, un marteau et quelques outils. Pour une une maisonfamiliale, l’entrepreneur a besoin de plans généraux et de plans d’exécution détaillés (pièces,électricité, plomberie, chauffage). Enfin, pour construire une immeuble, il faudra une planification détaillée, de nombreux plans et études.Pour une programme informatique, c’est la même chose !1.3Pourquoi modéliser ?La modèlisation permet de mieux comprendre le système en développement. Les objectifssont importants :3Définition 1.1. UML : (en anglais Unified Modeling Language, ” langage demodélisation unifié ”) est un langage graphique de modélisation des données et destraitements. C’est une formalisation très aboutie et non-propriétaire de la modélisation objetutilisée en génie logiciel.

. nous aider à le visualiser tel qu’il est ou tel qu’il devrait être. spécifier la structure et le comportement d’un système. avoir un ”patron” pour guider la construction du système. documenter les décisions qui ont été prisesNous construisons des modèles de systèmes complexes parce que nous sommes incapables d’appréhenderces systèmes dans leur entièreté.1.4Modélisation informatique : des logiciels au génie logicielLes logiciels peuvent être développés par une personne seule, une petite équipe, ou un ensemble d’équipes coordonnées. Le développement de grands logiciels par de grandes équipespose d’importants problèmes de conception et de coordination. En 1995, une étude dressait untableau accablant de la conduite des projets informatiques :. 16 % des projets étaient conformes aux prévisions initiales,. 53 % avaient subi des dépassements en coût et délai d’un facteur 2 à 3 avec diminution dunombre des fonctions offertes,. 31,1% ont été abandonnés durant leur développement.L’examen des causes de succès et d’échec est instructif : la plupart des échecs proviennent non del’informatique, mais de la maı̂trise d’ouvrage (i.e. le client). Pour ces raisons, le développementde logiciels dans un contexte professionnel suit souvent des règles strictes encadrant la conceptionet permettant le travail en groupe et la maintenance du code. Ainsi, une nouvelle discipline estnée : le génie logiciel. Pour apporter une réponse à tous ces problèmes, le génie logiciel s’intéresseparticulièrement à la manière dont le code source d’un logiciel est spécifié puis produit. Ainsi,le génie logiciel touche au cycle de vie des logiciels :. l’analyse du besoin,. l’élaboration des spécifications,. la conceptualisation,. le développement,. la phase de test,. la maintenance.4

1.5Introduction à UMLUML est un langage graphique de modélisation pour spécifier, concevoir, construire et documenter des applications informatiques. UML est considéré comme une synthèse des bonnespratiques de l’ingénierie informatique. Il permet d’unifier des modèles en se basant sur unestandardisation (par l’OMG).UML a pour objectif de fournir un langage visuel et expressif, des mécanismes d’extension,d’être indépendant des technologies et langages d’implémentation. Il fournit une base formellepour la modélisation.Dans une approche classique, un projet suivra les étapes suivantes :1. Fonctionnel. Définition du cahier des charges : le diagramme de cas d’utilisation permet alors deproduire des scénarios écrits. Élaboration des scénarios formels : les diagrammes de sequence / communication permettent d’identifier les objets/classes2. Statique. Définir le diagramme des classes3. Dynamique. Dynamique de chaque objet est représentée par le diagramme d’états/transitions. Dynamique globale du système est représentée par le diagramme le diagramme d’activitésRemarque 1.1. UML 2.0 comporte 13 types de diagrammes.UML peut être utilisé pour :. Conception ( forward engineering ). Rétro conception ( reverse engineering. Documentation d’un système5)Définition 1.2. OMG : L’Object ManagementGroup est une association américaine à but nonlucratif créée en 1989 dont l’objectif est de standardiser et promouvoir le modèle objet soustoutes ses formes. L’OMG est notamment à labase des standards UML.

2Diagramme de classes (4 UC)Sommaire2.12.22.32.42.5Classes . . . . . . . . . . . . . . . . . . . . . . .2.1.1 Attributs . . . . . . . . . . . . . . . . . . . .2.1.2 Opérations . . . . . . . . . . . . . . . . . . .2.1.3 Constructeurs et destructeurs . . . . . . . . .Relations entre classes . . . . . . . . . . . . .2.2.1 Types . . . . . . . . . . . . . . . . . . . . . .2.2.2 Dépendance . . . . . . . . . . . . . . . . . . .2.2.3 Héritage . . . . . . . . . . . . . . . . . . . . .2.2.4 Association . . . . . . . . . . . . . . . . . . .2.2.5 Agrégation et composition . . . . . . . . . . .2.2.6 Package . . . . . . . . . . . . . . . . . . . . .2.2.7 Navigation . . . . . . . . . . . . . . . . . . .Concepts avancés . . . . . . . . . . . . . . . .2.3.1 Classe abstraite . . . . . . . . . . . . . . . . .2.3.2 Attribut dérivé . . . . . . . . . . . . . . . . .2.3.3 Interface . . . . . . . . . . . . . . . . . . . . .2.3.4 Classe-association . . . . . . . . . . . . . . .2.3.5 Association qualifiée . . . . . . . . . . . . . .Élaboration . . . . . . . . . . . . . . . . . . . .QCM . . . . . . . . . . . . . . . . . . . . . . . .2.5.1 Classes avancées . . . . . . . . . . . . . . . .2.5.2 Associations . . . . . . . . . . . . . . . . . . .2.5.3 Relations . . . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78101314141517212628293131323340424445454647

2.1ClassesUne classe se représente par un rectangle constitué de 4 compartiments.Figure 2.1. Classe, attribut et opération : notationsCompartimentidentification, onBoperationCCompartimentdes attributsCompartimentdes mpartiment(s) optionnelsnommés Le nom de la classe commence par une majuscule. Le dernier compartiment est très peuutilisé en pratique.7

2.1.1AttributsLes attributs définissent des informations qu’une classe ou un objet doivent connaı̂tre. Ilsreprésentent les données encapsulées dans les objets de cette classe. Chacune de ces informationsest définie par un nom, un type de données, une visibilité et peut être initialisé. Le nom del’attribut doit être unique dans la classe. La syntaxe de la déclaration d’un attribut est lasuivante :Figure 2.2. Attribut : syntaxebooleancharintegerrealstringTypes de base d’UMLvisibilité nom : type multiplicité valeurInitiale propriétésvaleurexpression publique# protégée privée package1 par défaut[n] exactement n[n.m] entre n et m[*] un nombre quelconquetagged valuecontrainteLa notion de visibilité est détaillée ici : #publicprotected privatepackagetout élément qui accède à la classeseul un élément de la classe ou de ses descendantsseul un élément de la classeseul un élément du même package que laclasse8

ExempleVoici un exemple :Figure 2.3. Exemples de classe avec attributsExercicesExo1 Exprimer sous forme d’un diagramme de classe UML qu’une classe AA possède unattribut attr1, dont l’accés est protégé et qui a comme valeur initiale 1.0Exo2 Exprimer sous forme d’un diagramme de classe UML qu’une classe AB possède unattribut xyz, librement accessible qui est une série de chaı̂nes de caractèresMediathèque Dans une mediathèque, une œuvre est referencée par un code d’identification. Il est possible de faire une recherche par le nom des auteurs, ou par le titre de l’œuvre.Écrire le digramme de classe correspondant.9

2.1.2Opérationsdirection nom : type [multiplicité] valeur défaut propriétésinoutinoutreturnvisibilitéFigure 2.4. Opération : syntaxeliste ordonnéedes parametresnom (par1, . parN) : type retour propriétés publique# protégée privée packagetagged valuecontrainteDirection des paramètres Plusieurs directions sont possibles :. information que l’objet serveur ne possède pas, mais qui est nécessaire à la réalisation del’opération : direction in. information nécessaire à la réalisation de l’opération et transformée par celle-ci : direction inout. information produite par l’exécution de l’opération, donc inexistante avant ; direction out ou return10

ExempleVoici un exemple de classe avec opérations :Figure 2.5. Exemple d’opérations UMLExercicesExo1 Exprimer sous forme d’un diagramme de classe UML que les objets d’une classe AXsont composés d’objects de la classe AY ; ces objets, nommés abc sont d’accés protégé et sont ennombre quelconque. On ne représentera pas la classe AY sur le diagramme.Exo2 Exprimez sous forme d’un diagramme de classe UML qu’une classe AA possède lespropriétés suivantes :. un attribut attr1, de type réel, dont l’accès est protégé et qui a comme valeur initiale 1.0. un attribut xyz, librement accessible qui est une série de chaı̂nes de caractères. une opération ope de visibilité protégée qui utilise un entier val (non modifié), un objetobj de la classe AB qu’elle modifie, et qui retourne une valeur booléenne.On ne représentera pas la classe AB sur le diagramme.Exo3 Exprimez sous forme d’un diagramme de classe UML qu’une classe CA possède lespropriétés suivantes :. Un attribut a1, de type entier, dont l’accès est protégé et dont la valeur initiale est 0. un attribut x, de type réel, dont l’accès est privé, qui est non modifiable, et qui a commevaleur initiale 1.0. une opération foo de visibilité protégée qui utilise un entier val (non modifié), et quiretourne une valeur booléenne. une opération moo de visibilité privée qui utilise un ensemble stuff d’objets de la classeAB qu’elle modifie.On ne représentera pas la classe AB sur le diagramme.11

QCM12

2.1.3Constructeurs et destructeursComment représenter un constructeur et un destructeur dans un diagramme de classes UML ?La solution est d’utiliser les stéréotypes create et destroy pour les représenterFigure 2.6. Exemple d’opérations UML13

2.22.2.1Relations entre classesTypesIl existe 4 types de relations liant plusieurs classes :Figure 2.7. Différentes relations entre ciation14

2.2.2DépendancePrésentationAFigure 2.8. use Bclientserveur (fournisseur)La relation de dépendance indique une dépendance entre les propriétés d’une classe (le client)et une autre classe (le serveur, supplier ). En conséquence, une modification du serveur peutaffecter le comportement du client.La relation de dépendance est représentée par un trait discontinu orienté. Elle indique quela modification de la cible peut impliquer une modification de la source.Exemples. une opération de la classe A fait appel à une opération de la classe B. une opération de A a comme paramètre un objet BFigure 2.9.On utilise souvent une dépendance quand une classe en utilise une autre comme argument dans la signature d’une opération. Par exemple, le diagramme de la figure montre quela classe Confrontation utilise la classe Stratégie car la classe Confrontation possède uneméthode confronter dont deux paramètre sont du type Stratégie. Si la classe Stratégie, notamment son interface, change, alors des modifications devront également être apportées à laclasse Confrontation.15

Stéréotypes La dépendance est souvent stéréotypée pour mieux expliciter le lien sémantiqueentre les éléments du modèle.accesscreateinstantiatepermituseimport du contenu d’un autre packagela classe crée des instances d’une autreclassela méthode d’une classe crée des instancesd’une autredonne accès aux éléments privésun élément requiert un autre élément16

tageSuper classeCAA operation1(in arg1: integer)redéfinitiond’une opérationAAABCB operation1(in arg1: integer)ABAABBABCSous classeclasse dérivéeFigure 2.10.DérivationSpécialisationDans une relation de généralisation entre classes, la super-classe est la classe parent et lasous-classe, la classe enfant. Partout où une instance du parent est utilisée, une instance del’enfant est aussi utilisable (principe de substitution).Une instance de la classe CB a comme type direct CB et comme type indirect CA.La classe spécialisée est intégralement cohérente avec la classe de base, mais comporte des informations supplémentaires (attributs, opérations, associations). Un objet de la classe spécialiséepeut être utilisé partout où un objet de la classe de base est autorisé.Le symbole utilisé pour la relation d’héritage ou de généralisation est une flèche avec un traitplein dont la pointe est un triangle fermé désignant le cas le plus général.17

ExempleVoici un exmple d’héritage entre la classe Oeuvre et les classes Opera, Livre, FilmFigure 2.11.VocabulairePlusieurs expressions sont utilisées :Figure 2.12.AAAABBest uneest unedérivehériteest uneest per-classe18dedededededeBBBBAA

ExercicesConcepts On considère les classes CA et CB ayant les opérations suivantes.1. La classe CA a deux opérations privées meth1() et meth2().2. La classe CA a une opération protégée init().3. La classe CA a une opération publique doIt().4. La classe CB est une spécialisation de CA.5. L’opération meth2 est redéfinie dans la classe CB.6. La classe CB a une opération public foo().Représenter ce modèle par un diagramme de classes UML.L’opération doIt fait appel aux opérations init(), meth1() et meth2().Est-ce correct et quelles méthodes sont exécutées si l’on fait appel à cetteopération sur un objet de la classe CA ?Même question dans le cas d’un objet de la classe CB.L’opération foo fait également appel aux opérations init(), meth1() et meth2().Est-ce correct et quelles méthodes sont exécutées si l’on fait appel à cetteopération sur un objet de la classe CB ?AccésOn considère les éléments suivants d’un modèle de classe :1. Une classe CX qui a comme opération. alpha de visibilité privée. beta de visibilité protégée. gamma de visibilité public2. Une classe concrète CY. ayant une opération protégée omega19

. et dont CX est une généralisationReprésentez ces éléments sous forme d’un diagramme de classe UML.Quelle(s) opération(s) peut-on appeler sur un objet de la classe CY ?Quelle(s) opération(s) de CX un objet de la classe CY peut-il appeler dans lecadre de son opération omega ?20

2.2.4AssociationUne association est une relation entre deux classes (association binaire) ou plus (associationn-aire), qui décrit les connexions structurelles entre leurs instances. Une association indique doncqu’il peut y avoir des liens entre des instances des classes associées.Figure 2.13. Deux façons de modéliser une associationUn attribut n’est donc rien d’autre qu’une terminaison d’un cas particulier d’associationRôle Comme un attribut, une terminaison d’association peut être nommée. Le nom est situéà proximité de la terminaison, mais contrairement à un attribut, ce nom est facultatif. Le nomd’une terminaison d’association est appelée nom du rôle. Une association peut donc posséderautant de noms de rôle que de terminaisons (deux pour une association binaire et n pour uneassociation n-aire).Figure 2.14. Notion de rôleRAnomRoleABnomRoleBnomRole : indique ce que représente l’ensemble des instances associées à une instance de laclasse par la relation R.21

nom de l’ensemble des instances de la classe Bqui sont en relation avec 1 instance de la classeA par la relation R.nomRoleA nom de l’ensemble des instances de la classe Aqui sont en relation avec 1 instance de la classeB par la relation R.Remarque : l’information concernant le rôle est portée par l’extrémité de la relation.nomRoleBVisibilité Comme un attribut, une terminaison d’association possède une visibilité. La visibilité est mentionnée à proximité de la terminaison, et plus précisément, le cas échéant, devantle nom de la terminaison.L’accès peut être , # ou Multiplicité Comme un attribut, une terminaison d’association peut posséder une multiplicité. Elle est mentionnée à proximité de la terminaison. Il n’est pas impératif de la préciser,mais, contrairement à un attribut dont la multiplicité par défaut est 1, la multiplicité par défautd’une terminaison d’association est non spécifiée. L’interprétation de la multiplicité pour uneterminaison d’association est moins évidente que pour un attribut.Figure 2.15. Valeurs possibles du cardinal de l’ensemble des instances associées à une instancede la classe par la relation R.RAmultAmultBmultABmultBcardinal de l’ensemble des instances de la classeB qui sont en relation avec 1 instance de la classeA par la relation R.cardinal de l’ensemble des instances de la classeA qui sont en relation avec 1 instance de la classeB par la relation R.22

Multiplicité : notationnotation : min . max1.10.10.*1.*n.m, pabreg.1–*––significationexactement 1zéro ou un (optionnel)aucun ou plusieursau moins 1entre n et m ou exactement pAssociation unidirectionnelle L’association peut être unidirectionnelle :Figure 2.16. Exemples d’association unidirectionnelle23

Les associations peuvent être contraintes :Contraintes sur une associationFigure 2.17. Exemples de motionelevesPersonne{subset}0.12 delegues0.1*Etablissement seignantsExercicesExo1 Exprimez sous forme d’un diagramme de classe UML qu’une classe Line est composéede deux Point. Exprimer également que la classe Line propose un service pour se déplacer d’undx et dy, et un service qui retourne la distance à une Line.Syntaxe Les objets de la classe AA référencent un ensemble setOfStuff d’objets de la classeAB qui sont d’accès public. Chaque objet de AB référence, par la même relation, un objet, ouaucun, de la classe AA, nommé xyz, d’accès protégé.Représentez ces éléments sous la forme d’un diagramme de classe UML.Répertoires Dans un système de fichiers, géré par le système d’exploitation d’un ordinateur, un répertoire peut contenir des répertoires.Représentez cette structure sous la forme d’un diagramme de classe UML.24

Dessin On s’intéresse à un logiciel de dessin technique et plus particulièrement au tracéde polygones. Un polygone est défini par la liste de ses sommets (au moins deux). S’agissant dedessin en 2D, les sommets sont des points caractérisés par leurs coordonnés : (x, y).Le tracé d’un polygone est fonction de l’ordre dans lequel ses sommets sont référencés ; cetordre doit donc être connu. Pour certaines opérations, on a aussi besoin de référencer le pointcorrespondant au barycentre d’un polygone.Les arêtes du polygone sont des segments qui relient 2 points, nommés respectivement origineet cible de l’arête.Exprimez sous forme d’un diagramme de classe UML ces différentes propriétésrelatives aux polygones.25

2.2.5Agrégation et gatA3Figure égation Une association simple entre deux classes représente une relation structurelleentre pairs, c’est à dire entre deux classes de même niveau conceptuel : aucune des deux n’estplus importante que l’autre. Lorsque l’on souhaite modéliser une relation tout/partie où uneclasse constitue un élément plus grand (tout) composé d’éléments plus petit (partie), il faututiliser une agrégation.Une agrégation est une association qui représente une relation d’inclusion structurelle oucomportementale d’un élément dans un ensemble. Graphiquement, on ajoute un losange videdu côté de l’agrégat. Contrairement à une association simple, l’agrégation est transitive.La signification de cette forme simple d’agrégation est uniquement conceptuelle. Elle necontraint pas la navigabilité ou les multiplicités de l’association. Elle n’entraı̂ne pas non plus decontrainte sur la durée de vie des parties par rapport au tout.Composition La composition, également appelée agrégation composite, décrit une contenancestructurelle entre instances. Ainsi, la destruction de l’objet composite implique la destructionde ses composants. Une instance de la partie appartient toujours à au plus une instance del’élément composite : la multiplicité du côté composite ne doit pas être supérieure à 1 (i.e. 1 ou0.1). Graphiquement, on ajoute un losange plein du côté de l’agrégat.ExemplesVoici un exemple :26

Figure 2.19. Exemple de relation d’agrégation et de composition.Figure 2.20. Exemple de relation d’agrégation et de composition.27

2.2.6PackagePrincipe Un package en UML (ou paquetage en français) est un groupe d’éléments, dansle but de les grouper dans des ensembles cohérents. Un package peut contenir la plupart deséléments UML : classes, objets, cas d’utilisations, composantes, etc. Il peut également contenirdes packages, créant une hiérarchie complète. L’avantage des packages est qu’ils permettent destructurer les diagrammes et donnent une vision globale plus claire.ExempleFigure 2.21. Une diagramme structuré par plusieurs packages.28

ExercicesNotation Exprimez sous forme d’un diagramme de classe UML que le package PP contient :. une classe A1. une classe A22.2.7Navigationpkg1 b10.1#b2AABB0.1-b30.1 op1()#op2()-op3()0.1 c1AB0.1 #c2CCOn considère le modèle de classes du package pkg1 ci-dessus.1. Une instance de la classe AA peut-elle exécuter les opérations op1, op2 et op3 de la classeBB, repectivement sur b1, b2 et b3.2. Même question pour une instance de AB.29

3. Quels sont les objets de la classe CC qui sont accessibles, et par quelles voies, à une instancede AA ?4. Même question pour une instance de AB.30

2.3Concepts avancés2.3.1Classe abstraitePrésentation. Définition : classe non instanciable ensemble de propriétés communes à différentes classesmais partiellement définies. donc, seuls des objets d’une classe dérivée sont instanciables. Deux raisons :1. bien que l’instanciation d’un tel objet serait possible cela n’aurait pas de sensex. Personne – Eleve – Prof2. au moins une des propriétés de la classe n’est pas définieex. Shape opération draw. Notation : abstract : tagged-value placée après le nom de la classe NomClass : en italiqueExercicesSyntaxe On considère un logiciel permettant de dessiner différents types de graphiques. Ilrepose sur la notion de forme graphique , qui correspond à la classe abstraite appelée Shape.Représentez cette classe abstraite Shape sous forme d’un diagramme de classeUML.31

2.3.2Attribut dérivéPrincipe Les attributs dérivés peuvent être calculés à partir d’autres attributs et de formulesde calcul. Lors de la conception, un attribut dérivé peut être utilisé comme marqueur jusqu’àce que vous puissiez déterminer les règles à lui appliquer.Les attributs dérivés sont symbolisés par l’ajout d’un / devant leur nom.ExempleExemple de l’attribut /surface : real largeur * longueurExemple de la classe A :Figure 2.22. L’attribut age est calculé à partir de la date de naissance et de la date actuelle32

2.3.3InterfacePrincipe interface Nom attribut1 attribut2Variables d’état devantêtre maintenues operationA operationBServicesreceptionsignal1Figure 2.23. signal2éventuellement un protocole description de servicesUne interface est une vue externe d’un objet, elle définit les services accessibles (offerts) auxutilisateurs de l’objet.Le rôle de ce classeur, stéréotypé interface , est de regrouper un ensemble de propriétéset d’opérations assurant un service cohérent.Réalisation interface IBCAattr1Figure lisationUne interface fournit une vue totale ou partielle d’un ensemble de services offerts par uneclasse. Les éléments qui utilisent l’interface peuvent exploiter tout ou partie de l’interface.33

Dans un modèle UML, le symbole interface sert à identifier de manière explicite etsymbolique les services offerts par un élément et l’utilisation qui en est faite par les autreséléments.ExempleFigure 2.25.Une interface doit être réalisée par au moins une classe. Graphiquement, cela est représentépar un trait discontinu terminé par une flèche triangulaire et le stéréotype realize . Une classe(classe cliente de l’interface) peut dépendre d’une interface (interface requise). On représente celapar une relation de dépendance et le stéréotype use .34

Deux types de notation interface I1 interface I2 interface I3 interface I4I1I2 interface I3CA interface I5CACB interface I6CBCC interface I7CDI5I6CCCDI7Figure 2.26.35I4

ExemplesVoici un exemple :Figure 2.27.description symbolique de l’interfacelien d’utilisationIlogsaisie mot de passePassword uses source de l’interfacesymbole de l’interface36

ExercicesSyntaxe 1 Soit l’interface de nom IXA définissant le service doIt().Représentez cette interface sous forme d’un diagramme de classe UML.Syntaxe 2 On considère les éléments suivants d’un modèle de classe :1. Une interface XY qui définit le service foo ayant comme paramètre d’entrée un entier etretournant un booléen.2. Une interface ZU qui spécialise XY, et qui définit un service iop ayant comme paramètred’entrée-sortie un nombre réel et comme paramètre de sortie une chaı̂ne de caractères.3. Une classe concrète CA qui réalise ZU.Représentez ces éléments sous forme d’un diagramme de classe UML.Syntaxe 3 On considère un modèle de classes composé des éléments suivants.1. Une interface II qui définit le service s1.2. Une classe abstraite AA qui définit une opération abstraite ope1 d’accès publique et qui acomme paramètre d’entrée un objet o dont la classe réalise l’interface II.3. Une classe AB qui spécialise la classe AA et qui réalise l’interface IJ qui est elle-même requisepar la classe AC.Représentez toutes ces informations sous forme d’un modèle de classes UML.Exo 1 On considère un modèle de classes composé des éléments suivants :. une classe abstraite AO qui définit une opération abstraite ope1() (d’acccés publique),. une interface I1 qui définit le service s1(),. une classe A1 ayant les propriétés suivantes : elle définit et implémente une opération protégée ope2(), elle spécialise la classe AO, elle réalise l’interface I1,37

il s’agit d’une classe concrète.Représentez cette interface sous forme d’un diagramme de classe UML.Concepts 1On considère le modèle de classes ci-dessous.1. Compléter le diagramme afin que l’interface IX soit réalisée.2. L’opération op de la classe AAA peut-elle exécuter les opérations op1, op2et op3 de la classe BB, repectivement sur b1, b2 et b3.3. Pour une instance de AAB, quels sont les objets de la classe DD qui sontaccessibles et par quelles voies ?4. La méthode associée à l’opération oops de la classe CC a comme paramètre un objet de type IX. Quelles opérations de AAA peut-elle utiliser ?5. Même question dans le cas de l’opération foo.38

Concepts 2pkg2B interface IX oops(Inout p1:IX) foo(Inout p2:CA) service1()CA ope()#doIt()CB interface IY ope() ope2() service2()On considère le modèle de classes du package pkg2 ci-dessus. On s’intéresse à l’utilisation desclasses CA et CB, par une instance de la classe B via les opérations oops et foo.1. Complétez l

D e nir le diagramme des classes 3.Dynamique. Dynamique de chaque objet est repr esent ee par le diagramme d' etats/transitions. Dynamique globale du syst eme est repr esent ee par le diagramme le diagramme d'activit es Remarque 1.1. UML 2.0 comporte 13 types de diagrammes. UML peut etre utilis e pour :. Conception ( forward engineering .

Related Documents:

Cours c et programmation orientée objet Programmation orientée objet 3 UMMTO Apparu dans les années 60s au sein de MIT Offre une grande souplesse de travail maintenance aisée Objet en programmation objet dans le monde réel Objet propriétés (attributs ) actions (méthodes ) Objet en C Structure de données (objet simple ) Classe

La programmation objets expliquée aux programmeurs Si vous êtes programmeur, mais habitué aux langages de programmation "procéduraux" (pascal, fortran, C, perl, etc.), ce chapitre est pour vous: il essaie d'expliquer comment on peut passer de la programmation procédurale à la programmation objet, via la programmation structurée.

34 Programmation objet 34.1 Programmation objet 34.2 Mot clé new 34.3 Object methods and fields 34.4 Function et prototype 34.5 mot clé this 34.6 paradigme de programmation classe/objet 35 Notation JSON 35.1 Tableau 35.2 Objet 35.3 Imbrications 35.4 Voir aussi 36 Ajax 36.1 Ajax : comment créer un sommaire 36.1.1 Intérêt de l'utilisation d .

La programmation oriente objet(POO) I. La programmation orientée objet La programmation orientée objets (POO) est une technique d'organisation du code d'un programme en le groupant en objets, les objets étant ici des éléments individuels comportant des informations (valeurs de données) et des fonctionnalités. L'approche orientée objet .

Programmation Orientée Objet Java Enseignant : Ramzi Mahmoudi mahmoudr@esiee.fr Année Universitaire: 2012/2013. Plan des chapitres 1. Introduction 2. Les bases du langage 33. La Programmation Objet avec Java 2 44. Des concepts avancés de la programmation orientée objet Java 55. Les classes de base

LA PROGRAMMATION OBJET EN JAVA Michel Divay M. DIVAY IUT BTS Licence Écoles d'ingénieurs LA PROGRAMMATION OBJET EN JAVA Michel Divay COURS 9 782100 496976 ISBN 2 10 049697 2 LA PROGRAMMATION OBJET EN JAVA www.dunod.com Ce livre s'adresse aux étudiants en IUT, BTS, licences et écoles d'ingénieurs des filières informatiques.

l'OMG en 1997, UML est rapidement devenu un standard incontournable. UML n'est pas à l'origine des concepts objet, mais il en en donne une définition plus formelle et apporte la dimension méthodologique qui faisait défaut à l'approche objet. Le but de cette présentation n'est pas de faire l'apologie d'UML, ni de restreindre UML à sa

1. Introduction au langage de modélisation UML 2. Le diagramme des cas d'utilisations 3. Modélisation objet et diagrammes UML statiques Une petite histoire de l'orienté objet Principes de bases Classe Encapsulation Relations entre classes Modèles UML 4. Modélisation UML dynamique 3