Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

El nuevo mundo de la generación de código



Partes: 1, 2

    1. Resumen
    2. El primer paso es encontrar
      cuál es el problema
    3. Profundizando en los problemas
      de los generadores
    4. Lo que más se utiliza en la
      esfera
    5. El
      Sistema Experto más adecuado para la Generación
      inteligente
    6. ¿Qué
      es lo que más nos interesa en la entrada del
      generador?
    7. Veamos entonces
      el funcionamiento de este poderoso Sistema
      Experto
    8. Una
      manera de hacer bien las cosas
    9. Usando
      plantillas
    10. Buscando una
      arquitectura que soporte los
      propósitos
    11. No es
      el fin del pensamiento informático
    12. Conclusiones
    13. Bibliografía

    Resumen

    La generación de código
    ha devenido en una necesidad casi obligatoria para la
    mayoría de los programadores durante el desarrollo de
    software.
    Numerosas herramientas
    conocidas como CASE permiten la generación
    automática de código a partir de diagramas o
    modelos.
    Ninguna de las herramientas existentes hasta ahora permiten
    generar código mediante sistemas
    expertos, la plataforma de programación Visual estudio .NET provee un
    conjunto de librerías que permiten la generación de
    código mediante la conformación de un sistema experto
    capaz de hacer más inteligente el problema de la
    generación automática de código
    fuente
    .

    Un programador es considerado un experto en el domino de
    la escritura de
    programas, un
    sistema que proporcione un resultado igual al del programador en
    una parte de la programación del proyecto, debe
    ser llamado entonces Sistema Experto.

    Este artículo muestra una vista
    al panorama actual de la generación de código y
    propone la vía eficaz de lograr el propósito de los
    programadores: la búsqueda de un nuevo paradigma
    universal e inteligente para construir códigos de manera
    automática.

    La capacidad de abstracción nos permite trabajar
    en el mundo de las ideas y conocer en terminos de clases y
    relaciones lo que en el mundo real consideramos y aceeptamos ocmo
    objetos y las relacione s entre ellos . Los programadores han
    logrado interpertar los modelos para construir herramientas
    adecuadas, automatizar este trabajo
    aumenta de modo apreciable la productividad

    El
    primer paso es encontrar cuál es el
    problema

    En la actualidad existen numerosas alternativas para
    disminuir la carga laboral de los
    programadores, sobre todo la generación automática
    de código permite este propósito. Sin embargo, la
    dificultad de aprendizaje
    inmediato de las herramientas de generación de
    código, la sobrecarga de funcionalidades y la diversidad
    de plataformas de desarrollo; impiden que el nivel de
    abstracción del programador sea una técnica
    universal.

    Una gran cantidad de herramientas soportan UML, muchas de
    ellas tienen las características que reducen
    significativamente el trabajo de
    los programadores, lo que las hace ser consideradas Herramientas
    CASE. Ninguna de estas herramientas trata la
    generación de código desde la esfera de la inteligencia
    artificial, por lo que las decisiones y cambios
    específicos entre un componente u otro muchas veces tienen
    que rectificarse por el desarrollador luego de ser generado por
    alguna herramienta.

    Profundizando en los problemas de
    los generadores

    El generador sólo genera lo que él quiere.
    Típico de generadores "profesionales", que sólo
    producen lo que los creadores del generador imaginaron. Es
    difícil, y en algunos casos, imposible, extenderlo
    más allá de lo que hacen actualmente. Variante de
    esto: sólo genera código para entidades.

    Hay colecciones inmensas de artefactos que tenemos que
    generar en cualquier sistema no trivial. Y seguirán
    apareciendo, por lo menos, en el futuro cercano. Si el generador
    sólo está pensado para partir de un modelo
    determinado, nos limita en lo que podemos pedirle. La historia nos ha mostrado,
    que siempre necesitamos algo más.

    Lo que
    más se utiliza en la esfera

    CodeDOM (Code Document Object Model) permite
    generar código a través de una abstracción
    completa de los lenguajes de programación. Cuando se
    escribe código a través de estas abstracciones, un
    provider de .Net para un lenguaje como
    VB .Net ó C#, ó cualquier otro provider de terceros
    permite generar código para cualquiera de los lenguajes
    soportados por el provider.

    En la raíz del modelo de objetos se encuentra el
    graph CodeDOM. Esto es un árbol de objetos que describe
    los elementos del código en términos abstractos. El
    árbol es llamado también CodeCompileUnit, el cual
    describe el código en partes elementales. Cada
    árbol o grafo CodeDOM da como resultado un archivo, pero
    podría contener múltiples clases. Como se
    mencionaba, usando diferentes providers se podría generar
    código para múltiples lenguajes.

    En fin ,con CodeDOM podemos crear generadores de
    clase en base
    a una Arquitectura. Una
    ventaja de CodeDOM es su capacidad de generar código para
    múltiples lenguajes como ya comentaba . El uso de los
    generadores de código debe ser parte importante en el
    desarrollo y diseño
    de una Arquitectura de Aplicaciones y que tiende a acelerar el
    desarrollo de aplicaciones.

    ¿Qué es lo que más
    deseamos?

    El generador de código que adoptemos, debe
    poder
    adaptarse a lo que queramos hoy y mañana y pasado
    mañana. La estrategia es: no
    importa la tecnología, el
    patrón o el framework que aparezca, nuestro generador
    deberá aprovecharse de lo que surja.

    ¿Existe solución a esto?

    Podemos considerar a un programador, desde un punto de
    vista teórico, como un experto en el dominio de la
    escritura de programas. Un programador sabe como implementar un
    modelo, porque cuenta con convenciones para representar en
    código fuente elementos de un modelo. Por ejemplo, podemos
    darle a un programador un modelo de clases, y pedirle que escriba
    un formulario para alguna de las clases. El programador
    seguramente programará, para cada atributo de la clase,
    una etiqueta con su nombre, un control
    gráfico apropiado para el ingreso de datos, cuadro de
    texto si el
    tipo de dato es cadena de caracteres, selector de fecha si es una
    fecha, un checkbox si el tipo de dato es booleano,
    etc.

    El objetivo
    entonces, es intentar volcar el
    conocimiento del experto en el dominio de la
    programación en un sistema experto, de tal forma que el
    ordenador sea capaz de producir, a partir de un modelo dado, un
    programa lo
    más parecido posible a lo que hubiera hecho un humano en
    su lugar.

    Pero las novedosas técnicas
    para generar código están a la vuelta de la esquina
    como quien dice, solo que muchos programadores prefieren teclear
    antes de decidirse a crear pequeñas aplicaciones que hagan
    eficiente su trabajo.

    Partes: 1, 2

    Página siguiente 

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter