Jun 19, 2005

Documentando

No hay nada más agradable que utilizar tu aplicación para realizar tus tareas, y ahora que es momento de documentar MonoUML que mejor oportunidad que documentar tu aplicación con tu misma aplicación X-).

Entre Miguel Huerta y yo hemos terminado un demo que estará contenido en la documentación oficial de MonoUML (y que ahora sólo esta para un documento del Concurso de Creatividad de mi U) que busca como objetivo mostrar las maravillas de Mono y MonoUML, para esto hicimos 4 clases en 4 diferentes lenguajes, una clase por lenguaje, así de esta forma tenemos una clase escrita en Boo, una en Java, una en VB.NET y otra en C#.

La idea de esto crear una aplicación (muy breve en verdad) que esta realmente Orientada a Objetos y sirva como ejemplo para ser utilizada por MonoUML, en pocas palabras, un ejemplo más real. ¿Qué hace la aplicación? Pues calcula el valor máximo, mínimo y medio de una matriz de número fraccionarios.

Es decir, algo como esto:

Claro que no podía faltar un ejemplo de diagramas de caso de uso, este es de un método de la clase escrita en VB.NET, este diagrama será base para cuando implementemos los Diagramas de Secuencia y Diagramas de Colaboración, para hacer sus correspondientes ejemplos.

El código no es tan complejo en realidad:


Public Sub Calculate ()
  Dim sum As FractionalNumber
  sum = new FractionalNumber (0, 0)
  _maximum = _matrix (0, 0)
  _minimum = _matrix (0, 0)
  Dim i As Integer
  For i = 0 To _rows - 1
    Dim j As Integer
    For j = 0 To _columns - 1
      sum = sum.Addition (_matrix (i, j))
      If _matrix (i, j).GreaterThan (_maximum) Then
        _maximum = _matrix (i, j)
        End If
        If _matrix (i, j).LessThan (_minimum) Then
          _minimum = _matrix (i, j)
        End If
    Next
  Next
  _medium = sum.Division (new FractionalNumber (_rows * _columns, 1))
End Sub

Ahora con este documento que se escribio, me he dado cuenta de varias cosas:

  • No se porque la gente programa en Visual Basic .NET, entiendo a aquellos que vienen de MS Windows con el viejo Visual Basic, pues ahí en realidad ni programabas sólo arrastrabas "componentes", ¡pero vamos! muchos de los que comienzan en .NET prefieren VB.NET, lo bueno es que los que comienzan con mono se crean más carácter con C# (y si fuiste desarrollador Java ¡que mejor!). Di no a VB.NET
  • Boo es muy parecido a Python y es sencillo de aprender, pero no me gusta, no me agrada la idea de que los bloques se indiquen por indentación, pero bueno, cada quien tiene sus gustos.
  • La suma de Java + IKVM + mono posiblemente pronto sea algo que los programadores Java tomen en cuenta.
  • MonoUML necesita mejoras de usabilidad, hay que trabajar duro.
  • Si que hace falta un generador de documentación para MonoUML, unos tres clicks y tener toda tu documentación lista.
  • Creo que la solución al FN+Pet Sis (en portátiles Dell) = Congelamiento esta en un post viejo de BarraPunto.

Me emociona ver que ahora se pueden hacer cosas realmente útiles, claro, con un poco de hacking ;) pero se pueden. Ya estamos cumpliendo uno de los viejos objetivos que algún día Rodolfo y yo nos plantemos: Diagramas de Casos de Uso y Diagramas de Clases.

Debido a que el logo del Mono de MonoUML sale caro para hacer una serigrafía, decidí hacer un logo más sencillo, el resultado me gusto pero aun así necesita un poco más de pincelado para mejorarlo y que no se vea tan cuadrado en algunos aspecto, lo haré con más calma pronto.