232
ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO EN INFORMACIÓN DE EN INFORMACIÓN DE EN INFORMACIÓN DE EN INFORMACIÓN DE TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES DE DISEÑO DE DISEÑO DE DISEÑO DE DISEÑO TESIS DE GRADO EN INGENIERÍA EN INFORMÁTICA FACULTAD DE INGENIERÍA UNIVERSIDAD DE BUENOS AIRES Tesista: Sr. de la Rosa, Martín Ramiro Tutor: Lic. Pablo Cosso

Análisis de Impacto Basado en Información de Trazabilidad ...materias.fi.uba.ar/7500/delarosa-tesisdegradoingenieriainformatica.pdf · examples of application over known methodologies

Embed Size (px)

Citation preview

ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO ANÁLISIS DE IMPACTO BASADO EN INFORMACIÓN DE EN INFORMACIÓN DE EN INFORMACIÓN DE EN INFORMACIÓN DE

TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES TRAZABILIDAD Y DECISIONES DE DISEÑODE DISEÑODE DISEÑODE DISEÑO

TESIS DE GRADO EN INGENIERÍA EN INFORMÁTICA

FACULTAD DE INGENIERÍA UNIVERSIDAD DE BUENOS AIRES

Tesista: Sr. de la Rosa, Martín Ramiro

Tutor: Lic. Pablo Cosso

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 2

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 3

Agradecimientos

El presente trabajo simboliza una etapa importante de mi vida y materializa

todo el esfuerzo realizado para alcanzar la profesión por la que tanta vocación

siento. Todo esto no hubiera sido posible sin la ayuda de las personas que me

rodean y a las cuales no quiero dejar de agradecer.

A mi familia por inculcarme la importancia de tener una profesión y generar

el desafío personal por alcanzarla. A los profesores que me formaron durante

todos estos años de estudio. A Santiago, Luján y Victor, mis compañeros de

estudio, por las revisiones, aportes de ideas y horas de estudio compartidas. Al

Licenciado Pablo Cosso por el esfuerzo dedicado como tutor de la presente tesis.

Y en especial a Mariela, mi amor, por hacerme saber que puedo contar con ella

para lo que sea.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 4

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 5

Resumen

Estimar el impacto provocado por un cambio determinado a un producto de software, es

una tarea preliminar en el proceso de mantenimiento. Es común que el responsable de

dicha tarea, al intentar predecir el impacto sobre el producto, cuente con pocos o ningún

elemento que facilite su trabajo. Sumado a esto, la falta de conexión o “gap” de

conocimiento existente entre las etapas de un proyecto de software, hacen que el diseño y

desarrollo no responda a las especificaciones funcionales. Se presenta, en este

contexto, un modelo de proceso que permite obtener consistencia en la documentación y

artefactos generados durante el proyecto, y ofrecer elementos de valor para facilitar la

estimación de impacto frente a la implementación de requerimientos de cambio. El

proceso se basa en la documentación de trazabilidad implícita y explícita que pueda

existir entre los diferentes artefactos presentes en cada una de las etapas del proyecto. Se

acompaña al proceso con lineamientos para una correcta clasificación de artefactos y

trazas, exponiendo ejemplos de aplicación sobre conocidas metodologías, como ser RUP

e ICONIX. La automatización de la documentación de trazabilidad es un elemento

diferenciador del resto de trabajos investigados. El trabajo incluye el diseño y desarrollo

de una herramienta para asistir a la ejecución de cada actividad del proceso planteado.

Finalmente se presentan detalles de la puesta en práctica del proceso sobre dos casos

prácticos, ofreciendo los resultados y conclusiones de análisis de impacto.

Palabras claves: análisis de impacto, trazabilidad, requerimiento de cambio,

workproduct, proceso, automatización.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 6

Abstract

To consider the impact brought by a change to a software product, is a preliminary task in

the maintenance process. It is common that the person in charge of this task, when trying

to predict the impact on the product, counts on few or no element that facilitates its work.

Added to this, the lack of connection or “gap” between the stages of a software project,

causes that the design and development do not respond to the functional specifications. In

this context, this work establishes a process model to obtain consistency in the

documentation and workproducts generated during the project, and to offer valuable

elements to facilitate the impact analysis of change requirements. The process is based on

the documentation of implicit and explicit traceability that can exist between

workproducts that are present in each one of the stages of the project. The process is

accompanied with guidelines for proper classification of workproducts and traces, giving

examples of application over known methodologies such as RUP and ICONIX. The

automation of the traceability documentation is a differentiator element from the rest of

investigated work. This thesis includes the design and development of a tool to attend the

execution of each activity of the raised process. Finally, details of the put into practice of

the process in two case studies are presented, offering the results and conclusions of

impact analysis.

Key words: impact analysis, traceability, change requirement, workproduct, process,

automation.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 7

Contenido

1 INTRODUCCIÓN __________________________________________________________ 11

1.1 GUÍA PARA LA LECTURA DE LA TESIS ___________________________________________ 11

1.2 ÁREAS DE DESENVOLVIMIENTO Y CONOCIMIENTO ________________________________ 13

1.3 PROBLEMÁTICA A RESOLVER __________________________________________________ 14

1.4 INVESTIGACIÓN PREVIA AL TRABAJO ___________________________________________ 15

1.5 MOTIVACIÓN DEL TRABAJO ___________________________________________________ 15

1.6 ALCANCE __________________________________________________________________ 16

1.7 HIPÓTESIS DEL TRABAJO _____________________________________________________ 16

1.8 CRITERIOS DE ÉXITO ________________________________________________________ 17

2 MARCO TEÓRICO – ESTADO DEL ARTE ____________________________________ 19

2.1 TERMINOLOGÍA _____________________________________________________________ 19

2.2 TRAZABILIDAD _____________________________________________________________ 20

2.2.1 LA NECESIDAD DE TRAZABILIDAD __________________________________________ 21

2.2.2 PRE-TRAZABILIDAD VS. POST-TRAZABILIDAD ________________________________ 22

2.2.3 DIMENSIONES DE TRAZABILIDAD ___________________________________________ 24

2.2.4 TRAZABILIDAD IMPLÍCITA BASADA EN DECISIONES DE DISEÑO ____________________ 25

2.2.5 FACTORES QUE INFLUYEN EN LA PRÁCTICA DE TRAZABILIDAD DE REQUERIMIENTOS __ 26

2.3 ANÁLISIS DE IMPACTO _______________________________________________________ 29

2.3.1 DEFINICIÓN – TERMINOLOGÍA RELACIONADA _________________________________ 30

2.3.2 ÁREAS DE ANÁLISIS DE IMPACTO ___________________________________________ 31

2.3.3 FACTORES QUE INFLUYEN EN LA PRÁCTICA DE ANÁLISIS DE IMPACTO ______________ 32

2.3.4 CLASIFICACIÓN DE WORKPRODUCTS LUEGO DE IMPLEMENTAR UN CAMBIO __________ 33

2.3.5 FRAMEWORK PARA LA COMPARACIÓN DE ENFOQUES DE ANÁLISIS DE IMPACTO ______ 34

2.3.6 PROCESO DE AI _________________________________________________________ 42

2.4 MÉTRICAS _________________________________________________________________ 44

2.4.1 IN-DEGREE / OUT-DEGREE ________________________________________________ 44

2.4.2 RIPPLE ________________________________________________________________ 45

2.5 METODOLOGÍAS - HERRAMIENTAS DE SOPORTE __________________________________ 46

2.5.1 TRAZABILIDAD EN ANÁLISIS _______________________________________________ 46

2.5.2 TRAZABILIDAD EN CÓDIGO ________________________________________________ 47

3 PROCESO AIT - ANÁLISIS DE IMPACTO BASADO EN TRAZABILIDAD ________ 49

3.1 DIAGRAMA DEL PROCESO ____________________________________________________ 50

3.2 ESPECIFICACIÓN DEL PROCESO ________________________________________________ 51

3.2.1 CATÁLOGO DE AGENTES, PRODUCTOS Y ACTIVIDADES _________________________ 51

3.2.2 ACTIVIDAD 1 – CONFIGURACIÓN DE TRAZABILIDAD ____________________________ 53

3.2.3 ACTIVIDAD 2 – DEFINICIÓN DE EXTRACTORES ________________________________ 55

3.2.4 ACTIVIDAD 3 – TRASPASO DE CONOCIMIENTO _________________________________ 57

3.2.5 ACTIVIDAD 4 – IDENTIFICACIÓN ___________________________________________ 59

3.2.6 ACTIVIDAD 5 – REVISIÓN _________________________________________________ 61

3.2.7 ACTIVIDAD 6 – ANÁLISIS DE IMPACTO ______________________________________ 63

3.3 ARQUITECTURA _____________________________________________________________ 65

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 8

4 AIT – CONFIGURACIÓN DE TRAZABILIDAD ________________________________ 67

4.1 CONFIGURACIÓN DE TRAZABILIDAD ____________________________________________ 68

4.1.1 CLASIFICACIÓN DE WORKPRODUCTS _______________________________________ 68

4.1.2 TRAZABILIDAD HORIZONTAL / VERTICAL ___________________________________ 69

4.1.3 ESPECIFICACIÓN DE LA CONFIGURACIÓN DE TRAZABILIDAD _____________________ 70

4.1.4 CONFIGURACIÓN DE TRAZABILIDAD VERTICAL _______________________________ 71

4.1.5 CONFIGURACIÓN DE TRAZABILIDAD HORIZONTAL ____________________________ 78

5 AIT - EXTRACTORES DE TRAZABILIDAD ___________________________________ 81

5.1 SINCRONIZACIÓN DE TRAZABILIDAD AUTOMATIZADA _____________________________ 82

5.2 ETAPA DE ANÁLISIS – ENTERPRISE ARCHITECT EXTRACTOR ________________________ 83

5.2.1 TRAZABILIDAD ENTRE REQUERIMIENTOS ____________________________________ 84

5.2.2 TRAZABILIDAD ENTRE REQUERIMIENTOS Y CASOS DE USO ______________________ 84

5.2.3 TRAZABILIDAD ENTRE CASOS DE USO Y VISTAS ______________________________ 85

5.3 ETAPA IMPLEMENTACIÓN _____________________________________________________ 85

5.3.1 CAPA DE VISTA Y CONTROL – STRUTS EXTRACTOR ___________________________ 86

5.3.2 CAPA CONTROL, MODELO E INFRAESTRUCTURA - JAVA DEPENDENCY EXTRACTOR __ 87

5.3.3 CAPA MODELO E INFRAESTRUCTURA - DOCLET EXTRACTOR ____________________ 87

5.3.4 CAPA INFRAESTRUCTURA – DAO EXTRACTOR _______________________________ 89

5.3.5 CAPA INFRAESTRUCTURA – DB GENERIC EXTRACTOR _________________________ 90

5.3.6 CAPA INFRAESTRUCTURA – ORACLE EXTRACTOR _____________________________ 91

5.4 RESUMEN __________________________________________________________________ 92

6 AIT - ANÁLISIS DE IMPACTO _______________________________________________ 95

6.1 ANÁLISIS DE IMPACTO ITERATIVO ______________________________________________ 95

6.2 CLASIFICACIÓN DEL ENFOQUE _________________________________________________ 97

6.3 ESPECIFICACIÓN DEL CAMBIO _________________________________________________ 99

6.4 ESPECIFICACIÓN DEL RESULTADO DE AI ________________________________________ 99

6.5 CEITWP VS. TWP ___________________________________________________________ 101

6.6 CIRTWP VS. CEITWP _________________________________________________________ 102

6.7 GRÁFICOS DE IMPACTO ______________________________________________________ 102

6.7.1 DISTRIBUCIÓN DEL CEI SEGÚN DISTANCIA DE IMPACTO _______________________ 103

6.7.2 DISTRIBUCIÓN DEL CEI SEGÚN TIPO DE WORKPRODUCT _______________________ 104

6.7.3 CEITWP VS. TWP ______________________________________________________ 105

6.7.4 CEI ACUMULADO POR DISTANCIA ________________________________________ 105

6.7.5 CEITWP VS. CIRTWP ____________________________________________________ 107

7 AIT - HERRAMIENTA DE SOPORTE ________________________________________ 109

7.1 ARQUITECTURA ____________________________________________________________ 110

7.2 CLASES DE DOMINIO ________________________________________________________ 111

7.3 FUNCIONALIDADES _________________________________________________________ 113

7.3.1 VISUALIZACIÓN DE TRAZABILIDAD________________________________________ 113

7.3.2 DOCUMENTACIÓN DE REQUERIMIENTOS DE CAMBIO __________________________ 117

7.3.3 OBTENCIÓN DE GRÁFICOS Y MÉTRICAS _____________________________________ 118

7.3.4 CONSOLIDACIÓN DE INFORMACIÓN DE TRAZABILIDAD ________________________ 118

7.3.5 CONFIGURACIÓN DE TRAZABILIDAD ______________________________________ 119

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 9

7.3.6 CONFIGURACIÓN DE EXTRACTORES ________________________________________ 119

7.3.7 ANÁLISIS DE IMPACTO ITERATIVO _________________________________________ 119

8 CASO PRÁCTICO I _______________________________________________________ 121

8.1 PARALELISMO CON EL PROCESO RUP _________________________________________ 121

8.2 CONFIGURACIÓN DE TRAZABILIDAD ___________________________________________ 122

8.3 EXTRACTORES DE TRAZABILIDAD _____________________________________________ 124

8.4 TRASPASO DE CONOCIMIENTO AL EQUIPO DE PROYECTO __________________________ 124

8.5 IDENTIFICACIÓN DE TRAZAS Y WORKPRODUCTS _________________________________ 125

8.6 ANÁLISIS DE IMPACTO ______________________________________________________ 126

8.7 CONCLUSIONES ____________________________________________________________ 165

9 CASO PRÁCTICO II _______________________________________________________ 167

9.1 GENERALIDADES DEL PROYECTO _____________________________________________ 167

9.1 CONFIGURACIÓN DE TRAZABILIDAD ___________________________________________ 168

9.2 EXTRACCIÓN DE TRAZABILIDAD ______________________________________________ 170

9.3 IDENTIFICACIÓN DE TRAZAS Y WORKPRODUCTS_________________________________ 171

9.4 ANÁLISIS DE IMPACTO ______________________________________________________ 172

9.5 CONCLUSIONES ____________________________________________________________ 176

9.5.1 CAMBIOS DEL TIPO 1 ___________________________________________________ 176

9.5.2 CAMBIOS DEL TIPO 2 ___________________________________________________ 178

10 CONCLUSIONES – TRABAJO FUTURO _____________________________________ 181

11 ANEXO __________________________________________________________________ 185

11.1 ANEXO I: DETALLES DEL CASO PRÁCTICO I ____________________________________ 185

11.1.1 GENERALIDADES DEL PROYECTO ________________________________________ 185

11.1.2 OBJETIVO DEL PROYECTO ______________________________________________ 186

11.1.3 MÓDULOS DEL SISTEMA ________________________________________________ 187

11.1.4 REQUERIMIENTOS DEL SISTEMA _________________________________________ 187

11.2 ANEXO II: FRAMEWORK PARA PROYECTOS BASADOS EN UML - HERRAMIENTA: SHARPTRACE ___________________________________________________________________ 189

11.3 ANEXO III: TRAZABILIDAD ENRIQUECIDA - HERRAMIENTA: DOORS _______________ 193

11.4 ANEXO IV: ESTRATEGIAS DE TRAZABILIDAD BASADAS EN CASOS DE USO -

HERRAMIENTA: RATIONAL ROSE Y RATIONAL REQUISITEPRO __________________________ 196

11.4.1 SOLAMENTE CASOS DE USO _____________________________________________ 198

11.4.2 CASOS DE USO INDUCIDOS A PARTIR DE LAS FUNCIONALIDADES ________________ 199

11.4.3 EL MODELO DE CASOS DE USO ES UNA INTERPRETACIÓN DE LA ESPECIFICACIÓN DE

REQUERIMIENTOS DE SOFTWARE __________________________________________ 199

11.4.4 SIN CASOS DE USO ____________________________________________________ 200

11.4.5 EL MODELO DE CASOS DE USO DEFINE LAS FUNCIONALIDADES DEL PRODUCTO _____ 201

11.5 ANEXO V: PROCESO RUP ___________________________________________________ 205

11.5.1 MEJORA ITERATIVA ___________________________________________________ 205

11.5.2 FASES DEL CICLO DE VIDA ______________________________________________ 205

11.5.3 ITERACIONES ________________________________________________________ 206

11.5.4 DISCIPLINAS _________________________________________________________ 206

11.6 ANEXO V: PROCESO ICONIX ________________________________________________ 209

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 10

11.6.1 VENTAJAS QUE ICONIX APORTA AL PROYECTO ____________________________ 211

11.6.2 TEORÍA DEL PROCESO _________________________________________________ 211

11.6.3 ETAPAS DEL PROCESO ________________________________________________ 212

11.7 ANEXO VI: DOMAIN-DRIVEN DESIGN __________________________________________ 221

11.7.1 SEPARACIÓN DEL DOMINIO ____________________________________________ 224

11.8 ANEXO VII: REQUERIMIENTOS ESTRUCTURADOS – HERRAMIENTA: OPTIMAL TRACE _ 227

12 REFERENCIAS ___________________________________________________________ 229

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 11

1 Introducción

1.1 Guía para la lectura de la tesis

Para facilitar al lector se presenta a continuación una guía de lo

expuesto en cada uno de los capítulos del presente trabajo.

Introducción: en este primer capítulo se ofrece una descripción de

la problemática y su importancia, el carácter de la misma en base a

investigación previa, la motivación que se tuvo en brindar elementos para

resolverla, las hipótesis a seguir y finalmente los criterios de éxito.

Marco Teórico - Estado del Arte: este capítulo refleja la

información recogida que se utilizó para establecer la situación de los

trabajos de investigación y desarrollo sobre el área particular en la que se

plantea y relaciona la problemática analizada. A partir de citas

bibliográficas se establecen los siguientes puntos:

• La terminología utilizada en el estado del arte.

• Definición de trazabilidad y análisis de impacto, conceptos a ser

manejados durante todo el trabajo como parte de la solución

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 12

propuesta. Además, se cubren los aspectos principales de cada

metodología.

• Factores que influyen tanto para la práctica de trazabilidad como

de análisis de impacto.

• Métricas halladas para la evaluación de enfoques de análisis de

impacto. Estas serán puestas en práctica en la solución

propuesta.

• Metodologías y herramientas relacionadas con la tesis.

Proceso AIT - Análisis de Impacto basado en trazabilidad: en

este capítulo se presenta la especificación del proceso AIT, siendo el

marco central de la solución propuesta a la problemática planteada. Cada

una de sus actividades será analizada en detalle en capítulos posteriores.

AIT - Configuración de Trazabilidad: se definen los objetivos de la

actividad "Configuración de Trazabilidad" dentro del proceso AIT y sus

conceptos más importantes:

• Clasificación de los workproducts de un sistema.

• Definición de trazabilidad horizontal y vertical en el marco del

proceso AIT.

• Medio para la especificación de la configuración de trazabilidad

de un proyecto.

• Ejemplos de configuraciones de trazabilidad sobre diferentes

metodologías (RUP, ICONIX, Domain-Driven Design,

Requerimientos Estructurados)

AIT - Extractores de Trazabilidad: se explica la importancia de

automatizar la documentación de trazabilidad en un proyecto de software

y se definen a los extractores como elemento diferenciador respecto a

otros enfoques. A modo de ejemplo se presentan implementaciones de

extractores para dar una idea exhaustiva al lector de la puesta en práctica

y alcance de los mismos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 13

AIT - Análisis de Impacto: capítulo focalizado en la actividad de

análisis de impacto, especificando los siguientes puntos:

• La manera de llevarla adelante.

• Templates para la especificación de requerimientos de cambio y

resultados de análisis de impacto.

• Caracterización de cada uno de sus atributos en base a una

publicación investigada y presentada en el capítulo de estado del

arte.

• Métricas y gráficos para la medición y toma de decisiones sobre

los resultados obtenidos.

AIT - Herramienta de Soporte: se presenta a ImpactTrace, una

herramienta diseñada y desarrollada para dar soporte al proceso AIT. Sus

funcionalidades surgieron en base a comparación con otras herramientas

investigadas y a lo que los casos prácticos indicaron como necesario para

llegar a resultados correctos. Se define su arquitectura y diseño, y se

caracteriza cada una de sus funcionalidades en base a la teoría

presentada en capítulos anteriores.

Caso Práctico I y II: estos capítulos ofrecen al lector ejemplos

prácticos de la ejecución del proceso AIT durante dos proyectos de

software. Se realizan y especifican diferentes requerimientos de cambio

con sus respectivos análisis de impacto concluyendo sobre la eficiencia

del enfoque presentado.

1.2 Áreas de desenvolvimiento y conocimiento

Entiendo que la introducción de este trabajo debe incluir una

descripción resumida de mis áreas de desenvolvimiento y conocimiento

con la finalidad de ofrecer al lector un panorama de mis intereses dentro

de la Ingeniería de Software.

Durante la cursada de la carrera de grado de Ingeniería en

Informática y elaboración del presente trabajo, he atravesado por diversas

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 14

experiencias laborales. En las mismas me desarrollé en actividades

relacionadas al área de “Desarrollo de Software” o comúnmente hoy en

día denominada “Software Factory”, participando en grupos

multidisciplinarios de diversos proyectos con roles de desarrollador y

arquitecto técnico.

En cuanto a tareas de desarrollo, he trabajado tanto sobre

arquitecturas Cliente-Servidor como arquitecturas Web, haciendo uso de

diversos lenguajes de programación como ser: c, c++, c#, .ASP, .Net y

fundamentalmente Java en los últimos cuatro años.

En tareas de diseño o arquitectura, mis tareas principales podrían

resumirse en:

- el análisis y planteo de arquitecturas viables,

- selección de frameworks para la propia construcción,

- elaboración de documentación UML, y

- desarrollo de componentes de base.

1.3 Problemática a resolver

Durante mi desenvolvimiento y experiencia laboral, he detectado dos

falencias que resumen la problemática y causa principal del presente

trabajo.

La primera falencia detectada es la falta de conexión o “gap” de

conocimiento existente entre las etapas de análisis, diseño y

desarrollo de un proyecto de software. Es común encontrar análisis y

especificaciones funcionales de sistemas que no responden a la

arquitectura, diseño y tecnología utilizada, así como también fragmentos

de código que no implementan requerimientos documentados.

La segunda falencia hallada podría resumirse en la falta de

herramientas, conocimiento y metodologías que poseen los

encargados del mantenimiento al momento de estimar el impacto

sobre el proyecto, producto de la implementación de un

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 15

requerimiento de cambio. Estimar el impacto provocado por un cambio

determinado a un software, es una tarea preliminar en el proceso de

mantenimiento. Es común que el encargado del mantenimiento al intentar

predecir el impacto sobre el software se encuentre con pocos, o en

ocasiones, ningún elemento que facilite su tarea. Por lo general se termina

analizando la dependencia a nivel de código existente entre los diferentes

componentes que integran el mismo. Sumado a esto, la alta rotación de

personal que existe hoy en día en empresas de desarrollo de software

hace que el conocimiento propio de la construcción y diseño se pierda,

haciendo aún más difícil dicha tarea.

Esta última falencia entiendo se debe principalmente a dos causas.

La primera es la falta de documentación, que hace más tedioso entender

cómo se ha realizado y actualizado un sistema, aumentando así la

posibilidad de olvidar detalles de diseño y código. La segunda razón, no

menos importante, es que, al implementar un cambio sobre un módulo se

debe tener en consideración la relación entre ese módulo y el resto del

sistema, ya que muchas veces existen relaciones complejas entre los

componentes de software que integran un sistema.

1.4 Investigación previa al Trabajo

Como resultado de la investigación llevada adelante durante la

preparación del ante-proyecto de este trabajo, se encontraron dos

conceptos importantes que serán utilizados para ofrecer una solución a

las falencias que citamos en la sección previa. Ellos son: trazabilidad y

análisis de impacto. Ambos conceptos serán explicados en la sección

2.1; se aconseja su lectura para lograr entender el alcance e hipótesis

propuestos.

1.5 Motivación del Trabajo

En respuesta a la problemática planteada surge como motivación del

trabajo:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 16

- que la documentación y artefactos generados durante las

distintas etapas de un proyecto sean consistentes, y

- ofrecer elementos de valor para facilitar la estimación del impacto

y toma de decisiones frente a la implementación de

requerimientos de cambio.

1.6 Alcance

En este contexto, el propósito de este trabajo es proponer un modelo de

proceso que permita administrar documentación efectiva de trazabilidad entre

artefactos de software, con el fin de posibilitar un efectivo análisis de impacto

y, a su vez, mantener consistentes los modelos de análisis, diseño y

desarrollo. De aquí en adelante me referiré a un modelo como el conjunto de

artefactos y documentación que pueda generarse durante una etapa

específica de un proyecto de software.

Además este trabajo persigue la idea de que la efectividad del proceso

está basada en las herramientas sobre cual se ejecute. Por lo tanto el proceso

planteado será acompañado del diseño y desarrollo de una herramienta que

dé soporte al mismo.

1.7 Hipótesis del trabajo

El trabajo estará guiado por la siguiente hipótesis:

Si se mantiene durante el desenvolvimiento de un proyecto de software

documentación adecuada de información de trazabilidad entre los artefactos

que lo integran, esto permitiría:

a) Un análisis de impacto eficiente, en base al cual es posible

realizar estimaciones más acertadas del impacto producto de la

implementación de un requerimiento de cambio.

b) Mantener consistentes los modelos de análisis, diseño y

desarrollo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 17

1.8 Criterios de Éxito

Los resultados del trabajo serán producto de la experimentación del

proceso planteado en dos casos prácticos seleccionados.

Siendo que el proceso está totalmente basado en la trazabilidad que se

pueda definir entre los artefactos de un proyecto de software, definiremos dos

criterios para verificar el éxito del trabajo:

- Un criterio cuantitativo, ofreciendo resultados de diversos análisis de

impacto sobre requerimientos de cambio que se planteen sobre los

casos prácticos seleccionados. Dichas estimaciones de impacto

serán finalmente contrastadas contra el impacto real. Este criterio

dará respuesta al inciso a) de la hipótesis.

- Un criterio cualitativo, dando a conocer la trazabilidad documentada

entre los modelos para responder al inciso b) de la hipótesis.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 18

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 19

2 Marco teórico – Estado del arte

En este capítulo se reflejará la información investigada y utilizada para

establecer la situación actual de los trabajos encontrados sobre el área

particular de la problemática a resolver.

2.1 Terminología

Durante la presente tesis se hará uso de los siguientes términos:

Trazabilidad de requerimientos: se refiere a la habilidad de poder

describir y seguir la vida de un requerimiento en ambas direcciones, hacia

delante y hacia atrás, es decir, a través de su origen y especificación, hasta

su implementación y uso, así como también durante su constante

refinamiento (Gotel & Finkelstein, 1994).

Análisis de Impacto: es la tarea de estimar que será afectado en el

software y documentación relacionada si un cambio propuesto es realizado.

La información resultante puede ser utilizada para planear los cambios,

agruparlos en tipos, tomar decisiones, y rastrear los efectos de los mismos.

Resumiendo, un efectivo análisis de impacto provee visibilidad de los efectos

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 20

potenciales que puedan surgir antes de que los cambios sean implementados

(Bohner & Arnold, 1996).

Requerimiento de software: capacidad que necesita el usuario para

alcanzar un objetivo u obligación de cierto componente de software para

cumplir con cierto contrato, estándar, especificación o cualquier otra

formalidad impuesta por alguna documentación (Dean & Don, 1999).

Cambio de requerimiento: en este trabajo se entenderá por cambio a

cualquier modificación a un requerimiento existente o al agregado de un

nuevo requerimiento que pueda o no modificar al resto.

Workproduct: representa cualquier componente / artefacto de software

que requiere ser mantenido o creado nuevamente, cuando los componentes

en cuales él se basa sufren cambios.

Stakeholder: cualquier persona que puede verse afectada debido a la

implementación de un nuevo sistema o aplicación.

2.2 Trazabilidad

La vida de un requerimiento de software puede ser documentada desde

su origen, donde es creado debido a la necesidad del cliente, hasta la

implementación de los workproducts que finalmente conforman el producto de

software que lo satisface. Es así que una traza establece una relación entre

