au langage UML
La justification historique de la modélisation objet
La complexité du logiciel
Ses origines
La complexité du logiciel
La complexité des problèmes
Les logiciels doivent parfois traiter des éléments
complexes (par exemple, le pilote automatique d'un avion
de ligne) auxquels viennent s'ajouter des exigences comme
la facilité d'emploi, les performances ...
La justification historique de la modélisation objet
La complexité du logiciel
La complexité des problèmes
La complexité du logiciel
La complexité des problèmes
Cette complexité est encore accrue par l'évolution du
dialogue entre le concepteur qui appréhende de mieux
en mieux le domaine et l'utilisateur qui saisit mieux les
possibilités de l'informatique et exprime mieux ses
besoins.
La justification historique de la modélisation objet
La complexité du logiciel
La difficulté à contrôler les processus de développement
La complexité du logiciel
La difficulté à contrôler les processus de développement
La complexité du logiciel
La difficulté à contrôler les processus de développement
Le processus de développement de tels outils logiciels ne peut
plus être appréhendé (en un temps raisonnable) par une seule
personne et doit faire l'objet d'un travail d'équipe.
La complexité organisationnelle vient s'ajouter à la
complexité du logiciel à développer.
La justification historique de la modélisation objet
La complexité du logiciel
La flexibilité dans la programmation
La complexité du logiciel
La flexibilité dans la programmation
La complexité du logiciel
La flexibilité dans la programmation
La complexité du logiciel
Le passage du monde continu au monde discret
En météorologie, l’atmosphère
est modélisée par un ensemble
de cubes où la température et la
pression sont considérées
comme homogènes.
La justification historique de la modélisation objet
La complexité du logiciel
Le passage du monde continu au monde discret
La complexité du logiciel
Le passage du monde continu au monde discret
Les apports de la
modélisation objet
Les apports de la modélisation objet
Plan de la partie
Voici les chapitres que nous allons aborder :
Méthode et modèle
Le principe d’encapsulation.
Le principe d’abstraction.
Le principe de modularité.
Synthèse.
Méthode, modèle
processus
UML
UP StarUML
Méthode, modèle
Un modèle est une représentation (le plus souvent abstraite) de
quelque chose que l’on perçoit :
Modèle 1 Modèle 2
ᆰ
ホ
réalité déformée
filtre réalité
filtre réalité déformée
perception perception
Modèle
Rêve
123CDE91 titi
garfield mange
0605040302
0102030405 grosminet
parle
odie
001-DF-YTR
poursuit
007BEJ06
Dupond Dupont
poursuit
java 2
0203040506 felix
45BEJ91
Les objets coopèrent
Objet boîte noire
Abstraction
Représentation abstraite des entités du monde réel ou virtuel
dans le but de les piloter ou de les simuler
Programme, logiciel
Objet = Message =
demande de
Service
État + service
État
Comportement +
Identité
unObjet
Téléphone portable
voir R ép er toir e
() appeler (Bob)
ch er ch er
appeler
N um er o
(personne)
État
(p er sonne)
monTéléphone recevoir
msg appeler (Bob et Paulette)
(msg)
Les apports de la modélisation objet
Le principe d’encapsulation
Le principe
Le principe de l'encapsulation est « d'enfermer »
(de cacher) les données dans des entités logicielles
appelées objets qui fournissent des méthodes pour accéder
« proprement » en lecture et en écriture à ces données que nous
appelons attributs (ou champs).
INTERFACE
METHODES ATTRIBUTS
Les apports de la modélisation objet
Le principe d’encapsulation
Selon Grady BOOCH
Les apports de la modélisation objet
Le principe d’encapsulation
L’objectif et les conséquences
Le principe de modularité
L’héritage et le polymorphisme
Le principe de modularité
L’héritage
Le principe de modularité
Le polymorphisme
Le principe de modularité
Le polymorphisme
« abstract »
ObjetGraphique
virtual dessiner
Le principe d’abstraction
Le principe
Le principe d’abstraction
Les différents points de vue (selon G. BOOCH)
Les apports de la modélisation objet
Le principe d’abstraction
Les différents niveaux d’abstraction (selon G. BOOCH)
Les apports de la modélisation objet
Le principe d’abstraction
La pratique
Synthèse
Les 3 principes de la modélisation objet
Introduction au langage UML
L’aspect historique de la
modélisation objet
L’aspect historique de la modélisation objet
Plan de la partie
Voici les chapitres que nous allons aborder :
Introduction.
Grady Booch et OOD.
Ivar Jacobson et OOSE.
John Rumbaugh et OMT.
L'arrivée d'UML.
L’aspect historique de la modélisation objet
Introduction
Une petite chronologie
L’arrivée d’UML
L’unification
L’arrivée d’UML
La normalisation
On a donc eu :
la version 1.1 en 1997 ;
la version 2.0 en 2004 ;
la dernière est la 2.1.1 du 3 février 2007.
L’aspect historique de la modélisation objet
L’arrivée d’UML
L’évolution
L’aspect historique de la modélisation objet
L’arrivée d’UML
Au final, qu’est-ce qu’UML ?
L’arrivée d’UML
Les différentes vues
L’arrivée d’UML
Les différentes vues
L’arrivée d’UML
Les différents diagrammes
L’arrivée d’UML
Les différents diagrammes
Diagramme
Diagramme de temps
L’aspect historique de la modélisation objet
L’arrivée d’UML
Les points forts
UML est un langage formel et normalisé :
un gain de précision (pas d’ambigüité) ;
un gage de stabilité qui encourage à la création et
l’utilisation d’outils.
L’arrivée d’UML
Les points faibles
Pour:
Structurer fonctionnellement le domaine pour décrire les
exigences
Répartir le travail et les responsabilités pour la spécification
et la validation des besoins.
Les cas d’utilisation
Opportunité
Analyse
du besoin
Analyse
du problème
de la solution
Conception
de la solution
Implémentation
Mise en oeuvre
Cas d’utilisation
comptable
« include » « include » Accueil
Contrôle adhérent
Règlement cotisations
Inscription activité
Contrôle adhérent est extrait de « Règlement cotisation »
et de « Inscription activité » afin de ne le décrire qu’une fois
Cas d’utilisation
Relation « include »
« include »
Cas d’utilisation
Relation « extend »
Accueil
« include »
contrôle adhérent
Inscription activité
Permet de décrire séparément
certaines partis alternatives, « extend » extension
optionnelles ou exceptionnelles
contrôle comptable
Règlement cotisations
« Généralisation »
adhérent
Exercice
Faire le modèle de cas d’utilisation
correspondant aux fonctions suivantes:
Contrôle des commandes client (la saisie des
commandes est faite chez le client par le commercial ou
au siège à partir d’un formulaire)
Réception des règlements
Dans ces 2 cas l’identité du client est contrôlée
Traitement des anomalies commandes
<<extend>>
Administration ventes Saisie commande
au siège
Traitement anomalies
commandes
Traiter le passage en
caisse
Traiter le passage en
caisse
Diagramme cas d’utilisation
Le diagramme de cas d’utilisation montre le comportement d’un
système, les services visibles de l’extérieur, fournis par le système
dans le contexte de son environnement
Exemple: Téléphone mobile
Modélisation logique structurelle
Diagramme de classe
Architecture
du système d’information
du système informatique
Objets
Classes
Paquetages
Modélisation structurelle
Les objets
Salarié Lili:Salarié
nom Instance de nom:Lili
Poste poste:DRH
salaire
3000 euros
payer()
Modélisation structurelle
Les classes
Une classe est une abstraction qui représente l’idée
ou la notion générale que l’on peut avoir d’un ensemble
d’objets similaire
Par exemple tous les salariés d’une entreprise
appartiennent à la classe « Salarié »
Personne
adressePrincipale
nom
facturer ()
Modélisation structurelle
Les Attributs
Personne
N om :chai ne
A ge:enti er
S olv ab i
li
té:Booléen=1
Modélisation structurelle
Les attributs dérivés
Rectangle
Longueur
Largeur
/S urface
Modélisation structurelle
Les opérations
Généralement
En phase d’analyse, on écrit seulement le nom de l’opération
En phase de conception on écrit
La visibilité
Les paramètres
Le type de retour
La portée
Modélisation structurelle
Les opérations
« entité »
Portée de classe
Personne {auteur=Rémi}
adresse
nom
solde
Client
—
nom
— adressePrincipale
— enregistrer()
# facturer()
+ consulter nom()
Modélisation structurelle
Les relations
L’association
La généralisation
La dépendance
La réalisation
Modélisation structurelle
L’association
Il existe des liens entre les objets
Exemple:
Les commandes sont liées aux clients
1 toujours 1
0..1 0 ou 1
* ou 0..* 0 à plusieurs
1..* 1 à plusieurs
m..n de m à n (entiers naturels)
Modélisation structurelle
Classes d’association
Personne * ** Diplôme
nom niveau
DiplômeObtenu
date obtention
Modélisation structurelle
Rôle
résident 1
Personne *
travailleur Ville
nom * *
Modélisation structurelle
Associations qualifiées
Le qualificatif permet de retrouver 1 ou n objets à l’autre
bout de l’association il sélectionne certains objets)
Nom de fichier est un identifiant relatif pour Fichier
1
Répertoire 1 Fichier
Nom de fichier
* 1
Banque compte Personne
Modélisation structurelle
Associations qualifiées
Exercice
Statue
Sous-ensemble
Modélisation structurelle
Association réflexives
Un objet d’une classe peut être associé à un autre
objet de la même classe
Personnel chef
1
collaborateur 1..*
Modélisation structurelle
Associations n-aires
Équipe Année
Record
Gain
Exercice
Représentation principal
Spectacle
Date représentation Acteur
metteur en scène
Heure représentation * 1 0..* 1..*
Tarif
Prix place
* *
*
réserver
Billet Réservation
num billet vendre Agence
Date réservation
1..* * 0..* 1
*
Catégorie Place
1 *
Modélisation structurelle
L’agrégation
Mission *
Développeur
Agrégation simple
Modélisation structurelle
Agrégation de composition
L’agrégat « possède » ses parties,
Les partie sont « à l’intérieur » de l’agrégat ; Un objet ne
peut être l’élément de plusieurs agrégats.
La destruction de l’agrégat entraîne la destruction des
parties
Commande 1
LigneDeCommande Article
1..*
quantitéCommandée * 1 référenceArticle
préparer
Exercice
Patient Consultation
1 0..*
Date
Maladie
Modélisation structurelle
Généralisation et spécialisation
Tiers Banque
raisonSociale Code
Client Fournisseur
facturer() régler()
Modélisation structurelle
Généralisation et spécialisation
Tiers Banque
raisonSociale Code
Client Fournisseur
facturer() régler()
Classe abstraite
Activité
nom activité
montant
planifier()
Classe concrète
Tennis Foot
planifier() planifier()
Modélisation structurelle
Représentation de l’architecture
dépendance
commercial java.io
Diagramme d’activité
Diagramme État-Transition
Modélisation de la dynamique du
système
Les diagrammes d’interaction et d’activité
précisent le texte du cas d’utilisation
Cas d’utilisation
flot de base
Flots alternatifs
: adhérent : activité
: Accueil
Message
Demande inscription activité La flèche est dans le
sens du flux de contrôle
inscription
Paiement
Ligne de vie de l’objet
Modélisation de la dynamique
Diagramme de séquence
: adhérent
Paiement
AppelCotisation
Modélisation de la dynamique
Diagramme de séquence
unPaiement unAppel
: Adhérent
Cotisation
paiement
cotisation
accuséRéception
Client théatre : : Spectacle : : Place Paiement
: Client
Activité Représentation
Contrôle client
[Réservation OK]
Diagramme de séquence
Représentation des paramètres
: Client Client
paiement
cotisation
Qualité du montant
[else]
D iagram m e de séquence: R eprésentation d’une
itération Par un cadre d’interaction
15 octobre
Diagramme de séquence,
Représentation d’une itération
A la réception de la commande:
2:cotisation
3.
: Adhérent
Ac
cu
sé
de
3.
Av
ré
ce olde
is
pt
de
io
s
n
[m art]
on
[é
ta
c
nt
O
K]
: Appel cotisation
Modélisation de la dynamique
Diagramme de communication
1. paiement :Paiement
2:cotisation
3.
: Adhérent
Ac
cu
sé
de
3.
Av
ré
ce olde
is
pt
de
io
s
n
[m art]
on
[é
ta
c
Flux de contrôle
nt
O
K]
Message
: Appel cotisation activité
adhérent
Classes correspondantes
nom activité
nom adhérent
montant
* *
Modélisation de la dynamique
Diagramme de communication
1. paiement :Paiement
2:cotisation
3.
: Adhérent
Ac
cu
sé
de
3.
Av
ré
ce olde
is
pt
de
io
s
n
[m art]
on
[é
ta
c
Flux de contrôle
nt
O
K]
Message
: Appel cotisation
2: Contrôle client
: Représentation
Paiement
9: 8:
: Place
Diagrammes d’interaction
et démarche
Diagramme de séquence
Interactions entre les acteurs et le système (Analyse des besoins)
Interactions entre les objets logiciels (Analyse du problème et
conception)
Diagramme de communication
Interaction entre les acteurs (Analyse des besoins)
Diagramme de flux (Analyse des besoins)
Interaction entre les objets logiciels
(Analyse du problème et conception)
(surtout s’il n’y a pas de chronologie ou si on veut montrer les liens entre
les objets)
Modélisation de la dynamique
Diagramme d’activité
Contrôler Commande
Action
Sortir article
Expédier Commande
Nœud final
Diagramme d’activité
Partitions
Client Ventes Entrepôt
Enregistrer Ressource
la commande
Contrôler Commande
Sortir article
Expédier Commande
Diagramme d’activité
Décisions
Client Ventes Entrepôt
Contrôler Commande
Sortir article
OU [OK] Sortir article
[Pas OK]
Annuler Expédier Commande
Commander
la commande
OU
Déjeuner
mercredi? non
oui Préparer
cartable
Se laver
Les diagrammes d’activité
Barre de synchronisation
administration Ventes Entrepôt
Contrôler Commande
Contrôler Commande
Barre de synchronisation
(fork)
[Pas OK]
[OK]
Préparer
Préparer bonbon
livraison ET Préparer Commande
livraison
Barre de synchronisation
(joint)
Commande expédiée
Les diagrammes d’activité
Barre de synchronisation
Douche
Gym Toilette
Mercredi?
[ Non ] [ Oui ]
Préparation
petit déjeuner Préparation
cartable
Préparation
voiture
Petit
déjeuner
Exécution
commande Envoi facture
Livrer
Traitement
paiement
Clore
l'ordre
Livrer
Livraison
normale
Exécution
Clore
commande l'ordre
Livraison
urgente
Exercice
Détailler l’exercice: « lorsque le réveil sonne »
Pour préparer le petit déjeuner l’homme sort les
ingrédients
Si le café manque, il prend du thé.
Il prépare soit le thé soit le café
Il dresse la table
Gym
Homme en forme
Dresser la
table
Préparation
voiture Petit
déjeuner
Les diagrammes d’activité
Invocation d’une méthode
Dans une action, on peut invoquer une méthode
Livrer
Livraison
normale Clore
Exécution l'ordre
commande Ordre::SuppressOrder
Livraison
urgente Nom de la classe Nom de la méthode
Les diagrammes d’activité
Signaux
Signal temporel
Une activité écoute ces signaux en permanence, ils
constituent un événement d’un processus extérieur, le
diagramme définit comment l’activité réagit à ces
événements
2 heures Faire les
bagages
avant le vol
Partir pour
l'aéroport
Taxi
arrive
Exercice
Une commande Fournisseur est rédigée puis envoyée
A la réception de l’accusé de réception, la commande est
validée.
Si 2 semaines après l’envoi de la commande, l’accusé de
réception du fournisseur n’est toujours pas parvenu, la
commande est annulée
Région d’expansion
« concurrent »
Contrôle client
Enregistrer
la commande
Contrôler Commande
[Pas OK]
Expédier Commande
Commande annulée
Commande expédiée
Modélisation de la dynamique
Diagramme État-Transition
Concepts
État
Un objet passe par différents états au cours de son
existence
Opération longue
Durée de l’état
commande en enregistrement Opération courte
entry: contrôle client pendant l’état
do: contrôle article
Urgence / priorité
Événement qui ne change pas l’état exit: décision
condition
[ non ] [oui ]
Activité
commande invalide
commande valide Envoi d’événement
entry: mise en attente
exit/^: bon de préparation
Décès
individu
Décès conjoint
VEUF
CÉLIBATAIRE DÉCÉDÉ
iDécès individu
Contrat PACS
signé Contrat PACSE signé
PACSÉ
Rupture contrat
Modélisation de la dynamique
Diagramme état-transition Sous-
état
Un sous- état est un état emboîté dans un autre état.
Un état composé peut contenir soit des sous-états
concurrents, soit des sous-états séquentiels
Modélisation de la dynamique
Diagramme état-transition Sous-
état
Sous-état séquentiel
Plante en croissance
do: Arroser
Plante non mure
Plante à maturité
on
Disponibilité[
Disponibilité[
temps
temps
favorable
favorable
] / Récolter
]: Récolter
Plante récoltée
Modélisation de la dynamique
Diagramme état-transition Sous-
état
Plante semée
Plante en hibernation
Plante en croissance
Plante récoltée
Modélisation de la dynamique
Diagramme d’états concurrents et
Emission
synchronisation
do: Distribuer billets
exit: billets pris Prêt à initialiser
Préparation
<<Interface>>
disponibilité Article
livraison
Entrepôt
+préparation()
Modélisation du déploiement
Nœud
Un nœud représente une ressource de calcul
Un composant peut être déployé par un ou
plusieurs nœud
Diagramme de déploiement
Servir
Serveur
Client 1 Client 2
Livraison
Description des processus
De l’analyse des besoins à la conception
:
vé
gé
t
a
l :
so
l :
pl
an
te:
co
mm
a
nd
e:c
l
i
ent
: client système
systè
:
cl
i
ent
:
c
ot
i
se
r c
l
i
en
t
A
c
he
t
er
effectuez votre choix
type de végétal
nature du sol
idem
ensoleillement
idem
réponse
idem
Planche de fruits
des fruits
choix de fruit
idem
planche de fleurs
des fleurs
choix de fleurs
idem
planche de silhouettes
de l'ombre
choix de silhouette
idem
système
systè
Diagramme séquenceDiagr.
système
séquence objets logic
: client
type de végétal
nature du sol
idem
ensoleillement
idem
idem
choix de silhouette
idem
Exemple : RespFormation
gestion Catalogue
:système
: RespFormation
creerFormation( )
:système
: Utilisateur :Système
creerFormation( )
creerFormation()
initialiserFormation (titre, durée, prix) creerContenu()
creerContenu( )
creerSession()
creerFiliere()
creerContenu( audience, prerequis, objectifs, outils, plan ) modifierFormation()
modifierContenu()
creerSession
modifierSession()
creerSession(date debut, lieu) modifierFiliere()
…..
Description des
données
Référence matière,
Adresse de l'élève,
Nombre d'heures,
Nom de la classe,
Nom de l'élève,
Nom du professeur,
Valeur de la note,
Numéro de salle,
Prénom de l'élève
Elève
Classe
nomElève appartient
nomClasse
prénom élève
numéroSalle
adresseElève * 1
0..*
*