coursUML PDF
coursUML PDF
coursUML PDF
Pascal ANDRE
MIAGE
Universite de Nantes
Master Miage M1
Introduction
Perspectives
Developpement de logiciel avec UML MIAGE
Introduction Notation OCL Methode Processus Outils Perspectives
Plan
Introduction
Perspectives
Contexte
Introduction : le contexte
Developpement a objets :
I methodes danalyse classiques = orientation objet
I programmation a objets (Smalltalk, C++, Eiffel, CLOS, Java,
C#...)
Contexte
Introduction : le contexte
Developpement a objets :
I methodes danalyse classiques = orientation objet
I conception a objets = cle du developpement a objet
I programmation a objets (Smalltalk, C++, Eiffel, CLOS, Java,
C#...)
Contexte
Introduction : le contexte
Developpement a objets :
I methodes danalyse classiques = orientation objet
business process
I conception a objets = cle du developpement a objet
encore en mutation
I programmation a objets (Smalltalk, C++, Eiffel, CLOS, Java,
C#...)
classes, components, web
Contexte
Introduction : le contexte
Developpement a objets :
I methodes danalyse classiques = orientation objet
business process
I conception a objets = cle du developpement a objet
encore en mutation
I programmation a objets (Smalltalk, C++, Eiffel, CLOS, Java,
C#...)
classes, components, web
Contexte
Introduction : le constat
Contexte
Introduction : le constat
Constat (fin des annees 1980)
I evolution rapide des technologies (Web)
I complexite croissante des besoins et des applications
I technologies anciennes limitees pour les nouvelles applications
= migration technologique
I retour dexperience sur la technologie a objets
I nombre plethorique de methodes (convergence des concepts ?)
I cacophonie pour les DSI
UML et UP une reponse a un besoin urgent dans le contexte du
developpement a objets.
Contexte
Objectifs = Unifier
I langage commun : normalisation
I outils standards, modeles interoperables
I couverture GL et objet
I gestion de projet a objets
Contexte
Objectifs = Unifier
I langage commun : normalisation
I outils standards, modeles interoperables
I couverture GL et objet
I gestion de projet a objets
Deux approches dans la normalisation :
I plus petit denominateur commun : CORBA/IDL
I rassembleur : UML
Bibliographie sommaire
Plan
Introduction
Perspectives
I Complete
UML inclut un grand nombre de concepts autour de
I Complete
UML inclut un grand nombre de concepts autour de
I lobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I Complete
UML inclut un grand nombre de concepts autour de
I lobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I Complete
UML inclut un grand nombre de concepts autour de
I lobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I la conception du logiciel : composants, modules, processus,
I Complete
UML inclut un grand nombre de concepts autour de
I lobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I la conception du logiciel : composants, modules, processus,
I limplantation : nuds, liaisons, deploiement.
I Complete
UML inclut un grand nombre de concepts autour de
Ilobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I la conception du logiciel : composants, modules, processus,
I limplantation : nuds, liaisons, deploiement.
I Complete
UML inclut un grand nombre de concepts autour de
Ilobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I la conception du logiciel : composants, modules, processus,
I limplantation : nuds, liaisons, deploiement.
I Complete
UML inclut un grand nombre de concepts autour de
Ilobjet : objets, classes, operations, attributs, relations, envois
de message, etc.
I lanalyse des besoins : acteurs, cas dutilisation,
I la conception du logiciel : composants, modules, processus,
I limplantation : nuds, liaisons, deploiement.
La notation UML2
I ...
I Les diagrammes dinteraction sont un melange dactivites et
de sequence.
I Les diagrammes de temps (timing ) permettent la description
devolution temporelle usuelle en genie electrique.
Par ailleurs, les diagrammes dactivites sont fortement enrichis
pour inclure les DFD.
1. Modeles dapproche
2. Modeles de structure
3. Modeles de la dynamique
4. Modeles des traitements fonctionnels
Modeles dapproche
1. cas dutilisation
2. scenarios
3. accessoirement : activites
Demandeur Administrateur
Gestion du matriel
Gestion financire
Demandeur
<<extend>>
<<include>>
Administrateur
<<extend>>
Gestion des rservations
Demandeur
<<extend>> Administration
<<include>> Administrateur
Gestion demandeurs
<<extend>>
trop de livres en prt
extension points
validation du statut:
aprs confirmation de l'identit
Modeles dapproche
1. cas dutilisation
2. scenarios
3. accessoirement : activites
: Systme
: Demandeur
nouvelleRservation(dem)
vrification d'existence(dem)
paramtres client existant
recherche des paramtres
enregistrement de la rservation
: Systme
: Administrateur
si rep alors
resa := existeResa(s)
sup := confirmerSuppressionResa si resa alors
si sup alors
supprimerResa
sinon
rep := false
fsi
fsi
si rep alors
librerMatriel
salleSupprime supprimerSalle
fsi
fsi
Modeles dapproche
1. cas dutilisation
2. scenarios
3. accessoirement : activites
Demande
Boutique Stock
d'emprunt
Demande
emprunt
Examen
demande
Film
Enregistrement
Emprunt Recherche
[rserv] .
Cassette
[disponible]
Confirmer
Confirmation
Emprunt Cassette
[prt] [emprunte]
1. Modeles dapproche
2. Modeles de structure
3. Modeles de la dynamique
4. Modeles des traitements fonctionnels
Modeles de structure
1. collaborations
2. classes
3. composants
4. deploiement
Collaboration
<<ralise>>
cas d'utilisation
<<participe>>
<<participe>>
<<participe>>
objet 3
objet 1 objet 2
3: afficher(es)
6: afficher(supprimer rservations ? )
9: dtruire( )
1: supprimerSalle( )
4: s := choisir( )
7: saisir(sup) 8: suppression( )
: F. Gestion res : Ens.
des locaux Rservation
5: res := rservations( )
10: abandon( )
: Administrateur 13: salle supprime
2: es := slection(complet)
11: suppression( )
12: dtruire( )
: Ens. s : Salle
Salle
:Cassette
A2, B2 / B3 : associer (film)
B2: cre
:Contrleur
A1/C1: associer
A2: cr(film)
: Film : Genre
serveurs
:Client :Serveur
1: unServeur :=
chercher(specif)
unServeur (local)
:Serveur
2: traiter(requte)
Modeles de structure
1. collaborations
2. classes
3. composants
4. deploiement
<<stereotype>>
NomDeClasse
+ attribut : Type = init
+ attribut de classe
+ attribut public
# attribut protg
- attribut priv Interface de
classe
opration(nom_argument : type_arg = valeur_dfaut) : Type
+ opration de classe()
1
1
0..*
Salle 0..*
Btiment <<key>> no_tage : Integer Matriel
<<key>> no_bat : Integer <<key>> no_salle : Integer fixe
nom : String <<key>> code_inv : Integer
1 0..* <<key>> no_bat : Integer 0..1 0..*
superficie : Integer
{xor}
0..* 0..*
1
1 mobile
0..*
Adresse
Rservation 0..1
no : String
adresse : String <<key>> ref_resa : Integer
date_resa : Date Manifestation
code : String
ville : String montant : Real 0..* 1
1
0..* 0..*
0..1
1 Origine
Demandeur 1
Dure
<<key>> no_dem : Integer 0..* 1
nom : String
0..* Titre
1
pilote
1 {subset} 0..*
compos_de /<travaillePourGroupe
no_cpt : type
Banque
0..*
{sorted}
0..*
Candidate Competition
{includes}
0..*
0..*
+registered
+register inscription
<Job
Company +employer +employee Person
+worker +boss
0..1
0..*
<manage
ContratTravail
salaire
0..*
conforme
1
CodeDuTravail
article
TableTarif
<<key>> code : Integer
libell : String
tarif : Real
Animal
station protection
nourriture
Lapin
Papillon dlgue
Modeles de structure
1. collaborations
2. classes
3. composants
4. deploiement
New
Component
Paquetage
Paquetage (spec) Paquetage (corps) (gnrique)
Tche (spec) Tche (corps)
Adhrents Emprunts
Consultation
des droits
<<Base de donnes>>
BD Club
Modeles de structure
1. collaborations
2. classes
3. composants
4. deploiement
diagramme de deploiement =
I architecture physique
I repartition des composants sur les nuds physiques
(processeurs)
I UML 1.x
I repartition des composants sur les nuds physiques
I liaisons = reseaux
Emprunt distance
navigateur Web
<<middleware>>
<<Serveur>> Serveur
<<RNIS>>
Serveur club
liaison haut dbit
boutique
Recherche globale
<<rseau local>>
<<rseau local>>
<<PC>>
<<PC>>
Poste
Poste
boutiquier
Grant
1. Modeles dapproche
2. Modeles de structure
3. Modeles de la dynamique
4. Modeles des traitements fonctionnels
Modeles de la dynamique
1. sequences
2. etats-transitions
3. activites
calcul(date_e, tarif_j)
4
6
afficher(mt)
nouvelleSalle( )
bats := slection (complet)
afficher(bats)
bat := choisir( btiment)
types := slection (complet)
^(sal)
ajouter(sal)
afficher(salle cre )
sinon
afficher(salle existante)
finsi
a: dcrocher
b: tonalit
{b.t_rcep - a.t_mis < 1
sec}
{c.t_rcep - b.t_mis < 10 c: compose numro
sec}
asynchrone
non spcifi synchrone retour
UML 1.x
ou
Modeles de la dynamique
1. sequences
2. etats-transitions
3. activites
Arrt tage
Vers le bas
entry: ouvrir_portes
exit: fermer_portes exit: ^Moteur.arrt
entry: allumer entry: ^Moteur.dmarrer(bas)
on dlai_pass: teindre appel( num_tage)
entry: ^Horloge.armer(60 sec) [tage < num_tage]
do: attendre / monter
Vers le haut
exit: ^Moteur.arrt
entry: ^Moteur.dmarrer(haut)
H*
reprendre stop
ArrtIntermdiaire
AttenteTonalit
app entry: self.commutateur.dcrocher(self)
do: attendre(60)
rep
tonalit
coute
recherche correspondant
entry: self.commutateur. entry: self.commutateur.composer(no)
dcrocher(self)
point de choix
dynamique
[ mode<>appel ] Abandon
do: afficherMotif
[ mode=appel ]
communicationEtablie
attente correspondant
do: sonner(appel)
communicationEtablie
Emission
do: self.commutateur.mettre(self,info)
fermeture
Ouvrir_G Fermer_G
Arrt Dpart
fermeture
Ouvrir_D Fermer_D
Modeles de la dynamique
1. sequences
2. etats-transitions
3. activites
diagramme dactivite
I activites, actions etats-transitions
I structures de controle
I envoi/reception de message ou signaux (parametres...)
I flots et synchronisations
I extension : couloirs (noms, objets, roles...)
Attente
Portes Lumire
ouvertes allume
Ascenseur
ouvert
Recherche
Boission
[pas de caf]
[caf]
[chocolat]
Prendre bote de
chocolats
Mettre la machine
en marche
/cafetire.allumer
Infusion
lumire s'teint
1. sequences
2. etats-transitions
3. activites
4. interactions (sequences + activites) ??
5. timing
1. Modeles dapproche
2. Modeles de structure
3. Modeles de la dynamique
4. Modeles des traitements fonctionnels
1. declaratif : OCL
2. operationnel : activites + actions
I diagrammes dactivites (et etats-transitions)
I operations
I diagrammes dactivites etendus
3. Action Semantics = developper...
4. Activites UML2 : DFD + DA
I conditions et jetons (MCT, Petri, Grafcet)
I signaux temporels
I debranchements, jonctions, decisions, fusions, terminaisons de flots
I arcs et flots
I connecteurs, regions dexpansion
Usage
Avec un langage
I complexe
I a geometrie variable (semantique)
I elements combinables a souhait
Usage
Avec un langage
I complexe
I a geometrie variable (semantique)
I elements combinables a souhait
Peut-on ecrire des specifications de qualite ?
I coherentes
I completes
I lisibles et exploitables
I etc.
Usage
Usage
Usage
Usage
Usage
Solutions :
I Gerer la complexite
I Proposer un compilateur (ou un interpreteur)
I Proposer un correcteur
I Autres solutions...
Developpement de logiciel avec UML MIAGE
Introduction Notation OCL Methode Processus Outils Perspectives
Usage
Usage
Usage
Usage
Usage
Usage
Usage
I multi-formalisme
I Executable UML
I traduction complete (semantique operationnelle)
I generation de code par le compilateur
I extraction pour les specifications formelles
Usage
Usage
Usage
Usage
Plan
Introduction
Perspectives
Langage
Elements cles
I Langage a objets declaratifs (relativement) formel
I Inspire de Syntropy (et donc de Z)
I Typage
I Navigation
I Assertions et contraintes
I Meta Object Protocol
Langage
Langage
Langage
Langage
Langage
Langage
Operation Commentaire
union(Set(T)) union de deux ensembles
union(Bag(T)) union avec un multi-ensemble (rend un objet Bag)
intersection(Set(T)) intersection de deux ensembles
intersection(Bag(T)) intersection avec un multi-ensemble (rend un objet Bag)
-(Set(T)) difference de deux ensembles
including(T) ajout de lelement a lensemble
excluding(T) retrait de lelement a lensemble
symmetricDifference difference entre lunion et lintersection de deux
(Set(T)) ensembles
asSequence conversion densemble en sequence dordre quelconque
asBag conversion de lensemble en multi-ensemble
Langage
Operation Commentaire
union(Bag(T)) union de deux multi-ensembles
union(Set(T)) union avec un ensemble (rend un objet Bag)
intersection(Bag(T)) intersection de deux multi-ensembles
intersection(Set(T)) intersection avec un ensemble (rend un objet Bag)
including(T) ajout de lelement au multi-ensemble
excluding(T) retrait de lelement du multi-ensemble
asSet conversion en ensemble
asSequence conversion en sequence dordre quelconque
Langage
Operation Commentaire
union(Sequence(T)) concatenation de deux sequences
append(T) ajout de lelement a la fin de la sequence
prepend(T) ajout de lelement en tete de la sequence
subSequence(low,up) sequence dindices entre low et up
at(i) sequence a lindice i (1<= i <=size)
first premier element de la sequence
last dernier element de la sequence
including(T) ajout de lelement en fin de sequence
excluding(T) retrait de lelement de la sequence
asSet conversion de la sequence en ensemble
asBag conversion de la sequence en multi-ensemble
Langage
I Type OclAny
I =, <>
I OclAsType : transtypage (acces propriete)
I OclIsTypeOf : test de supertype direct
I OclIsKindOf : test de supertype
I OclIsNew : objet cree (dans postcondition)
I OclIsInState : test detat OclState
Langage
Type Conforme a
tous OclAny
Set(T) Collection(T)
Bag(T) Collection(T)
Sequence(T) Collection(T)
Integer Real
Pratique
OCL : Navigation
Pratique
Editeur Ouvrage Auteur
num_a
code_ed : Integer est_publi_par ref : Integer
publie
0..*
est_crit_par
1..*
nom_a
prnom_a
nationalit
Edition
ordre : Integer = 1 contenu_de
isbn : ISBN
1
binme
0..1 HorsPrt
date_h : Date 0..1
Etudiant
rserv 1..*
num : Integer
nom : String 0..* Exemplaire
prnom : String num_l : Integer
adresse : Adresse {xor} prix : Real
0..1
ge : Integer
0..1 0..3
/ nb_emp : Integer emprunter()
emprunteur emprunte retour()
formation : EnumF
dureAutoris : Integer
Emprunt 0..* 1..1
0..* date_e : Date a_command
date_r : Date
0..* 0..*
{or}
{subset}
accompagne
inscription
{xor} promotion date_e <= date_r
diplms
{ordered}
0..1 0..1 command_par 0..*
1..* CompactDisc
Diplme
propos_par nom-cd : String
0..* code : Integer Dpartement
propose
filire : EnumN spc : String systme : EnumS
libell : String
niveau : EnumN 0..* 1
Pratique
I Expression OCL
I rattachee a un element de modelisation quelconque
I gardes
I contraintes
I propriete derivee...
I Assertion
I Invariant de classe
I Pre-post condition
I Invariant de systeme
I Declaration locale (let ... in)
Contexte - la variable self
Pratique
Pratique
Pratique
contexte global
diplomes. allInstances excludesAll ( inscription . allInstances )
xor : les etudiants inscrits a un diplome nen sont pas diplomes
inscription . allInstances includesAll (promotion. allInstances )
subset : les etudiants de la promotion dun diplome y sont inscrits
Developpement de logiciel avec UML MIAGE
Introduction Notation OCL Methode Processus Outils Perspectives
Pratique
Predefini
I exclusion
I overlapping : autorise lheritage multiple
I disjoint : interdit lheritage multiple
I totalite
I complete : il ny a pas dautres sous-classes.
I incomplete : dautres sous-classes nont pas ete definies.
I un discriminant definit une vue partielle sur lheritage.
Employe. allInstances forAll (
i | not i .oclIsTypeOf(TempsComplet))
Pratique
{disjoint,incomplete}
{overlapping,
prsence
complete}
statut statut
{disjoint,
complete}
Employ Enseignant
EmplEns EnsEtudTP
Pratique
OCL : Redefinitions
Etat
nom : String
position : Point
translater(p : Point)
{complete}
EtatInitial
EtatFinal
cible
Forme : Image Forme : Image
0..1
afficher()
afficher()
0..1 {total}
source
{redefines}
1..* est_cible
cible Transition
EtatIntermdiaire est_cible
label
Forme : Image 0..1 1..*
garde
translater(p : Point) opration
0..1 1..*
afficher()
est_source afficher()
source
{total} 1..*
{redefines}
est_source
Plan
Introduction
Perspectives
UML : methode
UML : methode
Requirements
I comprendre le contexte du systeme
I modele du domaine
I modele du metier
I definir les besoins
I fonctionnels = Cas dutilisation, scenarios
I non fonctionnels
contraintes materielles, dinterface, de performance... securite,
disponibilite, accessibilite, qualite...
Demandeur Administrateur
Gestion du matriel
Gestion financire
Developpement de logiciel avec UML MIAGE
Introduction Notation OCL Methode Processus Outils Perspectives
Demandeur
<<extend>>
<<include>>
Administrateur
<<extend>>
Gestion des rservations
Demandeur
<<extend>> Administration
<<include>> Administrateur
Gestion demandeurs
: Systme
: Administrateur
si rep alors
resa := existeResa(s)
sup := confirmerSuppressionResa si resa alors
si sup alors
supprimerResa
sinon
rep := false
fsi
fsi
si rep alors
librerMatriel
salleSupprime supprimerSalle
fsi
fsi
I en sous-taches
I par secteur
I notation : diagramme dactivites etendues par des couloirs
Demande
d'emprunt
Demande
emprunt
Examen
demande
Film
Enregistrement
Emprunt Recherche
[rserv] .
Cassette
[disponible]
Confirmer
Confirmation
Emprunt Cassette
[prt] [emprunte]
UML : methode
Analyse : apercu
Analysis
I decrire le systeme independemment de son implantation
I affiner lanalyse des besoins
I decrire la prise en compte des besoins par le systeme
I decrire larchitecture du systeme
I modelisation a objets
I structuration en sous-systemes
Analyse : modeles
I diagrammes dobjets
I acteurs, objets
I sequences
I collaborations
I diagrammes de classes
I classes
I relations
I enrichissements
I diagrammes etats-transitions et diagrammes dactivites
3: afficher(es)
6: afficher(supprimer rservations ? )
9: dtruire( )
1: supprimerSalle( )
4: s := choisir( )
7: saisir(sup) 8: suppression( )
: F. Gestion res : Ens.
des locaux Rservation
5: res := rservations( )
10: abandon( )
: Administrateur 13: salle supprime
2: es := slection(complet)
11: suppression( )
12: dtruire( )
: Ens. s : Salle
Salle
supprimerSalle( )
es := slection(complet)
afficher(supprimer rservations ? )
saisir(sup)
si sup alors
suppression( )
dtruire()
abandon( ) sinon
finsi
finsi
suppression(s) dtruire()
salle supprime
nouvelleSalle( )
bats := slection (complet)
afficher(bats)
bat := choisir( btiment)
types := slection (complet)
^(sal)
ajouter(sal)
afficher(salle cre )
sinon
afficher(salle existante)
finsi
1
1
0..*
Salle 0..*
Btiment <<key>> no_tage : Integer Matriel
<<key>> no_bat : Integer <<key>> no_salle : Integer fixe
nom : String <<key>> code_inv : Integer
1 0..* <<key>> no_bat : Integer 0..1 0..*
superficie : Integer
{xor}
0..* 0..*
1
1 mobile
0..*
Adresse
Rservation 0..1
no : String
adresse : String <<key>> ref_resa : Integer
date_resa : Date Manifestation
code : String
ville : String montant : Real 0..* 1
1
0..* 0..*
0..1
1 Origine
Demandeur 1
Dure
<<key>> no_dem : Integer 0..* 1
nom : String
0..* Titre
1
TableTarif
<<key>> code : Integer
libell : String
tarif : Real
pilote
1 {subset} 0..*
compos_de /<travaillePourGroupe
no_cpt : type
Banque
Combin dcroch
tonalit
coute
recherche correspondant
entry: self.commutateur. entry: self.commutateur.composer(no)
dcrocher(self)
point de choix
dynamique
[ mode<>appel ] Abandon
do: afficherMotif
[ mode=appel ]
communicationEtablie
attente correspondant
do: sonner(appel)
communicationEtablie
Emission
do: self.commutateur.mettre(self,info)
Attente
Portes Lumire
ouvertes allume
Ascenseur
ouvert
Analyse : processus
Conception et Implantation
UML : methode
Conception et Implantation
Conception : apercu
Design
I decrire le systeme dans le contexte de son implantation
I affiner lanalyse
I decrire la prise en compte des aspects logiciels : persistence,
concurrence, securite...
I decrire larchitecture logicielle et materielle du systeme
I modelisation a objets ou composants
I structuration en sous-systemes, en couches
Conception et Implantation
Conception : modeles
I diagrammes de composants
I composants, processus, applications, bibliotheques
I dependances
I interfaces, couches
I diagrammes de deploiement
I nuds et repartition
I liaisons et protocoles
I diagrammes de classes
I diagrammes Etats-transitions et Activites
Conception et Implantation
Adhrents Emprunts
Consultation
des droits
<<Base de donnes>>
BD Club
Conception et Implantation
Emprunt distance
navigateur Web
<<middleware>>
<<Serveur>> Serveur
<<RNIS>>
Serveur club
liaison haut dbit
boutique
Recherche globale
<<rseau local>>
<<rseau local>>
<<PC>>
<<PC>>
Poste
Poste
boutiquier
Grant
Conception et Implantation
UML : methode
1. Introduction
2. Analyse des besoins : cas dutilisation et scenarios
3. Analyse : diagrammes dobjets et de classes, etats-transitions
4. Conception : classes, composants et deploiement
5. Implantation : composants et deploiement
Conception et Implantation
Implantation : apercu
Implementation
I coder la conception
I implanter les algorithmes
I implanter les couches logicielles
I implanter les aspects systemes, BD, securite...
I modelisation a objets ou composants
I deploiement
Conception et Implantation
Implantation : modeles
I diagrammes de composants
I composants, processus, applications, bibliotheques
I dependances
I interfaces, couches
I diagrammes de deploiement
I nuds et repartition
I liaisons et protocoles
I diagrammes de classes ?
I diagrammes etats-transitions et diagrammes dactivites ?
Conception et Implantation
Implantation : notations
I voir conception
I fichiers, bibliotheques, pages web, composants...
I documentation de programmation
Conception et Implantation
Implantation : processus
Plan
Introduction
Perspectives
Generalites
Generalites
UML/processus : generalites
Generalites
UML/processus : generalites
Generalites
UML/processus : generalites
Generalites
UML/processus : generalites
Generalites
UML/processus : generalites
qui fait quoi et comment
Quatre approches :
I Methodes classiques
I Processus unifie (RUP, 2TUP)
I MDA - Model Driven Approach
I methodes agiles (Scrum, XP, Lean, Puma...)
I validation rapide : donne la part belle aux programmeurs et
aux clients, PDD
I principes de bonne pratique de la programmation a objets
(TDD, pair prog, ...)
I souple, evolutif, cycles courts (sprints Scrum), kanbans
I adapte aux petites applications et structures (reactifs)
Generalites
UML/processus : generalites
Generalites
Generalites
RUP
I Iteratif
I Incremental
I Architecture
I Cas dutilisation
Preoccupations du developpement et de la gestion de projet
RUP
RUP
Effort de developpement
Entrelacement des activites de developpement et de support dans chaque
iteration.
Developpement de logiciel avec UML MIAGE
Introduction Notation OCL Methode Processus Outils Perspectives
RUP
RUP
RUP
RUP
RUP
RUP
RUP
RUP
RUP
RUP
RUP
Plan
Introduction
Perspectives
Outils
Outils : generalites
Outils
Outils
Outils
UML/outils : le marche
Loffre logicielle autour dUML est florissante, pres dune centaine
doutils sont references, du simple editeur de schemas a
lenvironnement complet de developpement en passant par les
generateurs de code ou la retro-ingenierie. Les prix varient de 0 a
10000 euros. Cette offre est tres fluctuante de par les fusions et
rachats dentreprise.
I http://www.jeckle.de/umltools.html
I http://www.objectsbydesign.com/tools/
umltools_byCompany.html
I http://en.wikipedia.org/wiki/List_of_UML_tools
I http://www.cetus-links.org/oo_uml.html
I synthese : document de TP
I presentation de E. Dieul dieul.pdf
Certification
UML : la verification
I Principes
I Mise en uvre
Certification
Certification
Certification
I Trois niveaux :
1. inter-domaine : proprietes du processus
2. intra-domaine : proprietes des modeles (coherence, conformite)
3. diagramme : plutot proprietes du systeme, aussi propriete des
modeles
Certification
I Trois niveaux :
1. inter-domaine : proprietes du processus
2. intra-domaine : proprietes des modeles (coherence, conformite)
3. diagramme : plutot proprietes du systeme, aussi propriete des
modeles
I Progression :
1. tracabilite, mais le reste ??
2. cible principale de la verification
3. implanter les regles de theories eprouvees et les completer
Certification
Certification
demande(self, #eo)
autorise( ) changer_coul(#vert)
attendre ()
demande(self, #eo)
autorise( )
sortie( )
sortie( )
autorise( )
Certification
Tunnel
{ordered} demande_eo
/ attente_eo
0..* 0..1 / attente_oe
{C1} tat
Vhicule / sens_courant
{ordered} engag
Feu
1 2
0..2 {xor} 0..1 couleur : Coul
rouler() {C1} nb_voit_eng()
{C3}
sortie() est_libre()
autorise() est_occup() changer_coul()
{ordered} demande_oe
attendre() sortie() {C2}
0..* 0..1 demande() Coul = enum{vert,
orange, rouge}
Certification
libre
deux_vhicules deux_vhicules
O/E E/O
Plan
Introduction
Perspectives
Apercu UML-2
[Fow04]
I UC, Classes, Composants, Deploiement
I Sequences, Machines a etats
I Objets, Paquetages
I Composites
I Activites
I Nouveaux
I timing
I interactions
Apercu UML-2
UML2 : diagrammes
source Wikipedia
Apercu UML-2
^(hors_dlai)
alt
^(auto=faux, raison = 'hors dlai')
[hors_dlai]
[else]
^(existe)
alt [existe]
^(auto=faux, raison = 'emprunt ce jour')
^(auto=vrai) [else]
Apercu UML-2
retrait dem_argent
:GAB_BASE
consult consulte :GAB_IHM
ations r
transactions distantes
transfert
dpt
transactions locales
IBAN
zoom
perso retrait dem_argent
dem_montant montant
+ messages + messages
dem_code code
Apercu UML-2
Nouvelle requte
corriger
reprendre
reprendre
Saisie et
Lecture carte valide Saisie du montant Dbit
Vrification du code
Avaler carte
finTransaction
Restituer carte
Apercu UML-2
/nbe -= 1
/nbe := 3
Contrle du
Saisie du code
code
[nbe>0]
incorrect
valide
[nbe=0]
abandon incorrect
reprendre
annuler chec
vue interne
Apercu UML-2
source S. Ambler
www.agilemodeling.com/artifacts/deploymentDiagram.htm
Apercu UML-2
source S.
Ambler www.agilemodeling.com/artifacts/deploymentDiagram.htm
Apercu UML-2
UML2 : activites
Apercu UML-2
commander dstocker
Commande Commande
Flot de contrle
ProcessusDeCommande
logistique
commander dstocker
Commande Commande
Apercu UML-2
source H. Balzert
UML 2 Compact Eyrolles
Lavenir
Perspectives
Lavenir
Lavenir