Vous êtes sur la page 1sur 44

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Conception et Programmation par Objets FLIN407


Marianne Huchard, Clmentine Nebut, Xavier Dolques
LIRMM / Universit de Montpellier 2

2009

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Sommaire

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Pourquoi vous parler de conception par objets ?


Succs des approches par objets (30 dernires annes) :
Dcrire un systme avec des reprsentations informatiques

proches des entits du problme et de sa solution Avantages reconnus en termes de :


facilit du codage initial, stabilit du logiciel construit car les objets manipuls sont plus

stables que les fonctionnalits attendues,


aisance rutiliser les artefacts existants et ... maintenir le logiciel, le corriger, le faire voluer ;

Fort dveloppement dans les langages de conception, de

programmation, les bases de donnes, les interfaces graphiques, les systmes dexploitation, etc.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Objectifs du cours

Concepts essentiels de lapproche objet en sappuyant sur


un langage de modlisation (UML) un langage de programmation (Java)

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Notion de modlisation

Premire activit dun informaticien face un systme mettre en place. Produire une reprsentation simplie du monde pour :
accumuler et organiser des connaissances, dcrire un problme, trouver et exprimer une solution, raisonner, calculer.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Hiatus

Il sagit en particulier de rsoudre le hiatus entre :


le monde rel, complexe, en constante volution, dcrit de

manire informelle et souvent ambigu par les experts dun domaine


le monde informatique, o les langages sont codis de

manire stricte et disposent dune smantique unique.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Dicults de la modlisation

La modlisation est une tche rendue dicile par dirents aspects :


spcications parfois imprcises, incompltes, ou incohrentes, taille et complexit des systmes importantes et croissantes, volution des besoins des utilisateurs, volution de lenvironnement technique (matriel et logiciel), des quipes grer plus grandes, avec des spcialisations

techniques, ncessaires du fait de la taille des logiciels construire, mais le travail est plus dlicat structurer.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Apport des mthodes danalyse et de conception


Guides structurant :
organisation du travail en direntes phases (analyse,

conception, codage, etc.) ou en niveaux dabstraction (conceptuel, logique, physique),


concepts fondateurs : par exemple les concepts de fonction,

signal, tat, objet, classe, etc.,


reprsentations semi-formelles, documents, diagrammes, etc.

Langage de modlisation = formalisme de reprsentation qui facilite


la communication lorganisation la vrication la gnration dune partie du code

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Vers lingnierie des modles

approche rcente du gnie logiciel faire face lvolution rapide des technologies modles au centre du dveloppement capitaliser les modles dune application dduire le code par transformations successives intgr dans la plupart des ateliers de construction

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

UML, un langage de modlisation


UML (Unied Modeling Language)
langage de modlisation graphique issu en 1995 de la fusion de plusieurs mthodes objets

incluant OOSE (Jacobson), OOD (Booch), OMT (Rumbaugh)


assurant une continuit des concepts depuis les phases amonts

jusqu limplmentation incluant :


les concepts des approches par objets : classe, instance,

classication, etc.
intgrant dautres aspects : associations, fonctionnalits,

vnements, tats, squences, composants, patrons de collaboration, etc.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

4 points de vue / 4 modles

Figure: Vue gnrale des modles UML

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Modle

Reprsentation abstraite dune ralit Image simplie du monde rel selon un point de vue utile pour :
comprendre et visualiser (en rduisant la complexit), communiquer (langage commun, nombre restreint de

concepts),
mmoriser les choix eectus, valider (contrler la cohrence, simuler, tester).

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Diagrammes

Figure: Vue gnrale des diagrammes UML

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Concrtisation en Java

Langage de programmation objets (1991), synthse de ses prdcesseurs


emprunt de syntaxe C++ ; plus grande simplicit que C++ ; abstraction des problmes de gestion de la mmoire ; pas tout objet , un peu dintrospection ; compilateur et interprte gnralement inclus dans les

navigateurs internet.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Sommaire

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Modle dutilisation / modle fonctionnel

Dlimite le systme et dcrit la manire de lutiliser Oriente le dveloppement entier du systme Prsente : Les fonctionnalits externes le point de vue des utilisateurs les interactions avec les acteurs extrieurs

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Modle dutilisation / modle fonctionnel

Concepts majeurs :
frontire qui dlimite le systme acteurs entit extrieure au systme et interagissant avec acteurs humains acteurs machine (systme extrieur communiquant avec le systme tudi) cas dutilisation (toute manire dutiliser le systme)

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Modle dutilisation / modle fonctionnel

Figure: Elments des diagrammes de cas dutilisation

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Elments des diagrammes de Cas dutilisation

Acteur

Acteurs humains ou logiciels extrieurs au systme et interagissant avec celui-ci

Cas dutilisation

A
Action du systme dclenche par un acteur lors dune interaction avec le systme

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Relations entre cas dutilisation (1)

relation include

include

A inclut obligatoirement B

relation extend

extend

B
B tend optionnellement A

Condition : Cond ExtensionPoint

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Relations entre cas dutilisation (2)

Relation de Gnralization-spcialization

A
Relation dhritage entre 2 cas dutilisation ou 2 acteurs.

