Je suis développeur/architecte de logiciels Java et j'aime UML.
Cela dit, je déteste aussi le code généré par Java.
Je ne vois pas l'intérêt d'essayer de générer le squelette de mon application :
- créer des classes vides est très facile et je n'ai pas besoin d'un outil pour le faire
- Je ne peux pas non plus réutiliser le code généré parce que la façon dont il est généré le rend impossible à réutiliser.
Le dilemme pour moi est que mes exigences ont changé si rapidement que je dois être en mesure de mettre en œuvre la nouvelle demande immédiatement dans un code existant.
Mon problème est que si je génère mon code à partir de mon modèle et que je développe ensuite manuellement dans la base de code générée, je ne peux pas générer à nouveau du code en utilisant un modèle car mes modifications seraient effacées.
Sauf que je copie/colle les modifications dans les deux sens. C'est un effort énorme pour trop peu de résultats. C'est pourquoi je n'utilise pas la MDD, mais j'utilise encore beaucoup UML.
La méthode UML peut-elle être utilisée avec succès dans le cadre d'un projet sans génération de code MDD ?
Je pose cette question parce que j'ai un nouveau patron qui veut introduire un processus MDD complet avec IBM RSA et aujourd'hui je préfère avoir une synchronisation ou une fusion en direct du code et du modèle avec Omondo.
- Pourquoi changer un système qui fonctionne et qui a fait ses preuves ?
- Pourquoi générer systématiquement du code à partir d'un modèle alors que je peux le faire directement dans le code et le fusionner plus tard avec le modèle ?
- Pourquoi générer un code de base de données merdique qui ne peut même pas être déployé alors que je peux ajouter un stéréotype afin d'obtenir des annotations Java et les utiliser avec Hibernate pour générer ma base de données ?
L'une des raisons du changement de patron est d'obtenir une meilleure documentation de projet au format HTML. J'en doute fortement et je pense qu'il cherche à mieux contrôler la livraison et qu'il ne sait pas quoi inventer d'autre !
Autres raisons argumentées :
- Utilisez un produit provenant d'une entreprise importante et stable.
- Disposer d'un modèle complet qui pourrait être déployé dans n'importe quelle autre langue.
(C'est pourquoi, pour moi, MDD est stupide car il est impossible de déployer sur n'importe quelle plateforme, n'importe quel serveur, n'importe quelle base de données juste à partir d'un modèle. Alors pourquoi perdre mon temps ?)
Merci de me donner des arguments pour revenir à la prochaine réunion et écraser ce stupide nouveau fan de DDM qui veut réorganiser la façon dont nous travaillons aujourd'hui !