Elements of a Requirements Management Tool to Improve Software

Anuncio
RACCIS, 2(1), 37-42, 2012.
Revista Antioqueña de las
Ciencias Computacionales y la Ingeniería de Software
ISSN: 2248-7441
www.fundacioniai.org/raccis/index.htm
raccis@fundacioniai.org
Elements of a Requirements Management Tool to Improve Software
Development
Elementos de una Herramienta de Gestión de Requisitos para Mejorar el
Desarrollo de Software
Rogeiro Silva1, Anaima Dasilva2
Universidad de Porto
1 rsilva(AT)up.pt, 2 adasilva(AT)up.pt
INFORMACIÓN DEL ARTÍCULO
Tipo de artículo: Reflexión.
Historia del artículo
Recibido: 16-03-2012
Correcciones: 20-06-2012
Aceptado: 21-06-2012
Categories and Subject Descriptors
D.2.0 [Software Engineering]:
General – Standards.
General Terms
Software Engineering, Requirements
Engineering.
Keywords
Requirements
management
Engineering,
Engineering.
tool,
management,
Software
Requirements
Palabras clave
Gestión de requisitos, herramienta
de gestión, Ingeniería de Software,
Ingeniería de Requisitos.
ABSTRACT
Developing quality software is a challenge that requires professional to use techniques and
methodologies appropriate, at the same time good software engineering practices. In the
industry, the challenge is to hire experienced professionals, especially having to do with
requirements management and tools to do it. To help overcome these problems, this article
presents a way to select a management tool that incorporates best practices, in order to
investigate the elements that ensure that is suitable for specific needs. To achieve this, was
conducted a comparative study among the different tools available that have these
elements. The results show that, until now, there is not a specific tool that contains all,
therefore, has been determined that is essential to develop one that professional can use for
developing quality software.
RESUMEN
Desarrollar software de calidad es un desafío que les exige a los profesionales emplear
técnicas y metodologías apropiadas, al mismo tiempo que buenas prácticas de Ingeniería de
Software. En la industria, el desafío consiste en poder contratar profesionales con
experiencia, especialmente en lo que tiene que ver con la gestión de requisitos y con las
herramientas para hacerlo. Con el fin de ayudar a superar estos problemas, en este artículo
se presenta una forma para seleccionar una herramienta de gestión que incorpore las
mejores prácticas. El objetivo investigar los elementos que garanticen que es adecuada para
unas necesidades específicas. Para lograrlo, se llevó a cabo un estudio comparativo entre las
diferentes herramientas disponibles que tuvieran esos elementos. Los resultados muestran
que, hasta el momento, no existe una herramienta específica que los contenga a todos, por lo
tanto, se determina que es esencial desarrollar una que puedan utilizar los profesionales
para desarrollar software de calidad.
1. INTRODUCCIÓN
En la última década, los productos de la Ingeniería de
Software han tenido un impacto notable en la sociedad y
en la economía global. Cada año, sólo en los Estados
Unidos, se invierte alrededor de USD 275 billones en
cerca de 200.000 proyectos de aplicaciones con un
componente importante de software [1]. Esta industria
genera aproximadamente 1/6 de los ingresos del PIB en
este país. Los productos que tienen un gran componente
software se encuentran por todas partes, como en los
computadores, el correo electrónico, la red mundial, los
teléfonos celulares, las lavadoras y los microondas, entre
otros muchos y se prevé que este impacto seguirá
aumentando en las próximas décadas [2]. Sin embargo, la
mayoría de problemas que enfrenta la industria hoy en
día son los mismos que se experimentaba en 1968,
cuando se acuñó por primera vez el término "Ingeniería
de Software", en la conferencia de la OTAN [3].
© 2012 IAI. All rights reserved.
Muchos proyectos software han fracasado o han sido
cancelados debido a costos excesivos, a retrasos en el
programa y a clientes y partes interesadas insatisfechos.
Los datos del Chaos Report of the Standish Group [4]
muestran que, en promedio, más del 23% de ellos fallan y
más del 49% son desafíos que sobrepasan el presupuesto.
Este fenómeno ha estado latente en la industria del
software por más de cuatro décadas y se ha señalado a la
práctica deficiente de la Ingeniería de Requisitos —IR—
como uno de los motivos principales que contribuyen a
esta situación [5, 6].
Como un proceso de la Ingeniería de Software, la IR juega
un papel vital para asegurar el éxito total de los
proyectos. La gestión de requisitos es una parte de la IR
que se concentra en el manejo de la administración del
cambio, la trazabilidad, el control de versiones y el
seguimiento al estado de los mismos pero, actualmente,
37
esta actividad no se lleva a cabo adecuadamente durante
el desarrollo. Tener práctica en esta gestión durante un
proyecto de desarrollo de software es el primer paso
hacia el aumento de la calidad total del producto. Los
requisitos son atributos que definen características como
capacidad, rendimiento y calidad de un sistema y, para
garantizar la calidad de su especificación, es necesario
hacer un fuerte énfasis para aplicar métodos ingenieriles
en los procesos involucrados, incluyendo la actividad de
la gestión de requisitos mediante el uso de diversas
técnicas y metodologías y de buenas prácticas [7-10].
Dado que los requisitos tienden a cambiar durante el
desarrollo del sistema, estos cambios se deben manejar
adecuadamente.
Por lo general, los procesos de IR implican gran cantidad
de datos y de requisitos inestables, por lo tanto, se han
desarrollado herramientas para ayudar a gestionarlos
[11] y para apoyar la administración de sus bases de
datos y cambios. También recogen las necesidades del
sistema en una base de datos o repositorio y ofrecen una
gama de utilidades para acceder a esa información. En el
mercado existen varias herramientas de gestión de
requisitos que van desde las sencillas, económicas y
fáciles de utilizar hasta las complejas, sofisticadas y
costosas. Sin embargo, la pregunta que surge es, ¿son
adecuadas y apropiadas para las industria del software y
las exigencias actuales? Porque el desafío aquí es
encontrar profesionales con experiencia en Ingeniería de
Software, especialmente en lo que tiene que ver con la
gestión de requisitos y con esas herramientas [12].
Además, éstas no son muy utilizadas en el desarrollo de
proyectos [13]. Si no hay mejoría significativa y progreso
para superar estos problemas, este fenómeno se
convertirá en uno de los mayores retos de la Ingeniería de
Software en la industria.
Una de las principales tareas, a fin de superar esos
problemas, consiste en encontrar una solución factible
para llevar a cabo y poner en práctica la gestión de
requisitos durante el desarrollo de proyectos software.
Por lo tanto, este artículo intenta recomendar una
herramienta que incorpore las mejores prácticas a esta
actividad con la meta de lograr un mejor enfoque para la
práctica. Por lo tanto, este trabajo tiene como objetivo
investigar las características o elementos que debe tener
una herramienta de gestión de requisitos para llegar a ser
apta para la industria. La primera parte del contenido
presenta las revisiones respectivas; a continuación se
definen los elementos de gestión de requisitos de la
herramienta desde las perspectivas general y específica;
posteriormente, se presenta un estudio comparativo y
finalmente se detallan las conclusiones de la
investigación.
2. COMENTARIOS
Tradicionalmente, los equipos de proyecto documentan
los requisitos en un programa estructurado de
especificación escrito en lenguaje natural [14, 15], sin
embargo,
el
documento
resultante
presenta
inconvenientes como [14]:
 Es difícil de actualizar y sincronizar.
 Se dificulta informar los cambios porque la
