Vous êtes sur la page 1sur 70

Méthodologies de conception

Introduction
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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 2

Historique Historique
• Années 30-40 : Programmeur = Utilisateur; Problèmes Décennie Matériel Logiciel
bien définis
40-50 Coûteux et spécialisé Binaire, code machine
50-60 Règne d’IBM, Assembleur
• 1950 : Langages de haut niveau; Profession Recherche Scientifique
programmeur qui reste une activité individuelle
60-70 Mainframe, IBM 1401 COBOL, FORTRAN, Compilateurs
70-80 Intel, Apple, TRS-80, C, Smalltalk, BASIC, Pascal, Unix
• 1960 : ‘Grands systèmes’ : OS de l’IBM 360, constatation DEC PDP
des difficultés : crise du logiciel, apparition du terme « 80-90 IBM PC, Macintosh DOS, dBase, Lotus 1-2-3, GUI
Génie logiciel » 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

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

1
Des chiffres Définitions
• Système de réservation de KLM 2 Millions de LOC • Parnas
(assembleur)
• UNIX System V +X11+XNews 3 700 000 LOC (source) « Développement en équipe de logiciels multi-versions »
• Space Shuttle 40 Millions LOC (objet) • 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 »

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

Concepts de base Les processus logiciels


• Le génie logiciel s’intéresse à • La définition du processus de production du logiciel
– des projets : les activités effectives qui se déroule pour aboutir à permet de :
un logiciel fini – Le rendre « répétable »
– des produits : les différents artefacts (modèles, composants,
– L’analyser (le mesurer)
documentations, code source,...) fabriqués au cours d’un projet
– L’automatiser
– des personnes : l’organisation des équipes, de leurs
collaborations; exécutent le projet – Le standardiser
– des processus : la façon avec laquelle le logiciel est fabriqué; – Le rendre prévisible
contrôlent le projet
• ‘Best practices’: comportements considérés par la
communauté des industriels e des chercheurs comme
étant éprouvées

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

2
Code and Fix
Coder • Correspond en réalité à l’absence
de modèle
Oui • Le code devient rapidement
déstructuré
Modèles du cycle de vie 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 - 9 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 10

Modèle en cascade (Waterfall model) Modèle en cascade


Etude de faisabilité • Etude de Faisabilité (concept analysis) : Définir le
problème, définir et étudier les alternatives, définir les
Analyse des besoins coûts et les délais
et spécifications

Conception architecturale
• Analyse des besoins et spécifications : Définir les
et détaillée attendus du système, aboutir à un document de
spécification lisible, précis, complet, consistant et non
Codage et Test unitaire ambigu. Aboutit aux besoins fonctionnels et non
fonctionnels ainsi qu’à un plan du développement
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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 12

3
Modèle en cascade Modèle en cascade
• Conception architecturale et détaillée : Définir les • Mise en exploitation et maintenance : Le système est
modules qui constituent le système et leurs relations. installé sur site à large diffusion. On distingue 3 sortes de
Selon le contexte la conception détaillée correspond à : maintenance :
– Définir les interfaces des modules
– Définir les unités du langage de programmation – Maintenance corrective : corriger les erreurs
– Définir les types et les algorithmes
– Maintenance adaptative : adapter le système aux évolutions de
• Codage et test unitaire : écriture du code source, tester
son environnement
les modules séparément
• Intégration et Test système : Assembler les modules – Maintenance perfective : améliorer le système
(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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 14

Modèle en cascade (Waterfall model) Modèle en cascade


• Chaque étape possède des critères de lancement de fin • Avantages
et de validations (Inspections) – Discipline
• plusieurs déliverables intermédiaires avant le produit final – Planification
– Marche bien pour des projets non innovants impliquant des
• Plusieurs variations sur ce modèle : développeurs expérimentés
– Modèle en V, W,...
• Inconvénients
– Collecte des besoins, test composants, test produit,...
– 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
An. B &Sp C. Arch. C &TU F1 rejetée à la fin
Conc. H. Niv. F1 C. Dét. F1
– « Effet tunnel »
Conc. H. Niv. F2 C. Dét. F2 C &TU F2
Parallélisme – Inadapté aux projets innovants, offrants des interfaces complexes
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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 16

4
Modèle par prototypage Modèle par prototypage
Collecte et analyse • Basé sur « throw away prototype » : 1ère version prototype
des besoins
bâclé qui sert à obtenir un feedback de la part de
Conception l’utilisateur. 2ème version modèle en cascade
simplifié • Facilité par les langages et les environnements RAD
• Variation « modèle incrémental » : Le système est fourni
Raffinement de Construction
au client par incréments successifs, après la fourniture
la conception et du prototype
du prototype d’un incrément il y a une phase d’évaluation qui influence
le développement de l’incrément suivant
Non Client Evaluation
satisfait ? client

Développement à grande échelle

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

Modèle par prototypage Modèle transformationnel


• Avantages • La spécification est exprimée formellement.
– Visibilité du produit final (le choix de la ‘taille’ d’un incrément est • Puis elle est transformée en implantation (éventuellement
important) automatiquement)
– Adapté pour des projets innovants
• Avantages :
– Les changements sont anticipé : la maintenance est incluse tout
au long du processus – Preuve formelles de propriétés désirables
• Inconvénients – Les changements sont maîtrisés
– Risque de déstructuration du code (on revient à code & fix) – Adapté aux systèmes temps réel et sûrs de fonctionnements
– Difficultés de planifier et de gérer le développement • 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 - 19 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 20

5
Modèle en spirale Le modèle en spirale
Déterminer Evaluer alternatives
objectifs Ident. et résoudre • Chaque phase correspond à un cycle de la spirale qui voit
alternatives Analyse
risques
risques se répéter le même type d’activités.
contraintes
Analyse
risques
• Focalisation sur la gestion des risques
Analyse
risques Proto • Plusieurs spirales (une par fonction ou composant)
Analyse Proto 2
Proto 3 Opérationnel peuvent se dérouler en même temps
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

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

Le modèle en spirale Introduction à UP


• Avantages : • Modèles à base de phase # Modèles Agile (Extreme
– Permet de combiner les modèles antérieurs programming)
– La réutilisation est encouragée par l’identification des alternatives • Procédés lourds (Rigidités , contrôles, séquences) # Procédés
– Permet d’incorporer le plan qualité légers (itératifs)
• Inconvénients : • Planification élaborée à long terme # Planification à court terme
• Fortement prédictif # Fortement adaptatif
– La flexibilité rend la planification difficile
• Lutte contre le changement # incorpore le changement
– 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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 24

6
Phases du cycle de vie
Introduction à UP
UP est
• Itératif Inception Elaboration Construction Transition
• Incrémental
• Conduit par les Use Cases Temps
• Piloté par les risques
• Centré sur l’architecture
• Inception (Initialisation/Pré-étude): Définir le contexte du
projet
• RUP : UP + outils de Rational
• 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 - 25 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 26

Disciplines et modèles Autres disciplines

Besoins Modèle
• Modélisation de l’existant
Use Case
• Gestion des configurations
Analyse Modèle
D’Analyse • Gestion du projet

Conception Modèle Modèle • Définition de l’environnement de développement


D’arch. De dépl.

Implantation Modèle
D’impl.

Modèle
Test De Test

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

7
Phases et Itérations Itérations et disciplines
Inception Elaboration Construction Transition
Inception Elaboration Construction Transition
Besoins

Itér. ... Itér. ... Itér. Itér. ... Itér. ... Une itération
Prélim Arch. Dév. Dév. Trans. Analyse

Conception
Délivrable Délivrable Délivrable Délivrable Délivrable Délivrable Délivrable Délivrable

Implantation
•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
Test
•Une itération a une durée approximative de 2 à 6 Semaines
Itér. ite r.1 iter. 2 ite r. n ite r. ite r. it e r. ite r.
•Une itération a une durée non tractable (« time boxed ») Prélim. n+1 n +2 m m +1

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

Itérations et disciplines Itérations et disciplines


RUP définit 9 Workflows : 6 d’ingénierie et de 3 Workflows de support
de support • Gestion de projet
Workflows d’ingénierie :
• Modélisation métier • Gestion des configurations et de évolutions
• Analyse des besoins et Spécification
• Conception • Environnement développement
• Implantation
• Test
• Déploiement

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

8
Itérations et disciplines U.C. Contrôlent le déroulement
• Pilotent les activités
A chaque itération : – Création et validation de l’architecture du système
– Définition des jeux de tests et des procédures
• Evaluation de l’itération précédente
– Planning des itérations
• Gestion des risques – Création de la documentation utilisateur
– Déploiement du système
• Planification de l’itération suivante
• Synchronisation des différents modèles

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

Spécificités Inception (Pré-étude)


• RUP n’est pas cascade car: Analyse des
Effort besoins
• Rien n’est figé
et spécifications
• Toutes les disciplines à chaque itération
• Noyau architectural développé et fourni au client dés les
premières itérations

