Pour raisonner sur des systèmes, on en fait une abstraction : un modèle.
Un modèle est donc une abstraction d'un système, c'est-a-dire une image dans laquelle on ne retient que les caractéristiques utiles pour raisonner sur le système (répondre à des questions qu'on se pose sur le système).
Le modèle est exprimé dans un langage. Le langage associé au modèle décrit les éléments des systèmes retenus pour le modèle.
Exemple : Z, Réseau de Pétri.
Les avantages
La diversité des possibilités de modélisation
la possibilité d’exprimer des liens de traçabilité
la représentation sous format graphique, facilitant d’autant la communication entre les acteurs des projets informatiques. Ex : les modèles relationnels, qui permettent de spécifier la structure des bases de données.
Les manipulations
Vérifications (compilation, preuves...)
vérifier les propriétés du modèle (pas d'erreur)
vérifier les propriétés du système (non-redondance, non blocage, sûreté, ...)
Validations : comparer le modèle avec son système la réalité (lectures, tests, simulations...)
Transformations:
Raffiner/Abstraire : changer de niveau d'abstraction.
Implanter : version exécutable du modèle.
Transformation vers d'autres modèles : changement de représentation, communication...
Les Métamodèles
Pour raisonner sur des modèles, on en fait une abstraction : un métamodèle.
Un métamodèle est donc une abstraction d'un modèle, c'est-a-dire une image dans laquelle on ne retient que les caractéristiques utiles pour raisonner sur les modèles (comparer des modèles, transformer des modèles).
Le métamodèle est exprimé dans un langage.
Le langage associé au métamodèle décrit les éléments des modèles et donc des langages de modélisation.
Exemple : le méta modèle UML définit tous les éléments disponibles pour écrire un modèle UML (paquetage, Classe, Attribut, …).
Fin du mythe de l'application autonome, sans maintenance, sans évolution
Evolution rapide des technologies (XML, Web, langages, environnements).
Remise en cause permanente des infrastructures techniques
Remise en cause permanente des besoins
OMG Object Management Group
Est un consortium à but non lucratif d’industriels et de chercheurs, dont l’objectif est d’établir des standards permettant de résoudre les problèmes d’interopérabilité des systèmes d’information (http://www.omg.org).
Solutions
Abstraction : travailler sur des modèles et non des implantations.
Model Driven
Automatisation : outils de production du code.
Intégration : fusion des applications (existantes ou non).