dos workproducts (O'Neal, 2003).

El problema de mantener la trazabilidad en un proyecto de desarrollo

puede verse como el problema de mantener las relaciones relevantes entre

los workproducts desarrollados durante el proceso (Wieringa, 1995).

A su vez, estos workproducts pueden variar entre los requerimientos, el

diseño y la implementación.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 21

2.2.1 La necesidad de trazabilidad

A continuación se agrupan los beneficios que se pueden obtener a partir

de utilizar información de trazabilidad, según las diferentes necesidades de

los stakeholders involucrados en el desarrollo de software (Ramesh,

Harrington, Rondeau, & Edwards, 1993):

Líder de proyecto: cuando los requerimientos están vinculados con los

workproducts que los satisfacen, entonces:

• Se puede estimar el impacto de un cambio de requerimiento.

• Los conflictos entre requerimientos pueden ser descubiertos con

anterioridad y se pueden evitar demoras en la entrega del

producto.

• Se pueden identificar los requerimientos que no hayan sido

satisfechos por la implementación, y se puede estimar el trabajo

para realizarlos.

Diseñador / Arquitecto: si se registran los diferentes resultados del

diseño, la justificación de dichos resultados, las alternativas consideradas y lo

asumido para la toma de decisiones, junto a enlaces que vinculen los

diferentes requerimientos con el diseño, esto permite:

• Facilitar la verificación de que el diseño satisface los

requerimientos.

• Una visibilidad del impacto sobre el diseño provocado por un

cambio de requerimiento.

• Lograr que un diseñador ajeno al diseño del producto entienda el

porqué de una decisión de diseño.

• Optar por la mejor alternativa de cambio, persiguiendo minimizar

el impacto sobre el diseño actual, reduciendo el esfuerzo final de

implementación.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 22

Encargado de Mantenimiento:

• Descubrir dependencias y conflictos entre requerimientos,

logrando estimar el impacto frente a un cambio sobre otros

requerimientos.

• Lograr un mejor entendimiento de todo el sistema, abarcando

todos sus componentes y relaciones de dependencia,

implementando cambios sin degradar el diseño original.

• Estimar el impacto en la implementación debido a un cambio de

requerimientos.

2.2.2 Pre-Trazabilidad vs. Post-Trazabilidad

En el momento de documentar la especificación de requerimientos, la

trazabilidad de los mismos se separa en dos áreas: pre-trazabilidad y post-

trazabilidad. La pre-trazabilizad se basa en la información relacionada con la

generación de un requerimiento, antes de que el mismo sea documentado. En

cambio, la post-trazabilidad relaciona a un requerimiento, una vez

documentado en la especificación, con todos los workproducts que satisfacen

el mismo.

Según la referencia bibliográfica (Gotel & Finkelstein, 1994):

Pre-trazabilidad: se refiere a los aspectos de la vida de un

requerimiento antes de su inclusión en la especificación de requerimientos.

Post-trazabilidad: se refiere a los aspectos de la vida de un

requerimiento que resultan debido a la inclusión del mismo en la

especificación de requerimientos.

La pre-trazabilidad provee un método para documentar la fuente de los

requerimientos, específicamente las necesidades del negocio y decisiones

políticas que llevaron a la creación de los mismos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 23

Stakeholder

Regla de Negocio

Necesidad del Negocio

Especificación de Requerimientos

Backward from Requirements

Forward to Requirements

La post-trazabilidad, en cambio, ofrece:

• Visibilidad de cómo un requerimiento es satisfecho en el software,

identificando todos los workproducts involucrados.

• Conocer las causas del porque la existencia de un workproduct en

particular, y a que requerimiento responde el mismo.

Especificación de RequerimientosDocumento de

Diseño

Caso de Uso

System

Constraint

Backward to Requirements

Forward from Requirements

Este trabajo hará especial hincapié en la post-trazabilidad como

asistencia fundamental a la actividad de análisis de impacto.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 24

2.2.3 Dimensiones de Trazabilidad

Se pueden distinguir diferentes dimensiones de trazabilidad (Bianchi,

Visaggio, & Fasolino, 2000):

La primer dimensión distingue entre trazabilidad horizontal y vertical,

dependiendo de si los ítems relacionados por las trazas pertenecen al mismo

modelo (vertical) o a diferentes (horizontal).

Una segunda dimensión toma en cuenta los tipos de trazas que

relacionan los ítems, pudiendo ser trazas explícitas o implícitas.

Las explícitas se basan en relaciones pre-establecidas de alguna

manera. El usuario es el responsable de señalar las dependencias entre

workproducts, estableciendo las trazas.

Las implícitas son utilizadas cuando no existen trazas explícitas. A

diferencia de las trazas explícitas, las implícitas no requieren de un esfuerzo

para ser documentadas ya que se encuentran en forma intrínseca en el

proyecto.

La técnica “naming trace” describe una manera a través de la cual a

partir de los nombres de entidades se logra trazabilidad entre el diseño y el

código en software orientado a objetos (Fiutem & Antoniol, 1998).

Una traza implícita puede ser derivada en base a conocimiento del

sistema. Surge entonces una tercera dimensión dependiendo de si dicho

conocimiento es estructurado o semántico.

Se habla de conocimiento estructurado cuando las relaciones entre los

workproducts surgen en base a dependencias sintácticas entre los mismos.

Un ejemplo de trazas estructuradas son las herencias y asociaciones entre

clases en programación orientada a objetos.

El conocimiento semántico se basa en el conocimiento del dominio del

sistema y de cómo el mismo fue construido. Básicamente está integrado por

decisiones de diseño tomadas durante el proyecto de construcción del

software. El mismo es más difícil de verificar y obtener. Este tipo de

conocimiento permite definir trazas del tipo cognitivas.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 25

En la siguiente tabla, se intenta resumir las diferentes dimensiones de

trazabilidad explicadas:

Dimensión Categorías

D1 Vertical Horizontal

D2 Implícita Explícita

D3 Estructurado Cognitivo

Se le dará suma importancia a lograr automatizar la documentación de

trazabilidad implícita existente en un proyecto.

2.2.4 Trazabilidad implícita basada en decisiones de diseño

Como se mencionó en la sección anterior, las decisiones de diseño

pueden producir conexiones implícitas (trazas cognitivas) entre aquellos

componentes de software, de diseño o código, que no es posible definir trazas

del tipo estructurado.

Se han realizado experimentos cuyos resultados sugieren que si se

registran las decisiones de diseño de manera adecuada, esto permite un

análisis de impacto más eficiente y a una mejora general en la etapa de

mantenimiento de software (Abbattista, Lanubile, Mastelloni, & Visaggio,

1994).

Durante la evolución de un software se toman decisiones de diseño que

con frecuencia no son documentadas. Registrar dichas decisiones es la clave

para reducir la distancia (“gap”) de conocimiento del sistema entre la gente

que lleva a cabo el mantenimiento y la encargada de su desarrollo / diseño. El

concepto de registro de una decisión de diseño puede entenderse como el

conjunto de información que permite el desenvolvimiento de actividades

posteriores a la etapa de desarrollo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 26

Desafortunadamente las decisiones de diseño no son almacenadas o

actualizadas en la documentación final de un sistema. Este tipo de

información es difícil de obtener debido a que por lo general no está

relacionada con el código. Finalmente, la gente encargada del mantenimiento

se ve obligada a realizar exhaustivas inspecciones de código antes de realizar

un cambio, lo que lleva a demoras y por lo tanto a un costo involucrado.

Este trabajo atacará las dificultades y falencias señaladas en la

bibliografía dando especial importancia a la documentación de:

- las decisiones de diseño y,

- la trazabilidad de cada una de ellas con los componentes

de análisis y desarrollo.

2.2.5 Factores que influyen en la práctica de trazabilidad de requerimientos

Existen diferentes factores que influyen en la actividad de trazabilidad de

requerimientos. Dichos factores son clasificados en organizacionales, técnicos

y ambientales.

(Ramesh B. , 1998), en base a estudios realizados en diferentes

organizaciones distingue claramente dos grupos que llevan a cabo la

actividad de documentar la trazabilidad: un grupo integrado por personas que

simplemente hacen un uso esporádico de la trazabilidad de requerimientos,

generalmente viéndose obligados por cuestiones impuestas por los clientes

(low-end users) y otro en el cual la actividad es parte esencial de los procesos

de Ingeniería de Software para obtener mejoras significativas en la calidad de

los productos (high-end users).

A modo de resumen, a continuación se detallan los conceptos

principales que, según Ramesh, diferencian a los low-end users y high-end

users al momento de practicar la actividad de trazabilidad de requerimientos:

Tipos de trazas: los low-end users no suelen capturar enlaces

cognitivos (cuestiones de diseño por ejemplo), relaciones racionales entre

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 27

componentes de software o la evolución progresiva de dichos componentes.

En cambio los high-end users emplean esquemas de trazabilidad mucho más

ricos en información, permitiendo un razonamiento acerca del porqué y para

qué de cada traza.

Herramientas de trazabilidad: ambos grupos utilizan herramientas del

tipo CASE para llevar a cabo la actividad. Sin embargo, es común que cada

herramienta se especialice en cierta fase del ciclo de vida de un proyecto (por

ej. DOORS para la Administración de Requerimientos) y que la integración

entre ambas no esté provista comercialmente. Los high-end users se

diferencian en implementar tecnología propia con el fin de reducir el “gap”

entre dichas herramientas.

Contexto organizacional: factores organizaciones producen que, los

low-end users vean a la actividad como una obligación impuesta por los

clientes y sponsors del proyecto para cumplir con cierto estándar. Por otro

lado, los high-end users ven a la trazabilidad como un eslabón fundamental

para alcanzar una mejora en la calidad de sus productos.

Responsables: el mismo equipo de trabajo es el que lleva a cabo la

actividad en organizaciones con high-end users. En cambio, los low-end users

suelen asignar recursos externos al proyecto para la realización de la tarea,

sin prácticas o procesos definidos.

Problemas: los low-end users ven el resultado de la trazabilidad como

documentos para satisfacer al cliente o cumplir cierto estándar. Tienen la

visión de una actividad costosa, sin beneficios tangibles y por lo general en

contra de los objetivos corporativos. Los high-end users toman a la

trazabilidad como un mecanismo para el perfeccionamiento y seguimiento de

todo el proceso de desarrollo.

Objetivos: los high-end users señalan diferentes objetivos a perseguir

mediante la trazabilidad, como ser un mejor entendimiento de todas las

especificaciones de un componente mediante la captura de decisiones de

diseño.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 28

Métodos: los métodos utilizados por los low-end users suelen ser

documentos estáticos, como ser matrices de trazabilidad, documentación que

no es actualizada a medida que el desarrollo evoluciona. Los high-end users,

en cambio, poseen metodologías bien definidas para llevar a cabo la

trazabilidad durante todo el ciclo de vida de los proyectos. Logran reconocer

cuándo se pierde trazabilidad vertical, entre un componente en una fase del

ciclo de vida y la siguiente. Reconocen la necesidad de información de

trazabilidad dinámica que refleje el real estado del sistema en cualquier punto

del ciclo de vida del proyecto.

Costo: Mientras los high-end users ven a la trazabilidad como una

inversión que es devuelta a lo largo de todo el ciclo de vida, los low-end users,

lo toman como un overhead al proyecto.

Alcance: las organizaciones poco maduras suelen capturar información

de trazabilidad de manera uniforme para todos los requerimientos. Esto puede

ser llevado a cabo cuando los esquemas de trazabilidad son lo

suficientemente simples como para no representar un costo muy elevado en

cuanto a tiempo se refiera. Los high-end users a menudo reconocen que no

todos los requerimientos son iguales, en términos a su importancia y

significado, con lo cual, mantienen trazabilidad detallada sólo para aquellos

que sean de misión crítica, de manera de mantener los costos bajo control y

obtener beneficios comparables.

Estrategia de implementación: La trazabilidad en organizaciones

maduras suele ser lograda de manera incremental, con un adecuado

entrenamiento y soporte.

Finalidad de la información: los high-end users indican la importancia

de un uso debido de la información de trazabilidad. La misma no debe

utilizarse como elemento para amenazar al personal. Intentar medir la

performance de la actividad en base a la cantidad de información producida

es un enfoque que no debe ser tomado como correcto. Una manera correcta

podría ser contabilizar la cantidad de decisiones de diseño capturadas por un

cierto grupo de personas, una vez que el mismo grupo haya tenido la

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 29

posibilidad de inspeccionar periódicamente cada uno de las salidas de sus

miembros.

En base a los conceptos tratados por Ramesh, el modelo de proceso

presentado permitirá a las organizaciones ser high-end users de

trazabilidad.

2.3 Análisis de Impacto

A la larga, todo software sufre cambios en su ciclo de vida. Dichos

cambios pueden ser caracterizados por diferentes factores:

• cantidad de líneas de código necesarias para su realización,

• simplicidad o complejidad de implementación,

• importancia o trivialidad según el valor que agreguen al software.

Todos estos factores influyen al esfuerzo necesario para implementar los

cambios.

Realizar cambios al software sin tener una visibilidad de los efectos que

pueden producir, trae como consecuencia:

• pobres o malas estimaciones del esfuerzo necesario,

• atrasos en la liberación de versiones,

• degradación en el diseño del sistema,

• productos poco confiables.

Es real la necesidad de estimar en forma certera el alcance (en tamaño y

complejidad) de los cambios y planear su implementación en forma correcta.

Parecería ser una costumbre en diferentes organizaciones, que los

profesionales responsables de implementar los cambios determinen los

efectos de los mismos, luego de una revisión del código y de la

documentación existente.

El análisis de impacto ofrece un mejor entendimiento de cómo llevar a

cabo la implementación de los cambios, debido a que provee un análisis más

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 30

detallado de las consecuencias de realizar cambios al software. Las

relaciones entre los componentes de software, incluyendo requerimientos,

diseño, código, material de testing y otra documentación administrativa, son

por lo general implícitas; el análisis de impacto las hace más explícitas.

El principal objetivo del análisis de impacto es identificar los

workproducts del software que serán afectados por cambios propuestos

al mismo.

2.3.1 Definición – Terminología relacionada

En la bibliografía analizada, el Análisis de Impacto (AI) ha sido puesto en

práctica de diferentes maneras. Es más, no se puede encontrar un consenso

frente a la definición de AI.

Una cita bibliográfica (Automated Life Cycle Impact Analysis System,

1986) lo define como “análisis de un impacto para conocer sus partes y/o

elementos”. Mientras que el impacto es definido por “esfuerzo o resultado

debido a un cambio al software”.

(Pfleeger, 1991) define al AI como “la evaluación de diferentes riesgos

asociados con un cambio, incluyendo la estimación de los efectos en los

recursos, esfuerzo y plan de proyecto”.

Este trabajo hará uso de la siguiente definición de Análisis de Impacto:

“El Análisis de Impacto (AI) es la actividad encargada de identificar que

modificar para lograr cierto cambio, e identificar sus consecuencias

potenciales”. En esta definición, se entiende por cambio, a cualquier

modificación o agregado sobre un workproduct que forme parte del software

existente.

Existen otros términos relacionados con AI, que son importantes

conocer. El impacto es una parte del software que ha sido determinada de

ser afectada, y por lo tanto merece cierta inspección posterior a la

implementación del cambio. Un efecto secundario es un “error u otro

comportamiento no deseado que se produce como resultado de una

modificación” (Freedman & Weinberg, 1981). La estabilidad es “la resistencia

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 31

al potencial efecto-ripple ofrecida por un artefacto de software, cuando este

intenta ser modificado” (Yau & Collofello, 1980).

El efecto-ripple es el “efecto causado por un pequeño cambio a un

sistema que afecta muchas otras partes del mismo” (Stevens, Myers, & L.L.,

1999).

2.3.2 Áreas de Análisis de Impacto

Dentro del análisis de impacto, existen dos áreas principales: análisis

por dependencia (dependency análisis) y análisis por trazabilidad

(traceability análisis). Estas áreas, complementarias entre sí, brindan dos

enfoques con perspectivas diferentes para la realización del análisis de

impacto, cada una con sus potenciales ventajas al momento de identificar el

impacto en el software.

Análisis por dependencia

Basado en relaciones de dependencia entre entidades del programa

(paquetes, clases, métodos, atributos, etc.). Provee una evaluación detallada

de dependencias dentro del código, pero no brinda información acerca de los

workproducts en otros niveles. Por lo tanto, el análisis por dependencia brinda

una perspectiva de análisis de impacto desde el código fuente.

Dentro de este tipo de análisis es posible almacenar tres tipos de

relaciones:

• Dependencias de datos (data dependencies): Existe una

dependencia de datos cuando una sentencia de un programa

provee un valor que es utilizado directa o indirectamente por otra

sentencia del mismo.

• Dependencias de Control (control dependencies): Son

relaciones entre sentencias de código de un programa que

controlan el flujo de ejecución del mismo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 32

• Dependencias de Componentes (component dependencies):

relaciones de dependencia entre componentes de código

(módulos, clases, etc.). Existen diversas técnicas para la

extracción de las mismas: cross-reference, comparadores de

código, etc.

Análisis por trazabilidad

Comprende un análisis de las relaciones de dependencia entre todos los

workproducts que integran el sistema, sin importar a qué nivel pertenezcan,

desde los requerimientos, pasando por el diseño, hasta el código. Brinda una

perspectiva más amplia que el análisis por dependencia, pudiendo relacionar

por ejemplo, workproducts de requerimientos con workproducts del diseño del

software. La desventaja de este análisis es que la dependencia dentro de una

librería / módulo de código es muy poco detallada.

Conclusión

El análisis por dependencia permite un análisis más detallado que el

análisis por trazabilidad, pero se ve limitado a la aplicación en el código

fuente. Típicamente, la falta de información detallada sobre los diferentes

workproducts que integran un sistema limita la eficiencia del análisis por

trazabilidad. Sin embargo, un análisis más exhaustivo de todo el sistema

puede obtenerse si la información de trazabilidad está disponible.

Este trabajo utilizará ambos enfoques de manera de, por un lado lograr

consistencia entre los modelos (análisis por trazabilidad), y por otro,

analizar el impacto dentro del código fuente (análisis por dependencia).

2.3.3 Factores que influyen en la práctica de análisis de impacto

El análisis de impacto, dentro del proceso de cambio al software, resulta

ser una tarea difícil y tediosa de llevar a la práctica. No existen metodologías

estandarizadas y avaladas dentro de la Ingeniería del Software, ni siquiera

suele existir entrenamiento alguno para los ingenieros que la llevan adelante.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 33

Depende de la organización y finalmente de sus programadores y analistas, el

enfoque con el que se desarrolle el análisis de impacto.

Otro factor influyente, es la falta de herramientas que permitan una

automatización de la actividad. Por lo general, las herramientas investigadas,

requieren de mucha interacción con el usuario para alcanzar un efectivo

análisis de impacto.

Arnold y Bohnerii señalan que un análisis de impacto automatizado

depende en la capacidad de las herramientas a:

• modelar las relaciones entre los workproducts,

• capturar dichas relaciones en el software y representaciones

asociadas,

• trasladar un cambio específico al software a los workproducts

impactados y sus relaciones.

Por lo tanto, en este trabajo, se dará importancia a estas

características a la hora de crear la herramienta que asista al

análisis de impacto. Se cree que la efectividad de esta actividad, es

consecuencia del soporte que pueda brindar la tecnología.

2.3.4 Clasificación de workproducts luego de implementar un cambio

La mayoría de los métodos de análisis de impacto basados en

trazabilidad, intentan predecir los workproducts que serán afectados debido a

un cambio producido en el producto. Este resultado simboliza al conjunto

estimado de impacto (Ver Sección 2.3.5).

Por lo tanto, los workproducts que no forman parte del conjunto estimado

de impacto, se dicen que no son predecibles de sufrir un cambio. Luego de

implementar el cambio al producto, se puede determinar claramente el

conjunto de workproducts afectados y el conjunto de workproducts no

afectados. Comparando estos resultados con la predicción, se pueden

clasificar a los workproducts en cuatro conjuntos diferentes (Lindvall &

Sandahl, 1998):

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 34

1. Workproducts modificados y predecidos de ser modificados.

2. Workproducts no modificados y no predecidos de ser modificados.

3. Workproducts modificados y no predecidos de ser modificados.

4. Workproducts no modificados y predecidos de ser modificados.

Tanto en los casos 1) y 2), se puede decir que el análisis de impacto fue

satisfactorio, en cambio, en 3) y en 4) se considera ineficiente.

2.3.5 Framework para la comparación de enfoques de Análisis de Impacto

La bibliografía (Arnold & Bohner, 1993) especifica un framework con la

intención de diferenciar diferentes enfoques1 utilizados para el Análisis de

Impacto. Esta framework se basa en tres factores para distinguir los diferentes

enfoques:

1 El término enfoque abarca herramientas, procesos semi-automáticos y procesos manuales.

Predecidos y Modificados(Correcto)

Workproducts predecidos

de ser modificados (CEI)

Workproducts realmente

Modificados (CIR)

No predecidos ymodificados

Predecidos yno modificados

No predecidos y nomodificados(Correcto)

Todos los Workproducts

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 35

• cómo el enfoque es utilizado para lograr el análisis de impacto (IA

Application)

• cómo el enfoque realiza el análisis de impacto internamente (IA

Parts)

• efectividad del enfoque (IA Effectiveness)

Definiciones utilizadas por los autores del framework

Impacto (impact): es la parte del sistema determinada a ser afectada.

Trazabilidad (traceability): es la habilidad en determinar que partes

están relacionadas con otras en base a relaciones específicas.

Efecto secundario (side effect): es un error o comportamiento no

deseado que ocurre como resultado de una modificación.

Efecto ripple: es el efecto causado al realizar un pequeño cambio al

sistema que termina afectando muchas otras partes del mismo.

Estabilidad (stability): es la resistencia al potencial efecto de ripple,

ofrecida por un sistema al ser modificado.

Aplicación del enfoque (IA Application)

Esta sección del framework examina como el enfoque es utilizado para

llevar adelante el análisis de impacto, es por eso que se basa principalmente

en la distinción de los elementos que hacen a la interfaz usuario-enfoque AI.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 36

A continuación se muestra una tabla con los elementos necesarios para

diferenciar enfoques de AI en base a como son aplicados o llevados adelante

por parte del usuario.

IA Application – Elementos diferenciadores

Elemento Explicación Escala

Modelo de los artefactos del dominio

¿Cuáles son los tipos de objetos y

relaciones extraídos del dominio del

sistema?

- Componentes de Programa y/o relaciones

- Componentes y/o relaciones de dominio predefinidas

- Componentes y/o relaciones establecidas por el usuario

- Ninguno

- Desconocido

Descomposición

¿Pueden los componentes analizados ser

descompuestos y almacenados en la

herramienta / enfoque de AI?

- Si, sintaxis y semántica por completo

- Si, sintaxis con cierta semántica

- Si, solo sintaxis

- No

- Desconocido

Especificación de cambios

¿Cómo es el cambio especificado frente al

enfoque de AI?

- Si, el cambio se especifica con un análisis detallado

- Si, el cambio se especifica con un simple análisis

- No, no aplica

- Desconocido

Especificación de resultados

¿Cómo son los resultados del AI

expresados?

- Reporte

- Exploración (Browsing)

- Vista de base de datos

- Ninguno

- Desconocido

Interpretación de resultados

¿Cuánto esfuerzo es requerido por el

usuario para interpretar los

resultados del AI?

- Significante

- Poco

- Ninguno

- Desconocido

Otras funcionalidades

¿Qué otras funcionalidades se

encuentran disponibles para el

usuario?

- Explicaciones, métricas, animaciones / grafos de impacto, opciones para implementar el cambio, acceso a un histórico de cambios, estrategias de cambio sugeridas, caminos para testear el cambio, etc.

Análisis de Impacto basado en información de trazabilidadUniversidad de Buenos Aires – Facultad de Ingeniería

Partes del enfoque (IA Parts)

Esta parte del framework se preocupa

involucradas en el enfoque de AI (que hace el enfoque, como lo hace, y

cuáles son las tareas de los agentes / herramientas involucradas).

La figura ilustra los elementos involucrados. Para expresar un cambio

específico, el enfoque de AI posee

El input, expresado en términos de dicho modelo d

traducido en el modelo de objetos interno al enfoque.

El modelo interno de objetos define los componentes y relaciones (o

dependencias) que el enfoque utiliza. Normalmente suele ser almacenado en

un cierto repositorio (base de

sus propios mecanismos para su carga, exploración, y modificación de los

componentes y relaciones almacenados. A su vez, el repositorio es cargado

descomponiendo los componentes al modelo interno de objetos y

El modelo de impacto define reglas que reflejan la semántica acerca de

que afecta que. Define las clases de componentes y relaciones utilizados por

sis de Impacto basado en información de trazabilidad Facultad de Ingeniería

Tesista: Martín de la Rosa Tutor: Lic. Pablo Cosso

Partes del enfoque (IA Parts)

Esta parte del framework se preocupa de las partes funcionales

involucradas en el enfoque de AI (que hace el enfoque, como lo hace, y

on las tareas de los agentes / herramientas involucradas).

La figura ilustra los elementos involucrados. Para expresar un cambio

específico, el enfoque de AI posee un modelo propio de objetos y relaciones.

El input, expresado en términos de dicho modelo de objetos de interfaz, es

traducido en el modelo de objetos interno al enfoque.

El modelo interno de objetos define los componentes y relaciones (o

dependencias) que el enfoque utiliza. Normalmente suele ser almacenado en

un cierto repositorio (base de datos, CVS, etc.). El repositorio puede poseer

sus propios mecanismos para su carga, exploración, y modificación de los

componentes y relaciones almacenados. A su vez, el repositorio es cargado

descomponiendo los componentes al modelo interno de objetos y

El modelo de impacto define reglas que reflejan la semántica acerca de

que afecta que. Define las clases de componentes y relaciones utilizados por

: Martín de la Rosa : Lic. Pablo Cosso

las partes funcionales

involucradas en el enfoque de AI (que hace el enfoque, como lo hace, y

on las tareas de los agentes / herramientas involucradas).

La figura ilustra los elementos involucrados. Para expresar un cambio

modelo propio de objetos y relaciones.

e objetos de interfaz, es

El modelo interno de objetos define los componentes y relaciones (o

dependencias) que el enfoque utiliza. Normalmente suele ser almacenado en

datos, CVS, etc.). El repositorio puede poseer

sus propios mecanismos para su carga, exploración, y modificación de los

componentes y relaciones almacenados. A su vez, el repositorio es cargado

descomponiendo los componentes al modelo interno de objetos y relaciones.

El modelo de impacto define reglas que reflejan la semántica acerca de

que afecta que. Define las clases de componentes y relaciones utilizados por

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 38

el enfoque, algoritmos y demás fórmulas para determinar cuando un cambio

sobre un artefacto puede alterar a otro.

El componente de trazabilidad / impacto (tracing / impact approach) es el

responsable de implementar el modelo de impacto. Define como los objetos y

dependencias son representados, como las reglas de impacto son

capturadas, especifica los algoritmos de búsqueda de impacto, etc.

Una vez que los resultados de AI son obtenidos del modelo interno de

objetos, deben ser traducidos nuevamente al modelo de objetos de interfaz

entendible por el usuario, con el fin de determinar que partes de los artefactos

originales son impactados.

La siguiente tabla resume los elementos comprendidos en las partes de

un enfoque de AI.

IA Parts – Elementos diferenciadores

Elemento Explicación Escala

Modelo de objetos de interfaz

¿Qué objetos y relaciones pueden ser expresados en la

interfaz de usuario del enfoque?

- Strings, objetos de programa, objetos predefinidos de documentos, desconocido

Modelo interno de objetos ¿Qué objetos y relaciones utiliza el enfoque?

- Orientado en documentos, basado en objetos, estructura de grafos, ninguno, desconocido

Modelo de Impacto

¿Cómo son modeladas las dependencias? ¿Cuándo estas dependencias son

tenidas en cuenta? ¿Qué tan bien las dependencias del modelo se reflejan con las

del sistema?

- Flujo de datos, control de flujo, matcheo de strings, dependencia entre objetos, ninguno, desconocido

Enfoque de trazas

¿Qué algoritmos o procedimientos son

utilizados por el enfoque para calcular el impacto en

base a las trazas?

- Descomposición, búsquedas heurísticas, no explícito, ninguno, desconocido

Descomposición

¿Qué objetos y relaciones son capturados del sistema y almacenados internamente

en el enfoque?

- Entidades de base de datos, objetos, clases, ninguno, desconocido

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 39

Repositorio ¿Qué repositorio es utilizado para el almacenamiento de

objetos y relaciones?

- Motor de base de datos relacional, file system, ninguno, desconocido

Carga, modificación, navegación

¿Qué funcionalidades brinda el repositorio para la carga, modificación y navegación

de los elementos almacenados en él?

Carga, modificación, navegación, todos, ninguno, desconocido

Eficiencia del enfoque (IA Effectiveness)

Esta parte del framework se encarga de conocer que bien el enfoque

implementa el análisis de impacto. Es decir, una vez que se realizó el análisis

de impacto, la pregunta es ¿Qué tan preciso es?

Para responder esta pregunta, se definen ciertos conceptos:

• Universo: conjunto total de artefactos de software (work-

products).

• Sistema: conjunto de artefactos de software que integran el

sistema bajo análisis del enfoque.

