Model-based design
# Model-based design

Le Model-Based Design (MBD) est une méthode de gestion de projet informatique qui permet d'améliorer le développement d'un système. Alors qu'un développement classique est basé sur le cycle en V, l'approche MBD consiste à modéliser le système au plus tôt pour tester les choix stratégiques & techniques ("Check") dès le design du système ("Plan") tout en structurant et en enrichissant la communication entre les différentes équipes chargées du développement. Le coût de la modélisation est compensé par le gain en temps de développement, la convergence plus rapide de la solution et la réutilisation des modèles créés (parfois d'un facteur 10). Nécessitant un fort investissement initial, le Model-Based Design est essentiellement utilisé pour dimensionner les contrôleurs/régulateurs sur les projets complexes, à forte valeur ajoutée (aéronautique, automobile, industrie...).

## Méthodologie

Le système à développer est décomposé en sous-systèmes jusqu'au niveau de détail souhaité. Ces modules sont ensuite développés en 4 étapes, grâce à l'approche MBD :

* Modélisation du système :
   * Interfaces (Entrées/Sorties)
   * Comportement intrinsèque
* Contextualisation du système
   * Simulation d'environnement (potentiellement interfacée avec des modules extérieurs)
   * Couplage avec le système
* Simulation élémentaire (Un seul module)
* Intégration simulation effectuée en interconnectant plusieurs modules.

La modélisation MBD est très proche des modélisations informatiques et se prête particulièrement bien au développement de systèmes embarqués. On peut citer notamment les méthodes HIL/SIL/MIL (Hardware/Software/Model in the Loop) qui permettent de rapprocher la phase de test et le codage au point d'identifier les erreurs dès le codage (dépassement de valeur d'une variable par exemple) ainsi que générer automatiquement du code. D'ailleurs le MBD se couple généralement avec l'UML.