comunicación entre los miembros del equipo es un
proceso manual.
 No es fácil almacenar la información complementaria,
especialmente atributos acerca de los requisitos.
 Es difícil definir los vínculos entre los requisitos
funcionales y otros elementos del sistema.
 El seguimiento al estado de los requisitos es muy
difícil e involucra procesos manuales.
 Cuando los miembros del equipo están separados
geográficamente no les es fácil modificar los
requisitos.
 No se deja espacio adecuado para almacenar los que
fueron rechazados y los que se eliminaron de la línea
base.
Se puede concluir entonces que existen limitaciones en el
documento, por lo que una herramienta de gestión de
requisitos, que almacene información en una base de
datos multi-usuario, proporcionaría una solución robusta
a estos problemas. Esta solución podría beneficiar tanto a
los grandes proyectos como a los pequeños. Para manejar
los requisitos en uno pequeño, el repositorio central
podrían ser aplicaciones de hoja de cálculo o bases de
datos sencillas. Las bases de datos relacionales se utilizan
para almacenar y administrar gran número de registros,
que tienen la misma estructura y unas conexiones
mínimas entre ellos y muchas herramientas de gestión de
requisitos se basan en ellas. De acuerdo con Sommerville
y Sawyer [9], es posible mantener muchos vínculos con
una base de datos relacional, pero esto no es suficiente
porque requieren operaciones en tablas individuales
diferentes. Además, que las bases de datos orientadas a
objetos son estructuralmente más adecuadas para la
gestión, porque permiten mantener diferentes tipos de
información en diferentes objetos y la forma como
gestionan los vínculos entre ellos es bastante sencilla.
Por otra parte, los proyectos grandes podrían emplear las
herramientas de gestión comerciales disponibles, debido
a que ofrecen muchas características para que los
usuarios importen los requisitos desde el documento
origen, definan los valores de los atributos, filtren y
muestren el contenido de bases de datos, exporten
requisitos en varios formatos, definan los enlaces de
trazabilidad y conecten los requisitos con los elementos
almacenados en otras herramientas de desarrollo [14]. La
razón principal por la que todos los proyectos software
deben utilizar una herramienta de gestión se debe a que
proporciona asistencia automatizada que ayuda a
gestionarlos, a medida que avanza el desarrollo. También
porque ayuda a realizar las siguientes tareas [14]:
 Gestión de versiones y cambios. La gestión de requisitos
