Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
DE SIMILITUD1
RESUMEN
MATERIALES Y METODOS
1
Msc. van Soto RodriguezProfesor Principal del Dpto. de Estadística e Informática de la UNALM
conocer el esquema de datos del repositorio, o su organización interna.
2
Por tanto, a las propiedades pueden asociarse diversas interpretaciones, según el caso y
el contexto de uso. Una propiedad puede describir la acción realizada sobre un objeto
(<verbo, nombre>), explicitando el comportamiento; o una característica pasiva del
componente (<nombre, adjetivo> o <nombre, nombre>). Denominaremos, a estos dos
tipos de propiedades, activas y pasivas respectivamente. Por lo general, las propiedades
activas se usarán para describir funcionalidades o servicios ofrecidos por el
componente, mientras que las pasivas describiran características no-funcionales.
Cada una de las propiedades en una DF puede ser “valorada” asignandole un valor
difuso que representa un índice de relevancia de la propiedad dentro de la DF. En una
DF, el valor difuso representa el poder descriptivo de una propiedad con respecto al
comportamiento general del componente representado por la DF. En una consulta, el
valor difuso representa que tan relevante es esa propiedad para el reutilizador.
3
CALCULO DE LA SIMILITUD ENTRE DOS COMPONENTES
SOFTWARE
La similitud entre 2 DF es un valor que indica en que medida la primera DF pueda ser
sustituida por la segunda mientras se mantienen los requisitos funcionales de la
aplicación en desarrollo.
4
0. Por tanto, solo cuando las propiedades son iguales o equivalentes
(sinónimos) se toma en cuenta su <importancia>.
RESULTADOS
Caso practico :
0 0 1
EQ =
0 0 0
EQ[1,3] = 1 y el resto 0; por tanto, solo necesito calcular IMP [3,1], el resto será 0
5
IMP[3,1] = min (1, MP/M) = min (1, (1/16)/(1/4)) = min (1, ¼) = 0,25
0 0
IMP = 0 0
0,25 0
0,2
IN =
0,8
0 0
0 0 1 0,25 0
SAT = X 0 0 =
0 0 0 0,25 0 0 0
El esquema
6
preestablecido, aunque tiende a estabilizarse rápidamente a medida que se insertan
componentes en el repositorio.
Cuando llega el primer componente no existe aún espacio, por tanto, se extraen sus
características (tuplas que conforman su DF), y cada una de ellas da origen a una
dimensión del espacio. Asi, a medida que se intenta clasificar a nuevos componentes, se
van comparando las nuevas características con las ya representadas en el espacio,
añadiendose en el caso de que aún no esten representadas. Este proceso genera
dimensiones rapidamente y en gran cantidad, pero solo en la fase inicial, a medida que
el repositorio se va llenando cada vez son menos las características que no se encuentran
ya representadas en el espacio, llegando a una situación de estabilidad cuando el
repositorio tiene una carga representativa (media). Por ejemplo, si consideramos un
repositorio que almacena alrededor de 100.000 componentes, donde cada componente
se representa por una media de 3 características, y todos los componentes pertenecen a
un único dominio de aplicación; es razonable estimar que el número de dimensiones del
espacio ronde las 3.000, es decir, solo uno (1) de cada 100 componentes aporta una (de
sus 3) característica a la dimensionalidad del espacio.
La idea básica del esquema, y por tanto del algoritmo que lo implementa, es la de ver el
repositorio como un espacio en continuo crecimiento, definido por las características de
los propios componentes que se intenta clasificar.
Los componentes que llegan se “sitúan” en este espacio de acuerdo a su similitud con
las dimensiones del espacio (que actúan como ejes de coordenadas), y se agrupan en
visores (conjuntos de componentes con un valor de similitud mayor que un valor umbral
preestablecido). En otras palabras, los componentes “cercanos” en este espacio n-
dimensional son agrupados en el mismo visor. Cada visor esta asociado a su “centro”
(analogía de la esfera); el centro es un vector n-dimensional que representa la
7
“ubicación promedio” de todos los componentes del visor, es decir, la funcionalidad
promedio.
8
6. sino: (* creamos un nuevo visor*)
6.1. numvis = numvis +1
6.2. hacemos cvnumvis = Cn (* hacemos coincidir el centro del visor con el
componente*)
6.3. se crea una nueva lista lcv (*la número numvis*)
RESULTADOS
Caso práctico:
Componente Características
C1 mete-elemento, A
saca-elemento, A
C2 tamaño-arreglo, MP
tamaño-cola, P
C3 tope-pila, M
saca-pila, MA
C4 mete-elemento, A
C5 tamaño-arreglo, P
tamaño-cola, M
9
3. posición de C1 = (0,5 ; 0.5)
4. desde i = 1 hasta 0 hacer: (*para C1 no se entra en este bucle*)
5. sino: (* creamos un nuevo visor*)
5.1. numvis = 1
5.2. hacemos cv1 = C1 (* hacemos coincidir el centro del visor con el
componente*)
5.3. se crea una nueva lista lcv (*la número 1*)
6. se añade el valor 1 en la lista lcv correspondiente (la 1)
7. se verifica si V1 puede ver a otros componentes, Si puede, entonces: (*V1 no ve
a ningún otro componente*).
8. fin
Componentes
referencia
mete-elemento, A
saca-elemento, A
Visores
1
Centro de Visor
C1
Para C2 tendremos:
10
Componentes
referencia
mete-elemento, A
saca-elemento, A
tamaño-arreglo, MP
tamaño-cola, P
Visores
1, 2
Centros de Visores
C1, C2
Para C3 tendremos:
11
Componentes
Referencia
mete-elemento, A
saca-elemento, A
tamaño-arreglo, MP
tamaño-cola, P
tope-pila, M
saca-pila, MA
Visores
1, 2, 3
Centros de Visores
C1, C2, C3
Para C4 tendremos:
12
Componentes
Referencia
mete-elemento, A
saca-elemento, A
tamaño-arreglo, MP
tamaño-cola, P
tope-pila, M
saca-pila, MA
Visores
1, 2, 3
Centros de Visores
C1+, C2, C3
13
Componentes
Referencia
mete-elemento, A
saca-elemento, A
tamaño-arreglo, MP
tamaño-cola, P
tope-pila, M
saca-pila, MA
Visores
1, 2, 3, 4
Centros de Visores
C1+, C2, C3, C4
BIBLIOGRAFIA
14