Modélisation logicielle et UML
La modélisation logicielle représente un système par le biais d'abstractions qui en saisissent la structure et le comportement, et le Langage de Modélisation Unifié (UML) constitue la notation graphique standard pour exprimer de tels modèles.
Definition
La modélisation logicielle est la construction de représentations abstraites d'un système logiciel afin de l'analyser, de le concevoir et de le communiquer, et UML est un langage de modélisation généraliste standardisé offrant un ensemble unifié de types de diagrammes pour ces représentations.
Scope
Ce sujet aborde les modèles structurels tels que les diagrammes de classes, de composants et de déploiement ; les modèles comportementaux tels que les diagrammes de cas d'utilisation, de séquence, d'activité et d'état-transition ; le rôle des modèles dans l'analyse, la conception et la communication ; l'ingénierie dirigée par les modèles et la génération de code ; ainsi que le niveau de rigueur de modélisation approprié pour un projet donné.
Core questions
- Quels aspects d'un système sont saisis par les modèles structurels par rapport aux modèles comportementaux ?
- Comment les principaux types de diagrammes UML représentent-ils une conception ?
- Quel niveau de rigueur de modélisation est approprié pour un projet donné ?
- Quand la génération automatique de code à partir de modèles est-elle pertinente ?
Key theories
- Vues multiples d'un système
- Un système est modélisé à partir de points de vue complémentaires — structure statique, interactions, comportement d'état et déploiement — chacun étant capturé par des types de diagrammes appropriés, car aucune vue unique ne transmet toutes les informations de conception pertinentes.
- Ingénierie dirigée par les modèles
- Les modèles peuvent servir d'artefacts de développement primaires à partir desquels les implémentations sont partiellement ou entièrement générées par des transformations, élevant le niveau d'abstraction et liant directement la conception au code.
Clinical relevance
Les modèles explicitent l'intention de conception, soutiennent l'analyse avant l'existence du code et fournissent un langage commun à une équipe ; leur valeur dépend de l'utilisation d'une quantité appropriée de modélisation, car des modèles excessifs ou obsolètes imposent des coûts sans apporter de bénéfices.
Evidence & guidelines
La spécification UML de l'OMG définit la notation et la sémantique standard, et les normes OMG connexes telles que SysML et MOF étendent la modélisation à l'ingénierie des systèmes et à la métamodélisation.
History
UML a émergé au milieu des années 1990 de l'unification des méthodes Booch, OMT et Objectory, a été adopté comme norme OMG en 1997, et a évolué jusqu'à UML 2 ; les approches dirigées par les modèles et l'esquisse légère coexistent avec des débats sur la rentabilité de la modélisation formelle.
Debates
- Développement dirigé par les modèles lourd versus esquisse légère
- La question de savoir si les modèles doivent être des artefacts faisant autorité qui pilotent la génération de code ou des esquisses informelles pour la communication est débattue ; la vision du modèle-en-tant-que-programme promet la cohérence, tandis que l'utilisation orientée esquisse valorise la faible surcharge et l'adaptabilité.
Key figures
- Grady Booch
- James Rumbaugh
- Ivar Jacobson
- Martin Fowler
Related topics
Seminal works
- booch2005
- omg2017uml
- fowler2003
Frequently asked questions
- L'UML est-il toujours pertinent dans le développement agile ?
- Oui, bien que souvent utilisé de manière plus légère. Les équipes agiles ont tendance à utiliser les diagrammes UML comme des esquisses informelles pour communiquer et raisonner sur la conception plutôt que comme des spécifications exhaustives, appliquant juste assez de modélisation pour clarifier le problème en question.
- La modélisation nécessite-t-elle l'UML ?
- Non. L'UML est la notation la plus largement standardisée, mais la modélisation peut utiliser d'autres notations ou des langages spécifiques au domaine ; l'idée essentielle est l'abstraction de la structure et du comportement, pour laquelle l'UML est une option bien supportée.