• Conjunto de inicio de impacto (CII – CII#): conjunto de

artefactos que son pensados de ser inicialmente modificados por

un cambio.

• Conjunto estimado de impacto (CEI – CEI#): conjunto de

artefactos estimados por el enfoque de AI a ser afectados.

• Conjunto de impacto real (CIR – CIR#): conjunto de artefactos

realmente modificados como resultado de implementar un

cambio. El CIR no es único, ya que un cambio puede ser

implementado de diversas maneras. Igualmente en lo que sigue,

se tomará al CIR en base a un análisis de impacto en particular.

Se asume también que el CIR refleja una implementación correcta

del cambio.

Nota: se hace una distinción entre los artefactos a nivel de interfaz de usuario de la herramienta

de AI (señalados con #), con los artefactos propios del modelo del sistema.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 40

Métricas

1) CII# vs. CEI#

Por definición el CEI# siempre contiene al CII#. Sin embargo, el tamaño

del CEI# determina el esfuerzo necesario para chequear todos los objetos

analizados como impactados. Por lo tanto, un CEI# de tamaño considerable

en comparación del CII# no es recomendable para un enfoque de AI.

Por lo tanto la métrica queda definida por:

#

###

CEI

CIIIEvsCEICII == α

Resultado Interpretación

IEα = 1 Mejor estimación. Siempre deseado.

K < IEα < 1

donde 0 < K < 1

K sugerido 0.7

Estimación esperada. CEI# es apenas mayor al CII#.

IEα < K Estimación mala. Salto grande entre CEI# y CII#. Requiere mayor esfuerzo para chequear

todo el CEI#.

2) CEI# vs. Sistema (SIS#)

En general, no es deseable que el enfoque de AI estime que todo será

impactado, esto es que el CEI# sea igual al Sistema, a no ser que

efectivamente se trate de ese caso. La “distancia” entre el CEI# y el Sistema

es una manera de medir en cierta manera la certeza del enfoque.

La métrica se define como:

#

###

SIS

CEISEvsCEISIS == α

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 41

Resultado Interpretación

SEα = 1 No útil para un análisis de impacto. Puede indicar un sistema con efecto de ripple

extremo.

J < SEα < 1

donde 0 < J < 1

Mejor estimación. Se estimó que el cambio no afecta a todo el sistema.

IEα < J Aún mejor. Se estimó que el cambio impacta solo a una porción reducida del sistema.

3) CEI# vs. CIR#

La relación entre el CEI# y el CIR# también es muy significante. Se

quiere que el CIR# este contenido por el CEI#, y en lo posible ser muy similar

o exacto.

Condición Resultado Interpretación

CEI# = CIR#;

CEI# ⊆ SIS# 1

#

#=

CEI

CIR

Lo ideal. Lo estimado como impactado es igual a lo que

realmente se modifica. Si esto ocurre muy frecuentemente,

puede ser una señal de que el AI no sirva de mucho.

|CEI#| > |CIR#|;

CIR# ⊂ CEI#;

CEI# ⊆ SIS#

1#

#<<

CEI

CIRH

donde 0 < H < 1

Estimación “segura”. Lo estimado contiene a lo realmente impactado y además el conjunto estimado no es mucho mayor al

impactado real.

|CEI#| >> |CIR#|;

CIR# ⊂ CEI#;

CEI# ⊆ SIS#

HCEI

CIR<

#

#

Tomando el H definido en la fila anterior

Estimación “segura” pero no tan buena. Existe un gran salto entre

lo impactado realmente y lo estimado, lo que significa que hay que chequear bastante al

CEI para arribar al CIR.

|CIR#| > |CEI#|;

CEI# ⊂ CIR#;

CEI# ⊆ SIS#

1#

#<<

CIR

CEIM

donde 0 < M < 1

Estimación esperada. El AI es aproximado y se queda corto a lo

que realmente debe ser modificado.

|CIR#| >> |CEI#|;

CEI# ⊂ CIR#;

CEI# ⊆ SIS#

MCIR

CEI<

#

#

Tomando el M definido en la fila anterior

Estimación no muy buena. Gran salto entre lo estimado y lo

realmente impactado, significando un trabajo extra para

descubrir el CIR.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 42

|CIR# ∩ CEI#|>0;

CIR# ≠ CEI#;

CEI# ⊆ SIS#

|CIR# ∩ CEI#| > 0

Estimación no muy buena. Se necesita un trabajo extra para

chequear los objetos del CEI que no están en el CIR. Ídem para

descubrir los objetos del CIR que no están en el CEI.

|CIR# ∩ CEI#|=0;

CEI# ⊆ SIS# |CIR# ∩ CEI#| = 0

Estimación no muy buena. Una peor versión del caso presentado

en la fila anterior.

2.3.6 Proceso de AI

En base a la bibliografía (Bohner & Arnold, An Introduction to Software

Change Impact Analysis, 1996) en esta sección se explica un típico proceso

de Análisis de Impacto.

El usuario solicita una aprobación para la implementación de un cambio

sobre el sistema.

Posteriormente, si se aprueba la implementación del cambio, en base a

la examinación de los requerimientos, documentos de diseño, código, etc. se

identifican los artefactos de software que aparentemente se verán impactados

por el cambio (Conjunto de Inicio de Impacto – CII).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 43

Luego, en base a un esquema de relaciones entre los workproducts, se

estiman los workproducts impactados como consecuencia de aplicar el efecto

ripple sobre el conjunto de inicio de impacto. En esta etapa puede que se

identifiquen nuevos workproducts y se agreguen al CII.

El análisis asume que existe una especificación formal de objetos y

relaciones que caracteriza la estructura del impacto del sistema que está

siendo modificado. Esto no es crítico u obligatorio para realizar el análisis de

impacto, pero incrementa su eficiencia y velocidad, más aún si el análisis es

automatizado por alguna herramienta. Si los objetos o relaciones no están

presentes, se pueden utilizar técnicas como ser: inspecciones, walkthroughs,

verificación, validación para lograr el análisis de impacto.

Relación con el Proceso de Administración de Cambios

Bohner y Arnold explican el proceso de Análisis de Impacto bajo el

contexto del proceso de Administración de Cambios del Software.

El Análisis de Impacto ocurre a lo largo de todo el proceso de

Administración de Cambios del Software: a medida que los cambios son

implementados, más impactos son descubiertos, y por lo tanto el conjunto de

workproducts impactados crece. Consecuentemente, a medida que el proceso

progresa, se va conociendo más en detalle el cambio, y por lo tanto el análisis

de impacto se vuelve más concreto y efectivo.

A continuación se enumeran las actividades más importantes referidas al

proceso de cambio del software desde una perspectiva referida al impacto.

Desde esta perspectiva, el análisis de impacto es una tecnología de soporte a

la implementación del cambio.

• Entender el cambio y determinar el impacto: se evalúa la

solicitud de cambio, se clarifica, y se determinan sus posibles

impactos. Esta actividad produce impactos sobre todos los

workproducts del ciclo de vida del proyecto (requerimientos,

diseño, código, casos de prueba). Se descubren efectos de ripple

que alimentan los workproducts impactados.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 44

• Especificar y diseñar la implementación del cambio: toma la

solicitud de cambio clarificada y genera especificaciones

detalladas de diseño.

• Implementación del cambio: se implementa el cambio a nivel

código y se actualiza toda la documentación referida a los

workproducts modificados y/o agregados y sus relaciones.

• Testing: las modificaciones son testeadas de manera de validar

que cumplan con los nuevos requerimientos. Además todo el

sistema es sujeto a un testing de regresión para verificar que se

siguen cumpliendo los requerimientos existentes.

2.4 Métricas

En esta sección se detallan ciertas métricas de interés halladas en la

bibliografía.

2.4.1 In-Degree / Out-Degree

El In-Degree XIX de un determinado workproduct indica la cantidad de

workproducts que dependen del mismo. Puede verse como la cantidad de

trazas que ingresan al workproduct analizado.

Queda definida la siguiente función:

∑=ℜ→ TtWorkproducnIn :)( Siendo }},{{ TrazanbT ∈=

Por otro lado, el Out-Degree indica de cuantos workproducts depende el

workproduct en cuestión. Puede ser visto como la cantidad de trazas salientes

desde el workproduct analizado.

Queda definida la siguiente función:

∑=ℜ→ TtWorkproducnOut :)( Siendo }},{{ TrazabnT ∈=

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 45

2.4.2 Ripple

Arnold y Bohner XIX definen al ripple como “el efecto causado al realizar

un pequeño cambio al sistema que termina afectando muchas otras partes del

mismo”.

A modo de cuantificar el ripple que presenta un determinado

workproduct, los autores de la cita tienen en cuenta sus relaciones (trazas) y

las distancias de las mismas.

Así, el ripple para un determinado workproduct puede ser calculado

mediante:

�������� � ��

���

Donde d = distancia,

Idi = Impacto del workproduct para una distancia i

WP1 WP2 WP3 WP4 WP5

WP1 1 1 2 3

WP2 2 1 1 3

WP3 1 3 2 3

WP4 1 2 2 2

WP5 1 2 3 3

En base a la matriz de trazabilidad con indicadores de distancia

presentada, es posible calcular el valor de ripple para los distintos

workproducts. A modo de ejemplo:

Ripplewp1 = 1*2 + 2*1 + 3*1 = 7

Ripplewp2 = 1*2 + 2*1 + 3*1 = 7

Ripplewp3 = 1*1 + 2*1 + 3*2 = 9

Ripplewp4 = 1*1 + 2*3 + 3*0 = 7

Ripplewp5 = 1*1 + 2*1 + 3*2 = 9

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 46

Se puede concluir que los workproducts WP3 y WP5 presentan mayor

ripple que el resto, indicando posiblemente que frente a una posible decisión

de cambio estos sean menos preferibles de ser modificados que WP1, WP2 y

WP4.

2.5 Metodologías - Herramientas de Soporte

En esta sección se hace referencia a diferentes metodologías,

herramientas y frameworks hallados en la bibliografía. Las mismas se enfocan

en brindar soporte y servir de guía para la documentación de trazabilidad y

hasta la realización de análisis de impacto.

Debido a que no se encontró en la investigación una herramienta que

permita capturar trazas desde un requerimiento hasta componentes de

implementación, se presenta por un lado las herramientas que dan soporte a

la trazabilidad en la etapa de análisis, y por otro a las que asisten a la

documentación de trazas en el código.

Se tomarán en cuenta las características más relevantes de cada una de

las herramientas que se muestren al momento de diseñar la herramienta que

de soporte al enfoque presentado en este trabajo.

2.5.1 Trazabilidad en análisis

Para la documentación de trazabilidad en la etapa de análisis de un

proyecto se encontraron las siguientes metodologías / herramientas, de las

cuales se brinda mayor detalle en los anexos citados del presente trabajo:

• SharpTrace11.2: Framework/Herramienta para la trazabilidad de

requerimientos para proyectos basados en UML.

• DOORS11.3: Permite capturar información de documentos Word y

documentar la semántica de trazas.

• Rational RequisitePro11.4: Herramienta para la documentación de

trazabilidad en proyectos bajo el marco del proceso RUP.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 47

• OptimalTrace 11.8: Herramienta que surge de la metodología

Requerimientos Estructurados diseñada por la empresa

Compuware.

2.5.2 Trazabilidad en código

La trazabilidad en el código fuente de un proyecto puede ser vista como

la dependencia existente entre los diferentes componentes que integran el

mismo.

Para el análisis del código fuente y las relaciones implícitas en el mismo

existen herramientas de análisis de dependencia (dependency-analysis tools)

o también denominadas herramientas de referencia cruzada (cross-reference

tools). Estas herramientas permiten extraer dichas relaciones, es decir la

trazabilidad, y generar diferente tipo de información: grafos, reportes de

dependencia, etc.

En esta sección se dará detalle de una herramienta basada en el análisis

de código JAVA llamada Dependency Finder.

Otras herramientas de cross-reference para el análisis de lenguaje Java

que generan como resultado páginas HTML con links para navegar el código

fuente y sus dependencias son: Sorcerer (https://sorcerer.dev.java.net/),

Javasrc (http://sourceforge.net/projects/javasrc/) y Maven JXR

(http://maven.apache.org/jxr/).

Dependency Finder (http://depfind.sourceforge.net)

Se trata de una herramienta que analiza código Java compilado y es

capaz de extraer grafos de dependencia. Esta aplicación puede ser utilizada

de diversas maneras: a través de la lína de comandos, desde una aplicación

Swing, desde una aplicación Web lista para ser instalada en un Servidor Web,

a través de tareas Ant (http://ant.apache.org/), o bien en forma directa

haciendo uso del API de la misma.

En el contexto de esta aplicación existe una dependencia cuando una

clase hace uso de los servicios provistos por otra. Por ejemplo, cuando una

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 48

clase hereda de otra, o tiene un atributo del tipo de otra clase, o cuando uno

de sus métodos invoca a otro método de otra clase.

A su vez define los conceptos de dependencia entrante y saliente

(inbound/outbound dependencies). Siendo la dependencia A � B, se dice que

A tiene una dependencia “saliente” con B, mientras que B tiene una

dependencia “entrante” de A. La dependencia es la misma pero será saliente

o entrante según desde donde se la vea.

Los artefactos de software identificados son: paquetes, clases, y

funcionalidades (constructores, métodos y atributos de una clase).

Con estos elementos define a un grafo de dependencia como un

conjunto de nodos para cada artefacto de software relacionados a través de

dos tipos de relaciones: relaciones de composición y relaciones de

dependencia.

Los paquetes contienen clases, las cuales a su vez contienen

funcionalidades. Estas son las denominadas relaciones de composición.

A su vez, las clases se referencian entre ellas, e igualmente sucede con

las funcionalidades. Estas son relaciones de dependencia.

Así esta herramienta genera grafos de dependencia extrayendo tres

tipos diferentes de dependencia de código:

1) Funcionalidad a Funcionalidad (Feature to Feature)

2) Funcionalidad a Clase (Feature to Class)

3) Clase a Funcionalidad (Class to Feature)

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 49

3 Proceso AIT - Análisis de Impacto basado en Trazabilidad

Durante este capítulo se define el proceso que bajo ciertas premisas

permite dar respuesta a la hipótesis de este trabajo.

El proceso establece un marco sobre el cual es posible recolectar

información de trazabilidad adecuada para un posterior efectivo Análisis de

Impacto frente a cambios que se presenten.

El mismo deberá ser implementado en forma paralela al ciclo de vida del

proyecto de software, desde sus etapas tempranas, como así también durante

su desarrollo y mantenimiento.

Como última sección de este capítulo se especifican los componentes de

software de la arquitectura que es necesaria para la implementación del

mismo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 50

3.1 Diagrama del Proceso

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 51

3.2 Especificación del Proceso

Para la especificación del Proceso, se hace uso de templates extraídos

de la bibliografía (Olson, Reizer, & Over, 1993).

3.2.1 Catálogo de Agentes, Productos y Actividades

Agentes - ¿Quiénes están involucrados en el proceso?

Id Nombre

1 Moderador: Persona encargada de liderar todo el proceso

2 Arquitecto: Líder Técnico del Proyecto

3 Miembro del equipo: Desarrollador, Analista, etc.

4 Revisor: Persona encargada de revisar la documentación de trazabilidad generada. Puede ser el mismo moderador

5 Analista de Cambios: Persona encargada de llevar adelante los Análisis de Impacto

Productos - ¿Qué productos se utilizan y producen en el proceso?

Id Nombre

1 Definición de Configuración de Trazabilidad

2 Extractores de Trazabilidad

3 Información de Trazabilidad

4 Registro de Trazabilidad

5 Conjunto Estimado de Impacto

6 Cuantificación del impacto

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 52

Actividades - ¿Qué actividades se desarrollan?

Id Nombre

1 Configuración de Trazabilidad

2 Definición de Extractores

3 Traspaso de conocimiento

4 Identificación

5 Revisión

6 Análisis de Impacto

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 53

3.2.2 Actividad 1 – Configuración de Trazabilidad

Propósito - ¿Para qué se desarrolla esta Actividad?

La actividad de Configuración de Trazabilidad es muy importante, ya que

al configurar la trazabilidad se estará especificando la granularidad de la

documentación de trazabilidad que se generará durante el proyecto, y por

consiguiente el esfuerzo requerido para su mantenimiento y actualización.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

1 Moderador

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Definición del Alcance del proyecto

Proceso RUP – Fase Concepción Y

Definición de las herramientas y tecnología a utilizar durante el proyecto

Proceso RUP – Fase Concepción

Entradas - ¿Qué productos utiliza esta actividad?

Esta actividad no utiliza ningún producto.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 54

Actividad Padre: Esta actividad no posee actividad padre.

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1

Clasificación de Etapas y Workproducts: Se define a una etapa como una fase del ciclo de vida del proyecto en cuestión. Durante la ejecución de la misma se podrán identificar a uno o más tipos de workproducts. Por lo tanto, será importante definir las etapas de trazabilidad y los tipos de workproducts que se identificarán en cada una de ellas.

2

Clasificación de Trazas: Una vez clasificados los tipos de workproducts, será necesario definir las relaciones que pueden existir entre ellos a través de trazas.

Se deberán definir tanto las trazas explícitas, como las implícitas, dejando en claro que tipos de workproducts relacionan cada una de ellas.

En este paso, se especificará la relación existente entre los workproducts pertenecientes a una etapa, a través de trazas verticales, y la existente entre workproducts de diferentes etapas mediante de trazas horizontales.

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Se completó la documentación de configuración de trazabilidad Definición de Extractores

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Definición de configuración de trazabilidad

- Definición de Extractores

- Traspaso de conocimiento

- Revisión

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 55

3.2.3 Actividad 2 – Definición de Extractores

Propósito - ¿Para qué se desarrolla esta Actividad?

Una de las premisas de este trabajo es reducir el esfuerzo humano

necesario para la documentación de las trazas existentes en un sistema. Para

eso se definen los extractores. Un extractor no es más ni menos que una

herramienta que permitirá la sincronización de trazas y workproducts en forma

automatizada, requiriendo un esfuerzo humano mínimo. Al hablar de

sincronización nos referimos al proceso por el cual nuestro Modelo de

Trazabilidad y Análisis de Impacto se alimenta de toda la documentación del

proyecto, pudiéndose actualizar trazas y workproducts.

Es importante notar que termina siendo la tecnología (herramientas de

modelado, lenguaje de programación, frameworks, etc.) lo que determina si

existe o no la posibilidad de implementar extractores para cada tipo de

workproduct y traza configurados.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

2 Arquitecto

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Disponibilidad de documentación de configuración de trazabilidad

Configuración de Trazabilidad

Entradas - ¿Qué productos utiliza esta actividad?

Producto Actividad que lo origina

Definición de configuración de trazabilidad Configuración de Trazabilidad

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 56

Actividad Padre: Configuración de Trazabilidad

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1 Implementación de Extractores de Workproducts: Es recomendable que para cada tipo de workproduct se implemente un extractor correspondiente, siempre y cuando la tecnología utilizada lo permita.

2

Implementación de Extractores de Trazas: De manera de cumplir con uno de los objetivos de este trabajo, que es el de reducir el esfuerzo humano, se plantea la pauta casi obligatoria de: implementar un extractor para la documentación de cada traza clasificada en la actividad anterior.

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Se implementaron los posibles extractores de workproducts y trazas

Traspaso de conocimiento

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Extractores de Trazabilidad - Traspaso de conocimiento

- Identificación

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 57

3.2.4 Actividad 3 – Traspaso de conocimiento

Propósito - ¿Para qué se desarrolla esta Actividad?

Para lograr una correcta documentación de trazabilidad es obligatorio

que todo el equipo del proyecto se vea involucrado.

Para tal fin y como punto más importante, el proceso debe ser entendido

como una mejora y no como un formalismo de documentación.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

1 Moderador

2 Arquitecto

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Disponibilidad de documentación de configuración de trazabilidad

Configuración de Trazabilidad

Y

Disponibilidad de extractores Definición de Extractores

Entradas - ¿Qué productos utiliza esta actividad?

Producto Actividad que lo origina

Definición de configuración de trazabilidad

Configuración de Trazabilidad

Extractores de Trazabilidad Definición de Extractores

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 58

Actividad Padre: Definición de Extractores

Se deberá establecer para cada rol y miembro del equipo, como y de

que manera identificar y documentar las trazas y workproducts.

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1 Distribuir y explicar documentación de trazabilidad a cada miembro del equipo de proyecto.

2 Establecer para cada rol y miembro del equipo, como y de que manera identificar y dejar documentación de trazas y workproducts.

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Se asignaron los responsables de la identificación de cada tipo de workproduct, instruyéndolos en el uso de los extractores.

Identificación

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Definición de responsabilidades Identificación

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 59

3.2.5 Actividad 4 – Identificación

Propósito - ¿Para qué se desarrolla esta Actividad?

Esta actividad se refiere a la documentación de trazas y workproducts en

sí. Cada miembro del equipo en base a los lineamientos recibidos en la

actividad anterior, deberá identificar los workproducts y trazas que haya

creado.

Se recomienda que esta tarea sea realizada en forma paralela al

desenvolvimiento del proyecto y no en forma posterior al mismo. Una buena

costumbre es realizar esta identificación con una periodicidad diaria o

semanal.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

3 Miembro del equipo

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Disponibilidad de extractores Definición de Extractores Y

Creación de workproducts o trazas Fase Construcción

Entradas - ¿Qué productos utiliza esta actividad?

Producto Actividad que lo origina

Extractores de Trazabilidad Definición de Extractores

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 60

Actividad Padre: Traspaso de conocimiento al equipo de Proyecto

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1 Identificación de workproducts

2 Identificación de trazas

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Se identificaron todos los workproducts y trazas respectivos

Revisión

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Información de Trazabilidad Revisión

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 61

3.2.6 Actividad 5 – Revisión

Propósito - ¿Para qué se desarrolla esta Actividad?

A modo de inspección y entrenamiento del equipo en la ejecución del

proceso, se establece la necesidad de una revisión de las trazas y

workproducts identificados en la actividad anterior.

Será necesario establecer la periodicidad de esta revisión y el / los

responsables de la misma.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

4 Revisor

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Nuevos Workproducts y Trazas identificadas

Identificación de Trazas y Workproducts

Entradas - ¿Qué productos utiliza esta actividad?

Producto Actividad que lo origina

Información de Trazabilidad Identificación

Definición de Configuración de Trazabilidad

Configuración de Trazabilidad

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 62

Actividad Padre: Identificación de Trazas y Workproducts

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1 Validar que los workproducts y trazas identificadas estén de acuerdo a la configuración de trazabilidad

2 Verificar existencia de requerimientos no trazados hacia ningún workproduct

3 Mantener un registro de aquellos workproducts sin trazas

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Todos los workproducts y trazas nuevas han sido revisados

No posee

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Registro de trazabilidad Revisión

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 63

3.2.7 Actividad 6 – Análisis de Impacto

Propósito - ¿Para qué se desarrolla esta Actividad?

El principal objetivo del análisis de impacto, es identificar los

workproducts del software que serán afectados por cambios propuestos al

mismo.

Desarrollada por - ¿Quiénes son responsables por desarrollar esta

actividad?

Id Nombre

1 Analista de Cambios

Criterio de entrada - ¿Cuándo puede comenzar esta actividad?

Estado o Condición Actividad Precedente Y / O

Requerimiento de Cambio -

Entradas - ¿Qué productos utiliza esta actividad?

Producto Actividad que lo origina

Información de Trazabilidad Identificación

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 64

Actividad Padre: Esta actividad no posee actividad padre.

Sub-actividades, procedimiento, método - ¿Cómo se implementa

esta actividad?

Paso Nombre y Descripción

1 Identificación de workproducts que aparentemente se verán impactados por el cambio (Conjunto de Inicio de Impacto – CII)

2 Estimación de los workproducts impactados (Conjunto Estimado de Impacto – CEI) aplicando efecto de ripple sobre el CII

3 Cuantificación del impacto estimado

Criterio de salida - ¿Cuándo está completa esta actividad? ¿Qué

actividad sigue?

Estado o Condición Actividad Siguiente Y / O

Se alcanza un CEI y se cuantifica el impacto

Implementación del Cambio

Salidas - ¿Qué productos son producidos en esta actividad?

Producto Actividad a la que está destinado

Conjunto Estimado de Impacto (CEI) Proceso de Administración del Cambio

Cuantificación del Impacto Proceso de Administración del Cambio

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 65

3.3 Arquitectura

El proceso planteado deberá estar soportado por diferentes

herramientas / componentes de arquitectura que permitan su exitosa

implementación.

En el siguiente diagrama se pueden observar los componentes que

integran dicha arquitectura, y los específicos utilizados en la práctica del

presente trabajo.

• Herramienta Issue Tracking: esta herramienta es utilizada por

los stakeholders del proyecto para especificar requerimientos de

cambio.

• Repositorio de Versionado: es indispensable contar con un

medio para versionar los workproducts del proyecto. Por cada

requerimiento de cambio es aconsejable realizar una nueva

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 66

versión de manera de contar con información detallada del CIR

resultante.

• Herramienta de Análisis / Diseño: para la especificación del

análisis y diseño, el analista y arquitecto deben utilizar

preferentemente una herramienta ágil y con soporte UML.

• Herramienta Cross Reference: este tipo de herramientas

usualmente ofrecen dos funcionalidades: 1) navegación sobre los

componentes de código de un proyecto y sus relaciones, y 2)

extracción de dependencias de código.

• Explorador CVS: de modo de facilitar la visualización de

comentarios sobre versiones, modificaciones entre una versión y

otra, y demás información inherente al repositorio de versionado

de fuentes, es aconsejable contar con una herramienta que

permita la navegación del mismo de manera fácil e intuitiva. Es

necesario que esta herramienta pueda ser accedida por cualquier

stakeholder y de ser posible mediante un browser http.

• ImpactTrace: herramienta central del proceso sobre la cual se

accederá a toda la información de trazabilidad recolectada para la

estimación de diversos análisis de impacto. Su diseño y

principales funcionalidades serán comentados en una sección

posterior.

• Repositorio de IT: materia prima para el análisis de impacto. En

este repositorio se almacenan todos los workproducts y trazas. El

mismo es accedido a través de la herramienta ImpactTrace.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 67

4 AIT – Configuración de Trazabilidad

Como fue mencionado, la propuesta de Análisis de Impacto está basada

en información de trazabilidad recolectada durante la ejecución del proyecto.

Así, las estimaciones de impacto que puedan obtenerse son consecuencia de

cómo se almacena dicha trazabilidad.

Por lo tanto es importante establecer criterios y conceptos para una

efectiva Configuración de Trazabilidad que permita documentar y mantener de

manera adecuada la trazabilidad por parte del equipo de proyecto.

En este capítulo se brindarán detalles precisos de lo que se entiende por

Configurar la Trazabilidad de un proyecto de Software de manera adecuada

para alcanzar Análisis de Impacto efectivos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 68

4.1 Configuración de Trazabilidad

Según los trabajos investigados, la información de trazabilidad de un

proyecto puede traducirse como la documentación existente de los diversos

workproducts y trazas existentes entre los mismos.

Ahora bien, la información de trazabilidad puede ser documentada de

diversas maneras según el criterio de quien esté llevando adelante la

actividad.

La configuración de trazabilidad de un proyecto será justamente el

elemento que brinde un marco para dicha actividad, básicamente

estableciendo que tipos de workproducts y trazas podrán ser identificados y

documentados.

Así, en esta sección se brindan detalles y criterios de cómo establecer

una Configuración de Trazabilidad que persiga primordialmente el objetivo de

un Análisis de Impacto efectivo y así poder brindar respuesta a la hipótesis

planteada.

4.1.1 Clasificación de Workproducts

Como fue mencionado, los elementos que componen la información de

trazabilidad de un proyecto son por un lado los workproducts que lo integran

y las relaciones entre ellos, es decir las trazas existentes.

En base a que la trazabilidad documentada es la información utilizada

durante el análisis de impacto, se clasifican y agrupan a los workproducts en

base a los siguientes conceptos:

Se define al Sistema como la unión de todos los workproducts

identificados.

∑=

=n

i

iWPS1

siendo WPi cada workproduct identificado y n la cantidad

total de workproducts del Sistema.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 69

Si se determina el momento de creación de los workproducts, una Etapa

/ Fase del Sistema marcará una primera diferenciación entre los mismos.

Análisis, diseño, construcción y testing son claros ejemplos de etapas

encontradas comúnmente en proyectos. Cada fase o etapa del sistema se

define como la unión de todos los workproducts identificados en la misma:

∑=

=n

j

ji WPF1

siendo WPj cada workproduct identificado en la fase Fi.

Una segunda clasificación de workproducts estará dada por su Tipo.

Requerimiento, caso de uso, diagrama de clases, clase, método, tabla son

claros ejemplos de esta clasificación. Se define a un Tipo de Workproduct

como la unión de todos los workproducts clasificados de igual tipo.

∑=

=n

j

ji WPTWP1

siendo WPj cada workproduct del tipo TWPi.

A su vez, una Etapa está conformada por diferentes Tipos de

workproducts, y por lo tanto un Sistema puede ser visto como la unión de sus

etapas, dando lugar a la siguiente definición:

∑ ∑∑= = =

==n

i

n

i

n

j

i TWPijFS1 1 1

siendo Fi una fase en particular del Sistema y

TWPij un workproduct del Tipo j perteneciente a la Fase i.

Esta clasificación de workproducts según su Etapa de origen y Tipo,

hace que la información de Análisis de Impacto sea más detallada y granular

permitiendo tomar decisiones más acertadas.

4.1.2 Trazabilidad Horizontal / Vertical

Como se definió anteriormente, existe trazabilidad vertical si una traza

asocia a dos ítems de un mismo modelo, y horizontal cuando los ítems

asociados pertenecen a diferentes modelos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 70

Siguiendo la clasificación de workproducts establecida, se denomina

modelo a cada etapa / fase del proyecto. Existe entonces trazabilidad vertical

dentro de una misma etapa y trazabilidad horizontal entre etapas diferentes

del proyecto.

Traza Vertical: relación entre dos workproducts pertenecientes a la

misma etapa del Sistema. Queda definida mediante la siguiente función:

jiTV WPWPf →)( donde WPi, WPj pertenecen a una misma Etapa.

Traza Horizontal: relación entre dos workproducts pertenecientes a la

misma etapa del Sistema. Queda definida mediante la siguiente función:

jiTH WPWPf →)( donde WPi, WPj pertenecen a diferentes Etapas.

4.1.3 Especificación de la Configuración de Trazabilidad

A fin de especificar la configuración de trazabilidad y brindar una rápida

visualización de la misma, se completa una tabla de doble entrada, de aquí en

adelante denominada “Tabla de Configuración de Trazabilidad”, como la

siguiente:

TW

P1

TW

P2

TW

P3

TW

P4

TW

P5

TWP1 0..n 1..n 0 1 0..1

TWP2 0..1 0..1 0..n 1..n 0..1

TWP3 1..n 1..n 0..n 0..1 0..1

TWP4 0 0..1 0..1 0..1 0

TWP5 0..1 0..n 0..n 0..n 0..1

Siendo TWP1..TWP5 los diferentes tipos de workproducts identificados,

las trazas posibles entre los mismos están dadas por los valores ingresados

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 71

en los casilleros que hagan de intersección entre los mismos. Al especificar

una traza se está estableciendo su cardinalidad. Los valores posibles de

cardinalidad y sus significados son los siguientes:

0: TWPi no puede presentar trazas con TWPj.

0..1: TWPi puede presentar una traza con TWPj.

1: TWPi debe presentar una traza con TWPj.

0..n: TWPi puede presentar más de una traza con TWPj.

1..n: TWPi debe presentar como mínimo una traza con TWPj.

Cabe señalar que la tabla debe ser leída comenzando por el tipo de

workproduct que se encuentra a la izquierda. Siguiendo con el ejemplo de

tabla de trazabilidad presentado, algunas posibles asociaciones entre

workproducts son:

• Workproducts del tipo TWP1 pueden presentar más de una traza

con Workproducts del mismo tipo.

• Workproducts del tipo TWP1 deben presentar una traza con algún

workproduct del tipo TWP4

• Workproducts del tipo TWP4 no pueden presentar trazas con

workproducts del tipo TWP1

Concluyendo, esta tabla es el reflejo de la configuración de trazabilidad

establecida en la primer actividad del modelo de proceso planteado.

4.1.4 Configuración de Trazabilidad Vertical

La configuración de trazabilidad vertical que se pueda establecer para

cada etapa de un proyecto dependerá de las metodologías o procesos que se

estén utilizando.

En esta sección se brindan ejemplos prácticos de configuraciones de

trazabilidad vertical para las diferentes metodologías, enfoques y procesos

detallados en los Anexos 11.5 (RUP), 11.6 (ICONIX), 11.7 (Domain-Driven

Design) y 11.8 (Requerimientos Estructurados).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 72

RUP

Siendo que este proceso se focaliza en detallar la manera de especificar

necesidades y requerimientos de software, el mismo puede ser tomado como

ejemplo para establecer una configuración de trazabilidad vertical en la Etapa

de Análisis.

Para cada una de sus alternativas de aplicación explicadas en el Anexo

11.4 se detalla una posible configuración de trazabilidad.

4.1.4.1.1 Solo Casos de Uso

Caso de U

so

Especificación

Suplem

entaria

Caso Uso 0..n 0..n

Especificación Suplementaria 0 0..n

Es interesante destacar como a través de esta configuración de

trazabilidad se da gran importancia a los Casos de Uso, haciendo que los

mismos sean el punto de partida de documentación de un requerimiento de

usuario. Se logra esto prohibiendo trazas desde Especificaciones

Suplementarias hacia Casos de Uso. Las Especificaciones Suplementarias

sirven como complemento al Caso de Uso, no siendo origen de los mismos.

Además al utilizar cardinalidad 0..n no es obligatorio establecer trazas.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 73

4.1.4.1.2 Casos de Uso inducidos a partir de Funcionalidades

Necesidad

Funcionalidad

Caso de U

so

Especificación

Suplem

entaria

Necesidad 0..n 1..n 0 0

Funcionalidad 0 0..n 1..n 0

Caso Uso 0 0 0..n 0..n

Especificación Suplementaria 0 0 0 0..n

Esta configuración a diferencia de la anterior obliga a que el punto de

partida sean las Necesidades. Una necesidad debe obligatoriamente trazar

hacia delante (traza forward) con una o más funcionalidades. Sin embargo,

las Necesidades no pueden trazar directamente con Casos de Uso, obligando

así a llegar a los mismos solo a través de Funcionalidades.

Por otro lado, cada Funcionalidad debe trazar con al menos un Caso de

Us, no pudiendo presentar traza alguna con Especificaciones Suplementarias.

4.1.4.1.3 Casos de Uso son interpretados de la SRS (Software

Requirement Specification)

Funcionalidad

Requerim

iento

Caso de U

so

Funcionalidad 0..n 1..n 0

Requerimiento 0 0..n 1..n

Caso Uso 0 0 0..n

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 74

Las funcionalidades son el punto de partida y deben trazar con

requerimientos. A su vez, cada requerimiento de la SRS debe presentar

trazabilidad con al menos un Caso de Uso.

4.1.4.1.4 Sin Casos de Uso

Necesidad

Funcionalidad

Requerim

iento

Necesidad 0..n 1..n 0

Funcionalidad 0 0..n 1..n

Requerimiento 0 0 0..n

4.1.4.1.5 El Modelo de Casos de Uso define las funcionalidades del

producto

Necesidad

Caso de U

so

Necesidad 0..n 1..n

Caso de Uso 0 0..n

Proceso ICONIX

ICONIX, como se menciona en el Anexo correspondiente, es un proceso

altamente iterativo. No señala etapas marcadas dentro del proceso, sino que

especifica los pasos necesarios para llevarlo adelante. A su vez, no persigue

la idea de tener que alcanzar un resultado para poder movernos al siguiente

paso.

La característica que diferencia a ICONIX de otros procesos es que

resalta la necesidad de crear Diagramas de Robustez para cada Caso de

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 75

Uso. Los Diagramas de Robustez permiten reducir el “gap” entre el Análisis y

el Diseño.

En base a este elemento diferenciador, se analiza una posible

configuración de trazabilidad vertical para la Etapa de Análisis de este

proceso, ya que el resto de etapas (diseño, construcción y testing) no aportan

elementos ricos y diferenciadores en cuanto a trazabilidad.

En la definida Etapa de Análisis se encuentran los siguientes elementos:

Casos de Uso, Modelo de Dominio y Diagramas de Robustez. A fin de brindar

mayor granularidad de trazabilidad se identifica como workproduct:

• a cada entidad de dominio perteneciente al Modelo de Dominio y,

• a los elementos propios de un Diagrama de Robustez (Objetos de

Periferia, Objetos de Entidad y Objetos de Control).

En base a la indicación del proceso que dice: los Objetos de Entidad

propios de los Diagramas de Robustez deberán ser Entidades de Dominio

identificadas en el Modelo de Dominio. Con lo cual, en la configuración de

trazabilidad se hace mención a Entidades de Dominio solamente.

Caso de U

so

Entidad de D

ominio

Objeto de

Periferia

Objeto de C

ontrol

Caso de Uso 0..n 0..n 0..n 0..n

Entidad de Dominio 0 0..n 0 0

Objeto de Periferia 0 0 0 0..n

Objeto de Control 0 0..n 0 0..n

La configuración de trazabilidad para la Etapa de Análisis de este

proceso señala a los casos de uso como punto de partida. Cada caso de uso

puede presentar trazas con los diferentes elementos que integran su flujo de

acción: Entidades de Dominio, Objetos de Periferia y Objetos de Control.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 76

Siguiendo los lineamientos establecidos por el proceso, al crear los

Diagramas de Robustez se tiene que:

• los Objetos de Periferia solo pueden presentar trazas con los

Objetos de Control,

• los Objetos de Control solo pueden presentar trazas con otros

Objetos de Control y Entidades de Dominio,

• las Entidades de Dominio solo pueden presentar trazas con otras

Entidades de Dominio.

Domain Driven Design

Eric Evans bajo su proceso Domain Driven Design aporta el concepto de

“Modelo de Separación de Capas”, el cual es adoptado para establecer una

posible configuración de trazabilidad vertical en la Etapa de Implementación.

De cada capa planteada por Evans se clasifica un tipo de workproduct

diferente:

• Capa de Presentación: Componentes Vista

• Capa de Aplicación: Componentes Control

• Capa de Dominio / Negocio: Componentes Modelo

• Capa de Infraestructura: Componentes Infraestructura

Con estos elementos es posible definir la siguiente configuración de

trazabilidad vertical en la Etapa de Implementación:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 77

Com

ponentes V

ista

Com

ponentes C

ontrol

Com

ponentes M

odelo

Com

ponentes Infraestructura

Componentes Vista

0..n 0..n 0 0

Componentes Control

0 0..n 0..n 0

Componentes Modelo

0 0 0..n 0..n

Componentes Infraestructura

0 0 0 0..n

Requerimientos Estructurados

Los tipos de workproducts que pueden clasificarse en la metodología

son:

- Objetivo de negocio (Goal): Objetivo del sistema de alto nivel

expresado en términos del negocio.

- Requerimiento estructurado

- Paso: cada uno de los pasos que integra el flujo de un requerimiento

determinado.

- Link: información adicional de un requerimiento como ser

screenshots o storyboards.

- Caso de Prueba

Así, la metodología a través de su herramienta Optimal Trace permite

capturar la siguiente trazibilidad:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 78

Objetivo

Requerim

iento E

structurado

Paso

Link

Caso de

Prueba

Objetivo 0 0..n 0 0 0

Requerimiento Estructurado 0 0..n 0..n 0..n 0..n

Paso 0 0 0 0 0

Link 0 0 0 0 0

Caso de Prueba 0 0 0 0 0

4.1.5 Configuración de Trazabilidad Horizontal

Siendo uno de los objetivos de este trabajo el de reducir el “gap” de

conocimiento entre el Análisis y Diseño/Desarrollo, se establecen en esta

sección posibles configuraciones de trazabilidad horizontal que permitan ligar

dichos modelos.

Para establecer la configuración de trazabilidad horizontal se hace uso

de los tipos de workproducts identificados en la sección anterior.

Se analizan dos alternativas según que metodología/proceso se esté

utilizando para el Análisis del proyecto:

• Trazabilidad Horizontal en base a RUP

• Trazabilidad Horizontal en base a ICONIX

Se hará uso de la “Tabla de Configuración de Trazabilidad” citada

anteriormente.

Trazabilidad Horizontal en base a RUP

Los tipos de workproducts del proceso RUP que sirven para establecer

trazas horizontales con la Etapa de Implementación son los Requerimientos o

Casos de Uso, según la alternativa de aplicación de RUP utilizada.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 79

La configuración de trazabilidad que se propone es la siguiente:

Co

mp

on

ente

Vista

Co

mp

on

ente

Co

ntro

l

Co

mp

on

ente

Mo

delo

Co

mp

on

ente

Infraestru

ctura

Requerimiento 1..n 0 0 0

Caso de Uso 1..n 0 0 0

Mediante esta configuración se establece:

• que todo requerimiento o caso de uso especificado presente al

menos una traza con la Etapa de Implementación,

• que los componentes vista sean los tipos de workproduct de la

Etapa de Implementación que sirvan como nexo con la Etapa de

Análisis mediante las trazas horizontales documentadas,

Trazabilidad Horizontal en base a ICONIX

Los elementos de los diagramas de robustez de este proceso son los

que establecen la trazabilidad horizontal con la Etapa de Implementación.

Se propone la siguiente configuración de trazabilidad:

Co

mp

on

ente

Vista

Co

mp

on

ente

Co

ntro

l

Co

mp

on

ente

Mo

delo

Co

mp

on

ente

Infraestru

ctura

Objeto Periferia 1..n 0 0 0

Objeto Control 0 1..n 0 0

Entidad Dominio 0 0 1..n 0

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 80

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 81

5 AIT - Extractores de Trazabilidad

Documentar la trazabilidad durante la vida de un proyecto es una tarea

que requiere un gran esfuerzo por parte de quien la desempeñe. Si a esto a

su vez le sumamos el esfuerzo extra necesario para su actualización a

medida que los workproducts o trazas son modificados, vemos la necesidad y

obligación de destinar un recurso con dedicación full-time a dichas

actividades.

Generalmente la documentación de trazabilidad se realiza de manera

incorrecta, o ni siquiera se tiene en cuenta por cuestiones de costo / beneficio.

Es comúnmente el analista quien debe ir volcando en la herramienta de

análisis los diferentes workproducts y relaciones existentes de manera

explícita haciendo uso de la matriz de trazabilidad o por medio de elementos

UML que permitan vincular diferentes elementos.

El problema principal es que generalmente no existe un medio

automatizado que permita la carga y actualización de trazas y workproducts

desde el proyecto al modelo de análisis de impacto en cuestión.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 82

Este factor es uno de los mayores impedimentos a la hora de

implementar el proceso de análisis de impacto en forma efectiva y con una

relación costo-beneficio positiva en una organización de desarrollo de

software.

Por lo tanto se ataca esta problemática reduciendo las horas hombre

requeridas para la creación y actualización de toda la información de

trazabilidad. Para esto se definen extractores automatizados de

trazabilidad que serán utilizados durante la denominada actividad

“Identificación” en el proceso AIT detallado anteriormente.

En este capítulo se define como lograr automatizar la documentación de

trazabilidad a través de la utilización de extractores. Además se brindan

ejemplos de extractores desarrollados para las etapas de Análisis, Diseño e

Implementación.

5.1 Sincronización de Trazabilidad Automatizada

La información de trazabilidad generada durante la actividad de

Identificación del proceso AIT deberá ser almacenada en un repositorio de

trazabilidad con cierta estructura predefinida para su posterior utilización en la

actividad de Análisis de Impacto. Este pasaje de información desde el “mundo

real” al modelo de trazabilidad es denominado con el concepto de

sincronización.

Así, un extractor es el medio por el cual un workproduct o traza es

sincronizado entre el proyecto y la herramienta de forma automatizada. En

referencia a los conceptos brindados por el framework mostrado en la Sección

2.3.5 se puede decir que un extractor permite pasar del modelo de objetos de

interfaz al modelo interno de objetos del enfoque.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 83

Se definen dos tipos de extractores: extractores de trazas y

extractores de workproducts. Ambos poseen la misma finalidad:

automatizar la extracción de información de trazabilidad y el almacenamiento

en el repositorio de trazabilidad.

5.2 Etapa de Análisis – Enterprise Architect Extractor

Enterprise Architect (EA) es una herramienta útil para la documentación

del análisis de proyectos mediante notación UML. La misma ha sido utilizada

en el primer caso práctico demostrado en este trabajo. De manera de

automatizar la documentación de trazabilidad presente en el modelo de

Análisis se implementó un extractor capaz de transformar las notaciones UML

utilizadas en la herramienta a información de trazabilidad.

El extractor fue implementado bajo la siguiente arquitectura:

EA se utilizó en modalidad Corporativa de manera de almacenar el

modelo en Base de Datos (EA BD). El extractor EA tiene la funcionalidad de

leer datos de tablas propias de EA (EA BD) y pasarlos al repositorio de

trazabilidad propio de la herramienta de trazabilidad ImpactTrace detallada

más adelante.

En la herramienta Enterprise Architect (EA) es posible documentar

diferentes tipos de artefactos y trazas. En las siguientes secciones se

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 84

presentan ejemplos de trazabilidad documentados en EA durante el primer

caso práctico.

5.2.1 Trazabilidad entre Requerimientos

5.2.2 Trazabilidad entre Requerimientos y Casos de Uso

cd Formal Requirements

Restricciones por perfi l de usuario

Control de promociones activas

Control de carga de artículos y estructuras comerciales

Administración de perfi les, usuarios y permisos

Templates de Promociones

Administración de Templates

Campos editables

Grupo de Templates

«trace»

«trace»

«trace»

«trace»

«trace»

«trace»

cd Traces Req-UseCase

Administración de Templates Crear

Template

Editar Template

Eliminar Template

Buscar Template

Campos editables

Editar Acceso Campo

Grupo de Templates

ABM Grupo de Template

«trace»

«trace»

«trace»«trace»

«include»

«trace»

«trace»

«include»

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 85

5.2.3 Trazabilidad entre Casos de Uso y Vistas

5.3 Etapa Implementación

La clasificación de tipos de workproducts de la Etapa de Implementación

puede respetar las capas identificadas por Eric Evans: Vista – Control –

Modelo. Así, en esta sección se brindan ejemplos de implementación de

extractores para cada una de las capas mencionadas.

Primero se cubre un extractor propio para la Capa de Vista y Control

implementado sobre los conceptos del framework Struts.

cd Traces UseCase-Screen5

Eliminar Template

Buscar Template

/template/template_filter.jsp

Editar Condicion Template

/template/template_condition_date.jsp

/template/template_condition_exclude_tab.jsp

/template/template_condition_item_tab.jsp

/template/template_condition_promo_v ariable.jsp

/template/template_condition_v alue.jsp

Seleccionar Tipo Condicion

«trace»

«trace»

«trace»

«trace»

«trace»

«trace»

«trace»

«include»

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 86

Posteriormente para la Capa de Modelo se especifica un extractor de

trazabilidad implícita basado en dependencia de código y, otro basado en

trazabilidad explícita documentada por los mismos desarrolladores del equipo

de proyecto.

5.3.1 Capa de Vista y Control – Struts Extractor

Este extractor se basa en detalles de implementación del framework

Struts para lograr extraer la información de trazabilidad.

En la siguiente tabla puede observarse la relación entre cada artefacto

extraído y su correspondiente tipo de workproduct generado en el modelo de

trazabilidad.

Artefactos Extraídos Tipo de Workproducts Generados

Java Server Pages

Struts ActionForms Workproducts Vista

Actions Struts Workproducts Control

Es común que los archivos .jsp sean almacenados a partir de una misma

carpeta. Así este extractor recorre en forma recursiva a partir de un directorio

base, identificando a un workproduct vista con el nombre del archivo

correspondiente por cada archivo .jsp hallado.

Struts basa su configuración en un archivo XML llamado struts-

config.xml. Este extractor se vale del mismo para extraer los ActionForms y

Actions Struts, workproducts de Vista y Control respectivamente. En el

siguiente cuadro se muestra un fragmento de dicha configuración.

<!-- Form Beans -->

<form-beans>

<form-bean name="rewardSelection"

type="ncr.dpc.form.reward.RewardSelection"/>

<form-bean name="rewardGeneralInfo"

type="ncr.dpc.form.reward.RewardGeneralInfo"/>

<form-bean name="rewardLimits" type="ncr.dpc.form.reward.RewardLimits"/>

<form-bean name="promotionForm"

type="ncr.dpc.form.promotion.PromotionForm"/>

</form-beans>

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 87

Asimismo, en el mismo archivo de configuración se encuentran

documentadas las trazas implícitas entre workproducts del tipo Vista y

Control. A modo de ejemplo, se muestra el siguiente fragmento del archivo de

configuración de Struts:

<action-mappings>

<action path="/PagePromotionSearchResult"

type="ncr.dpc.action.promotion.PagePromotionSearchResultAction">

<forward name="success" path="/promotion/SearchPromotionFilter.jsp"/>

</action>

<action name="promotionGeneralTabForm" path="/PopulatePromotionGeneralTabForm"

type="ncr.dpc.action.promotion.PopulatePromotionGeneralTabFormAction" scope="request"

validate="false">

<forward name="success" path="/promotion/CEVPromotionGeneralTab.jsp"/>

</action>

</action-mappings>

Concluyendo, este extractor permite automatizar la documentación de

trazas existentes entre:

• Vista (.jsp) y Vista (ActionForms)

• Vista (.jsp) y Control (Actions Struts)

• Control (Action Struts) y Control (Action Struts)

5.3.2 Capa Control, Modelo e Infraestructura - Java Dependency Extractor

Siendo JAVA el lenguaje de programación elegido para ambos casos

práctico tratados en este trabajo, se hizo uso de la herramienta Dependency

Finder, explicada en la sección 2.5.2, para construir un extractor capaz de

extraer la trazabilidad implícita en el código con una granularidad a nivel de

método de clase.

5.3.3 Capa Modelo e Infraestructura - Doclet Extractor

Suponiendo el caso en el que a un desarrollador o a un grupo de

desarrolladores se les encarga la tarea de implementar cierta funcionalidad

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 88

que responde a un caso de uso en particular. Entonces sería útil que los

desarrolladores tuvieran algún medio o herramienta para:

• identificar los métodos y/o clases que implementan dicha

funcionalidad.

• dejar constancia de esta relación, es decir, documentar las trazas

entre el código propio a esta nueva funcionalidad y el caso de uso

correspondiente.

La idea sobre la cual se basa el presente extractor es que la

documentación de trazabilidad se incluya dentro del código mismo mediante

anotaciones especiales (tags doclet).

A modo de ejemplo se presenta el siguiente fragmento de código java:

package test; /** * * @author Martin * @wp */ public class ClassA { /** * @wp * @trace-from name:CU001 */ public void methodA() { } /** * @wp * @trace-to name:test.ClassB */ public void methodB() { } }

Gracias al tag doclet @wp el extractor al analizar esta clase (ClassA)

puede identificar tres workproducts de modelo:

• ClassA

• ClassA.methodA

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 89

• ClassA.methodB

Además se definieron dos tags doclets para la documentación de trazas

en el código:

• @trace-to: utilizado para trazas forward

• @trace-from: utilizado para trazas backward

Concluyendo, un desarrollador podrá por ejemplo hacer uso del tag

@trace-from para documentar una traza entre un caso de uso y un método

java. O hacer uso de @trace-to para dejar en claro la dependencia entre dos

métodos propios de la capa de modelo.

5.3.4 Capa Infraestructura – DAO Extractor

Es común que la capa de acceso a datos de una aplicación respete el

patrón de diseño DAO (Data Access Object). El objetivo de dicho patrón es el

de encapsular todos los accesos a la fuente de datos ocultando los detalles

de implementación de la misma.

Por lo general esta capa de acceso a datos es invocada desde clases de

negocio (capa de modelo), o bien desde la capa de control, estableciéndose

cierta trazabilidad.

En particular, para el segundo caso práctico analizado en este trabajo,

las clases DAO son accedidas en forma directa desde la capa de control

(Actions Struts). Cada clase DAO ofrece un servicio de persistencia hacia la

capa de control, los cuales son definidos en un archivo de configuración XML

identificándolos a través de un nombre.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 90

<service name="contractDao"

description="contract dao operations"

className="com.inetpsa.cis.domain.dao.ContractDaoService">

</service>

<service name="contractSummaryDao"

description="contract Summary dao operations"

className="com.inetpsa.cis.domain.dao.ContractSummaryDaoService"

>

</service>

Así, la implementación de un extractor capaz de analizar este archivo

XML, permitió documentar cada Servicio DAO como un Workproduct propio

de la capa de Infraestructura en el segundo caso práctico.

5.3.5 Capa Infraestructura – DB Generic Extractor

Siendo la base de datos uno de los componentes de arquitectura

primordiales de casi todas las aplicaciones desarrolladas hoy en día, es útil

contar con un extractor capaz de obtener información del diseño de la misma.

Así, los workproducts posibles de identificar del diseño de una base de datos

podrían ser:

1) Tabla

2) Campo/Columna de una Tabla

