Introduction à la modélisation UML
Introduction
Le développement des systèmes logiciels est une compétence qui peut être apprise seulement par la pratique comme d’autres compétences telles que jouer au football, la natation…etc. pour acquérir ces compétences, la théorie seule ne suffit pas. C.à.d. connaitre par cœur le tout sur le football ne te rend pas un footballeur si tu ne pratique pas ce sport. Pareil pour le développement des logiciels connaitre le tout sur le développement logiciel ne suffit pas si tu ne développes pas.
Modélisation
La modélisation est largement utilisée en ingénierie et en science pour représenter un système afin de le décrire, le comprendre, le simuler.
Les dessins sont souvent utilisés par Les architectes et les ingénieurs pour représenter (modéliser) une conception ou des constructions.
‘Modeling is the systematic representation of the relevant features of a product or a system from particular perspectives’.(asheraf )
Dans le domaine de génie logiciel et Selon l’ Object Modeling Group (OMG), “modeling is the designing of software applications before coding »
Les développeurs du logiciel utilisent aussi des digrammes pour modéliser un système logiciel.
Chaque modèle représente une partie de système ou un aspect de ce système (e.g., structure, comportement). Chaque modèle fournit une vue de système mais pas l’image complète du système.
Modèle
« A model is an abstraction of something for the purpose of understanding it before building
It » (Rambaught et blaha 2005).
Un modèle est une abstraction d’une réalité afin de la comprendre ou de la simuler.
Le modèle capture les aspects importants d’un système et ignore (abstraire) le reste.
Il peut être graphique, textuel, mathématique ou basé sur le code.
Abstraction
Le fait de ne considérer que les caractéristiques essentielles d’un objet d’étude et d’écarter le reste. C’est un outil pour maitriser la complexité.
Pour développer un système complexe, le développeur abstrait différents vues de système, construit des modèles en utilisant une notation précise, vérifie si les modèles sont valides par rapport aux besoins et ajoute progressivement les détails pour les transformer en une implémentation. (Rambaught et blaha 2005)
Exemple
La personne omar et sa photo.
La photo (vue apparence) est un modèle possible de la vie de Omar qui représente l’apparence de Omar et peut donner une idée sur son caractère.
Autres modèles possibles de la vie de omar sont :
1.
Omar amine
Date naissance :1-1-2014
Adresse : saida
Ecole : el ibrahimi
classe: 2AF2.
L’arbre de la famille est un modèle graphique (diagramme) (vue famille) ne donne rien sur l’apparence mais des infos sur la famille de Omar les parents et les frères et sa position parmi eux.
L’autre modèle est textuel est donne des info sur l’adresse, l’école ..etc. (vue étude).
Donc chaque modèle nous donne des infos sur un aspect de la vie de Omar et pour avoir une vue complète de la vie de Omar on doit utiliser toutes les infos existante dans tous ces modèles (peut être il est nécessaire de voir aussi d’autres modèles).
Les modèles de la vie de Omar sont une abstraction de cette vie mettant accent sur certains aspects de Omar et écarte le reste des détails.
Intérêt des modèles
Les modèles sont construits afin de (Rumbaught et blaha 2005):
1. Tester une entité physique avant de la construire
2. Support de communication entre clients
3. Visualisation
4. Gérer la complexité
Les modèles sont construits et analysés avant l’implémentation et servent comme support pour la diriger.
Les modèles sont utilisés pour gérer la complexité et ils sont utilisés durant le développement du logiciel pour :
1. Analyse
2. Spécification
3. Conception
4. Visualisation
5. Communication
6. Test
7. Compréhension
8. Génération de code
9. Réutilisation
10. …etc
UML
Après la naissance de l’approche OO, plusieurs notations et méthodes d’analyse et conception OO sont apparues. UML a été développé comme un langage et une notation graphique standards (OMG) pour décrire les modèles OO.
The Unified Modeling Language (UML) est un langage de modélisation et une notation pour spécifier, développer, visualiser et documenter les modèles d’un système logiciel.
Il est le résultat d’unification des notations proposées par Booch ; Ivar jacobson et Rumbaugh.
Fig 1 naissance et évolution d’UML (Jim arlow and ILa 2009)
UML n’est pas une méthode, mais il peut être utilisé avec toutes les méthodes d’analyse et conception OO (M A&C OO).
UML comme une notation standard est utilisé dans la majorité des méthodes modernes d’ A&C OO pour décrire les modèles de besoins, d’analyse et de conception.
Une bonne compréhension de système est généralement obtenue en étudiant différents perspectives de ce système (multiples vues) (gomaa 2006). Par exemple Modèles des besoins, modèles statiques et modèles dynamiques du système
UML comme une notation graphique ( ensemble de diagrammes) aide dans le développement , la compréhension, et la communication de ces vues.(gommaa 2011).
Les diagrammes UML
La modélisation d’un système est généralement effectué en modélisant différents vues de ce système. Par exemple les constructions sont modélisés de différents point de vues (perspectives) : vue ventilation, vue électricité, vue lumière,etc.
UIML est formé d’un ensemble de digrammes pour capturer les différentes vues d’un système logiciel.
Chaque diagramme fournit une vue de système (représente une partie du modèle)
Ces digrammes capturent les 4+1 vues de l’architecture du système logiciel (krench)suivantes :
• User’s view (vue utilisateur) : définit les fonctionnalités offertes par le système de point de vue ses utilisateurs.
• Structural view (structure) : définit les classes qui composent le système et les relations entre eux. Le model structurel est aussi appelé modèle statique parce que la structure est fixe dans le temps.
• Behavioral view (comportement) : représente comment les objets interagissent pour réaliser les fonctionnalités offertes par le logiciel.
• Implémentation view (implémentation) : capture les différents composants qui composent le logiciel et les relations entre eux.
• Environmental view (environnement) : représente comment les différent composants sont implémentés sur les unités matérielles .
La vue utilisateur spécifie ce que l’utilisateur attend du système et les 4 vues restantes spécifient comment réaliser ces attentes.
Ces 4+1 vues peuvent être vues selon 3 axes de modélisation (fig 2) :
Fonctionnel, statique et dynamique, (les diagrammes entre parenthèses portent moins de détails de les autres).
Fig2 les trois axes classiques de modélisation
Note :
Note : les parties de cours qui suivent sont organisées selon ces trois axes de modélisation. Fonctionnel, statique et dynamique.
Les éléments du modèle
Un modèle est une collection des éléments de modèle liés entre eux. Ce sont les briques de base (atome) de la modélisation.
UML définit un ensemble large des éléments de modélisation tels que les classes, les opérations, les appels de fonction ..etc.
Un modèle est présenté sous forme d’un ensemble de diagrammes qui sont des représentations graphiques d’une collection des éléments de modèle. Les différents types de diagrammes présentent des informations différentes sur la structure ou le comportement des éléments de modèle qui montrent.
Chaque type de diagramme a des règles qui dictent quels sont les éléments de modèle qui peuvent apparaitre dans ce type de diagramme et comment il sont présentés.
Comprendre UML
1. Il faut comprendre les différents types des éléments de modèle et comment il peuvent être utilisés dans les modèles UML.
2. Connaitre les différents type de diagrammes et la relation existante entre la forme graphique des diagrammes et l’élément de modèle qui représentent.