implica organizar y almacenar la información
pertinente, de modo que las herramientas ayudan a
manejar la historia de los cambios para que, si es
necesario, se puedan modificar los iniciales así como
mantener versiones actualizadas de los mismos.
38
 Almacenar los atributos de los requisitos. En un
repositorio central se debe almacenar variada
información de los requisitos lo mismo que sus
atributos. Cada miembro del equipo debe ser capaz de
verla y estar autorizado para actualizar sus valores.
Por lo general, las herramientas de gestión generan
algunos atributos definidos por el sistema, como la
fecha de creación y el número de versión y también les
permiten a los usuarios definir atributos adicionales,
como autor, persona responsable, origen, razón de ser,
número de versión, estado, prioridad, costo, nivel de
dificultad, estabilidad y riesgo.
 Facilitan el análisis de impacto. La mayoría de estas
herramientas permite el seguimiento a los requisitos
mediante la definición de enlaces entre los diferentes
tipos, entre requisitos en diferentes subsistemas y
entre requisitos individuales y componentes
relacionados con el sistema. Estos enlaces ayudan a
analizar el impacto de un cambio en un requisito
específico, identificando otros elementos del sistema
que se puedan afectar. También proporciona la
capacidad de seguimiento para que cada requisito
funcional regrese a su origen.
 Seguimiento al estado de los requisitos. Las