3) Procedimiento Almacenado/Stored Procedure (para

el caso de Bases de Datos que soporten esta

funcionalidad).

Las trazas que se extraen de un Stored Procedure surgen de analizar su

código fuente en búsqueda de sentencias de INSERT, SELECT o DELETE

sobre tablas, quedando establecidas las trazas:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 91

Para lograr esta extracción se utilizó el API de expresiones Jakarta ORO

(http://jakarta.apache.org/).

Por otro lado las columnas/campos son los elementos que describen a

una tabla, estableciendo así la traza:

Para la extracción tanto de este tipo de trazabilidad como de los

workproducts mismos se utilizó la metadata obtenida haciendo uso de la clase

java.sql.DatabaseMetaData (http://java.sun.com/j2se/1.4.2/docs/api/java/sql/DatabaseMetaData.html).

Es importante destacar que la trazabilidad extraída es implícita y por lo

tanto no requiere del esfuerzo humano para su correspondiente

documentación.

5.3.6 Capa Infraestructura – Oracle Extractor

El motor de base de datos Oracle almacena de manera automática la

trazabilidad entre Paquetes (Packages), Stored Procedures y Tablas en una

tabla de sistema propia (SYS.DEPENDENCY$). Esta información es

mantenida de forma transparente al usuario logrando una actualización

automática frente a cambios en los esquemas.

En base a lo dicho fue posible implementar un extractor que

simplemente consulte la tabla SYS.DEPENDENCY$ y extraiga workproducts

y trazas entre los mismos.

La trazabilidad extraída se puede observar en la siguiente imagen:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 92

Este extractor fue utilizado en el segundo caso práctico presentado en

este trabajo, reduciendo notablemente el esfuerzo para la

documentación y actualización de trazabilidad.

5.4 Resumen

En este capítulo se brindó al lector ejemplos que permitan un mejor

entendimiento de extractores de trazabilidad y diversas implementaciones de

los mismos basadas en herramientas específicas.

A modo de resumen, en la siguiente tabla se detallan los extractores de

trazabilidad ejemplificados. Se puede observar también la información de

trazabilidad en la que cada extractor se enfoca.

Extractor Información de Trazabilidad Extraída

EA Extractor

- Workproducts de la Etapa de Análisis (Requerimientos, Casos de Uso, etc.) y trazas entre los mismos.

- Trazabilidad entre workproducts de Análisis y workproducts de Implementación, más específicamente las Vistas.

Struts Extractor

- Workproducts de la Etapa de Implementación: Capa Vista (Java Server Pages y ActionForms), Capa Control (Actions Struts).

- Trazabilidad entre workproducts de Vista y Control.

JAVA Dependency Extractor

- Trazabilidad implícita de la Etapa de Implementación en base a dependencias de código.

- Workproducts de Modelo e Infraestructura (Clases y métodos)

- Trazabilidad entre Capa de Control y Modelo.

- Trazabilidad entre Capa de Modelo e Infraestructura.

Tabla

PaqueteStored

Procedure

Función

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 93

Doclet Extractor - Trazabilidad explícita entre Etapa de Análisis e Implementación en base a anotaciones documentadas en el código.

DataBase Generic Extractor - Trazabilidad implícita en capa de Infraestructura de la Etapa de Implementación: Stored Procedures, Tablas y Cambos/Columnas de Tablas de una Base de Datos.

Oracle Extractor - Trazabilidad implícita en capa de Infraestructura de la Etapa de Implementación: Paquetes, Stored Procedures, Funciones, Tablas. Específico para RDBM Oracle.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 94

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 95

6 AIT - Análisis de Impacto

6.1 Análisis de impacto iterativo

El análisis de impacto, en adelante AI, es la actividad final planteada de

AIT. Al igual que toda metodología de AI tiene como objetivo obtener un CEI

(Conjunto Estimado de Impacto) a partir de un CII (Conjunto de Inicio de

Impacto).

Una de las hipótesis del presente trabajo es la de permitir predicciones

de análisis de impacto más certeras a partir de la implementación de AIT.

Para alcanzar dicho postulado el AI planteado pretende:

1) Que el CEI incluya al CIR: esto significa que lo

realmente impactado por un cambio sea informado

en la estimación.

2) Que el CEI no tenga un tamaño excesivamente

mayor al del CIR.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 96

Bajo estos lineamientos y en base a los casos prácticos llevados

adelante se plantea un AI iterativo, donde cada iteración servirá para acotar al

CEI y asemejarlo al CIR.

El usuario de la metodología se podrá valer de la métrica #CEITWP /

#TWP para saber si es necesario realizar una nueva iteración. Será necesario

definir un límite para dicha métrica, indicando que para valores mayores al

mismo se aconseja una nueva iteración.

A su vez, para realizar una nueva iteración de manera de recortar el CEI,

el usuario debe tomar decisiones. Dichas decisiones serán asistidas mediante

los siguientes criterios:

1) Descartar workproducts con ripple elevado.

2) En base al Gráfico CEI Acumulado por distancia 6.7.4,

descartar workproducts del CEI a partir de cierta distancia de

impacto.

3) En base a información adicional de workproducts

(especificaciones funcionales, revisión de código, capturas de

pantalla, etc.) descartar aquellos no influenciados por el

cambio.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 97

6.2 Clasificación del enfoque

Haciendo uso del framework planteado en la sección 2.3.5 se clasifica el

enfoque planteado de Análisis de Impacto.

IA Application – Elementos diferenciadores

Elemento Explicación Escala

Modelo de los artefactos del dominio

¿Cuáles son los tipos de objetos y

relaciones extraídos del dominio del

sistema?

- Componentes y/o relaciones de análisis predefinidas

- Componentes y/o relaciones de diseño predefinidas

- Componentes de Programa y/o relaciones

Descomposición

¿Pueden los componentes analizados ser

descompuestos y almacenados en la

herramienta / enfoque de AI?

- Si, solo sintaxis

Especificación de cambios

¿Cómo es el cambio especificado frente al

enfoque de AI?

- Si, el cambio se especifica con un simple análisis. Se establece un template para la especificación del cambio y demás parámetros de entrada al enfoque de AI. Ver Sección 6.3

Especificación de resultados

¿Cómo son los resultados del AI

expresados?

- Template para la especificación del resultado de AI. Ver Sección 6.4

Interpretación de resultados

¿Cuánto esfuerzo es requerido por el

usuario para interpretar los

resultados del AI?

- Poco

Otras funcionalidades

¿Qué otras funcionalidades se

encuentran disponibles para el

usuario?

- Configuración de trazabilidad

- Visualización de workproducts sin trazas

- Sincronización de trazabilidad.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 98

IA Parts – Elementos diferenciadores

Elemento Explicación Escala

Modelo de objetos de interfaz

¿Qué objetos y relaciones pueden ser expresados en la

interfaz de usuario del enfoque?

- Cualquier workproduct que haya sido debidamente establecido en la configuración de trazabilidad (ej. requerimientos, decisiones de diseño, clases de modelo, etc.).

Modelo interno de objetos ¿Qué objetos y relaciones utiliza el enfoque?

- Orientado a objetos. Básicamente cada workproduct es un objeto y una traza es otro objeto que relaciona dos workproducts.

Modelo de Impacto

¿Cómo son modeladas las dependencias? ¿Cuándo estas dependencias son

tenidas en cuenta? ¿Qué tan bien las dependencias del modelo se reflejan con las

del sistema?

- Una dependencia entre dos workproducts es modelada a través de una traza. Una traza es un objeto que compone a dos workproducts: uno origen y otro destino.

Enfoque de trazas

¿Qué algoritmos o procedimientos son

utilizados por el enfoque para calcular el impacto en

base a las trazas?

- Ninguno. Las trazas se recorren en forma manual y se va calculando el impacto de manera incremental partiendo de los workproducts origen (conjunto de inicio de impacto).

Descomposición

¿Qué objetos y relaciones son capturados del sistema y almacenados internamente

en el enfoque?

- Todos los que hayan sido debidamente establecidos en la configuración de trazabilidad.

Repositorio ¿Qué repositorio es utilizado para el almacenamiento de

objetos y relaciones?

- Motor de base de datos relacional.

Carga, modificación, navegación

¿Qué funcionalidades brinda el repositorio para la carga, modificación y navegación

de los elementos almacenados en él?

- Todos (Carga, modificación y navegación).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 99

6.3 Especificación del cambio

Cada cambio que se desee realizar a un software existente se convertirá

en el parámetro de entrada a la metodología de análisis de impacto que se

esté llevando adelante. Por lo tanto es necesario especificar dichos cambios

según un template prediseñado.

A continuación se presenta el template de especificación de cambio

utilizado en los casos prácticos del presente trabajo. Se describe cada uno de

sus atributos y los encargados de completarlos.

Especificación de Requerimiento de Cambio

Identificación [Título/enumeración del cambio] Analista de Cambios

Enunciado [Descripción del cambio] Analista de Cambios

Clasificación [Corrección / Agregado o borrado de funcionalidad / Modificación funcional]

Analista de Cambios

Posible implementación

[Descripción funcional y/o técnica para la implementación del cambio] Arquitecto

6.4 Especificación del Resultado de AI

Con la finalidad de documentar los resultados obtenidos en cada una de

las iteraciones realizadas durante un determinado análisis de impacto, el

arquitecto del proceso AIT deberá completar el siguiente template.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 100

Análisis de Impacto

Identificación del Cambio / Iteración Nro. [Identificación del cambio / Iteración Nro.]

Parámetros de Entrada de la Iteración

[Completar solo a partir de la segunda iteración. Indicar que criterio se lleva adelante sobre el análisis de impacto para llevar adelante esta iteración]

Propósito del Análisis de Impacto [¿Qué resultado se espera obtener del análisis de impacto?]

Tipos de Workproducts

analizados [Enumeración de los Tipos de Workproducts utilizados]

Tipos de Trazas utilizados [Forward / Backward]

Conjunto de Inicio de Impacto (CII)

[Enumeración de workproducts que integran el Conjunto de Inicio de Impacto]

Resultado Obtenido

Siendo TWPi cada Tipo de Workproduct analizado y en base a las definiciones dadas en la Sección 2.3.4 se completa la siguiente tabla:

TW

P1

TW

P2

TW

Pn

To

tal

Impactados y Predecidos

No Impactados y No Predecidos

Impactados y No Predecidos

No Impactados y Predecidos

#CEI #CEITWP1 #CEITWP1 … #CEITWPn #CEI

#TWP #TWP1 #TWP2 … #TWPn #TWP

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 101

Métricas

[Tip

o W

P i]

[Tip

o W

P n

]

To

tal #CEITWP / #TWP … … … …

#CIRTWP / #CEITWP … … … …

#CII / #CEI …

[Completar la tabla con los Tipos de workproducts analizados y el cálculo de las métricas:

1) #CEITWP / #TWP: Ver Sección 6.5

2) #CIRTWP / #CEITWP

Gráficos [Gráficos de Análisis de Impacto – Ver Sección 6.6]

Conclusiones de Iteración

[Dejar constancia de la aceptación o no de los resultados obtenidos por la iteración del análisis de impacto. Aclarar si es necesario realizar una nueva iteración de análisis de impacto y en caso afirmativo a partir de que mejora]

6.5 CEITWP vs. TWP

Como se mencionó en la Sección 2.3.5, la métrica CEI vs. SIS analiza,

frente a un determinado cambio, la relación existente entre un conjunto

estimado de impacto y todo el sistema en cuestión.

Uno de los elementos diferenciadores del enfoque presentado es la

necesidad de definir etapas y tipos de workproducts en la actividad de

Configuración de Trazabilidad.

En base a este concepto, se establece una métrica que permite una

comparación entre el conjunto estimado de impacto y el sistema, diferenciada

por tipo de workproduct, logrando así un análisis con resultados más

detallados.

Un conjunto estimado de impacto podría verse como la unión entre los

conjuntos estimados de impacto de los diferentes tipos de workproducts:

TWPnTWPTWP CEICEICEICEI ∪∪∪= ...21

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 102

Entonces, el CEI podría compararse mediante diferentes análisis contra

el sistema, siendo los tipos de workproducts los que definan cada análisis en

particular. Esta comparación queda establecida mediante la siguiente métrica:

TWP

CEITWPvsCEI TWP

TWP =. Donde TWP es el tipo de workproduct elegido

para la comparación.

Esta métrica permite tomar decisiones acertadas al momento de realizar

análisis de impacto ya que se basa en información de trazabilidad

granular descomponiendo al sistema en tipos de workproducts.

6.6 CIRTWP vs. CEITWP

Siguiendo los criterios establecidos en la métrica anteriormente tratada

(CEITWP vs. TWP), se define una nueva métrica para comparar el CIR y el CEI

por tipo de workproduct.

Se obtiene la siguiente ecuación:

������������ � ������������

Donde TWP es el tipo de workproduct

analizado.

Esta métrica permitirá obtener un valor representativo de la eficiencia del

Análisis de Impacto realizado, comparando el CIR y el CEI a nivel de tipo de

workproduct.

