Partie 1 · Modéliser
UML : un langage pour penser avant de coder
Avant d'écrire une seule table SQL, il faut savoir ce qu'on construit. C'est le rôle de la modélisation : décrire de façon visuelle les besoins et les solutions d'un projet logiciel. Comme pour un meuble en kit : un schéma se comprend plus vite qu'une page de texte.
UML (Unified Modeling Language) est un langage visuel fait de schémas appelés diagrammes, chacun donnant une vision différente du projet. Fin 1997, UML est devenu une norme de l'OMG (Object Management Group), un organisme à but non lucratif créé en 1989 à l'initiative de grandes sociétés (HP, Sun, Unisys, American Airlines, Philips…), qui fédère aujourd'hui plus de 850 acteurs et promeut des standards d'interopérabilité entre applications orientées objet (par exemple l'architecture CORBA).
Trois idées à retenir
| UML est… | Ce que ça veut dire |
|---|---|
| un langage de modélisation objet | On « pense objet » dans une phase d'analyse, indépendamment du langage de programmation (Java, C++…). Un langage de programmation n'est pas un bon support d'analyse : programmer en C++ ou en Java n'implique pas de concevoir objet. |
| un support de communication | Sa notation graphique limite les ambiguïtés. Sa vraie force est son métamodèle : il normalise la sémantique des concepts. Que l'héritage soit une flèche à triangle ou à cercle compte peu ; ce qui compte, c'est le sens donné au modèle. |
| un cadre méthodologique | Il représente un système selon plusieurs vues complémentaires (les diagrammes), de façon itérative. Analyse et conception utilisent le même langage ; seul le niveau de détail change. |
Vérifie que tu as compris
UML n'est pas une méthode
UML représente des modèles, mais ne définit pas le processus pour les élaborer : une méthode propose aussi un processus qui règle l'enchaînement des activités de l'entreprise, et ce sujet a été volontairement exclu des travaux de l'OMG (chaque entreprise a sa culture). UML se glisse donc dans n'importe quel processus : c'est une boîte à outils.
Les auteurs d'UML préconisent quand même une démarche :
- guidée par les besoins des utilisateurs du système,
- centrée sur l'architecture logicielle,
- itérative et incrémentale.
Le RUP (Rational Unified Process) est un processus « clé en main » de Rational Software, lui-même documenté avec UML.
Vérifie que tu as compris
Un peu d'histoire de l'approche objet
Les concepts objet sont anciens et éprouvés : Simula (1967) est le premier langage à implémenter le type abstrait avec des classes ; Smalltalk (1976) implémente encapsulation, agrégation, héritage ; le premier compilateur C++ date de 1980. Ils restent d'actualité car l'approche fonctionnelle s'adapte mal aux applications qui évoluent sans cesse. Revers : l'approche objet est moins intuitive et demande de la rigueur (vocabulaire précis). D'où le besoin d'un langage commun (UML) et d'une démarche d'analyse.