herramientas de gestión de requisitos tienen una base
de datos central para almacenar todos los requisitos.
El uso de herramientas de gestión es esencial, teniendo en
cuenta el tamaño y la complejidad de los esfuerzos de
desarrollo [16]. Sin embargo, un estudio [12] en la
industria del software reveló que no existe un enfoque
adecuado de gestión de requisitos e identificó la
necesidad de que los ingenieros de software utilicen las
mejores prácticas en esa gestión. Por lo tanto, es
necesario difundir y promover las herramientas de
gestión de requisitos en la industria de software.
Existen plataformas comerciales para la gestión de
requisitos, como DOORS [17] y Rational Requisite Pro
[18], que utilizan diferentes conceptos y que tienen
diferentes capacidades y grados de madurez con respecto
a su aplicabilidad en proyectos de Ingeniería de Software
[16]. De acuerdo con Zainol y Mansoor [13], sólo el 12.2%
de los 74 encuestados utilizan herramientas de gestión de
requisitos, de los cuales el 10.8%, utiliza Rational y el
1.4% otro tipo de herramientas. Casi todos los
encuestados respondieron nunca haber utilizado
herramientas de gestión para apoyar sus proyectos de
desarrollo de software. También informan estos autores
que a la industria le hace falta utilizar herramientas
sofisticadas. Como resultado, existe la necesidad de
desarrollar una que sea apropiada, con el fin de garantizar
que sea apta. Para ello, es importante identificar primero
qué elementos necesita y realizar un estudio comparativo
entre las disponibles en el mercado global.
3. ELEMENTOS DE UNA HERRAMIENTA DE GESTIÓN
DE REQUISITOS
Encontrar los elementos que debe poseer una
herramienta de gestión de requisitos se inicia con un
estudio a la literatura. Los requisitos para estas
herramientas se presentan en un par de artículos de
investigación: los dieciséis requisitos para desarrollar
productos colaborativos se introducen en [19] y en [16]
se presenta una serie de requisitos para las herramientas
de gestión en la industria automotriz y de aviación.
Además, la lista detallada de las características de estas
herramientas se introducen en [9] y en [20] se define una
lista de requisitos para las que se utilizan en la IS:
 Mantener la descripción única de identificación de
todos los requisitos.
 Clasificar los requisitos lógicos en grupos definidos
por el usuario.
 Especificar los requisitos con un modelo de
descripción basado en texto y gráficos.
 Definir las asociaciones de trazabilidad entre los
requisitos.
 Verificar las asignaciones de los requisitos de los
usuarios a las especificaciones técnicas del diseño.
 Mantener un registro de auditoría de cambios y de
versiones de archivos de referencia.
 Involucrar un mecanismo para autenticar y aprobar
las solicitudes de cambio.
 Apoyar segura y concurrentemente el trabajo
cooperativo entre los miembros de un equipo de
desarrollo multidisciplinar.
 Soportar los sistemas estándar de técnicas de
modelado y de notaciones.
 Mantener un diccionario de datos completo en un
repositorio compartido de todos los componentes y
requisitos del proyecto.
 Generar reportes predefinidos y ad hoc.
 Generar documentos que cumplan con las plantillas
estándar de la industria.
 Conectarse perfectamente con otras herramientas y
sistemas.
Así, los elementos para herramientas de gestión se
recogen de estudios a la literatura y el mercado. En estos
últimos se utilizó un conjunto de cuestionarios para
recopilar cuáles son los elementos que los ingenieros de
software desean tener. Al combinar la información de
ambos estudios, fue posible definir los principios de la
herramienta. Este criterio preliminar se dividió en
elementos generales y en criterios específicos. Los
generales son características que la herramienta de
software debe tener, mientras que los específicos son
requisitos concretos para ella.
3.1 Elementos generales
Los elementos generales son importantes porque
describen las características que la herramienta debe
lograr para poder adaptarse a las necesidades de la
industria del software.
 Usabilidad,
simplicidad y personalización. La
herramienta debe ser fácil de usar, no requerir mucho
entrenamiento y administración, no debe crear tareas
adicionales y su instalación no debe requerir una
amplia personalización. La usabilidad es una
necesidad obvia para una herramienta de trabajo con
39
soporte colaborativo. Para que las empresas utilicen
las herramientas, éstas no deben crear tareas
adicionales ni complicar el trabajo de desarrollo.
Además, la sencillez, por ejemplo, en entrenamiento y
administración, y la capacidad de operar sin una
personalización extensa son factores importantes,
especialmente para las pequeñas empresas.
 Control de acceso. Debe tener un estricto control de