• RUP n’est pas prototypage ou RAD car:


• Rien n’est « throw away»
• Evolution par incrément du prototype initial au produit final 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 - 35 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 36

9
Inception (Pré-étude) Artefacts
Objectifs Principaux
• Développer une vision globale du produit • Document «Vision »
• Accorder les points de vue des différents partenaires • Dictionnaire de données
• Montrer la faisabilité technique • Modèle Use Case
• Fournir des critères de décision pour décider de l’intérêt • Document : spécification supplémentaires
du projet • Plan de phase
• Plan de l’itération suivante

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

Artefacts Vision
Secondaires • Historique des révisions
• Modèle U.C. de l’existant (« Business case ») • Positionnement
• Liste des risques – Opportunité : Justification en termes du marché
• Prototypes de preuves de faisabilités – Expression du problème: Description du problème à résoudre
– Positionnement du produit: Public concerné, Caractéristiques
• Prototypes de l’interface
majeures, Plus par rapport aux compétiteurs
• Recommandations Développement/Achat • Description des interlocuteurs
• Liste des outils – Statistiques du marché
– Interlocuteurs (non utilisateurs)
– Interlocuteurs (Utilisateurs)

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

10
Vision Vision
• Description des interlocuteurs (Suite) • Vue d’ensemble du produit (Suite)
– Objectifs Principaux et problèmes des non utilisateurs – Coûts et Prix
But abstrait Priorité Problèmes et préoccupations Solutions actuelles – Licences et installations
– Objectifs par utilisateur
• Résumé des caractéristiques du système
Utilisateur Objectif Priorité Effort Risque
– Environnement Utilisateurs • Autres besoins et contraintes
Conception, usabilité, fiabilité, performance,documentation,…
• Vue d’ensemble du produit
– Perspective (lieux, matériels, collaborations)
– Résumé des apports
Caractéristique Apport aux interlocuteurs
– Hypothèses et dépendances

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

Spécifications supplémentaires Spécifications supplémentaires


• Historique des révisions • Performances
• Introduction • Maintenabilité
• Fonctionnalités – Adaptabilité : Introduction de nouvelles règles de gestion
– Log et gestion des erreurs – Configurabilité
– Sécurité • Contraintes d’implantation
• Usabilité • Composants achetés
– Facteurs Humains • Composants Open Source
– Autres facteurs
• Interfaces
• Fiabilité – Hardware
– Récupération des crash – Software
– …

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

11
Spécifications supplémentaires Dictionnaire de données
• Règles de gestion Terme Définition et Informations Synonymes
No Règle StabilitéSource
• Questions juridiques Définition et informations
– Format
• Informations supplémentaires sur le domaine
– Domaines
– Unités
– Termes composés
– Règles de validations

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

Modèle U. C. Modèle U. C.
• Forme d’un U. C. Proposition de D.U.C. Stabilisation de D.U.C. Réalisés
– Bref : énumération des objectifs U.C.

– 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,…
Décrits

Découverts

Construction
Inception Elaboration Itérations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 47 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 48

12
Planification modèle des U.C. Planification modèle des U.C.
• Semaine 1 : 2 Jours workshop (Inception It. 1) • Semaine 12 : 2 Jours workshop (Elaboration It. 3)
– Majorités des U.C. identifiés par leurs nom et résumés – 10% des 50% réalisés
– 10 % (les plus importants) détaillés – Feedback de l’implantation
– 10 % des 10% réalisés – 70 % détailles
• Semaine 5 : 2 Jours workshop (Elaboration It. 1) • Semaine 15 : 2 Jours workshop (Elaboration It. 4)
– 10% des 10% réalisés – Environ 10 % du système réalisés
– Feedback de l’implantation – Feedback de l’implantation
– 30 % Détaillés – Objectif : 90% détaillés
• Semaine 9 : 2 Jours workshop (Elaboration It. 2) • Le reste pour la construction
– 10% des 30% réalisés
– Feedback de l’implantation
– 50 % détaillés

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

Développement Agile eXtreme Programming


Approche Agile Lien Web

Extreme Programming (XP) http://www.xprogramming.com


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

Feature Driven Development http://www.togethercommunity.com/


(FDD) Planning
Scrum http://www.controlchaos.com/
Itérations
Crystal Light http://crystalmethodologies.org/
Production
Adaptive Software Development http://www.adaptivesd.com/
(ASD)
Dynamic Systems Development http://www.dsdm.org/ Maintenance
Methodology (DSDM)

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

13
eXtreme Programming eXtreme Programming : Itérations
• Phases Début
– Exploration : Vision (20 ~ 30 mots), métaphore du système
(domaine), user stories (~ cas d’utilisation quelques 5 phrases ),
exploration (prototypage) de choix technologiques Itération
– Planning: Le client définit les utilisations, les classifie par rapport à
Choix des Estimer les durées Tester et
son métier, détermine les utilisations qui seront prototypées dans
utilisations et établir les priorité Construire
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
Release
– Maintenance

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

eXtreme Programming XP : Déroulement d’une tâche


• Itérations: Établissement Assignation Conception
– chaque release est développée en plusieurs itérations. Elles ont d’une paire d’une tâche rapide
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 Définition Trouver un test qui
peuvent évoluer d’une itération à l’autre échoue
des test
– Un WBS est déduit à partir d’une utilisation. Des tâches (3 J/H)
sont classées par priorité et exécutées
Juste le nécessaire pour Simplifier et
– Les tâches sont assignés à des paires de programmeurs qui se Coder Refactor améliorer le code
que le test passe
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
Intégrer
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 - 55 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 56

14
eXtreme Programming eXtreme Programming : ?Unit
• Production .NET http://nunit.sourceforge.net/
– Lorsqu’une release est prête, elle est déployée chez le client qui C http://check.sourceforge.net/
exécute des tests d’acceptation. En particulier, il vérifie que les C++ Builder http://groups.yahoo.com/group/extremeprogrammi
enchaînements des IU contribuent à la productivité des ng/files/CppUnit17BCB30Pro.zip
utilisateurs C++ http://www.xprogramming.com/ftp/TestingFramewo
rk/CppUnit/CppUnit15.zip
– Types de déploiements: Big Bang, Incrémental, Parallèle, Green
field (Environnement vierge) Delphi http://dunit.sourceforge.net/
• Maintenance: Eiffel http://w3.one.net/ jweirich/software/eiffelunit/
– Se déroule en parallèle avec les itérations de construction (une Haskell http://hunit.sourceforge.net/
release est maintenue alors qu’une autre est en cours de
HTML http://sourceforge.net/projects/htmlunit
construction)
– La philosophie de l’approche facilite la maintenance: une ou Java http://www.junit.org/
plusieurs modifications correspondent simplement à des tests qui JavaScript http://www.jsunit.net/
ont échoués et qu’il faut corriger
Oracle http://oracle.oreilly.com/utplsql/
Visual Basic http://tiniunit.sourceforge.net/

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

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 Modélisation du processus
• La méthode tearDown() permet de libérer d’éventuelles
ressources aprés l’éxécution des tests
logiciel

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

15
Introduction Langages pour la modélisation du PDL
• Un logiciel est le résultat d’un procédé de développement • 3 sortes de PDL :
• La qualité du logiciel est liée étroitement au PDL – Les PDL qui ne sont coordonnés par aucun modèle
– Les PDL qui obéissent à un MPDL définit informellement
• Améliorer la qualité requière l’analyse du PDL
– Les PDL contrôlés par un MPDL définit formel (i.e. un interprète
• L’analyse du PDL requière sa modélisation ‘exécute’ (enact) le MPDL au sein de l’environnement de
• Un modèle de PDL est une représentation purement développement)
descriptive du PDL. Un MPDL doit permettre de • Modélisation procédurale: Il n’y a pas de différence
représenter les attributs d’un ensemble de PDL et être fondamentale entre un MPDL et un programme. APPL-A :
suffisamment spécifique pour permettre de raisonner à Ada étendu par la gestion de la persistance et les
leur propos triggers (1987)
• La recherche sur la modélisation du PDL date de 1984 • Modélisation fonctionnelle : Le MPDL est exprimé sous
forme de fonctions de transformations. HFSP

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

Langages pour la modélisation du PDL Business process


• Modélisation déclarative : le MPDL est décrit sous la • En parallèle la modélisation des activités de l’entreprise
forme de règles Pré/Action/Post. Permet la prise ont conduit à la gestion de workflows
d’initiative : lorsque une pré devient vraie l’action est • Les workflows sont utilisés pour décrire les MPDL
déclenchée et permet la génération de plan pour atteindre • ‘L’éxécutabilté’ du MPDL n’est pas encore atteinte et ne
une post vue comme un but. Marvel, Merlin sera pas atteinte rapidement
• Modélisation basée sur les diagrammes états/transitions : • L’approche MDA a déplacé la focalisation sur les produits
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,...

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

