UML Domine el lenguaje de modelado más utilizado en la actualidad

G eneración a u tom á tic a de có d ig o En este caso, los atributos generados ya especifican sus tipos correctamente, según lo expresado en el diagrama de clases. La relación entre un libro y sus autores tam­ bién se codificó a través de un vector. Asimismo, se encuentra especificada la ope­ ración DevolverAutor, que devuelve una instancia de tipo Autor. Con respecto al cuerpo del método, el generador de código no puede hacer demasiado, salvo lan­ zar una excepción predefinida del lenguaje hasta que ésta se implemente. A través de este ejemplo, podemos observar lo que el generador automático es capaz de hacer y aquello que no. Toda la información volcada en los modelos es fielmente traducida a un lenguaje de programación: nombres y tipos de atributos, métodos, parámetros y su visibilidad. También es similar para las relaciones, incluso refle­ jando la multiplicidad en el código. Una relación Muchos a Muchos se modeló con dos vectores en las clases correspondientes. Si la relación hubiera indicado que un libro podría tener un único autor, la declaración de la relación escribe en la clase Libro hubiera sido diferente: Autor escribe; Es decir, se reemplaza un vector que indica muchos autores por una única instan­ cia de tipo Autor y, así, se refleja correctamente el cambio en la multiplicidad de la relación. Además observamos lo que no es capaz de llevar a cabo el generador. El cuerpo del método devolverAutor está vacío porque nada puede inferir el generador automático respecto de su fiincionamiento. Lo máximo que puede hacer es especi­ ficar el tipo de retorno y lanzar una excepción que indique que la operación todavía no está completamente codificada. Detalles de configuración Al momento de generar código automático, podemos configurar varios detalles en la herramienta. Hay dos opciones que son las más importantes: qué modelos queremos traducir a código y qué lenguaje de salida se utilizará. Luego, según cada lenguaje, podemos especificar distintas opciones relativas a éste. Por ejemplo, para C++ o C# se pueden especificar namespaces, para el lenguaje Java podemos cambiar el prefíjo para [ Q ] OTRAS FUNCIONES Y SERVICIOS Las iierramientas avanzadas incluyen funciones y servicios especiales que van desde la generación automática de código, documentación y modelos a partir de código, hasta la simulación del siste­ ma basándose en los modelos especificados. No todas estas funcionalidades están disponibles en todas las herramiéntas, ya que implican un salto importante de expresividad y funcionalidad. ÍS j£ ÍE ¿ m 235

RkJQdWJsaXNoZXIy MjI4NDcx