acceso mediante el que cada participante tenga acceso
adecuado a los datos. Puede estar basado en roles o en
control por proyectos o tareas. El control de acceso es
importante en entornos de desarrollo colaborativo
porque, por ejemplo, las personas externas no deben
poder ver toda la información propiedad de los
sistemas de datos de la empresa. Por otra parte, no es
necesario, por ejemplo, que los desarrolladores vean
el presupuesto del proyecto, ni que las personas de
aseguramiento de la calidad puedan leer los requisitos
porque su edición no es posible para ellos. La
herramienta debe apoyar la restricción de acceso a los
grupos de usuarios a cierta información y, en general,
proteger los datos y controlar el acceso mediante
contraseñas.
 Confección y adaptabilidad. Debe ser adaptable y
 Clasificación y visualización de requisitos. Clasificar los
requisitos en grupos lógicos definidos por los
usuarios. Es la capacidad de clasificarlos ofreciendo
diferentes puntos de vista de los mismos datos a
diferentes usuarios. Un punto de vista ofrece la
posibilidad de ver y cambiar libremente una colección
definida de partes de los datos de varios proyectos, en
una representación de libre configuración.
 Línea base de requisitos. La herramienta debe ser
capaz de mantener y gestionar los requisitos
funcionales y no funcionales que el equipo de
desarrollo se ha comprometido a implementar en una
versión específica.
 Control de cambios. La herramienta debe: (1) ofrecer
una posibilidad de tramitar las solicitudes formales de
cambios, (2) rastrear y mantener en la base de datos
todos los cambios en los requisitos y (3) actualizar el
documento de requisitos. Esta es la característica más
importante porque se necesita que el equipo de
trabajo pueda conocer la historia de los cambios y
tener acceso al registro de quién, qué, cuándo, dónde,
por qué y cómo se hizo. El control de cambios permite
realizar un seguimiento al estado de todos los
propuestos y ayuda a asegurar que no se han perdido
o pasado por alto.
extensible a las necesidades de la organización o
proyecto. La confección y la adaptabilidad son
prácticas cuando la empresa tiene muchos proyectos
de diferentes tamaños y utiliza muchas herramientas
diferentes con la de gestión de requisitos.
 Control de versiones. Debe identificar: (1) las versiones
 Licencia libre y disponibilidad de versión completa.
 Rastreo de estado. Es decir, tiene que: (1) definir los
Debe ser de licencia libre que le permita al usuario
utilizarla sin limitaciones en la versión completa. La
licencia libre y la disponibilidad de versión completa
es una característica importante que podría promover
que el usuario la utilice, porque es gratuita y está
disponible para uso total.
 Centrada en la base de datos. La herramienta debe
estar centrada en la base de datos y también apoyar la
gestión de documentos. Centrada en la base de datos
significa que la herramienta se concentra en mantener
toda la información en una base de datos, sin embargo,
también debe ser capaz de manejar y generar los
documentos. Es importante que la herramienta
garantice que la información contenida en la base de
datos esté reflejada en los documentos.
3.2 Elementos específicos
 Identificación de requisitos. El identificador de
requisitos, que es un número individual, es obligatorio.
Esto significa la capacidad de identificar todos los
requisitos individuales para distinguirlos fácilmente
de los demás. Puede hacerse con números de
identificación y con la ayuda de atributos. Además, la
herramienta debe soportar la priorización requisitos,
porque algunos son más importantes que otros y se
deben implementar primero.
del documento de requisitos y (2) las versiones de los
requisitos individuales.
posibles estados de los requisitos, (2) registrar el
estado de cada uno y (3) informar sobre el estado de la
distribución de todos ellos. Esta capacidad consiste en
rastrear el estado de los requisitos establecidos en la
línea base. Rastrear requisitos consiste en manejar los
vínculos lógicos entre los requisitos individuales y
otros productos del proyecto.
 Generar especificaciones de casos de uso. Debe ser