16
le workflow ‘Requirements’ dans RUP CMM
• CMM : Capability Maturity Model
• Cadre pour l’évaluation de la maturité du procédé de
[new system] [existing system] [new input] développement
• 5 niveaux de maturité :
Analyse pbm Understand
Stakeholders needs
– 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
Manage changing l’initiative des développeurs
requirements
[incorrect pbm]
[can’t do – Niveau 2 – Répétable : Les coûts, délais et fonctionnalités sont
[adressing correct pbm]
all the work] suivies par le management. Il existe une discipline qui permet de
Manage scope
répéter des activités similaires avec succès d’un projet à l’autre
Define system
of system [work in scope] – Niveau 3 – Défini : Aussi bien les activités d’ingénieries que les
[More iterations] activités de management sont documentées, standardisées et
Refine system intégrées au procédé global de l’entreprise. Il existe un procédé
[Requirements definition complete]
definition bien défini

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

CMM CMM
– Niveau 4 – Géré : Un ensemble détaillés de mesure sur le – Les aptitudes qui doivent être mises en place pour atteindre les
processus et les produits sont collectées. Ces mesures sont objectifs
utilisées pour comprendre et contrôler le procédé et les produits – Les activités qui doivent être faite pour atteindre les objectifs
– Niveau 5 – Optimisé : Le processus est amélioré de façon – Les méthodes à mettre en place pour le suivi de la mise en œuvre
continue grâce à l’exploitation des données collectées et – Les méthodes à mettre en place pour vérifier la réalisation
l’expérimentation d’idées ou de technologies innovantes
• Chaque niveau est associé à des domaines de procédé
clé (KPA : Key process Area). • Le cadre définit aussi les méthodes à mettre en place
pour changer de niveaux
• En tout 80 KPA. Chaque KPA est défini par:
– Les objectifs que le KPA doit atteindre • Il existe un mécanisme de certification voir
– Les obligations auxquelles doit s’astreindre l’organisation pour www.sei.cmu.edu pour plus d’informations
atteindre les objectifs

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

17
CMM KPA Gestion des configuration
• Exemple KPA : Gestion des configuration – Activités : Identifier les items qui vont faire l’objet de la GC,
Introduire un système de GC, Créer la ‘baseline’ (i.e. Version 0
– But : Établir et maintenir l’intégrité des produits en s’appuyant sur
des identités de configuration, du contrôle des configurations, des items), Suivre les demandes de modifications, Contrôler les
l’historique des statuts de configuration et sur l’audit des modifications, Maintenir l’historique des révisions, Effectuer des
audits pour vérifier le bon usage
configurations
– Obligations : Définir une stratégie organisationnelle pour la – Suivi : Mettre les items sous la GC; identifier et impliquer les
planification et la mise en place du procédé de gestion des intéréssés au procédé de GC; Mesurer le procédé (Nombre de
configurations changement, d’audit,...);
– Aptitudes : Définir le plan pour la réalisation de la GC, Fournir les – Validation : Évaluer la conformation de la définition du procédé au
ressources, Assigner les responsabilités, Former les participants procédé et traiter les discordances; Transmettre un feedback aux
décisionnaires

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

Préliminaires : Modélisation
Analyse des besoins et Spécification
Comprendre le système et définir ses attendus : LE
QUOI

Méthodes et méthodologies Conception Architecturale et détaillée


Identifier les alternatives et Etablir les choix : LE
COMMENT

Codage et Test
Choix techniques de bas niveau : LA REALISATION

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

18
Modélisation Structure d’une méthode

• Vue fonctionnelle
• Vue comportementale • Langage de Modélisation
• Vue structurelle
• Approche transversale : modélisation objet • Démarche

• Autres : temps, sûreté de fonctionnement, répartition,


performances,…

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

Structure de méthodes : Modélisation Structure de méthodes : Modélisation


Formelle • Langage
Ax2+Bx+C
A,B,C, x ∈ [-∞,+∞] – Syntaxe concrète (textuelle – graphique)
Sémantique
Informelle – Syntaxe abstraite (BNF, Arbre, métamodèle)
Association: Lien
structurel entre …
Concepts – Sémantique (sémantique dénotationnelle, Action sémantique,

Textuelle pré/post conditions, point fixe,…)


Z=F(x,y)
Notations
Graphique

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

19
Structure de méthodes : Démarche Structure de méthodes : Assistance
• Heuristiques portant sur les modèles ou la démarche:
Démarche : Les étapes et leur séquencements – Choisir les noms d’associations de sorte que la combinaison du
nom des entités et de l’association lu de gauche à droite constitue
une phrase
– Vérifier que A, B et C ne sont pas les développements d’un carré
1. Calculer delta 1. Collecter les informations parfait et dans ce cas déterminer directement la racine double
2. Lorsque Delta > 0 2. Identifier les synonymes • Caractérisation par des exemples et des critères
Calculer Racines doubles et les poly sèmes
– Lorsqu’une information ne prend que des valeurs discrètes, il
3. … 3. …
s’agit potentiellement d’un événement, par exemple la décision
d’accord de crédit
Algorithme Actions abstraites
Support automatisé Interprétation humaine ⇒ L’aspect le moins bien défini des méthodes

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

Le Langage de Modélisation
UML
Introduction
Adel KHALFALLAH
Institut Supérieur d’Informatique – El Manar
Adel.Khalfallah@fst.rnu.tn
Adel_Khalfallah@yahoo.fr

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

20
UML : Historique UML : Un synopsis
• Modèles : 15 types de diagrammes informels et
graphiques
Août 02
OMT UML UML – Diagrammes structurels : diagramme de classes, diagramme
(Rumbaugh) 1.4 2.0
d’objets, diagramme de structures composites, diagramme de
1996 Sept. 2001 composants, diagramme de déploiements, diagramme combiné
composant/déploiement
BOOD UML UML – Diagrammes comportementaux:
0.9 1.1
• diagramme d’activités
Nov. 1997
• Diagrammes d’interactions : diagramme de séquences,
diagramme de communications, diagramme global
OOSE
(Jacobson) d’interactions, diagramme de temps,
Catalysis ROOM etc. • 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 - 81 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 82

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,…)
Diagramme des cas
d’utilisation

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

21
Les cas d’utilisations Cas d’utilisation : Exemple
• Introduits par I. Jacobson
Système : DAB
• vue fonctionnelle, correspond à un comportement type
du système
• Une manière spécifique d’utiliser le système selon le Retirer de l ’argent
Client
point de vue de l’utilisateur
• Fixe les limites entre le système et son environnement Déposer de l ’argent
• Elément du cahier des charges
• Outil de communication avec le client / Référence pour la
suite Transfert entre comptes

Administrateur
Maintenir le distributeur

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

Use case : Les concepts Use case : Les concepts


• Acteur : Source ou destination finale d’une interaction
(émission/réception de données, ordres, événements,…).
Acteur
m Cas Lors de l’analyse décrivent des roles de personnes, des
d'utilisation
n systèmes ou des composants puis évoluent vers des
interfaces (utilisateurs, API,…). Traçabilité.
Acteur
• Un acteur principal pour chaque cas d’utilisation et
Limites du système
éventuellement quelques acteurs secondaires
Acteur: toute entité externe
Intéractions (Associations)
• Cas d’utilisation : Interaction ayant une valeur ajoutée
Au système et échangeant des Chaque cas d’utilisation
informations avec lui. Exemple: correspond à un ensemble de pour au moins un acteur. Lors de l’analyse les acteurs
Professeur, Capteur, BD, TCP/IP,… transactions effectuées au cours principaux sont essentiellement considérés. Il peut
d’une interaction entre l’acteur et évoluer vers un C.U technique. Exprime un besoin et non
le système. Éventuellement
précisé par des diagrammes une solution. CRUD (CCMS)
d’interaction

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

22
Use case : Les concepts Relations entre use cases
• 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 à • Relation <<include>> : Factorisation
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 • Relation <<extend>> : Optionalité

• Relation de spécialisation : Substitution

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

Relation Include Relation Include


« include » • Lorsque un C.U. correspond à une factorisation, son
déclenchement n’est pas précisé et sa terminaison
C1 C2 explicite les informations disponibles au C. U. de base
• Permet d’identifier un sous ensemble commun à plusieurs • Le C.U de base ne doit dépendre que du résultat du C.U.
cas inclut et pas de la façon d’obtenir le résultat
• C1 utilise C2 ⇒ toute activation de C1 entraîne une • Le C.U. inclut ne doit pas dépendre du C.U. de base
activation de C2, C1 est incomplet sans C2, le
déroulement de C1 sans C2 correspond à une situation • Le C.U. inclut reçoit-il des paramètres ? À traiter au cas
exceptionnelle par cas
• 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 - 91 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 92

23
Exemple Include Exemple Include

« include » « include »

« include » « include »
Recouvrement Vérifier abonnement
Passer Commande Facturation

Emprunter un livre
Consulter prêts

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

Relation Extend Relation Extend


Extension points
« extend »
ext 1
Extension Condition 1
ext 2 C2
Condition
… …
Extension point
Base C1 ext 1
Condition 2 C1
• 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 C2
• <extension point> ::= <nom> [: <Explication/Localisation>]

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

24
Relation Extend Exemple : Extend
Passer Commande

Resaisir
Réapprovisonner

C1 « extend » « extend »

Condition Condition
Client inexistant qté sous seuil
Extension point Extension point
Resaisir Réapprovisonner

Itérer saisie Réapprovisionner stock


C2

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

Example : Extend Example : Extend


• Passer commande
Condition
1. Entrer le nom et le numéro de compte Livre réservé
2. Vérifier qu’ils sont valides Retour livre Extension point

Extension: itérer la saisie si client inexistant
3. Saisir l’article commandé et la quantité « extend » « extend »
Enregistrer livre
4. Vérifier la quantité en stock
Extension : réapprovisionner si la quantité en stock n’est pas
Condition
suffisante Livre réservé
Extension point
5. Enregistrer la commande …

Traiter réservation

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

25
Relation Extend Relation Extend
• Extend peut être utilisée pour séparer des points de vue • 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.
Facturer • Lorsque plusieurs U.C. font référence au même point
d’extension d’un U.C. de base cela sous entend que
Appel téléphonique l’ordre de déroulement est indéterminé

« extend »

Condition
toujours
Extension point
Facturer

Calcul coût
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 101 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 102

Transitivité, Acteurs et Include Transitivité, Extend et Include


« include »

C1 C3
Gestion Commande « include » « extend »
Client « include » ?
C2
?
C1 C3
Facturation « extend »
« extend » ?
C2

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

26
Extend et include Contrôle des accès
• Inclusion versus extension
U.C. base incomplet U.C. base complet « include »
U.C. Inclut ne dépend pas de la base U.C. ext. Dépend de la base Modifier fond Vérifier droits

• 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 • La vérification des droits peut aussi être exprimé par une
• Ces relations ne doivent être introduire que lorsque les précondition ce qui permet de conserver un niveau
descriptions textuelles commencent à être stabilisées 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 - 105 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 106

Recherche Login/Logout

Recherche Recherche
« include »
« extend » « extend » Traitement Login/Logout
« include »

traitement Traitement1 Traitement1

La recherche est factorisée


le résultat de la recherche Le résultat de la recherche est • L’identification doit être effectuée à chaque traitement
est utilisé dans le traitement traité de 2 façons différentes
• 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 - 107 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 108

27
Use case et généralisation Use case et généralisation

Qté > Seuil


Valider utilisateur
Protocole de transport

Qté < Seuil Passer Commande

Vérifier mot de passe


TCP/IP
Le cas d’utilisation spécialisé
L’acteur spécialisé hérite des
est substituable au cas
interactions de l’acteur père Réapprovisionner
d’utilisation père

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

Use case et généralisation 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
Vérifier utilisateur
• 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

Vérifier mot de passe

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

28
Détails d’un cas d’utilisation Détails d’un cas d’utilisation
• Diagramme de cas d’utilisation à lui tout seul est • Différents niveaux de description :
insuffisant – Description boite noire : échanges entre le client et l’interface DAB
• Il faut : et conséquences sur le compte du client
1. établir la traçabilité entre le cahier des charges et le modèle des – Description boite grise: les traitements de log sont décrits
cas d’utilisations – Description boite blanche : les détails d’interfaçage avec le réseau
2. Expliciter le comportement du système pour chacun des cas sont décrits
d’utilisations par • Le diagramme des C.U. est destiné à plusieurs lecteurs
– Description textuelle
– Prototype des interfaces • Le C.U. peut référencer un dictionnaire de données, un
– Un ou plusieurs diagrammes de séquences/scénarios glossaire ou des règles de gestion
– Un ou plusieurs diagrammes Etats/transitions • Un paragraphe peut être commun à plusieurs C.U

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

Détails d’un cas d’utilisation Modèle de la description textuelle


• Lorsque la description est longue le texte peut être • Résumé :
organisé en niveaux : le premier niveau fait référence à Titre, But, Résumé, Dates, Version, Responsables, Acteurs,…
des titres de paragraphes • Préconditions :
Ce qui doit être vérifié avant que le C.U. ne commence
• La description peut éventuellement préciser • Enchaînements :
l’enchaînement du déroulement dans le cas des relations – Evènements de déclenchement
include et extend – Séquence nominale/C.U. référencés
• A partir de la description du C.U on déduit des objets et – Séquences Exceptionnelles/Exceptions
des diagrammes d’interactions • 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 - 115 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 116

29
Modèle de la description textuelle Règles de gestion
• Besoins d’IHM • Exemple : Une commande contient au moins un article,
Expression de contraintes liées à l’interface un commande urgente est une commande passée le jour
j et qui doit être livrée le jour j+1
• Contraintes non fonctionnelles
– Fréquences
• Chaque règle de gestion doit être identifiée de façon
– Volumétries unique
– QoS: Disponibilité, fiabilité, Performances • Les règles de gestion se réfèrent au domaine et ne sont
– Concurrence 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 - 117 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 118

Construction des cas d’utilisation Construction des cas d’utilisation


• Quelles sont les fonctions principales et secondaires du
système ? ⇒ C.U./Messages
Identifier Acteurs • Qui est le source/récipiendaire d’un message ? ⇒
Acteurs
• Détails d’un C.U ⇒ Acteurs/Messages/C.U.
• Variations d’un C.U. ⇒ C.U.
Identifier Messages Identifier fonctionnalités • Comment un acteur utilise le système ⇒ C.U/Messages
• Quels fonctions sont nécessaires à la gestion d’un
message ou ses données ⇒ C.U.

S’appuyer sur des scénarios

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

30
Erreurs usuelles Erreurs usuelles
• La relation « include » cantonnée à une décomposition
« include »
fonctionnelle : aucune factorisation n’est présentée
Déterminer marges • Le niveau de granularité n’est pas uniforme ⇒ rester à
« include » un niveau de discours équilibré: ni trop général ni trop
Saisir Commande
« include » spécifique, ne pas rechercher l’exhaustivité
• Créer ligne de commande correspond au COMMENT de
Vendeur
« include » Créer ligne commande la création de commande
Créer Commande

« include » Consulter Client

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

Erreurs usuelles 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.
<<include>> 3. Le système présente l’écran de saisie de commandes
Saisir Commande 4. Tant qu’il reste des articles pour cette commande
l’acteur entre la clé de l’article et la quantité
<<include>>
5. Le système met à jour le total courant
Vendeur
Chercher Client Fin Tant que
6. Valider la commande
Consulter Client
<<include>>

Editer client

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

31
Erreurs usuelles Erreurs usuelles
• Les cas d’utilisations correspondent à descriptions de 1. Le vendeur sélectionne un client
haut niveau orientées utilisateurs 2. Le système guide le vendeur dans la saisie des détails
de la commande (références des articles et quantités
• L’effort (temps, ressources humaines et matérielles) pour commandées) il calcule au fur et à mesure le total de la
leur mise au point doit être négligeable par rapport au commande.
temps nécessaire pour le développement de l’ensemble 3. Lorsque le vendeur à terminé la commande, il la valide
du système et le système l’enregistre

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

Erreurs usuelles Gestion des Surveillances


Acteurs
client Gérer réveil • Enseignant
• Resp. Plan
• Le client fixe l’heure de réveil • Resp.
Personnel
• Le système réveille le client à l’heure sélectionné
• Administrateur
Mémoriser • Ecran Entités externes communicantes avec le système ?
–Dans cet exemple : Non relais uniquement
réveil • Clavier
–Dans le cas d’une borne interactive tactile: Oui

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

32
Gestion des Surveillances Gestion des Surveillances
Quelles sont les fonctions majeures du système ?
Cas d’utilisations
« include »
Comment l’enseignant utilise le système ?
Resp. Plan Gestion des plans
• Consultation des plans hebdomadaires
« include »
Calcul statistiques – N’est pas spécifique aux enseignants : Tous les utilisateurs peuvent
consulter les plans
Gestion des enseignants – Connexion comme préalable à la consultation
Resp. Personnel • Consultation de ses propres surveillances durant une période
– Connexion préalable

Gestion des utilisateurs

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

Gestion des Surveillances Gestion des Surveillances


• Connexion cas d’utilisation ? <<include>>
• Dans ce contexte: oui Toute consultation
• Système : non comprend une Connexion
• Tous les utilisateurs peuvent consulter les plans mais cela requiert une Consultation Plan
connexion, aucune
connexion préalable :
information sur la
chronologie
<<include>>
Connexion
Consultation Plan Utilisateur Consultation ciblée
Enseignant

Administrateur

