Université de Bangui CRM Modélisons en UML Ce cours a été possible grâce à l initiative d Apollinaire MOLAYE qui m a contacté pour vous faire bénéficier de mes connaissances en nouvelles technologies et méthodologies de conception qui sont mon environnement de travail.
Origine : Né de la fusion des méthodes objet dominantes (OMT, Booch et OOSE), puis normalisé par l'omg en 1997, UML est rapidement devenu un standard incontournable. UML n'est pas à l'origine des concepts objet, mais il en en donne une définition plus formelle et apporte la dimension méthodologique qui faisait défaut à l'approche objet. ULM est très proche des langages objets. UML Utilisé dans plusieurs domaine, architecture, mécanique etc.. 1) Qu'est-ce qu'un modèle? Un modèle est une abstraction de la réalité L'abstraction est un des piliers de l'approche objet. Un modèle est une vue subjective mais pertinente de la réalité. C est une frontière entre la réalité et la perspective de l'observateur. C est une vue de la réalité. Exemple : à partir de données d'observation (satellite...), on peut prévoir les conditions climatiques pour les jours à venir. Un modèle représente le système étudié, il réduit sa complexité et du reproduit ses comportements. Les modèles ont des liens entre elles, ces liens sont appelés des RELATIONS. Ces relations leurs permettent de communiquer et d avoir des privilèges. Quelques symboles de relation : 2) Comment modéliser avec UML? 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! La modélisation UML se fait avec des diagrammes. Il y a deux types de diagramme, les diagrammes statiques et les diagrammes dynamiques. Les diagrammes statiques : ce sont des vues stables, leur comportement n évolue pas. 2
Paquetages (packages) : Les paquetages sont des éléments d'organisation des modèles. Ils regroupent des éléments de modélisation, selon des critères purement logiques. Ce sont des centenaires. Ils permettent d'encapsuler des éléments de modélisation (ils possèdent une interface). Ils permettent de structurer un système en catégories (vue logique) et sous-systèmes (vue des composants).on peut aussi les utiliser pour comme des espaces de noms. Exemple de packages: 3) Acteur Un acteur, au sens UML, représente le rôle d'une entité externe (utilisateur humain ou non) interagissant avec le système. Il est représenté par un bonhomme en fil de fer (en anglais stick man). On représente généralement à gauche l'acteur principal (idéalement il y en a un seul), et à droite les acteurs secondaires. Il est à noter qu'un utilisateur peut amener à jouer plusieurs rôles vis-à-vis du système et à ce titre être modélisé par plusieurs acteurs. Exemple d un acteur Pour résumer, un acteur est un utilisateur du système. C est un homme, une machine ou un programme. 3
4) Les Cas d utilisations Un cas d'utilisation (en anglais use case) permet de mettre en évidence les relations fonctionnelles entre les acteurs et le système étudié. Le format de représentation d'un cas d'utilisation est complètement libre mais UML propose un formalisme et des concepts issus de bonnes pratiques. Le diagramme de cas d'utilisation permet de représenter visuellement une séquence d'actions réalisées par un système, représenté par une boîte rectangulaire, produisant un résultat sur un acteur, appelé acteur principal, et ceci indépendamment de son fonctionnement interne. Exemple de Cas d utilisation Retenons qu un cas d utilisation (use case) permet de mettre en évidence un acteur du système et les fonctionnalités dont il profite. 4.1 Relations entre cas d'utilisation Trois types de relation standard entre cas d'utilisation sont proposés par UML : include: le cas d'utilisation dépend explicitement et de manière obligatoire d une autre cas d'utilisation à l'endroit spécifié. Exemple de relation include 4
extend: le cas d'utilisation dépend implicitement de manière facultative un autre cas d'utilisation à l'endroit spécifié. Exemple de relation extend généralisation: les cas d'utilisation descendants héritent des propriétés de leur parent. 5) Diagramme qui fait quoi C est le diagramme qui représente l ensemble des acteurs du système, avec leurs hiérarchies, qui agissent sur toutes les fonctionnalités du système. Hiérarchie des cas d utilisations L hiérarchie d un cas d utilisation c est sa décomposition en sous cas d utilisations sous forme d arbre. Ces sous sont aussi décomposés à leur tour jusqu'à ce qu il n y ait plus de décompositions. Les cas d utilisations les plus bas sont des feuilles. Ce sont des méthodes qui seront développées dans des classes. Méthode et classe seront abordées dans le prochain cours.. 5
Exemple d hiérarchie des cas d utilisations 6
6) Les classes et Objet 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. Classe = attributs + méthodes + instanciation. Attribut : c est une variable de la classe. Méthode : c est une opération de la classe. Ne pas représenter les attributs ou les méthodes d'une classe sur un diagramme, n'indique pas que cette classe n'en contient pas. Il s'agit juste d'un filtre visuel, destiné à donner un certain niveau d'abstraction à son modèle. De même, ne pas spécifier les niveaux de protection des membres d'une classe ne veut pas dire qu'on ne représente que les membres publics. Là aussi, il s'agit d'un filtre visuel. Niveau de protection = portabilité. Exemple d une classe: Prototype d une classe Instance d une classe Un objet est une instance de la classe, exemple : Pour un modèle complexe, plusieurs diagrammes de classes complémentaires doivent être construits. On peut par exemple se focaliser sur : les classes qui participent à un cas d utilisation, les classes associées dans la réalisation d'un scénario précis, les classes qui composent un paquetage, la structure hiérarchique d'un ensemble de classes. 7
6.1) Associations entre classes Une association exprime une connexion sémantique bidirectionnelle entre deux classes. L association est instanciable dans un diagramme d'objets ou de collaboration, sous forme de liens entre objets issus de classes associées. Exemple : 6.2) Rôle : Le rôle spécifie la fonction d'une classe pour une association donnée (indispensable pour les associations réflexives). Exemple : 6.3) Cardinalité : précise le nombre d'instances qui participent à une relation. Expression : n : un entier supérieur à 0 : exemples : 2, 3 n..m : intervalle de n à m avec n <= m et n>=0. Exemple : 1..10 * : plusieurs (équivalent à "0..n" et "0..*") n..* : "n" ou plus (n, entier naturel ou variable) : Exemples : "0..*", "5..*" Dans la pratique on utilise la notation avec * ou m mais pas les deux à la fois. Exemple : 1..*, 1..n. 8
6.4) Les Relations: Relation de dépendance : relation d'utilisation unidirectionnelle et d'obsolescence (une modification de l'élément dont on dépend, peut nécessiter une mise à jour de l'élément dépendant). Exemple: Association à navigabilité restreinte : Par défaut, une association est navigable dans les deux sens. La réduction de la portée de l'association est souvent réalisée en phase d'implémentation, mais peut aussi être exprimée dans un modèle pour indiquer que les instances d'une classe ne "connaissent" pas les instances d'une autre. Symbole Exemple 9
Association n-aire : il s'agit d'une association qui relie plus de deux classes... Note : de telles associations sont difficiles à déchiffrer et peuvent induire en erreur. Il vaut mieux limiter leur utilisation, en définissant de nouvelles catégories d'associations. Symbole Exemple Classe d'association : Une association concerne trois classes dont une qui permet de réaliser la navigation entre la navigation entre les instances des autres. Symbole Exemple 10
Agrégation faible (Aggregate): C est une relation de type 1..n, avec une faible dépendance. Symbole Exemple Agrégation forte(compose) : C est une relation de type 1..n, avec une forte dépendance. La suppression d une instance de classe mère entraine celle de la fille. Symbole Exemple 11