6.7 Gráficos de Impacto

En muchas ocasiones, utilizar gráficos (barra, torta, lineales, etc.) para

analizar los resultados obtenidos al aplicar cierta técnica o metodología puede

convertirse en un asistente ideal para la toma de decisiones.

Es por esto que en esta sección se plantean y explican ciertos gráficos

de utilidad para determinar diferentes aspectos acerca de los resultados

arrojados por el Análisis de Impacto que se esté llevando adelante.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 103

6.7.1 Distribución del CEI según distancia de impacto

Como ya se menciono, el impacto debido a un cambio se propaga por

los workproducts en forma de ripple, definiendo a la distancia de impacto

como la cantidad de trazas que el efecto de ripple atraviesa a medida que

avanza. Es decir, se inicia con una distancia igual a cero en los workproducts

de origen de impacto o conjunto inicialmente impactado (CII), y a medida que

el impacto se propaga a través de las trazas documentadas la distancia de

impacto se incrementa.

La idea es graficar la distribución del impacto discriminada por tipo de

workproduct (eje Y) según la distancia de impacto (eje X).

En la práctica este gráfico aportó la siguiente información:

1) distancias con mayor y menor impacto,

2) para una distancia en particular la distribución de

impacto según el tipo de workproduct.

A continuación se presenta un ejemplo del gráfico:

Distribución de CEI según Distancia de Impacto

0

5

10

15

20

25

30

35

40

45

50

0 1 2 3 4 5 6 7 8 9 10 11

Distancia

CE

I

Requerimiento Caso de Uso Decision Diseño

Implementacion Vista Implementacion Control Implementacion Modelo

Implementacion Infraestructura

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 104

6.7.2 Distribución del CEI según Tipo de Workproduct

Otro punto interesante a observar de un CEI es el impacto en cada tipo

de workproduct.

Entre las conclusiones que se pueden obtener de este tipo de gráfico se

mencionan:

1) determinar si el impacto se focaliza sobre un tipo

de workproduct en particular,

2) determinar el esfuerzo necesario para validar o

analizar el CEI para un tipo de workproduct

observando el porcentaje de impacto sobre el

total de workproducts de igual tipo.

La idea del gráfico entonces es brindar una comparación entre la

cantidad de workproducts estimados de ser impactados (CEI) y el total de

workproducts existentes por tipo de workproduct establecido en la

configuración de trazabilidad. Para este fin se graficó en el eje Y la cantidad

de workproducts y en el eje X los diferentes tipos de workproduct.

Distribución del CEI según Tipo de Workproduct

0

50

100

150

200

250

300

Reque

rimie

nto

Casos

de

Uso

Decisi

on D

iseño

Vista

Contro

l

Mod

elo

Infra

estru

ctura

Tipos de Workproducts

Can

tidad

de

Work

pro

duct

s

WorkProducts Impactados Total de WorkProducts

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 105

6.7.3 CEITWP vs. TWP

Habiendo definido la métrica que compara para un determinado tipo de

workproduct la cantidad estimada de ser impactada frente al total de los

mismos surge el siguiente gráfico.

Siendo que la métrica graficada permite conocer la efectividad del

análisis de impacto dependiendo del tipo de workproduct, este gráfico permite

visualizar y conocer de manera rápida los puntos más aceptables y los menos

del mismo. Para este ejemplo, se puede observar que para workproducts de

infraestructura el enfoque no fue muy acertado, existiendo seguramente un

gran efecto de ripple que hizo que la mayoría de workproducts se vean

impactados (0,72). Por el contrario, para workproducts de control, la métrica

arroja un valor de 0,23, por debajo del valor de referencia, sugiriendo un CEI

muy aceptable.

6.7.4 CEI Acumulado por distancia

A medida que la distancia se incrementa, es decir cuando nos alejamos

del conjunto de inicio de impacto (CII) como resultado del efecto ripple, la

cantidad de workproducts incluidos en el conjunto estimado de impacto (CEI)

o bien se mantiene constante o crece en su magnitud.

Ahora bien, si dicho crecimiento se produce en forma abrupta al

incrementar la distancia en una unidad, significa que el efecto ripple es tal que

CEItwp vs. Tipo de Workproduct

0,23

0,41

0,50

0,23 0,22

0,43

0,72

0,3 0,3 0,3 0,3 0,3 0,3 0,3

0,00

0,10

0,20

0,30

0,40

0,50

0,60

0,70

0,80

Requ

erim

iento

Caso

s de

Uso

Decis

ion Di

seño

Vista

Control

Mod

elo

Infra

estru

ctur

a

CEI/WP Etapa Valor Referencia

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 106

el impacto obtenido va a cubrir gran parte del sistema, situación que como ya

se mencionó no es para nada deseable en un análisis de impacto.

Por el contrario, si el CEI presenta un crecimiento leve desde la menor

distancia hasta la máxima, se puede afirmar con mayor seguridad de estar

frente a un CEI con mayor veracidad.

Concluyendo, este gráfico permite identificar los puntos en donde se

presentan dichos crecimientos abruptos. Una vez identificados, se podrán

tomar decisiones para recortar el CEI hasta la distancia en donde se produce

el pico de crecimiento, quedándonos con la porción más útil.

A modo de ejemplo, en base al gráfico presentado, se puede concluir

que:

1) el CEI de workproducts de modelo es útil hasta una

distancia no mayor a 5 teniendo quizás que

CEI Acumulado por distancia

0

10

20

30

40

50

60

70

0 1 2 3 4 5 6 7 8 9 10 11

Distancia

CE

I Acu

mu

lad

o

Requerimiento Casos de Uso Decision Diseño Vista

Control Modelo Infraestructura

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 107

descartar al resto del conjunto para llegar a datos

más precisos,

2) los requerimientos presentan un efecto ripple casi

nulo pudiendo significar una gran veracidad en su

estimación de impacto.

6.7.5 CEITWP vs. CIRTWP

En base a la métrica que compara el CIR contra el CEI por tipo de

workproduct (Sección 6.6), surge el siguiente gráfico:

Este gráfico permite conocer la eficiencia de un análisis de impacto al

comparar que tanto se asemeja el CEI al CIR. Al definir las constantes H y M,

definidas en la Sección 2.3.5, quedan definidos los siguientes rangos de

valores:

i. [0, M] � CEI >> CIR: Estimación “segura”. Pero gran

esfuerzo para chequear el CEI.

ii. (M, 1) � CEI > CIR: Estimación “segura”. Además CEI no

tan mayor al CIR.

iii. 1 � CEI = CIR: Situación ideal.

0

0,2

0,4

0,6

0,8

1

1,2

1,4

1,6

TWP1 TWP2 TWP3 TWP4 TWP5 TWP6 TWP7

CEI=CIR

CEI>>CIR

CEI<<CIR

CIR/CEI

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 108

iv. (1, H) � CEI < CIR: Estimación esperada. El AI es

aproximado y se queda corto a lo que realmente debe ser

modificado.

v. [H,∞] � CEI << CIR: Estimación no muy buena. Gran salto

entre lo estimado y lo realmente impactado, significando un

trabajo extra para descubrir el CIR.

A partir de este gráfico es fácil conocer la eficiencia de un análisis de

impacto en cada tipo de workproduct analizado. Se busca que las

estimaciones se encuentren en los rangos 2, 3 o 4 y nunca en los extremos 1

o 5.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 109

7 AIT - Herramienta de Soporte

En este capítulo se presenta a ImpactTrace, una herramienta que sirve

de soporte al proceso AIT.

El desarrollo de esta herramienta surgió en base a perseguir los

siguientes objetivos:

1) concentrar la documentación de trazabilidad en un

solo lugar facilitando su acceso a cualquier

stakeholder involucrado en un proyecto de software,

2) minimizar el esfuerzo requerido para realizar las

tareas propias del proceso AIT en relación al

beneficio obtenido,

3) maximizar la eficiencia con que dicho proceso es

llevado adelante,

4) permitir obtener de manera ágil y rápida diferentes

resultados de análisis de impacto.

Este capítulo está organizado de la siguiente manera:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 110

1) Sección 8.1 describe la arquitectura de la

herramienta, dando detalles de la tecnología y

frameworks utilizados para su construcción.

2) Sección 8.2 detalla cada clase involucrada en el

dominio de la solución. Se presenta el

correspondiente diagrama de clases.

3) Sección 8.3 ejemplifica cada funcionalidad ofrecida

por la herramienta.

7.1 Arquitectura

ImpactTrace es una herramienta construida sobre plataforma Web en

lenguaje Java.

La persistencia de las clases de dominio se implementó utilizando el

framework Hibernate (www.hibernate.org/), logrando independizar en gran

medida a la aplicación del motor de base de datos sobre la cual quiera

implantarse.

El patrón de diseño MVC fue implementado mediante el framework

Struts (http://struts.apache.org/).

Otros de los frameworks utilizados para este desarrollo fueron:

1) Prefuse (http://prefuse.org): toolkit para la

visualización de información de manera dinámica e

interactiva. Fue utilizado para la generación de

grafos de impacto.

2) JFreeChart (http://www.jfree.org/jfreechart/): librería

Java para la generación de gráficos estadísticos de

varios tipos. Utilizado para graficar resultados de

análisis de impacto.

Análisis de Impacto basado en información de trazabilidadUniversidad de Buenos Aires – Facultad de Ingeniería

7.2 Clases de Dominio

Clase

Workproduct

Modela un workproduct.

Atributos:

- traces: colección de trazas hacia delante.

- backwardTraces: colección de trazas hacia atrás.

- phase: fase/etapa a la que pertenece.

- type: identifica

Trace

Modela una dependencia entre dos workproducts. Dicha dependencia modela el impacto que un workproduct origen puede tener sobre un workproduct destino.

Atributos

- sourceWP: workproduct origen de la traza.

- targetWP: workproduct destino de

- extractedBy: agregación con el extractor que dio origen a esta traza.

WPType

Modela un tipo de workproduct en particular.

Atributos:

- extractors: colección de extractores capaces dar origen a este tipo de workproducts.

sis de Impacto basado en información de trazabilidad Facultad de Ingeniería

Tesista: Martín de la Rosa Tutor: Lic. Pablo Cosso

Clases de Dominio

Descripción

Modela un workproduct.

Atributos:

traces: colección de trazas hacia delante.

backwardTraces: colección de trazas hacia atrás.

phase: fase/etapa a la que pertenece.

type: identifica su tipo.

Modela una dependencia entre dos workproducts. Dicha dependencia modela el impacto que un workproduct origen puede tener sobre un workproduct destino.

Atributos

sourceWP: workproduct origen de la traza.

targetWP: workproduct destino de la traza.

extractedBy: agregación con el extractor que dio origen a esta traza.

Modela un tipo de workproduct en particular.

Atributos:

extractors: colección de extractores capaces dar origen a este tipo de workproducts.

: Martín de la Rosa : Lic. Pablo Cosso

Modela una dependencia entre dos workproducts. Dicha dependencia modela el impacto que un workproduct origen puede tener sobre un

extractedBy: agregación con el extractor que dio origen a esta traza.

extractors: colección de extractores capaces dar origen a este tipo de

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 112

ExtractorType

Clase abstracta que modela un tipo de extractor. Los tipos de extractores podrán ser de trazas o workproducts. Instancias de esta clase servirán al momento de definir los extractores de un proyecto.

Atributos:

- implementationClass: clase concreta que implementa un extractor de workproducts o un extractor de trazas. Esta clase será instanciada en tiempo de ejecución para la correspondiente extracción.

WPExtractorType

Modela un tipo de extractor de workproducts. El usuario al definir extractores de workproducts de un proyecto estará creando instancias de esta clase y señalando la implementación concreta del extractor a través del atributo implementationClass.

TraceExtractorType

Modela un tipo de extractor de trazas. El usuario al definir extractores de trazas de un proyecto estará creando instancias de esta clase y señalando la implementación concreta del extractor a través del atributo implementationClass.

WPExtractor

Interfaz que deberá ser implementada para proveer a la plataforma de un nuevo extractor de workproducts.

Métodos:

- Vector<Workproduct> getWorkProducts(): devuelve un vector de workproducts extraídos.

TraceExtractor

Interfaz que deberá ser implementada para proveer a la plataforma de un nuevo extractor de trazas.

Métodos:

- Vector<Trace> getTraces(): devuelve un vector de trazas extraídas.

PhaseType

Modela los diferentes tipos de fases/etapas que pueden encontrarse en un proyecto de software. Al momento de configurar la trazabilidad, el usuario indicará para cada tipo de fase los tipos de workproducts con los que cuenta.

Phase

Modela una fase en particular de un proyecto.

Atributos:

- workproducts: colección de workproducts propios de esta fase.

Project

Modela un proyecto. Es el punto de partida para la configuración de trazabilidad.

Atributos:

- users: stakeholders asociados al proyecto con sus respectivos roles dentro del mismo.

- phases: fases/etapas propias del proyecto.

User Modela un stakeholder de un proyecto. Cada usuario podrá estar asociado a uno o mas proyectos con un respectivo rol.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 113

7.3 Funcionalidades

ImpactTrace fue diseñado y desarrollado con la idea de llevar a la

práctica todos los detalles de las actividades del proceso AIT. En esta sección

se cubren las siguientes funcionalidades, que hacen de la herramienta un

elemento de soporte fundamental para AIT:

1) Visualización de trazabilidad

2) Documentación de requerimientos de cambio

3) Obtención de gráficos y métricas

4) Consolidación de información de trazabilidad

5) Configuración de Trazabilidad

6) Configuración de Extractores

7) Análisis de impacto iterativo

7.3.1 Visualización de trazabilidad

Ciertas herramientas del mercado ofrecen funcionalidades para

documentar las trazas de un sistema (Sección 2.5). A la hora de brindar al

usuario capacidades para la visualización de las mismas, es común

encontrarse con matrices de trazabilidad de doble entrada. Por lo general, el

usuario selecciona un workproduct en particular y posteriormente la

herramienta genera la matriz de trazabilidad con el resto de workproducts

dependientes.

En la siguiente figura se visualiza un ejemplo de matriz de trazabilidad

entre requerimientos y casos de uso:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 114

Cas

o d

e U

so 1

Cas

o d

e U

so 2

Cas

o d

e U

so 3

Cas

o d

e U

so 4

Cas

o d

e U

so 5

Cas

o d

e U

so 6

Cas

o d

e U

so 7

Cas

o d

e U

so 8

Requerimiento 1 X X X X X X

Requerimiento 2

Requerimiento 3 X X

Requerimiento 4 X

Requerimiento 5 X

Cada X en un casillero simboliza una traza; en este caso desde un

requerimiento a un caso de uso. Por ejemplo el Requerimiento 3 traza a los

Casos de Uso 2 y 4.

Estas matrices aportan una visión estática y de poca utilidad al momento

de visualizar las trazas. Se habla de una visión estática debido a que no es

posible navegar desde un workproduct a otro de manera de ir observando el

impacto en progreso.

Por lo tanto, el esfuerzo requerido para analizar el impacto originado

sobre un workproduct se torna tan significativo, que finalmente resulta

imposible realizar análisis de impacto durante el ciclo de vida del proyecto.

A modo diferenciador, ImpactTrace ofrece la navegación de grafos de

impacto que permite entre otras cuestiones una visión dinámica e intuitiva de

las trazas.

Las uniones capturadas por los grafos proporcionan una base para la

medición y toma de conocimiento acerca de las relaciones entre workproducts

(Bohner, Change Impact Analysis for Design Evolution, 1996).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 115

Así, el proceso de análisis de impacto debe estar soportado

por una herramienta que permita la navegación de grafos de

impacto.

A continuación se enumeran las diferentes características que se

siguieron para la construcción de esta funcionalidad de navegación. Estas

premisas fueron pensadas con la idea de facilitar la visualización de trazas y

navegación a través de las mismas; y como consecuencia mejorar el proceso

de análisis de impacto.

Elementos del grafo

Un grafo está integrado por dos tipos de elementos: nodos y aristas. Los

nodos serán los responsables de representar a los workproducts del modelo y

las aristas a las trazas existentes entre los mismos.

Es importante destacar el uso de aristas direccionales que nos permitan

denotar el impacto de un workproduct sobre otro debido al efecto de ripple. Es

decir, cada arista relacionará dos workproducts, siendo uno el que origina el

impacto (workproduct origen), y otro el que es impactado (workproduct

destino).

Visualización en base al perfil / rol del usuario

Los workproducts pertenecientes a diferentes etapas (análisis, diseño,

implementación) deberán ser identificados en el grafo con facilidad. Esto nos

permitirá que el usuario que analice el impacto, se concentre específicamente

en el área de su interés. Por ejemplo, para alguien que se desempeñe con el

rol de Analista de un equipo de trabajo, lo más seguro es que solo le interese

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 116

visualizar la etapa de análisis, dejando de lado el resto de workproducts.

Mientras que un arquitecto o desarrollador, se verá más involucrado en ver

como un cambio puede impactar el diseño o implementación del sistema.

Distancia de visualización

Para evitar que el grafo se transforme en una “tela de araña” de nodos y

relaciones que haga imposible la identificación de workproducts impactados

se tendrá en cuenta la distancia de visualización.

La distancia de visualización estará definida por la cantidad de trazas

que se deben atravesar para poder llegar desde un workproduct a otro.

En la figura se muestran las distancias referidas a partir del workproduct

WP1.

La herramienta permite, mientras se visualiza el grafo de impacto,

establecer dinámicamente la distancia de impacto que se desea tener en

cuenta.

Selección de workproducts inicialmente impactados

Los grafos son creados a partir del conjunto de workproducts

inicialmente impactados seleccionados por el usuario. Se cree que un grafo

que muestre todas las trazas del sistema carece de valor alguno, debido a

que puede resultar en una tela de araña de nodos y relaciones que dificulte la

identificación de workproducts.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 117

Dinámica del grafo

El proceso de identificación de workproducts impactados es calculado a

través del efecto ripple a partir de los workproducts inicialmente impactados.

El resultado obtenido al aplicar el efecto ripple puede ser modificado de

manera interactiva por el usuario, permitiendo agregar o quitar workproducts

al conjunto de impacto. De esta manera, el grafo desarrollado es dinámico y

permite la interacción del usuario.

7.3.2 Documentación de Requerimientos de Cambio

Los requerimientos de cambio, en adelante RC, deben quedar

asentados y correctamente documentados, no solo para servir de input al

análisis de impacto, sino también para futuras revisiones.

AIT establece un template para la especificación de los RC (Sección

6.3). Mediante dicho template ImpactTrace permite al usuario documentar

todos los atributos de un RC. Para un RC en particular, además de su

información, permite la carga de diferentes Análisis de Impacto llevados a

cabo, sus respectivos resultados (métricas, gráficos, workproducts incluidos

en el CEI) y el CIR resultante.

La documentación de un RC en ImpactTrace termina siendo la

composición de:

1) Atributos de especificación de AIT.

2) Uno o más análisis de impacto con sus respectivos

conjuntos estimados de impacto (CEI).

3) Conjunto de Impacto Real (CIR).

En base al lineamiento dado “para cada cambio se debe realizar una

revisión en el repositorio” (Sección 3.3), sería interesante incluir en una futura

versión de ImpactTrace la posibilidad de extraer de manera automática el CIR

desde el repositorio de versiones, no requiriendo esfuerzo humano y

eliminando toda posibilidad de error en su carga.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 118

7.3.3 Obtención de gráficos y métricas

ImpactTrace permite obtener en forma instantánea los gráficos

explicados en la Sección 6.6:

1) #CEITWP / #TWP

2) #CEI según distancia

3) #CEI según tipo de workproduct

4) #CEI acumulado por distancia

5) #CIR / #CEI

Como se explicó anteriormente, cada uno de estos gráficos aportan

datos al usuario para la toma de decisiones entre iteraciones de Análisis de

Impacto.

ImpactTrace permite además obtener los valores de las métricas: ripple,

in-degree y out-degree2.4.

7.3.4 Consolidación de información de trazabilidad

La eficiencia del análisis de impacto estará dada en gran medida por la

información de trazabilidad utilizada por el usuario al momento de tomar

decisiones. Dicha información además de estar actualizada y ser precisa,

debe poder ser consultada en forma ágil. Es inadmisible que un usuario al

momento de seleccionar el conjunto de inicio de impacto (CII) para un

determinado requerimiento de cambio tenga que abrir la IDE para consultar el

código de una clase, o bien acceder a la herramienta UML para conocer la

especificación de un Caso de Uso.

AIT a través de ImpactTrace establece que toda la información se

encuentre consolidada en un solo lugar, facilitando el acceso a todos los

agentes.

Así, ImpactTrace permite el almacenamiento de atributos “custom” para

los workproducts. Dichos atributos pueden incluir:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 119

1) Cualquier información textual (ej. especificaciones

de caso de uso)

2) Links a cualquier URL (ej. capturas de pantalla,

herramientas de Cross-Reference para la visualización

de código, etc.)

7.3.5 Configuración de Trazabilidad

ImpactTrace permite la configuración de trazabilidad mediante:

1) Configuración de múltiples proyectos y los usuarios

que intervienen en cada uno.

2) Configuración de etapas.

3) Configuración de tipos de workproducts por etapa.

7.3.6 Configuración de Extractores

Una vez desarrollado un nuevo extractor de trazabilidad (implementando

la interfaz TraceExtractor o WPExtractor), ImpactTrace permite agregarlo a la

configuración de un proyecto. Para esto el usuario debe indicar:

1) La clase que lo implementa.

2) Tipos de Workproducts / Trazas que extrae.

3) Posibilidad de atributos “custom”.

Los atributos “custom” permiten indicar parámetros de configuración a

cada extractor. Por ejemplo a un extractor de trazabilidad de componentes de

infraestructura de base de datos es necesario indicarle la URL de conexión, el

usuario y clave para el acceso a la misma.

7.3.7 Análisis de impacto iterativo

La herramienta implementa todas las características del análisis de

impacto iterativo descripto en la Sección 6.1, permitiendo al usuario:

1) Seleccionar el conjunto de inicio de impacto (CII).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 120

2) Seleccionar los tipos de workproducts sobre los cuales se

aplicará el análisis.

3) Seleccionar el tipo de trazabilidad (forward/backward) a

utilizar.

4) Realizar las iteraciones necesarias para llegar al conjunto

estimado de impacto (CEI) final, permitiendo descartar

workproducts del análisis, visualizar métricas, gráficos, etc.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 121

8 Caso Práctico I

En este capítulo se muestran los resultados obtenidos de implementar el

proceso AIT sobre un proyecto de software determinado. Se analizarán los

puntos favorables de utilizar este enfoque, las conclusiones a las que se

arribó y las dificultades encontradas.

Aconsejamos la lectura del Anexo 11.1 para conocer los detalles del

proyecto, de manera de lograr entender con mayor facilidad los detalles y

ejemplos presentados en esta sección acerca de como se implemento el

modelo de trazabilidad sobre el que se basó el Análisis de Impacto.

8.1 Paralelismo con el Proceso RUP

Como se mencionó anteriormente, AIT debe ser ejecutado

paralelamente al propio proceso del proyecto, siendo RUP el utilizado en este

caso práctico.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 122

En la siguiente figura se detalla el paralelismo entre ambos procesos,

pudiendo observar en qué fase de RUP se desarrolló cada una de las

actividades del proceso AIT.

El proceso RUP puede ser extendido con una fase denominada

Producción. El objetivo de esta fase es mantener el sistema funcionando y en

estado productivo luego de ser implantados (Ambler, Nalbone, & Vizdos,

2007). Será durante esta fase cuando surgen los requerimientos de cambio

que requieren de la actividad de Análisis de Impacto del proceso AIT.

8.2 Configuración de Trazabilidad

A continuación presentamos, por medio de la tabla detallada en la

Sección 4.1.3, la configuración de trazabilidad utilizada en este proyecto.

Traspaso de Conocimiento

Identificación Revisión

Proceso AIT implementado sobre RUP

Fase Actividad Proceso AIT

Concepción

Elaboración

Construcción

Transición

Producción

Configuración de Trazabilidad Definición de

Extractores

Análisis de Impacto

t

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 123

Requerim

iento

Caso de U

so

Decisión D

iseño

Vista

Control

Modelo

Infraestructura

Requerimiento 0..n 1..n 0 0 0 0 0

Caso de Uso 0 0..n 0..n 1..n 0 0 0

Decisión Diseño 0 0 0..n 0..n 0..n 0..n 0..n

Vista 0 0 0 0..n 0..n 0 0

Control 0 0 0 0 0..n 0..n 0

Modelo 0 0 0 0 0 0..n 0..n

Infraestructura 0 0 0 0 0 0 0..n

A fin de detallar con mayor claridad cada tipo de workproduct identificado

en la configuración establecida, en la siguiente tabla se especifica para cada

uno de ellos su modo de implementación.

Tipo Workproduct Implementación

Requerimiento Requerimiento Enterprise Architect

Caso de Uso Caso de Uso Enterprise Architect

Decisión de Diseño Decisión Diseño ImpactTrace

Vista Java Server Pages

Struts Action Forms

Control Struts Action Classes

Struts Action Methods

Modelo JAVA Classes

JAVA Methods

Infraestructura JAVA Classes

JAVA Methods

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 124

8.3 Extractores de Trazabilidad

Para este caso práctico se han implementado y utilizado la mayoría de

extractores de trazabilidad presentados en el Capítulo 5. Se aconseja su

lectura para un mayor detalle.

8.4 Traspaso de conocimiento al equipo de proyecto

Una vez configurada la trazabilidad y extractores propios al proyecto,

resta definir las responsabilidades de cada miembro / rol del equipo para

poder llevar adelante el proceso.

Como se menciona en el Anexo 11.1, el equipo de proyecto fué

integrado por tres personas: un analista, un arquitecto y un desarrollador.

La siguiente tabla detalla los roles responsables de la identificación de

los workproducts y trazas configurados.

Rol Workproducts Trazas

Analista Requerimiento

Caso de Uso

Requerimiento – Requerimiento

Requerimiento – Caso de Uso

Caso de Uso – Caso de Uso

Caso de Uso – Vista

Arquitecto Decisión de Diseño

Caso de Uso – Decisión de Diseño

Decisión de Diseño – Decisión de Diseño

Decisión de Diseño – Vista

Decisión de Diseño – Control

Decisión de Diseño – Modelo

Decisión de Diseño – Infraestructura

Desarrollador

Implementación Vista

Implementación Control

Implementación Modelo

Implementación Infraestructura

Vista – Vista

Vista – Control

Control – Control

Control – Modelo

Modelo – Modelo

Modelo – Infraestructura

Infraestructura - Infraestructura

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 125

8.5 Identificación de trazas y workproducts

En esta sección se presentan los datos de trazabilidad recolectados

durante el desarrollo del proyecto.

Tipos de Workproducts identificados y cantidades respectivas

Tipo de Workproduct Cantidad identificada

Requerimiento 22

Caso de Uso 54

Decisión de Diseño 2

Implementación Vista 151

Implementación Control 255

Implementación Modelo 138

Implementación Infraestructura 32

TOTAL WORKPRODUCTS 654

Trazas identificadas y cantidades respectivas

Id Traza Workproduct Origen

Workproduct Destino

Cantidad identificada

1 Requerimiento Requerimiento 14

2 Requerimiento Caso de Uso 27

3 Caso de Uso Caso de Uso 43

4 Decisión de Diseño

Decisión de Diseño

0

5 Vista Vista 30

6 Vista Control 322

7 Control Control 189

8 Control Modelo 661

9 Modelo Modelo 116

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 126

10 Modelo Infraestructura 35

11 Infraestructura Infraestructura 1

12 Caso de Uso Decisión de Diseño

2

13 Caso de Uso Vista 53

14 Decisión de Diseño

Vista 0

15 Decisión de Diseño

Control 1

16 Decisión de Diseño

Modelo 1

17 Decisión de Diseño

Infraestructura 1

18 Vista Modelo 12

TOTAL TRAZAS 1508

Es importante resaltar la existencia de 12 (doce) trazas existentes entre

workproducts vista y workproducts modelo. Las trazas entre estos dos tipos

de workproducts no fueron clasificadas como posibles en el paso de

configuración de trazabilidad del proceso. Se considera como un error de

diseño / desarrollo que se pasó por alto al momento de las inspecciones.

Ahora bien, a fines prácticos y demostrativos se tomarán en cuenta dichas

trazas para evitar tener que realizar un refactoring de lo implementado.

8.6 Análisis de Impacto

En esta sección se propone a modo demostrativo ciertos cambios que se

plantearon al proyecto analizando el impacto de cada uno de ellos en base a

los lineamientos establecidos por AIT.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 127

Cambio No. 1

Especificación de Requerimiento de Cambio

Identificación Cambio 001

Enunciado

Agregar a la creación/edición de promociones textos de ayuda (tooltips). Se desea poder incluir en una promoción, por cada campo editable, un texto de ayuda asociado al campo, de manera que cuando el usuario se posicione con el mouse en dicho campo, aparezca el texto de ayuda asociado.

Clasificación Agregado de funcionalidad

Posible implementación del cambio

Se editará cada workproduct de interfaz (.jsp), y para cada control editable se agregará el tooltip mediante código HTML.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 128

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 001 / 1

Propósito del Análisis de Impacto

Identificar todas las interfases relacionadas a la creación y edición de promociones.

Tipos de Workproducts

Analizados

- Requerimiento

- Vista

Tipos de Trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII) - R624: Requerimiento Promociones

Resultado Obtenido

Req

uerim

iento

Vista

To

tal

Impactados y Predecidos 2 22 24

No Impactados y No Predecidos 17 107 124

Impactados y No Predecidos 0 0 0

No Impactados y Predecidos 3 22 25

#CEI 5 44 49

#TWP 22 151 173

Métricas

Req

uerim

iento

Vista

To

tal

#CEI / #TWP 0.227 0.291 0.283

#CIR / #CEI 0.4 0.5 0.49

#CII / #CEI 0.002

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 129

Gráficos

Conclusiones de Iteración

Los valores de #CEI / #TWP son todos aceptables. No se requiere de otra iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 130

Cambio No. 2

Especificación de Requerimiento de Cambio

Identificación Cambio 002

Enunciado

Generación de archivos de promociones por sucursal. Actualmente la generación de archivos de promociones se realiza para todas las sucursales a la vez. Se desea la posibilidad de que en la generación manual pueda seleccionarse para una o varias sucursales.

Clasificación Agregado de funcionalidad

Posible implementación del cambio

Este cambio afectará:

- interfaz de generación manual de archivos de promociones agregándose un combo-box para la selección de la sucursal que se quiere,

- control asociado a la interfaz de manera de controlar la selección de la sucursal, y

- clases de modelo afectadas a la generación de archivos de promociones.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 131

Análisis de Impacto

Identificación del Cambio / Iteración

Nro. Cambio 002 / 1

Propósito del Análisis de

Impacto

Identificar la interfaz de generación manual de archivo de promociones, el control propio a la misma, y las clases de modelo relacionadas.

Tipos de Workproducts

Analizados

- Requerimientos

- Casos de Uso