Resp. Plan Resp. Personnel Resp. Personnel


Administrateur Resp. Plan Enseignant

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

33
Gestion des Surveillances Gestion des Surveillances
<<extend>>

L’utilisateur dispose Modification de plan


Gestion des plans
d’une fonction de
Consultation Plan
connexion <<extend>>
Resp. Plan

Connexion
OU ?
Création de plan

Connexion Consultation de plan


Utilisateur Consultation ciblée Utilisateur
Consultation ciblée

Resp. Personnel Administrateur Enseignant


Resp. Personnel
Resp. Plan Enseignant

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

Gestion des Surveillances Gestion des Surveillances


• Définir les informations de base (cour, semaine,…) est en
soi une gestion de plan Modification de plan

• Créer le plan, le modifier, le supprimer sont des additions


Création de plan
à la gestion de plan Resp. Plan
Gestion des plans
Connexion

Consultation de plan
Utilisateur
Consultation ciblée

Resp. Personnel Administrateur Enseignant

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

34
Gestion des Surveillances Gestion des Surveillances
• La gestion de plan est abstraite, elle spécifie la définition • Erreur de login ⇒ Paquetage Gestion de sécurité
des informations de base (cour, semaine,…) puis un • Modification d’un plan ‘passé’?
traitement abstrait sur ces informations de base • Plan incomplet ?
• Créer le plan, le modifier, le supprimer,… héritent de la • Jours fériés?
définition des informations de base et implantent chacun
un traitement spécifique de ces informations • …
1. Autres diagrammes dans le paquetage gestion des
plans
2. Attention à la surenchère des fonctionnalités !

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

Gestion des surveillances Gestion des surveillances


• Résumé :
Titre : Création d’un plan de surveillance hebdomadaire
But : Création d’un nouveau plan hebdomadaire pour une cour et une semaine pré-
établies.
Résumé : Affectation des enseignants aux différentes plages horaires pour
constituer un plan de surveillance.
Acteurs : Responsable Plan (Principal)
Responsable : Adel KHALFALLAH
Date Création : 3 Janvier 2002 Version : 1.1

Date Modification : 10 Janvier 2002


Modification : Prise en compte de l’enregistrement de plans incomplet

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

35
Gestion des surveillances Gestion des surveillances
• Préconditions : • Enchaînements (Suite):
1. Il n’existe pas déjà un plan pour la même cour et la même semaine 2 – Modification de l’affectation d’une plage : Après avoir choisit un enseignant, le
2. Le responsable plan s’est authentifié au travers de la procédure de responsable peut choisir une plage horaire qui a déjà été affectée, le système
connexion modifiera la plage pour visualiser les initiales du nouvel enseignant. Le système
• Enchaînements : mettra aussi à jour l’ordre de la liste des enseignants et les statistiques des
enseignants concernés . Lorsque le nouvel enseignant ne peut pas assurer la
Ce cas d’utilisation commence lorsque le responsable plan demande la création surveillance soit parce qu’il a une contrainte soit parce qu’il a atteint son nombre de
d’un nouveau plan au système. surveillances maximum soit parce qu’il est affecté à une autre surveillance durant la
1 – Affectation d’un enseignant à une plage horaire : le responsable plan choisit un même plage horaire il faut exécuter l’extension : violation de contrainte.
enseignant dans une liste des enseignants triées par ordre de nombre de 3 – Enregistrement de plan : A tout moment le responsable de plan peut enregistrer
surveillances croissant. Ensuite, il choisit une plage horaire, le système visualise les un plan (éventuellement incomplet). Il pourra alors retrouver le plan dans l’état au
initiales de l’enseignant dans la plage et met à jour l’ordre de la liste des cours de sessions ultérieures. Lorsque le responsable de plan tente d’enregistrer un
enseignants ainsi que les statistiques de l’enseignant. Lorsque l’enseignant ne peut plan comportant une violation de contraintes il faut exécuter l’extension :
pas assurer la surveillance soit parce qu’il a une contrainte soit parce qu’il a atteint enregistrement de plan incohérent. Lorsque le responsable tente d’enregistrer un
son nombre de surveillances maximum soit parce qu’il est affecté à une autre plan vide, il faut exécuter l’extension: enregistrement de plan vide
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

Gestion des surveillances Gestion des surveillances


• Enchaînements (Suite): • De nouveaux C.U. ont étés découverts
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
• L’étude de gestion des statistiques doit commencer
des enseignants ainsi que leur ordre dans la liste sont mis à jour en conséquence • La création de plan comprend deux aspects :
1. Création d’un plan vide
5 – Impression de plan : A tout moment, le responsable de plan peut imprimer un
plan. Il obtient alors un tableau à deux dimensions selon le format défini par le 2. Edition de ce plan (affectation, modification d’affectation,
document… conforme au plan en cours de création. enregistrement, impression, annulation)
• Postconditions • La modification de plan comprend aussi deux aspects :
– Le plan enregistré n’est pas vide 1. Recherche du plan à modifier
– Le plan enregistré respecte les disponibilités des enseignants.
– Un enseignant ne se retrouve jamais affecté simultanément à deux
2. Edition de ce plan
surveillances
– Un enseignant ne dépasse jamais sa charge de surveillance

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

36
Gestion des surveillances Gestion des surveillances final

<<extend>> CUD Plan


Modification de plan Édition plan
Resp. Plan <<include>> <<include>>
Gestion des plans Resp. Plan
Connexion <<extend>>
<<include>>Edition de Plan Connexion Recherche plan
<<include>>
Consultation de plan
Consultation de plan Création de plan
Utilisateur
Consultation ciblée Utilisateur
<<extend>> <<extend>>
<<extend>>

Enreg. de plan incohérent


Consultation ciblée
Resp. PersonnelAdministrateur Enseignant Violation de contraintes Enreg. de plan vide
Resp. Personnel Administrateur Enseignant

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

Stéréotypes issus des Business Process Quelques heuristiques finales


• Définir un niveau d’abstraction par diagramme
• Ne pas présenter plus d’une dizaine de U.C. et d’acteurs
par diagramme
Travailleur Interne (Directeur commercial,…) • Une seule hiérarchie de généralisation par diagramme
• Un U.C. peut se transformer en acteur suit à des
orientations stratégiques
• Développer par incréments: Les U.C. principaux et les
U.C. inclus d’abord
Travailleur d’interface (Vendeur,…)

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

37
Quelques heuristiques finales Quelques heuristiques finales
• Un Use Case par Processus métier • Pour certains système pas de U. C. (Compilateurs)
• Nommer Les U. C. sous la forme Verbe + Nom en se référant à
• Processus métier : processus du domaine fournissant une l’objectif du U. C.
valeur ajoutée notable pour le métier • Créer / Modifier / Supprimer … X  Gérer X
– Exemples : Créer des commandes , effectuer des livraisons • Rechercher l’« essence » :
– Contre exemple : se connecter – Intention de l’acteur / Responsabilité du système.
Acteur: Login ⇒ S’identifier ⇒ Eviter le vol
Système : Mot de passe ⇒ Valider Identité ⇒ Protéger Ressource
• Diagrammes U. C. Sont très secondaires, 90 % de l’effort
doit être orienté vers la description textuelle
• Placer l’acteur principal à gauche du U. C. Le reste à
droite

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

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
Diagramme d’activités • 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 - 151 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 152

38
Diagramme d’activité : Exemple Diagramme d’activité
Transition • Activité : Etape d’un processus, calcul, manipulation de données,…
Départ
Recevoir commande • Transition : définit l’enchaînement des activités, la transition à lieu
Activité lorsque son activité source se termine
Fork • Condition (ou garde) : Une transition n’est franchissable que lorsque
sa garde éventuelle est vraie
Décision Créer BL Émettre Facture
• Décision : décrit un choix dans la transition à franchir. Chaque choix
est décrit par une garde, elles doivent être mutuellement exclusives
[prioritaire] [ordinaire] (if-else/case)
Expédition Expédition • Point de jonction : matérialise la rencontre de 2 chemins alternatifs
Garde Rapid poste Colis postal Encaisser paiement
• Départ et fin : Une entrée plusieurs sorties
• Concurrence : fork génération de tâches concurrentes, join
Point de Join synchronisation
jonction
Clôturer commande
Fin

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

Diagramme d’activités (UML 2.0) Diagramme d’activités (UML 2.0)


• Une activité est décomposable en actions atomiques • Le passage d’une action à l’autre est déclenché par
• Les actions peuvent consommer ou produire des objets – La fin d’une action
– Des données (attendues par une action) sont produites
• Le flot entre actions est décrit en utilisant des ‘arcs’
– Un événement externe se produit
(activity edge) et des nœuds de contrôle
• Il y a 2 sortes d’arcs représentés par une flèche • 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
– Les flots de contrôle : correspondent à une transition
nœud final l’activité se termine et toutes ses données sont
– Les flots d’objets : correspondent à une transition qui matérialise
le passage de données produites par une action et consommée perdues
par l’action suivante • Les décisions et les points de jonction sont des nœuds de
• Un arc peut être décoré par : le nom d’un événement, un contrôle. Ils peuvent être unifiés
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

