• Aucun résultat trouvé

POO Modélisation Objet UML – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "POO Modélisation Objet UML – Cours et formation gratuit"

Copied!
22
0
0

Texte intégral

(1)

POO 2/3 -

Modélisation Objet

UML / Unified Modeling Language

Pierre Parrend

IUT Lumière Lyon II, 2005-2006

(2)

Janvier 2008 Programmation Orientée Objet 2

Sommaire

Les cycles de vie du logiciel

Le diagramme UML de Cas d'Utilisation

Le diagramme UML de Classes

Le diagramme UML de Séquence

Autres diagrammes UML

Les Design Pattern

Pour Programmer en Objet, il faut être capable de concevoir en Objet

(3)

Le Cycle de Vie du Logiciel

Modèle en Cascade

Besoins

Conception

Implementation

Vérification

Maintenance

(4)

Janvier 2008 Programmation Orientée Objet 4

Le Cycle de Vie du Logiciel

Modèle en V

Analyse

Conception globale

Conception unitaire

Implémentation

Tests unitaires

Tests d'intégration

Recette

(5)

Le Cycle de Vie du Logiciel

Modèle en Spirale

d

(6)

Janvier 2008 Programmation Orientée Objet 6

Le Diagramme de Cas d'Utilisation

Principe

Représentation des interactions entre un système et les utilisateurs

Example

(7)

Le Diagramme de Cas d'Utilisation

Eléments

Système

Cas d'utilisation

Utilisateur

Serveur

achatDisque

Client

Attention:

Respectez les conventions graphiques !!

(8)

Janvier 2008 Programmation Orientée Objet 8

Le diagramme de Classe

Principe

Représentation des Classes d'un programme

de leurs membres

De leurs interactions

Example

(9)

Le diagramme de Classe

Eléments

Package

Classes, attributs, méthodes

(10)

Janvier 2008 Programmation Orientée Objet 10

Le diagramme de Classe

Héritage

Interfaces et Classes

Abstraites

(11)

Le diagramme de Classe

Eléments

Association

Lien simple entre deux classes

Aggrégation

Lien entre deux classes dont les cycles de vie sont

indépendants

Composition

Lien entre deux classes dont les cycles de vie sont liés

(12)

Janvier 2008 Programmation Orientée Objet 12

Le diagramme de Séquence

Principe

Représentation des interactions entre les objets d'un programme

Example

Scénario

Avion

TourDeControle

decollage()

atterrissage()

informe() informe() init()

decollage()

atterrissage() new() new()

(13)

Le diagramme de Séquence

Eléments

Instance, ligne de vie, action, retour

Avion TourDeControle

informe()

:accuseDeReception

Instance Ligne de Vie Action

Retour

Destruction de l'Objet

(14)

Janvier 2008 Programmation Orientée Objet 14

Le diagramme de Séquence

Eléments

Appel synchrone

Avec attente de la réponse

Appel de méthode

Appel asynchrone

Sans attente de la réponse

Emission de message

Avion TourDeControle

informe() getAuthorisation()

(15)

Le diagramme de Séquence

Eléments

creation/destruction

Scénario

TourDeControle

new()

Perte de la variable

(16)

Janvier 2008 Programmation Orientée Objet 16

Autres diagrammes

UML 1.3

Diagrammes de comportement

Cas d'Utilisation, Etat, Activité –

Diagrammes de Structure

Classes, Objets, Composants, Déploiement –

Diagrammes d'Interactions

Collaboration, Séquence

(17)

Design Patterns

Différents Design Patterns (DP)

= 'Patrons de Conception'

'Solution à une problème de programmation récurrent'

Souvent représentés en UML

mais pas obligatoirement –

DP de Création

Singleton, Usine –

DP Structurels

Facade

DP comportementaux

Inversion de Contrôle

(18)

Janvier 2008 Programmation Orientée Objet 18

Design Patterns

Singleton

private static FichierClient fichierClientSingleton;

public class FichierClient {

private FichierClient() {

System.out.println("Nouveau fichier client cree");

}

public static FichierClient getFichierClient() {

if(fichierClientSingleton==null) {

fichierClientSingleton=new FichierClient();

}

return fichierClientSingleton;

} }

(19)

Design Patterns

Façade

Le Design Pattern Façade consiste à avoir une classe comme

point d'entrée unique d'une partie d'une programme.

(20)

Janvier 2008 Programmation Orientée Objet 20

Design Patterns

Usine

Le Design Pattern Usine (Factory) consiste à utiliser une

classe de génération d'objets, en fonction du contexte.

(21)

Design Patterns

Usine

Exemple

public class ClientFactory {

public static Client getClient(String nom, int age, int id, FichierClient fichier){

Client monClient;

if(age<18) {

monClient=new Enfant(nom,age,id);

}

else if(age<65) {

monClient=new Adulte(nom,age,id,fichier);

}

return monClient;

} }

(22)

Janvier 2008 Programmation Orientée Objet 22

Design Patterns

Inversion de Contrôle

package ioc;

public class Master

{ public void sayHello(){System.out.println("Hello");}

public static void main(String[] args){

Slave esclave=new Slave(new Master());

esclave.callBack();

} }

class Slave {

private Master monMaitre;

public Slave(Master monMaitre){this.monMaitre=monMaitre;}

public void callBack(){monMaitre.sayHello();}

}

Références

Documents relatifs

 Les constructeurs implicites : Le compilateur crée automatiquement un objet à partir d’un autre objet (conversion ou recopie) ou de rien du tout (constructeur par défaut). ◼

une commande est créée pour un client et un catalogue donnés, on peut ajouter des articles à une commande, accéder à la liste des articles commandés ainsi que prix total des

Le modèle des classes d’UML saisit la structure statique d'un système en montrant les objets dans le système, les relations entre les objets, les attributs et

A use case use case is a kind of classifier representing a coherent is a kind of classifier representing a coherent unit of functionality provided by a system, a subsystem,

UML est une notation, pas une méthode UML est une notation, pas une méthode UML est un langage de modélisation objet UML est un langage de modélisation objet UML convient pour

Modèle de classes : description des objets d’un système et de leurs relations. Modèle d’états : description du cycle de vie des

Mˆeme si les classes Passager et Pilote sont tr`es proches de la classe Personne, le fait que les champs d´efinis dans Personne le soit avec le mot clef private les oblige `a

Hors cette étape n'est clairement pas du ressort d'un objet : seule la classe possède suffisamment d'informations pour la mener à bien : la création d'un objet est donc une méthode