Vous êtes sur la page 1sur 54
Développement d’applications temps réel
Développement d’applications
temps réel
Adel KHALFALLAH Institut Supérieur d’Informatique Adel.Khalfallah@fst.rnu.tn Adel_Khalfallah@yahoo.fr
Adel KHALFALLAH
Institut Supérieur d’Informatique
Adel.Khalfallah@fst.rnu.tn
Adel_Khalfallah@yahoo.fr

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

1

Caractérisation des STR • Large diffusions : les STR sont partout, machine à laver, lecteur
Caractérisation des STR
• Large diffusions : les STR sont partout, machine à laver,
lecteur Audio/Vidéo, automobile, Systèmes de production,
Avionique,
• Systèmes réactifs : Événement, interruptions
– déclenchent des traitements
– fortement liés à la partie matérielle
– on les retrouve pour les SI au niveau des GUI
• Contraintes temporelles, rapidité, ni trop tôt ni trop tard
(train,feu rouge)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
3
Introduction
Introduction

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

2

Caractérisation des STR
Caractérisation des STR
• Exemple Interrupteur mécanique:
Exemple Interrupteur mécanique:
1 ms
1 ms
• Si la période d’échantillonnage est inférieure à 1 ms le système détecte plusieurs on/off
Si la période d’échantillonnage est inférieure à 1 ms le
système détecte plusieurs on/off

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

4

Caractérisation des STR • Aliasing : pour un signal analogue il faut au moins 2
Caractérisation des STR
• Aliasing : pour un signal analogue il faut au moins 2
échantillons par période du signal
• 20 échantillons au lieu de 24 au minimum => on obtient
un signal différent
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
5
Caractérisation des STR • Importance du compilateur : exemple mesure d’une fréquence : On veut
Caractérisation des STR
Importance du compilateur : exemple mesure d’une fréquence : On
veut compter le nombre de hauts par rapports aux nombres de bas.
Le signal est en entrée sur 1 bit
aux nombres de bas. Le signal est en entrée sur 1 bit loop if (InputBit) CptHaut++
loop if (InputBit) CptHaut++ else CptBas++ end loop Freq = CptHaut/(CptHaut+CptBas)
loop
if (InputBit)
CptHaut++
else
CptBas++
end loop
Freq = CptHaut/(CptHaut+CptBas)

Ou est le bug ?

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

7

Caractérisation des STR • Programmation bas niveau : Assembleur, C meilleur contrôle des performances et
Caractérisation des STR
• Programmation bas niveau : Assembleur, C meilleur
contrôle des performances et facilité d’interfaçage avec le
matériel) mais aussi Ada, modula 2, Java, C++
• Équipements spécialisés
– Nécessitent d’être simulés quand ils sont absents
– Certaines fonctions sont assurées par le matériel et d’autres par
le logiciel, relations complexes matériel/logiciel et
multidisciplinarité pour le développeur
• IO Volatile : le logiciel n’est pas nécessairement prévenu
de l’arrivée des données
• Multi tâches
– Un seul microprocesseur => Ordonnanceur
– Systèmes parallèles
• Critiques : Risques financiers et humains
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
6
Caractérisation des STR • Difficulté du debugging – Pas de pas à pas – pas
Caractérisation des STR
• Difficulté du debugging
– Pas de pas à pas
– pas de trace (printf)
– difficulté à reproduire le problème
• Court-circuitage de l’OS, les fonctions bas niveau (mode
superviseur) doivent être accessibles, problèmes de
sécurité
• Hard RTS : Contraintes temporelles doivent être
respectées sans exception, exemple objectif de caméra.
• Soft RTS : contraintes temporelles doivent être
respectées en moyenne, exemple lecteur CD
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
8
Modèles du cycle de vie
Modèles du cycle de vie

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

9

Modèle en cascade (Waterfall model)
Modèle en cascade (Waterfall model)
Etude de faisabilité Analyse des besoins et spécifications Conception architecturale et détaillée Codage et Test
Etude de faisabilité
Analyse des besoins
et spécifications
Conception architecturale
et détaillée
Codage et Test unitaire
Intégration et Test système
Mise en exploitation et
Maintenance

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

11

Code and Fix Coder • Correspond en réalité à l’absence de modèle Oui • Le
Code and Fix
Coder
• Correspond en réalité à l’absence
de modèle
Oui
• Le code devient rapidement
déstructuré
Corrections ?
• Ne peut plus s’appliquer aux
projets post années 70
– Taille
– La complexité
Non
– Spécifications changeantes
– Turnover
• « Crise du logiciel »
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
10
Modèle en cascade • Etude de Faisabilité (concept analysis) : Définir le problème, définir et
Modèle en cascade
• Etude de Faisabilité (concept analysis) : Définir le
problème, définir et étudier les alternatives, définir les
coûts et les délais
• Analyse des besoins et spécifications : Définir les
attendus du système, aboutir à un document de
spécification lisible, précis, complet, consistant et non
ambigu. Aboutit aux besoins fonctionnels et non
fonctionnels ainsi qu’à un plan du développement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
12
Modèle en cascade • Conception architecturale et détaillée : Définir les modules qui constituent le
Modèle en cascade
• Conception architecturale et détaillée : Définir les
modules qui constituent le système et leurs relations.
Selon le contexte la conception détaillée correspond à :
– Définir les interfaces des modules
– Définir les unités du langage de programmation
– Définir les types et les algorithmes
• Codage et test unitaire : écriture du code source, tester
les modules séparément
• Intégration et Test système : Assembler les modules
(gérer les versions) , tester le système (de façon
incrémentale). Alpha testing : mettre l’application entre les
mains d’utilisateurs « compréhensifs ». Beta test : élargir
la base des utilisateurs
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
13
Modèle en cascade (Waterfall model) • Chaque étape possède des critères de lancement de fin
Modèle en cascade (Waterfall model)
• Chaque étape possède des critères de lancement de fin
et de validations (Inspections)
• plusieurs déliverables intermédiaires avant le produit final
• Plusieurs variations sur ce modèle :
– Modèle en V, W,
– Collecte des besoins, test composants, test produit,
An. B &Sp
C. Arch.
Conc. H. Niv. F1
C. Dét.
F1
C &TU
F1
Conc. H. Niv. F2
C. Dét.
F2
C &TU
F2
Parallélisme
Conc. H. Niv. F3
C. Dét. F3
C &TU F3
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
15
Modèle en cascade • Mise en exploitation et maintenance : Le système est installé sur
Modèle en cascade
Mise en exploitation et maintenance : Le système est
installé sur site à large diffusion. On distingue 3 sortes de
maintenance :
– Maintenance corrective : corriger les erreurs
– Maintenance adaptative : adapter le système aux évolutions de
son environnement
– Maintenance perfective : améliorer le système
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
14
Modèle en cascade • Avantages – Discipline – Planification – Marche bien pour des projets
Modèle en cascade
• Avantages
– Discipline
– Planification
– Marche bien pour des projets non innovants impliquant des
développeurs expérimentés
• Inconvénients
– Linéaire, piloté par les documents : bureaucratie
– Monolithique : Tout est basé sur la date de production
– Rigidité : n’anticipe pas les changements : la maintenance est
rejetée à la fin
– « Effet tunnel »
– Inadapté aux projets innovants, offrants des interfaces complexes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
16
Modèle par prototypage
Modèle par prototypage
Collecte et analyse des besoins
Collecte et analyse
des besoins
Conception simplifié Raffinement de la conception et du prototype Construction du prototype Non Client
Conception
simplifié
Raffinement de
la conception et
du prototype
Construction
du prototype
Non
Client
Evaluation
satisfait ?
client
Développement à grande échelle

Développement à grande échelle

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

17

