Académique Documents
Professionnel Documents
Culture Documents
Ministère de l’Enseignement Supérieur وزارة اﻝﺘﻌﻠﻴم اﻝﻌﺎﻝﻲ و اﻝﺒﺤث اﻝﻌﻠﻤﻲ Objectifs de la matière
et de la Recherche Scientifique
ﺠﺎﻤﻌﺔ ﻗﺎﻝﻤﺔ
Université 08 mai 1945 Guelma
Faculté des Mathématiques et de
l’Informatique et des Sciences de la
ﻜﻠﻴـﺔ اﻝرﻴﺎﻀﻴﺎت و اﻹﻋﻼم اﻵﻝﻲ وﻋﻠوم اﻝﻤﺎدة
• Le module vise à:
Matière اﻹﻋﻼم اﻵﻝﻲ:ﻗﺴم
– Comprendre les principes fondamentaux de l’approche orienté
Département d’Informatique
objet
– Identifier les apports de la modélisation UML
– S’initier aux techniques de modélisation orientées objet.
• Coefficient: 2
Cours: Génie Logiciel 1 • Crédit: 4
DJAKHDJAKHA L. • Mode d’évaluation:
ldjakhdjakha@yahoo.fr – Contrôle continu: 40%
– Examen écrit: 60%
Génie logiciel 1
2
L’informatisation
Génie logiciel 1
6
• Elle est le client du projet d’informatisation. • Il est le commanditaire de l’opération et, à ce titre, il doit
en définir les enjeux, les objectifs et les exigences
• C’est au sein de la maîtrise d’ouvrage que l’on qualité (avec l’aide de son représentant et de la maîtrise
trouve les experts métier et les groupes de d’œuvre le cas échéant).
validation. • Il est le propriétaire de l’application qui est réalisée.
• Il est le donneur d’ordre et met en place les
• Elle regroupe les acteurs suivants : financements nécessaires.
– Le maître d’ouvrage, • Il décide du déploiement ou non de l’application.
– Le représentant de la maîtrise d’ouvrage
– Les utilisateurs,
– Etc ...
Le représentant de la maîtrise
Les utilisateurs
d’ouvrage
• Il représente le maître d’ouvrage tout au long du • Les utilisateurs ne participent pas au management
projet. de projet mais il paraît néanmoins important de
• Il a pour rôle : rappeler que ce sont les bénéficiaires de
– D’assurer la conduite générale du projet, l’application et, qu’à ce titre, ils sont finalement les
vrais juges de la qualité des produits livrés.
– De veiller au respect des objectifs généraux du projet,
• Plusieurs niveaux d’utilisateurs interviennent dans
– De produire l'expression des besoins, l’élaboration des produits :
– De gérer les enveloppes financières, – L’utilisateur final utilise l’application quotidiennement. Il
– De valider les documents relatifs au projet ainsi que apporte les besoins d’ergonomie et d’organisation de son
les maquettes et les prototypes, poste de travail,
– De préparer et exécuter la recette de l’application, – Le responsable du service utilisateur donne son avis sur
les choix organisationnels,
– De mettre en place les mesures d’accompagnement – Les utilisateurs de niveau hiérarchique supérieur
du changement. définissent les objectifs stratégiques.
Génie logiciel 1 17 Génie logiciel 1 18
• Il recense les besoins techniques. • Il réalise les applications décrites dans les spécifications
• Il élabore les architectures logicielle et applicative. fonctionnelles, en tenant compte de l’architecture
• Il identifie les besoins en produits tiers (composants applicative, des frameworks techniques et des règles de
techniques et fonctionnels) et frameworks techniques. développement.
• Il développe donc les classes métier dans un
développement objet.
• Il réalise les bibliothèques de composants et les • Il définit les dispositions d’assurance qualité formalisées
frameworks techniques en collaboration avec dans le plan d’assurance qualité.
l’architecte. • Il veille à la mise en application de ces dispositions.
• Il développe donc les classes techniques de bas niveau • Il définit les actions correctives si les dispositions ne sont
dans un développement objet. pas appliquées.
• Il vérifie et rend compte de la mise en application de ces
actions.
• Il est constitué :
– Du maître d’ouvrage qui en assure la présidence et de son
représentant, • Il est composé au minimum du représentant de la
– Des représentants des utilisateurs de l’application, maîtrise d’ouvrage et du chef de projet.
– Du maître d’œuvre et du chef de projet, • Il est en charge du pilotage opérationnel du projet,
– Des maîtres d’ouvrage des applications communicantes. s’assure que le projet poursuit les objectifs initiaux et
• Il lance officiellement le projet et valide les livrables détecte les dérives éventuelles.
stratégiques du projet (analyse et conception • Il analyse périodiquement les livrables et, en fonction
fonctionnelles, conception technique). des résultats, met à jour le planning de suivi.
• Il valide le produit final sur la base de la recette et de
l’expérimentation en site pilote et autorise la mise en
exploitation.
Fiabilité (reliability)
Capacité fonctionnelle (functionality)
Ensemble d'attributs portant sur l'effort nécessaire Ensemble d'attributs portant sur le rapport existant
pour l'utilisation et l'évaluation individuelle de cette entre le niveau de service d'un logiciel et la quantité
utilisation par un ensemble défini ou implicite de ressources utilisées, dans des conditions
d'utilisateurs : déterminées :
– Facilité de compréhension, – Comportement par rapport au temps (temps de réponse),
– Facilité d'apprentissage, – Comportement par rapport aux ressources (mémoire,
– Facilité d'exploitation (trouver de nouvelles fonctions). stockage des données en persistance).
Ensemble d'attributs portant sur l'effort Ensemble d'attributs portant sur l'aptitude du
nécessaire pour faire des modifications logiciel à être transféré d'un environnement à
données: l'autre :
– Facilité d'analyse (trouver la source d’erreurs), – Facilité d'adaptation (... à différents environnements),
– Facilité de modification, – Facilité d'installation,
– Stabilité (risque d’effets imprévus après modification), – Conformité aux règles de portabilité,
– Facilité de validation (... après modification). – Interchangeabilité (substitution par un autre logiciel
similaire).
Génie logiciel 1
40
• Modéliser un système avant sa réalisation permet de • Dans le domaine de l'ingénierie du logiciel, le modèle
mieux comprendre le fonctionnement du système. permet de mieux répartir les tâches et d'automatiser
• C'est également un bon moyen de maîtriser sa certaines d'entre elles.
complexité et d'assurer sa cohérence. • C'est également un facteur de réduction des coûts et
• Un modèle est un langage commun, précis, qui est des délais.
connu par tous les membres de l'équipe et il est donc, à • Le choix du modèle a donc une influence capitale sur les
ce titre, un vecteur privilégié pour communiquer. solutions obtenues.
• Selon les modèles employés, la démarche de
modélisation n'est pas la même.
• Le cycle de vie d'un logiciel (en anglais software lifecycle), Le cycle de vie du logiciel comprend généralement au
désigne toutes les étapes du développement d'un logiciel, de
sa conception à sa disparition. minimum les étapes suivantes :
• L'objectif d'un tel découpage est de permettre de définir des • Analyse des besoins et faisabilité
jalons intermédiaires permettant :
• la validation du développement logiciel, c'est-à-dire la conformité du c'est-à-dire l'expression, le recueil et la formalisation
logiciel avec les besoins exprimés, et des besoins du demandeur (le client) et de l'ensemble
• la vérification du processus de développement, c'est-à-dire des contraintes, puis l'estimation de la faisabilité de ces
l'adéquation des méthodes mises en œuvre.
• L'origine de ce découpage provient du constat que les erreurs besoins ;
ont un coût d'autant plus élevé qu'elles sont détectées • Spécifications ou conception générale
tardivement dans le processus de réalisation.
• Le cycle de vie permet : il s'agit de l'élaboration des spécifications de
• de détecter les erreurs au plus tôt et ainsi l'architecture générale du logiciel
• de maîtriser la qualité du logiciel, les délais de sa réalisation et les
coûts associés.
Les étapes de cycle de vie (2/5) Les étapes de cycle de vie (3/5)
Les étapes de cycle de vie (4/5) Les étapes de cycle de vie (5/5)
• Le cycle de vie du logiciel débute par la décision de • Le cycle de vie en cascade a été décrit par
réaliser le logiciel et se termine par la décision de ne Royce dès 1970.
plus le garder en exploitation. • Il présente le développement logiciel comme
• Il y a trois principaux modèles de cycle de vie : une suite de phases qui s’enchaînent dans un
– Les cycles de vie linéaires, déroulement linéaire, depuis l’analyse des
– Les cycles de vie en « V », besoins jusqu’à la livraison du produit au client.
– Les cycles de vie itératifs et incrémentaux. • Le développement en cascade est en général
rythmé par la génération de documents qui
servent de validation pour le passage d’une
phase à l’autre : ce sont les livrables ou produits
finis documentaires.
• Chaque phase est donc achevée avant que ne
débute la suivante.
Génie logiciel 1 49 Génie logiciel 1 50
Analyse des besoins • Des difficultés surviennent s’il est impossible d’obtenir de
Validation l’utilisateur un énoncé complet et cohérent de ses
Conception globale besoins.
Validation • L’environnement du logiciel peut être tellement mouvant
Conception détaillée qu’il est difficile de construire le logiciel sur des
Validation spécifications figées.
Codage
Tests unitaires
Intégration
Vérification du produit
Conception préliminaire,
sur la base des choix amont
de découpage en sous-
systèmes, avec les choix de
Conception détaillée, sur la base des choix
découpage en modules et la
amont de découpage en modules, avec la
description des principaux
description des traitements des modules.
traitements de ces modules.
Ce niveau de conception permet de préparer les
Ce niveau de conception
tests unitaires de chaque module. En effet, tous
permet de préparer les tests
les scenarii de tests des modules sont cohérents
d’intégration des modules.
avec les algorithmes prédéfinis.
En effet, tous les scenarii de
tests correspondants sont
cohérents avec les principes
d’utilisation de ressources
entre modules .
Le modèle en « W » (1/2)
Le modèle en « V » (7/7)
• Ce modèle est une variante du modèle en « V ».
Exigences
brutes
Spécification des
IHM du système
Validation ou tests
d’acceptation
• Les cycles de vie sont trop longs.
• Les relations entre les clients et les fournisseurs
ne sont pas suffisamment formalisées.
Vérification des Conception des Intégration et tests
flux logiques sous-systèmes des sous-systèmes • Ils ne gèrent pas les risques.
• L’intégration est trop tardive dans le cycle de vie.
Conception des Intégration et tests
modules des modules
• La documentation est réalisée d’abord et le
2ème cycle de Goldberg logiciel après …
Codage et
tests unitaires
Les méthodes d'analyse et de conception fournissent une • La distinction entre composition et décomposition :
méthodologie et des notations standards qui aident à
Elle met en opposition d'une part les méthodes
concevoir des logiciels de qualité. Il existe différentes
ascendantes qui consistent à construire un logiciel par
manières pour classer ces méthodes, dont :
composition à partir de modules existants et, d'autre part,
les méthodes descendantes qui décomposent
récursivement le système jusqu'à arriver à des modules
programmables simplement ;
• Les méthodes fonctionnelles (également qualifiées de méthodes • L'approche fonctionnelle dissocie le problème de la
structurées) trouvent leur origine dans les langages procéduraux.
représentation des données, du problème du traitement
• Elles mettent en évidence les fonctions à assurer et proposent une
approche hiérarchique descendante et modulaire. de ces données.
• Ces méthodes utilisent intensivement les raffinements successifs • Sur la figure diapo 71, les données du problème sont
pour produire des spécifications dont l'essentiel est sous forme de représentées sur la gauche. Des flèches transversales
notation graphique en diagrammes de flots de données.
• Le plus haut niveau représente l'ensemble du problème (sous forme matérialisent la manipulation de ces données par des
d'activité, de données ou de processus, selon la méthode). sous-fonctions.
• Chaque niveau est ensuite décomposé en respectant les • Cet accès peut-être direct (c'est parfois le cas quand les
entrées/sorties du niveau supérieur.
données sont regroupées dans une base de données),
• La décomposition se poursuit jusqu'à arriver à des composants
maîtrisables ou peut être réalisé par le passage de paramètre depuis
le programme principal.
• L'approche objet considère le logiciel comme une Un objet est caractérisé par plusieurs notions :
• L'identité
collection d'objets dissociés, identifiés et possédant des l'objet possède une identité, qui permet de le distinguer des autres
caractéristiques. objets, indépendamment de son état. On construit généralement cette
identité grâce à un identifiant découlant naturellement du problème (par
• Une caractéristique est : exemple un produit pourra être repéré par un code, une voiture par un
– soit un attribut (i.e. une donnée caractérisant l'état de l'objet), numéro de série, etc.) ;
• Les attributs
– soit une entité comportementale de l'objet (i.e. une fonction).
il s'agit des données caractérisant l'objet. Ce sont des variables
• La fonctionnalité du logiciel émerge alors de l'interaction stockant des informations sur l'état de l'objet ;
entre les différents objets qui le constituent. • Les méthodes
les méthodes d'un objet caractérisent son comportement, c'est-à-dire
• L'une des particularités de cette approche est qu'elle l'ensemble des actions (appelées opérations) que l'objet est à même
rapproche les données et leurs traitements associés au de réaliser. Ces opérations permettent de faire réagir l'objet aux
sollicitations extérieures (ou d'agir sur les autres objets). De plus, les
sein d'un unique objet. opérations sont étroitement liées aux attributs, car leurs actions
peuvent dépendre des valeurs des attributs, ou bien les modifier.
• La difficulté de cette modélisation consiste à créer une • L’apparition du paradigme objet à permis la naissance
représentation abstraite, sous forme d'objets, d'entités de plusieurs méthodes de modélisation
ayant une existence matérielle (chien, voiture, ampoule, – OMT (Object Modeling Technique), OOSE, Booch, Fusion, …
personne…) ou bien virtuelle (client, temps…). • Chacune de ces méthodes fournie une notation
• La Conception Orientée Objet (COO) est la méthode qui graphique et des règles pour élaborer les modèles
conduit à des architectures logicielles fondées sur les • Certaines méthodes sont outillées
objets du système, plutôt que sur la fonction qu'il est
censé réaliser.
En résumé (2/2)
Chapitre 2/ Modélisation avec UML
• L’approche objet nécessite une démarche itérative et
incrémentale, c’est-à-dire que le concepteur doit faire
des allers-retours entre les diagrammes initiaux et,
1. Introduction
2. Éléments et mécanismes généraux
• Les besoins du client et des utilisateurs perçus au fur
et à mesure de la conception du logiciel afin de le 3. Les diagrammes UML
modifier si nécessaire. 4. Paquetages
• L’approche objet est guidée par les besoins du client.
• L’approche objet est centrée sur le diagramme de
classes qui décrit aussi bien des actions que des
informations dans une même entité. Les autres
diagrammes nous aident à voir clair dans les besoins et
dans la solution qui est à développer. Ils permettent de
compléter le diagramme de classes.
Génie logiciel 1 81
• Le rôle de la maîtrise d’ouvrage va croissant depuis • Au début des années 90, les méthodes objets ont
quelques années et exige des connaissances et un cherché à s’implanter. Succès mitigé : après avoir
savoir-faire spécifiques. sérieusement investi sur une méthodologie, les
• L’art de produire un cahier des charges porte même un entreprises freinent tout changement qui n’est pas
nom, l’ingénierie des besoins (requirements solidement justifié.
engineering). • La donne commence à changer et UML (Unified
• Il y a plus de vingt ans, la méthode Merise était parmi les Modeling Language, Langage de modélisation unifié) se
premières à prendre en compte le point de vue des présente aujourd’hui comme une alternative sérieuse.
gestionnaires, en proposant des modèles pour
représenter les aspects conceptuels (le sens des
informations, la structuration du système de gestion) et
organisationnels (choix d’informatisation, choix de
répartition du travail…).
Génie logiciel 1 83 Génie logiciel 1 84
UML est le résultat de la fusion de trois méthodes • La méthode OMT, Object Modeling Technique, a été
d’analyse orientées objet : OOD, OMT et OOSE. mise au point à General Electric.
• La méthode OOD, Object Oriented Design, de G.Booch • Ses auteurs ont puisé leur inspiration:
a été conçue à la demande du Ministère de la Défense – d’une part dans les langages à objets pour des applications
des USA. d’informatique industrielle (automates, contrôle de processus...),
– L’objectif était de préparer de façon rigoureuse la structuration – d’autre part dans les techniques de modélisation conceptuelle
des programmes écrits en langage ADA ou C++. des méthodes d’analyse des années 80.
• OMT représente un système comme un assemblage
d’éléments auxquels on attache des comportements,
c’est-à-dire des opérations pouvant être déclenchées à
la réception d’un message envoyé par d’autres
composants.
Un peu d’histoire pour mieux comprendre (3/5) Un peu d’histoire pour mieux comprendre (4/5)
• La méthode OOSE, Object Oriented Software • La société Rational Software a réuni les auteurs
Engineering, est d’origine universitaire (informatique principaux de ces trois méthodes pour qu’ils se mettent
temps réel) et industrielle (Ericsson). d’accord sur un langage de modélisation dans l’espoir
• Son originalité consiste à faire reposer l’analyse sur une qu’il devienne une référence.
expression par l’utilisateur de la façon dont il pense • Sa réussite fut d’être retenu comme norme de
utiliser le futur système. modélisation par l’OMG, après avoir reçu le soutien de
plusieurs grands constructeurs informatiques et éditeurs
de logiciels. Ce langage a passé par différents stades
et est encore en évolution.
• OMG: Object Management Group, organisme de normalisation pour le monde objet : www.omg.com
• Editeurs logiciels, Notamment DEC, HP, i-Logix, Intellicorp, IBM, ICON Computing, MCI Systemhouse, Microsoft
Oracle, TI et Unisys. Aucun d’eux n’était jusque-là un acteur public dans le domaine méthodologique.
Mars 1999 UML 1.3 Task Force constituée par l’OMG Amélioration de la version 1.1
En cours UML 2.0 Revision Task Force, constituée par l’OMG Amélioration de la version 1.3
Un langage de modélisation doit comprendre : • Un objet est une entité identifiable du monde réel qui
• éléments du modèle – des concepts de modélisation contient à la fois des données et des traitements (les
fondamentaux et une sémantique ; données sont appelées attributs et les traitements
• une notation – une interprétation visuelle des éléments opérations ou méthodes).
du modèle ; • Un objet peut avoir :
– une existence physique comme un cheval, un livre, …
• aide en ligne (lignes de guidage) – idiomes de l’usage.
– Ou ne pas en avoir comme un texte du loi, …
Abstraction Abstraction
• L’abstraction est un principe très important en
modélisation. • L'abstraction est une simplification indispensable au
processus de modélisation.
• Elle consiste à retenir uniquement les propriétés
pertinentes d’un objet pour un problème précis. • Un objet UML est donc une abstraction de l'objet du
monde réel par rapport aux besoins du système, dont
• Les objets utilisés en UML sont des abstractions d’objets on ne retient que les éléments essentiels.
du monde réel.
• Exemples:
– on s’intéresse aux chevaux pour l’activité de course. Les
propriétés d’aptitude de vitesse, d’âge et d’équilibre mental ainsi
que l’élevage d’origine sont pertinentes pour cette activité et sont
retenues.
Classe d’objets
• Un ensemble d'objets similaires, c'est-à-dire possédant Les classes se désignent par un nom (1re partie),
la même structure et le même comportement et contiennent des attributs (2ème partie) et des méthodes
constitués des mêmes attributs et méthodes, forme associées (3ème partie) :
une classe d'objets. La structure et le comportement • les attributs sont des propriétés caractéristiques de la
peuvent alors être définis en commun au niveau de la classe. Les attributs peuvent être privés, publics,
classe. protégés. Ils sont le plus souvent privés. Les classes
• Chaque objet d'une classe, encore appelé instance de respectent le principe d’encapsulation des données ;
classe, se distingue par son identité propre et possède • les méthodes sont des procédures spécifiques à une
des valeurs spécifiques pour ses attributs. classe. Elles sont le plus souvent publiques. Elles
peuvent être privées : on parle dans ce cas de méthodes
d’implémentation.
n°elève: entier
attributs Elève
nomElève: car
adresse: car Elev2005001: Elève Elev2005001 : Elève
opérations
inscrire() 2005001 2005001 2005001
mouhamed mouhamed mouhamed
1 rue de 19 juin 1 rue de 19 juin 1 rue de 19 juin
– Lorsqu'il court, un cheval va effectuer différents mouvements • On dit que les informations (qui sont des données) et les
comme lever les jambes, lever la tête, lever la queue. Ces comportements (qui sont les traitements ou encore
mouvements sont internes au fonctionnement de l'animal et
n'ont pas à être connus à l'extérieur. Ce sont des méthodes
méthodes ou opérations) d’un objet sont encapsulés.
privées. Ces opérations accèdent à une partie interne du cheval En effet celles-ci sont à l’intérieur d’une entité (objet).
: ses muscles, son cerveau et sa vue. Cette partie interne est • Intérêt de l’encapsulation : On peut protéger le
représentée sous la forme d'attributs privés. contenu des classes d’une manipulation maladroite et ou
mal intentionnée.
• Un objet est caractérisé par ses données et ses
traitements mais il est aussi caractérisé par une partie
publique, une partie privée et une partie implémentation,
c’est ce que l’on appelle l’abstraction.
• On dit que les données ont un accès privé c’est à dire • Si les traitements sont publics, ceux-ci appartiennent à
que seuls les traitements de cet objet peuvent, le cas l’objet et peuvent être appelés et modifier les données.
échéant, modifier ces données (attention les données • Si les traitements sont privés, alors seuls des
peuvent être aussi publiques mais cela n’a aucun traitements publics appartenant à l’objet pourront
intérêt). déclencher l’exécution des traitements privés (à
• Les traitements extérieurs à l’objet ne peuvent pas condition qu’ils figurent dans le codage).
modifier les données de l’objet. • Les traitements privés sont appelés méthodes
• Les traitements ont un accès privé ou public. d’implémentation .
• On parle d’héritage lorsque l’on a affaire à des objets et • Intérêts de l’héritage : L’héritage permet la réutilisation
des classes et de généralisation / spécialisation du code.
uniquement pour des classes. • En effet lorsque l’on va instancier une classe
spécialisée, le code des attributs et des méthodes de la
• On distingue deux types d’héritage : classe héritée ne seront pas implémentés à nouveau.
– l’héritage simple , • L’autre avantage de l’héritage et qu’il permet
– l’héritage multiple. l’organisation hiérarchique des classes. C’est à dire qu’il
• On va factoriser les attributs et les méthodes communs à rend plus aisé l’exploration et la maintenance d’une
plusieurs classes dans une classe principale : on parle bibliothèque de classe pour une équipe de
de généralisation. développement.
• Les classes dérivées deviennent des sous-classes : on
parle de spécialisation.
Génie logiciel 1 105 Génie logiciel 1 106
• L'encapsulation consiste à masquer des attributs et • Le polymorphisme est la possibilité pour un même
des méthodes de l'objet vis-à-vis des autres objets. message de déclencher des traitements différents,
• En effet, certains attributs et méthodes ont pour seul suivant les objets auxquels il est adressé.
objectif des traitements internes à l'objet et ne doivent • Le mécanisme de polymorphisme permet donc de
pas être exposés aux objets extérieurs. donner le même nom à des traitements différents.
• Encapsulés, ils sont appelés les attributs et méthodes
privés de l'objet.
• L'encapsulation est une abstraction puisque l'on simplifie
la représentation de l'objet vis-à-vis des objets
extérieurs.
• Cette représentation simplifiée est constituée des
attributs et méthodes publiques de l'objet.
Génie logiciel 1 107 Génie logiciel 1 108
• Intérêt du polymorphisme : Le polymorphisme permet UML exprime ses concepts à travers différents
de donner le même nom à des traitements différents ou diagrammes graphiques qui correspondent à des vues
encore, permet le choix dynamique d’un traitement en particulières du système :
fonction de l’objet auquel il est appliqué (en effet le choix • la vue logique. Elle fait référence aux diagrammes de
de la méthode polymorphe à exécuter est déterminé à classes (class diagrams). C’est au niveau de cette vue
l’exécution du programme. que l’on va utiliser la plupart des concepts objets ;
• C’est pour cela qu’on dit qu’elle est dynamique, par
opposé à statique qui est déterminé lors de la
compilation).
• la vue des cas d’utilisation (vue fonctionnelle) qui fait • Diagramme des cas d’utilisation
référence aux diagrammes des cas d’utilisation (use – Besoins des utilisateurs
cases diagrams) et des acteurs. On va s’intéresser aux • Diagramme de classes
fonctionnalités du système ; – Description statique des données et des traitements
• la vue des composants (components view). Elle • Diagrammes d’objets
représente l’ensemble des composants logiciels ainsi – Instances des classes
que les tâches ; • Diagramme états-transitions
• la vue de déploiement (deployment view). Elle décrit – États des objets selon les événements
les différentes ressources matérielles et l’implantation du • Diagramme d’activités
logiciel dans ces ressources.
– Vue des enchaînements des activités d’un cas d’utilisation ou
d’une opération
• rassembler les données utilisées par le système dans des entités • les relations interclasses : Elles sont appelées
encapsulées : les classes (collections d’objets d’attributs associations.
communs) ;
• définir les opérations qui permettent de manipuler ces données • On a défini différents types d’associations :
(uniquement que lorsque qu’elles sont nécessaires), celles-ci seront – association simple,
intégrées aux classes ; – agrégation,
• de réaliser une vision des éléments statiques du système, c’est à – héritage (spécialisation, généralisation),
dire de recenser les parties des structures qui ne se modifieront pas – dépendance.
avec le temps (par opposition aux diagrammes dynamiques qui sont
les diagrammes d’états-transitions ou les diagrammes d’activités) ;
• mettre en œuvre les concepts objets (en particulier l’héritage, qui
permet la réutilisation du code).
Association
• les noms d’association : ceux sont les noms des • Les associations binaires sont représentées par des
relations interclasses ; lignes connectant les symboles des classes.
• les multiplicités : associées aux associations, les • Les associations ternaires (et plus) sont représentées
multiplicités permettent de déterminer le nombre par un diamant connecté par des lignes aux symboles
d’occurrence d’une classe par rapport à une autre classe des classes.
en utilisant le nom de rôle ; • La terminaison d'une association où elle se connecte à
• la navigation : c’est le sens de lecture du nom de rôle une classe est appelée "rôle d'association".
d’une association donnée. L’association est symbolisée • La plupart de l'information intéressante à propos d'une
par une ligne qui lie deux classes. La navigation est association, est attachée à ses rôles (entre autres, la
symbolisée par une flèche qui indique le sens de lecture cardinalité).
du nom d’association.
* 1..2 *
1..2 Chaises tableau équipement
X * Y A une instance X correspond 1 à 2 instances de Y
A une instance Y correspond 0 à n instances de X
Appareil
élève
n°élève
nom
adresse Chauffage Appareil Electrique
extension restriction
Élève salarié
Élève prospect
n°élève
nom …. PoelA Chauffage FourA
adresse nom Mazout Electrique microOndes
entreprise adresse
motorisation milieu
MINEUR MAJEUR
Pied Bleu Bolet de Loup
Etat-Transition
Transition [condition]
État 1 État 2 T1[C1]/A1 T2[C2]/A2
État 1 État 2 État 3
[retour]
Paiement
Dossier renvoyé
[forfait entreprise]
[individuel]
convention
Carte délivrée
Transition sans condition
« transition automatique »
Diagramme de collaboration
– Relations entre les objets et messages échangés
[orientation] 1: établir plan plan de formation
– Diverses informations mentionnées sur le diagramme
3: créer dossier
• synchronisation : les préalables à l’envoi du message;
2 : double du plan
• n° du message : ordre chronologique du message;
• condition du déclenchement de l’envoi;
devis dossier
• type d’envoi: séquentiel ou parallèle; 5 : remise 4 : calculer prix()
élève
• résultat : valeur retournée…
régisseur
Diagramme de composants
– Description des composants du système Diagramme de déploiement
– Description de l’architecture physique des composants matériels du système
– Décomposition en sous-système, programme, processus, tâche,
module – Un nœud = un composant matériel = un cube
– Lien entre les cubes = communication entre les nœuds
– Classes de composants = noms des classes
– Objets de composants = noms soulignés des instances
– Deux types de noeuds:
• Processeur
• Périphérique au processeur
TCP/IP
BD
scolarité
Génie logiciel 1 143 Génie logiciel 1 144
Acteur
association
Les éléments d’un diagramme de cas Les éléments d’un diagramme de cas
d’utilisation (2/8) d’utilisation (3/8)
• Représentation d’un Acteur • L’acteur principal :
– Directement concerné par le cas d’utilisation décrit,
– Sollicite le système pour obtenir un résultat perceptible,
• Un acteur secondaire :
– Est sollicité pour des informations complémentaires,
– Nécessaire au déroulement du cas d’utilisation décrit
Les éléments d’un diagramme de cas Les éléments d’un diagramme de cas
d’utilisation (4/8) d’utilisation (5/8)
• Lorsqu’un cas d’utilisation introduit au moins un acteur • Un cas d’utilisation qui n’est pas
secondaire, les associations reliant les acteurs aux cas
d’utilisation sont stéréotypées : directement relié à un acteur est un cas
– <<principal>> ou d’utilisation interne.
– <<secondaire>> selon le cas.
Les éléments d’un diagramme de cas Les relations dans un diagramme de cas
d’utilisation (8/8) d’utilisation (1/11)
• Représentation d’une note • La relation d’association
– Les notes sont représentées par un rectangle – Une relation d’association est un lien de
avec le coin supérieur droit replié sur communication entre un acteur et un cas
lui-même. d’utilisation.
– On peut relier une note à un élément en
utilisant une ligne pointillée.
Les relations dans un diagramme de cas Les relations dans un diagramme de cas
d’utilisation (2/11) d’utilisation (3/11)
• Représentation d’une relation d’association • La relation d’inclusion
– Un trait continu – La relation d’inclusion spécifie qu’un cas
d’utilisation est nécessairement une partie
d’un autre cas d’utilisation.
Les relations dans un diagramme de cas Les relations dans un diagramme de cas
d’utilisation (6/11) d’utilisation (7/11)
• La relation d’extension • Représentation de la relation d’extension
– La relation d’extension spécifie qu’un cas – Une flèche discontinue stéréotypée
d’utilisation est éventuellement une partie <<extension>>
d’un autre cas d’utilisation
Les relations dans un diagramme de cas Les relations dans un diagramme de cas
d’utilisation (8/11) d’utilisation (9/11)
• Remarque • La relation de généralisation/spécialisation
– Le point d’extension explicite le contexte – La relation de généralisation/spécialisation est
d’occurrence de l’extension la transposition aux cas d’utilisation de la
– Une condition liée à un point d’extension est notion d’héritage dans le paradigme
spécifiée dans une note objet
Documentation d’un cas d’utilisation (1/4) Documentation d’un cas d’utilisation (2/4)
• Description succincte : ce que le UC apporte en terme de fonctionnalités
• Scénarios décrivant le déroulement des opérations,
• Intervenants dans l'élaboration du UC : analystes, utilisateurs, spécialistes pour le cas normal. C'est une description en langage
du domaine, client clair des interactions entre les éléments intervenants
• Date de création et dates de mises à jour, avec l'énoncé des modifications pour mener le UC à bien. On y identifie le ou les
• Quels sont les utilisateurs (acteurs) susceptibles d'enclencher le UC
• Quels sont les effets qui en résultent (mise à jour d'une base, envoi d'un
acteurs, ainsi que les autres UC éventuellement
document, écriture dans un fichier, …) enclenchés.
• Fréquence d'utilisation : apériodique, 1 x/jour, .. • Scénarios décrivant les cas "alternatifs" , avec la
• Quelles sont les préconditions pour pouvoir enclencher ce UC (réalisation
d’un autre UC, base de données inexistante, etc…) condition de déclenchement
• Technique de déploiement : enclenché via le web, via un terminal, en • Scénarios décrivant les cas d'exception (panne
intranet, en C/S
réseau, serveur arrêté, …) avec la condition de
déclenchement.
Documentation d’un cas d’utilisation (3/4) Documentation d’un cas d’utilisation (4/4)
• Définition des tests qui serviront à valider la réalisation du UC, • Cette liste est donnée à titre indicatif et toutes les
appelés parfois "Test cases" : complets et détaillés ! ! !
• Informations nécessaires avant d'enclencher le UC (qui seront
rubriques ne doivent pas être complétées, surtout en
demandées) première analyse.
• Contraintes préalables (techniques, personnelles, temps • Cette liste peut varier suivant le contexte stratégique.
d'exécution maximum, etc.)
• Estimation des risques : niveau de connaissance du domaine du • D’autres rubriques peuvent être rajoutées.
problème traité par le UC, niveau de compétence de l'équipe de
designers, niveau de compétence de l'équipe de programmeurs
• Importance de ce UC pour les utilisateurs/clients. Ce point et le
point qui précède serviront à classer les UC, pour un ordre
"chronologique"
• Le dictionnaire des abstractions et des actions associées aux
scénarios (des noms et des verbes…)
Comment découvrir les cas d’utilisation Comment découvrir les cas d’utilisation
• On définit des cas d’utilisation pour permettre aux acteurs principaux • Étape 1 : choisir les limites du système
d’atteindre leurs buts. La procédure de base est donc la suivante :
– Délimiter le système. S’agit-il d’une application logicielle, de l’ensemble – Définir ce qui est extérieur au système
matériel et application, de cet ensemble plus la personne qui l’utilise ou • Acteurs principaux et auxiliaires,
de toute une organisation ?
– Identifier les acteurs principaux, à savoir ceux qui atteignent leurs buts • Système (système de paiement électronique)
en utilisant les services du système.
– Identifier les buts de chaque acteur principal.
– Définir des cas d’utilisation qui correspondent aux objectifs des
utilisateurs et les nommer conformément à ces buts.
• En développement itératif, tous les buts et les cas d’utilisation ne
sont naturellement pas entièrement et correctement identifiés
d’emblée : il s’agit un processus de recherche évolutif.
• Étape 2 et 3 : Identifier les acteurs principaux et • Questions qui permettent d’identifier acteurs et buts :
– Qui démarre et arrête le système ?
auxiliaires et leurs buts. – Qui est responsable de la gestion des utilisateurs et de la sécurité ?
– Parfois ce sont les buts qui révèlent les acteurs, parfois c’est – Existe-t-il un processus de surveillance qui restaure le système s’il
l’inverse. tombe en panne ?
– Comment les mises à jour logicielles sont-elle gérées ?
– Principe de base : se concentrer sur la recherche des acteurs – Qui assure l’administration du système ?
principaux, ce qui fournira le cadre des investigations ultérieures. – Le « temps » est-il un acteur (événement temporel) ?
– Qui évalue l’activité ou les performances du système ?
– Qui évalue les journaux ? Sont-ils récupérés à distance ?
– Outre les acteurs principaux humains, y a-t-il des systèmes externes,
logiciels ou matériels qui font appel aux services du système ?
– Qui reçoit les notifications en cas d’erreur ou de panne ?
– …
Comment découvrir les cas d’utilisation Comment découvrir les cas d’utilisation
• Dans un atelier d’expression des besoins, vous pouvez • Étape 4 : définir les cas d’utilisation.
poser ces deux questions : – On définit généralement un cas d’utilisation pour
– Que faites-vous ? (orientée cas d’utilisation) chaque but utilisateur, et on le nomme d’après ce but.
• Exemple : si le but est de traiter une vente, le cas
– Quels sont vos buts dont les résultats ont une valeur mesurable d’utilisations se nomme « traiter une vente »
? • Nommez les cas d’utilisation par un verbe à l’infinitif.
– Préférez la seconde question. – Exception à la règle « un cas d’utilisation par but »
consiste à regrouper les opérations de gestion
(création, récupération, modification, …) en un seul
cas d’utilisation nommé par convention « Gérer… »
L e s A c t e u r s e t le s U s e - C a s e s e n p r e m iè r e a n a ly s e
T . B . 1 5 ju in 2 0 0 1
• Détailler et organiser les cas d’utilisation :
– En ajoutant des relations d’inclusion et/ou d’extension.
– En regroupant en « packages » pour définir des blocs
G é r e r le s f o r m a t io n s fonctionnel de plus haut niveau.
A d m in is t r a t if
In s c r ip tio n à u n e s e s s io n
r e q u ie r t le s in f o r m a t io n s
F a c tu r a tio n
A s s ig n e r le s f o r m a t e u r s a u x
C lie n t s f o r m a t io n s
C o n s u lte r l e p la n n in g d e s
F o r m a te u r s
f o r m a t io n s
Génie logiciel 1 191 Génie logiciel 1 192
C lie n t s
S u p p r im e r u n e F o rm a t io n
A s s ig n e r le s fo rm a t e u r s a u x
s e s s io n s
F a c t u r a t io n
C o n s u lt e r le p la n n in g d e s
F o rm a te u r f o rm a tio n s
En résumé
Par exemple :
-La construction du diagramme de classes constitue l’objectif - le téléphone de Jules est une instance du concept abstrait Téléphone
de toute démarche de modélisation « objet » - l’amitié qui lie Jean et Marie est une instance du concept abstrait Amitié
- Une classe est un concept abstrait représentant des éléments variés comme :
- Le diagramme de cas d’utilisation montre un système du point
de vue des acteurs, • des éléments concrets (ex : des avions),
• des éléments abstraits ( ex : des commandes de marchandises ou services),
- Le diagramme de classes en montre la structure interne du • des composants d’une application (ex : les boutons des boîtes de dialogue),
système. • des structures informatiques (ex : des tables de hachage),
• des éléments comportementaux (ex : des tâches), etc.
- Il fournit une représentation abstraite des objets du système
qui vont interagir pour réaliser les cas d’utilisation. Tout système orienté objet est organisé autour des classes.
- Le diagramme de classes modélise les concepts du Une classe est la description formelle d’un ensemble d’objets ayant en commun:
domaine d’application ainsi que les concepts internes créés • une sémantique (sens)
• des caractéristiques (propriétés et comportements).
dans le cadre de l’implémentation d’une application.
2ème Année LMD Génie Logiciel 1 197 2ème Année LMD Génie Logiciel 1 198
-Un objet est une instance d’une classe. C’est une entité discrète •Attributs et Terminaisons d’associations décrivent l’état d’un
dotée : objet.
• Les attributs reçoivent des données dépourvues de
d’une identité
d’un état
sémantique
d’un comportement • Les associations sont utilisées pour connecter les classes
• La terminaison de l’association (du côté de la classe cible)
Les objets sont des éléments individuels d’un système en cours est une propriété de la classe
d’exécution. • Les attributs prennent des valeurs lorsque la classe est
instanciée.
• L’instance d’une association est appelée un lien.
2ème Année LMD Génie Logiciel 1 199 2ème Année LMD Génie Logiciel 1 200
2ème Année LMD Génie Logiciel 1 201 2ème Année LMD Génie Logiciel 1 202
Interdit l’accès aux données par un autre moyen que les services proposés.
Les services accessibles (offerts) aux utilisateurs de l’objet définissent l’interface
de l’objet (sa vue externe).
2ème Année LMD Génie Logiciel 1 203 2ème Année LMD Génie Logiciel 1 204
• Public ou + :
tout élément qui peut voir le conteneur peut également
voir l’élément indiqué.
• Protected ou # :
seul un élément situé dans le conteneur ou un de ses
descendants peut voir l’élément indiqué.
• Private ou - :
seul un élément situé dans le conteneur peut voir
l’élément.
• Package ou ∼ ou rien :
seul un élément déclaré dans le même paquetage peut
voir l’élément.
2ème Année LMD Génie Logiciel 1 205 2ème Année LMD Génie Logiciel 1 206
2ème Année LMD Génie Logiciel 1 207 2ème Année LMD Génie Logiciel 1 208
• Les instances ont accès à cet attribut mais n’en possèdent pas une copie.
• Un attribut de classe n’est donc pas une propriété d’une instance mais une propriété
de la classe
2ème Année LMD Génie Logiciel 1 209 2ème Année LMD Génie Logiciel 1 210
• Les attributs dérivés peuvent être calculés à partir d’autres attributs et de formules
de calcul. • Dans une classe, une opération (même nom et même types de
•Lors de la conception, un attribut dérivé peut être utilisé comme marqueur pour
déterminer les règles à lui appliquer. paramètres) doit être unique.
• Les attributs dérivés sont symbolisés par l’ajout d’un « / » devant leur nom. • Quand le nom d’une opération apparaît plusieurs fois avec des
paramètres différents, on dit que l’opération est surchargée.
• La déclaration d’une opération contient les types des paramètres et le
type de la valeur de retour, sa syntaxe est la suivante :
2ème Année LMD Génie Logiciel 1 211 2ème Année LMD Génie Logiciel 1 212
[<direction>] <nom_paramètre>:<type> ['['<multiplicité>']'] [=<valeur_par_défaut>] •Comme pour les attributs de classe, il est possible de
La direction peut prendre l’une des valeurs suivante : déclarer des opérations de classe.
in
: Paramètre d’entrée passé par valeur. Les modifications du paramètre ne sont
pas disponibles pour l’appelant. C’est le comportement par défaut. • Une opération de classe ne peut manipuler que des
out
: Paramètre de sortie uniquement. Il n’y a pas de valeur d’entrée et la valeur attributs de classe et ses propres paramètres.
finale est disponible pour l’appelant.
inout
: Paramètre d’entrée/sortie. La valeur finale est disponible pour l’appelant. • Cette méthode n’a pas accès aux autres attributs
Le type du paramètre (<type>) peut être • Graphiquement, une opération de classe est soulignée.
• un nom de classe,
• un nom d’interface,
• un type de donné prédéfini.
2ème Année LMD Génie Logiciel 1 213 2ème Année LMD Génie Logiciel 1 214
• Une association est une relation entre deux classes (association binaire) ou plus
• Uneclasse est passive par défaut, elle sauvegarde les données et offre (association n-aire), qui décrit les connexions structurelles entre leurs instances.
des services aux autres. • Une association indique donc qu’il peut y avoir des liens entre des instances des
classes associées.
2ème Année LMD Génie Logiciel 1 215 2ème Année LMD Génie Logiciel 1 216
La question de savoir s’il faut modéliser les associations en tant que tel a longtemps La possession d’une terminaison d’association par le classeur situé à l’autre
fait débat. UML a tranché pour la première version car elle se situe plus à un niveau extrémité de l’association peut être spécifié graphiquement par l’adjonction
conceptuel (par opposition au niveau d’implémentation) d’un petit cercle plein (point) entre la terminaison d’association et la classe
Il n’est pas indispensable de préciser la possession des terminaisons
d’associations.
2ème Année LMD Génie Logiciel 1 217 2ème Année LMD Génie Logiciel 1 218
Dans le cas d’une classe, les propriétés sont constituées par les attributs et les éventuelles
terminaisons d’association que possède la classe. • Une association binaire est matérialisée par un trait plein entre les classes
Associées.
Dans le cas d’une association, les propriétés sont constituées par les terminaisons d’association • Elle peut être ornée d’un nom, avec éventuellement un sens de lecture (▸ ou ◂).
que possède l’association. • Quand les deux extrémités de l’association pointent vers la même classe,
l’association est dite réflexive.
Une propriété peut être paramétrée par les éléments suivants :
nom :
Comme un attribut, une terminaison d’association peut être nommée. Le nom est situé à
proximité de la terminaison.
Le nom d’une terminaison d’association est appelée nom du rôle.
visibilité :
Comme un attribut, une terminaison d’association possède une visibilité.
multiplicité :
Comme un attribut, une terminaison d’association peut posséder une multiplicité.
Elle est mentionnée à proximité de la terminaison.
navigabilité :
Pour un attribut, la navigabilité est implicite, navigable, et toujours depuis la
classe vers l’attribut.
Pour une terminaison d’association, la navigabilité peut être précisée
2ème Année LMD Génie Logiciel 1 219 2ème Année LMD Génie Logiciel 1 220
• Une association n-aire lie plus de deux classes. • La multiplicité associée à une terminaison d’association déclare le nombre d’objets
• La ligne pointillé d’une classe-association peut être reliée au losange par une susceptibles d’occuper la position définie par la terminaison d’association.
ligne discontinue pour représenter une association n-aire dotée d’attributs, • Dans une association binaire la multiplicité sur la terminaison cible contraint
d’opérations ou d’associations. le nombre d’objets de la classe cible pouvant être associés à un seul objet donné
• On représente une association n-aire par un grand losange avec un chemin de la classe source (la classe de l’autre terminaison de l’association).
partant vers chaque classe participante • Dans une association n-aire, la multiplicité apparaissant sur le lien de chaque
• Le nom de l’association, le cas échéant, apparaît à proximité du losange. classe s’applique sur une instance de chacune des classes.
(ambiguité des associations ternaires!)
Quelques exemples de multiplicités:
1 un et un seul
0..1 zéro ou un
m .. n de m à n
* de zéro à plusieurs
0..* de zéro à plusieurs
1..* de un à plusieurs
4..6 de quatre à six
1..3,12 de un à trois ou douze
2ème Année LMD Génie Logiciel 1 221 2ème Année LMD Génie Logiciel 1 222
• La navigabilité indique s’il est possible de traverser une association. Deux modélisations équivalentes.
• On représente graphiquement la navigabilité par une flèche du côté de la
terminaison navigable et on empêche la navigabilité par une croix du côté de
la terminaison non navigable.
• Par défaut, une association est navigable dans les deux sens.
2ème Année LMD Génie Logiciel 1 223 2ème Année LMD Génie Logiciel 1 224
Qualification Classe-association
• Quand une classe est liée à une autre classe par une association, on peut • Parfois, une association doit posséder des propriétés.
restreindre la portée de l’association à quelques éléments ciblés de la classe. • Les associations ne pouvant posséder de propriété, il faut introduire un nouveau
• Ces éléments ciblés (un ou plusieurs attributs) sont appelés un qualificatif. concept pour modéliser cette situation : la classe-association.
• Un qualificatif permet donc de sélectionner un spécifique dans l’ensemble des • Une classe-association possède les caractéristiques des associations et
objets candidats e l’association. des classes.
• L’objet sélectionné par la valeur du qualificatif est appelé objet cible. • Elle se connecte à deux ou plusieurs classes et possède également des attributs
• L’association est appelée association qualifiée. et des opérations.
• Un qualificatif agit toujours sur une association dont la multiplicité est plusieurs • Une classe-association est caractérisée par un trait discontinu entre la classe
du côté cible. et l’association qu’elle représente
2ème Année LMD Génie Logiciel 1 225 2ème Année LMD Génie Logiciel 1 226
Une association simple entre deux classes représente une relation structurelle
Exemple d’auto-association sur classe-association. entre deux classes de même niveau conceptuel : aucune des deux n’est plus
importante que l’autre.
Agrégation
Une agrégation est une association qui représente une relation d’inclusion
structurelle ou comportementale d’un élément dans un ensemble.
Lorsque l’on souhaite modéliser une relation tout/partie où une classe constitue
un élément plus grand (tout) composé d’éléments plus petit (partie), il faut utiliser
une agrégation.
Graphiquement, on ajoute un losange vide (♦) du côté de l’agrégat. Contrairement
à une association simple, l’agrégation est transitive.
2ème Année LMD Génie Logiciel 1 227 2ème Année LMD Génie Logiciel 1 228
2ème Année LMD Génie Logiciel 1 229 2ème Année LMD Génie Logiciel 1 230
2ème Année LMD Génie Logiciel 1 231 2ème Année LMD Génie Logiciel 1 232
Spécialisation
2ème Année LMD Génie Logiciel 1 233 2ème Année LMD Génie Logiciel 1 234
2ème Année LMD Génie Logiciel 1 235 2ème Année LMD Génie Logiciel 1 236
Une classe peut avoir plusieurs parents, on parle alors d’héritage multiple • C’est une relation unidirectionnelle exprimant une dépendance sémantique entre
des éléments du modèle.
• Elle est représentée par un trait discontinu orienté.
• Elle indique que la modification de la cible peut impliquer une modification
de la source.
• La dépendance est souvent stéréotypée pour mieux expliciter le lien sémantique
entre les éléments du modèle
• On utilise souvent une dépendance quand une classe en utilise une autre comme
argument dans la signature d’une opération.
2ème Année LMD Génie Logiciel 1 237 2ème Année LMD Génie Logiciel 1 238
Une interface est représentée comme une classe excepté l’absence du mot-clef
abstract et l’ajout du stéréotype << interface >> • Un diagramme d’objets représente des objets (i.e. instances de classes) et leurs
Elle est réalisée par au moins une classe (peut l’être par plusieurs). liens (i.e. instances de relations) pour donner une vue de l’état d’un système à un
Graphiquement, elle est représentée par un trait discontinu terminé par une flèche instant donné.
triangulaire et le stéréotype « realize » ou le stéréotype <<use>>. • Un diagramme d’objets peut être utilisé pour :
2ème Année LMD Génie Logiciel 1 239 2ème Année LMD Génie Logiciel 1 240
2ème Année LMD Génie Logiciel 1 241 2ème Année LMD Génie Logiciel 1 242
2ème Année LMD Génie Logiciel 1 243 2ème Année LMD Génie Logiciel 1 244
1 Diagrammes d’interaction
Chapitre 5/ Diagramme UML: vue dynamique • Les diagrammes d’interaction sont utilisés
1. Diagramme d’interaction (séquence pour modéliser les aspects dynamiques
et collaboration) d’un système
2. Diagramme d’activités
– Ils aident à visualiser comment le système
3. Diagramme d’états/transitions
exécute ses tâches.
– Un diagramme d’interaction est souvent
construit à partir d’un diagramme de classes
et d’un cas-type (d’utilisation)
• L’objectif est de montrer comment un
ensemble d’objets peut réaliser une tâche
demandée par un acteur
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 246
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 249 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 250
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 251 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 252
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 253 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 254
2. Le récepteur est contenu dans une variable locale 4. Le récepteur est un objet global
de la méthode émettrice – Ceci se produit lorsque la référence à l’objet
– Ceci se produit fréquemment lorsque l’objet a peut être obtenue à l’aide d’une méthode
été créé par la méthode émettrice ou lorsqu’un statique
résultat précédent a retourné un objet . – Le stéréotype a utiliser est «global», ou [G]
– Le stéréotype à utiliser est «local» ou [L].
5. Les objets communiquent à travers un réseau
3. Une référence à l’objet récepteur a été reçu – Nous suggérons d’utiliser «network».
comme paramètre par la méthode émettrice
– Le stéréotype à utiliser est «parameter» or [P].
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 257 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 258
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 259 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 260
• Un diagramme d’état décrit le comportement d’un système, d’une – A tout instant, le système se trouve dans un état
partie d’un système ou d’un objet.
– A tout instant, un système ou un objet se trouve dans un certain – Il demeura dans cet état jusqu’à l’occurrence d’un événement
état. provoquant un changement d’état
• Être dans un état donné signifie que le système se
comportera d’une façon spécifique en réponse aux – Un état se représente à l’aide d’un rectangle arrondi contenant le
événements se produisant. nom de cet état
– Certains événements vont provoquer des changements d’états
– États spéciaux:
• Dans ce nouvel état, le système se comportera de façon
différente. • Un disque noir représente l’état initial
• Un disque noir entouré d’un cercle représente un état final
– Un diagramme d’état est un graphe dans lequel les états sont
des nœuds et dont les arcs représentent les transitions.
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 261 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 262
Transitions Exercice
– Une transition représente un changement d’état en réponse à un • Le but de l’exercice est de décrire les différents états de
événement la situation professionnelle d’une personne et les
• Cette transition est considérée instantanée transitions correspondantes. La personne peut, par
exemple, être étudiante, salariée, sans activité,
– L’étiquette associée à une transition est l’événement causant ce indépendante ou retraitée.
changement d’état
• Au début de sa situation professionnelle, une personne
est étudiante. Ne prenez pas en compte les activités
simultanées comme la possibilité d’être simultanément
salarié et indépendant.
• Construisez le diagramme d’états-transitions
correspondant (utilisez les conditions de garde pour
différencier les possibilités multiples).
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 263 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 264
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 265 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 266
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 267 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 268
Diagramme d’état – un exemple avec activité Les actions dans un diagramme d’état
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 269 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 270
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 271 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 272
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 273 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 274
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 275 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 276
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 277 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 278
– La concurrence dans un diagramme d’activité se représente à • Un point de rencontre (join) a de multiples transitions
l’aide de points de rencontre, de fourchettes et de rendez-vous. entrantes et une transition sortante
– La transition sortante s’effectue lorsque toutes les
• Une fourchette (fork) a une transition entrante et plusieurs transitions entrantes se sont produites
transitions sortantes – Chacune des transitions entrantes s’effectue dans un fil
– L’exécution se sépare alors en différents fils d’exécution d’exécution distinct.
– Lorsque qu’une transition entrante se produit, le fil
• Un rendez-vous a plusieurs transitions entrantes et sortantes correspondant est bloqué jusqu’à ce que les autres
transitions soient complétées.
– Lorsque toutes les transitions entrante ont été effectué
alors seulement peuvent être lancée les transitions
sortantes
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 279 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 280
2ème Année LMD Génie Logiciel 1/ Cahpitre 5 281 2ème Année LMD Génie Logiciel 1/ Cahpitre 5 282