Saturday, February 26, 2005

MonoUML - importando modelos

Estos últimos días dediqué mi tiempo libre a incorporar el código de importación de modelos (que antes existía como un ejecutable aparte) a la IDE de MonoUML. Durante este proceso he corregido algunas cosas, como ajustar a la especificación de Diagram Interchange el tratamiento del zoom y la posición de elementos anidados.

Estoy bastante conforme con el avance hasta el momento, ya se pueden incorporar varios de los elementos. Les comparto unas capturas de pantalla:

Diagrama original hecho con Poseidon
Menú en MonoUML
Selector de ficheros
Resultado

Todavía falta el manejo de asociaciones; voy a revisar este tema cuando tenga tiempo.

Tuesday, February 22, 2005

¡MonoUML en las noticias!

Acabo de encontrar la primera mención a MonoUML en las noticias: un artículo publicado en OSNews.com.

¡Felicitaciones a todo el equipo de MonoUML!

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!

Saturday, February 19, 2005

Nuevo empleo

Estuve ausente durante muchos días debido a grandes cambios que se están produciendo en mi vida, principalmente el cambio de empleo.

Resulta que desde el año pasado estoy bastante disconforme con mi actual empleador (me refiero al que me paga el sueldo, no a donde trabajo), básicamente por lo bajo del salario y por la falta de reconocimiento, ya que el año pasado avancé profesionalmente en varios ámbitos: obtuve la certificación en UML de la OMG (nivel fundamental), aprendí mucho acerca de GNU/Linux, gané conocimientos y experiencia con .NET y mono, hice algunos desarrollos para dispositivos móviles (puntualmente Pocket PC), comencé un proyecto de software libre, etc. y nada de esto parece ser importante para esta compañía. Supongo que es un problema generalizado de aquellos que trabajamos para consultoras.

A partir de que tomé la decisión, comenzó una época de mucho estrés que duró un par de semanas; pasé por varias entrevistas y exámenes, hasta que finalmente me decidí por la empresa donde voy a trabajar. Parece ser muy interesante, el software que producen es altamente especializado y el entorno de trabajo es agradable. Además, puedo decir que hay gente que sabe mucho en esta empresa, así que voy a seguir aprendiendo.

Me duele dejar mi trabajo actual, porque la gente es excelente tanto en lo técnico como en lo humano, y esto último es lo más importante, ya que uno pasa más de nueve horas por día con sus compañeros de trabajo. De todas formas vamos a seguir viéndonos, seguramente compartiremos un almuerzo cada tanto y podremos juntarnos a la salida a beber unas copas.

Algunas frases que vale la pena registrar para no olvidarlas, que he escuchado durante la charla que tuve para anunciar que dejaba la consultora:

  • "no sabía que tu problema era el dinero, ¡me hubieras presionado más!" - referido a las últimas veces que había pedido un aumento.
  • "yo cumplí mi parte" - referido a que me dieron un aumento que llevaba mi sueldo a 2/3 del promedio del mercado para mi puesto.

Todavía estoy en el limbo, ya que aún no he firmado con la nueva empresa, y todavía me queda una semana en mi puesto actual. Solo espero que el acuerdo de confidencialidad que debo firmar me permita continuar con mis proyectos de software libre, que no tienen nada que ver con los productos que ellos hacen.