Compartir a través de


Generar código

El equipo puede responder de forma muy rápida y confiable a los cambios en los requisitos del usuario si genera el código a partir de los modelos. Si el equipo desarrolla una línea de productos similares o se basa en los modelos de uso frecuente, la generación de código es especialmente eficaz.

El equipo puede generar código de programa, esquemas, documentos, recursos y otros artefactos de cualquier tipo. El equipo puede escribir plantillas de texto que interrogan al modelo mediante la API UML (Lenguaje de modelado unificado). Para obtener más información, vea Cómo: Generar archivos a partir de un modelo UML.

En la mayoría de los casos, el equipo no generará todo el código a partir de los modelos. Mediante técnicas como las clases parciales, el equipo puede mantener el código generado aparte del código escrito a mano. Nunca modifique el código generado. En su lugar, actualice el modelo, que, a su vez, actualizará el código.

La generación de código es útil en las situaciones siguientes:

  • Líneas de producto. Fabrikam, Inc. compila e instala el equipaje que administra los sistemas para aeropuertos. La mayor parte del software es muy similar entre una instalación y la siguiente, pero la configuración del software depende de qué maquinaria de control de equipaje esté instalada y de cómo están interconectadas estas partes mediante cintas transportadoras. Al principio de un contrato, el equipo de Fabrikam discute los requisitos con la administración del aeropuerto y captura el plan de cinta transportadora mediante un diagrama de actividades UML. A partir de este modelo, el equipo genera los archivos de configuración, el código del programa y las guías de usuario. Completan el trabajo con la realización de adiciones y ajustes manuales en el código. Cuando ganan experiencia tras un trabajo, amplían el ámbito del material generado.

  • Modelos. Los desarrolladores de Contoso, Ltd crean a menudo sitios web. Diseñan el esquema de navegación con diagramas de clases UML y usan clases y asociaciones para representar las páginas web y los vínculos de navegación. Gran parte del código del sitio web puede ser generado. Cada página web corresponde a varias clases y entradas del archivo de recursos que se ajustan a un modelo uniforme. El resultado es más confiable y flexible que el código escrito a mano.

  • Esquemas. Humongous Insurance tiene miles de sistemas en todo el mundo. Estos sistemas utilizan diferentes bases de datos, lenguajes e interfaces. El equipo de arquitectura central publica los modelos internos de conceptos y procesos comerciales. Los diagramas facilitan la discusión de los diseños. De estos modelos, los equipos locales pueden generar los elementos de la base de datos y esquemas XML, declaraciones de C# y otros elementos.

Lenguajes de modelado personalizados

En los ejemplos anteriores, cada compañía tiene un uso muy especializado de los modelos. Aunque se puede representar el seguimiento de equipaje mediante un diagrama de actividades, una notación formal de seguimiento de equipaje sería mucho mejor. Visual Studio admite los métodos siguientes:

  • Personalizar un diagrama UML con estereotipos. Los estereotipos permiten distinguir diferentes tipos de elementos (por ejemplo, para distinguir los mostradores de facturación de pasajero de las estaciones de rayos X) y registrar valores de atributo adicionales en cada elemento. Para obtener más información, vea Cómo: Definir un perfil para ampliar UML.

  • Diseñar su propio lenguaje específico de dominio (DSL). Si tiene mucho trabajo en el dominio de destino, el esfuerzo adicional podría merecer una adaptación más específica a sus necesidades. Para obtener más información, vea Modelar el SDK de Visual Studio - Lenguajes específicos de dominio.

El equipo puede crear comandos de menú, pruebas de validación y elementos de cuadro de herramientas para ambos tipos de modelos mediante Visual Studio SDK. También puede compilar las extensiones de Visual Studio que pueden integrar los diagramas y acoplarlos con recursos externos, como bases de datos.