Está en la página 1de 5

Rafael Andrés Hernández Roldán

1. Proponer un dominio y un uso inteligente que se le daría al sistema basado en reglas propuesto (brevemente
el objetivo, alcance y límites, no más de media página).

En el desarrollo ágil de software es habitual emplear un popular marco de trabajo denominado Scrum. En Scrum, el
trabajo se organiza en Sprints (unidades de tiempo de una a cuatro semanas) y, por lo general, se escriben los
requisitos con el formato de Historia de Usuario (en este contexto, un requisito equivale a una Historia de Usuario). Es
habitual que a mitad del desarrollo de un Sprint haya cambios de prioridad en el trabajo que debe ser realizado y se
solicite añadir alguna nueva Historia. Cuando esto ocurre, el equipo de desarrollo al completo debe reunirse y decidir
si la Historia puede o no ser incluida en el Sprint. Incluir una Historia no prevista puede hacer peligrar el Sprint, dado
que en Scrum se considera que es responsabilidad del equipo entregar todo el trabajo comprometido. Por tanto, los
desarrolladores suelen tomar dos criterios principales para decidir si una Historia puede o no entrar en el Sprint: su
tamaño (el tiempo que llevará realizarla, normalmente medido en tallas de camiseta como XS, S, M y L) y su grado de
definición (idealmente todas las Historias deberían tener un alto nivel de definición, pero en la práctica esto se
incumple a menudo).

Así pues, se desea desarrollar un sistema de ayuda a la decisión que esté libre de algunos sesgos característicos de los
seres humanos, tales como ceder ante la presión de un superior o infravalorar el riesgo inherente a los cambios de
planes.

Naturalmente, el conjunto de reglas necesarias para llevar a cabo a esta tarea podría llegar a ser específico para cada
equipo de desarrollo y para cada proyecto, pero, en ese caso, sería equivalente a la opinión de un profesional
experimentado. Este sistema plantea un enfoque genérico, por lo que no debe confundirse con un oráculo, sino que
debe tratarse como un punto de referencia adicional que los equipos de desarrollo pueden tomar en aquellos casos
en los que ellos mismos se encuentren dubitativos y no sean capaces de decantarse por una opción.

2. Ejemplificar en torno a 5 reglas imprecisas sobre ese dominio, del estilo a las que vemos en el curso y que
permitan hacer “razonamiento hacia delante”.

Si decidimos meter la nueva Historia en el Sprint, tenemos lo siguiente:


• Si la nueva Historia es muy pequeña, entonces el Sprint peligra muy poco.
• Si la nueva Historia es pequeña y está poco definida, entonces el Sprint peligra poco.
• Si la nueva Historia es grande y está poco definida, entonces el Sprint peligra mucho.
• Si la nueva Historia es grande y está definida regular, entonces el Sprint peligra algo.
• Si la nueva Historia es pequeña y está bien definida, entonces el Sprint peligra muy poco.
• Si la nueva Historia es mediana y está bien definida, entonces el Sprint peligra poco.

3. Poner un ejemplo (análogo a los estudiados en clase) de razonamiento aproximado (inferencia borrosa) con
dichas reglas, basado en representación no continua de los conjuntos borrosos y usando relaciones borrosas
y Modus Ponens Generalizado, eligiendo los parámetros más adecuados (función de implicación, t-
normas…).

Definamos los siguientes conjuntos borrosos (recordemos que el tamaño de las Historias de Usuario se mide como
tallas de camiseta XS, S, M y L):
• Historia grande: {0.2 / XS, 0.3 / S, 0.5 / M, 0.8 / L} (Universo: XS, S, M, L)
• Historia definida regular: {0.8 / poco, 0.9 / regular, 0.15 / bien} (Universo: poco, regular, bien)
• El sprint peligra algo: {0.3 / muy poco, 0.5 / poco, 0.8 / algo, 0.7 / mucho} (Universo: muy poco, poco, algo,
mucho)
Supongamos que tenemos en nuestra base de hechos que:
• La nueva Historia de Usuario no es grande.
• La nueva Historia de Usuario está definida regular.
Emplearemos el mínimo como T-norma, el máximo como T - conorma, la negación clásica (complemento) y la
implicación de Reichenbach I(a, b) = 1 – a + a * b .
“Si la nueva Historia es grande y está definida regular, entonces el Sprint peligra algo.”

