Monday, February 21, 2005

Avances en ExpertCoder

Este fin de semana pude avanzar con el generador de C# de MonoUML, que está provisto por ExpertCoder. Agregué soporte para enumeraciones y un puntapié inicial para el soporte de interfaces - por ahora crea un fichero con la declaración de interfaz, pero no agrega las declaraciones de propiedades y métodos.

Un problema que he detectado es que UML permite que una interfaz defina attributes, que serían fields en C#, pero esto no es válido en .Net. Una alternativa que estoy evaluando es generar propiedades get y set según corresponda, pero de ser así, este criterio debería aplicarse también a las clases... ¿o no? Es un problema.

También hubo avances en las librerías ExpertCoder.Packaging (Project ahora deriva de Template) y ExpertCoder.Templates (bug fixes y funcionalidad implementada en ObjectCollection.)

Además estuve hablando con Mario acerca del futuro de MonoUML, y le mencioné una idea que me está rondando la cabeza desde hace un tiempo: permitir que la librería de ExpertCoder para serialización a XMI maneje más de un fichero xmi a la vez. Esto tendría mucha utilidad, por ejemplo para contar con paquetes predefinidos de tipos de datos útiles, por ejemplo las librerías de .Net, Java y otros lenguajes, y también para definir perfiles UML. Esto, aunque parece simple, tiene bastantes complicaciones, por ejemplo, habría que indicar al serializador en cual fichero debe almacenar los objetos nuevos (objetos que están en el modelo pero que no surgieron de una representación serializada); los elementos que tienen dueño se serializarían en el mismo fichero que su dueño, de acuerdo a las reglas de la serialización XMI, pero hay que definir que hacer con los elementos de nivel raíz.

Otros temas pendientes son el soporte de las operaciones deshacer y rehacer en MonoUML, el control de restricciones en la librería de UML, la integración del importador de XMI 1.0 y 1.2 a la IDE (actualmente existe como un .exe aparte), y la herramienta para ingeniería inversa sobre ensamblados. ¡Hay tanto por hacer!

0 Comments:

<< Home