Professional Documents
Culture Documents
Objet
Licence Fondamentale en Informatique
Niveau: 3me anne 1er semestre
Institut Suprieur dInformatique et de Mathmatiques de Monastir
Anne universitaire: 2012 - 2013
Mouna AYARI
mouna.ayari@gmail.com
Objectifs du cours
Aider les tudiants bien assimiler les principes
Plan du cours
Chapitre
Ch it 1:
1 Rappels
R
l sur lles ffondements
d
t d
de b
base d
de
unifi
C
Chapitre
ap t e 3
3: Co
Conception
cept o a
architecturale
c tectu a e
Bibliographie
Pascal Roques,
q
, "les Cahiers du Programmeur
g
UML2
exercices corrigs",
g
Edition EYROLLES, 5me dition,
2006
Antonio Goncalves
Goncalves, "les
les Cahiers du Programmeur Java
Chapitre 1
Rappels sur les fondements de base de la
conception oriente
objet dun projet
Licence Fondamentale en Informatique
Niveau: 3me anne 1er semestre
Institut Suprieur dInformatique et de Mathmatiques de Monastir
Anne universitaire: 2012 - 2013
Mouna AYARI
mouna.ayari@gmail.com
Plan du chapitre
Chapitre 1
Rappels sur les fondements de base de la conception oriente objet ddun
un projet
Mouna AYARI
mouna.ayari@gmail.com
Avant projet
Avant-projet
Ltape davant-projet
j reprsente
Lancer le projet
Ide du projet
Etude pralable du
projet
Abandonner le
projet
p
Avant projet
Avant-projet
Avant-projet
p j
Il s'agit de dfinir prcisment ce que sera le projet afin
projet.
d certaines
t i
questions
ti
Quelle est la vision (objectif et contexte) du projet et quelle est
10
son opportunit?
pp
Le projet est-i-il ralisable?
Faut-il construire et/ou acheter ?
Quelle est lestimation grossire du cot: doit-on envisager des
dizaines de milliers, des centaines de milliers ou des millions de
dinars?
Faut-il poursuivre jusqu la ralisation du projet ou renoncer?
12
13
Chapitre 1
Rappels sur les fondements de base de la conception oriente objet ddun
un projet
Mouna AYARI
mouna.ayari@gmail.com
16
17
Modle de cas d
dutilisation
utilisation
Dmarche
identifier les acteurs,
identifier
id tifi lles cas d
dutilisation,
tili ti
structurer les cas dutilisation en packages,
ajouter les relations entre cas dutilisation,
finaliser un ou plusieurs diagramme(s) de cas
18
Modle de cas d
dutilisation
utilisation
19
Spcification dun
d un cas d
dutilisation
utilisation
Cas dutilisation
Acteur principal
[[Acteurs secondaires]]
Objectifs
Prconditions
Post-conditions
Scnario nominal
Alternatives
Exigences supplmentaires
20
Spcification dun
d un cas d
dutilisation
utilisation
Prconditions
dfinissent ce qui doit tre vrai en amont du cas
21
extend
Le cas dutilisation de base en incorpore implicitement un
R
Relation
l ti d
de gnralisation/spcialisation
li ti / i li ti
Les cas dutilisation descendants hritent de la description
de leur parent commun.
commun Chacun dentre
d entre eux peut
nanmoins comprendre des interactions spcifiques
supplmentaires
22
Chapitre 1
Rappels sur les fondements de base de la conception oriente objet ddun
un projet
Mouna AYARI
mouna.ayari@gmail.com
24
Introduction
Approche
pp
fonctionnelle:
La modlisation est ralise partir de fonctions que doit
raliser le systme
Approche oriente objet :
On identifie les objets manipuls par le systme
systme, avec leurs
SmallTalk
Langages de programmation : Ada, C++, Java
25
Introduction
26
Introduction
Possder un marteau ne fait pas de vous un architecte!
Connatre un langage de programmation oriente objet est-il
java) est ncessaire mais nest pas suffisant pour crer un systme
objets. Il faut savoir PENSER en objets !
Introduction
Trs Important!
p
Cest inutile
d
dapprendre
apprendre un langage de programmation oriente objet
dapprendre UML ou un outil de gnie logiciel
Si vous ntes
n tes pas en mesure de
laborer une excellente conception oriente objet
Amliorer une conception
p
existante
La comptence
p
de p
penser et concevoir en objet
j
28
Introduction
Analyse
versus
besoins)
Analyse oriente objet (spcification et
investigation des objets du systme)
29
Conception
La conception:
sous-entend llaboration dune solution
conceptuelle
p
rpondant
p
besoins pplutt qque la
mise en uvre de cette solution
Exclut souvent les dtails de bas niveau
Description
p
dun schma conceptuel
p
dobjets
j
logiciel et de base de donnes
La conception se rsume au terme: bien
construire un systme
Conception:
Conception oriente objet/composant
Conception de la base de donnes
Conception graphique
Notion dObjet
Dfinition
Dfi iti
Un objet dfinit une reprsentation dune entit atomique relle
ou virtuelle,
virtuelle dans le but de le piloter ou de le simuler
simuler. Les objets
encapsulent une partie des connaissances du monde dans
lequel ils voluent.
Un objet associe donnes et traitements en ne laissant visible
Objet
Un objet possde un tat et ragit selon un comportement
Ltat volue au cours du temps, en fonction du comportement
Les objets changes des messages
31
attributs ou proprits
Les
L objets
bj t iinformatiques
f
ti
sontt construits
t it partir
ti de
d lla
classe par un processus appel instanciation
Tout objet est instance dune Classe
32
universit de Tunis 2
Classe : regroupement d objets
objets de mme type.
type
Personne
Universit
Objet
Ahmed : Personne
25 ans
Ahmed Ben Foulen
40 rue
ue dee laa Libert,
be t, Monastir
o ast
33
Classe
Personne
Age : int
Nom, Adresse : stringg
SePrsenter()
renvoie Nom
Vieillir()
()
ChangerNom()
Age = Age+1
34
Prive :
L'accs aux donnes est limit aux mthodes de la classe
elle-mme
elle
mme. Il s'agit
s agit du niveau de protection des donnes le
plus lev.
modifi)) p
par tout le monde.
Protge : Un attribut protg pourra tre accd (lu et
utilise p
par tout le monde.
Protge : Une mthode protge pourra tre
Principes de lloriente
oriente objet
Objets
j
:
E
Encapsulation
l ti
:
37
Principes de loriente
l oriente objet
Encapsulation
p
Loccultation des dtails de ralisation
Par dfaut les valeurs des attributs dun
d un objets sont
Principes de loriente
l oriente objet -Encapsulation
Encapsulation
Personne
Age : int
Nom, Adresse : string
et des mthodes
Modularit :
protge les donnes d une
SePrsenter()
Vieillir()
ChangerNom()
utilisation errone
cache les dtails des
mthodes
Evolutivit, fiabilit
39
Principes de loriente
l oriente objet - Hritage
Abstraction
Il s'agit d'un processus qui consiste identifier les
caractristiques intressantes d'une entit, en vue d'une
utilisation prcise.
prcise
L'abstraction dsigne aussi le rsultat de ce processus,
c'est--dire l'ensemble des caractristiques essentielles
d'
d'une
entit,
tit retenues
t
par un observateur.
b
t
Hritage :
Chaque instance dune classe possde ses
caractristiques (attributs+mthodes), mais aussi celles
d
dune
ventuelle
t ll super classe
l
((classe
l
mre).
)
Permet de dcrire un type de lien qui unit les diffrents
objets.
j
40
Principes de loriente
l oriente objet - Hritage
Relation entre classes
Oiseaux est un cas particulier de Animaux
Animaux gnralise Oiseaux
La classe fille
hrite les attributs et les comportements
peut avoir des attributs et des mthodes nouvelles
peut avoir un comportement modifi
Animaux
Reptiles
p
41
Oiseaux
Principes de loriente
l oriente objet
Modularit :
Partition du programme qui cre des frontires bien
42
Principes de lloriente
oriente objet - Polymorphisme
Exemple
p
Tout animal peut se dplacer
Il le fait diffremment sil sagit dun oiseau ou dun serpent
Animaux
SeDeplacer()
Reptiles
43
SeDeplacer()
{
en volant
}
Serpents
SeDeplacer()
{
en glissant
}
Exercice dapplication
d application
Quelles sont les caractristiques dune personne?
Quelles sont les comportements gnriques dune
p
personne?
Pouvez vous donnez des exemples dinstances dune
personne?
Donnez des exemples de sous classes
classes.
44
Solution de lexercice
l exercice dapplication
d application
45
Solution de llexercice
exercice dapplication
d application (suite)
46
Principes de loriente
l oriente objet
Trouver les bons objets
Mthode de dsagrgation / agrgation :
Dsagrger un module : {modules}
Agrger un {modules} : un module
Dsagrgation dun module :
On part dun tout que lon clate en plusieurs parties. Chaque
partie
ti fformantt son ttour un ttout,
t estt susceptible
tibl dtre
dt nouveau
clate en parties plus petites.
Il est difficile dexprimer en dcomposition logicielle ce quest une
partie.
ti
En conception on fait lhypothse que le systme est un tout et
quil est compos de parties cohrentes sparables.
47
Principes de loriente
l oriente objet
Trouver les bons objets
La dcomposition est base sur les entits du domaine
du problme.
La dsagrgation est trs diffrente de la dcomposition
dabstraction.
48
Principes de loriente
l oriente objet
Quelques rgles dcriture dun module
Un module reprsente un concept et tout le concept.
Ne pas regrouper dans un module des oprations
Chapitre 1
Rappels sur les fondements de base de la conception oriente objet ddun
un projet
Mouna AYARI
mouna.ayari@gmail.com
51
52
instances
Multiplicit dune association
Exemple Interprtation
1..1 ou 1Un et un seul
0..1
zro ou un seul
0..*
0 * ou * zro
plusieurs
l i
3..4
trois quatre
4
quatre et seulement quatre
53
Modlisation d
dune
une association
Une association simple
p entre deux classes reprsente
p
une relation structurelle entre ppairs,
cest dire entre deux classes de mme niveau conceptuel.
Aucune des deux nest plus importante que lautre.
54
Modlisation d
dune
une association
Niveau dimplmentation
Lassociation se manifeste par la prsence de deux
55
Modlisation d
dune
une association
56
Association n
n-aires
aires
Une association nn-aire
aire lie plus de deux classes
Si un cours doit pouvoir exister indpendamment dun lien entre un enseignant et un groupe, il
faut utiliser le modle de droite
57
des services de B
Tout changement dans B peut avoir des rpercussions sur A
58
Modlisation dune
d une dpendance
Reprsentation
p
UML
Un trait discontinu partant de la classe dpendante et pointant vers
Modlisation dune
d une dpendance
Exemple
p dimplmentation
p
classContrat{
...
publicvoid impression(){
Printerimprimante=PrinterFactory.getInstance();
...
imprimante.print(client.getName());
...}
}
}
le lien entre un objet "contrat" et une "imprimante" est
Modlisation dune
d une relation dagrgation
d agrgation
Reprsentation
p
UML
Graphiquement, on ajoute un losange vide () du ct
de lagrgat
Exemple
62
Relation de composition
Relation de composition
p
La composition est galement appele agrgation
composite
Elle dcrit une contenance structurelle entre instances de
classes
La destruction de lobjet
l objet composite implique la destruction
de ses composants
Une instance de la partie appartient toujours au plus une
(i.e. 1 ou 0..1)
63
Modlisation dune
d une relation de composition
Reprsentation
p
UML
Graphiquement, on ajoute un losange plein () du
ct de lagrgat
Exemple
64
Modlisation de agrgation/composition
Exemple
p
65
Hritage
Relation dhritage
d hritage ou de gnralisation
dcrit une relation entre une classe gnrale (classe de base ou
classe parent) et une classe spcialise (sous-classe)
La classe spcialise (fille) est intgralement cohrente avec la
classe de base, mais comporte des informations
supplmentaires (attributs, oprations, associations)
Remarque
En modlisation UML, la relation dhritage nest pas propre
aux classes. Elle sapplique dautre lments du langage
comme les paquetages, les acteurs ou les cas dutilisation.
66
classes parents.
Une classe fille peut ne pas accder aux caractristiques
prives de sa classe mre sauf si les attributs de cette
dernire sont dclars comme protected
U classe
Une
l
enfant
f t peutt redfinir
dfi i ((mme
signature)
i
t ) une ou
plusieurs mthodes de la classe parent.
Toutes les associations de la classe p
parent sappliquent
pp q
aux
classes drives.
Une classe peut avoir plusieurs parents, on parle alors
dhritage
d
hritage multiple.
multiple
Le langage C++ est un des langages objet permettant son
implmentation effective
Le langage Java ne permet pas lhritage
l hritage multiple
67
Modlisation dune
d une relation dhritage
d hritage
Reprsentation
p
UML
Le symbole utilis pour la relation dhritage ou de gnralisation
est une flche avec un trait plein dont la pointe est un triangle
ferm dsignant le cas le plus gnral
gnral.
68
Interface
Une interface
est une entit dont toutes ses mthodes sont, par dfinition, abstraites
regroupe un ensemble de proprits et doprations assurant un
service cohrent
Ralisation dune interface
Une interface doit tre ralise (implmente) par au moins une classe
(elle peut notamment tre ralise par plusieurs classes
Une classe peut raliser plusieurs interfaces
Reprsentation
R
t ti UML
Graphiquement, cela est reprsent par un trait discontinu termin par une
flche triangulaire
Notation simplife :
Une interface peut tre reprsente par un petit cercle avec le nom de
l'interface plac juste en dessous. Le cercle peut tre attach une ou
plusieurs
l i
classes
l
d'i
d'implmentation.
l
t ti
69
70
Notation simplifie
Exemples
71
Exemples
Relation de ralisation
(implmentation)
La classe enseignant ralise
linterface
72
Relation de
dpendance
Exercice d
dapplication
application 1
Dgager le diagramme de classes en reprsentation UML mettant en relief les
73
Solution de lexercice
l exercice dapplication
d application 1
74
Exercice d
dapplication
application 2
Etant donn le diagramme de classes suivant, dterminer la squelette du
75
Solution de lexercice
l exercice dapplication
d application 2
public interface Observer {
public
bli void
id update(Observable
d t (Ob
bl obj);
bj)
}
public class UIGraphe implements Observer {
...
public void update(Observable o) {
...
}
...
}
public class Bilan extends Observable {
...
void setChange() {
}
...
}
76
Chapitre 1
Rappels sur les fondements de base de la conception oriente objet ddun
un projet
Mouna AYARI
mouna.ayari@gmail.com
78
Ce nest pas :
Une mthodologie
79
Diagrammes UML
Diagramme UML
Diagramme structurel
Vue statique
80
Diagramme comportemental
Vue dynamique
Diagrammes UML
81
Diagrammes UML
Liens entre les diagrammes
g
82
Mouna AYARI
mouna.ayari@gmail.com
Plan du chapitre
84
Introduction
P
Processus
unifi:
ifi Unified
U ifi d P
Process (UP)
Introduction
Pourquoi une mthodologie / processus?
Le Processus Unifi
Itration
Les itrations peuvent tre regroupes en 4 phases
Phases (cration, laboration, construction, transition)
Activits
Chaque itration consiste enchaner 5 activits :
Besoins
B
i
Analyse
Conception
Implmentation
Tests
85
dcision
86
Pourquoi
q
une mthodologie
g / Processus?
techniques
Elle doit tre dcrite un plus haut niveau d'abstraction
Mthode ou processus d'un projet est la manire
p
particulire
avec laquelle
q
les tches dans ce p
projet
j sont
organises
La mthodologie est encore plus abstraite : un mta-
Logiciel
L
i i l mieux
i
d
document
t
Plus acceptable par l'utilisateur
Plus facile maintenir/entretenir
Logiciel plus homogne
sont suivies
Aide le manager du projet contrler le projet
Rduit les cots de dveloppement
Encourage la communication entre les personnes
89
UML n
n'est
est qu
qu'un
un langage
Bien quissu dune concertation visant produire le
p
processus
Unifi,, UML n'est q
qu'un langage
g g de modlisation
et non une mthodologie part entire.
UML dfinit des notations utiles dans toutes les tapes du
Chapitre 2
Mthodologies de COO processus unifi
Mouna AYARI
mouna.ayari@gmail.com
92
Phases et itrations
UP comporte les quatre phases suivantes:
Pr tude: dfinition du cadre du projet
laboration:
93
Cycle
y de vie
94
Phases
Pr tude : On dfinit le cadre du systme et on dlimite la
porte du projet
projet. Ce cadre comprend:
Les critres de russite
La mise en vidence des risques
Les
L estimations
ti ti
d
des ressources ncessaires
i
Un plan de phase qui contient un planning des principaux jalons
Un prototype excutable validant le concept
laboration
laboration: consiste
95
tablir
une architecture solide
Dvelopper le plan du projet
liminer les lments risques
q
p
pour le p
projet
j
Phases
Construction
Construction: On dveloppe un produit complet et prt
96
Workflows et processus
97
Modlisation mtier
Exigences
Analyse et
conception
Implmentation
Tests
Dploiement
Gestion de
configuration
Gestion de projet
Environnement
Workflows et artefacts
Workflows
Expression des besoins
Spcifications
Artefacts
Vision du projet
Modle des cas dutilisation
Spcifications supplmentaires
Glossaire
Analyse
Conception
Modle du domaine
Modle de conception
Architecture logicielle
Modle de donnes
Implmentation
Tests
98
Modle dimplmentation
Modle de tests
D l i
Dploiement
t
M dl d
Modle
de dploiement
d l i
t
Gestion de projets
Plan de dveloppement
Environnement
Cas de dveloppement
incrment.
Une itration dsigne la succession des activits de dveloppement
p
aux stades de dveloppement
pp
du p
produit
un incrment correspond
99
100
Analyss par
Conus par
Raliss par
Structurs par
Tests par
Diagramme des
Di
d
Uses Case
101
Dploys par
Modle du domaine
Modle de
conception
Modle
dimplmentation
Modle
darchitecture
Modle de tests
Modle de
dploiement
102
La plateforme dexcution
Analyser
y
les risques
q
p
potentiels au p
plus tt
Hirarchiser les risques
Associer un ensemble de uses case chaque risque
Dclencher les itrations selon la criticit des uses cases
quelles regroupent
Adaptations de UP
UP est un p
processus g
gnrique
q de dveloppement.
pp
connues sont:
104
Chapitre 2
Mthodologies de COO processus unifi
Mouna AYARI
mouna.ayari@gmail.com
dveloppement
pp
Orient-Objet
j de logiciel
g
Maintenant largement surpass par le Processus
Unifi
U
ifi R
Rational
ti
l ((similaires
i il i
d
dans lleurs aspects
t
principaux)
106
107
Profil dun projet typique montrant les tailles relatives des quatre phases
108
principales :
Besoins,
Besoins
Analyse,
Conception,
p
,
Implmentation,
Tests.
Phases
Cration
laboration
Construction
It. 1
Transition
Besoins
Analyse
Conception
Implmentation
Tests
It. 2
Itrations
Rpartition du travail en phases, itrations et activits principales
110
It. n-1
It. n
Phases
Cration
laboration
Construction
It. 1
Transition
Besoins
Analyse
Conception
Implmentation
Tests
It. 2
Itrations
Rpartition du travail en phases, itrations et activits principales
111
It. n-1
It. n
Activits de ll'analyse
analyse des besoins
L
L'analyse
analyse des besoins regroupe les activits
suivantes :
tablir une bauche du modle des use-cases,
use cases
assigner des priorits aux use-cases,
dtailler chaque use-case,
prototyper l'interface utilisateur,
structurer le modle des use-cases.
112
Architecte
Spcificateur
de use-case
Concepteur
dinterface
113
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
Dt
ill
use-case
Prototyper
interface
Architecte
Spcificateur
p
de use-case
Concepteur
dinterface
114
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
use-case
Prototyper
interface
activit.
A partir notamment de la liste des fonctionnalits,
elle consiste :
115
Analyste
systme
y
Architecte
Spcificateur
de use-case
Concepteur
ddinterface
interface
116
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
use-case
Prototyper
interface
use-cases.
L
L'architecte
architecte tablit un ordre de priorit pour la
117
Analyste
systme
y
Architecte
Spcificateur
de use-case
Concepteur
ddinterface
interface
118
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
use-case
Prototyper
interface
119
Architecte
Spcificateur
de use-case
Concepteur
ddinterface
interface
120
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
use-case
Prototyper
interface
Prototypage de ll'interface
interface utilisateur
Cette activit fait suite la description dtaille des
use-cases.
Le concepteur dinterface fournit :
une conception logique de l'interface utilisateur
121
Architecte
Spcificateur
de use-case
Concepteur
dinterface
122
Structurer modle
u-c.
baucher
modle u-c.
Dtailler
Dt
ill
use-case
Prototyper
interface
use-cases.
L'analyste
y
systme
y
amliore le modle des use-
123
Organisation en phases,
phases itrations et activits
Activits
principales
Phases
Cration
laboration
Construction
It. 1
Transition
Besoins
Analyse
Conception
Implmentation
Tests
It. 2
Itrations
Rpartition du travail en phases, itrations et activits principales
124
It. n-1
It. n
Activits de l'analyse
l analyse
L
L'analyse
analyse regroupe les activits suivantes :
analyse architecturale,
analyse de use-case,
analyse de classe,
analyse de paquetage.
125
Architecte
Ingnieur
de use-case
Ingnieur de
composants
126
Analyse
architecturale
Analyse de
use-case
Analyse
de classe
Analyse de
paquetage
Architecte
Ingnieur
de use-case
IIngnieur
i de
d
composants
127
Analyse
architecturale
Analyse de
use-case
Analyse
de classe
Analyse de
paquetage
Analyse architecturale
Cette activit est sous la responsabilit
p
de
l'architecte.
A partir du modle des use-cases,
use cases elle consiste
fournir :
une bauche des classes d'analyse
d analyse manifestes
manifestes,
une bauche des paquetages d'analyse (en 2 couches:
128
Architecte
Ingnieur
de use-case
Ingnieur de
composants
129
Analyse
architecturale
Analyse de
use-case
Analyse
de classe
Analyse de
paquetage
Analyse de use
use-case
case
Cette activit fait suite l'analyse
l analyse architecturale
architecturale, elle
130
Architecte
Ingnieur
de use-case
Ingnieur de
composants
131
Analyse
architecturale
Analyse de
use-case
Analyse
de classe
Analyse de
paquetage
Analyse de classes
Cette
C tt activit
ti it succde
d aux analyses
l
d
de use-cases,
synthse
th d
des diff
diffrents
t rles
l qu'elle
' ll jjoue d
dans lles usecases (oprations),
identifier les attributs et les relations entre classes
(associations, gnralisation),
formuler ventuellement des exigences sur la
conception (taille des attributs, ).
132
Architecte
Ingnieur
de use-case
Ingnieur de
composants
133
Analyse
architecturale
Analyse de
use-case
Analyse
de classe
Analyse de
paquetage
Analyse de paquetages
Cette activit fait suite l'analyse
l analyse des classes
classes,
les diminuer.
134
Organisation en phases,
phases itrations et activits
Activits
principales
Phases
Cration
laboration
Construction
It. 1
Transition
Besoins
Analyse
Conception
Implmentation
Tests
It. 2
Itrations
Rpartition du travail en phases, itrations et activits principales
135
It. n-1
It. n
Activits de la conception
La conception regroupe les activits suivantes :
conception architecturale,
conception de classe,
conception de use-case,
conception de sous-systme.
136
Architecte
Conception
architecturale
Ingnieur
de use-case
Ingnieur de
composants
137
Conception
de use-case
Conception
de classe
Conception de
sous-sytme
Architecte
Conception
architecturale
Ingnieur
de use-case
Ingnieur de
composants
138
Conception
de use-case
Conception
de classe
Conception de
sous-sytme
Conception architecturale
L'architecte assume la responsabilit de cette activit.
partir notamment du modle des use-cases,
use-cases du
couches)
couches),
une bauche des classes et mcanismes de conception,
une bauche du modle de dploiement (nuds et
configurations rseau).
139
Architecture en 4 couches
spcifique
lapplication
Dpend
dancess
middleware
logiciel systme
140
Architecte
Conception
architecturale
Ingnieur
de use-case
Ingnieur de
composants
141
Conception
de use-case
Conception
de classe
Conception de
sous-sytme
Conception de classes
Cette activit fait suite la conception
p
architecturale,, elle
142
Architecte
Conception
architecturale
Ingnieur
de use-case
Ingnieur de
composants
143
Conception
de use-case
Conception
de classe
Conception de
sous-sytme
Conception de use
use-case
case
Cette activit fait suite la conception architecturale et la
interface.
144
Architecte
Conception
architecturale
Ingnieur
de use-case
Ingnieur de
composants
145
Conception
de use-case
Conception
de classe
Conception de
sous-sytme
Conception de sous
sous-systmes
systmes
Cette activit fait suite la conception des classes et
des use
use-cases,
cases, elle est effectue par les ingnieurs de
composants.
Cette activit consiste finaliser la description des
sous-systmes et de leur interface, c'est--dire :
actualiser les dpendances
p
entre sous-systmes
y
((et les
minimiser),
actualiser leur interface,
actualiser le contenu des sous-systmes.
146
Organisation en phases,
phases itrations et activits
Activits
principales
Phases
Cration
laboration
Construction
It. 1
Transition
Besoins
Analyse
Conception
Implmentation
Tests
It. 2
Itrations
Rpartition du travail en phases, itrations et activits principales
147
It. n-1
It. n
l'implmentation)
OMT (bonne pour l'analyse)
Objectory
Obj
(b
(bonne
pour l'i
l'ingnierie
i i d
des b
besoins
i et
l'architecture du systme)
UP a rassembl ces mthodes
Aussi volumineux et complexe : temps
Chapitre 2
Mthodologies de COO processus unifi
Mouna AYARI
mouna.ayari@gmail.com
Dfinition
2TUP est un processus UP apportant une rponse aux
Contraintes
fonctionnelles
150
SI
Contraintes
techniques
q
Exemples
Une entreprise modifie son catalogue de produit en imposant
151
Processus en Y
La ralisation du systme consiste fusionner les rsultats des deux
l ti
volutions
fonctionnelle
f
ti
ll ett technique:
t h i
ce quii conduit
d it un processus d
de
dveloppement en forme de Y
152
Processus en Y
Contraintes
fonctionnelles
Branche
fonctionnelle
Capture
C
t
d
des b
besoins
i
fonctionnels
Capture
C
t
d
des b
besoins
i
techniques
Analyse
Conception gnrique
Conception prliminaire
Conception dtaille
Codage et tests
Recette
153
Contraintes
techniques
Branche
technique
prototype
Processus en Y
La branche gauche (fonctionnelle) du Y
Capture
p
des besoins fonctionnels
Produit un modle des besoins focalise sur le mtier des
utilisateurs
Qualifie
Q lifi au plus
l tt lle risque
i
d
de produire
d i un systme
t
inadapt
Permet la matrise duvre de consolider les
spcifications et de vrifier la cohrence
Lanalyse
Prcise ce que lon va raliser en termes mtier
Le rsultat de lanalyse ne dpend daucune technologie
particulire
154
Processus en Y
La branche droite (architecture technique) du Y
Capture des besoins techniques
Recense toutes les contraintes et les choix dimensionnant la
conception
Identifie les outils et les matriels ainsi que les contraintes dintgration
avec lexistant
l existant
La conception gnrique
Dfinit les composants ncessaires llaboration de larchitecture
technique
Construit le squelette du systme et limine les risques au niveau
technique
A pour objectif duniformiser
d uniformiser et de rutiliser les mmes mcanismes
pour la plupart des systmes
Est indpendante des aspects fonctionnels
155
Processus en Y
La branche du milieu
La conception prliminaire
Intgre le modle danalyse dans larchitecture technique
Trace
T
la
l cartographie
t
hi d
des composants
t d
du systme
t
dvelopper
La conception
p
dtaille
tudie comment raliser chaque composant
Codage
Produit les composants et teste au fur et mesure les
units de code ralises
Recette
Valide les fonctions du systme dvelopp
156
Processus en Y
Les branches du Y p
produisent des modles
rutilisables
La branche gauche capitalise la connaissance du mtier de
techniques
q
utilises p
peuvent tre ralises
indpendamment du besoin fonctionnel
157
Mouna AYARI
mouna.ayari@gmail.com
Conception architecturale
Objectifs
Dcrire le fonctionnement et les caractristiques dun style
159
architectural
Justifier le choix dune architecture pour la ralisation dun
logiciel, en tenant compte de ses exigences fonctionnelles
et non fonctionnelles
Dfinir ce quest un composant
Expliquer le contenu dcrit par un diagramme de
paquetages, de composants et de dploiement (UML)
Dcrire le modle dune architecture avec la notation UML
Plan du chapitre
Introduction
Modlisation UML dune conception architecturale
Elments architecturaux
Styles architecturaux
Choix dune architecture
Architecture MVC
Architecture multi-couches
Architecture n-niveaux
160
Introduction
Quest-ce
Q t
quune
architecture
hit t
llogicielle
i i ll ?
Larchitecture dun logiciel est la structure des
161
Introduction
Contrairement aux spcifications produites par
lanalyse fonctionnelle
le modle d'architecture ne dcrit pas ce que doit
162
Introduction
Qu
Quest
est que la description dune
d une architecture
logicielle ?
La dfinition de larchitecture
l architecture logicielle consiste :
Dcrire lorganisation gnrale dun systme et sa
dcomposition en sous-systmes ou composants
Dterminer les interfaces entre les sous-systmes
Dcrire les interactions et le flot de contrle entre les soussystmes
y
Dcrire galement les composants utiliss pour implanter les
fonctionnalits des sous-systmes
Les proprits
L
it d
de ces composants
t
Leur contenu (e.g., classes, autres composants)
Les machines ou dispositifs matriels sur lesquels ces modules
seront dploys
163
Introduction
Pourquoi
q
dvelopper
pp une architecture logicielle
g
?
Pour permettre tous de mieux comprendre le
systme
Pour permettre aux dveloppeurs de travailler sur des
parties individuelles du systme en isolation
Pour prparer les extensions du systme
Pour faciliter la rutilisation et la rutilisabilit
164
Introduction
Utilit dune architecture logicielle
g
[[Garlan 2000]]
Comprhension : facilite la comprhension des grands systmes
complexes en donnant une vue de haut-niveau de leur structure
et de leurs contraintes.
contraintes Les motivation des choix de conception
sont ainsi mis en vidence
Rutilisation : favorise lidentification des lments rutilisables,
parties de conception, composants, caractristiques, fonctions ou
donnes communes
Co
Construction
st uct o : fournit
ou t u
un p
plan
a de haut-niveau
aut
eau du d
dveloppement
e oppe e t
et de lintgration des modules en mettant en vidence les
composants, les interactions et les dpendances
165
Introduction
Utilit dune architecture logicielle
g
[[Garlan 2000]]
volution : met en vidence les points o un systme peut tre
conception du logiciel
logiciel, analyse de la cohrence
cohrence, test de
conformit, analyse des dpendances
Gest
Gestion
o : co
contribue
t bue la
a gest
gestion
o g
gnrale
a e du p
projet
ojet en
e permettant
pe etta t
166
Modlisation
od sat o UML
U
dune
d
u e architecture
a c tectu e dun
d u systme
syst e
Vues (structurelles) dune
d une architecture logicielle
Vue logique. Description logique du systme
dcompos
p
en sous-systmes
y
((modules + interface))
UML : diagramme de paquetages
Rappel : vues d
dun
un systme
Diagramme de
composants
p
Diagramme
de classes
Diagramme
combin de
dploiement/
composants
Diagramme de
packages
Vue structurelle
(modle statique)
Vue des cas dutilisation
d utilisation
(modle fonctionnel des exigences)
Diagramme de
squence
interaction
Diagramme
dtats
168
comportement
Diagramme de
cas dutilisation
comportement
Diagramme de
communication
i ti
interaction
Diagramme
dactivits
d
activits
comportement
Modlisation
od sat o U
UML ddune
u e architecture
a c tectu e dun
d u systme
syst e
Diagramme de paquetages
169
Modlisation
od sat o U
UML ddune
u e architecture
a c tectu e dun
d u systme
syst e
Diagramme de composants
170
Modlisation
od sat o U
UML ddune
u e architecture
a c tectu e dun
d u systme
syst e
Diagramme combin de dploiement/composants
171
lments architecturaux
Composant
compA
donnes du systme
y
Restreint laccs ce sous-ensemble au moyen dune
172
lments architecturaux
C
Composant
C
Composant
t
quii encapsule
l un comportement
t
t (i
(i.e., iimplmentation)
l
t ti ) ett quii offre
ff
une ou plusieurs interfaces publiques
Partie constituante dun
d un systme qui peut tre remplace ou/et
rutilise
lment dimplmentation
p
((un sous-systme,
y
, un fichier excutable,,
173
lments architecturaux
Composant
Granularit : Un composant peut reprsenter quelque chose
d aussi fin qu
daussi
quun
un objet, comme il peut reprsenter un soussous
systme complexe
Diffrence entre composant et instance de composant
Composant : vue de haut niveau dun lment logiciel qui
lments architecturaux
Composant
p
Unit autonome servant de bloc de construction pour le systme
Les composants implmentent typiquement des services
spcifiques
ifi
llapplication
li ti
La manifestation concrte dun composant est appel artfact
(instance du composant dploye sur le matriel)
Nimporte quel type de code sur nimporte quel support numrique
Code source, fichiers binaires, scripts, fichiers excutables, bases de
manifestation
Order
175
Order.jar
lments architecturaux
Interface de composant
Permet un composant dexposer les moyens
lments architecturaux
Composants
p
et interfaces - Notation
EntreCmdes
Personne
C
Commande
d
interface requise
composant
Commande
<<provided interfaces>>
EntreCmdes
PaiementComptes
<<required interface>>
Person
177
PaiementComptes
interfaces offertes
lments architecturaux
Dpendances entre composants
Dpendance = relation entre deux composants
Types de dpendances
Un composant peut dpendre dun autre composant qui lui
f
fournit
it un service
i ou une iinformation
f
ti
Un composant peut dpendre dune classe qui implmente une
178
lments architecturaux
composant
port
connecteur
Comp_A
interface
requise
q
interface
fournie
Comp_B
realisation
dpendance
Classe C
Classe_C
configuration
lments architecturaux
Connecteur
Dans les systmes complexes, les interactions peuvent constituer
un enjeu encore plus important que les fonctionnalits des
composants individuels
Dfinition : lment architectural qui dfinit le type dinteractions
entre les composants et les rgles gouvernant ces interactions
Un connecteur relie les ports de deux ou plusieurs composants
Un connecteur dcrit un mcanisme de connection indpendant
de lapplication
l application
Reprsente un concept abstrait, paramtrable et indpendant des
comportementales
Exemple: sa capacit, le temps de latence, le type dinteraction
lments architecturaux
Connecteur
Un connecteur peut avoir un ou plusieurs rles
Communication :rle le plus frquent
Coordination
C di ti : contrle
t l d
du calcul,
l l d
de lla ttransmission
i i d
des d
donnes,
etc.
t
181
lments architecturaux
Composants et relations notation
Une flche de dpendance permet de mettre en
relation des composant
p
via les interfaces requises
q
et
fournies
RechercheClient
Systme de
commande
RechercheClient
Repositoire
Clients
(3) dpendance
((1)) composant
p
AccsProduit
AccsProduit
182
(2) interface
Systme
di
dinventaire
t i
lments architecturaux
Composants
p
et relations notation
rservations
Planificateur
rservations
Gestionnaire
dhoraires
accsBD
mise jour
GUI
accsBD
mise jour
Runions_BD
183
Styles architecturaux
Un style architectural
un patron dcrivant une architecture logicielle
permettant de rsoudre un p
p
problme p
particulier
Dfinit
Un ensemble de composants et de connecteurs (et leur type)
Les rgles de configuration des composants et connecteurs
(topologie)
Une spcification du comportement du patron
Des exemples de systmes construits selon ce patron
performance documentation
performance,
documentation, etc
etc.
184
Styles architecturaux
Choix dune
d une architecture
Dpend des exigences fonctionnelles et non
fonctionnelles du logiciel
Choix favorisant la stabilit : lajout de nouveaux
185
Architecture Modle
Modle-Vue-Contrleur
Vue Contrleur (MVC)
Sparer
p
la couche interface utilisateur des autres p
parties
186
Architecture Modle
Modle-Vue-Contrleur
Vue Contrleur
Exp.
p Gnre le
code html pour le
browser
Vus par
les acteurs
View
Consulter ltat
(i.e. les donnes)
crer et
mettre jour
notifier changements
Modle
Contrleur
modifier
Exp.
p Le sous-systme
y
grant linformation.
187
Reoit les
vnements
des acteurs
Architecture Modle
Modle-Vue-Contrleur
Vue Contrleur
Modle : noyau de lapplication
Enregistre les vues et les contrleurs qui en dpendent
Notifie les composants dpendants des modifications aux donnes
cohrente
Consulte les donnes du modle
Contrleur : partie de lapplication qui prend les dcisions
Accepte les vnement correspondant aux entres de lutilisateur
Traduit
T d it un
vnements
t (1) en d
demande
d d
de service
i adresse
d
au modle
dl
i
188
Architecture Modle
Modle-Vue-Contrleur
Vue Contrleur
Avantages : appropri pour les
systmes interactifs,
particulirement ceux impliquant
plusieurs vues du mme modle
p
de donnes. Peut tre utilis
pour faciliter la maintenance de
la cohrence entre les donnes
distribues
Inconvnient : goulot
Dun p
point de vue conception
p
Diviser pour rgner : les composants
dt
dtranglement
l
t possible
ibl
189
190
Architecture multi
multi-couches
couches
Composants : chaque composant ralise un service
Une couche offre un service (serveur) aux couches externes (client)
Service cr indpendamment du logiciel ou spcifiquement
Met profit la notion dabstraction
d abstraction, les couches externes sont plus
abstraites (haut niveau) que les couches internes
Connecteurs : dpendent
p
du p
protocole dinteraction souhait
entre couches
Systme ferm : une couche na accs quaux couches adjacentes.
Architecture multi
multi-couches
couches
Application
programs
Interface
utilisateur
Screen display
facilities
Logique
applicative
Accs au
systme
y
dexploitation
192
User account
management
g
Communication
rseau
File
e syste
system
Accs la
base de donnes
Kernel
(handling processes
and swapping
Architecture multi
multi-couches
couches
Dun point de vue conception
193
t une cohsion
h i
par couche
Couplage : des couches infrieures
bien conues ne devraient rien savoir
propos des couches suprieures et
les seules connexions autorises
entre couches se font via les API
Abstraction : on na pas connatre
les dtails dimplmentation des
couches infrieures
R tili bilit : les
Rutilisabilit
l couches
h
infrieures peuvent tre conues de
faon offrir des solutions gnriques
rutilisables
couches
h dveloppes
d l par dautres
d
et quii
proposent le service requis
Flexibilit : il est facile dajouter de
nouveaux services construits sur les services
de plus bas niveau
Anticipation du changement : en isolant les
composants
p
dans des couches distinctes, le
systme devient rsistant
Portabilit : tous les services relatifs la
portabilit peuvent tre isols
Testabilit : les couches peuvent tre testes
indpendamment
Conception dfensive : les API des couches
constituent
i
des
d endroits
d i stratgiques
i
pour
insrer des assertions de vrification
Architecture n
n-niveaux
niveaux
Pour les systmes
y
distribus
Comparable une architecture par couches dont les couches
seraient distribues !
N.b.
N b Larchitecture multi
multi-couche
couche est gnralement utilise pour dcrire
distribue
Composants
p
: chaque
q niveaux est reprsent
p
p
par un composant
p
qui joue le rle de client et/ou de serveur
Connecteurs : relient un client un serveur. Connexion
asymtrique Doit supporter les communication distantes (e
asymtrique.
(e.g.,
g
requtes RPC, HTTP, TCP/IP)
Exemples
Client-serveur, Trois niveaux, Quatre niveaux
194
Architecture n
n-niveaux
niveaux
Architecture 2-niveaux (client-serveur ou client lourd)
Client
requte de service
Serveur
Navigateur
Web
requte
d service
de
i
Logique
applicative
requte
d service
de
i
de B.D.
Serveurs
de
base de donnes
Architecture 4-niveaux
Client
195
Prsentation
(partie web)
Logique
Applicative
(calculs,
business)
Bases de
donnes
Architecture n
n-niveaux
niveaux
Architecture client-serveur
client serveur
Exemple typique : un systme dinformations utilisant
une base de donnes centrale. ((cas spcial
p
de
larchitecture avec rfrentiel)
Clients : reoivent les donnes de lutilisateur, initient les
ttransactions,
ti
etc.
t
Serveur : excute les transactions, assure lintgrit des
donnes
larchitecture client-serveur
Les composants peuvent tous la fois tre client et serveur
Conception plus difficile: flot de contrle plus complexe d la
possibilit de deadlocks
196
Architecture n
n-niveaux
niveaux
Architecture 3-niveaux
3 niveaux
Organisation en trois couches
Couche interface: Compos
p
dobjets
j
interfaces ((boundary
y
llogique
i
applicative
li ti
197
Architecture n
n-niveaux
niveaux
Architecture 3-parties
p
Rseau
Client X
Serveur d
S
de
B.D. Unix
Base de
donnes
corporative
March de
donnes
Client Windows
198
Serveur
Windows NT
Logique
applicative
Serveur de
B.D. Unix
Dpt de
donnes
Architecture n
n-niveaux
niveaux
Architecture 3-niveaux
noter que la tendance veut que la
Interface
gestionnaire
Gestion
des dossiers
Base de
donnes clients
199
Architecture n
n-niveaux
niveaux
Architecture 4-niveaux
Architecture dont la couche logique applicative est dcompose
en
Couche Prsentation ((JSP,, servlets))
Prsentation du contenu statique: Contenu HTML ou XML affich par le
client
Prsentation du contenu dynamique : contenu organis et cr
d
dynamiquement
i
t par lle serveur web
b ((pour ensuite
it t
tre affich
ffi h en HTML/XML
par le client)
Couche Logique applicative (calculs purs) : ralise le cur des
traitements de lapplication
l application
Avantage sur larchitecture 3-niveaux
Permet de supporter un grand nombre de formats de prsentation
Architecture n
n-niveaux
niveaux
Architecture 4-niveaux
Clients
Serveur
Interface
Web
build
<<build>>
<<submit>>
submit
Interface
employ
de la banque
201
Prsentation
Serveur
<<build>>
Interface
ATM
Serveur de base
de donnes
Accs base de
donnes
do
es co
comptes
ptes cclients
e ts
<<submit>>
Gestion
oprations bancaires
<<build>>
<<submit>>
Architecture n
n-niveaux
niveaux
Dun point de vue conception
Diviser pour rgner : de faon
client et le serveur
indpendamment
Conception dfensive : on peut
dcomposition en sous-systmes
Dterminer les p
principaux
p
composants
p
requis
q
Slectionner un style architectural
Raffiner larchitecture
Identifier
f les principales interactions entre les composants et les
interfaces requises
Dcider comment chaque donne et chaque fonctionnalit sera
distribue parmi les diffrents composants
Dterminer si on peut rutiliser un cadriciel existant (rutilisation) ou si
on peut en construire un (rutilisabilit)
Considrer chacun des cas dutilisation et ajuster larchitecture pour
dcomposition en sous-systmes
Dterminer les p
principaux
p
composants
p
requis
q
Slectionner un style architectural
Raffiner larchitecture
Identifier
f les principales interactions entre les composants et les
interfaces requises
Dcider comment chaque donne et chaque fonctionnalit sera
distribue parmi les diffrents composants
Dterminer si on peut rutiliser un cadriciel existant (rutilisation) ou si
on peut en construire un (rutilisabilit).
Considrer chacun des cas dutilisation et ajuster larchitecture pour
d i lles diff
dcrire
diffrents
t aspects
t d
du modle
dl architectural
hit t l
Trois des diagrammes UML sont particulirement utile
pour dcrire
d i une architecture
hit t
logicielle
l i i ll
Diagramme de packages
Diagramme de composants
Diagramme de dploiement
205
sil lutilise
Si l Ch t
SimpleChat
Client
206
<<import>>
Common
OCSF
Client
Server
proccupations
La sparation des proccupation est le principe qui assure
llintgrit
intgrit fonctionnelle dun
d un composant
Chaque composant ralise une, et seulement une, fonction au
sein du systme, mais peut nanmoins exposer plusieurs
mthodes Typiquement
mthodes.
Typiquement, chaque composant est dfini par une
interface qui constitue son seul moyen dinteragir avec les
autres composants
L
Lutilisation
utilisation dune
d une interface pour communiquer avec les autres
composants du systme facilite la maintenance puisquon peut
alors en changer limplmentation sans affecter les autres
composants (induit un couplage plus faible du composant avec
le reste du systme)
Les classes dun composant devrait tre vues comme un
patron cohsif qui implmente la fonctionnalit du composant
208
209
210