Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modélisation, RAD et génération de code

3 réponses
Avatar
tao
Bonjour

J'aimerais connaitre l'avis de la communaut=E9 sur un sujet dont on
parle de plus en plus : les outils de d=E9veloppement rapide, la
mod=E9lisation et l'avenir de la programmation.

Aujourd'hui, de plus en plus d'entreprises externalisent et
d=E9localisent la production de code. Les m=E9tiers purement techniques
sont de moins en moins recherch=E9s, du moins sous la forme du
d=E9veloppement pur.

Je suis tr=E8s int=E9ress=E9 par cette th=E9matique, c'est pourquoi je me
suis inform=E9 et j'ai d=E9couvert tout type d'outils, allant de la
mod=E9lisation UML simple (diagramme de classe et g=E9n=E9ration de POJOs)
=E0 de la programmation avec l'approche MDA (Model Driven Architecture)
et de la g=E9n=E9ration de code avec JET, en passant par la g=E9n=E9ration
de code =E0 partir d'interfaces graphiques =E0 la VB (Drag & Drop).

Ce topic a plusieurs objectifs. D'une part connaitre la "temp=E9rature"
g=E9n=E9rale du secteur (a la fois les grands comptes et =E9galement les
petits =E9diteurs et SSII), et =E9galement connaitre les trouvailles de
chacun et l'avis de chacun quant =E0 l'avenir de la programmation.

Bien s=FBr, certains pourront dire qu'il est abominable de d=E9localiser
tout le d=E9veloppement d'application, mais je pense qu'au contraire
nous devons nous adapter et =E9voluer dans le sens de la mod=E9lisation.
J'ai notamment pu observer les solutions propos=E9es par plusieurs
=E9diteurs tels que IBM et son IDE RSA. Cela semble se d=E9velopper dans
le bon sens et associ=E9 avec des produits OpenSource tels que JET, il
semble =E0 port=E9e de main, =E0 partir d'une bonne mod=E9lisation, de
g=E9n=E9rer des applications compl=E8tes.

Ce qui manque de fa=E7on =E9vidente, c'est d'une part des distributions
fiables et globales et =E9galement les ponts pour aller de la
mod=E9lisation =E0 l'impl=E9mentation de frameworks aussi divers et
vari=E9s que Struts, JSF, Velocity, Behive, mais =E9galement pouvoir en
changeant de "transformateurs" r=E9aliser une application lourde avec
Swing ou AWT ou encore RCP...

Que se passe-t-il dans les autres mondes (autres que la n=E9buleuse
J2EE) dans ce domaine ?

Enfin, quels outils utilisez vous pour mod=E9liser vos application ?
Utilisez vous du retro engeneering pour que la mod=E9lisation suive
l'=E9volution du d=E9veloppement au cours d'un projet? Utilisez vous la
g=E9n=E9ration de code ?
Quelles r=E9f=E9rence utilisez vous pour vous former =E0 la mod=E9lisation
(UML, MDA...) ?

Tao

3 réponses

