1 Diagramme de classe

Documents pareils
Premiers Pas en Programmation Objet : les Classes et les Objets

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

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

RMI le langage Java XII-1 JMF

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Programme Compte bancaire (code)

Corrigé des exercices sur les références

Java Licence Professionnelle CISII,

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

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

Java Licence Professionnelle Cours 7 : Classes et méthodes abstraites

Chapitre 10. Les interfaces Comparable et Comparator 1

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr

ETUDE DE CAS en UML : GESTION DES COMMANDES DE PIECES FABRIQUEES PAR LA SOCIETE C

Page 1 sur 5 TP3. Thèmes du TP : l la classe Object. l Vector<T> l tutorial Interfaces. l Stack<T>

Design patterns. Design patterns - définition. Design patterns - avantages

Programmation par les Objets en Java

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

Projet de programmation (IK3) : TP n 1 Correction

Synchro et Threads Java TM

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

TD/TP PAC - Programmation n 3

Une introduction à Java

Tp 1 correction. Structures de données (IF2)

Plan du cours. Historique du langage Nouveautés de Java 7

Héritage presque multiple en Java (1/2)

Java Licence Professionnelle CISII, Cours 2 : Classes et Objets

ACTIVITÉ DE PROGRAMMATION

Polycopié Cours Programmation Orientée Objet sous Java Programme : Filière SMI S5

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

Langage Java. Classe de première SI

TD/TP PAC - Programmation n 3

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

P r ob lé m a t iq u e d e la g é n é r icit é. Pr in cip e d e la g é n é r icit é e n Ja v a ( 1 /3 )

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

Programmer en JAVA. par Tama

Utiliser Java sans BlueJ

Programmation Orientée Objet - Licence TIS CM8/9. Rappel sur la séance précédente. Lancelot Pecquet Lancelot.Pecquet@math.univ-poitiers.

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Package Java.util Classe générique

Prendre le marteau, le tableau, le mètre, le crayon, la ficelle, le clou, la pointe ;

INITIATION AU LANGAGE JAVA

Programmation Orientée Objet

Les frameworks au coeur des applications web

Remote Method Invocation (RMI)

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

TD3: tableaux avancées, première classe et chaînes

Cours 1: Java et les objets

Corrigés des premiers exercices sur les classes

J2SE Threads, 1ère partie Principe Cycle de vie Création Synchronisation

Rapport de Projet Béatrice Frey et Cyril Crassin Printemps Projet Fourmis. Université de Technologie de Belfort-Montbéliard

Auto-évaluation Programmation en Java

Chapitre VI- La validation de la composition.

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

Environnements de développement (intégrés)

Info0604 Programmation multi-threadée. Cours 5. Programmation multi-threadée en Java

TP1 : Initiation à Java et Eclipse

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Communication inter-processus (IPC) : tubes & sockets. exemples en C et en Java. F. Butelle

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

GOL502 Industries de services

Programmation Réseau. Sécurité Java. UFR Informatique jeudi 4 avril 13

TP, première séquence d exercices.

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

as Architecture des Systèmes d Information

Programmation en Java IUT GEII (MC-II1) 1

Notion de thread (1/2)

30.avr.10 Présentation miniprojet. 9.mars.10 Cours 3 4.mai.10 Cours C mars.10 Cours 4 11.mai.10 Cours C++ 2

Utilisation d objets : String et ArrayList

Développement Logiciel

Remote Method Invocation Les classes implémentant Serializable

TP3. Mail. Attention aux fausses manoeuvres lors de ce TP vous pouvez endommager votre mail sur ouindose.

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

Lambda! Rémi Forax Univ Paris-Est Marne-la-Vallée

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, , ISBN :

Java Licence Professionnelle CISII,

La médiatrice d un segment

Anne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN :

Java Licence professionnelle CISII,

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

Support de cours et TD Programmation Orientée Objet

Gestion distribuée (par sockets) de banque en Java

Programmation Objet Java Correction

Par Laurent DESECHALLIERS. Mastère Spécialisé en Management de Projets en Milieu Industriel. CESI de Rouen Promotion 2002/2003.

La gestion de la persistance avec Hibernate. Hibernate et la gestion de persistance. La gestion de la persistance (1/2) Introduction

Programmer en Java. OC Informatique GYMNASE DE BURIER

Un ordonnanceur stupide

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Généricité. en Java. (polymorphisme paramétrique) Philippe GENOUD UJF Janvier

TP1 : Initiation à Java et Eclipse

Cours d initiation à la programmation en C++ Johann Cuenin

