Facilidad_de_modificacion_Semana7_2024 - CaviedesGitHub/MiProyectoFinal GitHub Wiki
FACILIDAD DE MODIFICACION
"Se entiende por facilidad de modificación, el cambiar, parcial o totalmente una pieza de software. Este cambio se puede dar, bien sea porque hemos detectado un defecto y debemos corregir el código, o porque hemos mejorado un algoritmo para implementar una función, o simplemente porque la tecnología evoluciona y debemos actualizar el código como consecuencia".
Escenarios de Facilidad de Modificación
| ID | FAM001 | Versión | 1 |
|---|---|---|---|
| Fuente | Estímulo | Artefacto | Ambiente |
| Desarrollador | Desea cambiar la interfaz de usuario | Interface usuario Móvil | Tiempo de desarrollo. |
| Respuesta | Medida de la Respuesta | ||
| Realizar modificación exitosamente | Debe suceder en máximo 2 horas |
| ID | FAM002 | Versión | 1 |
|---|---|---|---|
| Fuente | Estímulo | Artefacto | Ambiente |
| Desarrollador | Desea optimizar una consulta a la base de datos | App Móvil | Tiempo de desarrollo. |
| Respuesta | Medida de la Respuesta | ||
| Realizar modificación exitosamente | Debe suceder en máximo 3 horas |
Tácticas de Facilidad de Modificación
Incrementar la Cohesión
Dividir los Módulos. Si el módulo que se está modificando incluye responsabilidades que no son cohesivas, es probable que los costos de modificación sean altos. La refactorización del módulo en varios módulos más cohesivos debería reducir el costo promedio de los cambios futuros.
Redistribuir responsabilidades. Si las responsabilidades A, A' y A" (todas responsabilidades similares) están dispersas en varios módulos distintos, deben colocarse juntas. Esta refactorización puede implicar la creación de un nuevo módulo o puede implicar el traslado de responsabilidades a los módulos existentes.
Reducir Acoplamiento
Encapsulación. La encapsulación introduce una interfaz explícita en un elemento y garantiza que todo el acceso al elemento pase a través de esta interfaz. Se eliminan las dependencias de los elementos internos, ya que todas las dependencias deben fluir a través de la interfaz.
Restringir las vías de comunicación. Esta táctica restringe el conjunto de elementos con los que un elemento determinado puede comunicarse.
Servicios Comunes Abstractos. Cuando dos elementos proporcionan servicios que son similares pero no exactamente iguales, puede ser útil ocultar ambos elementos específicos detrás de una abstracción común para un servicio más general.



