Chapitre VII: Préparation de l’implémentation partie 2: uml vers Java

Page 1 sur 15Lecteur de document UniversityLib

Chapitre VII: Préparation de l’implémentation partie 2: uml vers Java

Langage de modélisation UML, programmation Java · course

Chapitre VII: Préparation de

l’implémentation

partie 2: uml vers Java

Module Langage de modélisation UML

Année Universitaire

2016-2017

PLAN

PLAN

PLAN

Introduction

Règles de passage: Les Packages

Règles de passage: Les classes

Règles de passage: Attributs & méthodes

Règles de passage: Associations Binaires

Règles de passage: Associations particulières

Exemple d’outils de génération de code

2

De UML vers Language orienté objet

Dans ce chapitre,

on va mettre

l’accent sur les

règles de

passage du

diagramme de

classes de

conception vers

le code Java

Diagramme de classes

d’analyse

3

PLAN

PLAN

Règles de passage: Les Packages

UML

JAVA

package catalogue;

…

package bibliotheque;

import catalogue;

4

PLAN

PLAN

Règles de passage: Les classes

UML

public class Personnel {

JAVA

…

}

public abstract class Agent {

…

}

public interface

Irecipent {

}

5

PLAN

PLAN

Règles de passage: Attributs & méthodes

UML

Personnel

+matricule:String

-nom:String

Publicité

-prenom:String

-ageMin:int=18

#Adresse:String

+calculerDureePret():int

+getAge():int

JAVA

public class Personnel {

public String matricule;

private String nom;

private String prenom;

private static int ageMin = 18;

protected String Adresse;

public int calculerDureePret()

{…..}

public int getAge()

{…}

}

6

Règles de passage: Associations Binaires

PLAN

PLAN

« bidirectionnelles »

UML

JAVA

Homme

+Id_homme:int

mari

0..1

epouse

0..4

Femme

+Id_femme: int

public class Homme {

public int IdHomme;

private Femme[] epouse=new Femme[4];

…

}

public class Femme {

Public int IdFemme;

private Homme mari;

…

}

Une association bidirectionnelle se traduit simplement par une paire de références, une dans

chaque classe impliquée dans l’association.

Les noms des rôles aux extrémités d’une association servent à nommer les variables de type

référence.

7

Règles de passage: Associations Binaires

PLAN

PLAN

« navigabilité »

UML

JAVA

public class Personnel {

private Rapport[] lesRapports;

…

}

public class Rapport {

…

}

public class Personnel {

…

Publicité

}

public class Rapport {

private Personnel lePersonnel;

…

}

Les associations navigables se traduisent par du code Java qui dépend de la multiplicité de

l’extrémité concernée,

8

Règles de passage: Associations Binaires

PLAN

PLAN

« Reflexive »

UML

JAVA

public class Personne {

private Personne[] subordonne;

private Personne chef ;

…

}

Une association réflexive se traduit simplement par une référence sur un objet de la

même classe

9

Règles de passage: Associations Particulières

PLAN

PLAN

«Généralisation »

UML

Personnel

-matricule:String

-nom:String

-prenom:String

#Adresse:String

JAVA

public class Personnel {

private String matricule;

private String nom;

private String prenom;

protected String Adresse;

}

Comptable

-iD:int

public class Comptable extends Personnel {

private int iD;

}

Le concept UML de généralisation se traduit directement par le mécanisme de l’héritage

dans les langages objet.

10

Règles de passage: Associations Particulières

PLAN

PLAN

«Agrégation »

JAVA

UML

public class Association {

private List <membre> membres;

}

public class Membre {

}

11

Règles de passage: Associations Particulières

PLAN

PLAN

Publicité

« Composition »

UML

JAVA

public class Voiture {

private Moteur moteur;

public Voiture()

{

Moteur = new Moteur();

}

}

public class Moteur {

}

12

Règles de passage: Associations Particulières

PLAN

PLAN

« Réalisation »

UML

JAVA

public class Livre implements IImprimable, IEmpruntable {

private String titre;

private String auteur;

private ISBN isbn;

public void imprimer(){

…

}

public void emprunter(){

…

}

public void retourner(){

…

}

}

Une classe UML peut implémenter plusieurs interfaces.

13

Règles de passage: Associations Particulières

« Réalisation+use »

class interface IUsine {

……}

public class Usine implements Iusine{

….. }

public class Client {

IUsine u1 = new Usine();

…….

}

14

Quelques outils de génération de code

• Papyrus UML (Eclipse Public Licence Multiplateforme)

– En Java

– En C++ avec le composant CDT d’Eclipse.

– En Ada.

• StarUML (GPL – Windows uniquement)

La génération de code est possible de base en C++, C# et Java.

• ArgoUML (Eclipse Public Licence – Multiplateforme)

Génération de code en Java, C++, C# et PHP.

• Open ModelSphere (GPL – Multiplateforme)

Il est capable de générer du code Java à partir du diagramme de classes.

15