Академический Документы
Профессиональный Документы
Культура Документы
et Modlisation
avec UML
Bertrand LE GAL
Filire RSI 2me anne
ENSEIRB 2006/07
Plan du cours
I. Retour sur le flot de conception logiciel
II. Introduction UML
III. Le diagramme des cas dutilisation
IV. Les diagrammes de classes
V. Implmentation des modles
VI. Les diagrammes de squence et de collaboration
VII. Les diagrammes dtats-transitions
VIII. Les diagrammes de dploiement
VII. Conclusion
2
Retour sur le ot de
Conception
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
1 - Le dveloppement itratif
A
D
E
F
Autres dnominations
Dveloppement en spiral
Dveloppement volutif
C
7
Validation de larchitecture
logicielle lors des premires
itrations :
Dveloppement bas sur des
IP du commerce,
Rutilisation prfre au
redveloppement,
Smantique
Un risque est un vnement redout dont l'occurrence est plus ou moins
Smantique
Une exigence est une condition laquelle le systme doit
Non fonctionnelles
Qualit des services,
Temps de rponse, temps de traitement,
Scurit au fonctionnement,
IHM adapte aux utilisateurs.
10
Smantique
Une demande de changement est une requte visant modifier
un artefact ou un processus.
Le rapport danomalie
11
visuel.
13
Introduction UML
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
(difficult dintgration)
(signification universelle).
Un modle peut tre crit par un concepteur et compris pas un
3. Les diagrammes
22
23
24
25
26
28
Voiture
Roues
Carosserie
Moteur
Pompe
Radiateur
Bloc Moteur
30
Diagramme de classes,
Diagramme dobjets,
Diagramme de composants,
Diagramme de dploiement,
Diagramme de squences,
Diagramme de collaboration,
Diagramme dtats-transitions,
Diagramme dactivits.
32
dveloppement objets.
composants.
34
lapplication.
vnements.
Modlisation sous forme dun automate tats-finis (tat, action,
transition).
Diagramme de cas
dutilisation
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Introduction
sont rendus,
39
Dtecteur
de fum
Enseignant
Secrtaire
Systme de
gestion des
badges
Etudiant
Administrateur
40
Secretaire
Fontionnaire
Enseignant
Matre de
confrences
acteurs
gnralisation
(hritage)
Chercheur
nom
Une secrtaire est une fonctionnaire, tout comme les enseignants et les
chercheurs. Un matre de confrence est un fonctionnaire qui fait un travail
denseignant et de chercheur la fois.
41
Systme tudier
nom de
l'action
Enregistrer
la
commande
Envoyer la
commande
Identifier
l'utilisateur
Grer les
commandes
Collaboration
Ralisation
La collaboration permet de raffiner
la vue implmentation du systme
en factorisant les points
communs.
42
relation d'extension
Passer
commande
<utilisations>
Relation d'inclusion
Valider
l'utilisateur
<utilisations>
Suivre la
commande
Vrifier le
mot de
passe
Scanner
rtinien
gnralisation
La relation de gnralisation
modlise un hritage du
comportement de base afin
de laffiner.
43
44
service.
Les tudiants peuvent consulter leur emploi du temps en fonction
Enseignant
Etudiant
Service de
facturation
Directeur
46
systme dinscription.
47
S'inscrire
Enseignant
Demander
un tableau
de service
Grer les
filire
Directeur
Service de
facturation
48
Un cas dutilisation
Ensemble dactions produisant un rsultat observable pour un
acteur particulier,
Diagrammes de classes
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Attributs
Vecteur
taille : int;
nb_lments : int = 0
tableau : int*
Vecteur()
add(donne : int)
remove(position : int)
get(position : int) : int
set(position, valeur : int)
..................
Mthodes
56
57
Dpendance
Clef
59
Rectangle
coin : Point
Carr
Cercle
coin : Point
Polygone
point : List
show()
dans lassociation,
La cardinalit : spcifie le nombre dlments affects.
62
Entreprise
Nom
Personne
Direction
Travaille pour
Entreprise
Travaille pour
Personne
Employ
Entreprise
Employeur
Roles
63
Tout
Voiture
4
Agrgation
1
Partie
Roue
65
de classes,
tats finis.
66
Voiture
Ne pas oublier
d'intgrer la roue
de secours.
Roue
Regarder le fichier
rparation.doc pour
l'implmentation de la
rparation de la roue
aprs crevaison.
68
gnralisation
(est compos de)
1
*
Name
1
chaine : string
getName():string
setName(string)
*
*
Service
nom : Name
show()
Personnel
effectif : int
getNombre() : int
Bureau
adresse : string
telephone : int
show()
Agrgation
(emploie)
1...*
Personne
nom : Name
ID : int
titre : string
email: string
ObtenirPhoto()
ObtenirEMail()
Sige
1...*
gnralisation
(contient)
70
Correction de lexemple 2
Universit
Filire
tudiants
Cours
Enseignant
Correction de lexemple 2
possde
1
agrgation
(responsable)
0...1
1...*
Universit
Filire
affecter
est membre
1...*
1...*
1...*
tudiants
Cours
1...*
1...*
0...1
Enseignant
assiste
prodigue
73
Correction de lexemple 2
Universit
nom : string
adresse : string
telephone : int
ajouterEtudiant()
supprEtudiant()
listeEtudiants()
ajouterFilire()
supprFilire()
listeFilires()
possde
Universit
1...* nom : string
AjouterEnseignant()
supprEnseignant()
listeEnseignant()
1
agrgation
(responsable)
affecter
est membre
1...*
Cours
nom : string
1 identifiant : int
assiste
1...*
0...1
1...*
1...*
Etudiant
nom : string
identifiant : int
0...1
1...*
Enseignant
nom : string
1 prnom : string
lireNom() 0...1
prodigue
74
Permanent
numroBureau
spcialit
nombreCours
nom
numroScu
Vacataire
nombreVacation
nombreCours
spcialit
nom
numroScu
75
Enseignant
spcialit
nombreCours
nom
numroScu
Permanent
numroBureau
Vacataire
nombreVacation
76
Boulanger
nombreClient
adresseMagasin
nom
numroScu
Vendeur
anciennet
nomStand
nom
numroScu
Enseignant
spcialit
nombreCours
nom
numroScu
Permanent
numroBureau
Vacataire
nombreVacation
77
Boulanger
nombreClient
adresseMagasin
Vendeur
anciennet
nomStand
Enseignant
spcialit
nombreCours
Permanent
numroBureau
Vacataire
nombreVacation
78
Diagramme de classes
Implmentation des modles
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
unique
80
l'implmentation.
Nous utiliserons ici du C++
Catalogue
class Catalogue{
// ... ... ...
};
Personne
class Personne {
// ... ... ...
};
82
Implmentation de la gnralisation
Catalogue
namespace Catalogue
{
// ... ... ...
};
83
Implmentation de la ralisation
Catalogue
nom : Name
dateCration : Date
Personne
nom : string
prnom : string
dateNaissance : string
ageMajorit: string : int = 18;
class Catalogue {
private:
string nom;
DateTime dateCreation;
// ... ... ...
}
class Personne {
private:
string nom;
string prnom;
protected:
DateTime dateNaissance;
private:
static int ageMajorite = 18;
}
84
Implmentation de la dpendance
Personne
- nom : string
- prnom : string
# dateNaissance : string
- ageMajorit: string : int = 18;
+ calculDurePret() : int
+ setAgeMajorit( int )
+ getAge(): int
class Personne {
private:
string nom;
string prnom;
static int ageMajorite = 18;
protected:
DateTime dateNaissance;
public:
int CalculerDureePret();
static void SetAgeMajorite(int
aMaj) {
// ... ... ...
}
public int GetAge() {
// ... ... ...
}
}
85
Personne
- nom : string
- prnom : string
- age : int
Adhrent
- ID : int
class Personne {
// ... ... ...
}
class Adhrent : Personne {
private int iD;
}
86
<<Interface>>
Imprimable
Emprunter()
Retourner()
Imprimer()
Livre
titre : string
auteur : string
isbn : ISBN
Emprunter()
Retourner()
Imprimer()
87
ClasseA
ClasseB
1
ClasseA
ClasseB
ClasseA
* {order}
ClasseB
public class A1 {
private:
ClasseB leB;
// ... ... ...
}
public class A2 {
private:
ClasseB[] lesB;
// ... ... ...
}
public class A3 {
private:
ArrayList lesB;
// ... ... ...
lesB = = new ArrayList();
}
88
Homme
0...1
mari
poux
0...1
Femme
class Homme {
private:
Femme pouse;
// ... ... ...
}
class Femme {
private:
Homme mari;
// ... ... ...
}
89
Personne
0...*
employ
0...*
employeur
Socit
Emploi
titre : string
salaire : double
class Emploi {
private:
string titre;
double salaire;
Personne employ;
Socit employeur ;
// ... ... ...
}
90
flches),
verticale en pointills).
93
Exemple de lascenseur
Objets
anonymes
Usager
Assenceur
Porte
Appel extrieur
(n tage)
Dplacement
Message
Demande ouverture
des portes
Stimulis
Portes ouvertes
94
Objets / Entits
Client
E-Mail
Serveur
SMTP
Cration
Socket
setServeur(name)
volution
du temps
ConnexionOK
Send(email)
DataSendOK
Connexion
ConnexionOK
SendData(data)
Close()
Destroy
Lignes de vie
95
Priodes
d'activit
Le diagramme de collaboration
Le diagramme de collaboration
Le niveau instance
Dfinition des objets et des messages changs,
97
Objet
+ Habitant
+ Habitation
/Maison :
Logement
+ Loueur
/Propritaire :
Personne
+ Adresse
:Lieu
98
Le diagramme de collaboration
Squence
Client E-Mail
Objet
1. Cration
2. setServeur(name)
4. SendMail(email)
6. Destruction
3. ConnexionOK
5. DataSendOK
2.1. Connexion
4.1. SendData
5. Close
Socket
Serveur
2.2. ConnexionOK
Message
Lien
100
conditions.
101
Z
X
A
B
1.1 - A
1.2 - C
C
1.1.1 - B
Y
102
Diagrammes dtatstransitions
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Livre
estPrt
estRserv
Livre
libre
Livre
pret
Livre
rserv
lobjet.
104
105
Etat final
Destruction
(poubelle)
Etat initial
Livre
libre
Evnements
(condition)
Emprunt
Restitution
Livre
pret
Rservation
Libration
Emprunt
Livre
rserv
Etats
106
Nom de l'tat
entrer / actions a raliser en rentrant dans l'tat
faire / activits faire durant l'tat
... ... ... ... ... ... ... ... ... ... ... ... ... ...
sortir / / actions a raliser en sortant de l'tat
Etat n+1
107
109
Diagrammes de dploiement
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Le diagramme de dploiement
Le diagramme de dploiement
Systme
d'acquisition
Bluetooth
Processeur
distributeur
Ecran
USB
Imprimante
Rseau 100Mo
Supercalculateur
Rseau 1Go
FireWire
Systme
d'acquisition
Serveur de
donnes
112
Conclusion
Bertrand LE GAL
Filire RSI 2me anne - ENSEIRB
2006/2007
Bibliographie