Objecteering 6 optimise MDA et UML2 pour produire un code C++ d’un haut niveau d’expertise : il maximise la productivité et la qualité des développements C++
Comment tirer parti au mieux de la modélisation UML à des fins de production automatisée d’un code de qualité, maintenu en cohérence avec le modèle ? L’approche MDA qui consiste à exploiter le modèle par des mécanismes de transformation répond précisément à cette problématique en assurant également la traçabilité entre le code généré et les modèles. Avec Objecteering 6, Objecteering Software met à disposition des développeurs C++ une nouvelle génération d'outils de développement guidé par le modèle, en s'appuyant sur les dernières avancées de MDA et de UML2.1 tout en prenant en compte la définition complète du langage C++, ses librairies, ses extensions possibles et ses différences selon les plates-formes.
La maîtrise d’un langage complexe
Le langage C++ est reconnu comme étant particulièrement complexe et nécessitant un haut niveau d'exper tise : Le développeur a constamment la responsabilité de définir les modalités de gestion mémoire, à travers des choix de construction/destruction d'objet, de passage de paramètres (const, &, *, valeur, **, etc.). Il doit définir sa gestion de l'encapsulation des informations, de l'import des sources, du choix approprié des librairies, etc. Il est de ce fait difficile de garantir une bonne qualité de programmation sur une équipe de développement, où chaque ligne de code peut contenir des chausse-trappes significatives. Objecteering 6 résout ces difficultés par une approche systématique fournissant les solutions optimales et assurant une grande homogénéité dans la qualité du code. Toute la flexibilité nécessaire est également apportée pour permettre aux développeurs de contrôler ou de piloter leurs choix dans des cas spécifiques. Le code C++ est produit à 100%, dans le respect du modèle et des règles (paramétrables) de production de code. Il est complet, directement compilable, et conforme aux critères les plus exigeants de lisibilité, d’efficacité, de robustesse et de maintenabilité.
La richesse de UML2 traduite en C++
Objecteering 6 exploite au mieux les nouvelles capacités du standard UML 2.1. Les template UML2 permettent ainsi efficacement de modéliser et générer les templates C++. La gestion des liens d'import, couplée à un service de contrôle de cohérence sur leur bonne utilisation, permet de gérer finement les includes avec leurs diverses options d'emploi. Les associations sont pleinement exploitées, jusqu'à leur qualifier et contraintes associées pour déduire les librairies de container appropriées. Les distinctions entre types de données et classes permettent d'optimiser la stratégie de gestion mémoire. L'organisation en packages et classes du modèle permet de structurer les codes sources en répertoires, interfaces (.hxx) et corps (.cxx) des classes et de gérer les namespaces C++. La prise en compte de UML2 se prolonge jusqu'au déploiement de l’application où les diagrammes de déploiement prennent tout leur sens en permettant la génération de la chaîne de production (makefiles).
Une gestion de cohérence modèle/code permanente
Avec Objecteering 6, le modèle est le code : le développeur complète le modèle UML par l’algorithmique des méthodes, tout en étant guidé dans l’outil. La modélisation est intégralement exploitée, l’utilisateur n’ayant jamais à reformuler le modèle en C++. Les compléments de code, attachés aux éléments de modèle, sont stockés dans le référentiel. A chaque instant la cohérence du modèle UML et du code C++ est garantie. Le développeur peut ainsi programmer le corps des méthodes avec son éditeur de code ou son IDE favori : quand le modèle est modifié, Objecteering re-génère le code de façon incrémentale et quand le code est modifié, il assure la mise à jour du modèle via son référentiel.
Une ergonomie dédiée au programmeur C++
Lors de la modélisation, Objecteering 6 complète dynamiquement le modèle pour y ajouter les parties nécessaires ou recommandées à la programmation C++ (pattern de Coplien, patterns pour les accesseurs, etc.). Les parties ajoutées sont maintenues en cohérence avec le reste du modèle. La prévisualisation permet lors de la saisie d'un modèle, d’en connaître la forme C++ correspondante avant la génération. Des assistants aident le programmeur sur les parties les plus complexes, comme la création de patterns, ou la définition de la cible de génération.
Pour plus d’informations :
www.objecteering.com
eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%69%6e%66%6f%40%6f%62%6a%65%63%74%65%65%72%69%6e%67%2e%63%6f%6d%22%3e%69%6e%66%6f%40%6f%62%6a%65%63%74%65%65%72%69%6e%67%2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))
Tél. : 01 30 12 16 60