Avatar
ishur
Depuis un an ou deux il y plein de projets qui naissent autour de ce
concept, je crois beaucoup a l'approche MDA, mais les produits actuel
ne sont pas assez abouti. Pour citer deux noms:
J'ai déjà utilisé AndroMDA (http://www.arndromda.org) sur un projet,
c'est assez intéressant mais il y a des défauts.
Sinon le projet Acceleo (http://www.acceleo.org) a l'air prometteur.
Avatar
laurent
Bonjour,
l'idée de pouvoir générer du code à partir d'un modèle n'est pas
nouvelle. Beaucoup de projet Open source utilise cette approche.
Ensuite Il ya deux grandes tendances sur ce point.

L'approche utilisé par Ruby on rails qui à partir d'un schéma de
base de donnée génére des controlleur et des vues permettant de
manipuler par une interface web la bdd. Le développement est ici
incrémental et très rapide. on crée le schéma de la base de donnée
en même temps que l'on développe. Cet approche peut être utilisée
pour les petits et myens projets, je ne suis pas convaincut qu'elle
c'est la meilleur approche pour les plus gros projets. Mais je suis
ouvert à cette réflexion.

D'autre part il y a une autre façon de faire qui consiste à partir
dans un système de gestion de projet plus conventionnel.
conception->design->développement->test......
L'idée est de décrire l'application avec un model UML ou un méta
modèle EMF (Eclipse Modeling Framework), et d'utiliser un outils de
génération tel que acceleo, JET, ou un autre langage approprié pour
générer l'application voulu. Ce méta modèle peut être enrichi de
règle OCL permettant de mettre des contraintes et de la vérification.
Cette approche permet d'avoir un lien entre tout les élément du cycle
de développement ( conception->design->développement->test). Quand
c'est bien fait le temps gagné à réaliser une application est assez
grande.

Ce que je connais effectivement ce sont les technos Ruby On Rails et
EMF (avec tout son entourage) et on peut dire que ce sont deux technos
très prometteuses. Actuellement j'ai commencé un développement où
je créé un méta modèle ecore (formant des fichier EMF proche du
MOF) représentant la gestion d'un club de Hand ball et à partir de
celui-ci je génére du ruby avec acceleo permettant d'avoir un site
web....


laurent


On 17 jan, 09:26, "ishur" wrote:
Depuis un an ou deux il y plein de projets qui naissent autour de ce
concept, je crois beaucoup a l'approche MDA, mais les produits actuel
ne sont pas assez abouti. Pour citer deux noms:
J'ai déjà utilisé AndroMDA (http://www.arndromda.org) sur un projet,
c'est assez intéressant mais il y a des défauts.
Sinon le projet Acceleo (http://www.acceleo.org) a l'air prometteur.


Avatar
tao
Bonjour

Merci à Laurent et Ishur pour leurs reponses

J'ai regardé un peu l'approche MDA et j'ai également entendu parler
de JET.

Cependant, tous ces produits semblent dépourvus d'une pierre angulaire
majeure.

D'un coté, on a l'outil de modélisation (au passage, connaissez vous
de bons outils gratuits, notamment sous forme de plugin eclipse ?).
De l'autre, on a un framework. Dans le cas du Java, prenons par exemple
Struts ou JSF.

Les outils tels que JET ne sont pas livrés avec les templates
permettant de générer l'application. Cette tache semble assez
fastidieuse et demande de nombreuses compétences.
Il serait interessant, dans une approche MDA, de fournir de tels outils
avec les templates et outils nécessaires à leur application pour des
framework reconnus. (il est bien sur exclu de le fournir pour tous les
framework).

J'attend vos retours, car je n'ai finalement qu'une approche de surface
sur la problématique et peut être que ces outils existent déja.

Merci
Tao

On 23 jan, 15:03, "laurent" wrote:
Bonjour,
l'idée de pouvoir générer du code à partir d'un modèle n'est pas
nouvelle. Beaucoup de projet Open source utilise cette approche.
Ensuite Il ya deux grandes tendances sur ce point.

L'approche utilisé par Ruby on rails qui à partir d'un schéma de
base de donnée génére des controlleur et des vues permettant de
manipuler par une interface web la bdd. Le développement est ici
incrémental et très rapide. on crée le schéma de la base de donn ée
en même temps que l'on développe. Cet approche peut être utilisée
pour les petits et myens projets, je ne suis pas convaincut qu'elle
c'est la meilleur approche pour les plus gros projets. Mais je suis
ouvert à cette réflexion.

D'autre part il y a une autre façon de faire qui consiste à partir
dans un système de gestion de projet plus conventionnel.
conception->design->développement->test......
L'idée est de décrire l'application avec un model UML ou un méta
modèle EMF (Eclipse Modeling Framework), et d'utiliser un outils de
génération tel que acceleo, JET, ou un autre langage approprié pour
générer l'application voulu. Ce méta modèle peut être enrichi de
règle OCL permettant de mettre des contraintes et de la vérification.
Cette approche permet d'avoir un lien entre tout les élément du cycle
de développement ( conception->design->développement->test). Quand
c'est bien fait le temps gagné à réaliser une application est assez
grande.

Ce que je connais effectivement ce sont les technos Ruby On Rails et
EMF (avec tout son entourage) et on peut dire que ce sont deux technos
très prometteuses. Actuellement j'ai commencé un développement où
je créé un méta modèle ecore (formant des fichier EMF proche du
MOF) représentant la gestion d'un club de Hand ball et à partir de
celui-ci je génére du ruby avec acceleo permettant d'avoir un site
web....

laurent

On 17 jan, 09:26, "ishur" wrote:

Depuis un an ou deux il y plein de projets qui naissent autour de ce
concept, je crois beaucoup a l'approche MDA, mais les produits actuel
ne sont pas assez abouti. Pour citer deux noms:
J'ai déjà utilisé AndroMDA (http://www.arndromda.org) sur un proj et,
c'est assez intéressant mais il y a des défauts.
Sinon le projet Acceleo (http://www.acceleo.org) a l'air prometteur.