viernes, abril 25, 2003

Rational Rose y su generacion ANSI -C++


Cuando he usado anteriormente Rational Rose use la generacion C++. Mi opinion sobre la herramienta no era muy buena ya que la curva de aprendizaje me parecia muy alta. Ademas de eso, para mi tenia las siguientes desventajas:

  • Como la generacion es muy parametrizable para generar codigo a tu gusto, previamente debes configurar bastantes cosas.
  • La ingenieria inversa aparte de hacerse con una herramienta aparte, era realmente complicada. O por lo menos para mi, que no la hice funcionar.
  • Metia demasiados comentarios en los ficheros. Comentarios que por otro lado no debias tocar.

    Por todo ello, nunca me gusto y preferia la forma de funcionar de Together. Together no mete comentarios en los ficheros, los parsea y sincroniza los modelos con el codigo. Si haces cambios en el codigo, el modelo se refresca automaticamente.
    El problema de Together es que es muy cara, y por ello no he tenido la oportunidad de usarla profesionalmente.
    Por otro lado esta hecha en Java, por lo que es portable, pero a cambio consume muchos recursos.

    Sin embargo ahora algo ha cambiado. En Rational parece que por fin se han dado cuenta de que su forma de trabajar no era muy buena y han incorporado el mapping a ANSI-C++. Las primeras pruebas realizadas han sido positivas, por lo siguiente:

  • Mete menos comentarios. 1 comentario por entidad: clase, atributo, operador, ...
  • No es tan parametrizable como el mapping C++ por lo que no genera cosas automaticamente. O lo que es lo mismo, todo te lo picas tu. Yo personalmente prefiero esto, a que me genere automaticamente cosas del tipo: constructor por defecto, operadores por defecto, metodos set/get para los atributos, ...
  • La ingenieria inversa esta integrada, no siendo una herramienta aparte. En las pruebas realizadas ha funcionado correctamente. Si modificabas algo en el codigo, te lo recogia en el modelo. Lo mas rebuscado que hicimos fue el añadir una clase que no estaba; la detecto metiendola en un paquete que esta dedicado precisamente a eso, a las cosas nuevas que ha obtenido por ingenieria inversa y no estaban en el modelo. Luego simplemente te toca llevar la nueva clase al sitio que desees.

    Por todo ello, espero que usemos este nuevo mapping de RR 2000 en el proyecto.
  • No hay comentarios: