martes, 27 de abril de 2010

Camino a la cuarta generación del desarrollo software: Desarrollo Dirigido por Modelos y su aplicación con la tecnología Domain Specific Language de Microsoft

El desarrollo de software es uno de los procesos que más ha evolucionado en los últimos 30 años. En la década de los 80 se introdujo la orientación a objetos, base de la mayor parte de la tecnología que se posee en la actualidad. En los años 90 las numerosas variantes de notación del análisis y diseño orientado a objetos que comenzaron en la década anterior derivaron hacia la utilización de una notación común, Unified Modeling Language, UML.
En los últimos años, UML ha sido un lenguaje bastante criticado, que ha derivado en dos corrientes, sus seguidores y sus no seguidores. A día de hoy han surgido nuevas alternativas de desarrollo de software como Agile y Extreme Programming, que dan menos importancia al modelo inicial y producen un acercamiento más libre a los métodos de diseño y administración de los proyectos.
Hoy UML ha dado un salto muy importante proponiendo una nueva alternativa en el diseño de software, que consiste en la generación de código de manera automática a través de un modelo. Este sueño idílico de todo desarrollador es conocido en la actualidad como el futuro de los lenguajes de cuarta generación.
Para conseguir esto se deben hacer mejoras en el propio UML, el cual no es capaz de expresar aún toda la lógica de un problema, y por tanto incapaz de representar completamente como debería de ser un software, como por ejemplo en el tema de las interfaces.
Los dos mayores impulsores de esta tecnología son Microsoft y la OMG. Esta última ha sido impulsora de esta tecnología con su popular Model Driven Architecture, MDA. Microsoft por su parte está siendo impulsora de una alternativa a la que ha denominado Software Factory y que está dando teniendo un gran éxito en los últimos años. Además, la creciente aparición de Lenguajes de Dominio, también conocidos como DSL, representan nuevos caminos en la construcción de software. Especialmente en los casos en que la orientación a objetos y el diseño dirigido por modelos estén integrados.
Las herramientas de cuarta generación de las que se hablaba antes no pueden ser consideradas como un lenguaje como tal ya que el desarrollo completo de un proyecto solo puede ser encarado por una arquitectura de trabajo que debe abarcar el ciclo de desarrollo del software casi en su totalidad.
Finalmente, se pueden destacan en esta nueva alternativa de desarrollo la siguientes tendencias:
  • MDA, Model Driven Architecture de la OMG.
  • SF, Software Factories de Microsoft.
  • Oslo
  • SPL, Software Product Lines, SPL

Dsl Tools

2229205080426[1] En la cadena de posts que hoy doy comienzo veremos una implementación de la tendencia Domain Specific Languages que está imponiendo Microsoft con su proyecto OSLO.
Según la definición propia de Microsoft, DSL (Domain Specific Language), está diseñado para ser útil para una tarea específica en un dominio de problema fijo. Con un lenguaje grafico o textual, puede definir un nuevo lenguaje de modelado y ponerlo en marcha de manera muy sencilla. Al crear un lenguaje específico del dominio propio y el diseño del modelo personalizado, se puede especificar exactamente qué conceptos se necesitan en la herramienta a desarrollar.
Cuando en el desarrollo se utiliza un DSL, se comienza identificando las partes de las aplicaciones que son susceptibles de ser modeladas usando un DSL. Después, se define y se implementa este lenguaje. Los usuarios del lenguaje crean modelos que usan para generar el código y adaptan el código generado en sus aplicaciones finales.
El Domain-Specific Language Tools permite crear un lenguaje específico del dominio que tiene su propio diseño gráfico y su notación de diagrama propio, para a continuación, utilizar el lenguaje para generar el código fuente adecuadamente para cada proyecto.
El Domain-Specific Development es el proceso de identificar las partes de las aplicaciones que se pueden modelar mediante el uso de un lenguaje específico del dominio y, a continuación la construcción del lenguaje y su despliegue a los desarrolladores de aplicaciones. Los desarrolladores utilizan el lenguaje específico del dominio para construir modelos que son específicos para sus aplicaciones, utilizar los modelos para generar el código fuente, y luego usar el código fuente para desarrollar las aplicaciones.
A continuación os dejo un link muy importante en el que Microsoft resume en que consiste su proyecto faraónico OSLO, en el veréis que habla de numerosas tecnologías de las que ya os he ido hablando últimamente como Azure:
En el próximo post continuaremos hablando sobre Domain-Specific Language Tools de Microsoft y comenzaremos la implementación de un proyecto software con Visual Studio donde espero poder aclararos un poco las profundas dudas que hay en este tema tan novedoso que es el desarrollo dirigido por modelos.
saludos!

1 comentario:

SoftAuction dijo...

Interesante articulo. Me encanta ver que UML se utiliza (y más) de lo que mucha gente dice. Animo con esta tarea de diseminación.

Con mucha humildad, comentar que existe un nuevo sitio web para relacionar profesionales del sector de las tecnologias que hemos denominado SoftAuction. (www.softauction.es)
Si os hemos hecho perder el tiempo, nuestras disculpas.