- Implementación Vista

- Implementación Control

- Implementación Modelo

Tipos de Trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII)

- R633: Requerimiento Generación Manual de archivos de promociones

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

To

tal

Impactados y Predecidos 1 1 1 1 1 5

No Impactados y No Predecidos 21 53 150 253 90 567

Impactados y No Predecidos 0 0 0 0 0 0

No Impactados y Predecidos 0 0 0 1 47 48

#CEI 1 1 1 2 48 53

#TWP 22 54 151 255 138 620

Métricas

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

To

tal

#CEI / #TWP 0.045 0.019 0.007 0.008 0.348 0.085

#CIR / #CEI 1 1 1 0.5 0.02 0.094

#CII / #CEI 0.019

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 132

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables excepto para los workproducts del tipo Modelo (0.348). Observando el gráfico CEI Acumulado Según Distancia se nota un ripple marcado a partir de distancia 4. Proponemos una nueva iteración quedándonos con datos de impacto hasta una distancia 4 inclusive.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 133

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 002 / 2

Parámetros de Entrada de la iteración Analizar impacto hasta distancia igual a 4 inclusive.

Propósito del Análisis de Impacto

Identificar la interfaz de generación manual de archivos de promociones, el control propio a la misma, y las clases de modelo relacionadas.

Tipos de Workproducts

Analizados

- Requerimientos

- Casos de Uso

- Implementación Vista

- Implementación Control

- Implementación Modelo

Tipos de Trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII)

- R633: Requerimiento Generación Manual archivos de promociones

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

To

tal

Impactados y Predecidos 1 1 1 1 1 5

No Impactados y No Predecidos 21 53 150 253 136 613

Impactados y No Predecidos 0 0 0 0 0 0

No Impactados y Predecidos 0 0 0 1 1 2

#CEI 1 1 1 2 2 7

#TWP 22 54 151 255 138 620

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 134

Métricas

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

To

tal #CEI / #TWP 0.045 0.019 0.007 0.008 0.014 0.011

#CIR / #CEI 1 1 1 0.5 0.5 0.094

#CII / #CEI 0.143

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 135

Cambio No. 3

Especificación de Requerimiento de Cambio

Identificación Cambio 003

Enunciado

Asignación de sucursales y grupos de sucursales a Perfiles de Usuario. Así, un usuario solo podrá crear promociones para las sucursales asociadas a su perfil.

Consideraciones:

- La asignación de sucursales y grupos de sucursales a perfiles se hará desde la interfaz de Perfiles y no al revés.

- Los reportes no serán modificados, de tal forma que cualquier usuario podrá ver las promociones para todas las sucursales, más allá de las asignadas a su perfil.

Clasificación Agregado de funcionalidad

Posible implementación del cambio

Este cambio afectará:

- Interfaz y controles propios de la interfaz de administración de perfiles.

- Interfaz y controles propios de la interfaz donde se asocia una promoción a una sucursal.

- Clase de Modelo de Perfil de Usuario agregándole una asociación a las sucursales.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 136

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 003.a / 1

Propósito del Análisis de Impacto

Identificar interfaces y controles impactados de la administración de perfiles.

Tipos de Workproducts

Analizados

- Requerimientos

- Implementación Vista

- Implementación Control

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII)

- R619: Requerimiento Administración de perfiles, usuarios y permisos.

Resultado Obtenido

Req

uerim

iento

Vista

Co

ntro

l

To

tal

Impactados y Predecidos 1 1 3 5

No Impactados y No Predecidos 21 150 250 421

Impactados y No Predecidos 0 0 0 0

No Impactados y Predecidos 0 0 2 2

#CEI 1 1 5 7

#TWP 22 151 255 428

Métricas

Req

uerim

iento

Vista

Co

ntro

l

To

tal

#CEI / #TWP 0.046 0.007 0.02 0.016

#CIR / #CEI 1 1 0.6 0.714

#CII / #CEI 0.143

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 137

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 138

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 003.b / 1

Propósito del Análisis de Impacto

Identificar interfaces y controles impactados en la asociación de sucursales a una promoción.

Tipos de Workproducts

Analizados

- Requerimientos

- Caso Uso

- Implementación Vista

- Implementación Control

Tipo de trazas utilizadas - Trazas forward.

Conjunto de Inicio de Impacto (CII) - R624: Requerimiento Promociones

Resultado Obtenido

Req

uerim

iento

Caso

Uso

Vista

Co

ntro

l

To

tal

Impactados y Predecidos 2 2 1 3 8

No Impactados y No Predecidos 17 27 107 193 344

Impactados y No Predecidos 0 0 0 0 0

No Impactados y Predecidos 3 25 43 59 130

#CEI 5 27 44 62 138

#TWP 22 54 151 255 482

Métricas

Req

uerim

iento

Caso

Uso

Vista

Co

ntro

l

To

tal

#CEI / #TWP 0.227 0.5 0.291 0.243 0.286

#CIR / #CEI 0.4 0.007 0.023 0.05 0.05

#CII / #CEI 0.007

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 139

Gráficos

Conclusiones de Iteración

Valor de #CEI / #TWP de Caso de Uso no aceptable. Se requiere una nueva iteración seleccionando con mayor granularidad el CII en base a un análisis de los casos de uso impactados.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 140

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 003.b / 2

Parámetros de Entrada de iteración

Aumentar granularidad de CII descartando del CEI de Caso de Uso de iteración 1 los workproducts que se creen no impactados

Propósito del Análisis de Impacto

Identificar interfaces y controles impactados en la asociación de sucursales a una promoción.

Tipos de Workproducts

Analizados

- Requerimientos

- Casos de Uso

- Implementación Vista

- Implementación Control

- Implementación Modelo

Tipos de Trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII)

- R624: Requerimiento Promociones

- R651: Administración – Alta / Baja / Modificación

- CU581: Editar Promoción

- CU601: Asignar Jerarquía / Sucursal a Promoción

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

Impactados y Predecidos 2 2 1 3 8

No Impactados y No Predecidos 17 52 147 246 462

Impactados y No Predecidos 0 0 0 0 0

No Impactados y Predecidos 3 0 2 6 11

#CEI 5 2 3 9 19

#TWP 22 54 151 255 482

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 141

Métricas

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

#CEI / #TWP 0.227 0.037 0.02 0.035 0.039

#CIR / #CEI 0.4 1 0.333 0.333 0.421

#CII / #CEI 0.444

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 142

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 003.c

Propósito del Análisis de Impacto Identificar clase de modelo referente a un Perfil de Usuario

Tipos de Workproducts

Analizados

- Requerimientos

- Implementación Modelo

Tipo de trazas utilizadas - Trazas forward.

Conjunto de Inicio de Impacto (CII)

- R619: Requerimiento Administración de Perfiles, usuarios y permisos

Resultado Obtenido

Req

uerim

iento

Mo

delo

To

tal

Impactados y Predecidos 1 1 2

No Impactados y No Predecidos 0 0 0

Impactados y No Predecidos 0 0 0

No Impactados y Predecidos 0 32 32

#CEI 1 33 34

#TWP 22 138 160

Métricas

Req

uerim

iento

Mo

delo

To

tal

#CEI / #TWP 0.06 0.24 0.212

#CIR / #CEI 1 0.03 0.06

#CII / #CEI 0.03

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 143

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 144

Cambio No. 4

Especificación de Requerimiento de Cambio

Identificación Cambio 004

Enunciado

Agregar hipervínculos en reportes de promociones. Para agilizar las consultas, los reportes que listen promociones, deberían mostrarlas como hipervínculos para acceder a ellas en modo consulta.

Consideraciones:

- No afecta la impresión de reportes

Clasificación Agregado de funcionalidad

Posible implementación del cambio

Este cambio afectará:

- Interfases de reportes de promociones

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 145

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 004 / 1

Propósito del Análisis de Impacto

Identificar las interfases relacionadas con reportes de promociones

Tipos de Workproducts

Analizados

- Requerimientos

- Casos de Uso

- Vista

Tipo de trazas utilizadas - Trazas forward.

Conjunto de Inicio de Impacto (CII) - R636: Requerimiento Reportes

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

To

tal

Impactados y Predecidos 1 1 1 3

No Impactados y No Predecidos 21 50 146 217

Impactados y No Predecidos 0 0 0 0

No Impactados y Predecidos 0 3 4 7

#CEI 1 4 5 10

#TWP 22 54 151 227

Métricas

Req

uerim

iento

Caso

de U

so

Vista

To

tal

#CEI / #TWP 0.045 0.074 0.033 0.044

#CIR / #CEI 1 0.25 0.2 0.3

#CII / #CEI 0.1

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 146

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 147

Cambio No. 5

Especificación de Requerimiento de Cambio

Identificación Cambio 005

Enunciado

La tabla STRUCTURES posee como clave única el campo CODE. La clave única debería estar formada por los campos LEVEL_CODE + CODE, ya que en el caso de estructuras comerciales no jerárquicas, se puede utilizar el mismo código en dos niveles diferentes.

Clasificación Modificación

Posible implementación del cambio

Modificar el archivo XML de mapeo de entidad hibernate tanto para la entidad Structure como StructureLevel.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 148

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 005 / 1

Propósito del Análisis de Impacto

Identificar las interfases y casos de uso posiblemente impactados con la finalidad de realizar testing de regresión.

Tipos de Workproducts

Analizados

- Casos de Uso

- Vista

- Modelo

- Infraestructura

Tipo de trazas utilizadas - Trazas backward

Conjunto de Inicio de Impacto (CII)

- II568: Implementación Infraestructura StructureHome

- II569: Implementación Infraestructura StructureLevelHome

Resultado Obtenido

Caso

de U

so

Vista

Mo

delo

Infraestru

ctura

To

tal

#CEI 43 76 31 2 152

#TWP 54 151 138 32 375

Métricas

Caso

de U

so

Vista

Mo

delo

Infraestru

ctura

To

tal

#CEI / #TWP 0.796 0.503 0.225 0.063 0.405

#CII / #CEI 0.013

Gráficos

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 149

Conclusiones de Iteración

Valores de #CEI / #TWP para nada aceptables. Se observa un gran ripple. Se propone una siguiente iteración partiendo de un análisis del CEI de Modelo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 150

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 005 / 2

Parámetros de Entrada de la Iteración

Se analiza el CEI de Modelo obtenido en iteración 1 cortando el ripple hasta una distancia 2 inclusive ya que se observa que el resto de workproducts no formarían parte del CIR.

Propósito del Análisis de Impacto

Identificar las interfases y casos de uso posiblemente impactados con la finalidad de realizar testing de regresión.

Tipos de Workproducts

Analizados

- Casos de Uso

- Vista

- Modelo

- Infraestructura

Tipo de trazas utilizadas - Trazas backward

Conjunto de Inicio de Impacto (CII)

- II568: Implementación Infraestructura StructureHome

- II569: Implementación Infraestructura StructureLevelHome

Resultado Obtenido

Caso

de U

so

Vista

Mo

delo

Infraestru

ctura

To

tal

#CEI 15 11 4 2 32

#TWP 54 151 138 32 375

Métricas

Caso

de U

so

Vista

Mo

delo

Infraestru

ctura

To

tal

#CEI / #TWP 0.278 0.073 0.029 0.063 0.085

#CII / #CEI 0.063

Gráficos

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 151

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 152

Cambio No. 6

Especificación de Requerimiento de Cambio

Identificación Cambio 006

Enunciado Posibilidad de realizar búsquedas sobre grillas de elementos seleccionados (items, departments, manufacturers, mixmatches)

Clasificación Agregado de funcionalidad

Posible implementación del cambio

Agregar a la pantalla de asignación de elementos a promociones un radio button para seleccionar si la búsqueda se realiza sobre elementos seleccionados o no seleccionados.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 153

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 006 / 1

Propósito del Análisis de Impacto Identificar el impacto sobre workproducts de Etapa Implementación.

Tipos de Workproducts

Analizados

- Casos de Uso

- Vista

- Control

- Modelo

- Infraestructura

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII) - CU609: Agregar / Excluir elementos a Promoción

Resultado Obtenido

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

Infraestru

ctura

To

tal

Impactados y Predecidos 1 2 1 1 1 6

No Impactados y No Predecidos 0 0 0 0 0 0

Impactados y No Predecidos 0 0 0 0 0 0

No Impactados y Predecidos 0 0 6 36 17 59

#CEI 1 2 7 37 18 65

#TWP 22 151 255 138 32 598

Métricas

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

Infraestru

ctura

To

tal

#CEI / #TWP 0.045 0.013 0.027 0.268 0.562 0.109

#CIR / #CEI 1 1 0.143 0.027 0.056 0.092

#CII / #CEI 0.015

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 154

Gráficos

Conclusiones de Iteración

Valor de #CEI / #TWP de Infraestructura no aceptable. Se propone una siguiente iteración partiendo de un análisis del CEI de Control y Modelo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 155

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 006 / 2

Parámetros de Entrada de la Iteración

El CEI de Control se reduce a solo el workproduct responsable de la búsqueda de elementos (ncr.dpc.action.SearchElement).

Del CEI de Modelo se descarta el workproduct ncr.dpc.domain.Application por presentar alto ripple.

Propósito del Análisis de Impacto

Identificar el impacto sobre workproducts de Etapa Implementación.

Tipos de Workproducts

Analizados

- Casos de Uso

- Vista

- Control

- Modelo

- Infraestructura

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII) - CU609: Agregar / Excluir elementos a Promoción

Resultado Obtenido

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

Infraestru

ctura

To

tal

Impactados y Predecidos 1 2 1 1 1 6

No Impactados y No Predecidos 0 0 0 0 0 0

Impactados y No Predecidos 0 0 0 0 0 0

No Impactados y Predecidos 0 0 0 1 0 1

#CEI 1 2 1 2 1 7

#TWP 22 151 255 138 32 598

Métricas

Caso

de U

so

Vista

Co

ntro

l

Mo

delo

Infraestru

ctura

To

tal

#CEI / #TWP 0.045 0.013 0.004 0.014 0.031 0.012

#CIR / #CEI 1 1 1 0.5 1 0.857

#CII / #CEI 0.143

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 156

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 157

Cambio No. 7

Especificación de Requerimiento de Cambio

Identificación Cambio 007

Enunciado Añadir dos flags adicionales a nivel de promoción (“Aplicar sobre productos iguales” – “Aplicar sobre precio de lista menos descuentos anteriores”)

Clasificación Agregado de funcionalidad

Posible implementación del cambio

- Modificación de la interfaz gráfica de edición detallada de una promoción, de manera de permitir la edición de los valores de dichos flags.

- Adaptación de la generación de los archivos de promociones para contemplar dichos flags.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 158

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 007.a / 1

Propósito del Análisis de Impacto

Identificar Workproducts Vista y Control referidos a la edición detallada de una promoción.

Tipos de Workproducts

Analizados

- Requerimientos

- Caso de Uso

- Implementación Vista

- Implementación Control

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII) - R624: Requerimiento Promociones

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

Impactados y Predecidos 2 1 1 2 6

No Impactados y No Predecidos 0 0 0 0 0

Impactados y No Predecidos 0 0 0 0 0

No Impactados y Predecidos 3 26 43 58 130

#CEI 5 27 44 60 136

#TWP 22 54 151 255 482

Métricas

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

#CEI / #TWP 0.227 0.5 0.291 0.235 0.282

#CIR / #CEI 0.4 0.037 0.023 0.033 0.044

#CII / #CEI 0.007

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 159

Gráficos

Conclusiones de Iteración

Valor de #CEI / #TWP de Caso de Uso no aceptable. Se propone una siguiente iteración refinando este CEI.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 160

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 007.a / 2

Parámetros de Entrada de la Iteración

Se refina el CEI de Requerimiento y Casos de Uso realizando un análisis detallado de los mismos.

Propósito del Análisis de Impacto

Identificar Workproducts Vista y Control referidos a la edición detallada de una promoción.

Tipos de Workproducts

Analizados

- Requerimientos

- Caso de Uso

- Implementación Vista

- Implementación Control

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII) - R624: Requerimiento Promociones

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

Impactados y Predecidos 2 1 1 2 6

No Impactados y No Predecidos 0 0 0 0 0

Impactados y No Predecidos 0 0 0 0 0

No Impactados y Predecidos 0 1 1 2 4

#CEI 2 2 2 4 10

#TWP 22 54 151 255 482

Métricas

Req

uerim

iento

Caso

de U

so

Vista

Co

ntro

l

To

tal

#CEI / #TWP 0.091 0.037 0.013 0.016 0.021

#CIR / #CEI 1 0.5 0.5 0.5 0.6

#CII / #CEI 0.1

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 161

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere una siguiente iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 162

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 007.b / 1

Propósito del Análisis de Impacto

Identificar workproducts de Modelo respecto a la generación de archivos de promociones

Tipos de Workproducts

Analizados

- Requerimiento

- Caso de Uso

- Modelo

Tipo de trazas utilizadas - Trazas forward

Conjunto de Inicio de Impacto (CII)

- R632: Requerimiento Generación automática de archivos de promociones

- R633: Requerimiento Generación manual de archivos de promociones

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Mo

delo

To

tal

Impactados y Predecidos 2 2 1 5

No Impactados y No Predecidos 0 0 0 0

Impactados y No Predecidos 0 0 0 0

No Impactados y Predecidos 0 0 50 50

#CEI 2 2 51 55

#TWP 22 54 138 214

Métricas

Req

uerim

iento

Caso

de U

so

Mo

delo

To

tal

#CEI / #TWP 0.091 0.037 0.37 0.257

#CIR / #CEI 1 1 0.02 0.091

#CII / #CEI 0.036

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 163

Gráficos

Conclusiones de Iteración

Valor de #CEI / #TWP de Modelo no aceptable. Se propone una siguiente iteración refinando el CEI de Modelo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 164

Análisis de Impacto

Identificación del Cambio / Iteración Nro. Cambio 007.b / 2

Parámetros de Entrada de la Iteración

Observando el gráfico de Impacto Acumulado Según Distancia obtenido en Iteración 1, se ve un ripple marcado a partir de la distancia 2 en adelante. Se refina entonces la distancia 2 descartando el workproduct ncr.dpc.domain.Application que presenta alto ripple.

Propósito del Análisis de Impacto

Identificar workproducts de Modelo respecto a la generación de archivos de promociones

Conjunto de Inicio de Impacto (CII)

- R632: Requerimiento Generación automática de archivos de promociones

- R633: Requerimiento Generación manual de archivos de promociones

Tipos de Workproducts

Analizados

- Requerimiento

- Caso de Uso

- Modelo

Tipo de trazas utilizadas - Trazas forward

Resultado Obtenido

Req

uerim

iento

Caso

de U

so

Mo

delo

To

tal

Impactados y Predecidos 2 2 1 5

No Impactados y No Predecidos 0 0 0 0

Impactados y No Predecidos 0 0 0 0

No Impactados y Predecidos 0 0 30 30

#CEI 2 2 31 35

#TWP 22 54 138 214

Métricas

Req

uerim

iento

Caso

de U

so

Mo

delo

To

tal

#CEI / #TWP 0.091 0.037 0.225 0.164

#CIR / #CEI 1 1 0.032 0.143

#CII / #CEI 0.057

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 165

Gráficos

Conclusiones de Iteración

Valores de #CEI / #TWP aceptables. No se requiere de una siguiente iteración.

8.7 Conclusiones

Sumado a los ejemplos de análisis de impacto presentados, el siguiente

gráfico muestra la distribución de la métrica #CIR/#CEI para cada uno de los

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 166

cambios analizados. Esto permite tomar conocimiento de la eficiencia de los

resultados obtenidos.

Al observar el gráfico se puede concluir:

- Realizar nuevas iteraciones sobre un análisis de impacto mejoró en todos los

casos la estimación. Esto quiere decir que se obtuvo un #CEI más cercano al

#CIR reduciendo el posterior esfuerzo.

- Solo en un caso se obtuvo un #CIR/#CEI > 1, es decir, existieron

workproducts impactados que no fueron predecidos por AIT. Esta situación

ocurrió por no tener disponible información de trazabilidad para un

workproduct en particular.

- Más de un 40% de lo realmente impactado fue estimado para un 75% de los

casos analizados (#CIR/#CEI > 0,4).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 167

9 Caso Práctico II

Este segundo caso práctico demuestra la utilidad de mantener

información de trazabilidad entre workproducts de infraestructura.

A pesar de no estar de acuerdo con el diseño de muchas aplicaciones,

es muy común que la lógica de negocio resida en procedimientos

almacenados (stored procedures).

Por lo tanto, mantener trazabilidad granular entre dichos componentes

nos servirá para dar respuesta a preguntas como por ejemplo: ¿Qué

módulos/casos de uso utilizan un determinado stored procedure? ¿Qué se

impacta o sobre que debo realizar testing de regresión si se modifica

determinada tabla / stored procedure?

9.1 Generalidades del Proyecto

Al igual que el primer caso práctico, éste también se trata de un

desarrollo Web. Para el mismo se utilizó la siguiente tecnología:

- J2SE 5.0

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 168

- Framework MVC: Struts

- Framework ORM: Apache OJB

- Base de Datos: Oracle

Para la finalidad de este trabajo se analiza el módulo de consultas del

proyecto. El mismo cuenta con una serie de consultas que permiten a un

usuario la obtención y visualización de información en base a filtros

específicos.

9.1 Configuración de Trazabilidad

En la siguiente tabla se muestran los tipos de workproducts identificados

en el proyecto discriminados por etapa:

Tipo de

Workproduct Etapa Implementación Descripción

Consulta Análisis Especificación

Word

Cada requerimiento

del sistema podrá

verse como una

consulta.

Vista Implementación Java Server

Pages (JSP)

Pantalla/Subpantalla

de una consulta en

particular. Contiene

los filtros de

búsqueda

específicos y la

visualización de

información.

Control Implementación Action Struts

Componentes de

control en respuesta

a eventos del usuario

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 169

ServicioDAO Implementación Patrón de

Diseño DAO

Servicio DAO para

acceso a base de

datos

Paquete Implementación Paquete de

Oracle

Agrupamiento de

Stored Procedures

de Oracle

Stored

Procedure Implementación

Procedimiento

Almacenado de

Oracle

Procedimiento para

resolver cierta lógica

de datos

Tabla Implementación Tabla de Oracle

Tabla para el

almacenamiento de

información

A continuación se presenta, por medio de la tabla detallada en la

Sección 4.1.3, la configuración de trazabilidad utilizada en este proyecto.

Co

nsu

lta

Vista

Co

ntro

l

Servicio

DA

O

Paq

uete

Sto

redP

roced

ure

Tab

la

Consulta 0..n 1..n 0 0 0 0 0

Vista 0 0..n 1..n 0 0 0 0

Control 0 0 0..n 0..n 0 0 0

ServicioDAO 0 0 0 0 0..n 0..n 0

Paquete 0 0 0 0 0..n 0 0

StoredProcedure 0 0 0 0 0 0..n 0..n

Tabla 0 0 0 0 0 0 0

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 170

9.2 Extracción de trazabilidad

En la siguiente tabla se pueden observar los diferentes extractores de

trazabilidad utilizados. Se recomienda la lectura de la Sección 5 para mayor

detalle de cada extractor.

Extractor Información de trazabilidad

extraída

Tipo de

trazabilidad

No disponible. Se

cargó manualmente la

información.

Workproduct: Consultas Explícita

StrutsPresentationExtr

actor

Workproduct: Vista Implícita

Struts Control

Extractor

Workproduct: Control

Trazas: Vista-Control

Implícita

DAOExtractor Workproduct: ServicioDAO Implícita

DependencyExtractor Trazas: Control-ServicioDAO Implícita

DocletExtractor Trazas: ServicioDAO-

StoredProcedure, ServicioDAO-

Paquete

Explícita

OracleExtractor Workproducts: Paquetes,

StoredProcedures, Tablas

Trazas: Paquete-Tabla,

StoredProcedure-Tabla

Implícita

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 171

9.3 Identificación de Trazas y Workproducts

Tipos de Workproducts identificados y cantidades respectivas

Tipo de Workproduct Cantidad identificada

Consulta 21

Vista 98

Control 152

ServicioDAO 42

Paquete/StoredProcedure/Tabla 2318

TOTAL WORKPRODUCTS 2631

Trazas identificadas y cantidades respectivas

Id Traza Workproduct Origen

Workproduct Destino Cantidad identificada

1 Consulta Consulta 6

2 Consulta Vista 21

3 Vista Vista 0

4 Vista Control 128

5 Control Control 164

6 Control ServicioDAO 73

7 ServicioDAO Paquete/Stored Procedure/Tabla

54

8 Paquete/Stored Procedure

StoredProcedure/Tabla 13606

TOTAL TRAZAS 14052

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 172

9.4 Análisis de Impacto

En esta sección se proponen a modo demostrativo ciertos cambios que

se plantearon al proyecto analizando el impacto de cada uno de ellos.

Cambio No. 1

Especificación de Requerimiento de Cambio

Identificación Cambio 001

Enunciado Modificación de estructura de la tabla MODELO. Se aumenta el ancho de la columna de descripción de modelos de autos.

Clasificación Modificación

Posible implementación del cambio

No Aplica.

Análisis de Impacto

Identificación del Cambio / Iteración Nro.

Cambio 001 / 1

Propósito del Análisis de Impacto Identificar todas las consultas relacionadas con la tabla MODELO.

Tipos de Workproducts

Analizados

- Tabla

- Stored Procedure

- ServicioDAO

- Vista

- Consulta

Tipos de Trazas utilizadas - Trazas backward

Conjunto de Inicio de Impacto (CII) - II26724: Tabla MODELO

Métricas

Infraestru

ctura

Mo

delo

Req

uerim

iento

To

tal

#CEI / #TWP 0.24 0.238 0.52 0.24

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 173

Gráficos

Conclusiones de Iteración

Los valores de #CEITWP / #TWP son aceptables excepto para el tipo de workproduct Requerimiento (Consultas) = 0.52. Por otro lado el #CEI / TWP total es aceptable = 0.24. Debido a que este AI es para obtener un CEI de Requerimientos sobre el cual aplicar testing de regresión no se cree necesario realizar una nueva iteración.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 174

Cambio No. 2

Especificación de Requerimiento de Cambio

Identificación Cambio 002

Enunciado

Modificación de los parámetros de entrada del Stored Procedure CIS_PAGOS_PKG.BORRAR_TEMP_CTOS_PAGOS. Se agregará un parámetro en el cual deberán indicarse los conceptos de pago seleccionados por el usuario concatenados por pipes.

Clasificación Modificación

Posible implementación del cambio

Modificar ServicioDAO y componentes de control para invocar al stored procedure con el nuevo parámetro.

Análisis de Impacto

Identificación del Cambio / Iteración Nro.

Cambio 002

Propósito del Análisis de Impacto Identificar ServicioDAO y componentes de control a modificar.

Tipos de Workproducts

Analizados

- Package

- ServicioDAO

- Control

Tipos de Trazas utilizadas

- Trazas backward

Conjunto de Inicio de Impacto (CII)

- II26724: Package CIS_PAGOS_PKG (Nota: no se contaba con información del workproduct Stored Procedure: BORRAR_TEMP_CTOS_PAGOS)

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 175

Resultado Obtenido

Packag

e

Servicio

DA

O

Co

ntro

l

To

tal

Impactados y Predecidos 1 1 1 3

No Impactados y No Predecidos 0 0 0 0

Impactados y No Predecidos 0 0 0 0

No Impactados y Predecidos 0 1 4 5

#CEI 1 2 5 8

#TWP 2318 42 152 2512

Métricas

Packag

e

Servicio

DA

O

Co

ntro

l

To

tal

#CEI / #TWP 0.0004 0.048 0.033 0.003

#CIR / #CEI 1 0,5 0.2 0,375

#CII / #CEI 0.000398

Gráficos

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 176

Conclusiones de Iteración

Los valores de #CEI / #TWP son todos aceptables. No se requiere de otra iteración.

9.5 Conclusiones

Se analizó el impacto para otros cambios similares a los dos ejemplos

planteados y se obtuvieron las siguientes conclusiones.

9.5.1 Cambios del Tipo 1

Uno de los objetivos de este análisis de impacto fue identificar sobre que

requerimientos aplicar testing de regresión frente a cambios en componentes

de infraestructura. Así, se logró que el testing de regresión se enfoque solo a

la porción del sistema referida al CEI, reduciendo el esfuerzo necesario.

Por lo tanto es bueno que el tamaño (cantidad de workproducts) del CEI

de requerimientos obtenido no se acerque al total de workproducts de

requerimientos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 177

En el siguiente gráfico se presenta la distribución de la métrica #CEITWP /

#TWP.

Para diferentes rangos de K = #CEITWP / #TWP se observa:

- Solo 6 workproducts de infraestructura presentan un KREQ >= 0,5. Es decir,

solo si se modificasen alguno de dichos workproducts habría que realizar

testing de regresión a más de un 50% de las consultas del sistema.

- Habría que realizar testing de regresión entre un 30% y 50% de las consultas,

si el CII estuviera integrado por alguno de los 99 workproducts.

- Habría que realizar testing de regresión menor a un 30% para un CII con

cualquiera del resto de los 2213 workproducts de infraestructura.

En conclusión, para la mayoría de cambios de este tipo, el esfuerzo de

realizar testing de regresión es menor o igual a un 30% del total requerido si

no se contara con una metodología de análisis de impacto.

De igual manera, si ponemos atención sobre las vistas (pantallas) a ser

impactadas, solo 6 workproducts de infraestructura provocarían un #CEIVISTA /

#VISTA >= 0,2.

Esto indica que el ripple de la trazabilidad backward utilizado para el

análisis de cambios del tipo 1 es bajo para la mayor cantidad de casos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 178

La distribución anterior nos muestra que la mayoría de estimaciones de

impacto están por debajo de 0,2. Solo para un caso se tiene cierto ripple

provocando que entre un 40% y 45% del total de workproducts analizados

sean estimados de ser impactados.

9.5.2 Cambios del Tipo 2

Se analizaron diez cambios similares a los del tipo 2. Lo interesante para

este tipo de cambio fue comparar el #CEI resultante contra el #CIR para

concluir acerca de la eficiencia de los análisis.

A continuación se gráfica la métrica #CIR/#CEI para cada uno de los

análisis llevados a cabo:

Se concluye:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 179

- Para ningún cambio la métrica dio valores mayores a 1, indicando que todo lo

impactado siempre fue estimado. Las estimaciones fueron “seguras”, es decir

no se requirió esfuerzo extra para descubrir workproducts impactados.

- Para 7 cambios la estimación se acerco a lo realmente impactado

(1>#CIR/#CEI>0,6).

- En 3 casos existió un salto entre el #CEI y el #CIR. Esto fue debido al ripple

de trazabilidad presente para los #CII en cuestión.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 180

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 181

10 Conclusiones – Trabajo Futuro

En el contexto de la problemática planteada en el capítulo de

introducción, el presente trabajo propuso al proceso AIT (Análisis de Impacto

basado en Trazabilidad) como el modelo que permite administrar la

información de trazabilidad de un proyecto de software. Este proceso hace

hincapié en documentar la trazabilidad entre los componentes que integran el

proyecto para luego permitir realizar efectivos análisis de impacto.

Como conclusión al presente trabajo se alcanzaron los siguientes

resultados:

• A través de la actividad denominada "Configuración de

Trazabilidad" se permite definir y especificar sobre cuales

componentes de un proyecto de software documentar la

trazabilidad, y de qué manera.

• Ejemplificar posibles configuraciones de trazabilidad para las

metodologías y arquitecturas más utilizadas en la actualidad.

• Automatizar la documentación de trazabilidad mediante la

implementación de extractores de trazabilidad implícita y explícita.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 182

• Definir los roles y responsabilidades para cada participante del

proyecto de software de manera que el proceso sea llevado

adelante de forma efectiva.

• Ejemplificar la implementación de extractores de trazabilidad

sobre frameworks y herramientas conocidos.

• Demostración de la efectividad del enfoque en base a la puesta

en práctica del proceso AIT sobre dos casos prácticos, ofreciendo

datos reales de análisis de impacto y comparaciones contra el

impacto real.

• Reducir el esfuerzo necesario para el testing de regresión de los

sistemas en base a una correcta identificación del impacto

generado por un cambio.

• Plantear un análisis de impacto iterativo, mejorando en cada

iteración los resultados obtenidos en base a la utilización de

gráficos y métricas establecidas.

• Establecer vínculos entre las etapas de análisis, diseño y

desarrollo mediante la definición de etapas y tipos de

workproducts para reducir el gap de conocimiento entre las

mismas.

• Investigación de metodologías y herramientas de trazabilidad

existentes en el mercado detectando falencias o diferencias con el

enfoque planteado.

• Desarrollo de una herramienta para dar soporte a todas las

actividades del proceso AIT, desde la documentación de

trazabilidad hasta la realización de análisis de impacto.

Asimismo, a continuación se enumeran una serie de tareas que resultan

de interés estudiar y sientan las pautas para próximos trabajos:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 183

- Análisis de métricas de impacto existentes y definición de una que aplique al

proceso AIT.

- “La relación entre la métrica de impacto y el esfuerzo requerido para

desarrollar software permite estimar el esfuerzo requerido para implementar

un cambio” (Lee, 1998). Se toma la frase citada como otro de los objetivos a

trabajar en el futuro para estudiar las posibles relaciones entre resultados de

análisis de impacto y esfuerzo necesario para la implementación de cambios.

- Automatizar la identificación de los workproducts incluidos en el Conjunto de

Inicio de Impacto del análisis de impacto de un requerimiento de cambio. En

el presente trabajo el usuario del proceso AIT es quien debe establecer que

workproducts son inicialmente impactados por un requerimiento de cambio.

Un error en la definición del CII provocaría que el resultante CEI no concuerde

finalmente con el CIR resultante al implementar el cambio.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 184

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 185

11 Anexo

11.1 Anexo I: Detalles del Caso Práctico I

11.1.1 Generalidades del Proyecto

Se trató de un proyecto desarrollado a lo largo de un período de seis

meses. Cabe señalar que el proyecto no sufrió desvíos de su estimación

inicial, tanto en tiempo como en funcionalidad cubierta por el alcance del

mismo.

El equipo de proyecto fue integrado por tres personas, distribuyéndose

los roles de la siguiente manera:

1) Analista / Project Leader: persona involucrada en la

administración del proyecto y análisis del mismo.

2) Arquitecto: persona responsable del diseño y