Le contexte. Le questionnement du P.E.R. :

point On obtient ainsi le ou les points d inter- entre deux objets».

Initiation à JAVA et à la programmation objet.

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

Structurer ses données : les tableaux. Introduction à la programmation

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Transcription:

Université Claude Bernard Lyon MASTER IR, 204 205 ISFA UML TD. Point de vue statique André FABBRI Diagramme de classe Conformément au modèle objet, le diagramme de classe représente les types des objets manipulés (appelés classes) ainsi que les relations qu ils entretiennent.. Classes Figure Description d une classe Une classe est découpée en trois zones : le Nom de la classe, les attributs et les méthodes. Chaque ligne parmi les attributs et les méthodes est composée de trois élements, comme suit : Visibilité Nom : Type La visibilité : publique (+ = tous), privée(- = self) ou protégée (# = filles) Le nom : de l attributs ou de la méthode Le type : de la variable attribut ou de la valeur retrounée par la méthode Enfin les méthodes peuvent être appelées avec des paramètres. Dans ce cas, on indique entre parenthèses la liste des paramètres en précisant le nom du paramètre et son type..2 Les relations Les deux principales relations entre les classes sont les associations (est composée de) ou d héritage (est un type de).

Figure 2 Relation d héritage et d association Héritage : la classe fille possède tous les attributs et méthodes de la classe mère Association : la classe A est en fait un attribut de la classe B et vice versa. Les associations sont un peu plus précises que les relations d héritages. Dans chaque association, on distingue 4 éléments : La cardinalité : indique le nombre d objets d une classe possédée par l autre (Les rôles) : indique le nom pris par les objets d un type dans la classe associée (Le sens) : par défaut une association se parcours dans les deux sens (A B). La flèche permet de préciser le sens souhaité. {Contrainte : permet de préciser encore des associations. Ex : {Ordered,{XOR... Par exemple ici : Chaque objet de type A possède de 0 à une infinité d objets de type B et chaque objet de type B appartient à 3 objet de type A Il existe d autres associations plus complexes avec des contraintes supplémentaires : aggrégation, composition (nous ne les présenterons dans le cadre de cette initiation). 2 Diagramme d objets Les diagrammes d objets représentent une instanciation possible du modèle objet présenté dans le diagramme de classe. Dans un diagramme d objets on représente des objets et des liens. Figure 3 Relation entre diagramme de classe et diagramme objet Les objets : avec leur nom, leur type et préciser certaines valeurs des attributs 2

Les liens : correspondent aux associations entre les objets Remarques : Les relations d héritage n ont pas leur place dans un diagramme d objet car est définissent un type. Par ailleurs, les liens indiqués doivent coïncider avec les cardinalités mentionnées dans le diagramme de classe. 3 Exercices 3. Attention à l héritage Question Comment rendre plus modulaire les classes de ce diagramme en utilisant des relations d héritage. 3.2 Types d associations à utiliser Question 2 Quels types d association y a t il entre les classes des expressions suivantes? Donner les diagrammes de classes associés.. une pièce est composée de plusieurs murs ; 2. un pays a une capitale ; 3. un pays a plusieurs villes et une seule capitale ; 4. une transaction boursière est un achat ou une vente ; 5. les fichiers contiennent des lignes ; 6. un polygone est composé d un nombre ordonné de points ; 7. modems et claviers sont des périphériques d entrées / sorties ; 8. une personne souhaiterait visiter plusieurs pays, et selon un ordre de préférence ; 3.3 Instanciations minimales Question 3 Dessiner les diagrammmes d objet conformément aux digrammes de classe donné et aux contraintes imposées.. ci-dessus et composé d au moins 3 objets. 3

2. 3. 4. ci-dessus et composé d au moins 3 objets..3 ci-dessus et composé d au moins 2 objets de la..3 ci-dessus et composé d au moins 2 objets de la Asso 0.. 5. 2 Asso2 ci-dessus et composé d au moins objet 6. 2 ClasseC ci-dessus et composé d au moins objet 3.4 Du java à l UML Question 4 Réalisez le diagramme de classe correspondant au code suivant (solution du TP2) et le diagramme d objet correspondant à la méthode main de la classe Principale. public class Etudiant { private String nom; private String prenom; private int numero; static int compte=0; Etudiant(String a, String b) { this.nom=a; this.prenom=b; compte++; this.numero=compte; 4

Etudiant (Etudiant Et){ this.nom=et.nom; this.prenom=et.prenom; this.numero=et.numero; public String getnom(){ return this.nom; public String getprenom(){ return this.prenom; public boolean compare(etudiant Etu){ return (this.numero==(etu.numero)); public void affiche(){ System.out.println("Il s appelle "+this.prenom+" "+ this.nom+" et son numéro d étudiant est "+this.numero); public class Binome { Etudiant e; Etudiant f; static int cpt=0; Binome(Etudiant a, Etudiant b){ this.e=a; this.f=b; cpt++; public void affiche_binome(){ System.out.println("Le binome est composé de : "); this.e.affiche(); this.f.affiche(); public class Principale { public static void main(string[] args) { Etudiant E = new Etudiant("Pierre","Paul"); Etudiant E = new Etudiant("Pierre","Paul"); Etudiant E2 = new Etudiant(E); System.out.println(Etudiant.compte); System.out.println(E.compare(E2)); E.affiche(); E2.affiche(); Binome B = new Binome(E,E2); B.affiche_binome(); B.affiche_binome(); 5

3.5 Un modèle du vivant Un professeurs de mathématiques vous demande d implémenter un modèle Proie/Prédateur (inspiré de celui de Lotka-Volterra) en vue de réaliser de jolies simulations. Voici la description du modèle en question : Soit un environnement discret composé d un ensemble de cases (qui correspondent à des pâturages) et d animaux (qui correspondent aux proies et aux prédateurs). Chaque case est adjacente à exactement 4 cases et peut accueillir au maximum un seul animal (proie ou prédateur), par ailleurs chaque case possède une quantité d herbe que les proies pourront consommer. La quantité d herbe augmentera au cours du temps suivant une probabilité. Les proies comme les prédateurs possèdent une durée de vie limité dans le temps. Chaque fois que possible, ils chercheront à se nourrir : les proies se nourrissent de l herbe présente sur leur case (s il en reste) et les prédateurs se nourrissent d une proie située sur une case avoisinante. Suite à un repas, chaque animal a une probabilité de créer un animal identique sur une case qui lui est adjacente. Question 5 Donner la représentation statique (diagramme de classe) du modèle présenté : quelles informations doit-on stocker pour pouvoir réaliser le modèle ci-dessus? et comment les organiser? Question 6 Donner le diagramme objet correspondant à ce modèle pour un environnement de 4 cases avec proie et un prédateur sur 2 cases non-adjacentes. 6

3.6 Figure géométriques (Partie I) Un dessin regroupe un ensemble de figures géométriques régulières (carré, triangle équilatéral et cercle) dessinée sur une feuille millimétrée. Dans l exemple ci-dessous, nous avons dessinées plusieurs formes régulières sur 2 feuilles distinctes. Chaque figure géométrique a un nom (qui peut être vide) et pourra être remplie ou non. Par ailleurs on souhaite conserver pour chaque figure géométrique le minimum d information nécessaire pour les tracer sans ambiguïtée dans le repère fourni par le feuille. Question 7 Dessiner le diagramme de classe de ce problème ainsi que le diagramme objet associé à l exemple ci-dessus. Vous exposerez sommairement comment vous pouvez dessiner chacune des figures de la feuilles à partir des informations que vous aurez stockés (on supposera dans un premier temps que les figures géométriques seront placées de manières à ce quelles ne se chevauchent pas). On considère à présent que certaines figures (le carré et le triangle) peuvent contenir tout autre type de figure comme dans l exemple ci-dessous. Ainsi, un carré peut contenir un cercle et/ou un triangle et/ou un carré. Par contre, un cercle ne peut pas contenir d autres figures. Question 8 Modifier le diagramme de classe en conséquence et proposer un nouveau diagramme objet pour l exemple ci-dessus. 7

3.7 Comptes bancaires On suppose que dans une banque, il existe trois type de compte de client : un compte ordinaire (CO) sur lesquelles toutes les opérations sont autorisées un compte rémunéré non bloqué (CRNB) qui en plus des opérations ci-dessus, permet la rémunération du compte avec un taux de rémunération fixe de 2%. un compte rémunéré bloqué (CRB) qui est un compte rémunéré comme ci-dessus avec un taux de 5% et sur lequel le retrait n est pas possible (et donc pas de virement aussi à partir de ce type de compte). Les comptes sont associés à un client titulaire et sont identifiés par un numéro de compte. Question 9 Donnés le diagramme de classe détaillé des CO, CRB et CRNB ainsi que les classes permettant de réaliser les fonctionnalités détaillées dans le diagramme de cas d utilisation sur ces comptes. 8