Académique Documents
Professionnel Documents
Culture Documents
Objectif :
Avoir des procédures systématiques
pour des logiciels de grande taille afin
que :
- la spécification corresponde aux besoins
réels du client
- le logiciel respecte sa spécification
- les délais et les coûts alloués à la réalisation
soient respectés
Un logiciel :
Environnement:
- utilisateurs :
Grand public (traitement de texte),
Développeurs (compilateur)
Un logiciel : Les caractéristiques
Spécification:
Tâche complexe :
- Taille et complexité des logiciels
Critères de qualité
Validité : réponse aux besoins des utilisateurs
Critères de qualité
Sécurité : intégrité des données et protection des
accès
Aire caractéristique de
qualité logiciel
(représentative du coût)
Jeu vidéo
Client mail
Simulateur pour Météo
Processus de développement logiciel
En pratique :
Pas de processus idéal
Spécification
Conception
Programmation
Validation et vérification
Livraison
Maintenance
Activités du développement logiciel
Spécification :
Établir une description claire de ce que doit faire le logiciel
Objectifs :
Validation : assurer que les besoins du client sont satisfaits
(au niveau de la spécification, du produit fini...)
Types de maintenance :
Correction : identifier et corriger des erreurs trouvées après
la livraison
Caractéristiques :
Variante du modèle en cascade
Principe :
Développement rapide d'un prototype avec le client pour
valider ses besoins
Principe :
Hiérarchiser les besoins du client
Principe :
Implication constante du client
Programmation en binôme
Pour le client :
Problèmes :
Langages semi-formels :
Langages formels :
Mieux le comprendre
Mieux le construire
En génie logiciel :
Langage :
Syntaxe et règles d'écriture
Notations graphiques normalisées
… de modélisation :
Abstraction du fonctionnement et de la structure du système
Spécification et conception
… unifié :
Fusion de plusieurs notations antérieures : Booch, OMT,
OOSE
Standard défini par l'OMG (Object Management Group)
Dernière version : UML 2.5.1 (Décembre 2017)
UML : Unified Modeling Language
Conception fonctionnelle
Système = ensemble de fonctions
État du système (données) centralisé et partagé par les
fonctions
Conception guidée par les données
Système = base de données
Fonctions communes à toutes les données
Adaptée à l’élaboration de grandes bases de données
Conception orientée objet
Système = ensemble d’objets
Objet = données + fonctions
État du système distribué entre tous les objets
Conception orientée objet
Principes
Concept du domaine d'application = objet
Décrit par état (attributs) + comportement (opérations)
Liens entre concepts : héritage, agrégation, composition...
Caractéristiques des objets
Identité : objet = entité unique (mêmes attributs ⇏ même
objet)
Classification : regroupement des objets de même nature
(attributs + opérations)
Polymorphisme : comportement différent d'une même
opération dans différentes classes
Héritage : partage hiérarchique des attributs et opérations
Conception orientée objet avec UML
UML
Langage graphique : Ensemble de diagrammes permettant
de modéliser le logiciel à selon différentes vues et à
différents niveaux d'abstraction
Diagramme de classes
Diagramme d'objets
Diagramme de composants
Diagramme de déploiement
Diagramme de paquetages
Diagramme de profils
Diagrammes UML
14 diagrammes.
Diagrammes comportementaux :
Diagramme états-transitions
Diagramme d'activité
Diagrammes UML
14 diagrammes.
Diagrammes d'interaction :
Diagramme de séquence
Diagramme de communication
Diagramme de temps
Exemple d'utilisation des diagrammes
Spécification :
Diagrammes de cas d'utilisation : besoins des utilisateurs
- Séance 2 -
Améliorer la productivité,
Améliorer le suivi,
Améliorer la qualité
fiabilité,
maintenance,
évolutivité.
Comment ?
• Vues statiques
– Les diagrammes de classes
– Les diagrammes d’objets
– Les diagrammes de cas d’utilisation
– Les diagrammes de composants
– Les diagrammes de déploiement
• Vues dynamiques
– Les diagrammes de séquence
– Les diagrammes de collaboration
– Les diagrammes d’états-transition
– Les diagrammes d’activités
Cas d’utilisation
•Préoccuper des cas "réels" des utilisateurs ; ils ne présentent pas de solutions
d'implémentation et ne forment pas un inventaire fonctionnel du système.
Notation
Note
– “Extend” : un cas
d’utilisation X étend un cas <<extend>>
l’exécution du cas
d’utilisation Y
– “Include” : un use case est
constitué de “sous” use <<include>>
cases. Retirer argent
<<include>>
• La généralisation
Authentifier client
Client
Notion d’Objet
Une abstraction du monde réel c.-à-d. des données informatiques
regroupant des caractéristiques du monde réel
Exemple
une personne, une voiture, une maison, ...
Méthodes Démarrer ()
Arrêter()
actions que l'objet est à même de réaliser Rouler()
Modélisation objet
Notion de Classe
• Structure d'un objet, c.-à-d. une déclaration de l'ensemble des entités
qui composeront l’objet
• Un objet est donc "issu" d'une classe, c'est le produit qui sort d'un
moule
Notation
un objet est une instanciation (occurrence) d'une classe
Voiture FIAT-UNO-17
Numéro de série : Int 233434 : Numéro de série
Poids : double 1500 kg : Poids
Immatriculation : String 8864 YF 17 : Immatriculation
Kilométrage : double 33 000 : kilométrage
Démarrer ()
Arrêter()
Rouler()
Renault-Clio-17 Peugeot-206-75
5323454 : Numéro de série 3434 : Numéro de série
1500 kg : Poids 1700 kg : Poids
64 YFT 17 : Immatriculation 8634 YGG 75 : Immatriculation
23 000 : kilométrage 15 000 : kilométrage
Types de relation entre classes
Héritage
Association
Contenance
Types de relation : Héritage
Principe
classe dérivée contient les attributs et les méthodes de sa superclasse
Spécialisation Généralisation
étendre les propriétés factoriser les propriétés
d'une classe, sous groupe de classes sous
forme de sous-classes forme de super-classe
Restriction de la navigabilité
• Le service de contravention Navigable
est associé à une ou plusieurs
voiture(s)
• La voiture ne connaît pas service
de contravention
Types de relation : Association
Nom de l’association
lien sémantique entre les classes
La personne achète la voiture
La voiture est achetée
Relation n-aire
Type particulier d’association qui relie plus de deux classes
Professeur
Symbole d’association
Salle Etudiant
Types de relation : Association
Multiplicités
Exemples:
• Une voiture a 4 roues
• Un dessin contient un ensemble de figures géométriques
• Une présentation PowerPoint est composé de transparents
• Une équipe de recherche est composée d’un ensemble de personnes
A B
Type de relations
– A « contient » des instances de B,
Agrégat
Propriétés de l’agrégation
• La suppression de A n’implique pas la suppression de B
• L'élément agrégé peut être partagé
Exemples :
• L’enseignant est un composant
d’une (ou plusieurs) équipe de
recherche d’un seul département
Exemple:
« Une présentation PowerPoint est composé de transparents »
- Séance 3 -
Diagrammes de séquences
Diagrammes de collaboration
Diagramme état-transition
Diagramme d’activités
Études de cas
UML
Diagrammes de séquences
3
Diagramme de séquences
4
Diagramme de séquences
Obj et_1 Obj et_2 Obj et_3
Message_1
Message_2
Li gne de vi e de
l 'obj et
5
Diagramme de séquences
6
Diagramme de séquences
7
Diagramme de séquences : Exemple
Compte
- N°Compte : String
- Solde : float
+ <<Constructor>> Compte (int n, float s)
+ déposer (float somme) : void
+ retirer (float somme) : float
+ consulter () : float
8
Diagramme de séquences
Types de messages
Structures de contrôles
9
Période d’activité
Message_1
10
Messages
Objet_1 Objet_2
Message_1
12
Message minuté (Timeout)
Bloque l’expéditeur pendant un temps donné,
en attendant la prise en compte du message
par le récepteur
Après le délai, l’expéditeur est libéré et peut
envoyer
Obj et_2 Obj et_1
13
Message minuté (Timeout) : Exemple
La porte d’un ascenseur s’ouvre pendant un
certain délai avant d’être refermée.
Ascenseur Porte
ouvrir (2 secondes)
fermer
14
Message synchrone (appel de procédure)
Bloque l’expéditeur jusqu’à la prise en
compte du message par le récepteur
Le contrôle est passé de l’émetteur au
récepteur qui devient à son tour émetteur
(actif)
Obj et_2 Obj et_1
Message_1
15
Message synchrone (appel de procédure) :
Exemple
Communication client serveur : Sockets
Client Serveur
Sollitation
Acceptation
Requête
Réponse
16
Message asynchrone
N’interrompt pas l’exécution de l’expéditeur
L’expéditeur peut émettre sans attendre la
réponse du récepteur
Obj et_2 Obj et_1
M essage_1
17
Message récursif
Appelé aussi message réflexive
Message envoyé d’un objet vers lui-même.
Objet_1
Message_1
18
Message récursif : Exemple
Lorsque le client introduit sa carte de guichet,
ce dernier vérifie la validité de la carte avant
de demander le code d’accès
Client GAB
Introduire carte
Vérification validité
19
Création et destruction d’objets
Un message peut créer ou détruire un objet
Objet_1 Objet_3
Message_1
Objet_2
Création d’objet
Message_2
20
Traduction des messages
21
Traduction des messages
class Voiture{
Public void demarrer(){}
}
class Conducteur{
private Voiture voiture;
public void conduire(){
voiture.demarrer();
}
}
… main(String[] arg){
conducteur.conduire();
}
22
Structures de contrôle
23
Les test (branchements)
La condition précédée le message et elle est
délimitée par des crochets
[condition]: Message
24
Les test (branchements) : Exemple
Pour accéder au centre de recherche, l’utilisateur
doit présenter son badge. S’il a droit d’accès, un
voyant vert est allumé et la porte s’ouvre
Utilisteur Système
ouvrir porte
25
Les boucles (répétitions)
La boucle se note comme le test, mais la
condition est précédée d’un astérisque
* [condition]: Message
26
Fragments
Permet de décomposer une interaction
complexe en fragments simples
Représenté par un rectangle dont le coin
supérieur gauche contient un pentagone
Dans le pentagone figure le type du fragment
loop : boucle
alt : alternative
ref : référence
…
27
Fragments
Si x>0 alors
Si x<0 alors
28
UML
Diagrammes de collaboration
29
Diagramme de collaboration
30
Diagrammes de collaboration
31
Diagrammes de collaboration
32
Diagrammes de collaboration
33
Diagrammes de collaboration
34
Diagrammes de collaboration
35
Diagrammes de collaboration
Conclusion
Représentation spatiale
Aspect temporel plus difficile à suivre que pour les
Diagramme de séquence
Durée d’exécution d’une contrainte difficile à évaluer
Diagramme niveau instance
Limite : taille des diagrammes
Plus d’instances peuvent être représentées sur un même
diagramme que pour les diagrammes de séquence
36
Exemple : Ascenseur (Séquence)
37
Exemple : Ascenseur (Collaboration)
38
UML
Diagramme état-transition
39
Diagramme état-transition
Le diagramme état-transition :
Fait partie des modèles dynamiques
40
Diagramme état-transition
Transition
Événement
Garde
…
41
État
42
Transition
C'est le passage d'un état à un autre
Peut être nommé par un événement
Représenté par une flèche orientée de l'état
source vers l'état cible
Restaurée
Réduire
Réduite
43
Événement
44
Exemple
Soit le diagramme d’états/transitions de l’objet ‘Fenêtre’
45
Gardiens
Conditions ou fonctions booléennes
associées à une transition
Une transition gardée ne peut être effectuée
que si le gardien est vérifié
Un gardien est représenté entre crochets
Etat1 Etat2
Evénement [Condition]
46
Formalisme et exemple
Etat1 Etat2
Evénement [Condition]
47
Actions et activités
48
Activité
49
Action
50
Formalisme et exemple
Etat 2
Etat_1
entry / Act1
entry / Action_1
do / Act2
do / Action_2
Evénement [Cond]/ Action Evénement() / Act3
Evénement() / Action_3
exit / Act4
exit / Action_4
Embauché
entry / Signer contrat
do / Assurer fonction
Arrivée proposition() / Réponde à la proposition
Mutation() / Changer d'affectation
exit / Rompre contrat de travail
51
État initial et états finaux
Un diagramme état-transition
Débute toujours par un état initial
Se termine par un ou plusieurs états finaux (sauf
où le diagramme représente une boucle)
Etat_1
Etat_2
52
Exemple (Feu de signalisation)
Feu
- ID : int
- Couleur : {Vert, Orange, Rouge}
Orange
Vert
Rouge
53
Point de décision
54
Point de jonction
55
Points de choix
56
État composite
57
Exemple
58
Historique
59
Concurrences
60
États concurrents
61
États concurrents
62
Transitions concurrentes
63
Transitions concurrentes
64
UML
Diagramme d'activités
65
Introduction
66
Concepts de base
Activité
Swimlanes
67
Comportement conditionnel
68
Comportement conditionnel : Exemple
Demander l'addition
Régler la note
Faire la vaisselle
69
Synchronisation
70
Synchronisation : Exemple
Déserrer le frein à main
Barre de synchronisation
Fusion (conjonction)
Disjonction
Relâcher l'embrayage
71
Itération : Exemple
Recevoi r commande
Véri fi er arti cl e
Commander arti cl e
[pl us d'arti cl e]
72
Swimlanes
Extension des diagrammes d'activités
permettant de représenter l'organisation.
Représente le lieu, le responsable des
activités.
73
Résumé notation
74
Exemple récapitulatif
75
Exercice 1
Enregistrement commande
Rejet commande
76
Exercice 1 : solution
Vérifier commande
Valide
[oui] [non]
77
Exercice 2
78
Exercice 2 : solution
79
Exercice 3
80
Exercice 3 : solution
81
Exercice 4
Construire un diagramme d’activité pour modéliser le
processus de commander d’un produit. Le
processus concerne les acteurs suivants:
Client: qui commande un produit et qui paie la
facture
Caisse: qui encaisse l’argent du client
82
Exercice 4 : solution
83
MDE : Ingénierie des models
- Séance 5 -
Niveau M0
Instances Cette voiture rouge
immatriculée 123A55
Résumé :
Ingénierie dirigée par les modèles
(IDM)
Méthode CASE
L’approche orientée-objet
Les avantages de l’IDM :
- Traçabilité et synchronisation
- Logiciel de qualité
raffiner le PSM
MOF et UML
metaClass
Stereotype
tagged values
constraint
Transformation des modèles
Helpers
Rules
Mécanisme de transformation
des modèles
Une transformation de modèles se réalise en
général selon trois étapes:
Définition des règles de transformation
Scenario Model
Le PIM
Le PIM est par définition un modèle
indépendant de toute plateforme. Cette notion
d’indépendance de plateforme est liée à la
capacité du modèle à abstraire les
caractéristiques d’une plateforme
technologique particulière.
Caractéristiques d’un
Archétype
Dans la modélisation objet, il existe une différence
fondamentale entre les classes d’analyse et les
classes de conception.
Quatre caractéristiques spécifiant le concept
d’archétype dans le contexte du domaine logiciel :
Universal
Pervasive
Deep history
Self-evident to domain
MDE : Ingénierie des models
- Séance 6 -
Niveau M0
Instances Cette voiture rouge
immatriculée 123A55
Résumé :
Architecture dirigée par les modèles
raffiner le PSM
Principes MDA :
Le CIM :
est le modèle d'analyse de base du
métier ou du domaine d’application
est indépendant de tout système
informatique
décrit les concepts de l'activité
métier, le savoir faire les processus,
la terminologie et les règles de
gestion (de haut niveau)
Le CIM :
Flux
Organisation
Exemple PIM:
Exemple de PDM :
Exemple de PSM :