arquitectura, y desarrollo de componentes con

mayor riesgo tecnológico.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 186

3) Desarrollador Senior: persona con perfil de

desarrollador senior, involucrada pura y

exclusivamente en tareas de desarrollo.

El Sistema fue desarrollado íntegramente en lenguaje JAVA, con la

capacidad de ser implantado en cualquier Application Server compatible

con los estándares J2EE. Entre los frameworks utilizados se encuentran:

para la implementación de patrón MVC (Model – View – Controller) se

utilizó Struts y, para la persistencia de clases, Hibernate.

Como herramienta de soporte para el Análisis se utilizó Enterprise

Architect. En la misma se documentaron los requerimientos, casos de

uso e interfases del sistema.

11.1.2 Objetivo del Proyecto

El sistema brinda a personas especializadas en marketing y con

conocimiento de las diferentes necesidades de los clientes de

supermercados, la capacidad de crear una amplia gama de promociones

de productos. Dichas promociones abarcan ofertas patrocinadas por los

fabricantes y sponsors de los diferentes productos. A través de la

implementación del sistema, se obtuvo un aumento en las ventas y

satisfacción por parte de los clientes al ser acreedores de importantes

beneficios en la compra de dichas promociones.

El sistema provee una interfaz gráfica a partir de la cual será posible

crear, modificar y eliminar promociones. Como resultado se generan

archivos que posteriormente se procesan en tiempo real al momento de

la compra en los puntos de venta (POS) para otorgar los beneficios a los

clientes.

La aplicación posee funcionalidad para asignar y distribuir promociones

a diferentes sucursales, especificar restricciones según el perfil del

usuario y, poder efectuar altas, bajas y modificaciones sobre los distintos

parámetros que maneja el sistema.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 187

11.1.3 Módulos del sistema

1) Promociones: Este modulo contiene la funcionalidad necesaria

para buscar, crear, eliminar o modificar templates de promociones y

promociones.

2) Administración: Este modulo contiene los ABMs de sucursales,

grupos de sucursales, artículos, departamentos, estructuras

comerciales, medios de pago, categoría de clientes, etc.

3) Seguridad: Este módulo contempla ABM de usuarios, ABM de

perfiles y configuración de parámetros del sistema como ser

cantidad máxima de promociones activas.

4) Monitor de promociones por sucursal: Provee la funcionalidad

necesaria para ver el estado de actualización de las POS de cada

sucursal.

5) Auditoria de Accesos y Operaciones en BD: Este modulo se

encarga de registrar altas, bajas y modificaciones en las tablas del

sistema.

6) Reportes.

7) Generación de Archivos: Provee la funcionalidad para la

generación de los archivos binarios de promociones a ser

procesados por las POS.

11.1.4 Requerimientos del Sistema

A continuación se enumeran los requerimientos del Sistema. Los

mismos fueron extraídos de un documento presentado por el cliente.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 188

No. Descripción

1 Restricciones por perfil de usuario

1.1 Control de promociones activas

1.2 Control de carga de artículos y estructuras comerciales

1.3 Administración de perfiles, usuarios y permisos

2 Templates de Promociones

2.1 Administración de Templates

2.2 Campos editables

2.3 Grupo de Templates

3 Promociones

3.1 Listado de Promociones vigentes

3.2 Estado de Promociones

3.3 Importación

4 Jerarquías de sucursales

4.1 Asignación de sucursales a promociones

4.2 Administración de Jerarquías de Sucursales

5 Distribución de promociones en sucursales

5.1 Generación automática de archivos de promociones

5.2 Generación manual de archivos de promociones

6 Control centralizado de envío de promociones a las POS

7 Auditoría

8 Reportes

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 189

11.2 Anexo II: Framework para proyectos basados en UML - Herramienta: SharpTrace

La administración de requerimientos y específicamente la trazabilidad de

los mismos, suele ser una actividad costosa. El nivel de detalle y tipo de

información recolectada en estas actividades debe ser configurada en base a

las necesidades específicas del proyecto, con el fin de obtener una relación

ganancia-costo positiva.

(Letelier, 2002) se basa en UML (Unified Modeling Language) como el

medio para establecer un framework común para la especificación de

requerimientos, diseño, y test, que permita una eficiente trazabilidad de

requerimientos.

Dicho modelo tiene las siguientes características:

1) Entidades que cubre: TraceableSpecifications y Stakeholders.

2) Los Stakeholders son los responsables de crear y modificar

especificaciones.

3) Una “especificación trazable” (TraceableSpecification) significa una

especificación de un componente de software con un cierto nivel de

granularidad, pudiendo ser un documento, un diagrama, un texto

especificando un requerimiento no funcional, un caso de uso, una

clase, etc. La granularidad de dicha especificación se encuentra

dada por relaciones del tipo partOf (parte de). Como tipos de

especificaciones, el modelo las separa en especificaciones

racionales (RationaleSpecificacion), de requerimientos

(RequirementSpecification), de casos de prueba (TestSpecification)

y otras especificaciones UML (OtherUML_Specification).

4) Los tipos de trazas (links) que utiliza el modelo son:

a. traceTo: [pre-traceability y post-traceability] es la traza mas

general, utilizada para establecer relaciones entre cualquier

TraceableSpecification.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 190

b. modifies: [pre-traceability y post-traceability] establece una

relación entre una entidad Stakeholder que modifica a una

entidad TraceableSpecification.

c. responsibleOf: [pre-traceability y post-traceability] señala al

Stakeholder responsable de la definición y mantenimiento de

una TraceableSpecification.

d. validatedBy: [post-traceability] relaciona una especificación

de requerimiento (RequirementSpecification) con una

especificación de caso de prueba (TestSpecification) que la

valide.

e. verifiedBy: [post-traceability] determina que caso de prueba

(TestSpecification) verifica cierta especificación UML.

f. assignedTo: [post-traceability] indica que componentes del

modelo UML implementan cierto requerimiento, como ser por

ejemplo, las clases que llevan a cabo el comportamiento de

un caso de uso.

5) Establece para cada tipo de entidad y relación, un elemento que le

corresponda del modelo UML. Hace uso de todas las herramientas

de especificación de UML, sumando las extensiones steoreotypes,

tagged values, y constraints para lograr documentos que puedan

ser trazables a lo largo del proyecto.

Todos estos conceptos pueden visualizarse para un mejor entendimiento

en la siguiente figura:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 191

Además Letelier define las siguientes principales actividades, dentro de

lo que se considera trazabilidad de requerimientos:

1) Configuración de trazabilidad de acuerdo a las necesidades del

proyecto: comprende seleccionar los tipos de componentes de

software (workproducts) a tener en cuenta, definir sus relaciones de

agregación en caso de existir, establecer los tipos de relaciones

(links o trazas) entre sí, y definir criterios para derivar la trazabilidad

en forma implícita.

2) Especificación y explotación de la información de trazabilidad

durante las etapas de desarrollo y mantenimiento de un

software.

Señala la importancia de establecer atributos y sus posibles valores para

cada tipo de workproduct, que permitan mayor trazabilidad (ej. RUP establece

como atributos para una funcionalidad (software-feature): estado (propuesta,

aprobada, incorporada), beneficio de ser incorporada (crítico, importante, útil),

riesgo y estabilidad (bajo, medio, alto).

Bajo el contexto de este framework surge la herramienta SharpTrace

(Anaya & Letelier, 2002). La misma es un add-in de Rational Rose que

extiende dicha herramienta. Permite a Rational Rose integrar especificaciones

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 192

UML y no UML, proporcionando un marco común de interpretación para la

información de trazabilidad. SharpTrace permite seleccionar los tipos de

componentes y links con los cuales se trabajará, proporcionando el

subproceso de configuración de trazabilidad.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 193

11.3 Anexo III: Trazabilidad Enriquecida - Herramienta: DOORS

(Dick, 1995) en su publicación destaca la importancia de asociar una

semántica a los links que establecen las relaciones entre los componentes de

software. Con esto, el autor se refiere a que las relaciones deben tener un

significado más profundo que el simple hecho de “cierto componente se verá

impactado frente a un cambio en otro componente”.

Señala que la trazabilidad por medio de matrices, brinda información

poco detallada. Por ejemplo, si un requerimiento de usuario se ve relacionado

con varias funcionalidades a implementar, entonces, ¿qué significan dichas

relaciones? Que todas las funcionalidades son necesarias para cumplir con el

requerimiento, o que solo alguna de ellas es necesaria.

De manera de obtener una mejor trazabilidad, el modelo señala como

necesidad:

1) que las trazas estén acompañadas de algún comentario que

explique la razón de su existencia,

2) un agrupamiento de trazas, permite describir de mejor manera la

relación en las que se encuentran involucradas

3) tipificar los grupos de trazas permite realizar nuevos análisis de

trazabilidad. Un grupo de relaciones puede por ejemplo ser

mutuamente conflictivo, o brindar una respuesta en conjunto.

En este modelo se basa la herramienta DOORS. Telelogic®, empresa

que desarrolla el producto DOORS, fundamenta las ventajas de la utilización

de su producto, en base a las nuevas capacidades que perciben los diferentes

roles de un equipo de proyecto. A fines prácticos de este trabajo,

resaltaremos los dos roles que creemos mas relevantes en cuanto al uso de

la herramienta:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 194

1) Ingeniero de Software:

a. Facilidad para la creación de relaciones entre las necesidades

del usuario y componentes que integran el software: la

herramienta permite generar links entre el código y una

especificación textual, como ser el caso de una necesidad o

requerimiento. Dichos links pueden ser utilizados

posteriormente para un análisis de impacto.

b. Agrupar toda la información en un solo lugar: la herramienta es capaz de extraer información de diferentes lugares, como ser herramientas de testing o UML, y lograr vincular esa información.

2) Analista de Requerimientos:

a. Extracción de los puntos clave de los documentos del cliente:

es posible almacenar documentos originales del cliente,

extraer de los mismos los puntos clave, almacenarlos de

manera uniforme para todo el proyecto, y dejar relación entre

los mismos. Por ejemplo, de un documento, se pueden extraer

requerimientos del cliente, y almacenarlos usando los mismos

atributos para todos ellos (id, nombre, descripción, etc.). A su

vez, es posible a partir de un requerimiento, regresar al

documento que lo originó.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 195

Plug-in para Microsoft® Word que permite la exportación de información a la plataforma

DOORS.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 196

11.4 Anexo IV: Estrategias de trazabilidad basadas en Casos de Uso - Herramienta: Rational Rose y Rational RequisitePro

En esta sección se explican diferentes estrategias de trazabilidad,

utilizadas por organizaciones que optan por técnicas de modelado de casos

de uso como parte de su metodología de Administración de Requerimientos.

Todas las estrategias tratadas, se encuentran bajo el marco de RUP (Rational

Unified Process) y fueron extraídas de la bibliografía (Spence & Probasco,

2000).

Una de las decisiones más importantes a tomar al momento de

establecer el proceso de trazabilidad, es el nivel de trazabilidad que

requerimos y la cantidad de trazabilidad explícita requerida para alcanzar este

objetivo. El agregado de trazas explícitas a nuestros artefactos de desarrollo

puede tener un costo significante en el proyecto.

Es necesario entonces, definir la estrategia de trazabilidad que será

utilizada para un determinado proyecto, logrando una relación costo-beneficio

positiva.

La estrategia de trazabilidad seleccionada definirá el nivel de trazabilidad

explícita que agregaremos a nuestro proceso de desarrollo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

La figura, muestra los diferentes artefactos de software involucrados en

la especificación de requerimientos en RUP.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 198

Se puede observar como la tradicional SRS2 es solo un camino

alternativo de especificar requerimientos de Software. Es importante notar que

tanto el enfoque de casos de uso, como el tradicional SRS, pueden proveer

una especificación de requerimientos de software que defina en forma

completa el comportamiento externo del sistema a ser construido. No significa

que los dos enfoques no puedan coexistir en un mismo proyecto, en más,

muchas veces es necesario para brindar diferentes visiones según los

stakeholders con los que se trate.

Las estrategias de trazabilidad planteadas en el paper son:

11.4.1 Solamente Casos de Uso

Los requerimientos del sistema son almacenados por completo en casos

de uso y especificaciones suplementarias, no existen especificaciones de

necesidades o funcionalidades. Debe existir un alto grado de confianza entre

el cliente y los desarrolladores, debido a la falta de análisis de necesidades y

funcionalidades.

Ventajas Desventajas

Documentación mínima No existe relación alguna hacia las necesidades del cliente. No se intenta realizar un análisis de problema antes de la definición de la solución.

Esfuerzo mínimo en administración de requerimientos

Alguna gente opina que no se puede establecer un claro contrato a partir de un modelo de casos de uso.

Los casos de uso son fáciles de entender

Dificultad para saber cuando el caso de uso modela una solución que permita la resolución de las necesidades del cliente, debido a una falta de análisis de las mismas.

Buen soporte para la administración del alcance, análisis de impacto y desarrollo incremental.

2 SRS (Software Requirement Specificafion): colección de artefactos que describen en forma completa el comportamiento externo del sistema. Crea un modelo conceptual del sistema a ser construido. Toma como input el documento de visión en donde se sientan objetivos y necesidades de los usuarios.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 199

11.4.2 Casos de uso inducidos a partir de las funcionalidades

Esta es la estrategia recomendada por RUP por defecto. Las

necesidades y funcionalidades, especificadas en el documento de visión, son

trazadas a los casos de uso. Si no se reflejan en los casos de uso, entonces

se trazan hacia las especificaciones suplementarias. El modelo de casos de

uso y especificaciones suplementarias, son complementados con las

necesidades y funcionalidades, para formar la especificación de

requerimientos.

Ventajas Desventajas

Los requerimientos de software son expresados en una manera fácil de entender

No aceptada en todas las organizaciones

El análisis de impacto debido a cambios en los requerimientos es facilitado por esta estrategia de trazabilidad. El impacto de una funcionalidad no implementada es fácilmente entendido

Alguna gente opina que es difícil alcanzar un contrato que está basado fundamentalmente en casos de uso. Si bien, existen organizaciones que lo han logrado.

Permite trazabilidad formal, de bajo nivel y detallada. Tener ambas perspectivas, la de casos de uso y funcionalidades del sistema, facilita la captura de requerimientos

Minimiza el esfuerzo requerido en la administración de requerimientos

El modelo de casos de uso es relacionado hacia atrás con las necesidades de los stakeholders, a través de las funcionalidades

Documentación relativamente corta, permite escalabilidad

11.4.3 El modelo de casos de uso es una interpretación de la especificación de requerimientos de software

Esta estrategia por lo general es utilizada cuando la SRS, es una

metodología que está afianzada en la organización y los casos de uso son

utilizados para posibilitar el desarrollo conducido por casos de uso (use case

driven development).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 200

Las funcionalidades son trazadas hacia especificaciones formales de

requerimientos de software, y estas son a su vez, trazadas con los casos de

uso.

Ventajas Desventajas

Permite trazabilidad formal, de bajo nivel y detallada

No bien entendido por la gente. Se suele verse confundida frente a dos enfoques, el tradicional SRS y el modelo de casos de uso

Los requerimientos de software son expresados en forma entendible

Presta a confusión al momento de completar la especificación de requerimientos, ya que es necesario mantener los dos modelos

El análisis de impacto debido a cambios en los requerimientos es facilitado por esta estrategia de trazabilidad. El impacto de una funcionalidad, requerimiento o caso de uso no implementado es fácilmente entendido

Documentación relativamente extensa de mantener

El modelo de casos de uso es relacionado con las necesidades de los stakeholders a través de los requerimientos de software y las funcionalidades. Permite a los stakeholders entender la razón del modelo de casos de uso

Implica un gran costo

Útil para las organizaciones que están dando sus primeros pasos con casos de uso. El mundo externo continúa viendo el tradicional SRS, que permite utilizar contratos y procedimientos estándares

11.4.4 Sin casos de uso

En este enfoque no existe el modelo de casos de uso. Las necesidades

de los stakeholders dan lugar a las funcionalidades, y estas a los

requerimientos de software, que son formalmente especificados en SRS.

Ventajas Desventajas

Bien entendido Dificultad para la captura de requerimientos

Se cree que es un buen enfoque para contratos legales

Dificultad para el entendimiento de los requerimientos presentados de esta manera

Recomendado por varios procesos estándares

El análisis de impacto debido a cambios en los requerimientos es difícil de llevar a cabo

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 201

Permite trazabilidad formal, de bajo nivel y detallada

Los requerimientos individuales no tienen un contexto

La falta de un contexto impide dar prioridad a los requerimientos, dificultando la administración del alcance y entregas incrementales del producto

Altos costos de mantenimiento. La falta de trazabilidad implícita lleva a tener que mantener gran cantidad de trazas explícitas

11.4.5 El modelo de casos de uso define las funcionalidades del producto

En este caso, el modelado de casos de uso es utilizado como la técnica

principal para la captura de requerimientos, siendo los casos de uso la fuente

principal de las funcionalidades del producto. Esta opción es solo viable para

pequeños desarrollos, con ciclos de vida cortos y sin escalabilidad. Es una

variación al enfoque “Solo Casos de Uso”. Es recomendado utilizar el enfoque

“Casos de uso inducidos a partir de las funcionalidades”, en el caso de que se

opte por relaciones de trazabilidad entre los casos de uso y las necesidades

de los stakeholders.

Ventajas Desventajas

En este enfoque los casos de uso son relacionados con las necesidades del cliente, permitiendo verificar que tan apropiado es el modelo de casos de uso

Al inicio del proyecto, los casos de uso aparentan definir las funcionalidades del sistema, pero los dos conceptos tienden a separarse a medida que el proyecto madura

Los casos de uso no son funcionalidades, provocando que lo que aparenta ser un ahorro en tiempo, resultará en un problema de mantenimiento

El paper (Use Case Management with Rational Rose and Rational

RequisitePro, 2001) menciona como poder lograr una Administración

Integrada de Casos de Uso haciendo uso de las herramientas Rational Rose

y Rational RequisitePro y siguiendo alguna de las técnicas mencionadas.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 202

Estas herramientas principalmente se enfocan en documentar las trazas entre

requerimientos y casos de uso y fundamentan su importancia en:

• Al proveer al usuario una visión de lo que el sistema debería hacer,

los casos de uso se transforman en requerimientos.

• Estableciendo una dependencia tangible entre los casos de uso y

las necesidades, es más fácil responder a cambios sobre

requerimientos del negocio.

• Priorizando la importancia de implementar un caso de uso sobre

otro, ayuda a saber por dónde empezar.

• Administrar casos de uso junto a requerimientos es la clave para

entender el estado del proyecto y permitir realizar entregables del

sistema requerido en forma y tiempo.

¿Como es llevada a la práctica la “Administración Integrada de

Casos de Uso” a través de estas dos herramientas?

Rational Rose es la herramienta para el modelado UML, mientras que

Rational RequisitePro permite la documentación de casos de uso y

requerimientos en documentos Word. A su vez RequisitePro se implementa

sobre una base de datos de manera de almacenar todas las relaciones y

atributos.

Rational permite la asociación de un modelo de Rose con uno de

RequisitePro, de manera de poder ligar el modelo a descripciones de

requerimientos y casos de uso.

Una de las funcionalidades más interesantes a destacar es como se

puede ligar un caso de uso a un requerimiento a medida que se está

escribiendo la especificación del mismo en un documento Word. En la

siguiente figura se puede visualizar como un usuario crea una traza desde el

caso de uso que está editando a un nuevo requerimiento, con un simple click-

derecho del mouse.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 203

Además, de existir una posterior modificación de dicha relación, la traza

será actualizada de manera transparente para el usuario.

Otra funcionalidad importante, es la capacidad de generar diferentes

tipos de vistas que permitan por ejemplo ver casos de uso con cierta

dificultad, a quien están asignados, etc.

Para la visualización de trazas, Rational ofrece una tabla de doble

entrada denominada “matriz de trazabilidad”. En la siguiente figura se puede

apreciar un ejemplo:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 204

En resumen, la técnica “Administración Integrada de Casos de Uso”,

extiende a los casos de uso con información de requerimientos.

Como beneficio principal de la herramienta podemos citar la capacidad

que brinda al usuario de realizar modificaciones en tiempo real acerca de los

atributos de los casos de uso, y trazas entre casos de uso y requerimientos.

La principal desventaja de este enfoque es que solo se ocupa de

resolver la problemática de trazabilidad en la etapa de análisis, dejando de

lado el “gap” existente entre análisis, diseño y posterior implementación de

código.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 205

11.5 Anexo V: Proceso RUP

En base a las bibliografías (Leffingwell & Widrig, 2003) y (Kroll &

Kruchten, 2003), en esta sección se explican resumidamente los aspectos

más relevantes del proceso RUP (Rational Unified Process).

11.5.1 Mejora Iterativa

El enfoque iterativo combina las mejores características de los modelos

en cascada y espiral.

Este enfoque también incorpora los nuevos aportes de la ingeniería del

software.

En este modelo las fases del ciclo de vida se encuentran desacopladas

con respecto a las actividades lógicas que ocurren en cada fase, permitiendo

volver a validar las actividades, como por ejemplo requerimientos, diseño e

implementación, en varias iteraciones a lo largo del proyecto.

Al igual que en el modelo en espiral, cada iteración está diseñada de

modo que se puedan analizar y mitigar aquellos riesgos que se encuentren

presentes en ese momento.

11.5.2 Fases del ciclo de vida

El modelo presenta cuatro fases: concepción, elaboración, construcción

y transición. Estas fases se corresponden a los estados naturales del

proyecto.

En la fase de concepción el equipo concentra la atención en entender el

negocio y alcance del proyecto y posibilidades de implementación. Se realiza

un análisis del problema, una visión de la solución. Se estiman en forma

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 206

preliminar calendarios y costos. Se analizan los posibles riesgos que puedan

surgir en el proyecto y se identifican los principales casos de uso.

En la fase de elaboración se refinan los requerimientos completando los

casos de uso, se establece la arquitectura y, quizá, se desarrolla un prototipo

para mostrar.

En la fase de construcción se centra el foco en la implementación. La

mayoría del código se construye en esta fase. La arquitectura y diseño se

suponen ya terminadas.

En la fase de transición se implementa el producto en el cliente y se

entrena a los usuarios. Como consecuencia de esto suelen surgir nuevos

requisitos a ser analizados.

11.5.3 Iteraciones

Dentro de cada fase existen múltiples iteraciones. Una iteración es una

secuencia de actividades con un plan establecido y criterios de evaluación. Lo

que se obtiene es un “entregable” de algún tipo. Cada iteración se construye

sobre la base de la iteración anterior, por lo que el proyecto se desarrolla en

un estilo iterativo e incremental.

Las iteraciones se seleccionan de acuerdo algún criterio. Por ejemplo,

las primeras iteraciones deberían diseñarse para evaluar la viabilidad de la

arquitectura elegida contra alguno de los casos de uso más riesgosos.

11.5.4 Disciplinas

Las actividades asociadas con el desarrollo del software se organizan

en un conjunto de disciplinas. Cada disciplina define los pasos a seguir para

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 207

obtener un producto viable. Si bien la cantidad y tipo de disciplinas pueden

variar, existen al menos seis disciplinas.

Durante cada iteración, el equipo ocupa el tiempo apropiado para cada

disciplina, entonces una iteración puede verse como un pequeño modelo en

cascada con las actividades necesarias. Cada modelo en cascada se ajusta a

las necesidades específicas de cada iteración.

En la figura se muestra la cantidad relativa de esfuerzo que se invierte

en las disciplinas. Por ejemplo, en la fase de elaboración, la mayoría del

tiempo de concentra en refinar requerimientos y definir la arquitectura que

soportará la funcionalidad del sistema. Las actividades pueden ser

secuenciales o ejecutarse en forma concurrente, de acuerdo a las

necesidades del proyecto.

Consideraciones

El modelo iterativo permite una mejor adaptabilidad a los cambios en los

requerimientos. El modelo reconoce que los requerimientos cambian, es por

esto que se refinan y se validan a lo largo de todo el ciclo.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 208

También permite una mejor administración del alcance ya que en cada

iteración se pueden analizar desvíos y hacer correcciones. Además, al haber

múltiples iteraciones siempre puede existir la posibilidad de obtener un

ejecutable, aunque no contenga todas las funcionalidades.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 209

11.6 Anexo V: Proceso ICONIX

En esta sección brindaremos un resumen de los puntos que

consideramos más importantes del proceso de desarrollo ICONIX (Rosenberg

& Scott, 2001). Merece una sección separada, debido a que creemos que

este proceso aporta conceptos que son útiles de seguir y que pueden servir

como base para la implementación de un modelo de trazabilidad eficiente en

una organización de desarrollo de software.

Es común, en las organizaciones de desarrollo de software, la

percepción de nunca existir el tiempo necesario para el modelado, análisis y

diseño de los sistemas a construir. En la mayoría de los casos, está presente

la presión de “saltar” al código lo antes posible, debido a que el progreso en el

software muchas veces es medido a partir de la cantidad de código existente

hasta cierto momento.

Los autores del proceso, lo encuentran ubicado entre dos procesos; por

un lado el proceso RUP (Rational Unified Process), criticado en cierta medida

por ser muy extenso, y procesos del tipo XP (eXtreme programming),

definidos como “ligeros”. El proceso ICONIX se puede definir como un

proceso de desarrollo inducido a partir de los casos de uso (use-case driven),

como ser el proceso RUP, pero sin todo el overhead del mismo. A su vez, es

relativamente reducido y ajustado como procesos XP, pero no descarta en

ningún momento la necesidad del análisis y el diseño.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 210

La figura demuestra la selección de componentes UML que realiza

ICONIX con el fin de brindar un enfoque ágil, minimalista y eficiente,

reduciendo el overhead necesario para la producción de todos los

documentos que acompañan al proceso RUP. ICONIX, en contraste con RUP,

es un proceso “liviano” y altamente iterativo, focalizado en alcanzar el código

lo más rápido posible.

Otro objetivo que persigue ICONIX es, reducir la “distancia” (gap) entre

el análisis del sistema y la implementación del mismo, es decir, entre la

especificación de requerimientos a través de casos de uso, y el código

responsable del comportamiento necesario para el cumplimiento de los

mismos.

Creemos, que es vital para alcanzar un correcto modelo de trazabilidad,

intentar transferir todo el conocimiento del modelo de análisis, al modelo de

diseño, y a su vez, que ambos modelos estén altamente relacionados, hasta

el punto que, uno se vea necesitado del otro. Es decir, los modelos deben ser

complementarios, y no por el contrario, uno ser el reemplazo de otro.

Hacemos especial énfasis en este último punto, debido a que es común

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 211

encontrarse en la práctica, modelos de análisis, con ideas imposibles de

transferir al modelo de diseño, y viceversa.

11.6.1 Ventajas que ICONIX aporta al proyecto

El proceso ICONIX es una guía que describe como llegar desde un caso

de uso hasta el código que lo implementa. Es así que, le conciernen los

aspectos del modelo de análisis y del modelo de diseño que se puedan

alcanzar en la producción de software.

Rousenberg (Rosenberg, Collins-Cope, & Stephens, Agile Development

with ICONIX Process: People, Process, and Pragmatism, 2005) señala que la

misión de ICONIX resulta ser: “Remover la ambigüedad de los

requerimientos, y posteriormente realizar un diseño claro”.

Existe una buena razón para seleccionar este enfoque. Casos de uso

escritos en forma inconsistente, brindan ambigüedad al momento de

resolverlos. Si esta ambigüedad, no es esclarecida, entonces se traslada a

todo el conjunto de casos de uso, diseño y lo peor de todo, al código. Esto a

su vez, provoca todo tipo de costos, principalmente por defectos en el

