Asistente para la Reutilización de Modelos - 1
Asistente para la Reutilización de Modelos de objeto
An. Renato M. ROSSELLO An. Rosana E. FLOREZ
Ing. Esteban PASTOR
Asistente para la Reutilización de Modelos - 2
Reusabilidad
Reducción de costos de desarrollo y mantenimiento
Aplicable al código y al diseño Gran difusión en OO Especificaciones de como deben ser los diseños
para ser reusables (Patterns)
Asistente para la Reutilización de Modelos - 3
Reusabilidad
Para reusar una solución,
antes hay que encontrarla
Si el tiempo para encontrar una clase reusable es mayor que el tiempo necesario para implementarla desde cero, la reusabilidad
deja de ser una ventaja. - B.Meyer (1988)
Asistente para la Reutilización de Modelos - 4
¿ Qué es ARM ?
Una Estrategia de Reusabilidad tendiente a la recuperación de modelos de objeto previamente utilizados
Una aplicación basada en esta Estrategia de Reusabilidad
Asistente para la Reutilización de Modelos - 5
Estrategia de Reusabilidad
ApareoApareo
Modelo Global
Modelo Recuperado
Modelo a Buscar
Reglas de TransformacióncuperadoModeloGlobalModeloBuscaraModelof Re_)_,__(
Reglas de Recuperación
• Apareo por Atributos
• Apareo por Métodos
Reglas de Ajuste
• Apareo por Herencia
• Apareo por Mensajes
Asistente para la Reutilización de Modelos - 6
Intersec/uniónIntersec/unión
Apareo Herencia
Apareo Herencia
Apareo Mensajes
Apareo Mensajes
Apareo Atributos
Apareo Atributos
Apareo Métodos
Apareo Métodos
M. a Buscar
M. a Buscar
M. a Buscar
M. a Buscar
M. Global
M. GlobalM. Global
M. Recuperado2
M. Recuperado1
Modelo Recuperado12
Modelo Recuperado3
M. Recuperado4
M. Global
4
3
21
Reglas de Transformación: Aplicación
Asistente para la Reutilización de Modelos - 7
1 2
1º
2 3
1 2 4
1 2 3 4
2
2 3
2 4
2 3 4
1
1 3
1 4
1 3 4
Reglas de TransformaciónSecuencia
Recuperación por Atributos y/o
Métodos
Recuperación por Atributos
Recuperación por Métodos
Asistente para la Reutilización de Modelos - 8
Estrategia de ReusabilidadCalidad de la Transformación
0
0,2
0,4
0,6
0,8
1
A,a A,b B,a D,e
Calidad de Métodos
Calidad de Atributos
Calidad de aceptación de
Atributos y Métodos
Clase de Smalltalk
Clase a Buscar
Modelo Global
Modelo a Buscar
Calidad de Apareo [0,1]
Grado de semejanza entre el Modelo a Buscar y el Modelo Recuperado
Asistente para la Reutilización de Modelos - 9
Estructura del ARM
Modelo Recuperado
Modelo a Buscar
Modelo Global
1 2 3 4
Editor de Modelos
Editor de Modelos
Parámetros de Calidad de la
Transformación
Smalltalk Express
Diccionario de Sinónimos
Asistente para la Reutilización de Modelos - 10
Modelo a Buscar
Nombre ClaseAtributo
Atributo: tipoMétodo
Método(args):TipoRet
Superclase1
Subclase1 Subclase2
ClaseOrigen
ClaseDestino
método (arg)
Clase
Herencia
Mensaje
Editor de Modelos
Asistente para la Reutilización de Modelos - 11
Modelo Global
Variables deI
Seleccionada
Clase Seleccionada
Definición de la Clase Seleccionada
Variables deinstancia o Clase
Métodos de laClase Seleccionada
Jerarquía de Clases del
Modelo Global
Image de Smalltalk Express y Class Hierarchy Browser
Especificación de Clases
Asistente para la Reutilización de Modelos - 12
Modelo GlobalImage de Smalltalk Express y Class Hierarchy Browser
Definición de Métodos
Declaracióndel Método
Comentario
Sentencias
Selector del Método
Asistente para la Reutilización de Modelos - 13
Modelo Recuperado
AtributosApareados
MétodosApareados
Asistente para la Reutilización de Modelos - 14
Calidad del Modelo Recuperado
Calidad Estructural del Apareo de pares de Clases Calidad de Apareo por Atributos Calidad de Apareo por Métodos
Calidad de Apareo por Herencia Calidad de Apareo por Mensajes Calidad del Apareo del Modelo a Buscar con el
Modelo Recuperado
Asistente para la Reutilización de Modelos - 15
Calidad Estructural
Asistente para la Reutilización de Modelos - 16
Calidad de Herencia
Asistente para la Reutilización de Modelos - 17
Calidad de Mensajes
Asistente para la Reutilización de Modelos - 18
Diccionario de Sinónimos
Sinónimos de:•Nombres de Clase•Atributos•Selectores de Métodos
Asistente para la Reutilización de Modelos - 19
Parámetros de calidad de la transformación
Se clasifican en parámetros:•de Apareo por Atributos•de Apareo por Métodos•de Apareo por Atributos y Métodos•de Apareo por Herencia•de Apareo por Mensajes•generales del ARM•de ubicación de archivos
Asistente para la Reutilización de Modelos - 20
Parámetros Generales del ARM
Clases de Inicio - (ClaseInicio)Clases de Smalltalk tomadas como raíces del Modelo Global
Tipo de Recuperación - (TipoRecuperación) (1,2,3)Criterio utilizado para la recuperación de clases:
1: recuperación por Atributos.2: recuperación por Métodos.3: recuperación por Atributos y/o Métodos.
Intersección (0,1)0: unión de clases recuperadas por Atributos y Métodos.1: intersección de clases recuperadas por Atributos y Métodos.
Asistente para la Reutilización de Modelos - 21
Reglas de Transformación
Modelo Global
project
Apareo por Atributos
Apareo por Atributos
Modelo a Buscar
Modelo Recuperado1
sistema
cmab csmall
Nom(cmab)
Atribs (cmab)
Atribs (csmall)
EsVarDe(Atribs(cmab) i , csmall )
Atribs(cmab) i
sinónimos
project
PnsmallcmabcNomEsNomDePa
mabcAtribs
mabcAtribs
i smallcimabcAtribsEsVarDe
smallcmabcaf
*)),((*
*)smallAtribs(c#)(#
)(#
1)),)(((*2
),(
proyecto
Asistente para la Reutilización de Modelos - 22
Parámetros de Apareo por Atributos
Peso Nombre Clase (PesoNomClase) [0..1]importancia de coincidencia del nombre de clase.
Mínima Calidad de Atributos Aceptada (CalidadAceptAtributos) [0..1]Calidad de Atributos mínima aceptada para una clase recuperada.
Peso Coincidencia de Atributo Heredado (PesoCoincidAtribHered) [0..1]Importancia de un atributo heredado de una clase del Modelo a Buscar.
Peso de Atributos (PesoAtributos) [0..1]
Peso de la semejanza de atributos.
Asistente para la Reutilización de Modelos - 23
Parámetros de Apareo por Atributos y por Métodos
Clases Ignoradas (ClasesIgnoradas)Clases de Smalltalk cuyas variables o métodos deben ignorarse.
Porcentaje de Palabras para Raices (PorcRaizPal) [0..100]Porcentaje de la cadena que se conserva para obtener su raíz.
Longitud Máxima Palabra (LongMaxPal)Longitud máxima de cadena para la cual no se extrae raíz.
Comparación Exacta (CompExacta) (1,2,3)valor que define cuando dos cadenas son consideradas iguales.
1: coincidencia carácter a carácter. 2: inclusión de una cadena en la otra.3: coincidencia de una cadena con prefijo de la otra.
Peso de Coincidencia de un Sinónimo (PesoCoincidSinonim) [0..1]Peso de la coincidencia de un sinónimo.
Peso de Estructura (PesoEstructura) [0..1]Peso de la semejanza estructural.
Asistente para la Reutilización de Modelos - 24
Usando Apareo por Atributos Modelo a Buscar
Asistente para la Reutilización de Modelos - 25
Usando Apareo por Atributos Modelo Recuperado
Asistente para la Reutilización de Modelos - 26
Reglas de TransformaciónApareo por Métodos
Apareo por Métodos
Modelo GlobalModelo a
Buscar
Modelo Recuperado2
cmab csmall
Métodos (cmab)
Métodos (csmall)
CoincidComp (compjk ,compik )
sinónimos
posición
addNode Pos
addNode Pos
compik
compik
comp (Selectorj)
i j
k
k
)(#
)))(#
),(
((
),(
)(#
1
)(#
1
)(#
1
mab
cMétodos
i j
ikjkcMétodos
jsmallmabm cMétodos
SelectorComp
compcomppCoincidCom
ccf
mab small
jSelectorComp
kMáx
Asistente para la Reutilización de Modelos - 27
Parámetros de Apareo por Métodos
Mínima Calidad de Métodos Aceptada (CalidadAceptMétodos)[0..1]
Calidad de Métodos mínima aceptada para una clase recuperada.
Peso de Coincidencia de Métodos Heredados (PesoCoincidMetodHered) [0..1]
Importancia de un método heredado de una clase del Modelo a Buscar.
Mínima Calidad de un Método (MinCalMetod) [0..1]Grado de semejanza mínimo para el cual se consideran dos selectores de métodos como semejantes.
Asistente para la Reutilización de Modelos - 28
Usando Apareo por Métodos Modelo Recuperado (Intersección)
Asistente para la Reutilización de Modelos - 29
Usando Apareo por Métodos Modelo Recuperado (Unión)
Asistente para la Reutilización de Modelos - 30
Reglas de TransformaciónApareo por Herencia
Apareo por Herencia
Modelo GlobalModelo a
Buscar
Modelo Recuperado3
hsmall-j
Modelo Recuperado12
Apareo Herencia (fh)
fh
Herencia (MaB)hsmall-j
CalidadHerencia (MaB, MR)
)(#
))),(()(#
1
)(#
1(
),(MaBHerencia
jsmallhimabhhf
MaBHerencia
iMáx
MRHerencia
jMRMaBaCalHerenci
Semejanza Estructural
Asistente para la Reutilización de Modelos - 31
Casos posibles en el análisis de herencia
Entre clases Recuperadas y Coincidente en Orden Entre clases Recuperadas y No Coincidente en Orden Entre clases Recuperadas o No y Coincidente en Orden Entre clases Recuperadas o No y No Coincidente en
Orden Sólo entre clases Recuperadas o No
Apareo por Herencia
Asistente para la Reutilización de Modelos - 32
CM
SM
CS
SS
EstructuralmenteSemejante
EstructuralmenteSemejante
Clases delModelo a Buscar
Clases del ModeloRecuperado
h smallh mab
Entre clases Recuperadas y Coincidente en Orden
Asistente para la Reutilización de Modelos - 33
CM
SM
CS
SS
Clases delModelo a Buscar
Clases del ModeloRecuperado
EstructuralmenteSemejante
h mab h small
Entre clases Recuperadas y No Coincidente en Orden
Asistente para la Reutilización de Modelos - 34
CM
SM
CS
IS
Clases delModelo a Buscar
Clases del ModeloRecuperado y del
Modelo Global
EstructuralmenteSemejante
EstructuralmenteSemejante
h mab
h small
SS
Entre clases Recuperadas o No y Coincidente en Orden
Asistente para la Reutilización de Modelos - 35
CM
SM
CS
IS
Clases delModelo a Buscar
Clases del ModeloRecuperado y del
Modelo Global
EstructuralmenteSemejante
h mab
h small
SS
Entre clases Recuperadas o No y No Coincidente en Orden
Asistente para la Reutilización de Modelos - 36
CM
SM
CS
SS
Clases delModelo a Buscar
Clases del ModeloRecuperado y del
Modelo Global
EstructuralmenteSemejante
h small
EstructuralmenteSemejante
Sólo entre clases Recuperadas o No(Aporte Cualitativo)
Asistente para la Reutilización de Modelos - 37
Herencia de Orden Inverso
las clases recuperadas no son realmente las que estamos buscando o sólo alguna de ellas es la que estamos buscando,
las clases recuperadas son las que estamos buscando, pero existe un error de diseño en nuestro modelo,
las clases recuperadas son las que estamos buscando, pero existe un error de diseño en el modelo previamente implementado o
las clases recuperadas son las que estamos buscando, pero el problema que estamos analizando influye sobre la jerarquía de herencia de forma inversa al problema que se resolvió al implementar las clases recuperadas.
Asistente para la Reutilización de Modelos - 38
Parámetros de Apareo por HerenciaUsaHerencia (0,1)
0: no se analiza la relación entre jerarquías de herencia.1: se analiza la relación entre jerarquías de herencia.
ClasesIntermedias (0,1)0: no se usan clases intermedias.1: se usan clases intermedias.
Peso de las Clases Intermedias (PesoClasesIntermedias ) [0..1]Peso de la incorporación de cada clase intermedia.
Peso de Herencia (PesoHerencia) [0..1]Peso que tiene el Apareo por Herencia.
Asistente para la Reutilización de Modelos - 39
Usando Apareo por Herencia Modelo a Buscar
Asistente para la Reutilización de Modelos - 40
Usando Apareo por Herencia Modelo Recuperado sin Herencia
Asistente para la Reutilización de Modelos - 41
Usando Apareo por Herencia Modelo Recuperado con Herencia
ClasesIntermediasRecuperadas
Asistente para la Reutilización de Modelos - 42
Usando Apareo por Herencia Modelo a Buscar Modelo Recuperado sin Herencia
Asistente para la Reutilización de Modelos - 43
Usando Apareo por Herencia Modelo Recuperado con Herencia
Modelo Global
Asistente para la Reutilización de Modelos - 44
Reglas de TransformaciónApareo por Mensajes
Apareo por Mensajes
Modelo Global
Modelo a Buscar
Modelo Recuperado4
Modelo Recuperado3
CalMensajes (MaB, MR)
)(#
)),()(#
1(
),(MaBMensajes
MRimsfMaBMensajes
iMRMaBsCalMensaje
Semejanza Estructural
mi
fs
Mensajes (MaB)
OmabDmab
Osmall
Dsmall
Asistente para la Reutilización de Modelos - 45
12
3
9
7º
8º
64
5
Clases del Modelo Global
Clase Semejante a Origenmab
Clase Semejante a Destinomab
A
B
C F
E
D
Orden de Búsqueda de Mensajes
Asistente para la Reutilización de Modelos - 46
Parámetros de Apareo por Mensajes
UsaMensajes (0,1)0: no se analiza la relación entre mensajes.1: se analiza la relación entre mensajes.
Peso de Mensajes (PesoMensajes) [0..1]Peso que tiene el Apareo por Mensajes.
Asistente para la Reutilización de Modelos - 47
Usando Apareo por Mensajes Modelo a Buscar
Modelo Recuperado sin Mensajes
Asistente para la Reutilización de Modelos - 48
Usando Apareo por Mensajes
Modelo Recuperado con Mensajes
Clases Añadidas por el Apareo por Mensajes
Asistente para la Reutilización de Modelos - 49
Calidad del ModelosfesPesoMensajhfiaPesoHerencefturaPesoEstrucCalTotalMR _*_*_*__
)(#
))),(*),(*((
),(
)(#
1
),(Re#
1
MaBClases
ccfPmccfPaMáxMRMaBf
MaBClases
ismallmabmsmallmaba
MRccClases
je
jiji
imab
Asistente para la Reutilización de Modelos - 50
Algunas Características del ARM
Flexibilidad Permite distintos niveles de abstracción en Modelo a
Buscar y Modelo Recuperado (análisis y diseño) Permite distintos tipos de Modelo a Buscar y Modelo
Recuperado (Parámetros de Ajuste)
Modularidad Puede añadirse como asistente a otra herramienta de
desarrollo (Arquitectura en capas)
Asistente para la Reutilización de Modelos - 51
Conclusiones
Los atributos son más significativos para la recuperación
El Apareo por Herencia sugiere mejoras en el diseño El Apareo por Mensajes sugiere nuevas funciones Existen valores recomendados para los parámetros
según características del MaB y del M. R. El Ajuste de Parámetros mejora la recuperación.
Asistente para la Reutilización de Modelos - 52
A Futuro
Implementación en C++
Ajuste inicial automático de los Parámetros de Configuración
Incorporación del ARM a una herramienta CASE
Top Related