wiki:Dif0.6
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 2 (modified by Pedro Gea, 15 years ago) (diff)

--

Diferencias entre las versiones MMS 0.5 y MMS 0.6

Diferencias generales

Jerarquía entre objetos

Las clases en la 0.6 siguen una jerarquía, de modo que naturalmente un objeto necesita de otro superior para existir y poder definirse. Esto da naturalidad a las relaciones padre-hijo implementadas en el módulo de modelos en 0.5 con las clases @MMS.Parent y @MMS.Child. Asimismo impide la creación aislada de objetos no principales (los primeros en la jerarquía) y hace más comprensible la comunicación entre los objetos dentro de la jerarquía.

Desde el punto de vista de la implementación esto puede apreciarse en el atributo _parent_ de las clases o en el argumento parent de sus constructores.

Referencias y Objetos dentro de objetos

Se detectó un problema de eficiencia grave en TOL al introducir NameBlocks dentro de NameBlocks, de modo que toda estas relaciones se implementan interponiendo un Set entre ellos. Esto facilita además la redefinición de estos atributos y su tratamiento como referencias.

La existencia de referencias de la clase principal entre las clases hijas los objetos creados así son idecompilables, para evitar esto se crea un par @MMS.Object - @MMS.ObjectKernel para cada clase principal de acuerdo al tique #863 de TOLProject.

Diferencias en el Módulo de Variables

La estructura de clases del módulo de variables en 0.5 está formada por un único tipo de clase (@MMS.Variable) que representa a una variable con dos clases derivadas según la gramática de la variable.

  • @MMS.Variable (abstracta)
    • @MMS.VariableSerie
    • @MMS.VariableMatrix

En la versión 0.6, el módulo se amplía con un objeto contenedor de variables denominado "conjunto de datos" (@MMS.DataSet) que agrupa en torno a sí un conjunto de variables entre las que pueden existir dependencias. Desaparecen las clases derivadas de @MMS.Variable según la gramática y aparece una clase derivada para las variables calculadas a partir de otras variables. También aparece una nueva clase para la definición de variables virtuales según el escenario: @MMS.BaseVariable.

  • @MMS.DataSet
  • @MMS.Variable
    • @MMS.VariableCalculated
  • @MMS.BaseVariable

La jerarquía de objetos queda como sigue:

+ @MMS.DataSet

+ @MMS.Variable + @MMS.BaseVariable

Diferencias en @MMS.Variable

Atributo Source

Desaparece el atributo "_.source" al no tener clara su utilidad. Según el ejemplo de "Matriculación de Vehículos" ésta se utiliza para indicar de dónde se obtuvieron los datos. Este tipo de información debería indicarse en el campo descripción que es lo bastante general para indicar todo lo que se necesite.

Otro tipo de atributo "source" podría definirse en el momento en el que MMS tuviera un cierto control sobre la procedencia de los datos y ésta pudiera ser una base de datos, por ejemplo.