UML

Un article de MonWiki.

En construction...

Sommaire

Principes généraux

Pour conduire une analyse objet cohérente, il ne faut pas directement penser en terme de pointeurs, d'attributs et de tableaux, mais en terme d'association, de propriétés et de cardinalités...

Le métamodèle d'UML décrit de manière très précise tous les éléments de modélisation (les concepts véhiculés et manipulés par le langage) et la sémantique de ces éléments (leur définition et le sens de leur utilisation).

Résumé sur les concepts fondateurs de l'approche objet :

  • la notion d'objet et de classe (d'objets),
  • l'encapsulation (les interfaces des objets),
  • l'héritage (les hiérarchies d'objets),
  • l'agrégation (la construction d'objets à l'aide d'objets).

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 !

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.

Définir une architecture avec UML (vue 4+1)

La vue logique

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 :

  • 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" :

  • pour répartir les tâches dans les équipes,
  • regrouper ce qui peut être générique,
  • isoler ce qui est propre à une version donnée, etc...

La vue des composants

Cette vue de bas niveau (aussi appelée "vue de réalisation"), montre :

  • L'allocation des éléments de modélisation dans des modules (fichiers sources, bibliothèques dynamiques, bases de données, exécutables, etc...).
  • En d'autres termes, cette vue identifie les modules qui réalisent (physiquement) les classes de la vue logique.
  • L'organisation des composants, c'est-à-dire la distribution du code en gestion de configuration, les dépendances entre les composants...
  • Les contraintes de développement (bibliothèques externes...).
  • La vue des composants montre aussi l'organisation des modules en "sous-systèmes", les interfaces des sous-systèmes et leurs dépendances (avec d'autres sous-systèmes ou modules).

La vue des processus

Cette vue est très importante dans les environnements multitâches ; elle montre :

  • La décomposition du système en terme de processus (tâches).
  • Les interactions entre les processus (leur communication).
  • La synchronisation et la communication des activités parallèles (threads).

La vue de déploiement

Cette vue très importante dans les environnements distribués, décrit les ressources matérielles et la répartition du logiciel dans ces ressources :

  • La disposition et nature physique des matériels, ainsi que leurs performances.
  • L'implantation des modules principaux sur les noeuds du réseau.
  • Les exigences en terme de performances (temps de réponse, tolérance aux fautes et pannes...).

La vue des besoins des utilisateurs

Cette vue (dont le nom exact est "vue des cas d'utilisation"), guide toutes les autres.

Dessiner le plan (l'architecture) d'un système informatique n'est pas suffisant, il faut le justifier !

Cette vue définit les besoins des clients du système et centre la définition de l'architecture du système sur la satisfaction (la réalisation) de ces besoins.

A l'aide de scénarios et de cas d'utilisation, cette vue conduit à la définition d'un modèle d'architecture pertinent et cohérent.

Cette vue est la "colle" qui unifie les quatre autres vues de l'architecture.

Elle motive les choix, permet d'identifier les interfaces critiques et force à se concentrer sur les problèmes importants.

Références

Sur le web :

À lire :

  • FOWLER (Martin) - UML Distilled, 2e éd. Addison-Wesley, Etats-Unis, 2000, 185 p.
  • LARMAN (Craig) - UML2 et les design patterns, 3e édition. Pearson Education France, Paris, 2005, 655 p.

Warning: main() [function.main]: open_basedir restriction in effect. File(/mnt/145/sdb/9/8/sroccaserra/wiki/skins/common/images/icons/Images-functions.txt) is not within the allowed path(s): (/mnt/109/sdb/9/8/sroccaserra) in /mnt/109/sdb/9/8/sroccaserra/wiki/includes/OutputPage.php on line 2

Warning: main(/mnt/145/sdb/9/8/sroccaserra/wiki/skins/common/images/icons/Images-functions.txt) [function.main]: failed to open stream: Operation not permitted in /mnt/109/sdb/9/8/sroccaserra/wiki/includes/OutputPage.php on line 2

Warning: main() [function.include]: Failed opening '/mnt/145/sdb/9/8/sroccaserra/wiki/skins/common/images/icons/Images-functions.txt' for inclusion (include_path='/mnt/109/sdb/9/8/sroccaserra/include:.:/usr/php4/lib/php') in /mnt/109/sdb/9/8/sroccaserra/wiki/includes/OutputPage.php on line 2