• Aucun résultat trouvé

Chapitre 4 : Une approche de la découverte sémantique des SWG basée

5.1 Le langage de modélisation UML

UML [BOO98] est une notation et un langage standardisé en 1997 par l’OMG (Object

Modeling Group) (OMG UML) qui facilite la conception de programmes, ainsi que leur description

pour des non-informaticiens. UML a la particularité de s’intéresser essentiellement à la modélisation c’est-à-dire la représentation des différents concepts qui interviendront dans l’écriture d’un logiciel [CRA03]. Il est devenu le langage de modélisation orienté objet de référence dans le

Page 104

monde professionnel car il comble une lacune importante des technologies objet : il permet d’exprimer et d’élaborer des modèles objet, indépendamment de tout langage de programmation [PIE06]. Il a été pensé pour servir de support à une analyse basée sur les concepts objet. C’est également un langage graphique semi-formel orienté objet issu des meilleurs outils et pratiques du génie logiciel du début des années 90.

La version (UML 2.1.) définit treize types de diagrammes, répartis en trois catégories [LUD09]:

Les diagrammes de structure incluent le diagramme de classes, le diagramme d’objets, le diagramme de composants, le diagramme de structure composite, le diagramme de paquetages et le diagramme de déploiement.

Les diagrammes de comportement incluent le diagramme de cas d’utilisation, le diagramme d’activités, et le diagramme d’états-transitions.

Les diagrammes d’interaction (dérivés de la catégorie des diagrammes de comportement) incluent le diagramme de séquences, le diagramme de communication, le diagramme de synchronisation (ou de temps), et le diagramme de vue d’ensemble des interactions.

Parmi les diagrammes proposés par UML, nous exploitons particulièrement le diagramme de classes qui est le plus employé et le mieux connu des diagrammes orientés objet; il est considéré comme le plus important des diagrammes du fait qu’il est le cœur de la modélisation objet.

5.1.1 Diagrammes de classes

Un diagramme de classes est défini par Piechocki comme une collection d’éléments de modélisation statique qui fait abstraction des aspects dynamiques et temporels [PIE06].

Les différents éléments représentables dans un diagramme de classes UML sont décrits par le méta- modèle d’UML défini par l’OMG dans le document de spécification de la superstructure d’UML. La figure 42 résume sous forme hiérarchique (un diagramme de classes UML traduit en français). Le langage UML 2.x organise les éléments des diagrammes de classes en trois grandes catégories [LUD09]:

Les classificateurs (classifiers) ont des caractéristiques communes (des propriétés et/ou des

opérations) et sont qualifiés par un espace de nommage unique (un nom). Les classificateurs sont généralisables et peuvent être liés entre eux par des relations.

Les relations (relationships) sont les connexions logiques entre les classificateurs

apparaissant dans un diagramme. Elles peuvent être dirigées (héritage, dépendance) ou non (association). Les relations ont une structure et un sens bien définis en fonction de leur type.

Les caractéristiques (features) sont encapsulées dans les classificateurs. Elles définissent

Optimisation de la découverte sémantique des SWG à base de qualité

Page 105

Figure 42 : Extrait simplifié du méta modèle pour les diagrammes de classes UML 2.X [LUD09]

5.1.1.1 Les classificateurs

Les classificateurs les plus employés dans les diagrammes de classes sont les classes. Une classe est représentée graphiquement sous forme d’un rectangle découpé en trois parties : le nom de la classe, les attributs et les méthodes encapsulées dans cette dernière. Les noms des classes portent par convention une majuscule en tête. Dans l’exemple suivant, la classe représentée est nommée « Personne » et possède trois attributs (« nom », « date de naissance » et « age ») et une méthode qui permet d’accéder à la valeur de l’attribut « age ». Pour ne pas surcharger les diagrammes de classes, les objets sont habituellement représentés à part dans des diagrammes d’objets permettant de mettre en valeur les objets instanciés et leurs liens effectifs.

Figure 43 : Représentations graphiques plus ou moins détaillées d'une classe UML [LUD09] Un type particulier de classe est la classe abstraite. Elle a une représentation similaire à celle d’une classe (concrète) mais ne peut être instanciée directement sous forme d’objets. Pour différencier graphiquement une classe abstraite d’une classe (qui ne l’est pas), son nom est écrit en italique ou précédé d’un stéréotype particulier. Les classes abstraites permettent de généraliser des

Page 106

propriétés et un comportement commun à plusieurs autres classes plus spécialisées (reliées par des relations d’héritage). Les classes abstraites sont utilisées dès la phase d’analyse du problème et prennent tout leur sens au niveau de la phase de conception [LUD09].

5.1.1.2 Les relations

Les relations liant les classificateurs peuvent être de natures diverses. Une association est une relation sémantique entre des classes qui définissent un ensemble de liens [PIE06]. L’association est représentée sous forme d’une ligne entre les classes participantes. Le but d’une association peut être exprimé par un verbe ou un syntagme verbal décrivant comment les objets d’une classe sont en relation avec ceux d’une autre classe. Les associations entre plus de deux classes (associations n-aires) sont peu utilisées et sont rarement recommandées du fait de leur difficulté de déchiffrage et des erreurs qu’elles peuvent induire. Chaque extrémité d’une association (fin d’association) est une propriété dans le métamodèle d’UML (tout comme les attributs dans les classes). Une fin d’association définit le rôle de la classe liée (optionnel) ainsi qu’une multiplicité. Les multiplicités précisent combien d’objets des différentes classes interviennent dans la relation. Une multiplicité doit être affectée à chacune des classes participant à une association et doit suivre la syntaxe définie dans le tableau 09.

Symbole Signification

1 une seule instance. 0..1 de zéro à 1 instance.

M..N de M à N instances. M < N, M et N sont des entiers non négatifs. * de 0 à un nombre quelconque d’instances.

0..* identique à *

1..*. de 1 à un nombre quelconque d’instances

M..* de M à un nombre quelconque d’instances. M est un entier non négatif. Tableau 09 : Multiplicités syntaxiquement correctes pour les propriétés en UML [LUD09]

Les agrégations et les compositions sont des associations binaires particulières et plus restrictives qui apportent le sens « est une partie de » à la relation. L’agrégation indique que les objets sont plus que des objets indépendants ayant des connaissances les uns des autres : ces objets (les composants) peuvent être assemblés ou configurés ensemble pour créer de nouveaux objets plus complexes (les agrégats). Un losange est reporté à l’extrémité de la relation du côté de l’agrégat pour différencier graphiquement une agrégation d’une simple association. La composition est une agrégation où la durée de vie des participants dépend de celle de la relation les reliant. Les objets (les composants) entrant dans la composition d’autres objets (les composites) ne peuvent exister seuls en dehors. Cette forme plus forte d’agrégation est indiquée graphiquement à l’aide d’un losange noir [LUD09].

Optimisation de la découverte sémantique des SWG à base de qualité

Page 107