B
Association avec un acteur

Relation dnissant la participation dun acteur dans un cas

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Commande par internet

Figure: Relations include et extend

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Commande par internet

Figure: Relations de spcialisation entre cas dutilisation

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Exemple dinscription des stages

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Exemple dinscription des stages (autre organisation)

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Dossier du modle dutilisation


Description complmentaire par :
textes, diagramme de squences ou dactivits

Contenu classique du dossier :


Sommaire didentication

Titre, rsum, acteurs, dates de cration et de mise jour, version, auteurs


Description des enchanements

Pr-conditions, scnario nominal, alternatives, exceptions, post-conditions


Besoins IHM Contraintes non fonctionnelles

Temps de rponse, concurrence, ressources machine, etc.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Sommaire

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Les classes et instances en UML

Modle statique (ou structurel) Diagrammes dobjets ou diagrammes dinstances


objets du domaine modlis ou de la solution informatique (par

exemple des personnes, des comptes bancaires)


liens entre ces objets (par exemple le fait quune personne

possde un compte bancaire) ; Diagrammes de classes abstraction des diagrammes dobjets classes, associations, attributs, oprations

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Le raisonnement classicatoire

Identication dobjets de base (Estelle, la voiture dEstelle) Utilisation de ces objets comme des prototypes (la voiture

dEstelle vue comme une voiture caractristique, laquelle ressemblent les autres voitures, moyennant quelques modications) modles et langages prototypes
Regroupement des objets partageant des proprits

structurelles et comportementales en classes modles et langages classes

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Classes
Concept du domaine sur lequel porte :
le logiciel

voiture ou compte bancaire un type de donnes abstrait tel que la

le domaine du logiciel

pile Une classe peut se voir selon trois points de vue :


un aspect extensionnel : lensemble des objets (ou instances)

reprsents par la classe,


un aspect intensionnel : la description commune tous les

objets de la classe, incluant les donnes (partie statique ou attributs) et les oprations (partie dynamique),
un aspect gnration : la classe sert engendrer les objets.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Instances et classes en notation UML

Figure: Classe ( gauche) et objet/instance ( droite)

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Description des attributs


[visibilit][/]nom[:type][[multiplicit]][= valeurParDfaut]

visibilit {+, , #, }, et multiplicit dnit une

valeur (1, 2, n, ...) ou une plage de valeurs (1..*, 1..6, ...).


visibilit Public. + est la marque dun attribut accessible partout (public) Priv. - est la marque dun attribut accessible uniquement par sa propre classe (priv) Package. est la marque dun attribut accessible par tout le paquetage Protected. # est la marque dun attribut accessible par les sous-classes de la classe le nom est la seule partie obligatoire de la description

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Description des attributs

[visibilit][/]nom[:type][[multiplicit]][= valeurParDfaut]

la multiplicit dcrit le nombre de valeurs que peut prendre

lattribut ( un mme moment)


le type dcrit le domaine de valeurs la valeur initiale dcrit la valeur que possde lattribut

lorigine
des proprits peuvent prciser si lattribut est constant

({constant}), si on peut seulement ajouter des valeurs dans le cas o il est multi-valu ({addOnly}), etc.

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Description des attributs

Figure: Dtails sur la syntaxe de description des attributs

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Attributs de classe
Valeur partage par toutes les instances

Figure: Attributs de classe

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Attributs drivs
Valeur dduite de la valeur dautres attributs ou dautres lments dcrivant lobjet

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Les paquetages en UML

regroupement logique dlments UML, par exemple de classes structuration dune application utiliss dans certains langages, notamment Java, ce qui assure

une bonne traabilit de lanalyse limplmentation


lis par des relations de dpendance

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Les paquetages en UML

Figure: Paquetages en UML

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Sommaire

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Types de base en Java


boolean, constitu des deux valeurs true et false. Les

oprateurs se notent : non gal dirent Java ! == !=

et alors / et && &

ou sinon / ou |

int, entiers entre 231 et 231 1 float, double, ces derniers sont des rels entre

1.79E + 308 et +1.79E + 308 avec 15 chires signicatifs.


char, caractres reprsents dans le systme Unicode. Les

constantes se notent entre apostrophes simples, par exemple A.


String, qui est ... une classe. Les chanes de caractres

constantes se notent entre guillemets, par exemple "hello world".

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

criture des classes

package ExemplesCours1; public class Voiture { private String type; // null private String marque; // null private String couleur; // null private static int nbrVoitures; // 0 private static final int nbrRoues = 4; }

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Cration des instances

Dclaration dune variable Voiture titine; Cration dune instance titine = new Voiture();

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Accs aux attributs, aectations

Notation . Exemple titine.type Ecriture de valeurs dans des attributs dinstance titine.type = "205"; titine.marque = "Peugeot"; titine.couleur = "rouge"; Ecriture de valeurs dans les attributs de classe Voiture.nbrVoitures = 3;

Introduction

Modle dutilisation

Classes et paquetages - UML

Classes, instances, paquetages - Java

Prochaine tape

Animer les objets Oprations dcrivant la manire dont les objets rpondent aux

messages