jueves, mayo 03, 2007

MDA y Open Source

FTP On Line publica una nota introductoria sobre MDA (Model Driven Development para quienes lean aquí por primera vez) con la particularidad de que discute la idea de aplicar MDA a las arquitecturas orientadas a servicio (SOA). Dado la arquitectura de cualquier generador basado en MDA, no cabe duda de que esto es posible. Así presenta el tema Steve Andrews, autor de la nota:
Despite the advances in SOA technologies and techniques, a composite application is only as good as its underlying individual application services. In this article you'll explore how raising the level of abstraction and using model-driven techniques can address the most common issues associated with building applications.
Luego de destacar los principales elementos de un modelo desarrollado bajo MDA (un modelo conceptual (CIM), un modelo independiente de la plataforma (PIM), un modelo asociado a cada plataforma de implementación (PSM), un modelo de transformación (TM), Andrews apunta a SOA:
Model-driven development (MDD) enables a more rapid, complete and direct path from a business problem to an executable business solution. MDD transforms the business knowledge in a PIM into a PSM based on knowledge about a technical platform, and then transforms the PSM into a PSI that can be deployed to a run-time environment. The fidelity of the transformation model determines how rapidly and completely this process can be completed. A PSI can be developed manually based on a PIM and PSM, but it will take longer and may introduce human error (see Figure 1).
You can employ several MDD strategies. For example, architected model-driven development (AMDD) combines application frameworks (which handle common application infrastructure concerns) with MDD generative techniques. AMDD further decreases the amount of manual development that must be done by raising the level of technical abstraction. Ultimately, all MDD variants are focused on delivering business results without letting the technology get in the way.
MDD is not a silver bullet that obviates the need for solid software engineering fundamentals. Good requirements that unambiguously define the problem are still important, as their fidelity in the CIM determines the potential fidelity of the PIM. Luckily, since MDD compresses the actual coding time, it frees up more time to devote to understanding user needs.
Over time, as transformation- and platform-specific models evolve, the need for higher-priced development resources will decline. Since the application architecture is "baked into" the generated PSM, you can focus on writing business logic almost exclusively. For example, if part of the application architecture exposes behavior using Web services, you can encapsulate the rules for generating Web service interfaces in the transformation model one time and apply it many times. Your alternative is manually re-implementing the Web service technical details for each service, which takes away from time spent focusing on the services' business logic.
Pero lo más interesante del caso, es que Andrews es autor de un proyecto MDA de código abierto: Atlas. Existen actualmente muchos desarrollos de código abierto que representan una oportunidad única para elevar el nivel de productividad de un equipo, y aprender un enfoque superior de desarrollo de software. Muchos pueden encontrarse en Code Generation.

2 comentarios:

chacall dijo...

Jorge, la verdad mas allá del plano teórico no he tenido la suerte de ver implementaciones reales MDA .

Tampoco tengo muy claro el concepto, aunque lo que entiendo basicamente es separar arquitectura de diseño y requerimientos, y modelar .

Y por esto creo que los servicios web calzan a la perfección con lo que se busca desde MDA, diseñar independientemente de la arquitectura el PIM para luego si traducirlo a la arquitectura deseada.

de todos modos que buen dato para investigar un poco mas acerca del tema.

muy bueno el blog.

saludos.

Jorge Ubeda dijo...

Hola chacall
No voy a contestar aquí sobre qué es MDA, pero seguramente encontrarás orientación en el material reunido. No estrictamente MDA, aunque dentro del mismo concepto, existen seguramente varias implementaciones en Argentina (supongo que estás allí). Puedo ponerte en contacto con alguna en España, al menos. Pensandolo bien, voy a tomar en cuenta tu idea, y trataré de agregar casos concretos en empresas o instituciones con diseños no experimentales.
Gracias por tu comentario también.