capaz de generar documentos de especificación de
casos de uso y de utilizar definiciones de documentos
predefinidos para generar documentos con los datos
de la base de datos. Esto no es práctico para imprimir
todo el contenido de la base de datos en un
documento, sólo para los requisitos apropiados. La
herramienta permitirá generar especificaciones de
casos de uso que sigan el estándar industrial.
 Generar listas de requisitos. Debe generar una lista de
requisitos como documentos de apoyo, es decir, una
capacidad para generar los requisitos que se acordó
implementar en la línea base actual. Este documento
describe los datos de los requisitos con su respectivo
número de versión.
 Relacionar los requisitos con los elementos del sistema.
Debe mantener una relación constante entre los
requisitos funcionales, los componentes de diseño y
los módulos de código que se ocupan de cada
40
requisito, así como de los casos de prueba que
verifican su correcta implementación. Los elementos
del sistema se asignan a cada requisito después de que
se ha completado el trabajo y de esta manera registrar
los requisitos con sus elementos del sistema
particulares completados.
 Procedimiento de autenticación. La herramienta
deberá permitir el acceso de personas diferentes con
diferentes roles y restringir las funciones de los
diferentes usuarios.
 Definición del proyecto. La herramienta deberá
permitir que se defina cada proyecto con el objetivo de
mantener los requisitos separados de cada uno. Es la
capacidad de mantener el proceso y la identificación
de cada proyecto. Esto es importante para asegurar
que todos los requisitos se mantienen sobre la base de
la identificación del proyecto.
 Administrar usuarios. La herramienta debe ser capaz