39
Diagramme d’activités (UML 2.0) DA : Représentation graphique
• Les données en entrées d’un nœud fork sont dupliquées Gestion de plan
sur tous les arcs en sorties Connecteur
Afficher les cancel
• Un nœud fork et un nœud join peuvent être unifiés pour Plans existants
A
Préparer Encaisser Choix +
décrire une synchronisation suivie d’une génération articles paiement jonction [Recommencer]
• Un join peut être décoré par une condition booléenne fork + join [Nouveau] [Existant]
A
pour la synchronisation des taches ou une condition Créer plan Lire plan
booléenne sur des valeurs 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 - 157 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 158

Diagramme d’activités (UML 2.0) DA : Représentation graphique


• Les données transférés par un flot d’objet sont contenues dans un
Commande B. de livraison
nœud objet
Afficher les Input pin Traiter
• Les nœuds objets sont de trois types: objet, ensemble d’objet, signal Plans existants Commande Output pin
• 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 Set of Plan Ensemble B. L.
pin et d’un output pin correspond à un nœud objet d’objets Commande {read}
Traiter
• Un flot d’objet ou un pin peut être labellisé par l’action CRUD Commande
Livrer
effectuée sur l’objet ou par un filtre pour limiter les objets qui passent {create}
Créer plan Lire plan
à travers le flot OU
• Des contraintes d’ordre ou de taille maximale peuvent être décrite Flot
d’objet B. de livraison
pour un flot d’objet qui est alors considéré comme un buffer Nouveau Plan Traiter
plan {create} {read} Livrer
• L’état d’un objet peut être mentionné pour un nœud objet pour définir Commande
un filtre OU
Objet
• Un objet résultat d’une activité peut être une exception, l’activité est
interrompue et l’exception est propagée à l’activité suivante Objet exception Traiter B. De
Livrer
Commande {create} Livraison {read}

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

40
Diagramme d’activités (UML 2.0) DA : Représentation graphique
commande
• Un objet ‘central buffer’ modélise une queue d’objets Gestion des
commandes web
partagée entre un producteur et un consommateur <<Central buffer>> Gestion
asynchrones Gestion des
Commande des B.L

• Les partitions d’activités permettent d’associer un Commandes


magasin commande
responsable à une activité. Une partition pourra être Ou
décomposée en sous partition (Comptable)

Magasinier
Gestion Gestion Livrer Clôturer
• Les partitions d’activités peuvent être organisés par Commande Commande
Gestion
Commande BL Facture
rapport à une 2ème dimension qui décrit une perspective
particulière sur l’activité Facture

Comptable
• Une nœud fin de flot décrit la fin d’un flot dans une activité Gestion
Facture
Encaisser
Facture Paiement (Comptable)
composée de plusieurs flots concurrents Encaisser
Paiement
Partition

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

DA : Représentation graphique DA : Représentation graphique


Partition Seconde perspective
Sous partition Sous partition
Tunis Sousse


Magasinier
<<class>>

Gestion Gestion Livrer Clôturer


… … Commande Commande
Commande BL

Fin de flot
<<external>> <<class>>
Caissier

ou Gestion
Facture
Encaisser
Facture Paiement
Partition::Sous partition
Action
Payer
Client

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

41
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 Diagramme de classes
échéant

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

Introduction Rappels
• Le diagramme le plus exploité pour la génération de code
• Objet
• Roundtrip engineering : – Identité
Modéliser → Générer → Modifier → Modéliser ... – Etat
• Maintenir la cohérence entre le modèle et le source est un – Comportement
problème difficile • Encapsulation
• Veillez à respecter les règles du langage au niveau du • Abstraction
modèle (nom de classe, constructeurs, types de bases,...) • Classes
• Héritage
• Polymorphisme
– Surcharge
– Généricité
– Liaison dynamique

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

42
Classes 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}


Personne Personne Personne Personne ‘::’ : opérateur de portée
Nom CalculerAge Nom Propriété : Attribut valué ( au métamodèle) {Auteur=A. K} ou
NeLe : Date description; contraintes (OCL), pre/post conditions; Exceptions...
Visibilité: Public (+) Protégé (#) Privé(-) Paquetage (~)
CalculerAge Multiplicité : 0..N {Propriété: ordered, unique, required, ...}
Un objet ne peut Les attributs et opérations de classes sont soulignés
pas être un attribut 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 - 169 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 170

Classes Stéréotypes issus des Business Process


• D’autres compartiments peuvent être ajoutés Entité (Commande, Article,…)
Élément du domaine, état important
Gère sa propre intégrité
Nom Peu de connaissance sur son entourage(réutilisable)

Attributs Classe contrôleur


État très simple
Opérations régit le comportement de son entourage

Exceptions
Classe correspondant à une interface

• Une classe peut contenir une autre classe « Entité »


Nom_classel

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

43
Classes Classes
X

Propriété caractéristique de X
• Les notions de classe et d’ensemble sont
proches
:X :X
P(x)
:X

• La spécification d’une classe est analogue à la :X :X :X :X

description en compréhension d’un ensemble :X :X


:X :X

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

classe utilitaire classe énumération


• Stéréotype <<utilitaire>> (« utility ») • Stéréotype <<enumeration>>
• Tous les membres (donnés et opérations) sont statiques • Les attributs ne sont définies que par des valeurs
• Correspond à une bibliothèque de fonctions correspondant à des constantes
• Il n’y a pas de comportement
• Correspond au type enum

<<utilitaire>> <<enumeration>>
Math Feu
Rouge
sin(x:réel):réel Jaune
cos(x:réel):réel vert

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

44
Classes génériques classes d’interface
« Interface »
Nom Interface Nom Interface
Nom Interface
Client Implantation
Type,Variable
Une Classe Le client requière l’interface
‘Nom Interface’ qui lui est
fournie
Implantation
Implantation
« bind »
(UnType,Unevaleur)
• UML 2.0 autorise des ‘attributs abstraits’ (non implantés)
• Les interfaces peuvent être imbriquées
LaClasse • 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 - 177 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 178

Associations Association : Rôle

Relations structurelles entre objets Société


Employeur Employés
Personne

Le rôle est particulièrement utile lorsque


Association binaire l’association est réflexive

Emploie
Société Personne
Père de

Personne
Fils de

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

45
Association : Rôle (UML 1.4) Association : Cardinalités
•Le rôle peut avoir une visibilité +,- ou #
•Le rôle peut avoir un type, dans ce cas la classe réalise 1..*
plusieurs interfaces et le type limite celle qui est utilisée Société Personne

• 0..1
• M..N Combien d’occurrences de
Souris Clavier
• * ⇔ 0..N personne peuvent être
• V1, V2, V3 associées à une occurrence
Fenêtre
+Gest : Souris
Gestionnaire
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 - 181 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 182

Associations : contraintes sur les cardinalités Association : Qualificateur


*
Société Directeur : bool Personne

1..*
Hiérarchie Grade
{ordred}
Société N° CNSS Personne

•Il existe une relation d’ordre sur les grades • Réduit la cardinalité, permet un accès indexé, société
•Les opérations d’insertion de suppression, etc... requière l’accès indexé
doivent préserver cette relation
• Le qualificateur est un attribut de la classe qui va faire
•Plus généralement différentes contraintes peuvent être
exprimées
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 - 183 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 184

46
Association : Contraintes Association dérivée
Organise
Personne Concours 1..*
Personne 1..*
Société Pointage
{xor}
1..*
/Les pointages
Participe

• Correspond à une association transitive


• 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 - 185 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 186

Association : Navigation Associations porteuses d’information


Société Personne
* 1..*
Commande Article
Société x Personne

LigneCmde
QuantitéCmdée
• Dans le premier cas la navigation société vers personne
doit être supportée, la navigation de personne vers • L’information portée par l’information est représentée
société est indéfinie dans une classe ‘LigneCmde’
• Dans le deuxième cas la navigation de personne vers • La classe représente un couple (Commande, Article)
société ne sera pas supportée

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

47
Classe association Réification
* 1..* u v * 1..*
Commande Article C1 C2 Cmde Article
C3
LigneCmde * LigneCmde
Quantité * Récapitulatif
Ajout()
Suppression()

1 1..*
1 v Cmde LigneCmde
• L’association a un comportement et participe à d’autres C1 C3
associations *
u
• Une ligne de commande peut-elle partagée par plusieurs
1 1
commandes ?
C2 Article

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

Associations n-aires Agrégation


Relations structurelles entre objets
1 *
Paragraphe Ligne

* 2..*
*
*
Etudiant Droite Point
Professeur

* • Composé – composant
• Interfaçage, coordination des composants
Salle
• Propagation

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

48
Composition Généralisation
1 5 1..*
Voiture Roue Vol Dossier Article Article

Voiture Voiture

5 UML 1.4
LesRoues[5] : Roue Textile Luxe Alimentaire
Textile Luxe ...
Roue
•Héritage de propriétés et d’attributs
• Forme forte d’agrégation physique publiques ou protégés
• 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) •Extension, Redéfinition
• L’élément agrégé n’existe pas en dehors du composite
(création/destruction) •Héritage/Redéfinition des associations
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 193 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 194