(0.2 / XS, 0.3 / S, 0.5 / M, 0.8 / L) ∧ (0.8 / poco, 0.9 / regular, 0.15 / bien)
⇒ (0.3 / muy poco, 0.5 / poco, 0.8 / algo, 0.7 / mucho)
0.86 0.9 0.96 0.94
0.86 0.9 0.96 0.94
0.895 0.925 0.97 0.955
0.79 0.85 0.94 0.91
0.2 0.2 0.15 0.79 0.85 0.94 0.91
0.3 0.3 0.15 0.895 0.925 0.97 0.955
( ) ⇒ (0.3 0.5 0.8 0.7) =
0.5 0.5 0.15 0.65 0.75 0.9 0.85
0.8 0.8 0.15 0.65 0.75 0.9 0.85
0.895 0.925 0.97 0.955
0.44 0.6 0.84 0.76
0.44 0.6 0.84 0.76
(0.895 0.925 0.97 0.955)

Hechos
0.8 0.8 0.15
0.7 0.7 0.15
(0.8 / XS, 0.7 / S, 0.5 / M, 0.2 / L) ∧ (0.8 / poco, 0.9 / regular, 0.15 / bien) = ( )
0.5 0.5 0.15
0.2 0.2 0.15
H = (0.8 0.8 0.15 0.7 0.7 0.15 0.5 0.5 0.15 0.2 0.2 0.15)

0.86 0.9 0.96 0.94 0.8


0.86 0.9 0.96 0.94 0.8
0.895 0.925 0.97 0.955 0.15
0.79 0.85 0.94 0.91 0.7
0.79 0.85 0.94 0.91 0.7
0.895 0.925 0.97 0.955 0.15
∘ = (𝟎. 𝟖 𝟎. 𝟖 𝟎. 𝟖 𝟎. 𝟖)
0.79 0.85 0.94 0.91 0.5
0.65 0.75 0.9 0.85 0.5
0.895 0.925 0.97 0.955 0.15
0.79 0.85 0.94 0.91 0.2
0.58 0.7 0.88 0.82 0.2
(0.895 0.925 0.97 0.955) (0.15)

4. Proponer un ejemplo (análogo a los estudiados en clase) de razonamiento aproximado (inferencia borrosa)
con dichas reglas, pero ahora usando números borrosos para representar los universos de las variables de
entrada y de salida, y usando un mecanismo de inferencia tipo Mamdani.

XS S M L

Poco Muy poco-R1 Poco-R4 Mucho-R7

Regular Muy poco-R2 Algo-R8

Bien Muy poco-R3 Muy poco-R5 Poco-R6


1
Tamaño Historias de Usuario
0,8

0,6
XS

0,4 S
M
0,2 L

0
0 1 2 3 4 5 6

1
Grado de definición de una Historia de Usuario
0,8

0,6
Poco
0,4
Regular
0,2
Bien
0
0 1 2 3 4 5 6

1
Grado de peligro del Sprint
0,8

0,6
Muy poco
Poco
0,4
Algo
0,2 Mucho

0
0 1 2 3 4 5 6

Supongamos que queremos añadir una Historia cuyo tamaño hemos categorizado como 3.25 y su grado de definición
como 1.25.

Entonces se disparan las reglas R7 y R8.

R7

L Poco definida Sprint peligra mucho


0,9 0,9 0,9
0,8 0,8 0,8
0,7 0,7 0,7
0,6 0,6 0,6
0,5 0,5 0,5
0,4 0,4 0.3 0,4
0,3 0,3 0,3
0,2 0,2 0,2
0.1
0,1 0,1 0,1
4.125
0 0 0
3 4 5 6 0 1 2 4 5 6
R8

L Definida regular Sprint peligra algo


0,9 0,9 0,9
0,8 0,8 0,8
0,7 0,7 0,7
0,6 0,6 0,6
0,5 0,5 0,5
0,4 0,4 0,4
0,3 0,3 0,3
0,2 0,2 0,2
0.1 0.1
0,1 0,1 0,1
2.25
0 0 0
3 4 5 6 1 2 3 4 5 2 3 4 5 6

Entonces inferimos lo siguiente:

Peligro del Sprint


0,8
0,7
0,6
0,5
0,4
0,3
0,2
0,1
0
2 3 4 5 6

5. Implementar las reglas en CLIPS/FUZZY CLIPS y poner un ejemplo de inferencia TIPO MAMDANI (anexando
a la documentación los archivos de BH y BC).

También podría gustarte