wiki:upgrade/package
close Warning: Can't synchronize with repository "(default)" (/var/svn/mms does not appear to be a Subversion repository.). Look in the Trac log for more information.

Actualización a MMS_0.6

Paquete y nueva nomenclatura

En la versión 0.6 hemos optado por dotar a MMS de una estructura más modular y convertir la herramienta en un paquete TOL que puede utilizarse simplemente solicitándolo mediante una sentencia:

#Require MMS

El paquete MMS consiste en un nameblock que contiene todas las funcionalidades y definiciones del sistema.

Clases

Las clases de MMS se renombran para evitar redundancia. Mientras en MMS_0.5 las clases eran globales y mostraban un prefijo que indicaban su pertenencia a MMS:

@MMS.<Class>

en MMS_0.6 el prefijo se elimina y las clases que ahora son locales al nameblock MMS se acceden mediante:

MMS::@<Class>

Funciones de uso general

Las funciones de uso general creadas junto al desarrollo de MMS, forman parte de un paquete TOL distinto LibraryMMS que puede ser publicado (UsingNameBlock) sin problemas al tratarse únicamente de un conjunto de funciones.

Esta librería de funciones se cargará junto a MMS aunque el objetivo final es que todas o al menos algunas de ellas pasen a formar parte de la StdLib o de otras librerias de índole general de acuerdo a la nueva modularización de TOL.

De este modo, las funciones serán accesibles como funciones globales, sin tener que localizarlas anteponiendo el nombre del nameblock donde se definieron.

El contenedor de MMS

En MMS_0.5 el contenedor principal, encargado de albergar el conjunto de objetos construidos, se llamaba MMS, sin embargo como hemos visto en MMS_0.6 éste es el nombre del paquete, el nombre actual del contenedor es: MMS::Container.

Nótese que durante un tiempo, mientras se desarrollaba la estructura modular de MMS_0.6 el contenedor principal se denominaba MMS.C. Ya no.

Otros cambios generales

A continuación se citan otras diferencias entre las versiones 0.5 y 0.6 de MMS.

Métodos constructores

Las instancias de los nuevos objetos se crean llamando métodos constructores (::Create<Object>) de un objeto superior. Estos métodos en MMS_0.5 devolvían un número indicando si la acción había tenido éxito o no. En MMS_0.6 sin embargo devuelven la instancia creada. Este cambio se introduce para facilitar la obtención de la nueva instancia sobre la que podrían realizarse nuevas acciones.

Código en MMS_0.5

Real parent::Create<Object>([[
  Text _.name = <nombre>;
  ...
]]);
@MMS.<Object> object = parent::Get<Object>(<nombre>);

Código en MMS_0.6

MMS::@<Object> object = parent::Create<Object>([[
  Text _.name = <nombre>;
  ...
]]);

Nombres y versiones

En MMS_0.6 todos los objetos principales (MMS::@DataSet, MMS::@Model, MMS::@Estimation, ...) se identifican por un par nombre-versión. A diferencia de como ocurría en MMS_0.5 este par caracteriza tanto a modelos como a estimaciones, previsiones o datasets.

El atributo versión intenta recuperar su diseño original e itera a partir de un objeto guardado al hacerle cambios. Mientras el nombre puede ser cualquier tipo de nombre TOL mientras se evite el uso del separador "__", las versiones se esperan como un texto acabado en un entero precedido de un ".".

El identificador del objeto será el compuesto "<nombre>__<version>". Aun así los métodos de acceso al objeto desde el contenedor principal: MMS::Container::Get[Object] también admiten recibir sólo el nombre. En el caso de existir diferentes versiones con el mismo nombre se advertirá de este hecho y se devolverá la más avanzada.

Aunque la versión de un objeto puede acoger información complementaria al nombre se recomienda añadir este tipo de información en el nombre del objeto. Así es preferible:

name: "ModeloA_Pruebas", version: "1.0"

que:

name: "ModeloA", version: "Pruebas.1.0"

Para las estimaciones y previsiones que en 0.6 se identificaban por la terna: (1) nombre del modelo, (2) versión del modelo, (3) nombre de la estimación/previsión, se propone usar nombres similares a:

name: "ModeloA_EstimationBSR", version: "1.0"
name: "ModeloA_PointForecast", version: "1.0"

En ocasiones puede desearse localizar el conjunto de estimaciones realizadas a partir de un determinado modelo e incluso las previsiones dada una estimación. Por ello puede ser interesante implementar unos atributos auxiliares capaces de recoger esto.

Last modified 15 years ago Last modified on Jul 7, 2010, 2:15:09 PM