Sous-classes Généralisation : discriminant


X
Propriété caractéristique de X
« PowerType » Véhicule
Motorisation
Milieu
Y Z
Propriété caractéristique de Y Propriété caractéristique de Z
VVoile VMoteur VTerrestre VMarin

:X :X
:X
:X :z :z
:Y Le discriminant (ou powertype) explicite le(s) critère(s) qui
:y
:Y
:y
:z
P(x) ont permis de dériver une spécialisation

P(y) y z P(z)
X

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

49
Généralisation Généralisation
X
Propriété carac téris tique de X
VMarin VAérien VTerrestre

Y Z
Propr iété cara c térist iq ue de Y P ropriété c arac téristique de Z

Hovercraft T P( T ) ⊇ P( Y ) ∪ P( z )
T
P ropriété c arac téristique de T

Héritage multiple :X :X
:X

:X :Y :Z :Z
:Y :T
:Y
:Z P(x)
X
P( Y ) Y z
P( z )
Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 197 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 198

Collision de noms Classe abstraite


Le nom des
T Classe abstraite classes abstraites
A est en italique

Classe concrète A Classe concrète B

X Y X Y
A A A de T A de T

:Y :z :z
Z Z
A de X A de T par X
:y
:Y
:y
:z
P(x)
A de Y A de T par Y
P(y) y z P(z)
X

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

50
Généralisation Généralisation : Contraintes
Article

Liste Tableau
{disjoint}
Luxe Alimentaire
<<implémentation>>

Liste Fixe
{overlapping, incomplete}
Unité Pack Pâtes Conserves

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

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

Autres Covariance
• Port : moyen de communication entre Deux classes A nim al
indépendamment de leurs technologies d’implantation, 2
classes si elles ont des ports compatibles pourront B ipède Quadrupède

communiquer même si elles sont implantées dans des


langages différents
Herbivore Carnivore Herbivore Carnivore

Anim al
Covarian c e

Carnivore Herbivore

Bipède Quadrupède Bipède Quadrupè de

Covariance

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

51
Délégation De la difficulté de classer

• Elimination de la covariance
• Dépendant du point de
A nim al vue
• Bien discriminer les objets
Station Nourriture

• Des exceptions

Bipède Quadrupède Herbivore Carnivore


• Stables et extensibles
• Covariance

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

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

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

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

52
Non respect du principe de substitution Implantation (1)
Oiseau
P lum es
B ec V oler()
Class Classe {
V oler()
{
M ettre la tête dans le sable
Classe private:
Le moineau
} s'envole Attributs Attributs
M ésange M oineau Aut ruc he
Public:
1: V oler
: M oineau
La m ésange Méthodes Méthodes
s'envole }
2: V oler
: S auve teur : Mésan ge

SousClasse
3: V oler
Class SousClasse : public Classe {…}
L'autruche se
cache la tête
Répertoire
: A utruche

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

Implantation (2) Implantation (3)

C1 C2 C1 C2

class C2 {
Class C1 { Class C1 { class C2 {
private:
private: private: private:

C2 LeC2 C2 LeC2 C1 LeC1
}
} } }

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

53
Implantation (4) Implantation (5)
*
C1 C2
0,1
C1 C2
Class C1 { class C2 {
private: private:
Class C1 { class C2 { Collection<C2> LesC2 C1 LeC1
private: private: } }
C2 *LeC2 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 - 213 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 214

Implantation Implantation (6)


• La composition s’implante par une classe interne privée
en Java
C1 Collection<C2>

C2
UnType
Collection

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

54
Implantation (7) Implantation (7)
Comme dans E/A :
<<persistant>> <<persistant>>
C1 C2 • C1, C2, C3 Relations
•Associations suivants cardinalités
•Héritage : Reférentiation ou Propagation ou les deux
<<persistant>>
C3 • 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 - 217 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 218

Implantation (8)
SGBDR + Langage Objet

C1
<<persistant>>
C1
Diagramme d’objets

ProxyC1

SGBDR

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

55
Introduction Objets
• 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
D1 : Disque D2
– Explorer des structures de données complexes : Hanoi
• Correspond à une ‘vue instantanée’ de l’application No = 1

• 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 - 221 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 222

Liens Liens

A1 : Article
C1 : Commande

N° : 123 D1:Disque
A1 : Article

• Il y a éventuellement d’autres articles, l’information sur la • Un objet est toujours implicitement lié à lui même
commande et les articles est éventuellement incomplète
• Association (diagramme de classe) # Lien (diagramme
d’objets)

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

56
liens n-aires Composition (UML 1.4)

:Voiture

:Roue :Roue
:Professeur :Elève
:Roue :Roue

:Salle

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

Introduction
• Permet d’expliciter la structure d’une configuration
(classe, composant, collaboration,...) en explicitant les
rôles des composants de la structure

Diagramme de structures
composites

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

57
Structure d’une classe Collaboration (UML 20)
V: Voiture
Nom collaboration
:Roue[5] V: Voiture

Une seule imbrication :Injection • 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,...)
:Moteur :Transmission • La structure d’une collaboration est définie par un
diagramme de structures composites, le comportement
• Le port est un mécanisme d’encapsulation, il définit un
point d’interaction est défini par des diagrammes d’interactions
• Il permet de spécifier les interfaces requises ou offertes • L’occurrence d’une collaboration est définie par un
• Un port ‘signal’ spécifie les signaux relayés, un port diagramme de classe ou une/plusieurs opérations d’une
‘service’ spécifie des services offerts classe

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

Collaboration et Design patterns Collaboration et Design patterns


Collaboration
• Les Design pattern sont typiquement décrits par des
2..*
collaborations /Composant
– Un DP introduits des rôles (ensemble de caractéristiques) qui Composite
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. *
/Feuille /Composite
Exemples :
 ‘: UneClasse’ : Une instance anonyme d’une classe
Occurrence de collaboration
 ‘: UneClasse’ : N’importe qu’elle instance d’une classe
 ‘Objet / Role : Classe’ : Un objet de la classe qui joue le rôle 2..*
Composant Réservation
 ‘/Role’ : Le rôle attendu Composite
 ...
Composite
Feuille
*
ResIndividuelle ResGroupe

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

58
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,...)
Diagrammes d’interaction : • Servent à clarifier, analyser, expliquer un comportement
diagrammes de séquences, complexe
• Ne modélisent pas tous les comportements possibles du
diagrammes de collaboration et système
diagrammes de communication • Permettent d’analyser le couplage

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

Diagramme de séquence Exemple


• Le diagramme de séquences et le diagramme de « acteur » « contrôleur » « entité » « entité » « acteur »
collaboration sont très similaires : ils permettent tous les :Resp. Plan :SelectionnerPlage :Plan :Plage SGBD
deux de décrire des échanges de message entre objets
Reserver(NoPlage,IdP) GetPlage(NoPlage)
• Le diagramme de séquences met en avant la dimension
return plage
chronologique
Pers=GetPers (idP)
• Permettent d’illustrer les scénarios définis pour les cas Reserver(Pers)
d’utilisations, peut être vu comme un déroulement d’un
cas d’utilisation
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 - 235 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 236

59
Diagrammes de séquences (SSD) Diagrammes de séquences
Sélecteur
: Système
Ali Salah : Hanoi : Disque : Disque : Disque
Décroche ... (suivant=null)
Emet ‘La’ Résoudre()
Déplacer( ) Déplacer( )
*[nbr]Compose chiffre ...
Sonnerie
Décroche
Connexion Connexion
Possession
du contrôle

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

Messages et Stimulus Messages et Stimulus


• Forme générale: préd / No Itér Cond Resultat:=opération • Message synchrone : l’appelant attend la fin du traitement
• Un message est la spécification d’un stimulus, UML 2.0 par le récepteur, il y a un retour (parfois implicite) associé
ne distingue pas entre message et stimulus Message : Retour :
• Un stimulus est défini par: les objets émetteurs et • Message asynchrone : l’appelant n’est pas bloqué par
récepteurs, un lien de communication (sauf pour l’envoi du message, ne peut pas avoir de retour
l’autoréférence). Il peut invoquer une opération sur l’objet Message : (ou UML 1.3 )
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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 240

60
Résultats Messages
X Y X Y X Y

Résoudre()

