B. Langage de modélisation UML
Le recours à la modélisation est depuis
longtemps une pratique indispensable au développement logiciel, car un
modèle est prévu pour arriver à anticiper les
résultats du codage. Un modèle est en effet une
représentation abstraite d'un système destiné à en
faciliter l'étude et à
13
le documenter. C'est un outil majeur de communication entre
les différents intervenants au sein d'un projet. Chaque membre de
l'équipe, depuis l'utilisateur jusqu'au développeur, utilise et
enrichit le modèle différemment.13
L'approche objet est incontournable dans le cadre du
développement de systèmes logiciels complexes, capables de suivre
les évolutions incessantes des technologies et des besoins applicatifs.
Cependant, la programmation objet est moins intuitive que la programmation
fonctionnelle. En effet, il est plus naturel de décomposer les
problèmes informatiques en termes de fonctions qu'en termes d'ensembles
d'objets en interaction. De ce fait, l'approche objet requiert de
modéliser avant de concevoir. La modélisation apporte une grande
rigueur, offre une meilleure compréhension des logiciels, et facilite la
comparaison des solutions de conception avant leur développement. Cette
démarche se fonde sur des langages de modélisation, qui
permettent de s'affranchir des contraintes des langages
d'implémentation.
Le besoin d'une méthode de description et de
développement de systèmes, prenant en compte à la fois les
données et les traitements, a grandi en même temps que la taille
des applications objet. Au milieu des années 90, plusieurs dizaines de
méthodes objet sont disponibles, mais aucune ne prédomine.
L'unification et la normalisation des trois méthodes dominantes,
à savoir Booch, du nom de son auteur, OOSE (Object Oriented Software
Engineering), d'Ivan Jacobson et OMT (Object Modeling Technique), de James
Rumbaugh, sont à l'origine de la création du langage UML (Unified
Modeling Language).
UML (Langage de Modélisation Unifié) est une
notation graphique conçue pour représenter, spécifier,
construire et documenter les systèmes logiciels. Ses deux principaux
objectifs sont la modélisation de systèmes utilisant les
techniques orientées objet, depuis la conception jusqu'à la
maintenance, et la création d'un langage abstrait compréhensible
par l'homme et interprétable par les machines. UML s'adresse à
toutes les personnes chargées de la production, du déploiement et
du suivi de logiciels (analystes, développeurs, chefs de projets,
architectes...), mais peut également servir à la communication
avec les clients et les utilisateurs du logiciel. Il s'adapte à tous les
domaines d'application et à tous les supports. Il permet de construire
plusieurs modèles d'un système, chacun mettant en valeur des
aspects différents :
13Roques P., Les Cahiers du Programmeur UML2
Modéliser une application web, p.2
14
fonctionnels, statiques, dynamiques et organisationnels. UML
est devenu un langage incontournable dans les projets de
développement.
Une méthode de développement définit
à la fois un langage de modélisation et la marche à suivre
lors de la conception. Le langage UML propose uniquement une notation dont
l'interprétation est définie par un standard, mais pas une
méthodologie complète. Plusieurs processus de
développement complets fondés sur UML existent, comme le Rational
Unified Process (RUP), de Booch, Jacobson et Rumbaugh, ou l'approche MDA (Model
Driven Architecture) proposée par l'OMG, mais ils ne font pas partie du
standard UML.
UML permet de construire plusieurs modèles d'un
système certains montrent le système du point de vue des
utilisateurs, d'autres montrent sa structure interne, d'autres encore en
donnent une vision globale ou détaillée. Les modèles se
complètent et peuvent être assemblés. Ils sont
élaborés tout au long du cycle de vie du développement
d'un système (depuis le recueil des besoins jusqu'à la phase de
conception).14
UML 2 s'articule autour de treize types de diagrammes, chacun
d'eux étant dédié à la représentation des
concepts particuliers d'un système logiciel. Ces types de diagrammes
sont répartis en deux grands groupes :
a) Six diagrammes structurels :
Ø Diagramme de classes : Il montre les briques de base
statiques : classes, associations, interfaces, attributs, opérations,
généralisations, etc.
Ø Diagramme d'objets : Il montre les instances des
éléments structurels et leurs liens à
l'exécution.
Ø Diagramme de packages : Il montre l'organisation
logique du modèle et les relations entre packages.
Ø Diagramme de structure composite : Il montre
l'organisation interne d'un élément statique complexe.
Ø Diagramme de composants : Il montre des structures
complexes, avec leurs interfaces fournies et requises.
14CHARROUX B. OSMANI A. et THIERRY-MIEG Y., UML2
Pratique de la modélisation 2e édition, p.7
15Roque P., Idem, p.5.
15
Ø Diagramme de déploiement : Il montre le
déploiement physique des « artefacts » sur les ressources
matérielles.
b) Sept diagrammes comportementaux :
Ø Diagramme de cas d'utilisation - Il montre les
interactions fonctionnelles entre les acteurs et le système à
l'étude.
Ø Diagramme de vue d'ensemble des interactions - Il
fusionne les diagrammes d'activité et de séquence pour combiner
des fragments d'interaction avec des décisions et des flots.
Ø Diagramme de séquence - Il montre la
séquence verticale des messages passés entre objets au sein d'une
interaction.
Ø Diagramme de communication - Il montre la
communication entre objets dans le plan au sein d'une interaction.
Ø Diagramme de temps - Il fusionne les diagrammes
d'états et de séquence pour montrer l'évolution de
l'état d'un objet au cours du temps.
Ø Diagramme d'activité - Il montre
l'enchaînement des actions et décisions au sein d'une
activité.
Ø Diagramme d'états - Il montre les
différents états et transitions possibles des objets d'une
classe.15
|