de crear nombres y contraseñas de usuario con
diferentes roles. Esto es importante para que cada
usuario pueda acceder y utilizar la herramienta de
manera eficiente y para asegurar la fiabilidad y el
rendimiento de la misma.
4. ESTUDIO COMPARATIVO
En los últimos años se ha incrementado la venta de
herramientas de gestión de requisitos [21] y en el
mercado se ofrece gran variedad. Se encuentran desde las
más complicadas y sofisticadas hasta las más sencillas y
desde las más costosas hasta las económicas y gratuitas.
Muchas ofrecen soporte a las actividades de gestión de
requisitos [20], aunque no todas están centradas
exclusivamente en estas actividades. Las disponibles en el
mercado las desarrollan proveedores generalmente con el
objetivo de gestionar todos los requisitos, sin embargo,
cada empresa tiene su propia cultura y política hacia la
gestión. Por lo tanto, con base en los elementos
previamente definidos se realizó un estudio comparativo
con el objetivo de encontrar la herramienta más adecuada
para llevar a cabo la gestión de requisitos.
Para este estudio se seleccionó un conjunto de
herramientas disponibles en el mercado y en función de
cómo los proveedores prometen soportar proyectos de
Ingeniería de Software de diversos tamaños. El número
de herramientas encontrado es bastante amplio, pero
para este estudio no se incluyeron todas. Las
características que debían cumplir fueron: ser bien
conocida y ampliamente utilizada en la industria. Las
herramientas seleccionadas fueron:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Borland CaliberRM
Insoft Prosareq
IBM Rational RequisitePro
ViewSet PACE
Igatech Systems RDT
SpeeDEV RM
RBC RMTrack
Telelogic DOORS
Serena RTM
Teledyne Brown XTie-RT
Todas estas herramientas se analizaron de acuerdo con
los elementos definidos para criterios generales y
específicos. La Tabla 1 ilustra la síntesis de los resultados.
El criterio de usabilidad, simplicidad y personalización se
deja en blanco porque la evaluación de la usabilidad exige
una prueba de uso con todas ellas, algo que no está entre
los objetivos trazados.
Tabla 1
Resultados del Estudio Preliminar - Elementos Generales
Herramientas
1
2
3
4
5
6
7
Usabilidad, simplicidad y personalización
-------Control de acceso
SI
SI
SI
SI
SI
SI
SI
Confección y adaptabilidad
SI
SI
?
?
NO
?
SI
Licencia libre y disponibilidad de versión completa
NO NO
NO
NO
NO
NO
NO
Centrada en la base de datos
SI
?
SI
NO
SI
NO
SI
SI: Soportado; NO: No soportado; PS: Parcialmente soportado; ?: No conocido
Elementos generales
Como se observa en los datos de la Tabla 1, el control de
acceso es una característica bien soportada por cada
herramienta. Por otro lado, varias de ellas poseen la
característica de confección y adaptabilidad y algunas la
de centrada en la base de datos. Sin embargo, ninguna
proporciona licencias libres con disponibilidad completa.
De la Tabla 2 se puede concluir que casi todas las
herramientas soportan plenamente la identificación, la
clasificación y la visualización, el control de línea base, la
trazabilidad, el control de versiones, el seguimiento y el
cambio de requisitos; mientras que algunas soportan
parcialmente la generación de casos de uso y la lista de
requisitos, la relación con los elementos del sistema, el
8
-SI
?
NO
?
9
-SI
SI
NO
SI
10
-SI
SI
NO
SI
procedimiento de autenticación, la definición del proyecto
y la creación de usuarios. Como conclusión, no se
encuentra una herramienta que posea todos los
elementos generales y que sea totalmente compatible con
los específicos. Por lo tanto, ninguna es adecuada para
ayudarles a los profesionales de software en el desarrollo
de productos de calidad.
En este artículo, usabilidad, simplicidad y personalización
se consideran elementos difíciles de evaluar sin aplicar
pruebas que, debido a la falta de tiempo y recursos, no se
aplicaron en esta investigación. Hay que hacer notar que
estos resultados no son exhaustivos, son sólo indicativos,
porque los datos de evaluación se recopilaron desde las
41
páginas web de cada empresa proveedora y de otros
reportes de evaluación disponibles. Sin embargo, los
resultados ofrecen un nivel aceptable de revisión a las
herramientas que soportan actualmente la gestión de
requisitos.
TABLA 2
Resultados del Estudio Preliminar - Elementos Específicos
Elementos específicos
Identificación de requisitos
Clasificación y visualización de requisitos
Línea base de requisitos
Control de cambios
Control de versiones
Rastreo de estado
Generar especificación de casos de uso
Generar listas de requisitos
Relacionar los requisitos con los elementos del sistema
Procedimiento de autenticación
Definición del proyecto
Crear usuarios
1
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
5. CONCLUSIONES
Como proceso clave de la Ingeniería de Software, la
Ingeniería de Requisitos juega un papel crucial en todo el
ciclo de vida del producto. Varias investigaciones han
demostrado que los fracasos de los proyectos software
suelen estar relacionados con una pobre especificación de
requisitos y que, cuando son bien definidos, se
incrementa la probabilidad de que el proyecto tenga éxito.
Sin embargo, no es posible desarrollar requisitos de
calidad sino se aplican buenas prácticas de gestión.
Debido a que la Ingeniería de Requisitos es el punto de
partida de la Ingeniería de Software y a que las últimas
fases del desarrollo dependen en gran medida de la
calidad de los requisitos, es necesario prestar mucha
atención a la automatización del proceso de gestión. Es
importante tener una herramienta que soporte y facilite
una gestión eficaz de los requisitos a través de todo el
ciclo de vida del producto.
En este artículo se definió un conjunto de elementos para
analizar las herramientas de gestión de requisitos. Estos
elementos, generales y específicos, se consideran como
criterios en el estudio comparativo con el fin de realizar
una inspección a las herramientas disponibles. Los
resultados concluyen que ninguna de las herramientas de
gestión evaluadas posee todos los elementos, por lo tanto,
es conveniente realizar un proyecto que tenga como
objetivo desarrollar una nueva para satisfacer las
necesidades aquí expresadas.
2
SI
SI
SI
SI
SI
SI
PS
PS
NO
SI
SI
SI
[6]
[7]
[8]
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
6. REFERENCIAS
[1]
[2]
[3]
[4]
[5]
Standish Group. 1999. Chaos: A Recipe for Success. The
Standish Group International, Inc.
Serna, M. E. 2009. La ingeniería de sistemas y su evolución
hacia la arquitectura de sistemas. Lámpsakos, 2, 96-105.
Naur, P. & Randell, B. 1969. Software Engineering. Science
Committee NATO.
Standish Group. 2001. Extreme Chaos. The Standish Group
International, Inc.
Stephen, B. 1996. FAA Shifts Focus to Sealed-Back DSR.
IEEE Software, March, 110.
[17]
[18]
[19]
[20]
[21]
3
SI
SI
SI
SI
SI
SI
PS
PS
?
SI
SI
SI
4
SI
SI
PS
SI
SI
SI
PS
PS
SI
PS
NO
NO
Herramientas
5
6
7
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
SI
NO
SI
SI
SI
NO
SI
SI
NO
SI
NO
SI
SI
NO
SI
NO
SI
SI
SI
NO
SI
8
SI
SI
SI
SI
SI
SI
?
?
?
?
?
?
9
SI
SI
SI
SI
SI
SI
PS
PS
SI
SI
SI
SI
10
SI
SI
SI
SI
SI
SI
?
?
SI
SI
?
SI
Brooks, F. 1987. No Silver Bullet – Essence and Accident in
Software Engineering. IEEE Computer, 20(4), 10-19.
Emam, K. E. & Birk, A. 2000. Validating the ISO/IEC 15504
Measure of Software Requirements Analysis Process
Capability. IEEE Transactions on Software Engineering,
26(6), 541-566.
Young, R. R. 2004. The Requirements Engineering
Handbook. Artech House.
Sommerville, I. & Sawyer, P. 1997. Requirements
Engineering: A Good Practice Guide. Wiley.
Damian, D. et al. 2003. An Industrial Case Study of
Immediate Benefits of Requirements Engineering Process
Improvement at the Australian Center for Unisys Software.
Journal of Empirical Software Engineering, 9(1-2), 45-75.
Kotonya, G & Sommerville, I. 1998. Requirements
Engineering: Processes and Techniques. Wiley.
Zainol, A. & Mansoor, S. 2008. Investigation into
Requirements Management Practices in the Malaysian
Software Industry. Proceedings of 2008 International
Conference on Computer Science and Software
Engineering, 2, 292-295. Wuhan, China.
Zainol, A. & Mansoor, S. 2009. A Survey of Software
Engineering Practice in the Software Industry. Proceedings
of IASTED International Conference on Software
Engineering. Innsbruck, Austria.
Wiegers, K. E. 2003. Software requirements. Microsoft
Press.
Firesmith, D. G. 2007. Common Requirements Problems,
Their Negative Consequences, and the Industry Best
Practices to Help Solve Them. Journal of Object
Technology, 6(1), 17-33.
Hoffmann, M. et al. 2004. Requirements for Requirements
Management Tools. Proceedings of 12th IEEE International
Requirements Engineering Conference RE´04, 301-308.
Paris, France.
IBM. Telelogic DOORS. Online. [Jan. 2012].
IBM. Rational RequisitePro. Online. [Jan. 2012].
Rönnbäck, A. Ö. 2002. Interorganizational IT Support for
Collaborative Product Development. Dissertation from the
International Graduate School of Management and
Industrial Engineering. IMIE, 59, Doctoral Dissertation.
Lang, M. & Dunggan, J. 2001. A Tool to Support
Collaborative Software Requirements Management.
Requirements Engineering, 6(3), 161-172.
Standish Group International. 1998. Special COMPASS
report on requirements management tool.
42
Descargar