Résultat=Msg(Données) Délai
Msg(Données)
*[cd] Msg
t1 Itération
ou
{t2-t1 <2s} [cd1] Msg
Résultat
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
• Données prend la forme de paramètres effectifs habituels ou (UML
2.0) de paramètres effectifs nommés : symbolique, on peut référencer
les attributs date émission,
par1 = val1, par2 = val3, par3 = - date réception

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

Création / Destruction Autoréférence


Ou (UML 2.0) X Y
X X
X
Msg
Créer Message Msg
Y

retour
Détruire
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 - 243 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 244

61
Contraintes (UML 2.0) Suspension (UML 2.0)

« acteur » « contrôleur » « entité » « contrôleur » « entité »


:Resp. Plan :SelectionnerPlage :Plage :SelectionnerPlage :Plage

Actif
Annuler
Reserver(NoPlage,IdP) Reserver(Pers)
return OK
{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) • Le contrôleur est suspendu jusqu’à la fin de l’annulation
• Un contrainte peut aussi être exprimée sous forme de propriété (équivalent à message synchrone ?)

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

Diagramme de collaboration (UML 1.4) 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 1: Résoudre()
1.1: Déplacer(1,3 )
• La chronologie est déduite de la numérotation
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 - 247 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 248

62
Diagramme de collaboration (UML 1.4) Diagramme de communication
*[tous]Touver(NoImmatricultion)
1:M(A)
:sociéte :Employé O A
return Emp

:Emp
« Local »

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 - 249 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 250

Diagramme de communication Diagramme de communication


Objet Actif Objet Actif

X A.1, B.1 /M3 Y


:Société :Employé
A:M1 U B:M2
1:*[Age>40] Augmenter

Z T

A.1:… B.1:…

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

63
Cadre (UML 2.0)

sd Entête

Corps
Diagramme de machines à
états

• 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 - 253 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 254

Diagramme de machines à états Diagramme de machines à états


• Inspirés des statecharts de D. Harel et incluent des • Certains systèmes (ou parties de systèmes) sont
concepts issus des machines de moore et de mealy purement fonctionnels (sans mémoire : fonction sinus)
• Modélisation des aspects contrôle et temps du système d’autres ont un mode de fonctionnement continu (sans
états: filtre digital)
• Se rapprochent du MCT de MERISE
• Les machines à états sont utiles pour décrire des
• Secondaires pour les SI primordiaux pour les STR
objets/classes exhibant un comportement complexe,
• Un (ou plusieurs) diagrammes E/T décrivent le réactif et ayant plusieurs interactions avec
comportement d’une classe, mais ils peuvent aussi l’environnement.
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

64
Diagramme de machines à états État
Nom état
Nom état Nom état
E1

entry/ Action 1
exit/ Action 2 • Abstraction d’un ensemble de valeurs. Exemples:
on Ev( Info )[ Cd ]/ Action 3 – Four : Marche, Arrêt, Chaud, froid, Pile : vide, pleine
do/ Activité – Personne : Active, Au chômage
• Caractérisation d’un comportement. Exemples:
Evnmt( info )[ Garde ] / Action,Objet.Événement
– Pile : Attente, Empilement
– Four : Chauffage
E2 • 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 - 257 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 258

États É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 Etat initial Etat final
cet état)
• Composite : État constitué de plusieurs machines • Pseudo-états
appartenant à plusieurs régions • Un seul état initial par niveau hiérarchique
• État sous machine : l’état spécifie un point d’entrée et un • 0, 1 ou Plusieurs états finaux par niveaux hiérarchique
point de sortie d’une sous machine réutilisable • 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 - 259 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 260

65
Transitions Transitions composites (UML 1.4)
Marche • Regroupent des gardes alternatives pour un événement
OuverturePorte()/LumiereOn ()

• Relie 2 états (non nécessairement distinct) et matérialise


un changement d’état possible du système Lecture Carrefour

• Le changement d’état est instantané Envoi Changement(Feu)


• Une transition non étiquetée (transition automatique) est [NbrElem = 1] [NbrElem > 1] [Feu = Rouge] [Feu = Vert]
déclenchée automatiquement à la fin du traitement de son
état source Copier Trier Arrêter Traverser
• Transition interne : Traitement pouvant entraîner une
réponse de la machine mais pas un changement d’état,
Jonction statique Jonction dynamique
traité éventuellement au niveau d’une sous machine

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

Triggers (Événements UML 1.4) Types de triggers


Allumage() après(3s)
Empilement(val:ent) Arrêt Marche Demande Serv. occupé
Vide Occupée
• Appel : appel d’opération(message du D.S.). Stéréotypes:
<<Crée>> et <<Détruit>>. La création provoque la
transition initiale
• Un événement est associé à une transition, son émetteur • La détection d’une situation particulière dans
n’est pas spécifié, le traitement de l’événement est lié à l’environnement
l’état courant – Une certaine condition devient vraie : Persiste lorsque
• Occurrence d’une situation dans le domaine du problème l’expression redevient fausse. Syntaxe : quand (Expression
• Instantané et porteur d’informations : booléenne)
– Temporel : écoulement d’un instant temporel relatif ou absolu.
NomTrigger(par1: type1,…parn: typen) Syntaxe : après (x secondes) : x secondes après l’accès à l’état
• Peut correspondre à un message du diagramme de courant. après (x secondes à partir de y). quand (date= un
séquences instant)

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

66
Types de triggers Garde
• Trigger <<signal>>: provoque une réaction asynchrone • Expression booléenne qui conditionne le
sans réponse déclenchement d’une transition. La transition est
– Peut correspondre à une classe, l’information portée fait alors franchie lorsque son événement se produit et que
partie de l’état. Les exceptions sont des signaux sa garde est vraie
– Les événements <<signal>> peuvent être organisés en
hiérarchies de classe ⇒ transitions polymorphes • Lève l’indéterminisme
• [Expression1] par rapport à quand(Expression2)
<<signal>> – Expression1 est évaluée à chaque fois que
Entrée Util.
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
<<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 Adel KHALFALLAH - Génie logiciel - Méthodologies de conception - Institut Supérieur d’Informatique - 266

Actions Actions
traitement atomique instantané (ininterruptible – run-to- • Action Deffered
completion semantic) pouvant manipuler l’état, étiquetant – Permet de différer le traitement d’un événement
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() Etat1 e1
Evnt(info) / A e2 Etat3
Chaud Surchauffe e2 /deffered Etat2

e3

E
•Lorsque la séquence e2,e1 se produit le système se
…/A1 …/A1
…/A1 retrouve dans l’état 3 (en passant par l’état 2)
…/A2
E ⇔ Entry/ A1
…/A2 …/A2 Exit/ A2 •Lorsque la séquence e2,e3 se produit e2 est perdu
Evnmt(info) / A

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

67
Activités Liens avec le diagramme de séquences
• Traitement associé à un état et ayant une durée
X
• Lorsque le traitement n’est pas terminé et qu’un
événement validant une transition se produit, il est Msg1
interrompu
• Lorsque le traitement se termine sans occurrence
Etat
d’événements, le système reste en attente dans l’état.
• Lorsque la transition n’est pas étiqueté le système quitte
Msg2
l’état à la fin du traitement
• Ne peuvent pas changer l’état de l’objet concerné par la Événement
machine
• Diagramme de séquence peut se voir comme un chemin
Do Activité
dans un diagramme état/transition

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

Liens avec le diagramme de séquences Exemple


: Système Affecter(Periode) [Periode ∈ Contraintes] Affecter[Période ∉Contraintes]
Ali
Attente
Décroche Décroche
Emet ‘La’ Tonalité Contrainte Affectation
Compose
*[nbr]Compose chiffre Composition
Compose

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


Connexion Désaffecter

Communication

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

68
États composites Etat souche
• Un état peut se décomposer en sous états disjoints (ou) à • permet d’abstraire un sous-état source ou destination
leurs tours décomposables • Les actions d’entrée sont exécutées séquentiellement du
• À tout moment le système est dans un seul état niveau hiérarchique le plus élevé au plus faible et
inversement pour les actions de sortie
• Les transitions automatiques sont franchies lorsque le
Etat composite
sous diagrammes atteint un état final

E1
E1 E2
E2 SM1
⇔ E5
E5
E3 SM2
E4 E3
E4

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

Example 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)
Régalage Minutes • L’entrée dans un état conjonctif correspond à l’entrée vers tous les états
Réglage H Appui B2 initiaux, la sortie fait sortir de toutes les régions
Clignot. M
B1 Attente • Les transitions automatiques sont franchies lorsque les sous diagrammes
DO Clignoter des différentes régions ont atteint un état final
Minutes Relache B2/Min=Min+1

B1 Relâche B2
Affichage B1 Défilement
DO Inc. Min Délai A B C
DO Affiche Tous les 0.1 s
Heure/Min/Sec U V W

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

69
Forme conjonctive et forme disjonctive Diagrammes Etats / Transitions
• Une décomposition conjonctive peut être transformée en • Transitions entre états concurrents
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

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

70