Académique Documents
Professionnel Documents
Culture Documents
Cours Langage de
Modélisation Unifié UML
Introduction
Pour faire face à la complexité croissante des systèmes d’information, de
nouvelles méthodes et outils ont été créés. La principale avancée des dernières années
réside dans la programmation orientée objet (P.O.O.).
Face à ce nouveau mode de programmation, les méthodes de modélisation classique
(MERISE, Axial, IE…) ont rapidement montré certaines limites et ont dû s’adapter
(MERISE/2 par exemple).
De très nombreuses autres méthodes ont également vu le jour comme Booch, OMT,
fusion …
Dans ce contexte et devant le foisonnement de nouvelles méthodes de conception «
orientée objet », l’Object Management Group (OMG) a eu comme objectif de définir
une notation standard utilisable dans les développements informatiques basés sur
l’objet. C’est ainsi qu’est apparu UML (Unified Modeling Language « langage de
modélisation unifié »). C’est un langage standard de modélisation des systèmes
d’information. Il en est à ce jour à sa version 2.5. Dans ce cours nous nous arrêterons à
l’étude approfondie d’UML 1.x.
1L’OMG (Object Management Group) est une association américaine à but non-lucratif créée en 1989 dont l’objectif
est de standardiser et promouvoir le modèle objet sous toutes ses formes. L’OMG est notamment à la base des
spécifications UML, MOF, CORBA et IDL. L’OMG est aussi à l’origine de la recommandation MDA
UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus
d'élaboration des modèles. UML n'est ni une méthode, ni un processus. Qualifier UML de
"méthode objet" n'est donc pas tout à fait approprié. Une méthode propose aussi un processus,
qui régit notamment l'enchaînement des activités de production d'une entreprise. Or UML n'a
pas été pensé pour régir les activités de l'entreprise. Un processus est adapté (donc très lié) au
domaine d'activité de l'entreprise ; même s'il constitue un cadre général, il faut l'adapter au
contexte de l'entreprise.
UML permet de modéliser des applications selon une vision objet. Son
appréhension est complexe car UML est à la fois :
• une norme,
• un langage de modélisation objet,
• un support de communication,
• un cadre méthodologique.
2.1. UML est une norme
UML est non seulement un outil intéressant mais aussi une norme qui s’impose en
technologie à objets et à laquelle se sont rangés tous les grands acteurs du domaine ; acteurs
qui ont d’ailleurs contribué à son élaboration. En effet en Novembre 1997, UML est devenu
une norme OMG (Object Management Group). Aujourd'hui, l'OMG fédère plus de 850
acteurs du monde informatique. Son rôle est de promouvoir des standards qui garantissent
l'interopérabilité entre applications orientées objet, développées sur des réseaux hétérogènes.
Une autre caractéristique importante des diagrammes UML, est qu'ils supportent
l'abstraction. Cela permet de mieux contrôler la complexité dans l'expression et l'élaboration
des solutions objet.
Ainsi, une opération définie dans une superclasse peut s'exécuter de façon différente selon la
sous-classe où elle est héritée. Le polymorphisme augmente la généricité, et donc la qualité,
du code.
Agrégation et Composition
Il s’agit d’une relation entre deux classes, spécifiant que les objets d’une classe sont des
composants de l’autre classe. Une relation d’agrégation permet donc de définir des objets
composés d’autres objets. L’agrégation permet donc d’assembler des objets de base, afin de
construire des objets plus complexes. Une composition est une agrégation forte.
Introduction
I. Modélisation objet
1. Définition d’un modèle
Un modèle est une représentation abstraite et simplifiée (i.e. qui exclut certains détails), d’une
entité (phénomène, processus, système, etc.) du monde réel en vue de le décrire, de
l’expliquer ou de le prévoir. Un modèle est une abstraction de la réalité. L'abstraction est un
des piliers de l'approche objet : il s'agit d'un processus qui consiste à identifier les
caractéristiques intéressantes d'une entité, en vue d'une utilisation précise. Concrètement, un
modèle permet de réduire la complexité d’un phénomène en éliminant les détails qui
n’influencent pas son comportement de manière significative. Il reflète ce que le concepteur
croit important pour la compréhension et la prédiction du phénomène modélisé.
2. Rôle de la modélisation
Un modèle est un langage commun, précis, qui est connu par tous les membres de l’équipe et
il est donc, à ce titre, un vecteur privilégié pour communiquer. Cette communication est
essentielle pour aboutir à une compréhension commune aux différentes parties prenantes
(notamment entre la maîtrise d’ouvrage et la maîtrise d’œuvre informatique) et précise d’un
problème donné.
Dans le domaine de l’ingénierie du logiciel, le modèle permet de mieux répartir les tâches et
d’automatiser certaines d’entre elles. C’est également un facteur de réduction des coûts et des
délais.
1. Proposition de la démarche
UML est un langage qui permet de représenter des modèles, mais il ne définit pas le processus
d'élaboration des modèles : UML n’est donc pas une méthode de modélisation. Cependant,
dans le cadre de la modélisation d'une application informatique, les auteurs d'UML
préconisent d'utiliser une démarche :
• itérative et incrémentale,
• guidée par les besoins des utilisateurs du système,
• centrée sur l'architecture logicielle.
D'après les auteurs d'UML, un processus de développement qui possède ces qualités devrait
favoriser la réussite d'un projet.
Pour modéliser (comprendre et représenter) un système complexe, il vaut mieux s'y prendre
en plusieurs fois, en affinant son analyse par étapes. Cette démarche doit aussi s'appliquer au
Avec UML, ce sont les utilisateurs qui guident la définition des modèles : Le périmètre du
système à modéliser est défini par les besoins des utilisateurs (les utilisateurs définissent ce
que doit être le système). Le but du système à modéliser est de répondre aux besoins de ses
utilisateurs (les utilisateurs sont les clients du système).
Les besoins des utilisateurs servent aussi de fil rouge, tout au long du cycle de développement
(itératif et incrémental) :
• à chaque itération de la phase d'analyse, on clarifie, affine et valide les besoins des
utilisateurs.
• à chaque itération de la phase de conception et de réalisation, on veille à la prise en
compte des besoins des utilisateurs.
• à chaque itération de la phase de test, on vérifie que les besoins des utilisateurs sont
satisfaits.
Une architecture adaptée est la clé de voûte du succès d'un développement. Elle décrit des
choix stratégiques qui déterminent en grande partie les qualités du logiciel (adaptabilité,
performances, fiabilité...).
En combinant ces vues, il est possible de définir le système complet. Ces vues sont :
Cette vue concerne « l’intégrité de conception ». Cette vue de haut niveau se concentre sur
l'abstraction et l'encapsulation, elle modélise les éléments et mécanismes principaux du
système. Elle identifie les éléments du domaine, ainsi que les relations et interactions entre ces
éléments « notions de classes et de relations » :
• les éléments du domaine sont liés au(x) métier(s) de l'entreprise,
• ils sont indispensables à la mission du système,
• ils gagnent à être réutilisés (ils représentent un savoir-faire).
Cette vue organise aussi (selon des critères purement logiques), les éléments du domaine en
"catégories" :
3.1. Conceptualisation
L'entrée de l'analyse à ce niveau est le dossier d'expression des besoins client. A ce
niveau d'abstraction, on doit capturer les besoins principaux des utilisateurs. Il ne faut pas
chercher l'exhaustivité, mais clarifier, filtrer et organiser les besoins. Le but de la
conceptualisation est :
◦ de définir le contour du système à modéliser (de spécifier le "quoi"),
◦ de capturer les fonctionnalités principales du système, afin d'en fournir une meilleure
compréhension (le modèle produit sert d'interface entre les acteurs du projet),
◦ de fournir une base à la planification du projet.
3.4. Conception
Ici, on y modélise tous les rouages d'implémentation et on détaille tous les éléments de
modélisation issue des niveaux supérieurs. Les modèles sont optimisés, car destinés à être
implémentés.
Introduction
UML à partir de sa version 1.3 propose neuf (9) diagrammes tandis qu’il en existe
quatorze (14) depuis UML 2.3.
Les 14 diagrammes UML sont dépendants hiérarchiquement et se complètent, de façon à
permettre la modélisation d'un projet tout au long de son cycle de vie. Ils sont regroupés en
trois grandes vues :
Diagrammes structurels ou statiques qui rassemblent :
Diagramme de classes : il représente les classes intervenant dans le système ;
Diagramme d’objets : il sert à représenter les instances de classes (objets)
utilisées dans le système ;
Diagramme de composants : il permet de montrer les composants du système
d'un point de vue physique, tels qu'ils sont mis en œuvre (fichiers, bibliothèques,
bases de données…)
Diagramme de déploiement : il sert à représenter les éléments matériels
(ordinateurs, périphériques, réseaux, systèmes de stockage…) et la manière dont
les composants du système sont répartis sur ces éléments matériels et
interagissent entre eux.
Diagramme des paquetages : un paquetage étant un conteneur logique
permettant de regrouper et d'organiser les éléments dans le modèle UML, le
diagramme de paquetage sert à représenter les dépendances entre paquetages,
c’est-à-dire les dépendances entre ensembles de définitions.
Diagramme de structure composite : depuis UML 2.x, permet de décrire sous
forme de boîte blanche les relations entre composants d'une classe.
Diagramme de profils : depuis UML 2.2, permet de spécialiser, de personnaliser
pour un domaine particulier un meta-modèle de référence d'UML.
Nous allons dans le cadre de ce cours nous préoccuper de manière détaillée des diagrammes
d’UML 1.4.
Il existe 2 types de vues du système qui comportent chacune leurs propres diagrammes :
A. Représentations graphiques
i. Les composants du diagramme de cas d’utilisation
L’acteur :
La première étape de modélisation consiste à définir le périmètre du système, à définir le
contour de l’organisation et à le modéliser. Toute entité qui est en dehors de cette organisation
et qui interagit avec elle est appelé acteur selon UML.
Un acteur est un type stéréotypé représentant une abstraction qui réside juste en dehors du
système à modéliser.
Un acteur représente un rôle joué par une personne ou une chose (Bases de données, des
équipements…) qui interagit avec le système (la même personne physique peut donc être
représentée par plusieurs acteurs en fonction des rôles qu’elle joue).
Pour identifier les acteurs, il faut donc se concentrer sur les rôles joués par les entités
extérieures au périmètre. Dans UML, il n’y a pas de notion d’acteur interne et externe. Par
définition, un acteur est externe au périmètre de l’étude, qu’il appartienne ou pas à la société.
Enfin, un acteur n’est pas nécessairement une personne physique : il peut être un service, une
société, un système informatique …
Il existe 4 catégories d’acteurs :
Les associations :
Les associations sont utilisées pour lier des acteurs avec des cas d'utilisation. Elles
indiquent qu'un acteur participe au cas d'utilisation sous une forme quelconque. Les
associations sont représentées par une ligne reliant l'acteur et le cas d'utilisation.
Formalisme :
La seule relation possible entre deux acteurs est la généralisation : un acteur A est une
généralisation d’un acteur B si l’acteur A peut-être substitué par l’acteur B. Dans ce cas, tous
les cas d’utilisation accessibles à A le sont aussi à B, mais l’inverse n’est pas vrai. Le symbole
utilisé pour la généralisation entre acteurs est une flèche avec un trait plein dont la pointe est
un triangle fermé désignant l’acteur le plus général (comme nous l’avons déjà vu pour la
relation de généralisation entre cas d’utilisation).
Par exemple, la figure suivante montre que le directeur des ventes est un préposé aux
commandes avec un pouvoir supplémentaire : en plus de pouvoir passer et suivre une
commande, il peut gérer le stock. Par contre, le préposé aux commandes ne peut pas gérer le
stock.
Un cas d’utilisation est donc une abstraction de plusieurs chemins d’exécution. Une instance
de cas d’utilisation est appelée : « scénario ». C’est un chemin particulier pris lors de
l’exécution d’un cas d’utilisation.
Le nombre d’instances pour un cas d’utilisation peut être très important, voire infini.
Les scénarios (scénarii) peuvent être classés en :
- scénario principal ou nominal : il correspond à l’instance principale du cas
d’utilisation. C’est le scénario typique de succès. C’est à dire le chemin « normal »
d’exécution du cas d’utilisation qui n’implique pas d’erreurs.
Travail à faire :
1- Proposez le diagramme de cas d’utilisation (Représentation graphique).
2- Proposez la représentation textuelle des différents cas d’utilisation.
2. Diagramme de classe
Le diagramme de classes exprime la structure statique du système en termes de classes et de
relations entre ces classes.
L’intérêt du diagramme de classe est de modéliser les entités du système d’information. Le
diagramme de classe permet de représenter l’ensemble des informations finalisées qui sont
Proposé par M. DIFFOUO TAZO Evariste Page 25
gérées par le domaine. Ces informations sont structurées, c’est-à-dire qu’elles ont regroupées
dans des classes. Le diagramme met en évidence d’éventuelles relations entre ces classes. Le
diagramme de classes comporte quelques concepts : classe, attribut, identifiant, opération
(méthode) et relation
i. La classe
Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes
à un ensemble d'objets et permettant de créer des objets ayant ces propriétés. Ou encore la
description d’un ensemble d’objets partageant la même sémantique, ainsi que les mêmes
attributs, opérations et relations.
Représentation :
Les classes sont représentées en UML par des rectangles divisés en trois compartiments :
• le 1er compartiment représente le nom de la classe qui n’est pas souligné ;
• le 2ème compartiment représente les attributs typés de la classe ;
• le 3ème compartiment représente les opérations (méthodes) de la classe.
v. La notion de relation
S’il existe des liens entre objets, cela se traduit nécessairement par des relations qui existent
entre leurs classes respectives. Les liens entre les objets doivent être considérés comme des
instances de relations entre classes.
Il existe plusieurs types de relations entre classes : l’association, la
généralisation/spécialisation et la dépendance
L’association
Une association représente une relation structurelle entre classes d’objets. La plupart des
associations sont binaires, c’est à dire qu’elles connectent deux classes. On représente une
association en traçant une ligne entre les classes associées.
Proposé par M. DIFFOUO TAZO Evariste Page 27
Cours Langage de Modélisation Unifié UML IAI
Proposition de solution :
Les classes-association
Les attributs d’une classe dépendent fonctionnellement de l’identifiant de la classe. Parfois,
un attribut dépend fonctionnellement de 2 identifiants, appartenant à 2 classes différentes ou il
peut arriver que l’on ait besoin de garder des informations (attributs ou opérations) propres à
une association. Une classe de ce type est appelée classe association.
Exemple 1 :
L’agrégation
Dans UML, l’agrégation n’est pas un type de relation mais une variante de l’association. Une
agrégation représente une association non symétrique dans laquelle une des extrémités joue
un rôle prédominant par rapport à l’autre extrémité. L’agrégation se représente toujours avec
un petit losange du côté de l’agrégat.
La composition
La composition est un cas particulier de l’agrégation dans laquelle la vie des composants est
liée à celle des agrégats. Elle fait souvent référence à une contenance physique. Dans la
composition l’agrégat ne peut être multiple.
La composition implique, en plus de l’agrégation, une coïncidence des durées de vie des
composants : la destruction de l’agrégat (ou conteneur) implique automatiquement la
destruction de tous les composants liés. La composition se représente par un losange noir.
Exemple 1 :
Exemple :
3. Diagramme d’objet
Un diagramme d’objets représente des objets (i.e. instances de classes) et leurs liens (i.e.
instances de relations). Ils modélisent des exemples de classes et sont employés pour décrire
le système à un instant particulier. A l’exception de la multiplicité, qui est explicitement
indiquée, le diagramme d’objets utilise les mêmes concepts que le diagramme de classes. Ils
sont essentiellement utilisés pour comprendre ou illustrer des parties complexes d’un
diagramme de classes.
Représentation : Les diagrammes des objets représentent seulement les objets et les
associations.
ii. L’association
Les associations entre les objets sont représentées simplement en utilisant une ligne les
joignant.
Exemple : diagramme de classes et de diagramme d’objets associé
ii. Dépendance
Une dépendance est utilisée pour modéliser la relation entre deux composants. La
notation utilisée pour cette relation de dépendance est une flèche pointillée, se
dirigeant d'un composant donné au composant dont il dépend.
5. Diagramme de déploiement
ii. Nœud
Un nœud représente un ensemble d'éléments matériels du système. Cette entité
est représentée par un cube tridimensionnel.
Exemple2
1. Le diagramme de séquence
Les diagrammes des séquences documentent les interactions à mettre en œuvre entre les
classes pour réaliser un résultat, tel qu'un cas d'utilisation. UML étant conçu pour la
programmation orientée objet, ces communications entre les classes sont reconnues comme
des messages. Le diagramme des séquences énumère des objets horizontalement, et le temps
verticalement. Il modélise l'exécution des différents messages en fonction du temps.
Représentation : Dans un diagramme des séquences, les classes et les acteurs sont énumérés
en colonnes, avec leurs lignes de vie verticales indiquant la durée de vie de l'objet.
i. Objet
Les objets sont des instances des classes, et sont rangés horizontalement. La représentation
graphique pour un objet est similaire à une classe (un rectangle) précédée du nom d'objet
(facultatif) et des deux points (:).
ii. Acteur
Les acteurs peuvent également communiquer avec des objets, ainsi ils peuvent eux aussi être
énumérés en colonne. Un acteur est modélisé en utilisant le symbole habituel :
iv. Activation
Les activations, sont modélisées par des boîtes rectangulaires sur la ligne de vie. Elles
indiquent quand l'objet effectue une action.
L'exemple ci-dessous représente un diagramme des séquences qui utilise des objets
par défaut (aucun nom n'est spécifié).
Exemple
Les diagrammes de collaboration modélisent les interactions entre les objets. Ce type de
diagramme est un croisement entre un diagramme des objets et un diagramme des séquences.
À la différence du diagramme des séquences qui modélise l'interaction dans un format de type
ligne-colonne, le diagramme des collaborations emploie une disposition libre des objets tels
qu'on les trouve dans un diagramme des objets. Ceci facilite la vision de toutes les
interactions impliquant un objet particulier.
Afin de maintenir l'ordonnancement des messages dans un tel diagramme de formes libres,
ces derniers sont notés avec un numéro chronologique. La lecture d'un diagramme des
collaborations implique de commencer au message 1.0, et de suivre ainsi la séquence des
messages d'objet en objet.
Représentation :
i. Objet :
Les objets, instances des classes, représentent une des entités impliquées dans les
communications. La représentation graphique pour un objet est similaire à une classe
(un rectangle) précédée du nom d'objet (facultatif) et des deux points (:).
ii. Acteur
Les acteurs peuvent également communiquer avec des objets, aussi peuvent-ils être présents
sur des diagrammes de collaborations. Un acteur est modélisé en utilisant le symbole habituel
suivant :
iii. Message
Les messages, modélisés par des flèches entre les objets, sont affectés d'un numéro et
indiquent les communications entre les objets.
Exemple
Les diagrammes d'état sont utilisés pour documenter les divers modes ("état") qu'une classe
peut prendre, et les événements qui causent une transition d'état. Ils ont pour rôle de
représenter les traitements (opérations) qui vont gérer le domaine étudié. Ils définissent
l'enchaînement des états de classe et font donc apparaître l'ordonnancement des travaux.
Représentation :
i. Etat :
Un état correspond à une situation durable dans laquelle se trouvent les objets d'une classe.
On lui associe les règles de gestion et les activités particulières.
Etat : objets d'une classe + règles de gestion + changements d'états
Elle est représentée par rectangle avec les coins arrondis, contenant le nom de l'état.
Exemples pour une commande : Etat "en préparation" et Etat "en cours"
Une transition décrit le changement de l'état d'un objet, provoqué par un événement. Un objet
passe d'un état à un autre suite à un événement, certains événements pouvant ne pas provoquer
de changement d'état. Une transition est une relation entre 2 états. Elle est orientée. Sa
représentation symbolique est une flèche sur laquelle est annoté l'événement qui concourt au
changement d'état.
Ou
Exemple : Une commande passera dans l'état "En attente" dès lors qu'elle aura été expédiée.
4. Le diagramme d’activité
Les diagrammes d'activité sont utilisés pour documenter le déroulement des opérations dans
un système, du niveau commercial au niveau opérationnel (de haut en bas). En regardant un
diagramme d'activité, vous trouverez des éléments des diagrammes d'état. En fait, le
diagramme d'activité est une variante du diagramme d'état où les "états" représentent des
opérations, et les transitions représentent les activités qui se produisent quand l'opération est
terminée. L'usage général des diagrammes d'activité permet de faire apparaître les flots de
traitements induits par les processus internes par rapport aux évènements externes.
Représentation :
i. Etat d’activité ou une activité :
L’état d'activité marque une action faite par un objet. Il est représenté par un rectangle
arrondi.
iii. Couloir
Le diagramme d'activités fait intervenir les acteurs de chaque activité. Chaque activité sera
placée dans une colonne (couloir) qui correspond à l'acteur. Les objets sont énumérés au-
dessus de la colonne, et les barres verticales séparent les colonnes pour former les couloirs
d’activités.
L’état initial marque le point d'entrée la première activité. Il est représenté, comme dans le
diagramme d'état, par un cercle plein. Il ne peut y avoir qu'un seul état initial sur un
diagramme.
v. Etat final
L'état final marque la fin du déroulement des opérations modélisées. Il peut y avoir des états
finaux multiples sur un diagramme. Ils sont représentés par un cercle plein entouré d'un autre
cercle.
Souvent, certaines activités peuvent être faites en parallèle. Pour dédoubler le traitement
"Fork", ou le reprendre quand des activités multiples ont été accomplies ("join"), des barres
de synchronisation sont utilisées. Celles-ci sont modélisées par des rectangles pleins, avec des
transitions multiples entrantes ou sortantes.
UML étant un langage de modélisation, n’impose pas une méthode de travail. Pour la
réalisation d’un projet, l’utilisation de tous les diagrammes n’est pas obligatoire. Leur
utilisation varie en fonction des exigences et des fonctionnalités du système étudié.
Le tableau ci-dessous résume l’utilisation de quelques diagrammes pour la réalisation
de chaque phase d’un projet.
Voici une liste non exhaustive des logiciels de modélisation des diagrammes en UML.
Logiciels libres :
Neptune outil permettant de vérifier les modèles UML1.x via des règles OCL ;
ATL solution open source pour faire des transformations de modèles vers ou depuis
UML (entre autres);
ArgoUml un modeleur UML sous Licence BSD ;
Gaphorun modeleur UML sous GPL;
BOUML, un modeleur UML sous GPL pour Windows, Linux, MacOS X et Solaris ;
Eclipse UML2, Méta modèle UML2, sans interface graphique ; Netbeans [1],
logiciel open source de Sun;
Papyrus un modeleur UML2 open source pour la plateforme Eclipse Licence EPL;
Logiciels propriétaires
Enterprise Architect, un outil de modélisation UML ;
MagicDraw, un éditeur de diagrammes UML ;
Objecteering d'Objecteering Software ;
Poseidon (version commerciale), basé sur ArgoUml (logiciel libre);
PowerAMC / PowerDesigner [3], de Sybase (un outil de modélisation complet intégrant
l'UML en plus des classiques MCD, MPD ...) ;
Rhapsody de Telelogic pour une modélisation PSM (Platform Specific Model)
complète de systèmes ou de logiciels embarqués ;
Rational Software Architect/ Rational Software Modeler (et toujours Rose/XDE), de
IBM Software Rational ;
SDE for Eclipse, un plugin UML pour Eclipse;
Visual Paradigm for UML, de Visual Paradigm International Ltd;
Delphia Object Modeler (version commerciale), Outil de modélisation et de
prototypage. Diagrammes de classe et d'état. Langage objet intégré. Générateur de
Java…
• Ada
• C++ (voir aussi la catégorie C++)
• C#
• Delphi (=Pascal orienté objet)
• Java
• Kylix
• Objective-C
• Objective Caml (ocaml)
• Perl
• PHP (Depuis la version 4)
• Python
• SmallTalk (totalement objet)
Etc.
Partie I : Le processus UP
L’objectif principal d’un système logiciel est de rendre service à ses utilisateurs ; il faut par
conséquent bien comprendre les désirs et les besoins des futurs utilisateurs. Le processus de
développement sera donc centré sur l'utilisateur. Le terme utilisateur ne désigne pas seulement
les utilisateurs humains mais également les autres systèmes.
Les cas d’utilisation ne sont pas un simple outil de spécification des besoins du
système. Ils vont complètement guider le processus de développement à travers l’utilisation
de modèles basés sur l’utilisation du langage UML.
Dès le démarrage du processus, on aura une vue sur l'architecture à mettre en place.
L’architecture d’un système logiciel peut être décrite comme les différentes vues du système
qui doit être construit. L’architecture logicielle équivaut aux aspects statiques et dynamiques
les plus significatifs du système. L’architecture émerge des besoins de l’entreprise, tels qu’ils
sont exprimés par les utilisateurs et autres intervenants et tels qu’ils sont reflétés par les cas
d’utilisation.
Elle subit également l’influence d’autres facteurs :
la plate-forme sur laquelle devra s’exécuter le système ;
les briques de bases réutilisables disponibles pour le développement ;
les considérations de déploiement, les systèmes existants et les besoins non
fonctionnels (performance, fiabilité..).
Le développement d’un produit logiciel destiné à la commercialisation est une vaste entreprise
qui peut s’étendre sur plusieurs mois. On ne va pas tout développer d’un coup. On
Une itération prend en compte un certain nombre de cas d’utilisation qui ensemble,
améliorent l’utilisabilité du produit à un certain stade de développement.
L’itération traite en priorité les risques majeurs.
Présentation
Le processus unifié répète un certain nombre de fois une série de cycles. Tout cycle se conclut
par la livraison d’une version du produit aux clients et s’articule en 4 phases : création,
élaboration, construction et transition, chacune d’entre elles se subdivisant à son tour en
itérations. Pour mener efficacement le cycle, les développeurs ont besoin de construire toutes
les représentations du produit logiciel :
i. La branche fonctionnelle
La phase de réalisation consiste à réunir les deux branches, permettant de mener une
conception applicative et enfin la livraison d'une solution adaptée aux besoins. La branche du
milieu comporte :
La conception préliminaire, qui représente une étape délicate, car elle intègre le
modèle d'analyse dans l'architecture technique de manière à tracer la cartographie des
composants du système à développer,
La conception détaillée, qui étudie ensuite comment réaliser chaque composant ;
L’étape de codage, qui produit ces composants et teste au fur et à mesure les unités de
code réalisées,
L’étape de recette, qui consiste enfin à valider les fonctions du système développé.
iv. Représentation
MERISE :UML :
MERISE est une méthode systémique UML n’est cependant pas une méthode
d’analyse et de conception de systèmes mais plutôt un langage de modélisation
d’information. C'est-à-dire qu’elle utilise objet à qui il faut associer une démarche
une approche systémique. pour en faire une méthode. c’est le cas de
la méthode 2TUP, RUT et XP.
Introduction
Pour spécifier complètement une application, les diagrammes UML seuls sont généralement
insuffisants. Il est donc nécessaire de rajouter des contraintes.
C’est avec OCL (Object Constraint Language) qu’UML formalise l’expression des
contraintes. Il s’agit donc d’un langage formel d’expression de contraintes bien adapté aux
diagrammes d’UML, et en particulier au diagramme de classes.
OCL existe depuis la version 1.1 d’UML et est une contribution d’IBM. OCL fait partie
intégrante de la norme UML depuis la version 1.3 d’UML. Dans le cadre d’UML 2.0, les
spécifications du langage OCL figurent dans un document indépendant de la norme d’UML,
décrivant en détail la syntaxe formelle et la façon d’utiliser ce langage.
OCL peut s’appliquer sur la plupart des diagrammes d’UML et permet de spécifier des
contraintes sur l’état d’un objet ou d’un ensemble d’objets comme :
Note : Une expression OCL décrit une contrainte à respecter et pas le « code » d'une méthode.
Exemple
2. Invariants (inv)
Un invariant exprime une contrainte prédicative sur un objet, ou un groupe d’objets, qui doit
être respectée en permanence.
Syntaxe : inv : <expression_logique>
Syntaxe :
– Précondition : pre : <expression_logique>
– Postcondition : post : <expression_logique>
<expression_logique> est une expression logique qui doit toujours être vraie.
Exemple
Concernant la méthode débiter de la classe Compte, la somme à débiter doit être positive pour
que l’appel de l’opération soit valide et, après l’exécution de l’opération, l’attribut solde doit
avoir pour valeur la différence de sa valeur avant l’appel et de la somme passée en paramètre.
context Compte::débiter(somme : Real)
pre : somme > 0
post : solde = solde@pre - somme
Le résultat de l’appel de l’opération getSolde doit être égal à l’attribut solde.
context Compte : :getSolde() : Real
post : result = solde
Jusqu’à UML 2.0 exclu, les collections étaient toujours plates : une collection ne pouvait pas
posséder des collections comme éléments. Cette restriction n’existe plus à partir d’UML 2.0.
Une opération peut avoir des paramètres, il faut alors les préciser entre les parenthèses de
l’opération.
Par exemple, dans le contexte de la classe Compte, on peut utiliser les expressions suivantes :
– solde
Pour faire référence à un objet, ou un groupe d’objets, en association avec l’objet désigné par
le contexte, il suffit d’utiliser le nom de la classe associée (en minuscule) ou le nom du rôle
d’association du coté de cette classe. Quand c’est possible, il est préférable d’utiliser le nom
de rôle de l’association du côté de l’objet auquel on désire faire référence.
– employé.compte désigne l’ensemble des comptes de tous les employés de la société (résultat
de type Bag(Compte)) ;