software o desvíos en lo que el cliente esperaba del mismo. Es por esto, que

es importante remover todo tipo de ambigüedad lo antes posible, es decir, en

la etapa de especificación de requerimientos.

11.6.2 Teoría del Proceso

El proceso ICONIX trata de extraer el diseño del software a partir de los

requerimientos funcionales de una manera guiada, de un paso a la vez. En

otras palabras, se refiere a escribir el manual de usuario primero (o al menos

un par de párrafos por vez, en forma de casos de uso); validando que se

contemplen los diferentes escenarios y que la descripción del comportamiento

dado a cada caso de uso es realmente el esperado por los usuarios;

asegurándonos que hemos definido el conjunto de objetos (en realidad,

clases) que pueden colaborar para implementar el comportamiento requerido;

y chequeando que dichas clases tienen los atributos y operaciones correctas.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 212

Cuando trabajamos en las diferentes etapas del proceso, lo que

realmente estamos haciendo es llevando los requerimientos funcionales a una

forma mas completa, precisa, sin ambigüedades. A partir de los

requerimientos sin ambigüedades, se desprende un diseño lo suficientemente

ligado para asegurarnos que estamos construyendo el sistema correcto

(entendemos el comportamiento deseado) y lo estamos construyendo de la

manera correcta (definimos clases con los métodos y atributos correctos para

llevar adelante el comportamiento). En resumen, para quitar la ambigüedad a

los requerimientos se trata de construir el sistema correcto, y construirlo de la

manera correcta.

En el proceso ICONIX, cada artefacto UML utilizado, tiene un objetivo

principal:

1) Casos de Uso: describir los requerimientos

funcionales.

2) Modelo del Dominio: describir los objetos reales

del problema y sus relaciones.

3) Diagramas de Robustez: quitar ambigüedad a los

requerimientos funcionales y ligarlos a los objetos

del modelo.

4) Diagramas de Secuencia: Alocar comportamiento

(asignar métodos a las clases).

11.6.3 Etapas del Proceso

El proceso asume en primera instancia, que los requerimientos serán

especificados en base a casos de uso. En segundo lugar, y como punto de

partida entiende que, se han identificado los diferentes escenarios y

principales casos de usos del sistema a construir.

Siguiendo estas premisas, el proceso intenta definir, como llegar desde

un caso de uso, al código que lo implementa, intentando definir un modo que

permita reducir el gap entre análisis – diseño – código.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 213

Para tal fin, el proceso ICONIX puede verse como la secuencia de los

siguientes pasos (en negrita se detallan los diferentes artefactos producidos

en cada etapa).

1) Paso 1: Identificar los objetos del dominio del problema (Modelo del

Dominio).

2) Paso 2: Definir los requerimientos funcionales (Casos de Uso).

3) Paso 3: Análisis de robustez (Diagramas de Robustez).

4) Paso 4: Situar la funcionalidad requerida en los objetos del dominio

(Diagramas de Secuencia).

5) Paso 5: Finalizar el modelo estático (Diagrama de Clases).

6) Paso 6: Implementación del código (Código Fuente).

7) Paso 7: Realizar testing del sistema.

No debe entenderse bajo ningún aspecto que, los pasos mencionados

deban realizarse uno tras otro. En más, el proceso ICONIX es altamente

iterativo, y requiere una constante revisión y actualización del trabajo

previamente realizado. A diferencia de muchos enfoques, ICONIX no plantea

la obligación de tener que obtener un resultado para poder avanzar al

siguiente paso del proceso, lo que aporta a su “agilidad”.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 214

A medida que explicaremos los pasos mencionados en las secciones

siguientes, se notará la existencia de cuatro hitos marcados en el proceso,

que servirán para medir y demostrar el trabajo que ya ha sido realizado en

cierto punto. Dichos hitos son:

1) Hito 1: Revisión de Requerimientos

2) Hito 2: Revisión del Diseño Preliminar

3) Hito 3: Revisión del Diseño Detallado / Crítico

4) Hito 4: Entrega

Paso 1: Identificar los objetos del dominio del problema

Partiendo de las premisas previamente señaladas, y de un prototipo de

interfaces del sistema, el primer artefacto es el modelo del dominio. El

modelo del dominio, no es nada mas, ni nada menos, la manera de establecer

el lenguaje unívoco que menciona Eric Evans11.7, que sirva de glosario para el

equipo de trabajo durante el proyecto. En términos de UML, el modelo del

dominio, es básicamente un diagrama de clases, sin caer en el detalle de

atributos y métodos de cada clase. Puede ser visto como un resumen

abstracto del diagrama de clases. En más, el proceso señala la importancia

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 215

de construir este modelo como un primer acercamiento al modelo de clases,

haciendo especial enfoque en el problema del dominio a resolver. Cuando

creamos un modelo del dominio, estamos creando una representación de los

objetos y acciones involucradas en el negocio y necesarias para los

problemas que el proyecto intenta resolver. El modelo de dominio inicial que

se cree para cualquier proyecto nunca será perfecto. A medida que se avanza

en el proceso, se irá refinando y aportando detalles al modelo final de clases.

Es importante dedicar cierto tiempo para obtener un modelo del dominio

correcto, es decir, que represente la realidad. A su vez, este paso no debe

significar la paralización del proyecto. A medida que se avanza en las

actividades de análisis y diseño, volveremos al modelo del dominio para

actualizarlo, agregando nuevos objetos y correcciones. El modelo del dominio

evoluciona a medida que crece nuestro entendimiento del problema del

dominio.

A su vez, este paso puede ser separado en los siguientes dos:

1) Identificar los objetos del mundo real del dominio, así como también

relaciones de generalización y agregación entre dichos objetos.

2) Comenzar a dibujar un diagrama de clases de alto nivel.

Si es posible, realizar un prototipado rápido del sistema a construir, o

recolectar cualquier tipo de información relevante del sistema “legacy” que se

tome como base.

Paso 2: Definir los requerimientos funcionales

Los requerimientos funcionales (los que brinden el comportamiento

esperado del sistema) en el proceso ICONIX son definidos en los casos de

uso.

Debido a tratarse a un proceso inducido a partir de casos de uso, se

intenta marcar una diferencia con el resto de enfoques. Los casos de uso no

serán descripciones textuales, abstractas, confusas, sin detalle para poder

conseguir en base a los mismos un diseño detallado; sino que por el contrario,

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 216

el proceso mantiene la idea de que el diseño del sistema, deberá surgir a

partir de los casos de uso. Es importante notar que este objetivo del proceso,

juega a favor de la trazabilidad que se intenta perseguir en este trabajo.

El proceso indica que una vez que tenemos el texto necesario para la

especificación de un caso de uso, es hora de refinarlo teniendo en cuenta que

las oraciones sean claras y discretas. Para esta finalidad, se plantea que las

oraciones sigan el patrón sustantivo-verbo-sustantivo. Los sustantivos podrán

ser cualquier entidad identificada en el modelo del dominio u actor del

sistema. A su vez, durante la realización de este modelo, es importante

actualizar e ir sumando conceptos al modelo del dominio, a medida que se

descubren nuevos objetos y se expande el conocimiento de las entidades

previamente identificadas.

Según los autores, el formato a seguir para una especificación de caso

de uso, debe contemplar el curso básico de acción y los alternativos, dejando

de lado toda otra información que pueda distraernos del enfoque. Las

preguntas que guiarán la construcción de un caso de uso serán: ¿Qué

sucede? ¿Y luego que sucede? ¿Qué otra cosa puede suceder?

Se puede estar conformes con el modelo de casos de uso alcanzado

cuando:

1) Los casos de uso construidos responden a todos los requerimientos

y/o funcionalidades del sistema a construir.

2) Las descripciones de los cursos básicos son claras y concisas,

acompañadas de cursos de acción alternativos apropiados, para

cada caso de uso.

Este paso, puede ser subdividido en las siguientes actividades:

1) Identificar los casos de uso utilizando diagramas de caso de uso.

2) Organizar los casos de uso en grupos.

3) Ligar los requerimientos funcionales a casos de uso y a objetos del

dominio.

4) Especificar los casos de uso (curso básico y alternativos).

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 217

Al finalizar este paso, el proceso marca el Hito 1: Revisión de

Requerimientos

Paso 3: Análisis de Robustez

La mayoría de enfoques hacen uso de casos de uso y diagramas de

secuencia, pero no resuelven el problema de reducir el “gap” entre los

primeros, generalmente con poca claridad, y los segundos de gran detalle a

nivel de código y específicos. Para atravesar este salto, entre el qué y el

cómo, está el aspecto central del proceso ICONIX, los diagramas de

robustez. El diagrama de robustez se ubica entre los requerimientos y el

diseño detallado, ayudando a llegar desde un caso de uso a un diagrama de

secuencia. Muestra los objetos que participan en un determinado escenario y

como dichos objetos interactúan entre sí.

Los diagramas de robustez son el resultado de un análisis de robustez.

Dicho análisis involucra el trabajo de recorrer la especificación de un caso de

uso y tomar un vistazo preliminar de cómo podría ser el diseño para

implementarlo, haciendo uso de los objetos que hemos descubierto hasta el

momento en el modelo del dominio.

En los diagramas de robustez participan los siguientes tipos de objetos:

1) Objetos de Periferia (Boundary Objects): utilizados por los

actores para comunicarse con el sistema.

2) Objetos de Entidad (Entity Objects): usualmente objetos

pertenecientes al modelo del dominio.

3) Objetos de Control (Control Objects): usualmente denominados

“controladores”, ya que no son objetos reales. Sirven de unión entre

los objetos periféricos y los de entidad.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 218

El análisis de robustez para un caso de uso se realiza recorriendo la

especificación textual del mismo, oración por oración, y dibujando el/los

actor/es, los objetos de periferia, control y entidad apropiados, y las relaciones

entre ellos. Se debe poder completar el curso básico y todos los cursos

alternativos del caso de uso en cuestión.

Para la realización de los diagramas, se deben contemplar cuatro reglas

básicas:

1) Los actores solo pueden hablar con objetos de periferia.

2) Objetos de periferia solo pueden hablar con objetos de control y

actores.

3) Objetos de entidad solo pueden hablar con objetos de control.

4) Objetos de control pueden hablar con objetos de periferia, objetos

de entidad, pero no actores.

Tanto los objetos de entidad como los de periferia responden a los

sustantivos de la especificación de los casos de uso, mientras que los verbos

se corresponden con los objetos de control. Por lo tanto los sustantivos no

pueden comunicarse con otros sustantivos, pero los verbos pueden hablar

tanto con sustantivos como con verbos.

El análisis de robustez, además de aportar como resultado la creación

del diagrama correspondiente, trae como consecuencia:

1) Un chequeo de que la especificación del caso de uso sea válida, es

decir, que no se haya especificado algo imposible de llevar a la

implementación.

2) Surgimiento de nuevos objetos, que quizás se hayan escapado

durante la realización del modelo del dominio, incorporándose al

mismo. Además nos aseguramos que todos los objetos de control y

periferia necesarios para llevar a cabo el curso del caso de uso,

estén debidamente identificados para el posterior diagrama de

secuencia.

El análisis de robustez puede ser dividido en los siguientes pasos:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 219

1) Dibujar los diagramas de robustez. Para cada caso de uso:

2) Identificar los objetos del dominio responsables de cumplir un

escenario en particular.

3) Actualizar el modelo del dominio, a medida que se descubren

nuevos objetos y atributos.

4) Actualizar (quitar ambigüedad) la especificación del caso de uso, de

manera que concuerde con el diagrama de robustez.

5) Terminar de actualizar el diagrama de clases de manera que refleje

la finalización de la fase de análisis del proyecto.

Al finalizar este paso, el proceso marca el Hito 2: Revisión del Diseño

Preliminar.

Paso 4: Situar la funcionalidad en los objetos del dominio

Al finalizar los diagramas de robustez y realizar una revisión preliminar

del diseño, es hora de realizar el diseño detallado. El diseño detallado se basa

en situar las funciones del software que hemos identificado en el conjunto de

objetos que hemos descubierto. ICONIX toma a los diagramas de secuencia

como elemento central del diseño detallado, o al menos de la parte dinámica

del modelo de objetos.

En la parte superior de un diagrama de secuencia se encuentran los

objetos que participan en un escenario dado. Lo primero que debemos hacer

antes de comenzar un diagrama de secuencia es, identificar los objetos que

participarán en el mismo. Como ayuda a esta tarea, se puede pensar en las

funcionalidades que debemos situar para el escenario en cuestión. Por lo

tanto, mientras realicemos el diagrama, estaremos pensando en el mapeo

entre, las funciones que brindarán el comportamiento deseado, y los objetos

involucrados.

Esta etapa del proceso, puede ser subdividida en los siguientes pasos

para cada caso de uso:

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 220

1) Identificar los mensajes que necesitan ser enviados entre los

objetos y los métodos asociados a los mismos que serán invocados.

2) Dibujar el diagrama de secuencia de manera de situar la

especificación del caso de uso a la izquierda y los detalles de

diseño a la derecha.

3) Continuar actualizando el / los diagramas de clases con los

atributos y operaciones a medida que son identificados.

El proceso señala la necesidad de crear un diagrama de secuencia para

cada caso de uso, en el que se muestre tanto el curso básico como los cursos

alternativos del mismo. A nuestro parecer llevar esto a la práctica se torna

casi imposible por el costo en esfuerzo requerido. Nuestra opinión es que se

deben realizar diagramas de secuencia solo para aquellos casos de uso en

los que intervengan entidades importantes, y su curso responda a una

necesidad de negocio importante. Resumiendo, creemos que un diagrama de

secuencia por ejemplo de un ABM no aporta valor a la documentación.

Paso 5: Finalizar el modelo estático

Como el título lo menciona, el artefacto de diseño fundamental de este

paso es el modelo estático, que está integrado por uno o mas diagramas de

clases.

Este paso puede ser visto como las siguientes actividades:

1) Agregar información de diseño detallada (aplicar patrones de diseño

al modelo)

2) Verificar con el equipo de trabajo que el diseño satisface los

requerimientos que han sido identificados.

El modelo estático es la vista más detallada del modelo del dominio,

conteniendo detalles de implementación y decisiones de diseño. Además

contiene los diagramas de clases a un nivel detallado y concordante con los

diagramas de secuencia.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 221

Al finalizar este paso, el proceso marca el Hito 3: Revisión detallada /

crítica del diseño.

Paso 6: Implementación del código

Este paso, es cuando los programadores toman el diseño y comienzan a

codificar a partir del mismo. ICONIX asume que los programadores deben

participar activamente en todos los pasos de diseño.

Asumiendo un enfoque ágil, el diseño no va a estar 100% correcto, por

lo que en caso de tomarse nuevas decisiones de diseño, o modificar

cuestiones del modelo, los mismos deben verse reflejados en los artefactos

previamente citados.

Se pueden identificar dos actividades en este paso:

1) Generación de código.

2) Realización de testing unitario y de integración.

Paso 6: Testing del Sistema

En esta etapa, un grupo integrado por personas ajenas al desarrollo

(idealmente un equipo de QA) realiza el testing de aceptación, tomando a los

casos de uso como “cajas negras” y aplicándoles los casos de prueba.

Al finalizar este paso, el proceso marca el Hito 4: Entrega.

11.7 Anexo VI: Domain-Driven Design

En cierta medida, la trazabilidad estará guiada por la habilidad con que

se logre modelar el dominio del negocio. Un enfoque en el cual se basa la

presente tesis es el de “Diseño dirigido a partir del dominio”, o más

comúnmente denominado en la Ingeniería del Software como “Domain-Driven

Design” propuesto en la bibliografía (Evans, 2003).

“Domain-Driven Design descarta la separación entre el modelo de

análisis y el modelo de diseño, buscando un único modelo que sirva para

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 222

ambos propósitos. Dejando de lado temas puramente técnicos, cada

elemento en el diseño, juega un rol conceptual en el modelo”.

El proceso tradicional de desarrollo de software indica que en primer

lugar un analista, en base a un relevamiento de las necesidades de los

stakeholders, especifique que debería solucionar el sistema a través de los

requerimientos de software. Posteriormente una etapa de diseño, especifica

como dichos requerimientos son llevados a cabo. Esta separación de roles,

hace por lo general, que se manejen conceptos y lenguajes diferentes. Es

muy común observar en las organizaciones, con una marcada separación

entre analistas y diseñadores / arquitectos, la tendencia a que el segundo

grupo termine finalmente produciendo un modelo de implementación

totalmente diferente al planteado por el primer grupo. En la mayoría de los

casos es debido a que el modelo de análisis no es “técnicamente

implementable”. Sin embargo, el mayor problema radica que al coexistir dos

modelos que manejan conceptos diferentes, las relaciones entre ambos no

pueden ser documentadas, quitando toda posibilidad de trazabilidad.

“Siempre existen diversas maneras de abstraer el dominio, y a su vez

varios diseños capaces de resolver un problema. Esto es lo que hace

importante en mantener una conexión entre el modelo y el diseño en la

práctica. Cuando un modelo puede llevarse a la implementación, entonces

debemos seleccionar otro.”

Lograr la conexión mencionada por Evans, no debe significar un análisis

pobre debido a consideraciones técnicas, ni tampoco, un diseño que solo

refleje ideas del dominio sin estar fuertemente basado en los principios de

diseño mayormente aceptados (patrones de diseño).

Evans resalta tres características esenciales que debe tener un buen

modelo:

1) El modelo y el corazón del diseño deben ser un reflejo mutuo. Es la

relación íntima entre el modelo y la implementación lo que hace del

modelo un elemento relevante, asegurando que el análisis que

sobre él se realice será aplicado al producto final, un sistema que

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 223

funcione. Esta conexión entre el modelo y la implementación ayuda

al mantenimiento y continuo desarrollo, ya que el código puede ser

interpretado en base a un entendimiento del modelo.

2) El modelo es la columna vertebral que integra el lenguaje a ser

utilizado por todos los miembros del equipo. La conexión entre el

modelo y la implementación, permite a los desarrolladores hablar

del sistema utilizando este lenguaje. Pueden comunicarse con los

expertos del dominio sin traducción alguna. Y debido a que el

lenguaje está basado en el modelo, nuestra propia lingüística

permitirá refinar al modelo mismo.

3) El modelo es la manera en que el equipo de proyecto estructura el

conocimiento del dominio y distingue los elementos de mayor

interés. Captura la manera en que pensamos acerca del dominio, a

medida que seleccionamos términos, desglosamos conceptos, y los

relacionamos entre ellos. La conexión entre el modelo y la

implementación permite ganar experiencia en versiones tempranas

del software, permitiendo un feed-back para aplicar al proceso.

Esta metodología requiere ciertos requisitos para poder llevarse a cabo,

que son de interés detallar:

1) El desarrollo debe ser un proceso iterativo.

2) Debe existir una relación continua y cercana entre los que

construyen el sistema (diseñadores / arquitectos) y los expertos del

dominio, es decir, entre los que conocen el dominio y los que saben

cómo construirlo.

3) Hacer uso de un lenguaje unívoco, tanto en el análisis como en el

diseño. Evans lo define como “UBIQUITOUS LANGUAGE”.

4) Existencia de herramientas y lenguajes que soporten un buen

modelo de la realidad. Los lenguajes Orientados a Objetos, son los

elegidos, brindando asociaciones entre objetos, jerarquía de clases,

comportamiento a través de mensajes, etc.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 224

5) Integración entre los roles del grupo de trabajo. Una marcada

separación de la responsabilidad de cada uno de ellos (analista,

diseñador / arquitecto, desarrollador). “Si la gente que escribe el

código no se siente responsable por el modelo, o no entienden

como hacer que el modelo funcione en una aplicación, entonces el

modelo no tiene nada que hacer con el software que se produzca”.

6) Separación del dominio – se explica detalladamente a continuación.

11.7.1 Separación del Dominio

Si bien esta sección se refiere a conceptos que se deben perseguir para

alcanzar un correcto diseño de un sistema, merece la atención debido que el

modelo de trazabilidad planteado en este trabajo, presupone su utilización.

En todo diseño OO, siempre es necesario desacoplar los objetos de

dominio de toda otra funcionalidad que el sistema ofrezca, evitando:

1) confundir conceptos del dominio con otros conceptos relacionados

con la tecnología del software,

2) perder el dominio de vista entre la gran “masa” del sistema.

Es común, frente a diseños imposibles de mantener, encontrarse

características tales como:

1) Código de presentación, acceso a base de datos, y otro código de

soporte, escrito dentro de las clases de negocio.

2) Lógica del negocio embebida dentro de componentes de la

presentación o scripts de la base de datos.

Cuando las reglas de negocio que conforman el dominio, se encuentran

mezcladas entre código con diferentes funcionalidades, se vuelve

extremadamente difícil de entender y razonar. Así, por ejemplo, cambios

superficiales a la interfaz de presentación, pueden producir cambios en la

lógica de negocio, produciendo efectos no deseados. El testing se volvería

una tarea exhaustiva, debido a que la lógica a testear estaría “desparramada”

por todo el código, y a su vez siendo impactada por cualquier factor de

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 225

cambio. Cambiar una regla de negocio, significaría un seguimiento meticuloso

del código de presentación, código de base de datos, u otros elementos que

integren al sistema.

Evans propone como resolución a esta problemática, un modelo de

capas, en donde “el principio esencial es que cada elemento de una capa

(layer) depende solo en elementos de la misma, o de elementos de una capa

inferior. La comunicación hacia arriba debe dirigirse a través de algún

mecanismo indirecto”.

Cada capa del modelo propuesto por Evans, se especializa en un

aspecto particular del sistema. Se persigue alcanzar una gran cohesión3 en el

diseño de estos aspectos, permitiendo diseños más fáciles de entender, y un

bajo acoplamiento4 entre las capas del modelo.

Las capas que integran el modelo son:

3 Cohesión: Grado de relación (similitud) que existe entre los elementos de un mismo módulo. 4 Acoplamiento: Grado de relación (dependencia) que existe entre diferentes módulos.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 226

1) Capa de Presentación: responsable de mostrar información al

usuario e interpretar las solicitudes del mismo. El usuario u actor

externo puede ser en algunas ocasiones otro sistema en vez de una

persona.

2) Capa de Aplicación / Control: define la interacción necesaria entre

diferentes objetos del dominio para llevar a cabo los requerimientos

de software. Esta capa trata de mantenerse delgada. No contiene

reglas de negocio o conocimiento del dominio, solo coordina tareas

y delega trabajo a la capa inferior. No mantiene un estado reflejando

la situación del negocio, pero existe la posibilidad de que mantenga

estados que informen al usuario el avance de una tarea.

3) Capa del Dominio / Negocio: responsable de representar los

conceptos, información acerca de la situación, y reglas del mismo

negocio. Los detalles técnicos de almacenar el estado del negocio

son delegados a la capa de infraestructura. Esta capa es el corazón

del software del negocio.

4) Capa de Infraestructura: provee capacidades técnicas para el

soporte de las capas superiores: envío de mensajería, persistencia

del dominio, etc.

“Concentrar todo el código relacionado al modelo del dominio en una

sola capa y separarlo de la interfaz de usuario, código de control e

infraestructura. Los objetos del dominio, al estar libres de la responsabilidad

de mostrarse a sí mismos, guardarse, administrar las tareas, y demás,

pueden enfocarse en expresar el modelo del dominio. Esto permite una

evolución rica y clara del modelo, que permita capturar el conocimiento

esencial del negocio y ponerlo a funcionar.”

(Fowler, 1997) “Separando la capa del dominio de las capas de

infraestructura y presentación permite un diseño mucho más claro de cada

capa. Capas separadas son menos costosas de mantener, debido a que

tienden a evolucionar con diferente velocidad y responden a necesidades

diferentes.”

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 227

11.8 Anexo VII: Requerimientos Estructurados – Herramienta: Optimal Trace

La empresa Compuware hace hincapié en una metodología que ellos

mismos denominaron “Requerimientos Estructurados”. Esta empresa entiende

que una administración inadecuada de requerimientos provoca el 70% de los

fracasos de proyectos.

La causa principal que señalan es parte de la problemática analizada en

este trabajo: el gap entre lo que el equipo de negocio necesita y lo que la

gente de IT entiende y finalmente entrega.

Lo que proponen es una manera de documentar los requerimientos. Se

denominan estructurados puesto que ofrecen un flujo paso por paso de lo que

los stakeholders necesitan y esperan del sistema.

Los requerimientos estructurados permiten trazabilidad completa a lo

largo de todo el ciclo de vida debido a que terminan siendo la parte central del

proceso de planeamiento del proyecto, conectando el plan de proyecto con

los objetivos de negocio. A partir del proceso se desprenden especificaciones

de diseño (modelos UML), diseño de interfaces de usuario (screenshots y

storyboards), plan de testing (compuesto por casos de prueba), y módulos de

código (Java, C++, etc.).

¿Qué es exactamente un requerimiento estructurado?

Un requerimiento estructurado describe un objetivo del sistema en

cuestión. Son generados con un alto grado de involucramiento del usuario

que conoce el negocio. Debido a que reflejan de manera clara el

comportamiento del sistema en un flujo entendible, es fácil para los usuarios

entender y verificar el proceso y asegurar que nada está siendo omitido.

Además permiten a los arquitectos entender los objetivos del sistema desde el

punto de vista del cliente. Definen el alcance e interfaz del sistema, facilitando

ver que está dentro y que afuera, acelerando la decisión de compra del cliente

y reduciendo discusiones.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 228

Optimal Trace

Compuware basándose en la metodología de requerimientos

estructurados, desarrolló una herramienta llamada Optimal Trace. La misma

permite llevar adelante todo el proceso de captura y especificación de

requerimientos. A su vez, permite establecer “links” a screenshots,

storyboards o cualquier información útil para dar más información a los

requerimientos especificados.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 229

12 Referencias

- Abbattista, F., Lanubile, F., Mastelloni, G., & Visaggio, G. (1994). An Experiment on the Effect of Design Recording on Impact Analysis. International Conference on

Software Maintenance (págs. 253-259). Bari, Italia: IEEE Computer Society. - Ambler, S. W., Nalbone, J., & Vizdos, M. J. (2007). The Enterprise Unified Process:

Extending the Rational Unified Process. Prentice Hall. - Anaya, V., & Letelier, P. (2002). Trazabilidad de Requisitos Adaptada a las

Necesidades del Proyecto: Un Caso de Estudio Usando Alternativamente RUP y XP. Valencia, España: Departamento de Sistemas Informáticos y Computación - Universidad Politécnica de Valencia.

- Arnold, R., & Bohner, S. (1993). Impact analysis-Towards a framework for comparison. CSM-93, Proceedings., Conference, (págs. 292-301).

- (1986). Automated Life Cycle Impact Analysis System. Roma, Italia. - Bianchi, A., Visaggio, G., & Fasolino, A. R. (2000). An Exploratory Case Study of the

Maintenance Effectiveness of Traceability Models. 8th International Workshop on

Program Comprehension (pág. 149). Napoli, Italia: IEEE Computer Society. - Bohner, S. (1996). Change Impact Analysis for Design Evolution. En S. Bohner, & R.

Arnold, Software Change Impact Analysis (pág. 75). IEEE Computer Society Press. - Bohner, S., & Arnold, R. (1996). An Introduction to Software Change Impact

Analysis. En S. Bohner, & R. Arnold, Software Change Impact Analysis. IEEE Computer Society Press.

- Bohner, S., & Arnold, R. (1996). Software Change Impact Analysis. IEEE Computer Society Press.

- Dean, L., & Don, W. (1999). Managing Software Requirements - A Unified Approach. Addison Wesley.

- Dick, J. (1995). Rich Traceability. Quality Systems and Software Ltd.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 230

- Evans, E. (2003). Domain-Driven Design: Tacking Complexity In the Heart of

Software. Addison Wesley Longman Publishing Co., Inc. - Fiutem, R., & Antoniol, G. (1998). Identifying Design-Code Inconsistencies in

Object-Oriented Software: a Case Study. International Conference on Software

Maintenance (págs. 94-102). Los Alamitos, California, USA: IEEE Computer Society. - Fowler, M. (1997). Analysis Patterns: Reusable Object Models. Addison Wesley. - Freedman, & Weinberg. (1981). A Checklist for Potential Side Effect of a

Maintenance Change. En G. Parikh, Techniques of program and system maintenance. QED Information Sciences, Inc.

- Gotel, O. C., & Finkelstein, A. C. (1994). An Analysis of the Requirements Traceability Problem. Proc. Int'l Conf. Requirements Eng. (págs. 94-101). Los Alamitos, California, USA: IEEE CS Press.

- Kroll, P., & Kruchten, P. (2003). The Rational Unified Process Made Easy: A

Practitioner's Guide to the RUP. Addison Wesley. - Lee, M. L. (1998). Change Impact Analysis of Object Oriented Software. George

Mason University. - Leffingwell, D., & Widrig, D. (2003). Managing Software Requirements: A Use Case

Approach. Addison Wesley. - Letelier, P. (2002). A Framework for Requirements Traceability in UML-based

Projects. 17th IEEE International Conference on Automated Software Engineering. U.K.

- Lindvall, M., & Sandahl, K. (1998). Traceability aspects of impact analysis in object-oriented systems. Journal of Software Maintenance: Research and Practice , 37-57.

- Olson, T., Reizer, N., & Over, J. (1993). A Software Process Framework for the SEI

Capability Maturity Model. Pittsburgh, Pennsylvania: Software Engineering Institute. - O'Neal, J. S. (2003). Analyzing the impact of changing software requirements: a

traceability based methodology. Louisana State, USA. - Pfleeger, S. L. (1991). Software Engineering: The Production of Quality Software,

2nd ed. New York, USA: Macmillan Publishing Co., Inc. - Ramesh, B. (Diciembre de 1998). Factors influencing requirements traceability

practice. Communications of the ACM , págs. 37-44. - Ramesh, B., Harrington, G., Rondeau, K., & Edwards, M. (1993). A model of

requirements traceability to support system development. Maryland, USA. - Rosenberg, D., & Scott, K. (2001). Applying Use Case Driven Object Modeling with

UML: An Annotated e-Commerce Example. Addison Wesley. - Rosenberg, D., Collins-Cope, M., & Stephens, M. (2005). Agile Development with

ICONIX Process: People, Process, and Pragmatism. Apress. - Spence, I., & Probasco, L. (2000). Traceability Strategies for Managing Requirements

with Use Cases. Rational Software. - Stevens, W., Myers, G., & L.L., C. (1999). Structured design. IBM Systems Journal ,

231. - (2001). Use Case Management with Rational Rose and Rational RequisitePro.

Rational Software Corporation. - Wieringa, R. (1995). An Introduction to Requirements Traceability. Amsterdam,

Holanda. - Yau, S., & Collofello, J. (1980). Some Stability Measures for Software Maintenance.

IEEE Transactions on Software Engineering , 545-552.

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 231

Análisis de Impacto basado en información de trazabilidad Universidad de Buenos Aires – Facultad de Ingeniería

Tesista: Martín de la Rosa

Tutor: Lic. Pablo Cosso

Página 232