Académique Documents
Professionnel Documents
Culture Documents
Adel KHALFALLAH
Institut Supérieur d’Informatique
Adel.Khalfallah@fst.rnu.tn
Adel_Khalfallah@yahoo.fr
Introduction
1
Historique
• Années 30-40 : Programmeur = Utilisateur; Problèmes
bien définis
Historique
Décennie Matériel Logiciel
40-50 Coûteux et spécialisé Binaire, code machine
50-60 Règne d’IBM, Assembleur
Recherche Scientifique
60-70 Mainframe, IBM 1401 COBOL, FORTRAN, Compilateurs
70-80 Intel, Apple, TRS-80, C, Smalltalk, BASIC, Pascal, Unix
DEC PDP
80-90 IBM PC, Macintosh DOS, dBase, Lotus 1-2-3, GUI
90-00 Laptop, Palm, PC Windows, OS/2, Java, C++, Visual
Servers Basic, Linux, Web, ASP, Perl
00-07 Pocket PC, Mobile, Web services, C#, Microsoft .NET
Tablet PC
2
Des chiffres
• Système de réservation de KLM 2 Millions de LOC
(assembleur)
• UNIX System V +X11+XNews 3 700 000 LOC (source)
• Space Shuttle 40 Millions LOC (objet)
Définitions
• Parnas
« Développement en équipe de logiciels multi-versions »
• NATO
« La définition et l’utilisation de principes d’ingénierie
cohérents afin d’obtenir du logiciel à coût bas, fiable et
efficace sur les machines existantes
• IEEE
« Le génie logiciel est l’approche systématique du
développement, de l’exploitation, de la maintenance et du
retrait du logiciel »
3
Concepts de base
• Le génie logiciel s’intéresse à
– des projets : les activités effectives qui se déroule pour aboutir à
un logiciel fini
– des produits : les différents artefacts (modèles, composants,
documentations, code source,...) fabriqués au cours d’un projet
– des personnes : l’organisation des équipes, de leurs
collaborations; exécutent le projet
– des processus : la façon avec laquelle le logiciel est fabriqué;
contrôlent le projet
4
Modèles du cycle de vie
5
Modèle en cascade (Waterfall model)
Etude de faisabilité
Conception architecturale
et détaillée
Mise en exploitation et
Maintenance
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
6
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
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
7
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,...
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
8
Modèle par prototypage
Collecte et analyse
des besoins
Conception
simplifié
Raffinement de Construction
la conception et du prototype
du prototype
9
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
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
10
Modèle en spirale
Déterminer Evaluer alternatives
objectifs Ident. et résoudre
alternatives Analyse risques
contraintes risques
Analyse
risques
Analyse
risques Proto
Proto 3 Opérationnel
Analyse Proto 2
risques Proto 1
Revue
Plan A. Besoins Simulation, modèles bancs d’essais
Plan CV Faisabilité
Spéc.
Plan Besoins
Validation
développement Conception Conc.
Spécification
détaillée
Plan intégration Validation
Codage
Planifier et test Conception
Intégration
Test Développer
Unitaire vérifier produit
et test
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
11
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
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
12
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
Temps
13
Disciplines et modèles
Besoins Modèle
Use Case
Analyse Modèle
D’Analyse
Implantation Modèle
D’impl.
Modèle
Test
De Test
Autres disciplines
• Modélisation de l’existant
• Gestion des configurations
• Gestion du projet
• Définition de l’environnement de développement
14
Phases et Itérations
Inception Elaboration Construction Transition
Itérations et disciplines
Inception Elaboration Construction Transition
Besoins
Une itération
Analyse
Conception
Implantation
Test
15
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
Itérations et disciplines
Workflows de support
• Gestion de projet
• Environnement développement
16
Itérations et disciplines
A chaque itération :
• Evaluation de l’itération précédente
• Gestion des risques
• Planification de l’itération suivante
17
Spécificités
• RUP n’est pas cascade car:
• Rien n’est figé
• Toutes les disciplines à chaque itération
• Noyau architectural développé et fourni au client dés les
premières itérations
Inception (Pré-étude)
Analyse des
Effort besoins
et spécifications
Conception Gestion de
Projet Environnement
Modél. Implantation
Existant Test
Discipline
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 36
18
Inception (Pré-étude)
Objectifs
• Développer une vision globale du produit
• Accorder les points de vue des différents partenaires
• Montrer la faisabilité technique
• Fournir des critères de décision pour décider de l’intérêt
du projet
Artefacts
Principaux
• Document «Vision »
• Dictionnaire de données
• Modèle Use Case
• Document : spécification supplémentaires
• Plan de phase
• Plan de l’itération suivante
19
Artefacts
Secondaires
• Modèle U.C. de l’existant (« Business case »)
• Liste des risques
• Prototypes de preuves de faisabilités
• Prototypes de l’interface
• Recommandations Développement/Achat
• Liste des outils
Vision
• Historique des révisions
• Positionnement
– Opportunité : Justification en termes du marché
– Expression du problème: Description du problème à résoudre
– Positionnement du produit: Public concerné, Caractéristiques
majeures, Plus par rapport aux compétiteurs
• Description des interlocuteurs
– Statistiques du marché
– Interlocuteurs (non utilisateurs)
– Interlocuteurs (Utilisateurs)
20
Vision
• Description des interlocuteurs (Suite)
– Objectifs Principaux et problèmes des non utilisateurs
But abstrait Priorité Problèmes et préoccupations Solutions actuelles
– Objectifs par utilisateur
Utilisateur Objectif Priorité Effort Risque
– Environnement Utilisateurs
• Vue d’ensemble du produit
– Perspective (lieux, matériels, collaborations)
– Résumé des apports
Caractéristique Apport aux interlocuteurs
– Hypothèses et dépendances
Vision
• Vue d’ensemble du produit (Suite)
– Coûts et Prix
– Licences et installations
• Résumé des caractéristiques du système
• Autres besoins et contraintes
Conception, usabilité, fiabilité, performance,documentation,…
21
Spécifications supplémentaires
• Historique des révisions
• Introduction
• Fonctionnalités
– Log et gestion des erreurs
– Sécurité
• Usabilité
– Facteurs Humains
– Autres facteurs
• Fiabilité
– Récupération des crash
– …
Spécifications supplémentaires
• Performances
• Maintenabilité
– Adaptabilité : Introduction de nouvelles règles de gestion
– Configurabilité
• Contraintes d’implantation
• Composants achetés
• Composants Open Source
• Interfaces
– Hardware
– Software
22
Spécifications supplémentaires
• Règles de gestion
No Règle StabilitéSource
• Questions juridiques
• Informations supplémentaires sur le domaine
Dictionnaire de données
Terme Définition et Informations Synonymes
Définition et informations
– Format
– Domaines
– Unités
– Termes composés
– Règles de validations
23
Modèle U. C.
• Forme d’un U. C.
– Bref : énumération des objectifs
– Résumé :
• Un paragraphe décrivant le déroulement aboutissant au
succès (l’objectif principal est atteint).
• 2 ou 3 variations majeurs
– Détaillé : Acteurs, Pré/post, variations,…
Modèle U. C.
Proposition de D.U.C. Stabilisation de D.U.C. Réalisés
U.C.
Décrits
Découverts
Construction
Inception Elaboration Itérations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 48
24
Planification modèle des U.C.
• Semaine 1 : 2 Jours workshop (Inception It. 1)
– Majorités des U.C. identifiés par leurs nom et résumés
– 10 % (les plus importants) détaillés
– 10 % des 10% réalisés
• Semaine 5 : 2 Jours workshop (Elaboration It. 1)
– 10% des 10% réalisés
– Feedback de l’implantation
– 30 % Détaillés
• Semaine 9 : 2 Jours workshop (Elaboration It. 2)
– 10% des 30% réalisés
– Feedback de l’implantation
– 50 % détaillés
25
Développement Agile
Approche Agile Lien Web
eXtreme Programming
Exploration
Planning
Itérations
Production
Maintenance
26
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
Itération
Choix des Estimer les durées Tester et
utilisations et établir les priorité Construire
Release
27
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
Intégrer
28
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
C++ http://www.xprogramming.com/ftp/TestingFramewo
rk/CppUnit/CppUnit15.zip
Delphi http://dunit.sourceforge.net/
Eiffel http://w3.one.net/ jweirich/software/eiffelunit/
Haskell http://hunit.sourceforge.net/
HTML http://sourceforge.net/projects/htmlunit
Java http://www.junit.org/
JavaScript http://www.jsunit.net/
Oracle http://oracle.oreilly.com/utplsql/
Visual Basic http://tiniunit.sourceforge.net/
29
XP : JUnit
• Un jeu de Test se matérialise par une sous classe de
junit.framework.TestCase
• La méthode setUp() assure l’initialisation
• Les tests correspondent à des méthodes nommées
testXxxx
• La méthode tearDown() permet de libérer d’éventuelles
ressources aprés l’éxécution des tests
Modélisation du processus
logiciel
30
Introduction
• Un logiciel est le résultat d’un procédé de développement
• La qualité du logiciel est liée étroitement au PDL
• Améliorer la qualité requière l’analyse du PDL
• L’analyse du PDL requière sa modélisation
• Un modèle de PDL est une représentation purement
descriptive du PDL. Un MPDL doit permettre de
représenter les attributs d’un ensemble de PDL et être
suffisamment spécifique pour permettre de raisonner à
leur propos
• La recherche sur la modélisation du PDL date de 1984
31
Langages pour la modélisation du PDL
• Modélisation déclarative : le MPDL est décrit sous la
forme de règles Pré/Action/Post. Permet la prise
d’initiative : lorsque une pré devient vraie l’action est
déclenchée et permet la génération de plan pour atteindre
une post vue comme un but. Marvel, Merlin
• Modélisation basée sur les diagrammes états/transitions :
La dimension contrôle prime. Utilisation de réseaux de
Petri de haut niveaux: les jetons sont typés et peuvent
persister. FUNSOFT Nets
• Modélisation multi-paradigme
• Prototypes : SPADE, Inscape, Arcadia, Oikos, APEL,
ALF, ESF, Melmac,...
Business process
• En parallèle la modélisation des activités de l’entreprise
ont conduit à la gestion de workflows
• Les workflows sont utilisés pour décrire les MPDL
• ‘L’éxécutabilté’ du MPDL n’est pas encore atteinte et ne
sera pas atteinte rapidement
• L’approche MDA a déplacé la focalisation sur les produits
32
le workflow ‘Requirements’ dans RUP
Manage changing
requirements
[incorrect pbm]
[can’t do
[adressing correct pbm]
all the work]
Manage scope
Define system
of system [work in scope]
[More iterations]
Refine system
definition
[Requirements definition complete]
CMM
• CMM : Capability Maturity Model
• Cadre pour l’évaluation de la maturité du procédé de
développement
• 5 niveaux de maturité :
– Niveau 1 – Initial: le procédé est ad hoc ou chaotique. Peu
d’éléments du procédé sont définis et le succès dépend de
l’initiative des développeurs
– Niveau 2 – Répétable : Les coûts, délais et fonctionnalités sont
suivies par le management. Il existe une discipline qui permet de
répéter des activités similaires avec succès d’un projet à l’autre
– Niveau 3 – Défini : Aussi bien les activités d’ingénieries que les
activités de management sont documentées, standardisées et
intégrées au procédé global de l’entreprise. Il existe un procédé
bien défini
33
CMM
– Niveau 4 – Géré : Un ensemble détaillés de mesure sur le
processus et les produits sont collectées. Ces mesures sont
utilisées pour comprendre et contrôler le procédé et les produits
– Niveau 5 – Optimisé : Le processus est amélioré de façon
continue grâce à l’exploitation des données collectées et
l’expérimentation d’idées ou de technologies innovantes
• Chaque niveau est associé à des domaines de procédé
clé (KPA : Key process Area).
• En tout 80 KPA. Chaque KPA est défini par:
– Les objectifs que le KPA doit atteindre
– Les obligations auxquelles doit s’astreindre l’organisation pour
atteindre les objectifs
CMM
– Les aptitudes qui doivent être mises en place pour atteindre les
objectifs
– Les activités qui doivent être faite pour atteindre les objectifs
– Les méthodes à mettre en place pour le suivi de la mise en œuvre
– Les méthodes à mettre en place pour vérifier la réalisation
34
CMM
• Exemple KPA : Gestion des configuration
– But : Établir et maintenir l’intégrité des produits en s’appuyant sur
des identités de configuration, du contrôle des configurations,
l’historique des statuts de configuration et sur l’audit des
configurations
– Obligations : Définir une stratégie organisationnelle pour la
planification et la mise en place du procédé de gestion des
configurations
– Aptitudes : Définir le plan pour la réalisation de la GC, Fournir les
ressources, Assigner les responsabilités, Former les participants
35
Méthodes et méthodologies
Préliminaires : Modélisation
Analyse des besoins et Spécification
Comprendre le système et définir ses attendus : LE
QUOI
Codage et Test
Choix techniques de bas niveau : LA REALISATION
36
Modélisation
• Vue fonctionnelle
• Vue comportementale
• Vue structurelle
• Approche transversale : modélisation objet
• Langage de Modélisation
• Démarche
37
Structure de méthodes : Modélisation
Formelle
Ax2+Bx+C
A,B,C, x [-,+]
Sémantique
Informelle
Association: Lien
structurel entre …
Concepts
Textuelle
Z=F(x,y)
Notations
Graphique
38
Structure de méthodes : Démarche
Démarche : Les étapes et leur séquencements
39
Le Langage de Modélisation
UML
Adel KHALFALLAH
Institut Supérieur d’Informatique – El Manar
Adel.Khalfallah@fst.rnu.tn
Adel_Khalfallah@yahoo.fr
Introduction
40
UML : Historique
Août 02
OMT UML UML
(Rumbaugh) 1.4 2.0
OOSE
(Jacobson)
Catalysis ROOM etc.
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
41
UML : Un synopsis
– Diagramme de gestion des modèles : diagramme de paquetages
42
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
Retirer de l ’argent
Client
Déposer de l ’argent
Administrateur
Maintenir le distributeur
43
Use case : Les concepts
Acteur Cas
m d'utilisation
n
Acteur
Limites du système
44
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
45
Relation Include
« include »
C1 C2
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
46
Exemple Include
« include »
« include »
Recouvrement
Passer Commande Facturation
Exemple Include
« include » « include »
Vérifier abonnement
Emprunter un livre
Consulter prêts
47
Relation Extend
Extension points
« extend »
ext 1
Extension
ext 2 C2
Condition
… …
Extension point
Base C1 ext 1
Relation Extend
Condition 1
Condition 2 C1
C2
48
Relation Extend
C1
C2
Exemple : Extend
Passer Commande
Resaisir
Réapprovisonner
« extend » « extend »
Condition Condition
Client inexistant qté sous seuil
Extension point Extension point
Resaisir Réapprovisonner
49
Example : Extend
• Passer commande
1. Entrer le nom et le numéro de compte
2. Vérifier qu’ils sont valides
Extension: itérer la saisie si client inexistant
3. Saisir l’article commandé et la quantité
4. Vérifier la quantité en stock
Extension : réapprovisionner si la quantité en stock n’est pas
suffisante
5. Enregistrer la commande
Example : Extend
Condition
Livre réservé
Retour livre Extension point
…
« extend » « extend »
Enregistrer livre
Condition
Livre réservé
Extension point
…
Traiter réservation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 100
50
Relation Extend
• Extend peut être utilisée pour séparer des points de vue
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 - 101
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 - 102
51
Transitivité, Acteurs et Include
Facturation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 103
C1 C3
« extend »
« include » ?
C2
C1 C3
« extend »
« extend » ?
C2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 104
52
Extend et include
• Inclusion versus extension
U.C. base incomplet U.C. base complet
U.C. Inclut ne dépend pas de la base U.C. ext. Dépend de la base
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 105
« include »
Modifier fond Vérifier droits
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 106
53
Recherche
Recherche Recherche
« extend » « extend »
« include »
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 107
Login/Logout
« include »
Traitement Login/Logout
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 108
54
Use case et généralisation
Valider utilisateur
Protocole de transport
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 109
Réapprovisionner
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 110
55
Use case et généralisation
Vérifier utilisateur
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 111
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 112
56
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 Etats/transitions
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 113
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 114
57
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 - 115
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 116
58
Modèle de la description textuelle
• Besoins d’IHM
Expression de contraintes liées à l’interface
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 117
Règles de gestion
• Exemple : Une commande contient au moins un article,
un commande urgente est une commande passée le jour
j et qui doit être livrée le jour j+1
• Chaque règle de gestion doit être identifiée de façon
unique
• Les règles de gestion se réfèrent au domaine et ne sont
pas nécessairement automatisable
• Les R.G de gestion sont référencés à partir de différents
U.C. et éventuellement par plusieurs systèmes, leurs
pérennité doit être assurée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 118
59
Construction des cas d’utilisation
Identifier Acteurs
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 119
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 120
60
Erreurs usuelles
« include »
Déterminer marges
« include »
Saisir Commande
« include »
Vendeur
« include » Créer ligne commande
Créer Commande
Editer client
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 121
Erreurs usuelles
• La relation « include » cantonnée à une décomposition
fonctionnelle : aucune factorisation n’est présentée
• Le niveau de granularité n’est pas uniforme rester à
un niveau de discours équilibré: ni trop général ni trop
spécifique, ne pas rechercher l’exhaustivité
• Créer ligne de commande correspond au COMMENT de
la création de commande
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 122
61
Erreurs usuelles
<<include>>
Saisir Commande
<<include>>
Vendeur
Chercher Client
Consulter Client
<<include>>
Editer client
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 123
Erreurs usuelles
1. Afficher la liste des clients à partir de la base de
données centralisées
2. L’acteur choisit un de ces clients.
3. Le système présente l’écran de saisie de commandes
4. Tant qu’il reste des articles pour cette commande
l’acteur entre la clé de l’article et la quantité
5. Le système met à jour le total courant
Fin Tant que
6. Valider la commande
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 124
62
Erreurs usuelles
• Les cas d’utilisations correspondent à descriptions de
haut niveau orientées utilisateurs
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 125
Erreurs usuelles
1. Le vendeur sélectionne un client
2. Le système guide le vendeur dans la saisie des détails
de la commande (références des articles et quantités
commandées) il calcule au fur et à mesure le total de la
commande.
3. Lorsque le vendeur à terminé la commande, il la valide
et le système l’enregistre
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 126
63
Erreurs usuelles
Mémoriser
réveil
client
Réveiller client
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 127
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 128
64
Gestion des Surveillances
Quelles sont les fonctions majeures du système ?
« include »
Administrateur
Maintenance des informations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 129
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 130
65
Gestion des Surveillances
• Connexion cas d’utilisation ?
• Dans ce contexte: oui
• Système : non
• Tous les utilisateurs peuvent consulter les plans mais cela requiert une
connexion préalable :
<<include>>
Connexion
Consultation Plan
Enseignant
Administrateur
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 131
Resp. Personnel
Administrateur Resp. Plan Enseignant
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 132
66
Gestion des Surveillances
L’utilisateur dispose
d’une fonction de
Consultation Plan
connexion
OU ?
Connexion
Utilisateur Consultation ciblée
Resp. Personnel
Resp. Plan Enseignant
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 133
Modification de plan
Gestion des plans
<<extend>>
Resp. Plan
Connexion
Création de plan
Consultation de plan
Utilisateur
Consultation ciblée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 134
67
Gestion des Surveillances
• Définir les informations de base (cour, semaine,…) est en
soi une gestion de plan
• Créer le plan, le modifier, le supprimer sont des additions
à la gestion de plan
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 135
Création de plan
Resp. Plan
Gestion des plans
Connexion
Consultation de plan
Utilisateur
Consultation ciblée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 136
68
Gestion des Surveillances
• La gestion de plan est abstraite, elle spécifie la définition
des informations de base (cour, semaine,…) puis un
traitement abstrait sur ces informations de base
• Créer le plan, le modifier, le supprimer,… héritent de la
définition des informations de base et implantent chacun
un traitement spécifique de ces informations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 137
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 138
69
Gestion des surveillances
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 139
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 140
70
Gestion des surveillances
• Préconditions :
1. Il n’existe pas déjà un plan pour la même cour et la même semaine
2. Le responsable plan s’est authentifié au travers de la procédure de
connexion
• Enchaînements :
Ce cas d’utilisation commence lorsque le responsable plan demande la création
d’un nouveau plan au système.
1 – Affectation d’un enseignant à une plage horaire : le responsable plan choisit un
enseignant dans une liste des enseignants triées par ordre de nombre de
surveillances croissant. Ensuite, il choisit une plage horaire, le système visualise les
initiales de l’enseignant dans la plage et met à jour l’ordre de la liste des
enseignants ainsi que les statistiques de l’enseignant. Lorsque l’enseignant ne peut
pas assurer la surveillance soit parce qu’il a une contrainte soit parce qu’il a atteint
son nombre de surveillances maximum soit parce qu’il est affecté à une autre
surveillance durant la même plage horaire il faut exécuter l’extension : violation de
contrainte.
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 141
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 142
71
Gestion des surveillances
• Enchaînements (Suite):
4 – Annulation de plan : A tout moment le responsable de plan peut annuler les
modifications qu’il a effectué, il se retrouve alors avec un plan vide. Les statistiques
des enseignants ainsi que leur ordre dans la liste sont mis à jour en conséquence
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 143
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 144
72
Gestion des surveillances
<<extend>>
Modification de plan
Resp. Plan <<include>>
Gestion des plans
Connexion <<extend>>
<<include>>Edition de Plan
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 145
CUD Plan
Édition plan
<<include>>
Resp. Plan
Utilisateur
Consultation ciblée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 146
73
Stéréotypes issus des Business Process
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 147
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 148
74
Quelques heuristiques finales
• Un Use Case par Processus métier
• Processus métier : processus du domaine fournissant une
valeur ajoutée notable pour le métier
– Exemples : Créer des commandes , effectuer des livraisons
– Contre exemple : se connecter
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 149
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 150
75
Diagramme d’activités
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 151
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 - 152
76
Diagramme d’activité : Exemple
Transition
Départ
Recevoir commande
Activité
Fork
[prioritaire] [ordinaire]
Expédition Expédition
Garde Rapid poste Colis postal Encaisser paiement
Point de Join
jonction
Clôturer commande
Fin
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 153
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 - 154
77
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 - 155
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 156
78
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 - 157
DA : Représentation graphique
Gestion de plan
Connecteur
Afficher les cancel
A
Choix + Plans existants
Préparer Encaisser
articles paiement jonction [Recommencer]
fork + join [Nouveau] [Existant]
A
Créer plan Lire plan
Confirmation
Editer plan Enregistrer
save
[Non] [Terminer]
Livrer Réapprovisionner
Evénement
[Oui]
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 158
79
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 - 159
DA : Représentation graphique
Commande B. de livraison
Afficher les Input pin Traiter
Plans existants Commande Output pin
Set of Plan Ensemble B. L.
d’objets Commande
Traiter
{read}
Livrer
Commande {create}
Créer plan Lire plan
OU
Flot
d’objet B. de livraison
Nouveau Plan Traiter
plan {create} {read} Livrer
Commande
Objet OU
Objet exception Traiter B. De
Livrer
Commande {create} Livraison {read}
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 160
80
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 - 161
DA : Représentation graphique
commande
Gestion des
commandes web
<<Central buffer>> Gestion
Commande des B.L
Gestion des
Commandes
magasin commande
Ou
(Comptable)
Magasinier
Facture
Comptable
Gestion Encaisser
Facture
Facture Paiement (Comptable)
Encaisser
Paiement
Partition
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 162
81
DA : Représentation graphique
Partition
Sous partition Sous partition
…
… …
Fin de flot
ou
Partition::Sous partition
Action
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 163
DA : Représentation graphique
Seconde perspective
Tunis Sousse
Magasinier
<<class>>
Gestion Encaisser
Facture
Facture Paiement
Payer
Client
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 164
82
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 - 165
Diagramme de classes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 166
83
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 - 167
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 - 168
84
Classes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 169
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 170
85
Classes
• D’autres compartiments peuvent être ajoutés
Nom
Attributs
Opérations
Exceptions
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 171
Classe contrôleur
État très simple
régit le comportement de son entourage
« Entité »
Nom_classel
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 172
86
Classes
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 173
Classes
X
Propriété caractéristique de X
:X :X P(x)
:X
:X :X :X :X
:X :X
:X :X
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 174
87
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 - 175
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 - 176
88
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 - 177
classes d’interface
« Interface »
Nom Interface Nom Interface
Nom Interface
Client Implantation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 178
89
Associations
Relations structurelles entre objets
Association binaire
Emploie
Société Personne
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 179
Association : Rôle
Employeur Employés
Société Personne
Père de
Personne
Fils de
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 180
90
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
Souris Clavier
+Gest : Souris
Fenêtre Gestionnaire
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 181
Association : Cardinalités
1..*
Société Personne
• 0..1
• M..N Combien d’occurrences de
• * 0..N personne peuvent être
• V1, V2, V3 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 - 182
91
Associations : contraintes sur les cardinalités
1..*
Hiérarchie Grade
{ordred}
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 183
Association : Qualificateur
*
Société Directeur : bool Personne
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 184
92
Association : Contraintes
Organise
Personne Concours
{xor}
Participe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 185
Association dérivée
1..* 1..*
Société Personne Pointage
1..*
/Les pointages
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 186
93
Association : Navigation
Société Personne
Société x Personne
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 187
* 1..*
Commande Article
LigneCmde
QuantitéCmdée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 188
94
Classe association
* 1..*
Commande Article
LigneCmde *
Quantité * Récapitulatif
Ajout()
Suppression()
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 189
Réification
u v * 1..*
C1 C2 Cmde Article
C3
LigneCmde
1 1..*
1 v Cmde LigneCmde
C1 C3
*
u
1 1
C2 Article
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 190
95
Associations n-aires
* *
Professeur Etudiant
Salle
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 191
Agrégation
1 *
Paragraphe Ligne
* 2..*
Droite Point
• Composé – composant
• Interfaçage, coordination des composants
• Propagation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 192
96
Composition
1 5 1..*
Voiture Roue Vol Dossier
Voiture Voiture
LesRoues[5] : Roue
5 UML 1.4
Roue
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 193
Généralisation
Article Article
97
Sous-classes
X
Propriété caractéristique de X
Y Z
Propriété caractéristique de Y Propriété caractéristique de Z
:X :X
:X
:X :Y :z :z
:y
:Y
:y
:z
P(x)
P(y) y z P(z)
X
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 195
Généralisation : discriminant
« PowerType » Véhicule
Motorisation
Milieu
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 196
98
Généralisation
Hovercraft
Héritage multiple
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 197
Généralisation
X
P ropriété caractéristique de X
Y Z
Propr iété cara ctérist iq ue de Y Propriété caractéristique de Z
:X
:X :X
:X :Y :Z :Z
:Y :T
:Y
:Z P(x)
P(Y) Y z
P(z)
X
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 198
99
Collision de noms
T
A
X Y X Y
A A A de T A de T
Z Z
A de X A de T par X
A de Y A de T par Y
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 199
Classe abstraite
Le nom des
Classe abstraite classes abstraites
est en italique
:Y :z :z
:y
:Y
:y
:z
P(x)
P(y) y z P(z)
X
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 200
100
Généralisation
Liste Tableau
<<implémentation>>
Liste Fixe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 201
Généralisation : Contraintes
Article
{disjoint}
Luxe Alimentaire
{overlapping, incomplete}
Unité Pack Pâtes Conserves
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 202
101
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 - 203
Covariance
A nim al
B ipède Quadrupède
Anim al
Covar ian c e
Carnivore Herbivore
Covariance
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 204
102
Délégation
• Elimination de la covariance
A nimal
S tation Nourriture
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 205
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 - 206
103
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 - 207
CP
:CP :CP
:CP :CP
:CP
:CE :CP
CE
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 208
104
Non respect du principe de substitution
Oiseau
P lumes
B ec V oler()
{
V oler() M ettre la tête dans le sable Le m oineau
} s'envole
2: V oler
: S auve teur : M ésan ge
3: V oler
L'autruche se
c ac he la tête
: Autruche
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 209
Implantation (1)
Class Classe {
Classe private:
Attributs Attributs
Public:
Méthodes Méthodes
}
SousClasse
Class SousClasse : public Classe {…}
Répertoire
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 210
105
Implantation (2)
C1 C2
class C2 {
Class C1 { private:
private: …
C2 LeC2 }
}
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 211
Implantation (3)
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 - 212
106
Implantation (4)
0,1
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 - 213
Implantation (5)
*
C1 C2
Class C1 { class C2 {
private: 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 - 214
107
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 - 215
Implantation (6)
C1 Collection<C2>
C2
UnType
Collection
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 216
108
Implantation (7)
<<persistant>> <<persistant>>
C1 C2
<<persistant>>
C3
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 217
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 - 218
109
Implantation (8)
SGBDR + Langage Objet
<<persistant>> C1
C1
ProxyC1
SGBDR
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 219
Diagramme d’objets
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 220
110
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 - 221
Objets
D1 : Disque D2
: Hanoi
No = 1
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 222
111
Liens
A1 : Article
C1 : Commande
N° : 123
A1 : Article
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 223
Liens
D1:Disque
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 224
112
liens n-aires
:Professeur :Elève
:Salle
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 225
:Voiture
:Roue :Roue
:Roue :Roue
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 226
113
Diagramme de structures
composites
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 227
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 - 228
114
Structure d’une classe
V: Voiture
:Roue[5] V: Voiture
:Moteur :Transmission
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 229
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 230
115
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 - 231
*
/Feuille /Composite
Occurrence de collaboration
2..*
Composant Réservation
Composite
Composite
Feuille
*
ResIndividuelle ResGroupe
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 232
116
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 - 233
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 - 234
117
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 - 235
Exemple
« acteur » « contrôleur » « entité » « entité » « acteur »
:Resp. Plan :SelectionnerPlage :Plan :Plage SGBD
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 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 - 236
118
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 - 237
Diagrammes de séquences
Sélecteur
Possession
du contrôle
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 238
119
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 - 239
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 - 240
120
Résultats
X Y X Y
Résultat=Msg(Données) Msg(Données)
ou
Résultat
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 241
Messages
X Y
Résoudre()
Délai
*[cd] Msg
t1 Itération
{t2-t1 <2s} [cd1] Msg
t2 Conditionnelle : il est préférable
Un message peut être désigné [cd2] Msg de traiter un chemin à la fois
par son N° ou par un nom
symbolique, on peut référencer
les attributs date émission,
date réception
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 242
121
Création / Destruction
Ou (UML 2.0) X Y
X
Créer
Y
Détruire
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 243
Autoré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 - 244
122
Contraintes (UML 2.0)
Actif
Reserver(NoPlage,IdP) Reserver(Pers)
{Plage::Réservée}
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 245
« contrôleur » « entité »
:SelectionnerPlage :Plage
Annuler
return OK
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 246
123
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 - 247
1: Résoudre()
1.1: Déplacer(1,3 )
1.1.1: Déplacer( 1,2)
: 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 - 248
124
Diagramme de collaboration (UML 1.4)
*[tous]Touver(NoImmatricultion)
:sociéte :Employé
return Emp
:Emp
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 249
Diagramme de communication
1:M(A)
O A
« Local »
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 250
125
Diagramme de communication
:Société :Employé
1:*[Age>40] Augmenter
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 251
Diagramme de communication
Objet Actif Objet Actif
A:M1 U B:M2
Z T
A.1:… B.1:…
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 252
126
Cadre (UML 2.0)
sd Entête
Corps
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 253
Diagramme de machines à
états
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 254
127
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 - 255
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 256
128
Diagramme de machines à états
E1
entry/ Action 1
exit/ Action 2
on Ev( Info )[ Cd ]/ Action 3
do/ Activité
E2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 257
État
Nom état
Nom état Nom état
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 258
129
É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 - 259
États
• 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 - 260
130
Transitions
Marche
OuverturePorte()/LumiereOn ()
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 261
Lecture Carrefour
Envoi Changement(Feu)
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 262
131
Triggers (Événements UML 1.4)
Empilement(val:ent)
Vide Occupée
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 263
Types de triggers
Allumage() après(3s)
Arrêt Marche Demande Serv. occupé
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 264
132
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 - 265
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
• [Expression1] par rapport à quand(Expression2)
– Expression1 est évaluée à chaque fois que
l’événement se produit, Un événement est déclenché à
chaque fois que expression2 devient vraie
– Lorsque Expression1 est fausse l’événement est perdu
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 266
133
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 …/A1 E
…/A1
…/A2
E Entry/ A1
…/A2 …/A2 Exit/ A2
Evnmt(info) / A
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 267
Actions
• Action Deffered
– Permet de différer le traitement d’un événement
Etat1 e1 e2 Etat3
e2 /deffered Etat2
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 - 268
134
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 - 269
Etat
Msg2
Événement
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 270
135
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 - 271
Exemple
Affecter(Periode) [Periode Contraintes] Affecter[Période Contraintes]
Contrainte Affectation
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 272
136
É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 - 273
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 - 274
137
Example
Régalage Minutes
Réglage H Clignot. M Appui B2
B1 Attente
DO Clignoter
Minutes Relache B2/Min=Min+1
B1 Relâche B2
Affichage B1 Défilement
DO Inc. Min Délai
DO Affiche Tous les 0.1 s
Heure/Min/Sec
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 275
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 - 276
138
Forme conjonctive et forme disjonctive
• Une décomposition conjonctive peut être transformée en
décomposition disjonctive
e1
Z,A Z,B
X e1 e4
A
e3 e3
e3 Y e1 e4[in state Z]
e2 B X,A X,B
Z e1
e1
Y,B e2
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 277
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 278
139
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.
• 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
H les sous niveaux
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 - 279
140