Modèle par prototypage • Avantages – Visibilité du produit final (le choix de la ‘taille’
Modèle par prototypage
• Avantages
– Visibilité du produit final (le choix de la ‘taille’ d’un incrément est
important)
– Adapté pour des projets innovants
– Les changements sont anticipé : la maintenance est incluse tout
au long du processus
• Inconvénients
– Risque de déstructuration du code (on revient à code & fix)
– Difficultés de planifier et de gérer le développement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
19
Modèle par prototypage • Basé sur « throw away prototype » : 1 ère version
Modèle par prototypage
• Basé sur « throw away prototype » : 1 ère version prototype
bâclé qui sert à obtenir un feedback de la part de
l’utilisateur. 2 ème version modèle en cascade
• Facilité par les langages et les environnements RAD
• Variation « modèle incrémental » : Le système est fourni
au client par incréments successifs, après la fourniture
d’un incrément il y a une phase d’évaluation qui influence
le développement de l’incrément suivant
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
18
Modèle transformationnel • La spécification est exprimée formellement. • Puis elle est transformée en
Modèle transformationnel
• La spécification est exprimée formellement.
• Puis elle est transformée en implantation (éventuellement
automatiquement)
• Avantages :
– Preuve formelles de propriétés désirables
– Les changements sont maîtrisés
– Adapté aux systèmes temps réel et sûrs de fonctionnements
• Inconvénients
– Difficulté de la tache de spécification
– L’implantation n’est pas optimisée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
20
Modèle en spirale Déterminer objectifs alternatives Analyse Evaluer alternatives Ident. et résoudre risques
Modèle en spirale
Déterminer
objectifs
alternatives
Analyse
Evaluer alternatives
Ident. et résoudre
risques
contraintes
risques
Analyse
risques
Analyse
Proto
risques
Proto 3
Opérationnel
Analyse
Proto 2
Proto 1
risques
Revue
Plan A. Besoins
Plan CV
Simulation, modèles bancs d’essais
Faisabilité
Spéc.
Plan
Besoins
Validation
développement
Conception
Conc.
Spécification
détaillée
Plan intégration
Validation
Codage
Planifier
et test
Conception
Test
Développer
Intégration
Unitaire
vérifier produit
et test
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
21
Le modèle en spirale • Avantages : – Permet de combiner les modèles antérieurs –
Le modèle en spirale
• Avantages :
– Permet de combiner les modèles antérieurs
– La réutilisation est encouragée par l’identification des alternatives
– Permet d’incorporer le plan qualité
• Inconvénients :
– La flexibilité rend la planification difficile
– L’analyse des risques requière une équipe expérimentée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
23
Le modèle en spirale • Chaque phase correspond à un cycle de la spirale qui
Le modèle en spirale
• Chaque phase correspond à un cycle de la spirale qui voit
se répéter le même type d’activités.
• Focalisation sur la gestion des risques
• Plusieurs spirales (une par fonction ou composant)
peuvent se dérouler en même temps
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
22
Développement Agile
Développement Agile

Approche Agile

Lien Web

Extreme Programming (XP)

http://www.xprogramming.com

http://www.c2.com/cgi/wiki?ExtremeProgrammingRoadmap

Feature Driven Development (FDD)

http://www.togethercommunity.com/

Scrum

http://www.controlchaos.com/

Crystal Light

http://crystalmethodologies.org/

Adaptive Software Development (ASD)

http://www.adaptivesd.com/

Dynamic Systems Development Methodology (DSDM)

http://www.dsdm.org/

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

24

eXtreme Programming
eXtreme Programming
Exploration
Exploration
Planning Itérations Production Maintenance
Planning
Itérations
Production
Maintenance

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

25

eXtreme Programming : Itérations Début Itération Choix des utilisations Estimer les durées et établir les
eXtreme Programming : Itérations
Début
Itération
Choix des
utilisations
Estimer les durées
et établir les priorité
Tester et
Construire
Release
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
27
eXtreme Programming • Phases – Exploration : Vision (20 ~ 30 mots), métaphore du système
eXtreme Programming
Phases
– Exploration : Vision (20 ~ 30 mots), métaphore du système
(domaine), user stories (~ cas d’utilisation quelques 5 phrases ),
exploration (prototypage) de choix technologiques
– Planning: Le client définit les utilisations, les classifie par rapport à
son métier, détermine les utilisations qui seront prototypées dans
la première release, le développeur estime les durées de
développement, identifie les risques technologiques et suit la
progression du développement. Calendrier des releases
– Itérations
– Production
– Maintenance
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
26
eXtreme Programming • Itérations: – chaque release est développée en plusieurs itérations. Elles ont de
eXtreme Programming
Itérations:
– chaque release est développée en plusieurs itérations. Elles ont
de durées non négociables (1-4 semaines). Les premières
itérations portent sur l’architecture et les aspects technologiques
les itérations suivantes sont orientées par les choix du client qui
peuvent évoluer d’une itération à l’autre
– Un WBS est déduit à partir d’une utilisation. Des tâches (3 J/H)
sont classées par priorité et exécutées
– Les tâches sont assignés à des paires de programmeurs qui se
relaient au clavier. Le développement commence par la définition
des tests
– A la fin de l’itération le client exécute les tests d’acceptation qu’il a
définis. Les corrections éventuelles sont reportées à l’itération
suivante
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
28
XP : Déroulement d’une tâche Établissement Assignation Conception d’une paire d’une tâche rapide
XP : Déroulement d’une tâche
Établissement
Assignation
Conception
d’une paire
d’une tâche
rapide
Définition
Trouver un test qui
échoue
des test
Juste le nécessaire pour
que le test passe
Coder
Refactor
Simplifier et
améliorer le code
Intégrer
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
29
Introduction à UP • Modèles à base de phase # Modèles Agile (Extreme programming) •
Introduction à UP
Modèles à base de phase # Modèles Agile (Extreme
programming)
• Procédés lourds (Rigidités , contrôles, séquences) # Procédés
légers (itératifs)
• Planification élaborée à long terme # Planification à court terme
• Fortement prédictif # Fortement adaptatif
• Lutte contre le changement # incorpore le changement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
31
eXtreme Programming • Production – Lorsqu’une release est prête, elle est déployée chez le client
eXtreme Programming
• Production
– Lorsqu’une release est prête, elle est déployée chez le client qui
exécute des tests d’acceptation. En particulier, il vérifie que les
enchaînements des IU contribuent à la productivité des
utilisateurs
– Types de déploiements: Big Bang, Incrémental, Parallèle, Green
field (Environnement vierge)
• Maintenance:
– Se déroule en parallèle avec les itérations de construction (une
release est maintenue alors qu’une autre est en cours de
construction)
– La philosophie de l’approche facilite la maintenance: une ou
plusieurs modifications correspondent simplement à des tests qui
ont échoués et qu’il faut corriger
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
30
Introduction à UP UP est • Itératif • Incrémental • Conduit par les Use Cases
Introduction à UP
UP est
• Itératif
• Incrémental
• Conduit par les Use Cases
• Piloté par les risques
• Centré sur l’architecture
• RUP : UP + outils de Rational
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
32
Phases du cycle de vie Inception Elaboration Construction Transition Temps • Inception
Phases du cycle de vie
Inception
Elaboration
Construction
Transition
Temps
• Inception (Initialisation/Pré-étude): Définir le contexte du
projet
• Elaboration : Construire le noyau architectural
• Construction : Construire le produit
• Transition : Mise en exploitation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
33
Autres disciplines • Modélisation de l’existant • Gestion des configurations • Gestion du projet •
Autres disciplines
• Modélisation de l’existant
• Gestion des configurations
• Gestion du projet
• Définition de l’environnement de développement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
35
Disciplines et modèles Besoins Modèle Use Case Modèle Analyse D’Analyse Modèle Modèle Conception
Disciplines et modèles
Besoins
Modèle
Use Case
Modèle
Analyse
D’Analyse
Modèle
Modèle
Conception
D’arch.
De dépl.
Modèle
Implantation
D’impl.
Modèle
Test
De Test
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
34
Phases et Itérations Inception Elaboration Construction Transition Itér. Itér. Itér. Itér. Itér. Dév.
Phases et Itérations
Inception
Elaboration
Construction
Transition
Itér.
Itér.
Itér.
Itér.
Itér.
Dév.
Prélim
Arch.
Dév.
Trans.
Délivrable
Délivrable
Délivrable
Délivrable
Délivrable
Délivrable
Délivrable
Délivrable
•Une itération est une séquence d’activités basées sur un plan, un
critère d’évaluation résultant en un prototype délivrable
•Une itération a une durée approximative de 2 à 6 Semaines
•Une itération a une durée non tractable (« time boxed »)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
36
Itérations et disciplines Inception Elaboration Construction Transition Besoins Une itération Analyse
Itérations et disciplines
Inception
Elaboration
Construction
Transition
Besoins
Une
itération
Analyse
Conception
Implantation
Test
Itér.
iter.1
iter. 2
iter. n
iter.
ite
r.
iter.
iter.
Prélim.
n+1
n
+2
m
m +1
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
37
Introduction
Introduction

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

39

Itérations et disciplines RUP définit 9 Workflows : 6 d’ingénierie et de 3 de support
Itérations et disciplines
RUP définit 9 Workflows : 6 d’ingénierie et de 3
de support
Workflows d’ingénierie :
• Modélisation métier
• Analyse des besoins et Spécification
• Conception
• Implantation
• Test
• Déploiement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
38
UML : Historique Août 02 OMT UML UML (Rumbaugh) 1.4 2.0 1996 Sept. 2001 UML
UML : Historique
Août 02
OMT
UML
UML
(Rumbaugh)
1.4
2.0
1996 Sept. 2001
UML
UML
BOOD
0.9
1.1
Nov. 1997
OOSE
(Jacobson)
Catalysis
ROOM
etc.

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

40

UML : Un synopsis • Modèles : 15 types de diagrammes informels et graphiques –
UML : Un synopsis
Modèles : 15 types de diagrammes informels et
graphiques
– Diagrammes structurels : diagramme de classes, diagramme
d’objets, diagramme de structures composites, diagramme de
composants, diagramme de déploiements, diagramme combiné
composant/déploiement
– Diagrammes comportementaux:
• diagramme d’activités
• Diagrammes d’interactions : diagramme de séquences,
diagramme de communications , diagramme global
d’interactions, diagramme de temps,
• diagramme d’états, diagramme de protocole d’états
– Diagramme fonctionnel : diagramme des cas d’utilisations

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

41

Diagramme des cas d’utilisation
Diagramme des cas
d’utilisation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

43

UML : Un synopsis – Diagramme de gestion des modèles : diagramme de paquetages •
UML : Un synopsis
Diagramme de gestion des modèles : diagramme de paquetages
Démarche : UML n’en fournit pas, des propositions sont
faites indépendamment (RUP,2TUP,…)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
42
Les cas d’utilisations • Introduits par I. Jacobson • vue fonctionnelle, correspond à un comportement
Les cas d’utilisations
• Introduits par I. Jacobson
• vue fonctionnelle, correspond à un comportement type
du système
• Une manière spécifique d’utiliser le système selon le
point de vue de l’utilisateur
• Fixe les limites entre le système et son environnement
• Elément du cahier des charges
• Outil de communication avec le client / Référence pour la
suite
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
44
Cas d’utilisation : Exemple Système : Suivi de température ambiante Capteur T° Afficher T° instantanée
Cas d’utilisation : Exemple
Système : Suivi de température ambiante
Capteur T°
Afficher T° instantanée
Afficher T° moyenne
Administrateur
Maintenir historique
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
45
Use case : Les concepts • Acteur : Source ou destination finale d’une interaction (émission/réception
Use case : Les concepts
• Acteur : Source ou destination finale d’une interaction
(émission/réception de données, ordres, événements,…).
Lors de l’analyse décrivent des roles de personnes, des
systèmes ou des composants puis évoluent vers des
interfaces (utilisateurs, API,…). Traçabilité.
• Un acteur principal pour chaque cas d’utilisation et
éventuellement quelques acteurs secondaires
• Cas d’utilisation : Interaction ayant une valeur ajoutée
pour au moins un acteur. Lors de l’analyse les acteurs
principaux sont essentiellement considérés. Il peut
évoluer vers un C.U technique. Exprime un besoin et non
une solution. CRUD (CCMS)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
47
Use case : Les concepts
Use case : Les concepts
Acteur Cas m d'utilisation
Acteur
Cas
m d'utilisation

n

Acteur

Limites du système

Intéractions (Associations)

Acteur: toute entité externe Au système et échangeant des informations avec lui. Exemple:

Professeur, Capteur, BD, TCP/IP,…

Chaque cas d’utilisation correspond à un ensemble de transactions effectuées au cours d’une interaction entre l’acteur et le système. Éventuellement précisé par des diagrammes d’interaction

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

46

Use case : Les concepts • Syndrome de l’acteur monopolisant le système : mauvaise identification
Use case : Les concepts
• Syndrome de l’acteur monopolisant le système :
mauvaise identification des rôles joués par l’acteur
• Un Diagramme est une partie de modèle correspondant à
une décomposition ici il regroupe des cas d’utilisation et
des acteurs
• Un cas d’utilisation a au moins deux catégories de
lecteurs : Le client final et l’informaticien
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
48
Relations entre use cases • Relation <<include>> : Factorisation • Relation
Relations entre use cases
• Relation <<include>> : Factorisation
• Relation <<extend>> : Optionalité
• Relation de spécialisation : Substitution
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
49
Relation Include • Lorsque un C.U. correspond à une factorisation, son déclenchement n’est pas précisé
Relation Include
• Lorsque un C.U. correspond à une factorisation, son
déclenchement n’est pas précisé et sa terminaison
explicite les informations disponibles au C. U. de base
• Le C.U de base ne doit dépendre que du résultat du C.U.
inclut et pas de la façon d’obtenir le résultat
• Le C.U. inclut ne doit pas dépendre du C.U. de base
• Le C.U. inclut reçoit-il des paramètres ? À traiter au cas
par cas
• Dans le cadre de l’analyse des STR la relation include est
souvent utilisée comme une relation de décomposition
pour identifier les sous systèmes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
51
Relation Include « include » C1 C2 • Permet d’identifier un sous ensemble commun à
Relation Include
« include »
C1
C2
• Permet d’identifier un sous ensemble commun à plusieurs
cas
• C1 utilise C2 ⇒ toute activation de C1 entraîne une
activation de C2, C1 est incomplet sans C2, le
déroulement de C1 sans C2 correspond à une situation
exceptionnelle
• Définit implicitement une hiérarchisation
• Parfois, dans le cadre de la factorisation, C2 ne définit
pas un usage ‘complet’ du système, il est considéré
comme abstrait
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
50
Exemple Include « include » « include » Gérer looping Contrôler Gérer ravitaillement Altitude en
Exemple Include
« include »
« include »
Gérer looping
Contrôler
Gérer ravitaillement
Altitude
en vol

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

52

Relation Extend « extend » Extension points Extension ext 1 C2 ext 2 Condition …
Relation Extend
« extend »
Extension points
Extension
ext 1
C2
ext 2
Condition
Extension point
Base
C1
ext 1
• Permet d’identifier les comportements alternatifs ou
exceptionnels, i.e. conditionnels (erreurs,…)
• C2 étend C1 ⇒ C2 est un complément à C1, C1 peut se
dérouler sans le complément
• C2 n’est pas activable directement, C2 s’impose à C1
• Définit implicitement une hiérarchisation
• <extension point> ::= <nom> [: <Explication/Localisation>]
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
53
Relation Extend C1 C2 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut
Relation Extend
C1
C2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
55
Relation Extend Condition C1 C2 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception -
Relation Extend
Condition
C1
C2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
54
Exemple : Extend
Exemple : Extend

Gérer ravitaillement en vol

Obstacle Nouvelle approche
Obstacle
Nouvelle approche
« extend » Condition vitesse élevée Extension point Nouvelle approche
« extend »
Condition
vitesse élevée
Extension point
Nouvelle approche
Condition obstacle détecté Extension point Obstacle
Condition
obstacle détecté
Extension point
Obstacle

« extend »

obstacle détecté Extension point Obstacle « extend » Interrompre ravitaillement Recommencer approche Adel

Interrompre

ravitaillement

Recommencer approche

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

56

Relation Extend • Extend peut être utilisée pour séparer des points de vue
Relation Extend
• Extend peut être utilisée pour séparer des points de vue
Facturer
Facturer
Appel téléphonique « extend » Condition toujours Extension point Facturer
Appel téléphonique
« extend »
Condition
toujours
Extension point
Facturer

Calcul coût

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

57

Transitivité, Acteurs et Include
Transitivité, Acteurs et Include
Gestion ravitaillement « include » ?
Gestion ravitaillement
« include »
?
Gestion ravitaillement « include » ? Altimètre Gérer altitude

Altimètre

Gérer altitude

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

59

Relation Extend • La description d’un U.C. d’extension doit faire référence à tous les U.C.
Relation Extend
• La description d’un U.C. d’extension doit faire référence à
tous les U.C. de base qu’elle étend et préciser pour
chacun, le point et la condition d’extension et la continuité
du flot de contrôle à la fin du U.C. d’extension.
• Lorsque plusieurs U.C. font référence au même point
d’extension d’un U.C. de base cela sous entend que
l’ordre de déroulement est indéterminé
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
58
Transitivité, Extend et Include
Transitivité, Extend et Include
« include » C1 C3 « extend » « include » ? C2 C1 C3
« include »
C1
C3
« extend »
« include » ?
C2
C1
C3
« extend »
« extend » ?

C2

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

60

Extend et include • Inclusion versus extension U.C. base incomplet U.C. Inclut ne dépend pas
Extend et include
• Inclusion
versus
extension
U.C. base incomplet
U.C. Inclut ne dépend pas de la base
U.C. base complet
U.C. ext. Dépend
de la base
• Include, extend et la généralisation doivent être utilisées
avec modération car leur sémantique reste ambiguë et
elle rendent les modèles difficiles à comprendre
• Ces relations ne doivent être introduire que lorsque les
descriptions textuelles commencent à être stabilisées
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
61
Recherche
Recherche
Recherche
Recherche

« include »

traitement
traitement
Recherche « extend » Traitement1 Traitement1
Recherche
« extend »
Traitement1
Traitement1

« extend »

La recherche est factorisée le résultat de la recherche est utilisé dans le traitement

Le résultat de la recherche est traité de 2 façons différentes

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

63

Contrôle des accès « include » Configurer Vérifier droits • La vérification des droits peut
Contrôle des accès
« include »
Configurer
Vérifier droits
• La vérification des droits peut aussi être exprimé par une
précondition ce qui permet de conserver un niveau
d’abstraction uniforme
• Dans les deux cas redondance: la pré condition ou
include
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
62
Login/Logout
Login/Logout
« include » Traitement Login/Logout
« include »
Traitement
Login/Logout
• L’identification doit être effectuée à chaque traitement
• L’identification doit être effectuée à chaque traitement

• En général, il n’y pas de relations entre Login et les autres U.C.

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

64

Use case et généralisation
Use case et généralisation
Capteur Valider utilisateur Vérifier mot de passe Capteur T° Capteur P
Capteur
Valider utilisateur
Vérifier mot de passe
Capteur T°
Capteur P

L’acteur spécialisé hérite des interactions de l’acteur père

Le cas d’utilisation spécialisé est substituable au cas d’utilisation père

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

65

Use case et généralisation Vérifier utilisateur Vérifier mot de passe Adel KHALFALLAH - Génie logiciel
Use case et généralisation
Vérifier utilisateur
Vérifier mot de passe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
67
Use case et généralisation Qté > Seuil Qté < Seuil Passer Commande Réapprovisionner Adel KHALFALLAH
Use case et généralisation
Qté > Seuil
Qté < Seuil
Passer Commande
Réapprovisionner
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
66
Use case et généralisation • Le C.U fils remplit la même fonctionnalité, il spécialise certaines
Use case et généralisation
• Le C.U fils remplit la même fonctionnalité, il spécialise
certaines parties du C.U père. Les transactions effectuées
par le père sont soit héritées directement soit redéfinies
au niveau du fils, i.e la description du fils peut se référer à
des parties du père
• Le C.U. peut être considéré comme abstrait i.e. ne
donnant pas lieu directement des instances, il définit la
fonctionnalité sans donner une façon de la remplir
• Le père est hérité avec ses flots alternatifs et inclus
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
68
Détails d’un cas d’utilisation • Diagramme de cas d’utilisation à lui tout seul est insuffisant
Détails d’un cas d’utilisation
• Diagramme de cas d’utilisation à lui tout seul est
insuffisant
• Il faut :
1. établir la traçabilité entre le cahier des charges et le modèle des
cas d’utilisations
2. Expliciter le comportement du système pour chacun des cas
d’utilisations par
– Description textuelle
– Prototype des interfaces
– Un ou plusieurs diagrammes de séquences/scénarios
– Un ou plusieurs diagrammes États/transitions
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
69
Détails d’un cas d’utilisation • Lorsque la description est longue le texte peut être organisé
Détails d’un cas d’utilisation
• Lorsque la description est longue le texte peut être
organisé en niveaux : le premier niveau fait référence à
des titres de paragraphes
• La description peut éventuellement préciser
l’enchaînement du déroulement dans le cas des relations
include et extend
• A partir de la description du C.U on déduit des objets et
des diagrammes d’interactions
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
71
Détails d’un cas d’utilisation • Différents niveaux de description : – Description boite noire :
Détails d’un cas d’utilisation
• Différents niveaux de description :
– Description boite noire : échanges entre le client et l’interface DAB
et conséquences sur le compte du client
– Description boite grise: les traitements de log sont décrits
– Description boite blanche : les détails d’interfaçage avec le réseau
sont décrits
• Le diagramme des C.U. est destiné à plusieurs lecteurs
• Le C.U. peut référencer un dictionnaire de données, un
glossaire ou des règles de gestion
• Un paragraphe peut être commun à plusieurs C.U
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
70
Modèle de la description textuelle • Résumé : Titre, But, Objectif, Dates, Version, Responsables, Acteurs,…
Modèle de la description textuelle
• Résumé :
Titre, But, Objectif, Dates, Version, Responsables, Acteurs,…
• Préconditions :
Ce qui doit être vérifié avant que le C.U. ne commence
• Enchaînements :
– Evènements de déclenchement
– Séquence nominale/C.U. référencés
– Séquences Exceptionnelles/Exceptions
• Postconditions
ce qui est vrai après que le C.U. se soit déroulé
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
72
Modèle de la description textuelle • Besoins d’IHM Expression de contraintes liées à l’interface •
Modèle de la description textuelle
• Besoins d’IHM
Expression de contraintes liées à l’interface
• Contraintes non fonctionnelles
– Contraintes temporelles
– Volumétries
– QoS: Disponibilité, fiabilité, Performances
– Concurrence
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
73
Exemple machine d’anesthésie • Fonctionnalité principale : administrer au patient un mélange de gaz (Oxygène
Exemple machine d’anesthésie
• Fonctionnalité principale : administrer au patient un
mélange de gaz (Oxygène + Nitrate d’oxyde + isoflurane)
avec une pression et un débit approprié
• Inclut un ventilateur et un dispositif de monitoring des
signaux vitaux du patient (Rythme cardiaque, pression
sanguine, )
• Inclut un vaporisateur qui permet de contrôler finement
l’addition de anesthésiant volatile au flux de gaz
• La composition des gaz administrés au patient doit être
contrôlée en temps réel
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
75
Exemple machine d’anesthésie
Exemple machine d’anesthésie
d’Informatique - 75 Exemple machine d’anesthésie Adel KHALFALLAH - Génie logiciel - Méthodologies de

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

74

Exemple machine d’anesthésie Configurer Système Médecin ECG Gérer Alarmes Administrer Anesthésiant Traceur
Exemple machine d’anesthésie
Configurer
Système
Médecin
ECG
Gérer
Alarmes
Administrer
Anesthésiant
Traceur
Suivre signes
vitaux
Patient
Ventiler
Patient
Système d’anesthésie
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
76
Exemple machine d’anesthésie « Sous-système » Circuit respiratoire « Sous-système » Monitoring agent
Exemple machine d’anesthésie
« Sous-système »
Circuit respiratoire
« Sous-système »
Monitoring agent anesthésiant
administrer
Contrôler
gaz
Calibrer
concentration
Configurer
Mélanger
gaz
Configurer
Administrer
Monitor agent
Administrer
Anesthésiant
médicament
« include »
Configurer
Ventilateur
« Sous-système »
Ventilateur
Fixer paramètres
vaporisation
Appliquer
Configurer
ventilation
Vaporisateur
Monitorer
« Sous-système »
Vaporisateur
Circuit respiratoire
« Sous-système »
Interface utilisateur
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
77
Exemple machine d’anesthésie 2. Lorsque plusieurs alarmes se produisent simultanément, elles doivent être affichés
Exemple machine d’anesthésie
2. Lorsque plusieurs alarmes se produisent simultanément, elles doivent être
affichés par ordre de criticité d’abord et par ordre d’occurrence (la plus
récente en premier) ensuite.
3. Les alarmes doivent nécessairement recevoir un accusé de réception de la
part des opérateurs qui appuient pour cela sur le bouton « Alarm Ack » une
fois que l’alarme s’est produite, même si les conditions de l’alarme n’existent
plus l’opérateur doit accuser réception de l’alarme.
4. Lorsque une alarme ne peut pas être affichée parce que des alarmes de
priorités supérieure occupent tout l’espace d’affichage, elle ne peut recevoir
un accusé de réception que lorsqu’elle a été affichée
5. Lorsque les conditions qui ont généré une alarme ont été corrigées mais
l’alarme n’a pas encore reçu d’accusé de réception, elle doit s’afficher en
gris. Les autres alarmes conservent leur couleur initiale
6. L’appui sur le bouton « Alarm Ack » pour une alarme à pour conséquence
d’interrompre le signal sonore mais n’a pas d’effet sur l’affichage.
L’interruption dure 2 minutes si avant la fin de l’interruption les conditions qui
ont provoqué de l’alarme ont disparue, l’alarme cesse d’être affichée sinon
le signal sonore reprend
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
79
Exemple machine d’anesthésie • Résumé : – Nom : Gérer alarme – Acteur principal :
Exemple machine d’anesthésie
• Résumé :
– Nom : Gérer alarme
– Acteur principal : Médecin; Acteurs secondaire : ECG, Traceur
– Objectif : Ce cas permet d’identifier les situations où il existe un danger
pour le patient et d’informer l’anesthésiste a fin qu’il réagisse de façon
appropriée
• Préconditions :
– Le système a été configuré et initialisé correctement
– Les paramètres de la fonction d’alarme ont été fixés
– La fonction d’alarme est activée
• Enchaînements :
1.
Lorsque une situation d’alarme se produit un message (contenant la
date/heure d’occurrence, le type de l’alarme, la source de l’alarme et la
cause probable de l’alarme) doit être affiché accompagné d’un signal sonore
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
78
Exemple machine d’anesthésie • Contraintes non fonctionnelles – Contraintes temporelles • Il ne doit pas
Exemple machine d’anesthésie
Contraintes non fonctionnelles
Contraintes temporelles
• Il ne doit pas s’écouler plus de 50 ms entre l’occurrence d’une
situation d’alarme et la signalisation de l’alarme
• La signalisation d’une alarme qui a reçu un accusé de réception
s’interrompt au plus pendant 2 minutes lorsque les conditions qui l’ont
générées restent présentes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
80
Organisation des modèles • Paquetages – Éléments de modélisation qui ne sont utilisés que pendant
Organisation des modèles
Paquetages
– Éléments de modélisation qui ne sont utilisés que pendant le
processus de développement
– Définissent un espace de nommage permettant de regrouper des
diagrammes. Ils peuvent inclure des paquetages
– Les outils de gestion de configuration les exploitent comme items
de base
Nom paquetage
Nom paquetage

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

81

Diagramme d’activités
Diagramme d’activités

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

83

Niveaux d’abstractions
Niveaux d’abstractions
« system »
« system »

Niv. 0 : Niveau système

« sub-system »

« sub-system »

Niv. 1 : Niveau ingénierie système

« sub-system »

Aspects Aspects Aspects Aspects Électronique Informatique Mécanique Chimie
Aspects
Aspects
Aspects
Aspects
Électronique
Informatique
Mécanique
Chimie

« sub-system »

Niv. 2 : Niveau interdisciplinaire

Niv. 3 : Niveau composants logiciel« sub-system » Niv. 2 : Niveau interdisciplinaire Niv. 4 : Niveau tâches Adel KHALFALLAH -

Niv. 4 : Niveau tâches

Niv. 4 : Niveau tâches

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

82

Introduction • Inspirés des organigrammes • Différence substantielle entre UML 1.4 et UML 2.0 •
Introduction
• Inspirés des organigrammes
• Différence substantielle entre UML 1.4 et UML 2.0
• Considérés parfois comme faisant partie de la vue
fonctionnelle car il décrit la logique des
fonctions/processus
• Permet différents niveau de granularité:
– Opération : correspond à un algorithme, offre toutes les
constructions logiques habituelles, la traduction en
algorithme/langage est immédiate
– Cas d’utilisation : correspond à un processus décrit, les règles, les
échanges d’information, les décisions et les résultats nécessaire
au cas pour atteindre son objectif
– Plusieurs cas d’utilisation : correspond à un workflow décrit le
contrôle et l’enchaînement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
84
Diagramme d’activité : Exemple Transition Départ Configurer session Activité Fork Décision Contrôler
Diagramme d’activité : Exemple
Transition
Départ
Configurer session
Activité
Fork
Décision
Contrôler ventilation
Contrôler agent
[Stabilisation]
[Réanimation]
Monitor par.
Init.
Garde
Vitaux
Shutdown
Nettoyer
Point de
Join
jonction
Enreg. Historique
Fin
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
85
Diagramme d’activités (UML 2.0) • Une activité est décomposable en actions atomiques • Les actions
Diagramme d’activités (UML 2.0)
• Une activité est décomposable en actions atomiques
• Les actions peuvent consommer ou produire des objets
• Le flot entre actions est décrit en utilisant des ‘arcs’
(activity edge) et des nœuds de contrôle
• Il y a 2 sortes d’arcs représentés par une flèche
– Les flots de contrôle : correspondent à une transition
– Les flots d’objets : correspondent à une transition qui matérialise
le passage de données produites par une action et consommée
par l’action suivante
• Un arc peut être décoré par : le nom d’un événement, un
objet, une interruption ou un connecteur (simplifie la
présentation)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
87
Diagramme d’activité • Activité : Etape d’un processus, calcul, manipulation de données,… • Transition :
Diagramme d’activité
• Activité : Etape d’un processus, calcul, manipulation de données,…
• Transition : définit l’enchaînement des activités, la transition à lieu
lorsque son activité source se termine
• Condition (ou garde) : Une transition n’est franchissable que lorsque
sa garde éventuelle est vraie
• Décision : décrit un choix dans la transition à franchir. Chaque choix
est décrit par une garde, elles doivent être mutuellement exclusives
(if-else/case)
• Point de jonction : matérialise la rencontre de 2 chemins alternatifs
• Départ et fin : Une entrée plusieurs sorties
• Concurrence : fork génération de tâches concurrentes, join
synchronisation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
86
Diagramme d’activités (UML 2.0) • Le passage d’une action à l’autre est déclenché par –
Diagramme d’activités (UML 2.0)
• Le passage d’une action à l’autre est déclenché par
– La fin d’une action
– Des données (attendues par une action) sont produites
– Un événement externe se produit
• Le départ et l’arrivée sont des nœuds de contrôle (nœud
initial et noeud final). Quand le déroulement atteint un
nœud final l’activité se termine et toutes ses données sont
perdues
• Les décisions et les points de jonction sont des nœuds de
contrôle. Ils peuvent être unifiés
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
88
Diagramme d’activités (UML 2.0) • Les données en entrées d’un nœud fork sont dupliquées sur
Diagramme d’activités (UML 2.0)
• Les données en entrées d’un nœud fork sont dupliquées
sur tous les arcs en sorties
• Un nœud fork et un nœud join peuvent être unifiés pour
décrire une synchronisation suivie d’une génération
• Un join peut être décoré par une condition booléenne
pour la synchronisation des taches ou une condition
booléenne sur des valeurs
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
89
Diagramme d’activités (UML 2.0) • Les données transférés par un flot d’objet sont contenues dans
Diagramme d’activités (UML 2.0)
• Les données transférés par un flot d’objet sont contenues dans un
nœud objet
• Les nœuds objets sont de trois types: objet, ensemble d’objet, signal
• Un objet qui est en donnée d’une action est un ‘input pin’. Un objet
qui est en résultat d’une action est un ‘output pin. La fusion d’un input
pin et d’un output pin correspond à un nœud objet
• Un flot d’objet ou un pin peut être labellisé par l’action CRUD
effectuée sur l’objet ou par un filtre pour limiter les objets qui passent
à travers le flot
• Des contraintes d’ordre ou de taille maximale peuvent être décrite
pour un flot d’objet qui est alors considéré comme un buffer
• L’état d’un objet peut être mentionné pour un nœud objet pour définir
un filtre
• Un objet résultat d’une activité peut être une exception, l’activité est
interrompue et l’exception est propagée à l’activité suivante
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
91
DA : Représentation graphique Gestion de plan Connecteur cancel Afficher routes A Choix + Init.
DA : Représentation graphique
Gestion de plan
Connecteur
cancel
Afficher routes
A
Choix +
Init.
Ctrl
params
péchauffe
jonction
[Recommencer]
fork + join
[Nouveau]
[Existant]
A
Créer route
Lire route
Confirmation
Editer route
Enregistrer
save
[Non]
[Terminer]
ctrl injection
ctrl démarreur
Evénement
[Oui]
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
90
DA : Représentation graphique
DA : Représentation graphique
Position Cmde. moteur Traiter Input pin Afficher routes Position Output pin d’objets {read} Traiter Ctrl.
Position Cmde. moteur Traiter Input pin Afficher routes Position Output pin d’objets {read} Traiter Ctrl.
Position
Cmde. moteur
Traiter
Input pin
Afficher routes
Position
Output pin
d’objets
{read}
Traiter
Ctrl. moteur
Position
{create}
Créer route
Lire route
OU
Flot
Cmde. moteur

Nouvelle

route

Route

Objet

d’objet

Traiter Ctrl. moteur {create} Position {read}
Traiter
Ctrl. moteur
{create}
Position
{read}

OU

Objet exception Traiter cmde Position {create} moteur
Objet exception
Traiter
cmde
Position
{create}
moteur
Ctrl. moteur {read}
Ctrl. moteur
{read}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

92

Set of Route

Ensemble

Position

Cmde. moteur

Diagramme d’activités (UML 2.0) • Un objet ‘central buffer’ modélise une queue d’objets partagée entre
Diagramme d’activités (UML 2.0)
• Un objet ‘central buffer’ modélise une queue d’objets
partagée entre un producteur et un consommateur
asynchrones
• Les partitions d’activités permettent d’associer un
responsable à une activité. Une partition pourra être
décomposée en sous partition
• Les partitions d’activités peuvent être organisés par
rapport à une 2 ème dimension qui décrit une perspective
particulière sur l’activité
• Une nœud fin de flot décrit la fin d’un flot dans une activité
composée de plusieurs flots concurrents
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
93
DA : Représentation graphique
DA : Représentation graphique
Partition Sous partition Sous partition … …
Partition
Sous partition
Sous partition

ou

Partition Sous partition Sous partition … … ou Partition::Sous partition Action … Fin de flot Adel

Partition::Sous partition

Action

…

Fin de flot

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

95

DA : Représentation graphique
DA : Représentation graphique
Traiter position commande Traiter altitude commande <<Central buffer>> Commande Gestion des

Traiter position

commande

Traiter altitude
Traiter altitude

commande

<<Central buffer>>

Commande

Gestion

des moteurs

Ou

contrôle log Traiter Gestion retour Commande Position moteurs G P S
contrôle
log
Traiter
Gestion
retour
Commande
Position
moteurs
G P S
(Afficheur) Gestion Route
(Afficheur)
Gestion
Route

Afficheur

Gestion

Route

Route

Partition

Visualisation

Route

(Afficheur)

Visualisation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

94

DA : Représentation graphique Seconde perspective Interfaçage matériel Cockpit Contrôle log Traiter Gestion
DA : Représentation graphique
Seconde perspective
Interfaçage matériel
Cockpit
Contrôle
log
Traiter
Gestion
retour
commande
Position
Moteur
Gestion
route
Visualiser
route
Éditer
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
96
<<external>>
<<class>>
<<class>>
Pilote
Afficheur
G P S
Diagramme d’activités (UML 2.0) • Une activité peut avoir une ou plusieurs instances • Une
Diagramme d’activités (UML 2.0)
• Une activité peut avoir une ou plusieurs instances
• Une activité peut avoir une pré et une post-condition
exprimées sous forme d’annotations ou apparaissant a
coté de l’intitulé
• Un objet peut être un ‘data store’, les lectures ne sont pas
destructives, les écritures sont des mises à jour le cas
échéant
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
97
Introduction • Le diagramme le plus exploité pour la génération de code • Roundtrip engineering
Introduction
• Le diagramme le plus exploité pour la génération de code
• Roundtrip engineering :
Modéliser → Générer → Modifier → Modéliser
• Maintenir la cohérence entre le modèle et le source est un
problème difficile
• Veillez à respecter les règles du langage au niveau du
modèle (nom de classe, constructeurs, types de bases,
)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
99
Diagramme de classes
Diagramme de classes

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

98

Rappels • Objet – Identité – Etat – Comportement • Encapsulation • Abstraction • Classes
Rappels
• Objet
– Identité
– Etat
– Comportement
• Encapsulation
• Abstraction
• Classes
• Héritage
• Polymorphisme
– Surcharge
– Généricité
– Liaison dynamique
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
100
Classes Personne Personne Personne Personne Nom CalculerAge Nom NeLe : Date CalculerAge
Classes
Personne
Personne
Personne
Personne
Nom
CalculerAge
Nom
NeLe : Date
CalculerAge

Un objet ne peut pas être un attribut

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

101

Diagrammes de classes : Opérations • Une opération pourra correspondre à: un appel de fonction,
Diagrammes de classes : Opérations
Une opération pourra correspondre à: un appel de
fonction, un message ou un événement via un Système
d’exploitation ou un exécutif temps réel, une interruption,
appel à une primitive d’une structure de synchronisation
(sémaphore, moniteur,
),
un rendez-vous Ada, un RPC
dans un système distribué,
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
103
Diagrammes de classes : Classes Nom {propriétés} Vis Nom Attribut[Multip]: Type=Valeur {propriétés} Stéréotype
Diagrammes de classes : Classes
Nom
{propriétés}
Vis Nom Attribut[Multip]: Type=Valeur {propriétés}
Stéréotype Vis Opération(Paramètres) : Type Retour {propriétés}
‘::’ : opérateur de portée
Propriété : Attribut valué ( au métamodèle) {Auteur=A. K} ou
description; contraintes (OCL), pre/post conditions; Exceptions
Visibilité: Public (+) Protégé (#) Privé(-) Paquetage (~)
Multiplicité : 0
N
{Propriété: ordered, unique, required,
}
Les attributs et opérations de classes sont soulignés
Stéréotype : « create », « request »,
Paramètres : [in | out | inout] Nom : Type=Valeur Défaut
Attribut ou association dérivé : /Age
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
102
Classes
Classes
• D’autres compartiments peuvent être ajoutés
• D’autres compartiments peuvent être ajoutés
Nom
Nom

Attributs

Opérations

Exceptions

• Une classe peut contenir une autre classe
• Une classe peut contenir une autre classe

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

104

Classes
Classes

Les notions de classe et d’ensemble sont proches

• La spécification d’une classe est analogue à la description en compréhension d’un ensemble

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

105

classe utilitaire • Stéréotype <<utilitaire>> (« utility ») • Tous les membres (donnés et
classe utilitaire
• Stéréotype <<utilitaire>> (« utility »)
• Tous les membres (donnés et opérations) sont statiques
• Correspond à une bibliothèque de fonctions
<<utilitaire>>
Math
sin(x:réel):réel
cos(x:réel):réel
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
107
Classes X Propriété caractéristique de X P(x) : X : : X X : X
Classes
X
Propriété caractéristique de X
P(x)
: X
: : X
X
: X
: : X
: X
X
: : X
X
: : X
X
X
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
106
classe énumération • Stéréotype <<enumeration>> • Les attributs ne sont définies que par des
classe énumération
• Stéréotype <<enumeration>>
• Les attributs ne sont définies que par des valeurs
correspondant à des constantes
• Il n’y a pas de comportement
• Correspond au type enum
<<enumeration>>
Feu
Rouge
Jaune
vert
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
108
Classes génériques Type,Variable Une Classe « bind » (UnType,Unevaleur) LaClasse Adel KHALFALLAH - Génie
Classes génériques
Type,Variable
Une Classe
« bind »
(UnType,Unevaleur)
LaClasse
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
109
Associations
Associations

Relations structurelles entre objets

Association binaire

Emploie Personne Société
Emploie
Personne
Société

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

111

classes d’interface « Interface » Nom Interface Nom Interface Nom Interface Client Implantation Le client
classes d’interface
« Interface »
Nom Interface
Nom Interface
Nom Interface
Client
Implantation
Le client requière l’interface
‘Nom Interface’ qui lui est
fournie
Implantation
Implantation
• UML 2.0 autorise des ‘attributs abstraits’ (non implantés)
• Les interfaces peuvent être imbriquées
• Par la Exemple : Interface de pile avec multiple réalisation
• Notation DCOM
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
110
Association : Rôle
Association : Rôle
Société
Société

Employeur

Employés

Personne
Personne

Le rôle est particulièrement utile lorsque l’association est réflexive

Père de

Personne
Personne

Fils de

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

112

Association : Rôle (UML 1.4)
Association : Rôle (UML 1.4)

•Le rôle peut avoir une visibilité +,- ou # •Le rôle peut avoir un type, dans ce cas la classe réalise plusieurs interfaces et le type limite celle qui est utilisée

interfaces et le type limite celle qui est utilisée Souris Clavier +Gest : Souris Fenêtre Gestionnaire

Souris

Clavier

et le type limite celle qui est utilisée Souris Clavier +Gest : Souris Fenêtre Gestionnaire Adel
+Gest : Souris Fenêtre Gestionnaire
+Gest : Souris
Fenêtre
Gestionnaire

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

113

Associations : contraintes sur les cardinalités
Associations : contraintes sur les cardinalités
1 * Hiérarchie Grade
1
*
Hiérarchie
Grade

{ordred}

•Il existe une relation d’ordre sur les grades •Les opérations d’insertion de suppression, etc doivent préserver cette relation •Plus généralement différentes contraintes peuvent être exprimées

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

115

Association : Cardinalités
Association : Cardinalités
1 * Société Personne
1
*
Société
Personne
• 0 1 • M N • * ⇔ 0 N • V1, V2, V3
• 0 1
• M N
• * ⇔ 0 N
• V1, V2, V3
Personne • 0 1 • M N • * ⇔ 0 N • V1, V2, V3

Combien d’occurrences de

personne peuvent être

associées à une occurrence de Société ? Réponse : Au minimum 1 au maximum N

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

114

Association : Qualificateur * Société Directeur : bool Personne Société N° CNSS Personne • Réduit
Association : Qualificateur
*
Société
Directeur : bool
Personne
Société
N° CNSS
Personne
• Réduit la cardinalité, permet un accès indexé, société
requière l’accès indexé
• Le qualificateur est un attribut de la classe qui va faire
l’objet de l’accès indexé
• Lorsque la cardinalité réduite équivalent à une clé
• Implantation : table de hashage, map,
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
116
Association : Contraintes
Association : Contraintes
Personne
Personne

Organise

Concours
Concours

{xor}

Participe

• On ne peut pas avoir simultanément le lien ‘Organise’ et le lien ‘Participe’ entre
• On ne peut pas avoir simultanément le lien ‘Organise’ et
le lien ‘Participe’ entre un objet personne et un objet
concours
• Une contrainte sur plusieurs lien passe par une
annotation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

117

Association : Navigation Société Personne Société x Personne • Dans le premier cas la navigation
Association : Navigation
Société
Personne
Société x
Personne
• Dans le premier cas la navigation société vers personne
doit être supportée, la navigation de personne vers
société est indéfinie
• Dans le deuxième cas la navigation de personne vers
société ne sera pas supportée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
119
Association dérivée
Association dérivée
1 * 1 * Société Personne Pointage
1
*
1
*
Société
Personne
Pointage
dérivée 1 * 1 * Société Personne Pointage /Les pointages 1 * • Correspond à une

/Les pointages

1

*

• Correspond à une association transitive
Correspond à une association transitive

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

118

Associations porteuses d’information * 1 * Commande Article LigneCmde QuantitéCmdée • L’information
Associations porteuses d’information
*
1
*
Commande
Article
LigneCmde
QuantitéCmdée
• L’information portée par l’information est représentée
dans une classe ‘LigneCmde’
• La classe représente un couple (Commande, Article)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
120
Classe association * 1 * Commande Article LigneCmde * * Quantité Récapitulatif Ajout() Suppression() •
Classe association
*
1
*
Commande
Article
LigneCmde
*
*
Quantité
Récapitulatif
Ajout()
Suppression()
• L’association a un comportement et participe à d’autres
associations
• Une ligne de commande peut-elle partagée par plusieurs
commandes ?
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
121
Associations n-aires
Associations n-aires

Relations structurelles entre objets

*

Professeur * Etudiant * Salle

Professeur

*

Etudiant

*

Salle

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

123

Réification
Réification
u v C1 C2 C3 1 v C1 C3 u 1 C2
u
v
C1
C2
C3
1
v
C1
C3
u
1
C2
* 1 * Cmde Article LigneCmde 1 1 * Cmde LigneCmde * 1 Article
*
1
*
Cmde
Article
LigneCmde
1
1
*
Cmde
LigneCmde
*
1
Article

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

122

Agrégation
Agrégation
1 * Ligne Paragraphe
1
*
Ligne
Paragraphe

*

2 * Point Droite
2
*
Point
Droite

Composé – composant

• Interfaçage, coordination des composants

• Propagation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

124

Composition
Composition
1 5 Voiture Roue
1
5
Voiture
Roue
1 * Vol Dossier
1
*
Vol
Dossier
Voiture 5 Roue
Voiture
5
Roue

UML 1.4

Voiture LesRoues[5] : Roue
Voiture
LesRoues[5] : Roue
• Forme forte d’agrégation physique • Le composite joue le rôle d’interface pour les éléments
• Forme forte d’agrégation physique
• Le composite joue le rôle d’interface pour les éléments agrégés
• L’élément agrégé n’est pas partagé par plusieurs composite (0 1)
• L’élément agrégé n’existe pas en dehors du composite
(création/destruction)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

125

Sous-classes X Propriété caractéristique de X Z Y Propriété caractéristique de Z Propriété caractéristique
Sous-classes
X
Propriété caractéristique de X
Z
Y
Propriété caractéristique de Z
Propriété caractéristique de Y
: X
: X
:
X
: X
: : z
: z
Y
:
y
: y
P(x)
: : z
Y
P(y) y
X
z
P(z)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
127
Généralisation
Généralisation
Article Article Textile Luxe Alimentaire Textile Luxe
Article
Article
Textile
Luxe
Alimentaire
Textile
Luxe

•Héritage de propriétés et d’attributs publiques ou protégés

•Extension, Redéfinition

•Héritage/Redéfinition des associations

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

126

Généralisation : discriminant Véhicule « PowerType » Motorisation Milieu VVoile VMoteur VTerrestre VMarin
Généralisation : discriminant
Véhicule
« PowerType »
Motorisation
Milieu
VVoile
VMoteur
VTerrestre
VMarin

Le discriminant (ou powertype) explicite le(s) critère(s) qui ont permis de dériver une spécialisation

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

128

Généralisation
Généralisation
VMarin VAérien VTerrestre Hovercraft Héritage multiple
VMarin
VAérien
VTerrestre
Hovercraft
Héritage multiple

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

129

Collision de noms
Collision de noms
X Y A A Z A de X A de Y
X
Y
A
A
Z
A
de X
A
de Y
T A X Y A de T A de T Z A de T par
T
A
X
Y
A de T
A de T
Z
A
de T par X
A
de T par Y

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

131

Généralisation X Propriété c aractéris tique de X Y Z Propriété carac térist iq ue
Généralisation
X
Propriété c aractéris tique de X
Y
Z
Propriété carac térist iq ue de Y
Propriété caractéristique de Z
T
P(T) ⊇⊇⊇⊇P(Y) ∪P(z)
T
Propriété caractéristique de T
:X
:X
:X
:X
:Z
:Y
:Z
:T
:Y
:Z
P(x)
:Y
X
P(Y)
z
Y
P(z)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
130
Classe abstraite
Classe abstraite
Classe abstraite Le nom des classes abstraites est en italique Classe concrète A Classe concrète
Classe abstraite
Le nom des
classes abstraites
est en italique
Classe concrète A
Classe concrète B
: : z
: z
Y
: y
: y
P(x)
: : z
Y
P(y) y
X
z P(z)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

132

Généralisation
Généralisation
Liste Tableau
Liste
Tableau

<<implémentation>>

Liste Fixe

Liste Fixe ne publie pas l’interface de Tableau, elle s’en sert uniquement pour l’implantation de la liste

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

133

Autres • Port : moyen de communication entre Deux classes indépendamment de leurs technologies d’implantation,
Autres
Port : moyen de communication entre Deux classes
indépendamment de leurs technologies d’implantation, 2
classes si elles ont des ports compatibles pourront
communiquer même si elles sont implantées dans des
langages différents
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
135
Généralisation : Contraintes
Généralisation : Contraintes
Article
Article

{disjoint}

Luxe
Luxe
Alimentaire
Alimentaire
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
: Contraintes Article {disjoint} Luxe Alimentaire Unité Pack Pâtes Conserves {overlapping, incomplete} •
Unité
Unité
Pack Pâtes Conserves
Pack
Pâtes
Conserves

{overlapping, incomplete}

• Overlapping, disjoint, complete, incomplete
Overlapping, disjoint, complete, incomplete

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

134

Covariance Animal B ipède Quadrupède Herbivore Carnivore Herbivore Herbivore Carnivore Anim al Covariance
Covariance
Animal
B ipède
Quadrupède
Herbivore
Carnivore
Herbivore
Herbivore
Carnivore
Anim al
Covariance
Carnivore
Herbivore
Bipède
Quadrupède
Bipède
Quadrupède
Covariance
Covariance
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
136
Délégation
Délégation

• Elimination de la covariance

Animal Station Nourriture Bipède Quadrupède Herbivore Carnivore
Animal
Station
Nourriture
Bipède
Quadrupède
Herbivore
Carnivore

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

137

Principe de substitution (1)
Principe de substitution (1)

• Classification ou non ?

« Il doit être possible de substituer n’importe quel objet instance d’une sous-classe à n’importe quel objet instance d’une super- classe sans que la sémantique du programme écrit dans les termes de la super-classe ne soit affectée. » (Barbara Liskov)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

139

De la difficulté de classer
De la difficulté de classer

Dépendant du point de vue

• Bien discriminer les objets

• Des exceptions

• Stables et extensibles

• Covariance

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

138

Principe de substitution (2)
Principe de substitution (2)
CP :CP :CP :CP :CP :CP :CP :CE CE
CP
:CP
:CP
:CP
:CP
:CP
:CP
:CE
CE

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

140

Non respect du principe de substitution Oiseau Plum es Bec Voler() { Voler() Mettre la
Non respect du principe de substitution
Oiseau
Plum es
Bec
Voler()
{
Voler()
Mettre la tête dans le sable
Le moineau
}
s'envole
M ésange
Moineau
A ut ruche
: Moineau
1: Voler
La mésange
s 'envole
2: Voler
: Sauveteur
: Mésan ge
3: Voler
L'autruche se
cache la tête
: Autruche
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
141
Implantation (2)
Implantation (2)
C1 C2
C1
C2

Class C1 { private:

class C2 { private:

C2 LeC2

}

}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

143

Implantation (1)
Implantation (1)

Class Classe { private:

Public:Class Classe { private: Attributs Méthodes

Attributs

Méthodes

}

Class SousClasse : public Classe {…}} Répertoire

Répertoire} Class SousClasse : public Classe {…}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

142

Implantation (3)
Implantation (3)
 
C1 C2
C1
C2

Class C1 {

class C2 { private:

 

private:

C2

LeC2

C1 LeC1

}

}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

144

Implantation (4)
Implantation (4)
 
0,1 C1 C2
0,1
C1
C2

Class C1 { private:

class C2 { private:

C2

*LeC2

C1 LeC1

}

}

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

145

Implantation • La composition s’implante par une classe interne privée en Java Adel KHALFALLAH -
Implantation
La composition s’implante par une classe interne privée
en Java
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
147
Implantation (5)
Implantation (5)
 
* C1 C2
*
C1
C2
 

Class C1 { private:

class C2 { private:

Collection<C2>

LesC2

C1 LeC1

}

}

ordered

 

unique

structure de données

 

false

 

true

Ensemble

true

 

true

Ensemble ordonné

false

 

false

Multi-ensemble (bag)

true

 

false

Séquence

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

146

Implantation (6)
Implantation (6)
C1 Collection<C2> C2
C1
Collection<C2>
C2

UnType

C1 Collection<C2> C2 UnType Collection

Collection

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

148

Implantation (7)
Implantation (7)

<<persistant>>

<<persistant>>

C1

C2

<<persistant>> C3
<<persistant>>
C3

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

149

Diagramme de structures composites
Diagramme de structures
composites

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

151

Implantation (7)
Implantation (7)

Comme dans E/A :

• C1, C2, C3 Relations

•Associations suivants cardinalités

•Héritage : Reférentiation ou Propagation ou les deux

• Méthodes deviennent des procédures stockées ou des traitements

Plus aucun lien avec l’objet

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

150

Introduction • Permet d’expliciter la structure d’une configuration (classe, composant, collaboration, ) en
Introduction
Permet d’expliciter la structure d’une configuration
(classe, composant, collaboration,
)
en explicitant les
rôles des composants de la structure
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
152
Structure d’une classe V: Voiture :Roue[5] V: Voiture :Injection Une seule imbrication :Moteur :Transmission •
Structure d’une classe
V: Voiture
:Roue[5]
V: Voiture
:Injection
Une seule imbrication
:Moteur
:Transmission
• Le port est un mécanisme d’encapsulation, il définit un
point d’interaction
• Il permet de spécifier les interfaces requises ou offertes
• Un port ‘signal’ spécifie les signaux relayés, un port
‘service’ spécifie des services offerts
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
153
Collaboration et Design patterns • Les Design pattern sont typiquement décrits par des collaborations –
Collaboration et Design patterns
Les Design pattern sont typiquement décrits par des
collaborations
– Un DP introduits des rôles (ensemble de caractéristiques) qui
doivent être joués par des objets
– La combinaison du nom de l’objet, du nom du rôle, du nom de la
classe et du soulignement définit une interprétation spécifique.
Exemples :
‘: UneClasse’ : Une instance anonyme d’une classe
‘: UneClasse’ : N’importe qu’elle instance d’une classe
‘Objet / Role : Classe’ : Un objet de la classe qui joue le rôle
‘/Role’ : Le rôle attendu
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
155
Collaboration (UML 20) Nom collaboration • Une collaboration décrit comment des éléments (attributs, objets,
Collaboration (UML 20)
Nom collaboration
• Une collaboration décrit comment des éléments (attributs,
objets, classes, U.C.,
),
coopèrent pour réaliser un
comportement (U.C., une ou plusieurs opérations,
)
• La structure d’une collaboration est définie par un
diagramme de structures composites, le comportement
est défini par des diagrammes d’interactions
• L’occurrence d’une collaboration est définie par un
diagramme de classe ou une/plusieurs opérations d’une
classe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
154
Collaboration et Design patterns
Collaboration et Design patterns

Collaboration

* /Composant 2 Composite * /Feuille /Composite
*
/Composant 2
Composite
*
/Feuille
/Composite

Occurrence de collaboration

* Réservation 2 Composant Composite Composite Feuille * ResIndividuelle ResGroupe
*
Réservation 2
Composant
Composite
Composite
Feuille
*
ResIndividuelle
ResGroupe

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

156

Implantation (8)
Implantation (8)

SGBDR + Langage Objet

<<persistant>>

C1

C1 ProxyC1 SGBDR
C1
ProxyC1
SGBDR

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

157

Introduction • Le diagramme d’objets est utilisé pour : – Illustrer une situation spécifique –
Introduction
• Le diagramme d’objets est utilisé pour :
– Illustrer une situation spécifique
– Illustrer un diagramme de classes
– Aider à la construction d’un diagramme de classe
– Explorer des structures de données complexes
• Correspond à une ‘vue instantanée’ de l’application
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
159
Diagramme d’objets
Diagramme d’objets

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

158

Objets • Un objet à des attributs (Données ou mémoire), un comportement, une identité et
Objets
• Un objet à des attributs (Données ou mémoire), un
comportement, une identité et des responsabilités
• Exemple : Capteur de la position d’un bras de robot
– Attributs : Valeur linéaire et fréquence de changement (données);
dernière position, dernière fréquence (mémoire)
– Comportements : Enable/Disable, lire, zero, getValue
– Identité : Capteur0
– Responsabilité : fournir de façon précise des informations sur la
position du bras de robot dans un système de coordonnées donné
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
160
Objets
Objets
Capteur0
Capteur0

Position

FreqChgmt

Enable

Disable

Lire

GetPos

GetFreq

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

161

Liens
Liens
C1 : Commande N° : 123
C1 : Commande
N° : 123

A1 : ArticleC1 : Commande N° : 123 A1 : Article • Il y a éventuellement d’autres articles,

A1 : ArticleC1 : Commande N° : 123 A1 : Article • Il y a éventuellement d’autres articles,

• Il y a éventuellement d’autres articles, l’information sur la commande et les articles est éventuellement incomplète

• Association (diagramme de classe) # Lien (diagramme d’objets)
• Association (diagramme de classe) # Lien (diagramme
d’objets)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

163

Objets
Objets
D1 : Disque D2 : Hanoi No = 1
D1 : Disque
D2
: Hanoi
No = 1
• Le nom est souligné
• Le nom est souligné

• Les méthodes n’apparaissent que dans le diagramme des classes

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

162

Liens
Liens
D1:Disque
D1:Disque
• Un objet est toujours implicitement lié à lui même
• Un objet est toujours implicitement lié à lui même

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

164

liens n-aires :Professeur :Elève :Salle
liens n-aires
:Professeur
:Elève
:Salle

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

165

Diagrammes d’interaction : diagrammes de séquences, diagrammes de collaboration et diagrammes de communication
Diagrammes d’interaction :
diagrammes de séquences,
diagrammes de collaboration et
diagrammes de communication

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

167

Composition (UML 1.4) :Voiture :Roue :Roue :Roue :Roue Adel KHALFALLAH - Génie logiciel - Méthodologies
Composition (UML 1.4)
:Voiture
:Roue
:Roue
:Roue
:Roue
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
166
Introduction • Permettent de modéliser le comportement du système • Examinent une petite partie du
Introduction
• Permettent de modéliser le comportement du système
• Examinent une petite partie du système isolée de son
contexte (scénario, opération,
)
• Servent à clarifier, analyser, expliquer un comportement
complexe
• Ne modélisent pas tous les comportements possibles du
système
• Permettent d’analyser le couplage
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
168
Diagramme de séquence • Le diagramme de séquences et le diagramme de collaboration sont très
Diagramme de séquence
• Le diagramme de séquences et le diagramme de
collaboration sont très similaires : ils permettent tous les
deux de décrire des échanges de message entre objets
• Le diagramme de séquences met en avant la dimension
chronologique
• Permettent d’illustrer les scénarios définis pour les cas
d’utilisations, peut être vu comme un déroulement d’un
cas d’utilisation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
169
Diagrammes de séquences (SSD) : Système Ali Salah Décroche Emet ‘La’ *[nbr]Compose chiffre Sonnerie
Diagrammes de séquences (SSD)
: Système
Ali
Salah
Décroche
Emet ‘La’
*[nbr]Compose chiffre
Sonnerie
Décroche
Connexion
Connexion

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

171

Exemple
Exemple
« acteur » :Resp. Plan
« acteur »
:Resp. Plan

« contrôleur » :SelectionnerPlage

« entité » :Plan « entité » :Plage « acteur » SGBD
« entité »
:Plan
« entité »
:Plage
« acteur »
SGBD
Reserver(NoPlage,IdP) GetPlage(NoPlage) return plage Pers=GetPers (idP) Reserver(Pers)
Reserver(NoPlage,IdP)
GetPlage(NoPlage)
return plage
Pers=GetPers (idP)
Reserver(Pers)

Temps

• Les objets ne sont pas nécessairement attachés à des classes • Les messages échangés
Les objets ne sont pas nécessairement attachés à des classes
Les messages échangés correspondent à tous stimulus (appel,
signal, exception,
)
Permet d’explorer les responsabilités respectives

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

170

Diagrammes de séquences Sélecteur : Hanoi : Disque : Disque : Disque (suivant=null) Résoudre() Déplacer(
Diagrammes de séquences
Sélecteur
: Hanoi
: Disque
: Disque
: Disque
(suivant=null)
Résoudre()
Déplacer( )
Déplacer( )
Possession
du contrôle
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
172
Messages et Stimulus • Forme générale: préd / No Itér Cond Resultat:=opération • Un message
Messages et Stimulus
• Forme générale: préd / No Itér Cond Resultat:=opération
• Un message est la spécification d’un stimulus, UML 2.0
ne distingue pas entre message et stimulus
• Un stimulus est défini par: les objets émetteurs et
récepteurs, un lien de communication (sauf pour
l’autoréférence). Il peut invoquer une opération sur l’objet
récepteur, créer ou détruire un objet,
Il est associé à la
procédure qui l’a généré
• Un signal est un message qui n’attend pas de résultat de
la part de l’opération invoquée, une exception est une
forme particulière de signal qui véhicule un objet lors de
sa propagation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
173
Résultats
Résultats
Résultats
Y X
Y
X
Résultat=Msg(Données)
Résultat=Msg(Données)
Y X Msg(Données)
Y
X
Msg(Données)

ou

Résultat

Résultat
• Données prend la forme de paramètres effectifs habituels ou (UML 2.0) de paramètres effectifs
• Données prend la forme de paramètres effectifs habituels ou (UML 2.0) de paramètres effectifs
• Données prend la forme de paramètres effectifs habituels ou (UML
2.0) de paramètres effectifs nommés :
par1 = val1, par2 = val3, par3 = -

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

175

Messages et Stimulus • Message synchrone : l’appelant attend la fin du traitement par le
Messages et Stimulus
• Message synchrone : l’appelant attend la fin du traitement
par le récepteur, il y a un retour (parfois implicite) associé
Message : Retour :
• Message asynchrone : l’appelant n’est pas bloqué par
l’envoi du message, ne peut pas avoir de retour
Message :
(ou UML 1.3
)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
174
Messages X Y
Messages
X
Y

Résoudre()

t

1

{t 2 -t 1 <2s}

t

2

X Y Résoudre() t 1 {t 2 -t 1 <2s} t 2 *[cd] Msg [cd1] Msg
X Y Résoudre() t 1 {t 2 -t 1 <2s} t 2 *[cd] Msg [cd1] Msg

*[cd] Msg

[cd1] Msg

[cd2] Msg

Un message peut être désigné par son N° ou par un nom symbolique, on peut référencer les attributs date émission, date réception

Délai

Itération

Conditionnelle : il est préférable de traiter un chemin à la fois

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

176

Création / Destruction
Création / Destruction
Ou (UML 2.0) X Créer Y Détruire
Ou (UML 2.0)
X
Créer
Y
Détruire
X Y
X
Y

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

177

Contraintes (UML 2.0) « acteur » :Resp. Plan « contrôleur » :SelectionnerPlage « entité »
Contraintes (UML 2.0)
« acteur »
:Resp. Plan
« contrôleur »
:SelectionnerPlage
« entité »
:Plage
Actif
Reserver(NoPlage,IdP)
Reserver(Pers)
{Plage::Réservée}
L’objet ne traitera le message que si la propriété est valide (ici l’objet
est dans l’état actif) ou la propriété devient vraie une fois que le
message est traité (la plage devient réservée)
Un contrainte peut aussi être exprimée sous forme de propriété

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

179

Autoréférence
Autoréférence
X X Msg Message Msg retour Récursivité Auto référence :
X
X
Msg
Message
Msg
retour
Récursivité
Auto référence :

l’opération invoquée est en général privée

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

178

Suspension (UML 2.0)
Suspension (UML 2.0)
« contrôleur » :SelectionnerPlage « entité » :Plage Annuler return OK • Le contrôleur est
« contrôleur »
:SelectionnerPlage
« entité »
:Plage
Annuler
return OK
Le contrôleur est suspendu jusqu’à la fin de l’annulation
(équivalent à message synchrone ?)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

180

Diagramme de collaboration (UML 1.4) • Met en avant la structure (associations) du diagramme des
Diagramme de collaboration (UML 1.4)
• Met en avant la structure (associations) du diagramme
des classes
• permet de valider la structure, d’identifier de nouvelles
associations ou de déterminer les responsabilités
• La chronologie est déduite de la numérotation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
181
Diagramme de collaboration (UML 1.4)
Diagramme de collaboration (UML 1.4)
*[tous]Touver(NoImmatricultion) :sociéte :Employé return Emp
*[tous]Touver(NoImmatricultion)
:sociéte
:Employé
return Emp

:Emp

:sociéte :Employé return Emp :Emp Adel KHALFALLAH - Génie logiciel - Méthodologies de

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

183

Diagramme de collaboration (UML 1.4)
Diagramme de collaboration (UML 1.4)

1: Résoudre()

1.1: Déplacer(1,3 )

1.1.1: Déplacer( 1,2)

: Hanoi : Disque : Disque : Disque
: Hanoi
: Disque
: Disque
: Disque

1.1.2: Déplacer( 2,3)

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

182

Diagramme de communication
Diagramme de communication
1:M(A) O A « Local »
1:M(A)
O
A
« Local »

B

Les liens qui apparaissent dans le diagramme sont soit des instances d’associations soit des liens de visibilité spécifiques au contexte

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

184

Diagramme de communication
Diagramme de communication
:Société :Employé
:Société
:Employé

1:*[Age>40] Augmenter

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

185

Cadre (UML 2.0)
Cadre (UML 2.0)
sd Entête
sd Entête

Corps

• Permet l’imbrication, la réutilisation d’une intéraction, peut aussi être utilisé pour un diagramme de
• Permet l’imbrication, la réutilisation d’une intéraction, peut
aussi être utilisé pour un diagramme de class (cd),
l’entête peut préciser des paramètres

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

187

Diagramme de communication Objet Actif Objet Actif X A.1, B.1 /M3 Y A:M1 U B:M2
Diagramme de communication
Objet Actif
Objet Actif
X
A.1, B.1 /M3
Y
A:M1
U B:M2
Z
T
B.1:…
A.1:…
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
186
Diagramme de machines à états
Diagramme de machines à
états

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

188

Diagramme de machines à états • Inspirés des statecharts de D. Harel et incluent des
Diagramme de machines à états
• Inspirés des statecharts de D. Harel et incluent des
concepts issus des machines de moore et de mealy
• Modélisation des aspects contrôle et temps du système
• Se rapprochent du MCT de MERISE
• Secondaires pour les SI primordiaux pour les STR
• Un (ou plusieurs) diagrammes E/T décrivent le
comportement d’une classe, mais ils peuvent aussi
décrire le comportement d’un U.C, d’un acteur, d’un
sous-système ou d’une méthode
• Un objet fournit un contexte pour l’exécution de la
machine définissant sa classe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
189
Diagramme de machines à états E1 entry/ Action 1 exit/ Action 2 on Ev( Info
Diagramme de machines à états
E1
entry/ Action 1
exit/ Action 2
on Ev( Info )[ Cd ]/ Action 3
do/ Activité
Evnmt( info )[ Garde ] / Action,Objet.Événement
E2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
191
Diagramme de machines à états • Certains systèmes (ou parties de systèmes) sont purement fonctionnels
Diagramme de machines à états
• Certains systèmes (ou parties de systèmes) sont
purement fonctionnels (sans mémoire : fonction sinus)
d’autres ont un mode de fonctionnement continu (sans
états: filtre digital)
• Les machines à états sont utiles pour décrire des
objets/classes exhibant un comportement complexe,
réactif et ayant plusieurs interactions avec
l’environnement.
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
190
État Nom état Nom état Nom état • Abstraction d’un ensemble de valeurs. Exemples: –
État
Nom état
Nom état
Nom état
• Abstraction d’un ensemble de valeurs. Exemples:
– Four : Marche, Arrêt, Chaud, froid, Pile : vide, pleine
– Personne : Active, Au chômage
• Caractérisation d’un comportement. Exemples:
– Pile : Attente, Empilement
– Four : Chauffage
• Durable et stable, le système est observable, il effectue
une activité
• Mémorise un historique. Exemple: Marche
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
192
États • Simple : caractérisé par un invariant (condition sur les attributs ou caractérisation d’un
États
• Simple : caractérisé par un invariant (condition sur les
attributs ou caractérisation d’un comportement qui est
vraie pendant tout le temps que la machine passe dans
cet état)
• Composite : État constitué de plusieurs machines
appartenant à plusieurs régions
• État sous machine : l’état spécifie un point d’entrée et un
point de sortie d’une sous machine réutilisable
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
193
Transitions Marche OuverturePorte()/LumiereOn () • Relie 2 états (non nécessairement distinct) et matérialise un
Transitions
Marche
OuverturePorte()/LumiereOn ()
• Relie 2 états (non nécessairement distinct) et matérialise
un changement d’état possible du système
• Le changement d’état est instantané
• Une transition non étiquetée (transition automatique) est
déclenchée automatiquement à la fin du traitement de son
état source
• Transition interne : Traitement pouvant entraîner une
réponse de la machine mais pas un changement d’état,
traité éventuellement au niveau d’une sous machine
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
195
États Etat initial Etat final • Pseudo-états • Un seul état initial par niveau hiérarchique
États
Etat initial
Etat final
• Pseudo-états
• Un seul état initial par niveau hiérarchique
• 0, 1 ou Plusieurs états finaux par niveaux hiérarchique
• Lorsque un objet est dans un état final il ne réagit plus à
aucun événement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
194
Transitions composites (UML 1.4)
Transitions composites (UML 1.4)
• Regroupent des gardes alternatives pour un événement
Regroupent des gardes alternatives pour un événement
Lecture Envoi Copier Trier
Lecture
Envoi
Copier
Trier

[NbrElem = 1]

[NbrElem > 1]

Carrefour Arrêter Traverser
Carrefour
Arrêter
Traverser

[Feu = Rouge]

Changement(Feu)

[Feu = Vert]

Jonction statique

Jonction dynamique

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

196

Triggers (Événements UML 1.4) Empilement(val:ent) Vide Occupée • Un événement est associé à une transition,
Triggers (Événements UML 1.4)
Empilement(val:ent)
Vide
Occupée
• Un événement est associé à une transition, son émetteur
n’est pas spécifié, le traitement de l’événement est lié à
l’état courant
• Occurrence d’une situation dans le domaine du problème
• Instantané et porteur d’informations :
NomTrigger(par 1 : type 1 ,…par n : type n )
• Peut correspondre à un message du diagramme de
séquences
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
197
Types de triggers • Trigger <<signal>>: provoque une réaction asynchrone sans réponse – Peut
Types de triggers
Trigger <<signal>>: provoque une réaction asynchrone
sans réponse
– Peut correspondre à une classe, l’information portée fait alors
partie de l’état. Les exceptions sont des signaux
– Les événements <<signal>> peuvent être organisés en
hiérarchies de classe ⇒ transitions polymorphes
<<signal>>
Entrée Util.
<<signal>>
<<signal>>
Click souris
Entrée Clavier
Où : point
Caractère
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
199
Types de triggers Allumage() après(3s) Arrêt Marche Demande Serv. occupé • Appel : appel
Types de triggers
Allumage()
après(3s)
Arrêt
Marche
Demande
Serv. occupé
• Appel : appel d’opération(message du D.S.). Stéréotypes:
<<Crée>> et <<Détruit>>. La création provoque la
transition initiale
• La détection d’une situation particulière dans
l’environnement
– Une certaine condition devient vraie : Persiste lorsque
l’expression redevient fausse. Syntaxe : quand (Expression
booléenne)
– Temporel : écoulement d’un instant temporel relatif ou absolu.
Syntaxe : après (x secondes) : x secondes après l’accès à l’état
courant. après (x secondes à partir de y). quand (date= un
instant)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
198
Garde • Expression booléenne qui conditionne le déclenchement d’une transition. La transition est franchie
Garde
• Expression booléenne qui conditionne le
déclenchement d’une transition. La transition est
franchie lorsque son événement se produit et que
sa garde est vraie
• Lève l’indéterminisme
• [Expression 1 ] par rapport à quand(Expression 2 )
– Expression 1 est évaluée à chaque fois que
l’événement se produit, Un événement est déclenché à
chaque fois que expression 2 devient vraie
– Lorsque Expression 1 est fausse l’événement est perdu
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
200
Actions traitement atomique instantané (ininterruptible – run-to- completion semantic) pouvant manipuler l’état,
Actions
traitement atomique instantané (ininterruptible – run-to-
completion semantic) pouvant manipuler l’état, étiquetant
une transition (Génération de signaux, création
d’objet,appel de méthodes, manipulation de propriétés ou
de liens,…) ,
HausseT°(t)/EteindreBruleur()
Evnt(info) / A
Chaud
Surchauffe
…/A1
E
…/A1
…/A1
E
⇔⇔⇔⇔
Entry/ A1
…/A2
…/A2
Exit/ A2
…/A2
Evnmt(info) / A
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
201
⇔⇔⇔⇔
Activités • Traitement associé à un état et ayant une durée • Lorsque le traitement
Activités
• Traitement associé à un état et ayant une durée
• Lorsque le traitement n’est pas terminé et qu’un
événement validant une transition se produit, il est
interrompu
• Lorsque le traitement se termine sans occurrence
d’événements, le système reste en attente dans l’état.
• Lorsque la transition n’est pas étiqueté le système quitte
l’état à la fin du traitement
• Ne peuvent pas changer l’état de l’objet concerné par la
machine
Do Activité
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
203
Actions • Action Deffered – Permet de différer le traitement d’un événement Etat1 e1 e2
Actions
Action Deffered
Permet de différer le traitement d’un événement
Etat1
e1
e2
Etat2
Etat3
e2 /deffered
e3
•Lorsque la séquence e2,e1 se produit le système se
retrouve dans l’état 3 (en passant par l’état 2)
•Lorsque la séquence e2,e3 se produit e2 est perdu
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
202
Liens avec le diagramme de séquences
Liens avec le diagramme de séquences
X
X
Msg1
Msg1

Etat

Msg2

Événement

• Diagramme de séquence peut se voir comme un chemin dans un diagramme état/transition
• Diagramme de séquence peut se voir comme un chemin
dans un diagramme état/transition

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

204

Liens avec le diagramme de séquences : Système Ali Attente Décroche Décroche Emet ‘La’ Tonalité
Liens avec le diagramme de séquences
: Système
Ali
Attente
Décroche
Décroche
Emet ‘La’
Tonalité
Compose
*[nbr]Compose chiffre
Composition
Compose
Recherche
Connexion
Communication
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
205
États composites • Un état peut se décomposer en sous états disjoints (ou) à leurs
États composites
• Un état peut se décomposer en sous états disjoints (ou) à
leurs tours décomposables
• À tout moment le système est dans un seul état
Etat composite
E1
E1
E2
E2
⇔⇔⇔⇔
E5
E5
E3
E4
E3
E4
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
207
Exemple
Exemple

Affecter(Periode) [Periode Contraintes]

Affecter[Période Contraintes]

Affectation Contrainte
Affectation
Contrainte

Désaffecter(Periode) [Période Contraintes]

Désaffecter

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

206

Etat souche • permet d’abstraire un sous-état source ou destination • Les actions d’entrée sont
Etat souche
• permet d’abstraire un sous-état source ou destination
• Les actions d’entrée sont exécutées séquentiellement du
niveau hiérarchique le plus élevé au plus faible et
inversement pour les actions de sortie
• Les transitions automatiques sont franchies lorsque le
sous diagrammes atteint un état final
SM1
SM2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
208
Example Régalage Minutes Réglage H Appui B2 Clignot. M B1 Attente DO Clignoter Relache B2/Min=Min+1
Example
Régalage Minutes
Réglage H
Appui B2
Clignot. M
B1
Attente
DO Clignoter
Relache B2/Min=Min+1
Minutes
B1
Relâche B2
Défilement
Affichage
B1
Délai
DO Affiche
DO Inc. Min
Tous les 0.1 s
Heure/Min/Sec
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
209
Forme conjonctive et forme disjonctive • Une décomposition conjonctive peut être transformée en décomposition
Forme conjonctive et forme disjonctive
Une décomposition conjonctive peut être transformée en
décomposition disjonctive
X e1 A e3 Y e1 e4[in state Z] e2 B Z
X
e1
A
e3
Y
e1
e4[in state Z]
e2
B
Z
e1 Z,A Z,B e4 e3 e3 X,B X,A e1 e1 Y,B e2
e1
Z,A
Z,B
e4
e3
e3
X,B
X,A
e1
e1
Y,B
e2

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

211

Concurrence • décomposition conjonctive (et), les sous-états sont groupés en régions • Le système est
Concurrence
• décomposition conjonctive (et), les sous-états sont groupés en régions
• Le système est dans plusieurs sous-état simultanément
• une garde peut prendre la forme [in state X] (synchronisation)
• L’entrée dans un état conjonctif correspond à l’entrée vers tous les états
initiaux, la sortie fait sortir de toutes les régions
• Les transitions automatiques sont franchies lorsque les sous diagrammes
des différentes régions ont atteint un état final
A
B
C
U
V
W
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -
210
Diagrammes Etats / Transitions
Diagrammes Etats / Transitions
• Transitions entre états concurrents
Transitions entre états concurrents
/ Transitions • Transitions entre états concurrents Adel KHALFALLAH - Génie logiciel - Méthodologies de

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

212

Diagrammes Etats / Transitions • Etat historique : permet de mémoriser le dernier sous état
Diagrammes Etats / Transitions
Etat historique : permet de mémoriser le dernier sous état visité.
L’entrée dans un état ne se fait pas au niveau de l’état initial mais du
dernier état visité lors d’une entrée précédente.
du dernier état visité lors d’une entrée précédente. H • La transition de H vers un

H

La transition de H vers un état permet de préciser l’état d’entrée si H n’est pas initialisé (première visite) •H* : mémorisation pour tous

les sous niveaux

Porte ouverte Lavage Rinçage Séchage Attente H Porte fermée
Porte ouverte
Lavage
Rinçage
Séchage
Attente
H
Porte fermée

Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique -

213