Académique Documents
Professionnel Documents
Culture Documents
Impact analysis
Anlisis de impacto
Resumen: Los cambios de software son necesarios e inevitables en el desarrollo de
software, pero pueden conducir a un deterioro de software si no se controla
adecuadamente. El anlisis de impacto es la actividad de identificar lo que necesita ser
modificado con el fin de hacer un cambio, o para determinar las consecuencias en el
sistema si se lleva a cabo el cambio. La mayora de las investigaciones sobre el anlisis
de impacto se presentan y debaten en la literatura relacionada con el mantenimiento
del software. En este captulo, nos tomamos un enfoque diferente y discutimos anlisis
de impacto desde la perspectiva de la ingeniera de requisitos. Relacionamos cambio de
software para impacto de anlisis, nociones generales de la historia de anlisis de
impacto y presentar estrategias comunes para la realizacin de anlisis de impacto.
Tambin mencionamos la aplicacin del anlisis de impacto. Por ltimo, se describe lo
que vemos como el futuro de esta fundamental herramienta de gestin del cambio.
Palabras clave: Anlisis de impacto, cambio de software, anlisis de trazabilidad, la
propagacin del cambio, los requisitos no funcionales, las mtricas.
6.1 Introduccin
Es ampliamente reconocido que el cambio es una propiedad ineludible de cualquier
software, por un nmero de razones. Sin embargo, los cambios de software pueden, y lo
harn, si no estn adecuadamente controlados, conducir a un deterioro de software.
Por ejemplo, cuando se analizaron 2.000.000 lneas de cdigo fuente de Mozilla de
cdigo (SLOC Source Lines of Code), haba fuertes indicios de que el software se ha
deteriorado de manera significativa debido al cambio no controlado, haciendo que el
software sea muy difcil de mantener [17].
El deterioro de Software ocurre en muchos casos debido a cambios en el software rara
vez tienen el pequeo impacto que se cree que tienen [40]. En 1983, algunos de los
errores de programacin ms caros del mundo cada uno implicaron el cambio de un
solo dgito en un programa previamente correcto [38], lo que indica que un cambio
aparentemente trivial puede tener un inmenso impacto. Un estudio realizado en los
aos 90 demostr que los profesionales de software que realizan anlisis de impacto y
cambio en la estimacin de un proyecto industrial subestimaron la cantidad de cambio
por un factor de tres [26]. Adems, como los sistemas de software crecen cada vez ms
complejos, los problemas asociados con el cambio de software en consecuencia
aumentan. Por ejemplo, cuando se analiz el cdigo fuente a travs de varias versiones
de un sistema de software de telecomunicaciones de quince aos de edad, de 100 000
000 lneas de cdigo fuente, se observ que el sistema se haba deteriorado debido al
cambio frecuente. Los programadores de estimacin del esfuerzo de cambio llegaron a
la conclusin de que el cdigo era ms difcil de cambiar de lo que debera ser [13].
Anlisis de impacto es una herramienta para el control de cambio, y por lo tanto para
evitar el deterioro. Bohner y Arnold
definen anlisis de impacto como "la actividad de la
identificacin de las posibles consecuencias, incluyendo los efectos secundarios y
efectos en cadena, de un cambio, o la estimacin de lo que necesita ser modificado para
lograr un cambio antes de que se ha hecho" [3]. En consecuencia, la salida de anlisis de
impacto se puede utilizar como una base para estimar el costo asociado con un cambio.
El costo del cambio se puede utilizar para decidir si aplica o no en funcin de su relacin
costo / beneficio.
Anlisis de impacto es una parte importante de la ingeniera de requisitos ya que los
cambios en el software a menudo son iniciados por los cambios en los requisitos. En los
libros de texto de requerimientos de ingeniera, anlisis de impacto es reconocido como
una actividad esencial en la gestin del cambio, pero los detalles sobre cmo realizar a
menudo queda fuera, o limitarse a razonar sobre el impacto del cambio en la
especificacin de requisitos [20, 23, 27, 32 , 35]. Una excepcin es [40], donde Wiegers
ofrece listas de verificacin para ser utilizados por un desarrollador con conocimientos
para evaluar el impacto de la propuesta de cambio.
A pesar de su lugar natural en la investigacin de la ingeniera de requisitos sobre el anlisis de
impacto se encuentra ms comnmente en la literatura relacionada con el mantenimiento del
software. En este captulo, se presenta el anlisis de impacto desde la perspectiva de la
ingeniera de requisitos. En nuestra experiencia, el anlisis de impacto es una parte integral de
todas las fases de desarrollo de software. Durante el desarrollo de requisitos, diseo y cdigo
an no existen, as que los requisitos nuevos y cambiantes afectan slo a los requisitos
existentes. Durante el diseo, el cdigo no existe todava, as que los requisitos nuevos afectan
solamente requisitos existentes y diseo. Por ltimo, durante la ejecucin, los requisitos nuevos
y cambiantes afectan a los requisitos existentes, as como el diseo y el cdigo. Esta es capturad
en la figura 6.1. Tenga en cuenta que en los procesos de desarrollo menos idealistas, la
situacin
cambios en los requerimientos en las fases subsiguientes. Adems, fallas para crear un
proceso de cambio prctico puede significar que los cambios no sern manejados
oportunamente, o esos cambios sern implementados sin el control adecuado.
Maciaszek indica: el cambio no es una patada en los dientes, cambios no administrados
lo son. En otras palabras, una organizacin que desarrolla software requiere un
adecuado proceso de gestin con el fin de disminuir los riesgos de constantes cambios
en los requerimientos y su impacto en el sistema. Leffingwell y Widrig discuten cinco
partes necesarias del proceso para administrar los cambios. Estas partes representadas
en la figura siguiente, forman un entorno de trabajo para el proceso de la gestin de
cambios que permiten que el equipo de trabajo gestione los cambios de forma
controlada.
Un plan para el cambio implica reconocer el hecho de que se produzcan cambios, y que
son una parte necesaria del desarrollo del sistema. Esta preparacin es esencial para
que los cambios para sean
recibidos y manejados de manera efectiva.
Requisitos bsicos significan crear una instantnea de la actual serie de requisitos. El
punto de este paso es permitir que los cambios posteriores en los requisitos a ser
comparado con un conjunto estable y conocido de requisitos.
Un solo canal es necesaria para asegurar que ningn cambio se implementa en el
sistema antes de que se haya analizado por una o varias personas, que guardan el
sistema, el proyecto y el presupuesto en mente. En las organizaciones ms grandes, el
nico canal es a menudo un tablero de control de cambios (CCB).
Un sistema de control de cambios permite al CCB (o equivalente) recopilar, seguir y
evaluar el impacto de los cambios. Segn Leffingwell y Widrig, un cambio evaluarse en
trminos de impacto en el costo y funcionalidad, el impacto en los actores externos (Por
ejemplo, clientes) y el potencial para desestabilizar el sistema. Si el ltimo se pasa por
alto, el sistema (como se seal anteriormente) es probable que se deteriore.
Gestionar de forma jerrquica vence una lnea quizs demasiado comn de accin: un
cambio es introducido en el cdigo por un programador ambicioso, que se olvida, o pasa
por alto, el efecto potencial que tiene el cambio sobre casos de prueba, diseo,
arquitectura, requisitos y as sucesivamente. Los cambios deben introducirse de arriba
recuperacin de rebanadas ejecutables que contienen slo el cdigo del que una
variable especfica depende, fue introducido ya en 1979 por Weiser. Rebanar, que se
explica en la Seccin. 6.2.1.2, puede ser utilizado para determinar las dependencias en
el cdigo y se puede utilizar para minimizar los efectos secundarios. Rebanar tambin se
puede utilizar para determinar las dependencias entre las secciones en los documentos,
incluyendo los requerimientos, los cuales se describen a continuacin. Requisitos de
trazabilidad definidos en la norma ANSI / IEEE Standard 830-1984 en 1984. Trazabilidad
describe cmo los SLOs estn relacionados entre s y pueden ser utilizados para
determinar cmo cambio en un tipo de artefacto causa el cambio en otro tipo de
artefacto. La nocin del efecto domin fue introducido por Yau y Collofello en 1980 [41].
Sus modelos se pueden utilizar para determinar cmo cambia un rea del cdigo fuente
propagado y causa cambios en otras reas.
El anlisis de impacto se basa en las tcnicas y estrategias que se remontan mucho
tiempo atrs. Sin embargo es posible identificar una tendencia en la investigacin de
anlisis de impacto durante los aos Los primeros anlisis de impacto de trabajo se
centr en el anlisis de cdigo fuente, incluyendo el programa de rebanadas y sus
repercusiones para el cdigo. La maduracin de la ingeniera de software entre
organizaciones de software ha llevado a la necesidad de comprender cmo los cambios
afectan a otra SLO que el cdigo fuente.
Por ejemplo, Turver y Munro sealan que el cdigo fuente no es el nico producto que
tiene que ser cambiado con el fin de desarrollar una nueva versin del software
producto. En un documento impulsado por el enfoque de desarrollo, muchos
documentos son tambin afectados por los requisitos nuevos y modificados. El manual
de usuario es un ejemplo de un documento que tiene que ser actualizado cuando las
nuevas funcionalidades de usuario sean previstos. Turver y Munro se centran en el
problema del efecto domin en la documentacin utilizando una tcnica de rebanadas
temtico. Ellos dicen que este tipo de anlisis no ha sido ampliamente discutido antes.
El mismo enfoque se puede aplicar al documento de requerimientos con el fin de
determinar cmo un nuevo o modificado requisito impacta la especificacin de
requisitos.
En 1996, Arnold y Bohner publicaron una coleccin de artculos de investigacin llamada
Anlisis de Impacto del Cambio del Software. El propsito de la coleccin era presentar
hoy en da, algo disperso, el material que estaba disponible en el momento acerca del
anlisis del impacto. La lectura de la coleccin hoy, casi diez aos despus, se hace
evidente que todava es muy relevante. Documentos publicados despus de 1996
parecen funcionar con las mismas ideas y tcnicas. No nos referimos a depreciar el
trabajo que se ha hecho, pero indica que el campo no est en un estado de flujo. Ms
bien, el foco permanece en la adaptacin de tcnicas y estrategias existentes a nuevos
requieren por otro lado la presencia de una infraestructura detallada y resultar a veces
cometer demasiados falsos positivos [30].
Con estrategias manuales, nos referimos a los que se realiza mejor por los seres
humanos (a diferencia de las herramientas). Estos requieren menos infraestructura,
pero pueden ser ms grueso en su estimacin del impacto que los automatizables.
Reconocemos que las dos categoras no son completamente ortogonales, pero, hacen
una distincin importante; las estrategias manuales son potencialmente ms fciles de
adoptar y trabajar, ya que requieren de entrada menos estructurada y no es necesario
desarrollar nuevas formas de SLOs.
Un estudio anterior indica que el anlisis de impacto de los desarrolladores a
menudo resulta en predicciones optimistas [26], lo que significa que el conjunto
previsto de cambios representa la menor cantidad posible de trabajo. Por lo tanto, el
trabajo no puede ser ms fcil, slo es ms difcil. El estudio tambin identific la
necesidad de predicciones conservadoras y establecimiento una prediccin "peor nivel".
La cantidad real de trabajo se encuentra entre el optimismo y el nivel conservador. Una
mejor meta sera disminuir la variacin del proceso de anlisis de impacto a medida que
se estabiliza y se hace ms madura.
PAG 9-11
El costo asociado con la produccin de una prediccin conservadora depende de su
esperada exactitud. Desde entonces las predicciones conservadoras identifican una gran
parte de tales sistemas, los desarrolladores a menudo no pueden creer que son
realistas. El beneficio de tener una prediccin conservadora es la capacidad de
determinar una prediccin ms probable en algn lugar entre el optimismo y la
prediccin conservadora. Un impacto ideal en el enfoque de anlisis sera siempre
proporcionar un ptimo y conservador clculo. Mediante la recopilacin y anlisis de
datos empricos de las predicciones, as como los cambios reales, que se pueden
establecer en donde se encuentra el lapso a la respuesta correcta.
6.2.1 Estrategias automatizables
Las estrategias de anlisis de impacto automatizables a menudo emplean mtodos
algortmicos en orden para identificar el cambio de propagacin y el impacto indirecto.
Por ejemplo, la relacin grfica de requisitos y otros SLO pueden utilizarse con
algoritmos de grafos para identificar el impacto de un cambio propuesto que tendra en
el sistema. El requisito previo para las estrategias automatizables es una especificacin
estructurada del sistema. Por estructurado, nos referimos a que la especificacin es
consistente y completa, e incluye alguna informacin semntica (por ejemplo, el tipo de
relacin). Una vez en el lugar, tal especificacin puede ser utilizada por las herramientas
para llevar a cabo el impacto de anlisis automtico. Los requerimientos de
dependencia y modelos de objetos son ejemplos de especificaciones estructuradas.
Las estrategias presentadas aqu, la trazabilidad y el anlisis de la dependencia y de
corte, normalmente se utilizan para evaluar el impacto estimado a establecer mediante
la identificacin secundaria de cambios que resulten necesarios debido a los cambios
principales en el sistema. Ellos no estn muy adecuados para la identificacin de
impacto directo.
6.2.1.1 Trazabilidad /Anlisis de Dependencia
Anlisis de trazabilidad y anlisis de la dependencia implica el examen de las
relaciones entre las entidades en el software. Se diferencian en su alcance y nivel de
detalle; la trazabilidad de anlisis es el de las relaciones entre todos los tipos de SLO,
mientras que la dependencia es el anlisis de bajo nivel extrada del cdigo fuente [3].
Los requisitos de trazabilidad se discute ms en el Cap. 5.
Mediante la extraccin de las dependencias de cdigo fuente, es posible obtener
llamadas a grficos, estructuras de control, grficos de datos y as sucesivamente. Dado
que el cdigo fuente es la representacin exacta del sistema, cualquier anlisis basado
en que se puede predecir con mucha precisin el impacto de un cambio. El anlisis de
dependencia es tambin la estrategia ms madura para el anlisis de impacto
disponible[3]. El inconveniente de la utilizacin de cdigo fuente es que es no est
disponible hasta el final del proyecto, hace que el anlisis de dependencia estreche en
su campo de aplicacin. Cuando existen requisitos de trazabilidad hacia abajo de la
fuente, puede sin embargo, ser muy eficaz utilizar dependencias de cdigo fuente con el
fin de determinar el impacto de los cambios en los requerimientos. Un inconveniente es
que los sistemas muy grandes tienen cantidades masivas de dependencias de cdigo
fuente, que hacen que la dependencia Web sea difcil tanto para uso y como para
obtener una visin general[5].
El anlisis de Trazabilidad tambin requiere la presencia de vnculos de relacin entre la
SLO que se analizan. Tpicamente, estas relaciones son capturadas y especificadas
progresivamente durante el desarrollo (conocido como
trazabilidad pregrabada
). El
xito de trazabilidad anlisis depende en gran medida de la integridad y la coherencia de
las relaciones identificadas. Sin embargo, si la informacin de trazabilidad se registra
correctamente desde el principio del desarrollo, el anlisis puede ser muy poderoso.
Un enfoque comn para el registro de enlaces de trazabilidad es utilizar una matriz de
trazabilidad (Vase, por ejemplo, [20], [23] y [40]). Una matriz de trazabilidad es una
matriz donde cada fila y cada columna, corresponde a una SLO particular, por ejemplo
un requisito.
La relacin entre los dos SLO se expresa poniendo una marca donde la fila de la primera
SLO y la columna de la segunda SLO se cruzan. Tambin es posible aadir informacin
semntica a la relacin entre SLO. Por ejemplo, la relacin entre un requisito y un
componente arquitectnico puede ser ampliado para incluir informacin sobre si los
implementos de componentes el requisito totalmente, o slo parcialmente.
Ramesh y Jarke informan que las prcticas de requisitos actuales no abarcan totalmente
el uso de la informacin semntica, para aumentar la utilidad de las relaciones entre las
SLO [31]. Una relacin que indica que dos SLO afectan entre s, pero no la forma, estar
abierto a la interpretacin de todos los interesados
. Segn Ramesh y Jarke, diferentes
actores interpretan relaciones en diferentes formas sin informacin semntica . Por
ejemplo, un usuario puede leer una relacin como " implementado" mientras que un
desarrollador puede leer la misma relacin como " puts - restricciones -on"
Para ilustrar an ms la necesidad de la semntica en enlaces de trazabilidad, hemos
creado un ejemplo con seis SLO interconectados. La figura 6.3 muestra el SLO en una
conectividad grfico (izquierda), donde una flecha significa que la fuente de SLO afecta
el destino SLO. Por ejemplo, SLO 2 afecta, o tiene un impacto en, SLO1 y SLO 4.
El grfico de conectividad corresponde exactamente a una matriz de trazabilidad, se
muestra a continuacin en la figura. Una flecha en la matriz de trazabilidad indica que la
fila SLO afecta a la columna SLO. Tanto el grfico de conectividad como la matriz de
trazabilidad muestran el impacto directo o cambio principal si es necesario, mientras
que el impacto indirecto o cambio secundario es necesario, slo puede ser deducido por
la que atraviesa los enlaces de trazabilidad. Para sistemas con muchos SLO, la cantidad
de impacto indirecto se convierte rpidamente en un inmenso grfico de conectividad o
una matriz de trazabilidad difcil de deducir. Para visualizar mejor el impacto indirecto,
la matriz de trazabilidad se puede convertir en una matriz de alcanzabilidad, utilizando
un algoritmo 1 de cierre transitivo. La accesibilidad de la matriz para nuestro ejemplo es
tambin en la Fig. 6.3, mostrando que todos SLO finalmente tienen impacto en cada
otro SLO. En consecuencia, la matriz de accesibilidad para este ejemplo es de uso
limitado para la evaluacin de impacto indirecto. Bohner seala que este problema es
comn en contextos de software, a menos que se tome alguna accin para limitar el
rango de impacto indirecto [4].
Shahmehri et al. [33] aplicar la tcnica de depuracin y la prueba. Lenguajes POO como
C ++ son apoyados a travs de la labor del Consejo et al. Y sus tcnicas de corte en
lonchas para C ++ [36]. Las herramientas de seccionado se basan a menudo en tcnicas
de presentacin basados
en caracteres, que pueden hacer que sea ms difcil de analizar
dependencias, pero la presentacin visual de las secciones se puede aplicar para
impactar el anlisis como se muestra por Gallagher [15].
El corte arquitectnico fue presentado por Zhao [42], y es similar al programa corte en
que identifica una rebanada de la arquitectura que est sujeto a la propuesta cambio, y
uno que no lo es. A diferencia del programa convencional de corte, la arquitectura
slicing opera sobre la arquitectura de software de un sistema. Como tal, se pueden
emplear en el desarrollo temprano, antes se escriba el cdigo. La tcnica utiliza un
grfico de flujos de informacin con el fin de rastrear los componentes que pueden
verse afectados por el componente que se est cambiado. Adems, aquellos
componentes que puedan afectar a la componente que se cambiaron, tambin se
identifican. Esto significa que debe haber una especificacin de la arquitectura que
expone toda la informacin los flujos que contiene.
Las tcnicas de cortado pueden ser tiles en la ingeniera de requisitos para aislar el
impacto de algunos requisitos a cambiar por parte especfica del sistema. A fin de
proporcionar un punto de partida para el mtodo de los cortes, el impacto directo del
cambio debe ser primero a evaluar.
L
a clausura transitiva de un grafo es un grfico en el que se aade un borde entre los
nodos A y B si es posible llegar a B de A en el grfico original.
1
PAG 12 -14
Estrategias manuales:
Las estrategias de anlisis manuales de impacto no dependen tan fuertemente de
especificaciones estructurales como lo hacen sus contrapartes automatizables. En
consecuencia, existe el riesgo de que son menos precisos en sus predicciones de
impacto. Por el contrario, pueden ser mas fciles de introducir un proceso de gestin de
cambio y son en nuestra experiencia comnmente empleado en la industria sin tener en
cuenta su precisin.
Las estrategias presentadas aqu, utilizando diseo de documentacin y entrevistas, se
utilizan principalmente para la evaluacin del impacto inicial establecida mediante la
identificacin de impacto directo. La identificacin del impacto secundario es posible,
pero es mejor manejado por estrategias automatizables. Sealar que las estrategias
manuales como estn descritas se pueden utilizar para capturar enlaces de trazabilidad
entre SLOs para ser utilizado en el anlisis de trazabilidad.
6.2.2.1 Diseo de documentacin:
El diseo de documentacin viene de muchas formas diferentes, por ejemplo, como
bocetos de arquitectura, maquetas de arquitectura basadas en vistas, diagramas UML
orientados a objetos, descripciones textuales de componentes de sw y as
sucesivamente. La calidad de la documentacin de diseo depende del propsito para el
cual fue escrito, la frecuencia con la que se actualiza y la informacin que contiene. Es
muy comn en la industria de que la documentacin de diseo esta escrito al principio
de un proyecto solo para convertirse en un articulo de estanteria, o que la
documentacin se escribe despus del proyecto solo por el motivo de escribirlo. Para
realizar anlisis de impacto y determinar cmo un requisito nuevo o modificado afecta
el sistema basado en la documentacin de diseo requiere la documentacin para estar
al da y en consonancia con cualquier implementacin realizadas hasta la fecha. Adems
de un requisito previo para el uso de SLOs diseos encontrados en la documentacin. El
xito y la precisin de esta actividad depende de una serie de factores:
Conocimiento y habilidades de las personas que realizan el anlisis:
las personas con
poca penetracin en el sistema lo ms probable es que tenga problemas identificando el
impacto de requerimientos modificados en el sistema.
La disponibilidad de la documentacin: La documentacin que est "escondida" en los
ordenadores personales o almacenados en carpetas annimas puede pasar por alto en
el anlisis.
Cantidad de informacin transmitida en la documentacin
: bocetos de diseo simples
son comunes, pero no logran expresar la semntica de las conexiones entre clases o
componentes arquitectnicos. Eligiendo esquemas de denominacin o anotacin
incompatible hace que la tarea de anlisis sea arduo.
Documentacin clara y consistente: Documentacin Ambigua es abierta a la
interpretacin, es decir, por ejemplo, que el impacto de un cambio propuesto es, junto
con una gran incertidumbre, simplemente porque otra interpretacin habra cedido
diferente impacto.
si anteriormente se han tenido en cuenta los factores, anlisis de impacto de un cambio
puede llevarse a cabo mediante la identificacin de los SLOs diseos que implementan o
de cualquier otra manera depender de los requisitos afectados por el cambio. Otras
medidas que se pueden tomar para aliviar el esfuerzo de anlisis de impacto son:
construye una matriz que conecta las necesidades del cliente con caractersticas de
diseo. Un cambio a un requisito se puede asignar a disear funciones a travs de la
matriz DFC.
Cleland-Huang et al. et al. realizar anlisis de impacto en funcin de rendimiento medio
de trazabilidad basado en eventos [9]. En otras palabras, requerimientos estn
interconectados como editores de eventos suscribiendo modelos de rendimiento. Cada
vez que se propone un cambio en un requisito, los modelos de rendimiento pertinentes
son re-calculados. El anlisis del impacto resultante es posteriormente comparado con
restricciones en la especificacin de requerimientos. Si varios requerimientos estn
relacionados con el mismo modelo de desempeo, deben ser todos verificados contra el
anlisis de impacto.
PAG 15 - 16
obtener un rendimiento, el impacto puede ser expresado como la ejecucin del tiempo,
por ejemplo. Con base en el impacto y los pesos relativos de los escenarios, es posible
calcular valores globales (por ejemplo, el rendimiento y la ejecucin tiempo) para el
atributo de calidad que se est evaluando. Estos valores se pueden comparar con los
requisitos no funcionales correspondientes al atributo de calidad, con el fin de ver si se
cumplen o no. Adems, sirven como limitaciones sobre el alcance a la que los requisitos
no funcionales pueden cambiar antes de que una reorganizacin arquitectnica es
necesario. Adems, en caso de un cambio de requisito funcional, es posible para
incorporar el cambio en una arquitectura especulativa, vuelva a calcular el impacto de
los escenarios en el perfil de escenario, y ver si los requisitos no funcionales Todava se
cumplen o no.
6.4 Impacto Anlisis de mtricas
Las mtricas son tiles en anlisis de impacto por varias razones. Ellos pueden ser, por
ejemplo, ser utilizado para medir y cuantificar el cambio causado por un requisito nuevo
o cambiado en el punto de la actividad de anlisis de impacto. Las mtricas tambin se
pueden utilizar para evaluar la propio proceso de anlisis de impacto una vez que se han
aplicado los cambios. Esto es ilustrado en la Fig. 6.4, en la que se representan dos
puntos de medida; uno despus de los requisitos fase ha terminado y el diseo est a
punto de comenzar, y uno cuando la prueba tiene se ha completado. El uso de estos
puntos de medida, se puede capturar el impacto previsto (el primer punto) y
compararlo con el impacto real (el segundo punto).
Este tipo de la medicin es crucial para poder hacer un anlisis y aprender de las
experiencias con el fin de mejorar continuamente la capacidad de anlisis de impacto.
La figura simplifica e ilustra un ciclo de aprendizaje basado en un modelo de cascada
similares. Como se seal anteriormente,
el anlisis de impacto se puede utilizar
durante todo el ciclo de vida
con el fin de analizar las nuevas necesidades y los puntos
de medida se pueden aplicar en consecuencia: siempre que sea una prediccin que se
ha realizado y siempre que una implementacin se ha completado.
Los requisitos que son costosos en este sentido, pero ofrecen poco valor pueden, por
ejemplo, ser filtrados en beneficio de los requisitos que proporcionan ms valor, pero a
un costo menor.
El cambio de impacto se puede medir en base al conjunto de requisitos que se vean
afectados por el cambio. Por ejemplo, el nmero de requisitos afectado por un cambio
puede contarse con base en este conjunto. La complejidad de los requisitos afectados a
menudo determina la gravedad del cambio es y se puede medir de varias maneras:
Ejemplos son del tamao de cada requisito en trminos de puntos de funcin y las
dependencias de cada requisito en otros requisitos. Por otra SLO, las mtricas son
similares. Para la arquitectura y el diseo, medidas de impacto incluyen el nmero de
componentes afectados, el nmero de clases afectadas o mdulos, y el nmero de
mtodos afectados o funciones. Por cdigo fuente, los artculos de bajo nivel como
lneas afectadas de cdigo pueden ser medidos y el nivel de complejidad de los
componentes, clases, y mtodos se pueden medir utilizando mtricas estndares tales
como ciclomtica complejidad y las mtricas orientadas a objetos regulares. Para
determinar qu tan grave o costoso que un cambio es, es til para definir el impacto
factor.
Lindvall define los factores de impacto de la Tabla 6.1 para medir el impacto de un
cambio sugerido [25].
El factor de impacto se basa en hallazgos empricos en los que se
determin que los cambios en diferentes tipos de SLO se pueden utilizar como un
indicador de la magnitud del cambio.
Cuanto mayor sea el factor de impacto, ms
grave es la cambiar. Por ejemplo, los cambios que no afectan a ningn otro tipo de SLO
pero el diseo modelo de objetos son relativamente limitado en su alcance. Los cambios
que afectan al uso de los casos modelo son en lugar probable que requiera cambios que
estn relacionados con los fundamentos de la el sistema y son por lo tanto ms grandes
en su alcance. Adems, los cambios en el uso de los casos modelo lo ms probable es
que tambin implican cambios de todos los dems SLO que hacen este tipo de cambio
an ms grave.
PAG 17-18
tabla 6.1 factores de impacto.
factor de
impacto
impacto
descripcion
m1
cambio del
modelo de
objetos de
diseo .
m2
cambio de
modelo de
anlisis de
objetos.
estos
cambios
consideran
la
descripcin ideal o lgico del sistema .
un pequeo cambio aqu puede
generar un cambio en la arquitectura
del software ms grande que el
cambio en el modelo .
m3
cambiar el
modelo de
objetos de
dominio.
estos
cambios
consideran
el
vocabulario necesario en el sistema.
Un pequeo cambio aqu puede
generar gran cambio en la arquitectura
de software .
m4
cambiar el
modelo de casos
de uso .
los impactos . dos casos especiales son si AIS y estudio de impacto ambiental
slo se solapan en parte o no se superponen en absoluto, lo que tambin
indicara un fallo del mtodo de anlisis de impacto.
Celda B representa las clases cero que se prev que cambie, pero en realidad
permanecieron sin cambios. Un gran nmero aqu indicara una gran desviacin de la
prediccin.
Celda C representa las 64 clases que no se prev que cambie, pero result ser cambiado
despus de todo. Al igual que con las clulas B, un gran nmero en esta celda indica una
gran desviacin de la prediccin.
Celda D, por ltimo, representa las 30 clases que se prev que ser cambiado y que eran,
de hecho, cambi. Esto es una prediccin correcta. Un gran nmero en esta celda indica
una buena prediccin.
Hay varias maneras de analizar la bondad de la prediccin. Una manera es calcular el
porcentaje de predicciones correctas, que era (42 + 30) / 136 =
PAG 20
52,9%. Por lo tanto, la prediccin era correcta en aproximadamente la mitad de los
casos. Otra forma es utilizar el valor kappa de Cohen, que mide el acuerdo entre dos
grupos que van desde -1,0 hasta 1,0. La cifra de -1.0 significa incumplimiento total entre
los dos grupos, 1.0 significa el cumplimiento total y el 0,0 significa que el resultado no es
mejor que el puro azar [11]. El valor kappa en este caso es 0,22, lo que indica una
prediccin razonable. Nos referimos a [26] para ms detalles sobre los clculos kappa
para el ejemplo. Una tercera forma de evaluar la prediccin es comparar el nmero de
clases previstas para ser cambiado con el nmero de clases ha cambiado realmente. El
nmero de clases prev que ser cambiado en este caso result ser subestimada en gran
medida por un factor de 3. Por lo tanto, se identific slo alrededor de un tercio del
conjunto de clases modificados. Es, sin embargo, vale la pena notar que todas las clases
que se prev que se pueden cambiar en realidad cambiado.
El estudio analiz a continuacin el impacto previsto y real de cada requerimiento,
respondiendo a preguntas similares para cada requisito. Se organizaron los requisitos y
las clases que fueron afectados por estos requisitos de la siguiente manera: Para cada
requisito, el conjunto de clases predijo que ser cambiado, clases del conjunto de clases
modificados y la interseccin de los dos conjuntos, es decir, que fueron ambos
predijeron y cambiado. Adems, los conjuntos de clases que se predijeron pero no
cambiaron y se identifica el conjunto de clases que se han cambiado pero no predijo.
El anlisis mostr que en casi todos los casos, hubo una subestimacin en trminos de
nmero de clases. En resumen, el anlisis mostr que el nmero de clases cambiado
dividido por el nmero de clases predichos oscil de 1,0 a 7,0.
Por lo tanto, hasta 7 veces ms clases de lo previsto se cambiaron en realidad.
Estimacin de costos en la seleccin requisitos menudo se basa en la prediccin como lo
fue en el caso de Ericsson, lo que significa que los requisitos predijeron para causar el
cambio en slo unas pocas entidades se consideran menos costoso, mientras que los
Herramientas que lidian con cdigo fuente son mayormente usadas en el contexto de
mantenimiento de software, y son obviamente de uso limitado dentro del proyecto de
desarrollo. Natt och Dag han estudiado el anlisis de similitud automtica como un
medio para encontrar requerimientos duplicados en el desarrollo impulsado por el
mercado. Adems del campo original de aplicacin, ellos sugieren que su tcnica puede
ser usada para identificar relaciones de dependencia entre requerimientos, por ejemplo
que dos requerimientos tienen una relacin de o, o que varios requerimientos tratan
de funcionalidades similares. Cmo tratar con lenguaje natural de requerimientos es
ms explorado en el captulo 10. Herramientas que ayudan en la realizacin de anlisis
de impacto pueden ser sinnimos con los mtodos subyacentes. Mtodos que se basan
en el anlisis de trazabilidad son muy adecuados para la inclusin en herramientas que
tratan de predecir el impacto indirecto. Por ejemplo, Fasolino y Visaggio presentan
ANALYST, una herramienta que evala el impacto en modelos basados en
dependencia. Lee, presenta otra herramienta, ChAT, la cual calcula el efecto domin
causado por un cambio al sistema. Muchas de tales herramientas son comnmente
herramientas a prueba de conceptos, construidas para mostrar o dar soporte a un
algoritmo o metodologa particular. Lo que est faltando es la integracin de
herramientas de gestin del cambio en la corriente principal.
6.6 Futuro del Anlisis de Impacto:
La mayora de las estrategias de anlisis de impacto funcionan bajo el supuesto de que
los cambios slo afectan a la funcionalidad. Esto provoca que los cambios de impacto a
los requerimientos no funcionales sean mucho ms difciles de evaluar. Muchas veces
los cambios realizados pueden afectar indirectamente a los requerimientos no
funcionales, y all es donde justamente radica su dificultad de evaluacin. Ya existen
trabajos que abordan este tema (ver 9 y 21), pero aun as se necesita un estudio con
mayor nfasis, especficamente en el anlisis de impacto de los requisitos no
funcionales.
Como ya hemos sealado, un anlisis de impacto apunta, sobre todo al contexto de
mantenimiento de software. Hemos argumentado que el anlisis de impacto es una
actividad esencial tambin en contextos ingeniera de requerimientos, pues, un anlisis
de impacto con estrategias estndar, se puede aplicar a la mayora de los casos (por
ejemplo, enfoques de trazabilidad que se ejercen habitualmente para los requisitos).
Todava hay, sin embargo, la necesidad de realizar ms investigaciones centradas en los
aspectos de ingeniera de requisitos y anlisis de impacto, por ejemplo, la forma en que
se relacionan los requisitos con otros requisitos SLOs y cmo el cambio se propaga en
este contexto. La mayora de las estrategias automatizadas para el anlisis de impacto,
6.7 Resumen:
Anlisis de impacto es una parte importante de la ingeniera de requisitos ya que,
justamente, los cambios en el software, a menudo son iniciados por cambios en los
requisitos. Como el proceso de desarrollo se hace paso a paso, es posible que en
modelos como el de la cascada aparezcan nuevos requisitos, o requisitos que requieren
modificacin, como ya hemos mencionado, esto puede suceder en cualquier momento
del proceso de desarrollo, es por ello que el anlisis de impacto se convierte en una
parte integral de todas las fases de desarrollo de software. El anlisis de impacto es una
herramienta que se ha utilizado desde hace mucho tiempo, obteniendo buenos
resultados, aunque no necesariamente el uso de ese esta, resolver completamente la
problemtica ya que el problema no se resuelve slo con determinar con precisin el
efecto de un cambio propuesto. La necesidad de los profesionales de software, de
determinar qu se debe cambiar, con el fin de implementar los cambios de requisitos,
siempre ha estado presente. Los mtodos y estrategias clsicos para llevar a cabo el
anlisis de impacto son; la dependencia de anlisis, anlisis de trazabilidad y de corte. El
Trabajo de anlisis de impacto temprano se centr en la aplicacin de estos mtodos
y estrategias al cdigo fuente, con el fin de llevar a cabo el corte del programa y
determinar un efecto domin de cambios en el cdigo. Con el tiempo la ingeniera de
software a madurado, permitiendo que organizaciones dedicadas a este rubro tambin
lo hagan, mejorando sus procesos de produccin de software, sin embargo, ha dado
lugar a una necesidad de comprender cmo las solicitudes de cambio afectan a otros
SLOs, a su cdigo fuente, sus los requisitos y a sus mismos mtodos y estrategias
aplicadas. Los mtodos y estrategias tpicos actuales, se basan en el anlisis de la
trazabilidad o dependencia de la informacin, utilizando tcnicas de corte, consultas a
las especificaciones de diseo y dems documentacin, y adems entrevistar a los
desarrolladores con conocimientos. El entrevistar a los desarrolladores con
conocimientos, es probablemente la forma ms comn de adquirir informacin sobre
los efectos probables de requisitos nuevos o modificados. Las mtricas son tiles e
importantes en el anlisis de impacto por varias razones. Las mtricas pueden, por
ejemplo, ser utilizadas para medir y cuantificar el cambio causado por un requisito
nuevo o modificado en la actividad de anlisis de impacto. Las mtricas tambin se
pueden utilizar para evaluar el proceso de anlisis de impacto en s, una vez que se han
aplicado los cambios. En la determinacin de la gravedad de un cambio o que tan
costoso es, todos estos puntos son tiles para determinar el factor de impacto, ya que
indican la probabilidad de un cambio a un cierto tipo de SLO.
Para resumir
: El anlisis de impacto es una actividad crucial para apoyar la ingeniera de
requisitos. El formulario de resultados de anlisis de impacto se alimenta de muchas
actividades como la estimacin de los requerimientos de costo y priorizacin de las
necesidades del software. Estas actividades se alimentan directamente de la
planificacin de proyectos, es por ello que el anlisis del impacto se convierte en una
actividad central, en el xito del proyecto.