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.

Version 5 (modified by Pedro Gea, 15 years ago) (diff)

--

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 los objetos principales (MMS::@DataSet, MMS::@Model, MMS::@Estimation, ...) se identifican según un nombre y una versión.

El atributo versión intenta recuperar su diseño original e itera a partir de un objeto guardado al hacerle cambios. El texto que representa a la versión del modelo ha de acabar en un número entero (que es el que se iterará) precedido por un '.'.