Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de requerimientos
1. Ingeniería de requisitos. 2. Ingeniería de software. 3. Desarrollo de programas para computador. I. González Rivera,
Rafael Andrés, autor. II. Loaiza Carvajal, Vanesa Carolina, autora. III. Zorro Jiménez, Laura Catalina, autora. IV. Amórtegui
Vargas, María Patricia, autora. V. Pontificia Universidad Javeriana.
Catalogación en la publicación - Pontificia Universidad Javeriana. Biblioteca Alfonso Borrero Cabal, S.J.
inp 05 / 12 / 2017
Prohibida la reproducción total o parcial de este material sin la autorización por escrito de la Pontificia Universidad
Javeriana.
ContenIDO
Prólogo 13
Miguel Eduardo Torres Moreno
Capítulo 1
Introducción y justificación 17
Laura Catalina Zorro Jiménez, Vanesa Carolina Loaiza Carvajal
y Miguel Eduardo Torres Moreno
Capítulo 2
Recolección y análisis 37
Laura Catalina Zorro Jiménez, Vanesa Carolina Loaiza Carvajal,
Miguel Eduardo Torres Moreno y Rafael Andrés González Rivera
Capítulo 3
Especificación, verificación y validación 103
Laura Catalina Zorro Jiménez, Vanesa Carolina Loaiza Carvajal,
Miguel Eduardo Torres Moreno y Rafael Andrés González Rivera
Capítulo 4
Administración de requerimientos 119
Laura Catalina Zorro Jiménez, Vanesa Carolina Loaiza Carvajal,
Miguel Eduardo Torres Moreno y María Patricia Amórtegui Vargas
Capítulo 5
Herramientas 157
Laura Catalina Zorro Jiménez, Vanesa Carolina Loaiza Carvajal,
Miguel Eduardo Torres Moreno y María Patricia Amórtegui Vargas
Capítulo 6
Caso de estudio 4-Med 169
María Patricia Amórtegui Vargas y Miguel Eduardo Torres Moreno
Autores 181
figuras
La ingeniería de requerimientos es, al igual que la ciencia que la agrupa (la ingeniería
de software), una ciencia bastante joven con quizás no más de cuarenta años. Si bien
la problemática de los requerimientos de software siempre fue relegada a ser una
parte no muy trascendental del proceso de construcción, donde dependiendo del
paradigma de desarrollo que se use se aplicaban algunas técnicas que buscaban dar
una visión de alto nivel para el equipo de desarrollo y de alguna manera clarificar los
resultados esperados por parte del cliente, solo hasta los años ochenta, con el trabajo
tanto de Alexander y Stevens [1] como de Wiegers [2], se comenzó a profundizar
en el papel de los requerimientos en el momento de comprender, abstraer y mode-
lar el problema y, por supuesto, usarlos como herramienta de gestión y control del
proyecto. Esto abrió un nuevo mundo a los ingenieros de software, quienes ahora
debían acercase más al negocio y a las necesidades reales de los clientes, con lo cual
podían dar una respuesta más acertada a dichas necesidades.
La profesionalización de la ingeniería de software durante los años setenta y
ochenta dio como resultado la aparición de estándares (por ejemplo, los de ieee/iso) y
mejores prácticas (Modelo de Capacidad y Madurez [cmm], Mejoramiento de Procesos
de Software [spice], Proceso Unificado Racional [rup], etc.), tendientes a mejorar la
calidad de los productos, así como asegurar la repetición exitosa de los procesos y su
estandarización. Estos estándares y prácticas proporcionan recomendaciones y solucio-
nes a problemas comunes del desarrollo de software, que para el caso de la ingeniería
de requerimientos es frecuentemente la traducción de un problema de negocio a una
solución de software, de tal manera que el equipo de desarrollo entienda cuál era el
comportamiento deseado del producto final.
_13
14_ Ingeniería de requerimientos
Referencias
[1] I. Alexander y R. Stevens, Writing Better Requirements, 1.a ed. Londres: Addison-
Wesley Professional, 2002.
[2] K. Wiegers, “First things first”, Softw. Dev., vol. 7, no. 9, pp. 48-53, set. 1999.
[3] Project Management Institute, A Guide to the Project Management Body
of Knowledge (pmbok® Guide)–Fifth Edition, 5.ª ed. Newtown Square,
Pennsylvania: Project Management Institute, 2013.
Capítulo 1
Introducción y justificación
Laura Catalina Zorro Jiménez
Vanesa Carolina Loaiza Carvajal
Miguel Eduardo Torres Moreno
1
Stakeholder: dícese de cualquier persona involucrada en el proceso de desarrollo del sistema [1].
2
Stockholder: dícese de cualquier persona interesada (típicamente desde el punto de vista económico
o financiero) en el proceso de desarrollo e implantación del sistema [1].
_17
18_ Ingeniería de requerimientos
(1) Una condición o capacidad que necesita un usuario para resolver un pro-
blema o alcanzar un objetivo, (2) Una condición o capacidad que se debe
cumplir o que posea un sistema o componente para satisfacer un contrato,
norma, especificación, u otros documentos, impuestos formalmente. Una re-
presentación documentada de una condición o capacidad como en (1) o (2). [5]
Los autores ya mencionados indican que no solo son necesidades de usuario las
que se deben documentar, sino que también se deben tener en cuenta las políticas
organizacionales, el gobierno y los estándares del sector donde se desempeñan. En
algunos casos también es útil indicar qué no hace el sistema, con el fin de apoyar la
Introducción y justificación _19
definición del alcance que se dará al sistema o al producto que se está implementando.
Adicionalmente, es importante tener un conocimiento claro de por qué es necesario
el sistema o producto y cómo este afectará a la organización que lo usará; esto ge-
neralmente se realiza por medio de estudios de análisis de negocio (business analysis).
Finalmente, es importante aclarar que, en la lengua castellana, el término re-
querimiento, según la Real Academia Española, se define como: “la acción y efecto
de requerir” [6]; mientras que requisito se define como “circunstancia o condición
necesaria para algo” [6]. Sin embargo, desde el uso técnico, estos dos términos se
usan indistintamente (pero sí de manera consistente); por tanto, en ese contexto
y para la lectura subsecuente de este texto usaremos el término requerimiento para
hacer referencia a una necesidad o un atributo del sistema propuesto.
Estos documentos pueden usarse como base para la gestión y control del pro-
yecto, así como para asegurar el cumplimiento del contrato. Los diferentes modelos
presentados a lo largo de este texto pueden apoyar la definición de estos documentos.
Para construir la especificación de requerimientos que plasma los servicios que pres-
tará el sistema, es necesario que el analista de requerimientos defina cuáles son los
que él va a utilizar en el proyecto [3]. Existen diferentes maneras de clasificar los
requerimientos, pues depende del ámbito de alcance del sistema mismo. De hecho,
en algunas ocasiones los grupos de proyecto crean su propia clasificación con base
en las clasificaciones estándar que proponen varios autores como Ralph Young [3]
o Aybüke Aurum y Claes Wohlin [11].
En el contexto de este libro se presenta una forma de clasificación de reque-
rimientos basada en las clasificaciones dadas por autores como Karl Wiegers [2],
Ian Sommerville [12] y Martin Glinz en The Guide to the Business Analysis Body of
Knowledge [13] (figura 1.1).
Antes de definir los tipos de requerimientos, es necesario definir qué son las reglas
de negocio. Estas se refieren a políticas, condiciones, restricciones, conocimientos o
estándares de la industria donde se desenvuelve la compañía [17], leyes guberna-
mentales o aspectos del negocio, los cuales deben ser respaldados por el sistema. Las
reglas de negocio permiten identificar los requerimientos de negocio [4].
De ellos se describen dos elementos muy importantes para la organización del
cliente. En primer lugar, se tiene la visión del producto [1], la cual representa lo que
es en sí mismo el producto y lo que podrá ser para la organización, especificando
además el contexto de las decisiones que se deben tomar alrededor de la construc-
ción, implantación, uso y mantenimiento del producto, lo que permite alinear los
deseos y necesidades de los stakeholders. El otro elemento es el alcance del proyecto, el
cual define la porción de la visión que el proyecto actual busca implementar [9].
A partir de dicho origen se definen los requerimientos de negocio como los reque-
rimientos de alto nivel que describen los objetivos de la organización y cuyo cum-
plimiento le dará valor agregado, ya que se derivan de las reglas de negocio. Estos
indican por qué se está desarrollando el proyecto. Además, permiten observar cuál
es el contexto general donde se va a desarrollar el proyecto [3]. Adicionalmente,
los requerimientos de negocio pueden abarcar uno o más proyectos dentro de la
organización.
Introducción y justificación _25
Requerimientos de negocio
Requerimientos de usuario
Requerimientos de sistema
Requerimientos Requerimientos
no funcionales funcionales
Fiabilidad
Requerimientos de Requerimientos
implementación éticos
Usabilidad
Eficiencia Requerimientos
Interoperabilidad
de estándares
Mantenibilidad
Portabilidad
Los requerimientos funcionales son un tipo de requerimiento del sistema, y son los
encargados de describir las necesidades reflejadas en los requerimientos de negocio
y los requerimientos de usuario de tal manera que los desarrolladores tengan todos
los detalles de cada funcionalidad, necesaria para implementar de manera correcta
el sistema. Es decir, describen cuál es el comportamiento que debe tener el sistema
(producto de software). Este comportamiento se expresa en forma de los servicios
o funcionalidades que prestará el sistema a los usuarios [20]. También se conocen
con el nombre de requerimientos operacionales, ya que indican cuáles son las entradas
y salidas del sistema y el comportamiento de las relaciones entre ellas [3].
28_ Ingeniería de requerimientos
Estos requerimientos sirven para describir cómo debe ser el comportamiento del
sistema [4] cuando está realizando alguna funcionalidad [11]. Este tipo de reque-
rimientos, como se ve en la figura 1.1, también se pueden clasificar en seis dife-
rentes categorías. Cada una de estas representa un atributo de calidad referente
al comportamiento del sistema, los cuales se encuentran definidos en el estándar
iso 25010:2011 [15].
Estos seis atributos son:
• Funcionalidad (véase sección 1.5.6.1).
• Fiabilidad (véase sección 1.5.6.2).
• Usabilidad (véase sección 1.5.6.3).
• Eficiencia (véase sección 1.5.6.4).
• Mantenibilidad (véase sección 1.5.6.5).
• Portabilidad (véase sección 1.5.6.6).
1.5.6.1. Funcionalidad
Este atributo de calidad hace referencia a los requerimientos que permiten que el
sistema provea las funciones descritas con los requerimientos funcionales [22] (véase
sección “1.5.4. Requerimientos funcionales”), bajo condiciones de uso especificas
[16]. Las características que se deben cumplir con los atributos de funcionalidad son:
• Idoneidad (suitability): indica que se deben tener las funciones necesarias para
cumplir las tareas requeridas.
• Precisión (accuracy): proveer los resultados esperados o acordados con el grado de
precisión delimitado por el usuario. Un ejemplo de un requerimiento de precisión
puede ser: “El sistema debe realizar los cálculos de los intereses de los créditos
teniendo en cuenta dos números decimales significativos”.
30_ Ingeniería de requerimientos
1.5.6.2. Fiabilidad
Los requerimientos que reflejan la fiabilidad hacen referencia a la capacidad que debe
tener el sistema para mantener un nivel de rendimiento [22] bajo las condiciones
como velocidad o uso de memoria, precisión [23], establecidas por el cliente en los
requerimientos de negocio y lo requerimientos de usuario [16].
Las características de la fiabilidad son:
• Madurez (maturity): es la habilidad que tiene el producto para evitar fallos [16].
• Tolerancia a fallos (fault tolerance): es la habilidad que debe tener el sistema para
mantener un nivel de rendimiento especificado [16], sin importar las fallas que
puedan aparecer [23]; por ejemplo: “El sistema debe estar disponible el 99,99 %
de las veces que uno de los usuarios lo solicite”.
• Recuperable (recoverability): esta característica trata dos aspectos: la capacidad
de recuperar los datos y la capacidad de reestablecer el rendimiento del sistema
[16], después de un fallo; por ejemplo: “El sistema debe realizar un backup de la
información cada ocho días”.
1.5.6.3. Usabilidad
Los requerimientos de usabilidad deben mostrar la capacidad que debe tener el sis-
tema de ser comprendido, aprendido y utilizado bajo las condiciones de uso estipu-
ladas en los requerimientos del sistema [16]. Las características que se deben tener
en cuenta al especificar los requerimientos de usabilidad son:
• Comprensibilidad (understandability): es la capacidad que presenta el sistema para
que el usuario lo pueda entender; por ejemplo: “El producto deberá ser fácil de
usar por los miembros de la organización que no leen en idioma inglés”.
• Aprendizaje (learnability): “la capacidad que tiene el sistema para permitir que
el usuario lo aprenda a utilizar” [16]; por ejemplo: “El sistema debe permitir
que usuarios expertos aprendan a utilizarlo en un tiempo máximo de tres horas”.
Introducción y justificación _31
• Operabilidad (operability): “la capacidad que tiene el sistema para permitir que
el usuario lo opere y lo controle” [16]; por ejemplo: “El producto permitirá in-
teracción con usuarios invidentes”.
1.5.6.4. Eficiencia
1.5.6.5. Mantenibilidad
La mantenibilidad debe reflejar la capacidad que debe tener el sistema de ser mo-
dificado, ya sea para actualizar el sistema, incluir correcciones o cambiarlo para
adaptarlo a algún cambio del entorno o de los requerimientos funcionales por parte
de un equipo capacitado de desarrollo [23]. Dentro de las características de la man-
tenibilidad se deben tener en cuenta:
• Cambios (changeability): capacidad que debe tener el sistema para especificar e
implementar una modificación [16], por ejemplo: “El código fuente de la aplica-
ción debe ser documentado con ayuda de la herramienta JavaDoc. Asegurando
la correcta compresión, orden y sintaxis de este”.
• Estabilidad (stability): capacidad que tiene el sistema para evadir los efectos in-
esperados debidos a las modificaciones realizadas sobre el sistema [16].
• Pruebas (testability): capacidad que debe tener el sistema para ser verificado me-
diante pruebas [16].
1.5.6.6. Portabilidad
Como su nombre lo indica, son los requerimientos “que se derivan de factores que
son externos al sistema y su proceso de desarrollo” [4]. Se pueden clasificar en tres
ítems que son [4], [12]:
• Requerimientos éticos: se deben especificar, para asegurar que los usuarios acep-
tarán el sistema [24]. También, corresponden a comportamientos que se espe-
ran del sistema —éticamente—, por ejemplo, el uso correcto de la información
personal de los usuarios.
Introducción y justificación _33
Referencias
_37
38_ Ingeniería de requerimientos
Recolección
Análisis
Desarrollo de
requiremientos
Especificación
Verificación
Ingeniería de
requerimientos
Captura
Trazar
Administración de
requerimientos
Monitoreo y reporte
2.1. Recolección
información acerca del negocio (entorno, objetivos, etc.) y de las necesidades de los
usuarios. El fin último de la recolección es hacer que los usuarios entiendan cuáles
son sus necesidades reales para que estas se transmitan a los desarrolladores del
proyecto [6]. Además de identificar las necesidades de los usuarios, la recolección
también permite identificar y establecer cuáles son los límites del nuevo sistema y
cómo afectará en contexto a toda la organización [7].
Para iniciar la fase de la recolección de requerimientos es necesario identificar y
analizar los stakeholders del proyecto.
Hoy en día, el conocimiento es equivalente a tener poder, y para este caso, el cono-
cimiento son hechos, información, habilidades y costumbres que tienen las personas
y las organizaciones en el momento de interactuar con un sistema [9]. Teniendo
en cuenta lo anterior, el objetivo de este método es encontrar esa información con
ayuda de los stakeholders (personas involucradas) del proyecto, para así descubrir las
necesidades e intereses que afectan el proyecto y la viabilidad de cumplimiento de
dichas necesidades por parte del sistema [10].
El análisis de stakeholders depende de varios factores, por lo que se recomienda
tener en cuenta los objetivos organizacionales, objetivos del sistema, consideraciones
políticas y recursos (tiempo, personas y dinero), ya que se busca identificar las reglas
de negocio (véase sección “1.5. Tipos de requerimientos”) y los requerimientos de
usuario (véase sección “1.5.2. Requerimientos de usuario”) [10].
Durante el análisis de stakeholders se busca hallar una respuesta a preguntas co-
mo: quiénes son los stakeholders, cuáles son sus metas, cómo contribuirán durante
el proyecto y cuáles son los riesgos que ellos identifican asociados al proyecto [5],
pues cada tipo de stakeholder aporta su propio punto de vista a los requerimientos y
ello puede conducir a la aparición de conflictos entre las diferentes partes (clientes,
usuarios y requerimientos).
Para realizar el análisis de los stakeholders se recomienda seguir los siguientes
pasos:
Se debe definir cuál es el propósito de realizar este análisis dentro del proceso de re-
colección de los requerimientos del proyecto. Después de esto, es preciso organizar
un grupo de analistas, encargado de coordinar el calendario de actividades para las
diferentes entrevistas (véase sección “2.1.4.1. Entrevistas”), o talleres y el análisis
resultante de dichas actividades. Se recomienda que todos los miembros del equipo
de desarrollo se involucren en este proceso, ya que es necesario que cada uno conozca
a cabalidad cuáles son las necesidades que debe suplir el proyecto [11].
Recolección y análisis _41
Fuente: [11].
42_ Ingeniería de requerimientos
Al finalizar proceso, Helen Sharp et ál. [11] proponen definir cuatro grupos de
stakeholders principales: 1) los usuarios, que son los grupos de personas o compañías
que interactúan y usarán los productos del proyecto; 2) los desarrolladores, que,
como su nombre lo indica, son las personas encargadas del desarrollo del proyecto;
3) los legisladores, los cuales se “encargan de las restricciones legislativas y avalan
que el sistema sea legalmente posible” [8], y 4) los tomadores de decisiones, dentro
de los cuales se encuentran el(los) director(es) del equipo de desarrollo, gerentes e
interventores de la organización [12].
Una vez definidos estos grupos, se debe explorar la red de cada uno, para lo
cual es necesario identificar cómo se lleva a cabo el trabajo dentro de la organiza-
ción. Esto debido a que, dentro del nuevo sistema, está la posibilidad de modificar
o crear nuevos roles, los cuales no se pueden observar en la organización, puesto
que no existen [12].
Brainstorming. En esta técnica los analistas de requerimientos se reúnen con un
grupo inicial de stakeholders, y realizan una lluvia de ideas que les permitirá iden-
tificar a todas las personas que deberían hacer parte del proceso de recolección de
requerimientos [8].
Otras fuentes. Otras fuentes identificación de posibles stakeholders son:
• Preguntando a su patrocinador o cliente.
• Mediante el examen de qué hay y qué no hay en el organigrama de la organi-
zación.
• Comparando con proyectos similares.
• Analizando el contexto del proyecto (entorno de la organización, área de negocio,
área de procesos misionales, etc.).
La tabla 2.1 presenta una lista de posibles tipos de roles que pueden surgir en
un proyecto:
• Beneficiarios funcionales
• Beneficiarios financieros
Beneficiarios • Beneficiarios sociales, etc. (si existen
• Beneficiarios políticos
beneficios indirectos)
Recolección y análisis _43
• Empleado descontento
• Vándalos, artista “grafitero”
• Sindicatos
• Ladrón
• Opositores políticos
Roles • Hacker, creador de virus
• El público, la asociación de veci-
negativos/ • Competidor
nos, etc.
hostiles • Espionaje industrial (a través de ma-
• Activista, grupo de presión del me-
lware, etc.)
dio ambiente, etc.
• Defraudador
• Enemigo militar o terrorista
44_ Ingeniería de requerimientos
va llenando una tabla como la presentada en la tabla 2.2, que mostrará al final de
este proceso cuáles son los stakeholders más importantes del proyecto, para así darles
prioridad a sus necesidades.
Positivo Negativo
Stakeholder
Fuerte Débil Fuerte Débil
Fuente: [8].
Una vez definida y priorizada la lista de stakeholders, se debe reunir toda la in-
formación necesaria para preparar, ya sean los cuestionarios (véase sección 2.1.4.3),
entrevistas (véase sección 2.1.4.1) o talleres (véase sección 2.1.6.1) [11].
Así mismo, se recomienda consignar en una tabla (tabla 2.3) la información re-
levante de los stakeholders, la cual permite tener una visión clara del análisis realizado
sobre ellos. Para esto es necesario realizar el siguiente proceso:
• Establecer los principales grupos de stakeholders: ubicar los identificados en el
paso 2 del proceso de análisis en grupos, de acuerdo con los efectos que tiene el
proyecto sobre estos.
• Impacto: hace referencia a la priorización de los stakeholders, dependiendo de su
influencia, participación e interés en el proyecto.
• Necesidades e intereses: una vez se tenga la lista de stakeholders, se deben identi-
ficar las necesidades e intereses que tengan en el proyecto. Se precisa considerar
preguntas como: ¿qué beneficio del proyecto obtiene el stakeholder?, ¿qué cambios
debe hacer el stakeholder para que contribuyan con el proyecto? Y ¿qué actividades
del proyecto pueden causar conflicto o daño en el stakeholder? [15]. Para identificar
y recolectar las necesidades de los stakeholders, es decir, los requerimientos de negocio y
requerimientos de usuario es necesario utilizar las entrevistas y cuestionarios, brain-
storming y los talleres.
• Potenciales estrategias para involucrar al stakeholder: se deben definir cuáles son
los enfoques, con el fin de reducir la oposición que el stakeholder puede presentar
o para que este apoye y se involucre en el desarrollo del proyecto [15].
46_ Ingeniería de requerimientos
Para recolectar los requerimientos existen varios métodos que se pueden utili-
zar, por ejemplo, introspección, entrevistas, cuestionarios, análisis de stakeholders,
brainstorming, etc. [6]. A continuación, se presentan algunas técnicas de recolección,
sus características y usos más relevantes.
del cliente; esto implica lectura de libros de texto, revistas especializadas, sitios web,
conferencias, entrenamiento particular en el área, descripciones de productos o
servicios de los competidores del negocio o de la organización cliente [13].
Además, a medida que se avanza en el proceso de requerimientos, la información
que debe ser analizada ya no será solamente de la literatura general del negocio de
la organización (típicamente normativa externa a la organización), sino también
de la organización en sí misma (desde sus políticas, procesos de negocio, reglas de
negocio hasta su filosofía misma). Algunos de los documentos relevantes en esta
instancia del proceso pueden ser [13], [17]:
• Descripción de procesos de la organización y planes de negocio: permiten iden-
tificar roles y responsabilidades (también es un buen insumo para la identifica-
ción de stakeholders), así como información (bien sea formal o informal) que es
transmitida entre procesos. Además, puede ayudar a identificar cuáles de di-
chos procesos pueden ser automatizados o el grado de supervisión humana que
deben presentar. En ese sentido, es importante tener en cuenta que aunque la
organización tenga procesos definidos, no necesariamente se están ejecutando
en la forma en que han sido especificados; por ello, parte de la labor del analista
está enmarcada en la confirmación y definición de los procesos de negocio que
se verán afectados por el sistema o producto propuesto.
• Reportes: típicamente permiten no solo asociarlos a un proceso de negocio, sino a
una estructura de datos esperada, que da a su vez indicios de cómo será usada en
otros procesos; por todo esto, es recomendable no solo analizar los reportes, sino
analizarlos en el contexto de un proceso que haya sido ejecutado y los reportes de
ejecución hayan sido tramitados, esto permitirá también llevar a cabo un análisis
más detallado con el cual se identificarán los campos que pueden producir errores
en el proceso, los que no son usados, e incluso la validación esperada de algunos
campos del reporte; además, permitirá el seguimiento de la información para así
detectar cuál es innecesaria o relevante en el proceso.
• Documentos no estructurados: dentro de este grupo pueden identificarse los
documentos de uso común en la organización y que generalmente se utilizan
como medios de comunicación, por ejemplo: páginas web, memorandos, correos
electrónicos, anuncios publicitarios o de mercadeo. Estos documentos pueden
dar información relevante no solo en términos de los requerimientos, sino de
la forma en que la organización se comunica con los stakeholders y las diferentes
metáforas usadas desde el punto de vista motivacional para los empleados de la
organización.
48_ Ingeniería de requerimientos
2.1.4.1. Entrevistas
Para realizar esta tarea el ingeniero o analista de requerimientos debe ser un exce-
lente comunicador y debe utilizar el lenguaje del stakeholder al que le está realizando
la entrevista, ya que tiene que obtener los requerimientos de usuario por medio de
esta técnica [20] (véase sección “2.1.3. Análisis de documentos”).
Para realizar una entrevista exitosa es necesario seguir los siguientes lineamientos:
1. Leer la documentación relacionada con la organización y con el proyecto [21];
esto con el objetivo de preparar y organizar la entrevista.
2. Planear la entrevista teniendo en cuenta cuáles son los stakeholders a los que va
dirigida (el o los stakeholders) y cuál es el objetivo [22].
Recolección y análisis _49
alguna suposición hecha por los analistas; 2) preguntas abiertas que generarán opi-
niones y sugerencias en cuanto a las características y funciones que debería tener el
sistema [5].
La siguiente entrevista fue hecha en el 2010 para el desarrollo del proyecto de grado
Herramienta para la administración de requerimientos de los proyectos de las asignaturas de
ingeniería y arquitectura de software de la Pontificia Universidad Javeriana.1
Esta entrevista es de tipo semiestructurado, ya que algunas preguntas surgieron
de acuerdo con algunas de las respuestas dadas por el entrevistado, y cuenta con un
objetivo definido. Las preguntas abarcan el tema desde lo general a lo específico.
Para finalizar se encuentran las conclusiones, las cuales resaltan los aspectos más
relevantes de la entrevista.
1
Laura Zorro y Vanesa Loaiza, “Herramienta para la administración de requerimientos de los proyectos de las
asignaturas de ingeniería y arquitectura de software de la Pontificia Universidad Javeriana”. Disponible en:
http://pegasus.javeriana.edu.co/~CIS1010IS05/ [Consulta: 11 de abril de 2016].
52_ Ingeniería de requerimientos
2.1.4.3. Cuestionarios
* ¿Existen preguntas en las que usted no sabe cómo analizar los resultados? Si
es así, estas preguntas deben ser eliminadas.
* Con las preguntas existentes, ¿se obtiene toda la información necesaria? Si
no es así, es posible que falten preguntas.
9. Seleccionar la forma en la que se va a distribuir el cuestionario, ya sea por correo
electrónico, por la web o en papel.
Una vez creado y aplicado el cuestionario, es preciso analizar los resultados, para
lo cual se sugiere el siguiente procedimiento:
1. Verificar que las preguntas fueron contestadas. En caso de que exista alguna pre-
gunta sin responder por parte de la mayoría de las personas, esta no se debería
incluir dentro del análisis, ya que se puede generar información incorrecta [26].
2. Inspeccionar los datos con el fin de validar que no sean inconsistentes, por ejem-
plo, una fecha de nacimiento 1889, seguramente se refiere a 1989 [28].
3. Calcular el porcentaje de personas que contestó el cuestionario, con el fin de saber
si los resultados reflejarán la opinión de la mayoría, ya que si el cuestionario no
es contestado por los stakeholders a los que va dirigido, es posible que se queden
requerimientos sin identificar [28].
4. Es posible que usted requiera clasificar las respuestas en subgrupos. Por ejemplo,
es necesario conocer el resultado de una pregunta dependiendo de la edad de
los encuestados [28].
5. Crear conjuntos que agrupen las respuestas dependiendo de una característica,
por ejemplo, un grupo asociado al departamento de recursos humanos y otro al
de finanzas [26].
6. Generar una codificación numérica para las preguntas, por ejemplo, si la respues-
ta es no, esto equivale a 0, y si la respuesta es sí, equivale a 1 [28].
7. Ingresar las respuestas de los cuestionarios en una herramienta de análisis, por
ejemplo, Excel, para generar gráficos que permitan una mejor interpretación de
las respuestas de los cuestionarios [29].
Objetivo
El siguiente cuestionario tiene como objetivo conocer la opinión de estudiantes
acerca de los procesos de administración de requerimientos que se llevan a cabo
en los proyectos de la asignatura de Ingeniería de Software.
Población objetivo
Estudiantes de la Pontificia Universidad Javeriana que ya hayan cursado y
aprobado la asignatura Ingeniería de Software.
Forma de aplicación
Cuestionario en línea.
Preguntas
1. Cuando se hizo la especificación de requerimientos, ¿qué atributos se tu-
vieron en cuenta? (Por ejemplo: id, autor, etc.).
2. ¿Cuánto tiempo se involucró al cliente durante la especificación de los re-
querimientos?
a. Una a dos veces por semana
b. Cada dos semanas
c. Solo en la preentrega
d. No lo involucraron
3. En cuanto al cambio de requerimientos, ¿se definió algún protocolo para
la petición de cambio de requerimientos? Sí o no, ¿por qué?
4. ¿Realizó usted la priorización de los requerimientos?
a. Sí
b. No
5. ¿Realizó usted la trazabilidad?
a. Sí
b. No
Recolección y análisis _59
0
Una o dos veces Cada dos semanas Solo en la preentrega No lo involucraron Otro
por semana (por favor especifique)
Análisis técnico Conclusiones destacadas
Media 1,941 El 82,35 % eligió:
Intervalo de confianza (95 %) [1,452-2,430] Cada dos semanas
Tamaño de la muestra 17 Una o dos veces por semana
Desviación típica 1,029 La opción “No lo involucraron” no fue elegida por nadie
Error estándar 0,250
2.1.5. Prototipos
Los prototipos constituyen una de las técnicas más conocidas dentro del desarrollo
de sistemas y la recolección de requerimientos tanto de negocio como de usuario,
dado que es una forma de “visualización” [18] de las características que el cliente
necesita de su producto y de las que no. También se considera otra forma de comu-
nicación entre el grupo de desarrollo y los stakeholders, ya que al ser presentado, se
puede estimular la concertación y visualización de requerimientos, así como permitir
la identificación de requerimientos faltantes [8].
Esta técnica [8], [12], [13], [18] debe manejarse adecuadamente, ya que el ob-
jetivo de realizar prototipos, dentro de este contexto, es recolectar requerimientos
y validarlos, así como permitir validar posibles soluciones, bien sean tecnológicas
o de arquitectura, y en algunos contextos, por ejemplo, el del desarrollo evolutivo,
transformar el prototipo en una versión inicial del producto de software esperado.
Si se desea de esa forma, el grupo de proyecto debe tener claro cuál es el objetivo
del prototipo, ya que de eso depende el tipo de prototipo que se va a realizar y el
esfuerzo invertido en ello. A partir de lo anterior, los prototipos se pueden clasificar
según el objetivo, además del alcance que se quiere tener con ellos. En la tabla 2.4
se presentan de manera breve las clasificaciones más comunes [17], [30].
Escuchar
cuidadosamente
Definir el
objetivo del
prototipo
(tipo)
Presentar el Elaborar el
prototipo,
prototipo a los dependiendo
stakeholders del objetivo
Interfaz 1
Evento disparador de IU
Decisión Interfaz 2
Sí
No
Interfaz 2
Los talleres son eventos planeados y estructurados con un grupo de stakeholders o ex-
pertos en temas relacionados con el proyecto (de los que se identificaron en el análisis
de stakeholders), los cuales trabajan juntos [34], ya que comparten un objetivo [35],
para descubrir, crear, verificar y documentar una lista preliminar de requerimientos
de usuario y requerimientos de negocio. Además de recolectar los requerimientos, los
talleres también tienen como objetivo que el equipo de desarrolladores y encarga-
dos del proyecto conozcan los stakeholders del proyecto [36], con el fin de mejorar la
comunicación, la toma de decisiones y el entendimiento mutuo.
Para no convertir los talleres en encuentros improductivos, es necesario que los
analistas involucrados tengan definido ya su rol dentro del taller, de esta forma cada uno
sabe cuál es su objetivo y logran así que las actividades de los talleres influyan y sean
útiles tanto para el grupo de proyectos como para los clientes. La figura 2.6 presenta
algunos roles importantes [37] con los cuales cumplir con el objetivo de los talleres.
• Para preparar un taller exitoso, es necesario tener en cuenta los siguientes ítems:
* Definir cuáles son las personas que van a participar dentro del taller. Además
del grupo de stakeholders es necesario contar con personas que desempeñen
diferentes roles, así como expertos técnicos en temas relacionados al proyecto
(véase figura 2.6).
* Escoger un lugar tranquilo para que las personas no se vean perturbadas por
el trabajo. Si no es posible, se debería escoger un lugar fuera de la empresa
para realizar el taller un fin de semana [24].
Recolección y análisis _65
Patrocinador
• Autoriza y legitima el taller
Facilitador o moderador
• Los planes y diseños del taller
• Conduce el proceso, lo cual incluye:
* Hace cumplir la disciplina, estructura y las reglas base del encuentro
* Introduce los objetivos y la agenda
* Maneja el encuentro y los mantiene por buen camino (los participantes están activos
frente a cualquier actividad o ítem)
* Facilita el proceso de decisión, evitando participar en el contenido de la discusión
* Asegura que todos los stakeholders participan
* Hace preguntas acertadas
Participantes
• Crean productos del taller
Grabador
• Graba el grupo de trabajo
Observador
• Escucha y aprende
Expertos en la materia
• Están disponibles para cualquier pregunta
• Objetivos, metas
• Vision del proyecto
• Plan de comunicación
Visión
• Requerimientos de negocio
• Casos de uso paso a paso
• Escenarios de mal uso del producto
Detalles • Mapas mentales
• Priorizaciones
• Decisiones de diseño
No todas las técnicas de recolección pueden ser útiles en los diferentes proyectos.
Más adelante, la tabla 2.6 presenta las ventajas y desventajas de usar los talleres
como técnica de recolección. De esta forma, se pueden tener los suficientes criterios
para escoger una o más técnicas para aplicar en el taller.
Los grupos focales son una técnica similar a los talleres; sin embargo, se diferencian
en lo siguiente:
• El manejo del tiempo.
• Los participantes involucrados.
• El objetivo mismo del grupo.
• Preparación: durante esta fase se deben decidir las personas a participar. Para
esto es mandatorio determinar qué tipo de stakeholders deberían asistir. Baxter y
Courage [13] los clasifican en dos grupos:
* Homogéneos: son personas con características similares o que trabajan en
la misma área.
* Heterogéneos: a diferencia del homogéneo, en este grupo se encuentra diver-
sidad en las características, perspectivas y cargos dentro de la organización.
Cada uno tiene sus ventajas y desventajas, por ejemplo, los grupos hete-
rogéneos pueden aportar diferentes puntos de vista con respecto a un tema
específico; mientras que uno homogéneo, no. Sin embargo, se podrían realizar
varios encuentros con diferentes grupos homogéneos para así poder obtener los
diferentes puntos de vista [24].
Otro aspecto que se debe preparar son los temas que se van a discutir. Al-
gunos aspectos propuestos son [13]:
Recolección y análisis _69
Bienvenida (introducción)
1
Discusión
3
Representante Representantes
Especialista
de si de usuarios
• Sesión jad: al principio de una sesión jad se debe explicar de manera breve la
razón por la cual se lleva a cabo este tipo de encuentro, cómo se va a llevar a
cabo, los objetivos y el alcance de la reunión; además, si es necesario, establecer
las “reglas del juego” [17].
Después de una parte introductoria, se busca definir los requerimientos de nego-
cio y se inicia desde las preguntas más importantes: ¿cuál es el objetivo? ¿Cómo
la aplicación va a ayudar a la organización a futuro? [15]. Luego se empiezan a
definir requerimientos a partir de que estas preguntas, aparte de indagar sobre
las restricciones y supuestos. Con esto se busca comenzar a establecer el alcance
del sistema, dependiendo de los requerimientos que se acaban de definir y del
presupuesto de la organización [15].
La planeación del jad/diseño se realiza durante la sesión para establecer los
recursos necesarios para su ejecución, desde personal hasta documentos que se
requieran.
Por último, se concluye el tema para cerrar la sesión y se revisan los entre-
gables realizados durante el encuentro, para saber si todos están de acuerdo con
lo plasmado por el analista en los documentos o si se debe cambiar algo.
Las sesiones jad son de utilidad ya que involucran stakeholders de todos los nive-
les, de esta forma se asegura capturar diferentes puntos de vista, desde las reglas de
negocio, su objetivo y estrategia hasta la perspectiva operativa del producto.
4. Priorizar las ideas: cada stakeholder le da una valoración a cada una de las ideas,
de tal manera que se puedan clasificar; esto con el fin de ordenarlas desde la más
importante a la menos relevante [37].
Reporte de posiciones
ID Descripción Votos
Rep1 El reporte debe mostrar las posiciones activas hasta la fecha 120
Rep2 El reporte debe mostrar el número de personas activas en dicha posición 110
El reporte debe mostrar el número máximo de personas permitidas para
Rep3 100
dicha posición
… … …
Fuente: adaptado de [42].
Al revisar cada una de las técnicas mencionadas, se puede observar que existen si-
militudes entre ellas. En la tabla 2.6 se encuentran las características más relevantes.
Tabla 2.6. Comparativo de técnicas de grupos
Criterio/
Talleres Grupos focales jad Lluvia de ideas
técnica
Depende de los objetivos de- Generalmente planean temas Dado que se inicia desde las Debido a que el tema son
finidos. Si se planea una se- específicos, donde su discu- reglas de negocio, puede lle- requerimientos de usuario,
sión larga, al igual que los sión toma más de 2 horas. gar a ser extenso. los ítems pueden ser diversos
Temas
jad , comenzarán desde las y largos; sin embargo, com-
(extensos)
reglas de negocio. parado con los talleres, los
temas no suelen ser tan ex-
tensos.
Todas las técnicas manejan roles, cada participante tiene unas tareas que debe cumplir dentro del tiempo establecido. De esta
forma se facilita la asignación de tareas y el cumplimiento de los objetivos. Algunos de los roles comunes para las técnicas son:
Participantes • Facilitador/moderador.
• Participantes (usuarios, clientes).
• Analista/documentador.
Costoso. El tiempo inverti- Comparado con jad o con los Técnica costosa. El tiempo Comparado con las demás
do y el perfil de las personas talleres, el tiempo de ejecu- invertido y el perfil de las técnicas, no se invierte tanto
necesarias pueden dificultar ción es menor; esto se debe personas necesarias pueden tiempo en su preparación y
Recursos
aplicar los talleres con éxito. a que el tema en una sesión dificultar tener una sesión jad ejecución, dado que suele ser
(tiempo y
suele ser específico y no son exitosa. un poco más flexible que las
participantes)
necesarios diferentes tipos de demás.
perfiles. De hecho, pueden
ser de la misma área.
Criterio/
Talleres Grupos focales jad Lluvia de ideas
técnica
Estas cuatro técnicas, comparten fases similares, las cuales son:
• Fase de preparación.
• Fase de ejecución.
• Fase de recapitulación.
Sin embargo, cada una difiere en la fase de ejecución. A continuación, se muestran características propias de cada una.
Debido a la diversidad de los La agenda de los grupos foca- Generalmente la agenda de El curso de la sesión se guía
temas que se van a tratar en les suele estar guiada por los una sesión jad es: por estos pasos:
Fases los talleres, suelen hacer ite- siguientes pasos: • Introducción. • Generación de ideas.
raciones entre ellos. A conti- • Introducción al tema. • Definición de requerimien- • Agrupación.
nuación, se muestra los pasos • Discusión. tos de negocio. • Priorización.
de la iteración: • Revisión de respuestas por • Definición del alcance del • Definición.
• Proposición. parte del moderador. sistema.
• Acción. • Conclusión a partir de las • Planeación del jad/design.
• Reacción. respuestas y comentarios • Documentación de pre-
• Reflexión. obtenidos. guntas y consideraciones.
• Conclusión.
• Experimentar la vida como los usuarios: una persona debería experimentar el traba-
jo que deben hacer los usuarios con un entrenamiento mínimo, cuando no son
trabajos de alto riesgo [24]. Puede ser útil para conocer el proceso general de la
organización y los flujos de información relacionados; pero no puede identificar
casos excepcionales o comportamientos extraños.
• Observaciones de los usuarios haciendo su trabajo: les permite a los analistas validar
la información ya recolectada, ya sea por los talleres, las entrevistas o los otros
métodos de colecta de requerimientos. También permiten identificar más temas
para nuevas entrevistas, “para ver problemas con el sistema actual e identificar
nuevas formas en las que el sistema puede soportar mejor el flujo de trabajo” [1].
• Prototipos: según Ian Alexander [24], tan pronto como se ve un modelo funcio-
nando, se pueden identificar características y funciones por mejorar. Por esto,
un simple prototipo puede ayudar a los clientes a aprobar los requerimientos o a
cambiar algunos de estos. Se debe recalcar que el prototipo es solo eso y no una
versión final, para que no existan malentendidos con los usuarios.
• Reportes de problemas y equipos de apoyo: estas son fuentes de los requerimientos, ya
que los equipos de apoyo y los reportes de problemas muestran las dificultades
a las que se han enfrentado o descubierto los usuarios del sistema actual [1].
• Instructores y consultores: ya que estas personas mantienen un contacto frecuente
con los usuarios y saben qué consideran los usuarios difícil de hacer [24].
• Documentos que describen el sistema actual o productos comparables y rivales: estos do-
cumentos pueden identificar posibles requerimientos que deben ser incluidos en
la solución, así como identificar posibles normas o legislación que sea aplicable
al producto [1], [8].
• Diseños y especificaciones existentes: esta fuente sirve para recolectar requerimientos
que se hayan pasado por alto o corregir aquellos que estén inconsistentes con
los documentos; en ese sentido, es importante recalcar que no necesariamente lo
especificado en un documento corresponde a la realidad de la organización [8].
• Sugerencias y críticas de los usuarios: una lista de sugerencias y críticas de los usua-
rios se debe utilizar para hacerle preguntas a estos y así identificar otros reque-
rimientos que no se hayan contemplado antes o llegar a la identificación de casos
de mal uso del producto [8], [24].
78_ Ingeniería de requerimientos
• Introspección: este método consiste en tratar de entender cuáles son las propie-
dades que los usuarios desean en el sistema, es decir, se debe imaginar cuál es
el tipo de sistema que quieren las personas que llevan a cabo ese trabajo con los
recursos facilitados [43].
sistema social, al tiempo que se construye teoría de manera cíclica [44]. Dado que se
trata de un proceso de inmersión en un contexto real, es inevitable y necesario que
se den espacios de diálogo y participación, donde tanto las acciones como las teorías
resultantes obedezcan a un proceso de construcción participativo.
Bajo esta filosofía, aparece ethics [45] como una de las contribuciones más influ-
yentes en el diseño participativo de los sistemas de información. Aquí la participación
se da con distintas intensidades y propósitos, dependiendo de la fase del proyecto.
En fases de ingeniería de requerimientos tiende a ser consultiva o representativa;
pero requiere consenso a la hora de llegar a acuerdos. Su diferencia fundamental
con otros enfoques está en que las necesidades se concentran en aspectos sociales
(satisfacción y calidad de vida), en lugar de solo técnicos (eficiencia de la solución).
Por su parte, Checkland y Scholes [46] definen la metodología suave de sistemas
como una que busca mejorar áreas de interés social, activando un ciclo de aprendi-
zaje para la gente involucrada en la situación; ciclo que idealmente no tiene fin. El
aprendizaje se lleva a cabo mediante un proceso iterativo de uso reflexivo de con-
ceptos de sistemas y debate en torno a las percepciones sobre el mundo real. Las
ideas de sistemas se usan para organizar el pensamiento respecto de una situación
problemática, lo cual le permite al analista enfocarse en la formulación de problemas
y en qué se debe hacer, en vez de en la solución misma del problema. El proceso
de la metodología suave de sistemas se divide en dos corrientes principales: la in-
vestigación lógica y el análisis cultural. La primera consiste en seleccionar sistemas
relevantes, nombrar los sistemas relevantes escogidos, construir los modelos de los
sistemas escogidos y comparar estos modelos con la realidad percibida. La segunda,
entre tanto, se enfoca en el análisis de la intervención, el análisis del sistema social y
el análisis del sistema político. Para obtener una visión general del weltanschauungen
(concepción o visión del mundo, en alemán), la situación es percibida mediante el
contraste de diferentes puntos de vista, a fin de alertar a los analistas para que cues-
tionen el análisis en busca de señales de regularidad y permanencia en los datos y
actividades asociadas; pero también está abierto a cualquier área de la organización.
La expresión del entendimiento de la situación promueve el uso de cualquier técnica
o modelo; por ejemplo, el uso de un diagrama ilustrativo (rich picture), que facilite
un mejor proceso de comunicación entre los profesionales de la información y los
clientes del sistema que se va a mejorar.
80_ Ingeniería de requerimientos
2.2. Análisis
Esta etapa de la ingeniería de requerimientos tiene como fin entender las necesida-
des globales de los usuarios, las cuales son identificadas en la etapa de recolección
(véase sección “2.1. Recolección”) y se ven reflejadas en los artefactos o entregables
que surgen de este proceso, para hacer una descomposición que especifique dichas
necesidades globales en sentencias más simples que proporcionen las bases para
determinar los requerimientos del sistema [6].
El análisis de los requerimientos puede tornarse complicado, debido a que las
necesidades de todos los usuarios deben incluirse, lo cual puede generar conflictos
si alguno de estos origina ambigüedades con uno o más de los requerimientos espe-
cificados. Además de esto, es preciso tener en cuenta que el análisis es la base de la
calidad del producto final, ya que es fundamental para un diseño exitoso [47]. Por
esto, el análisis de requerimientos tiene los siguientes objetivos:
1. Llegar a un entendimiento entre los stakeholders del proyecto.
2. Identificar objetivos y metas del proyecto y del producto.
3. Detectar y resolver los conflictos entre los requerimientos.
4. Definir los límites del software y cómo este va a interactuar con su entorno.
5. Especificar los requerimientos del sistema (véase sección “3.1. Especificación de
requerimientos”).
6. Proveer las bases para la verificación y validación del sistema (véase sección “3.2.
Validación y verificación”).
En esta fase pueden usarse diferentes herramientas que apoyan las buenas prác-
ticas mencionadas, por ejemplo: Data Flow Diagrams (dfd) [17]; modelos entidad-
relación; diagramas de uml, como son los diagramas de estado, de actividad, de
secuencia, de colaboración, de clases, etc., e incluso uso de modelos de procesos en
notación del tipo Business Process Management Notation (bpmn), con el fin de ilustrar
los procesos realizados por los actores y el sistema en contexto de un objetivo de
negocio. A continuación, se describen brevemente algunas de estas herramientas.
82_ Ingeniería de requerimientos
Para entender las necesidades que debe suplir el sistema, se encuentran las historias
de usuario (user stories) y los casos de uso. La primera tiene su origen en las metodo-
logías ágiles como el caso de Extreme Programming, en particular en el llamado
juego de la planeación, donde por medio de historias de uso de la aplicación y apo-
yados por un prototipo (véase sección “2.1.5. Prototipos”) se recolectan y analizan
los requerimientos [17].
Los casos de uso son “ampliamente aceptado(s) para la captura de requerimientos
para desarrollo de software orientado a objetos” [49], ya que permiten enfocarse
en qué hace el sistema; además, permiten a los miembros del equipo de desarrollo
entender cómo debe funcionar el sistema, al construir y documentar un modelo que
describe todas las formas en las que los stakeholders lo utilizaran [50]. Esta descrip-
ción es realizada en un lenguaje natural y muestra toda la funcionalidad del sistema.
El diagrama de los casos de uso muestra la relación existente entre los actores
y los casos de uso del sistema. Para definir estos casos es necesario identificar los
siguientes elementos [51]:
• Actores: se pueden extraer del análisis de stakeholders, ya que son las personas, las
organizaciones o los sistemas externos que interactúan con el sistema.
• Límites del sistema: se pueden extraer de los artefactos que surgen de la recolec-
ción de requerimientos, ya que se debe identificar cuál es el alcance y los límites
que separan al sistema de su ambiente.
• Casos de uso: es una descripción de la secuencia de interacciones que se produce
cuando un actor ejecuta una funcionalidad del sistema. Para hacer describir cada
caso de uso se deben utilizar los requerimientos de usuario (véase sección “1.5.2.
Requerimientos de usuario”) obtenidos en el proceso de recolección.
• Relaciones: estas permiten identificar qué casos de uso necesitan de otros casos
de uso para cumplir sus funciones.
Una vez terminado el modelado de casos de uso, se genera uno de los entregables
de esta etapa de análisis de requerimientos: el documento de casos de uso, por medio
del cual los analistas identifican los requerimientos del sistema, que se expresan en
tres diferentes vistas que se describen a continuación:
• Vista operacional [50]: hace referencia a cómo debe funcionar el sistema, donde
se deben tener en cuenta condiciones como: “qué tan bien” o “bajo qué circuns-
tancias”. Esta vista identifica las necesidades operacionales, las condiciones y
eventos a los que debe responder el sistema, las restricciones operacionales y las
Recolección y análisis _83
condiciones desde las cuales este interactúa con otros. Esta vista representa los
requerimientos no funcionales del sistema (véase sección “1.5.5. Requerimientos
no funcionales”).
• Vista física: hace referencia a cómo debe ser construido el sistema.
• Vista funcional: pone el relieve en qué debe hacer el sistema para satisfacer el
comportamiento operacional descrito. Esta vista muestra las funciones del sis-
tema, las restricciones de desempeño, las tareas o acciones que se deben realizar,
es decir, la vista representa los requerimientos funcionales (véase sección “1.5.4.
Requerimientos funcionales”).
Los dfd son una técnica que apareció en los años setenta, inspirada en el paradigma
transaccional y procedimental, creada por Edward Yourdon [17]. Esta técnica per-
mite construir modelos de los procesos de una organización con diferentes niveles
de detalle y son particularmente útiles para identificar los flujos de información que
es usada, transmitida o manipulada por el sistema [38].
Los modelos dfd se caracterizan por incluir los siguientes elementos [17], [39]:
• Procesos: que representan el trabajo que se realizará (con diferentes niveles de gra-
nularidad) y que, a su vez, transforma o procesa información (datos) (figura 2.11).
Proceso
Fuente: [17].
84_ Ingeniería de requerimientos
Almacén de datos
Fuente: [17].
Entidad externa
Fuente: [17].
Almacén de datos 1
Entidad externa 2
Proceso 3
Fuente: [17].
Recolección y análisis _85
Proceso 1
Fuente: [17].
Cliente
Crear orden
Verificar
tarjeta de
crédito
Cambiar
información Orden Información
de cuenta aprobada financiera
Proveer
información
Entidad financiera
Mantener Procesar
información orden
de cliente
Información de clientes
Fuente: [17].
86_ Ingeniería de requerimientos
Los diccionarios de datos son útiles principalmente para validar la integridad de los
flujos de datos, dado que una de las principales fuentes de los diccionarios de datos son
los diagramas de flujos de datos. También es utilizado para la elaboración de formatos
de pantalla o reportes y puede ayudar a la definición de los datos almacenados [52].
Los diccionarios de datos describen los contenidos de los flujos de datos y alma-
cenes de datos. En la figura 2.17 se muestra la relación que tienen los elementos de
un diccionario de datos y de dónde pueden provenir.
Recolección y análisis _87
Figura 2.17. Relación de los diccionarios de datos con flujos de procesos y almacenes de datos
Fuente: [17].
2.2.4. Entidad-relación
Valores
Mundo real
Análisis de
requerimientos
Modelado conceptual
Esquema Modelo
conceptual conceptual
Sistema de gestión
de bases de datos
Diseño lógico
Esquema Modelo
lógico representación
Diseño físico
En la figura 2.19 se muestran los diferentes elementos del modelo del dominio,
los cuales pueden representar los conceptos del sistema mencionados.
Rol Tiene 1
Clase 1 Clase 2
n
+ Responsabilidad 1 ()
Herencia
(Es-Un)
Cardinalidades
Clase 3
Para la elaboración del modelo del dominio, hay que tener en cuenta diferentes
aspectos. A continuación, se mencionan los ítems más relevantes dentro de este
diagrama [50]:
• Abstracciones: son un concepto. Serán modeladas como una entidad dentro del
dominio del sistema. Se debe tener en cuenta que esta entidad tiene unas respon-
sabilidades que serán asignadas para determinar su comportamiento.
• Responsabilidades (conocimiento, comportamiento): como se mencionaba, las
abstracciones tienen unas responsabilidades que pueden ser del tipo conocimien-
to o comportamiento, donde se determina si la abstracción o entidad mantiene
información sobre algo en específico o deben realizar algunas funcionalidades.
• Relaciones: las abstracciones o entidades tienen relaciones entre ellas para poder
ejecutar cualquier escenario del sistema. En el modelo del dominio se manejan
dos tipos de relaciones: asociaciones y generalización.
Los árboles de decisión son una técnica que permite considerar diferentes condiciones
o acciones y la manera en la que las decisiones deben tomarse, así como las conse-
cuencias que estas conllevan. También permiten generar una estructura con la cual
Recolección y análisis _91
Acción 1
Nodo de decisión
Acción 2
Alternativa 1
Acción 3
Nodo raíz
Alternativas de decisión
Alternativa 2
Fuente: [58].
92_ Ingeniería de requerimientos
Novedades
0,5
Géneros Ficción
0,2
0,3
Librería Terror
¿Dónde? Clásicos
0,6
Feria
Sí 0,4 Usados
¿Hay dinero suficiente?
Romance
0,3
No Géneros Ficción
0,3
Sí 0,4
Ir a la biblioteca Terror
No
Condiciones Entrada de
condiciones
Acciones Entrada de
acciones
Para llenar la tabla de decisión se sugiere la siguiente secuencia de pasos [57], [58]:
1. Identificar cuáles son las condiciones que afectaran las decisiones. Las condiciones
son aquellos acontecimientos que pueden llegar a suceder o no.
2. Determinar cuáles son las posibles acciones para llevar a cabo. Las acciones son las
actividades que se derivan de las condiciones que se identifican en el primer paso.
3. Ubicar las condiciones y acciones en los respectivos cuadrantes de la matriz. Se re-
comienda seguir las siguientes consideraciones en el momento de llenar la matriz:
a. Tener en cuenta las condiciones y acciones que, descritas de diferentes mane-
ras, tengan el mismo significado. Estas deberían expresarse como una sola
condición o acción.
b. Si existen dentro de la lista de condiciones, sentencias que representen lo
opuesto, por ejemplo, mayor y menor. Solo debe tenerse en cuenta una de
ellas, puesto que, al negarla, se obtendrá automáticamente la otra.
94_ Ingeniería de requerimientos
4. Una vez se obtiene la lista de condiciones y la lista de acciones, construir las re-
glas. Estas se obtienen de la fuente sobre la cual se obtuvieron las condiciones y
las acciones. Las reglas pueden tener tres valores: S = la condición se cumple;
N = define que la condición no debe o no se cumple e I = indiferencia, es decir,
no afecta el proyecto si esa condición se cumple o no.
1 2 3
Dinero suficiente S S N
Ir a la librería S N N
Ir a la feria N S N
Ir a la biblioteca N N S
Comprar novedades X - -
Leer terror X X X
Comprar usados - X -
Comprar clásicos X X -
Fuente: adaptada de [57].
La notación uml propuesta por el Object Management Group [59] presenta una
serie de modelos que comunican, diseñan y apoyan el proceso de análisis desde el
punto de vista dinámico. En particular, podemos mencionar los diagramas de acti-
vidad, de secuencia, de colaboración y de estado.
Pagar orden
• Decisiones: representa rutas alternativas (dos o más) que puede tomar un proceso,
representada por condiciones que son cumplidas por una u otra ruta (figura 2.24).
• Sincronización (paralelismo): indica cuando más de dos acciones o flujos de ac-
ciones deben iniciar o terminar al mismo tiempo (figura 2.25).
[Condición 1]
Generar orden
Pagar orden
Pagar Procesar
[Condición 2] orden bodega
Entregar orden
• Swimlanes (calles): usadas para indicar quién o qué entidad realiza las acciones.
Esto ayuda a comprender mejor los procesos de negocio o flujos de trabajo en
una organización. La figura 2.26 presenta un flujo de trabajo que es realizado
por tres entidades: cliente, ventas e inventario; también se pueden observar rec-
tángulos que indican artefactos creados o generados durante la ejecución de una
actividad, que a su vez son usados por otra (order).
Cliente
Paga el pedido Recoge el pedido
Solicita un
pedido
Pedido Pedido
(Realizado) (Entregado)
Ventas
Entregar el pedido
Toma el pedido
Pedido Pedido
(Ingresa) (Completo)
Inventario
Completar pedido
Inicio Fin
Evento
En la estantería
Tomar prestado ()
En préstamo En préstamo
Verificar () [Mal estado]
Los modelos bpmn son similares en notación a los diagramas de actividad, pero su
principal objetivo es describir los procesos de negocio, caracterizados por actividades
(elementos activos, consumen tiempo y cambian de estado), eventos (representan
condiciones y no consumen tiempo), objetos (representan información u objetos
físicos), actores (quienes ejecutan las acciones o quienes consumen el resultado del
proceso) [62]. Este modelo tiene como principal objetivo describir cómo funciona
la organización de cara al cliente, lo que permite, además, refinar descripciones de
los stakeholders, sus responsabilidades y su conocimiento. Su uso se ha extendido es-
pecialmente en la descripción y definición de requerimientos de negocio.
98_ Ingeniería de requerimientos
Referencias
[1] K. Wiegers y J. Beatty, Software Requirements, 3.a ed. Redmond, WA: Microsoft
Press, 2013.
[2] K. Wiegers, More about Software Requirements: Thorny Issues and Practical Advice,
1.a ed. Redmond, WA: Microsoft Press, 2005.
[3] R. R. Young, The Requirements Engineering Handbook. Boston: Artech House
Print on Demand, 2003.
[4] Real Academia Española, Diccionario de la lengua española. [Online]. Disponible:
http://dle.rae.es/?w=diccionario. [Consultado: 29-mar-2017].
[5] S. Lauesen, Software Requirements: Styles & Techniques, 1.a ed. Harlow: Addison-
Wesley Professional, 2002.
[6] R. R. Wright, “Guidelines for Successful Acquisition and Management of
Software-Intensive Systems: Weapon Systems”. [Online]. Disponible: https://
acc.dau.mil/CommunityBrowser.aspx?id=18602. [Consultado: 05-abr-2017].
[7] B. Nuseibeh y S. Easterbrook, “Requirements engineering: A roadmap”, en
Proceedings of the Conference on the Future of Software Engineering, 2000, pp. 35-46.
[8] I. Alexander y L. Beus-Dukic, Discovering Requirements: How to Specify Products
and Services. West Susex, Inglaterra: John Wiley & Sons, 2009.
[9] World Wild Foundation, “Cross-Cutting Tool, Stakeholder Analysis”. Oct.
2005. [Online]. Disponible: https://www.google.com.co/url?sa=t&rct=j&q
=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwiO4N
W16e3VAhVCSiYKHTYqDhcQFggrMAA&url=http%3A%2F%2Fwww.
panda.org%2Fstandards%2F1_4_stakeholder_analysis&usg=AFQjCNFuC
vkaDhQKxynpEHznM9yJj8MKYA
[10] N. Rozanski y E. Woods, Software Systems Architecture: Working with Stakeholders
Using Viewpoints and Perspectives, 1.a ed. Upper Saddle River, NJ: Addison-
Wesley Professional, 2005.
[11] H. Sharp, A. Finkelstein y G. Galal, “Stakeholder identification in the
requirements engineering process”, Proceedings of 10th International Workshop on
Database & Expert Systems Applications (dexa), set. 1999. [Online]. doi: http://
doi.ieeecomputersociety.org/10.1109/DEXA.1999.795198
[12] R. F. Goldsmith, Discovering Real Business Requirements for Software Project Success.
Norwood, MA: Artech House, 2004.
[13] K. Baxter y C. Courage, Understanding Your Users: A Practical Guide to User
Requirements Methods, Tools, and Techniques, 1.a ed. San Francisco, CA: Morgan
Kaufmann, 2005.
Recolección y análisis _99
_103
104_ Ingeniería de requerimientos
• Modificable: cada requerimiento debe ser modificable, lo cual implica que cada
requerimiento debe ser especificado por separado. Esto permite evitar la ambi-
güedad y que se tenga un registro de los cambios realizados sobre los requeri-
mientos.
• Trazable: cada uno de los requerimientos se debe poder relacionar con su fuente,
caso de uso relacionado o el cliente al cual está ligado. Además de esto, se debe
poder relacionar con los elementos de diseño, la implementación y los casos de
prueba.
• Independiente del diseño: significa que es posible realizar el mismo objetivo,
pero de diferentes formas, diseño e implementación.
• No redundante: como su nombre lo indica, el requerimiento no debe estar re-
petido en todo el documento srs, pues facilita caer en la inconsistencia, además
de entorpecer el manejo de cambios.
El estándar iso/iec/ieee 29148 [1] establece los contenidos mínimos con los que
debe contar una especificación de requerimientos:
106_ Ingeniería de requerimientos
Al estructurar esta última sección es importante tener presente que aun cuando
bien podrían agruparse los requerimientos por su tipo (negocio funcional, no fun-
cional, etc.), pueden agruparse por tipos de usuario (basado en el modelo de casos
de uso), subsistemas o módulos (inferidos a partir de uso común de información o de
procesos de negocio relacionados). Por ejemplo: imagine que está usted diseñando
un avión y tiene diferentes requerimientos originados de sus funcionalidades básicas,
así como de los stakeholders del producto (empresa de aviación, pilotos, personal de
mantenimiento, azafatas, pasajeros, etc.) [7].
Una primera aproximación a estructurar los requerimientos puede ser por actores:
• Requerimientos de negocio (de la empresa dueña o administradora del aparato)
• Personal de mantenimiento
• Piloto
• Azafata
• Pasajeros
Cada uno de estos grupos puede internamente agrupar los requerimientos por
tipos de acuerdo con el usuario.
Otra forma de agruparlos podría ser a partir de grupos de comportamientos
relacionados:
• Preparación para el vuelo
• En vuelo
• Preparación al aterrizaje
• Aterrizaje
• Mantenimiento
• Desempeño
• Safety (integridad física de los usuarios)
Especificación, verificación y validación _107
Para establecer un requerimiento, se deben definir una serie de atributos que ase-
guren que el requerimiento será definido de manera completa, asegurando así que
todos los detalles del requerimiento son tenidos en cuenta [8] (véase sección “1.2.
Atributos de calidad del requerimiento”).
Se deben definir cuáles son los términos con los cuales se va a hacer la especifica-
ción; por ejemplo, si se quiere hacer referencia al usuario final, se puede definir que
el término para identificarlo será usuario [2]. Es útil en este contexto el uso de un
diccionario de datos que permita identificar de una manera unívoca los elementos
del negocio que serán expresados en los requerimientos.
Inspección formal de los requerimientos “es una de las prácticas de calidad de más
alto valor” [2]. En este tipo de revisiones es recomendable que participen personas de
diferentes perspectivas. Estas se encuentran clasificadas de la siguiente manera [2]:
• “El autor del producto de trabajo y tal vez los colegas del autor”, es decir, la
persona que cumple con el rol de analista de requerimientos.
• El autor de algún artefacto anterior al srs puede ser un arquitecto que asegura
que el srs cumple con las especificaciones del sistema de manera detallada o
pueden ser también los representantes de los clientes para asegurarse de que el
srs describe sus necesidades correcta y completamente.
• Personas que van a realizar su trabajo basados en el producto que van a ins-
peccionar. Pueden ser los desarrolladores, probadores, director de proyecto y
documentador.
• Las personas que son responsables de artefactos que se interconectan con el pro-
ducto que se va a inspeccionar, es decir, las interfaces externas, para evitar que
existan problemas con sistemas externos.
Dentro de la inspección se deben representar unos roles que cumplen con unas
funcionalidades específicas para poder llevar a cabo la inspección de una manera
concreta [2], [3], [14]:
• Autor: es la persona que ha desarrollado el srs. Su función dentro de la especifi-
cación es explicar el srs a otros miembros del equipo de inspección.
• Moderador: asegura que el equipo de inspección se selecciona adecuadamente,
ya que el equipo de inspección debe estar capacitado para llevar a cabo el proceso
regido por unas reglas predefinidas.
Especificación, verificación y validación _109
• Lector: su funcionalidad, como su nombre lo indica, es leer el srs, donde los otros
participantes señalan posibles defectos y problemas. El lector puede ofrecer una
interpretación propia del requerimiento, donde pueden surgir diferencias entre
los inspectores. “Es una buena manera de revelar una ambigüedad, un posible
defecto o una suposición” [2]. Es recomendable que el lector no sea uno de los
autores del srs.
• Registrador (recorder): ayuda a reducir la carga al moderador. Se encarga de man-
tener anotadas todas las objeciones y cuestiones planteadas durante la reunión.
Es recomendable que el registrador lea lo que haya escrito, para informar al resto
lo que se ha plasmado y no dar espacio a malentendidos.
El proceso para llevar a cabo la inspección se presenta en la figura 3.1.
Inspección Preparación
Validación
Línea
Rehacer Seguimiento base del
producto
En esta etapa entran a participar los casos de prueba de los requerimientos de usua-
rio (véase sección “1.5.2. Requerimientos de usuario”), con el fin de documentar el
comportamiento esperado del producto en determinadas condiciones. Trace los casos
de prueba a los requerimientos funcionales para asegurarse de que ningún reque-
rimiento se ha pasado por alto [2]. Estos casos de prueba se utilizan para verificar
la exactitud de los modelos de análisis y prototipos, y es una manera económica de
corregir defectos de los requerimientos antes de haber empezado a implementar.
En la figura 3.2 se muestra cómo las pruebas derivan de los requerimientos de
usuario, además de presentar qué pruebas se pueden realizar para cada artefacto. Los
casos de prueba sirven para evaluar las necesidades textuales, los modelos de análisis
y los prototipos [3]. Se tienen los casos de prueba para evaluar el curso normal, al-
ternativo y excepciones existentes en los casos de uso [15]. Y se tienen los prototipos
para determinar el procedimiento que el usuario final desea en cada caso de uso.
Requerimientos
de usuarios
Analista Probador
Requerimientos Comparar
funcionales y Casos de prueba
modelos de análisis y escenarios
Comparar
Técnicas y Procedimientos de
diseños GUI pruebas y scripts
Es necesario saber cómo los usuarios van a determinar si el producto satisface sus
necesidades y es apto para su uso. Por lo tanto, “los criterios y pruebas de aceptación,
deben analizar si el producto cumple sus requerimientos documentados y si es apto
para su uso” [2]. Los principales usuarios deben considerar el uso más común y casos
de uso más importantes al decidir la forma de evaluar la aceptabilidad del software.
Es deseable que al inicio del proyecto se determinen conjuntamente los criterios de
aceptación, junto con sus pruebas asociadas y escenarios; de igual manera, se debe
diferenciar la aceptación de los prototipos por parte de los gerentes o dueños del pro-
ducto, de aquella realizada por clientes o usuarios finales (reales o potenciales) [10].
En cualquier caso, existen modelos e instrumentos genéricos que contribuyen a de-
terminar la utilidad o valor del producto, como pruebas de compromiso (engagement),
usabilidad [16], satisfacción [17], entre otros [18].
Tal vez el modelo más generalizado para realizar pruebas de aceptación es el
modelo de aceptación tecnológica (tam, por su sigla en inglés), cuya contribución funda-
mental es establecer, con un alto poder predictivo, si el artefacto tecnológico será
aceptado o no. Es decir, se trata de una medición ex ante para determinar la utilidad
potencial del artefacto antes de implantarlo en un contexto de producción. En ese
sentido, tam es un modelo para evaluar la aceptación potencial de un sistema por
parte de un grupo de usuarios [19]. En su versión original (1989), los criterios o
variables de aceptación se asocian con dos constructos: utilidad percibida y facili-
dad de uso percibida. Más recientemente, tras años de aplicación y refinamiento
del modelo, los factores han sido revisados para considerar más explícitamente los
condicionantes de la aceptación (o no) del artefacto: experiencia, volición (libertad
en elegir o no el artefacto), normas subjetivas, imagen, relevancia para el trabajo,
calidad de las salidas del sistema y la demostración de los resultados [20].
Dado que muchas personas han usado y generado variantes de tam, se ha in-
tentado llegar a un modelo unificado [20], [21]. Se ha podido lograr una capacidad
predictiva del 70 % con un modelo cuyas variables independientes son:
• Expectativa de mejora en el desempeño
• Expectativa de esfuerzo requerido
• Influencia social
• Condiciones facilitadoras
114_ Ingeniería de requerimientos
Estos anteriores son los factores que conducen inicialmente una intención de
uso del artefacto y esta intención es la que conduce eventualmente al uso real. No
obstante, también se han determinado variables moderadoras que es importante
tener en cuenta como influencia en la aceptación:
• Género
• Edad
• Experiencia previa
• Volición (libertad de elegir)
Cabe subrayar que este instrumento predice aceptación, con lo cual se puede
evaluar a partir de prototipos o demostraciones, no necesariamente de uso real en
producción.
Como lo indica Wiegers [2], aparte de las listas de verificación y validación, la es-
pecificación de requerimientos también se puede evaluar por la consistencia de sus
componentes. En este ejemplo, vamos a comparar un requerimiento con un caso de
prueba1 definido para verificar el requerimiento. Supongamos que es una empresa
que manufactura diferentes productos.
1
Dícese del conjunto de entradas de prueba para el sistema y su respectivo conjunto de salidas esperadas, así
como una descripción de lo que será probado [22].
Especificación, verificación y validación _115
Requerimiento
El sistema debe validar los atributos del producto para que el usuario pueda enviar la solicitud.
Caso de prueba
Para aprobar la solicitud, debe revisar los atributos del producto si existen para reportarlos en la
solicitud.
Fuente: elaboración propia.
Requerimiento
El sistema debe validar que cada uno de los atributos característicos del producto tenga al menos
un valor diligenciado en la solicitud para que el usuario pueda enviar la solicitud.
Caso de prueba
Para enviar la solicitud, el usuario debe probar los siguientes escenarios:
• Cuando todos los atributos del producto estén diligenciados, el resultado debe ser el envío de
la solicitud sin ningún problema.
• Cuando uno de los atributos del producto no tenga un valor asignado, al enviar la solicitud, el
sistema debería mostrar un mensaje de error e impedir que se envíe la solicitud.
Fuente: elaboración propia.
Ahora, se detalla un poco más el caso de prueba, incluso tiene dos escenarios,
gracias a la información adicional que ahora tiene el requerimiento.
Con este tipo de revisiones se pueden evitar posibles errores al descubrir am-
bigüedad en el requerimiento, orientar mejor la prueba para el requerimiento o
redefinir el requerimiento hacia lo que en realidad quiere el cliente.
116_ Ingeniería de requerimientos
Referencias
_119
120_ Ingeniería de requerimientos
Para alcanzar una gestión de requerimientos exitosa se deben realizar las actividades
registradas en la figura 4.1.
Proceso Actividad
Identificar
requerimientos
Priorizar requerimientos
Localización
Administración
de Trazar
requerimientos
Trazabilidad
Definir políticas de
administración
Monitoreo y
reporte
Almacenar los
requerimientos rechazados
Administrar
el cambio Control de cambios
4.2.1. Capturar
Atributo Descripción
Atributos propios del requerimiento
Fecha Día, mes y año en el cual fue creado el requerimiento.
Descripción Describe el requerimiento identificado en la fase de recolección.
Versión Versión actual del requerimiento.
Autor Nombre de la persona que creó el requerimiento.
Responsable Persona que debe asegurar que el requerimiento se cumple.
Persona a la que pertenece el requerimiento o una lista de
Dueño
stakeholders.
Fase en que se encuentra el requerimiento, es decir, el reque-
Estado rimiento puede estar propuesto, rechazado, implementado o
verificado, dependiendo de los criterios que cada grupo tenga.
Número de la versión del requerimiento, el cual pertenece a la
Versión línea base
línea base actual.
Describe las fuentes del requerimiento (véase sección “2.1.4.
Origen
Entrevistas y cuestionarios”)
Razón Se utiliza para saber el motivo de la última revisión.
Cambios realizados Lista de los cambios realizados al requerimiento.
Indica el responsable de los cambios realizados en los requeri-
Responsable del cambio
mientos.
Fecha del último cambio Fecha en la cual fue modificado por última vez el requerimiento.
Atributos para el proyecto
Prioridad Importancia del requerimiento.
Requerimientos que se relacionan, ya sea porque pertenecen al
Requerimientos asociados
mismo módulo.
Subsistemas Lista de subsistemas en los que se encuentra el requerimiento.
Casos de uso que cumplen con el requerimiento. Este atributo
Casos de uso asociados
está relacionado con los que tratan sobre la trazabilidad vertical.
Según la clasificación que se maneje en el grupo, a qué grupo de
Tipo de requerimiento
requerimientos pertenece.
Administración de requerimientos _123
Atributo Descripción
Volatilidad Este campo indica qué tan volátil es el requerimiento.
Especifica el componente o subsistema donde se encuentra asig-
Localización
nado el requerimiento.
Indica el nivel de riesgo que puede tener un requerimiento, debi-
do a diferentes factores como la limitación de la herramienta de
software que se utilice, la falta de conocimiento de la herramienta,
Riesgo
la dificultad de la interfaz, el conjunto de habilidades en el equipo
de desarrollo y la criticidad con el incumplimiento de una obli-
gación se propagará el riesgo.
Indica la dificultad para los desarrolladores para implementar el
Dificultad
requerimiento.
Indica el nivel de beneficio para el proyecto en general, puede ser
Beneficio distribuido según diferentes criterios. Para mayor ampliación del
tema véase la sección “4.2.1.2. Priorización”.
Muestra los artefactos que permiten seguir la vida del requeri-
Trazabilidad
miento (véase sección “4.2.2.2. Trazabilidad”).
Atributos adicionales
Indica el caso de prueba asignado para validar el requerimiento
Casos de prueba asignados
en cada una de las fases de desarrollo.
No siempre el responsable en la fase de requerimientos es el mis-
Responsables en cada una de mo en la fase de diseño, implementación o pruebas; por lo tanto,
las fases es necesario saber quién está a cargo del requerimiento en cada
una de las fases.
El método que se utilizará en pruebas de aceptación para demos-
Método de calificación
trar la conformidad del producto con el requisito.
Resultados obtenidos de las métricas asociadas al método de ca-
Métricas asociadas
lificación, si lo van a aplicar.
Porcentaje del resultado que indica si cumple con los estándares
Aprobación (según estándar
de calidad definidos en el proyecto, según las listas de chequeo
que se maneje)
aplicadas.
Fuente: [2], [6], [7].
124_ Ingeniería de requerimientos
Sin embargo, como menciona Heumann en su artículo “The Five Levels of Re-
quirement Management Maturity” [7], no todos los requerimientos son iguales;
existen requerimientos más estables que otros, existen requerimientos que son más
importantes que otros, razón por la cual se les presta mayor atención. Por lo tan-
to, no es necesario aplicar dentro de la especificación de los requerimientos (véase
sección “3.1. Especificación de requerimientos”) todos los atributos descritos en la
tabla 4.2, simplemente se pueden tomar algunos como base para modificar y agre-
gar nuevos atributos que sean necesarios, a fin de que se pueda considerar que un
requerimiento es completo y apropiado para el proyecto.
Los requerimientos se pueden considerar volátiles por dos razones: la primera es
que puede que uno o más clientes no estén de acuerdo con la funcionalidad o carac-
terística que describe el requerimiento y la segunda razón es que existen ciertos tipos
de eventos externos al proyecto que no pueden ser controlados y pueden generar
algunos cambios sobre los requerimientos [8]. Un ejemplo clave de requerimientos
volátiles son las interfaces externas.
Los requerimientos volátiles pueden ser de diferentes tipos, por ejemplo:
• Requerimientos cambiantes: son los que cambian debido al ambiente donde se
encuentra o se encontrará el sistema.
• Requerimientos emergentes: estos surgen cuando el sistema ya está en fases de
diseño y de implementación, ya que no es común verlos cuando el sistema se
especifica.
• Requerimientos “consecuentes”: surgen de las especulaciones hechas en el mo-
mento de realizar la especificación, sobre la manera en la que va a ser usado por
los clientes del sistema.
• Requerimientos de compatibilidad: son requerimientos sobre la compatibilidad
que debe tener el sistema en caso de que surjan nuevas actualizaciones sobre el
ambiente en el que va a funcionar el sistema.
4.2.1.2. Priorización
4.2.1.2.1. Criterios
Existen diferentes factores que pueden intervenir en la priorización, ya que se debe
tomar en cuenta la opinión de los stakeholders del proyecto; por lo tanto, los factores
que existen son muchos dependiendo de los objetivos y prioridades de cada stake-
holder. Para esto, diferentes autores como Berander y Andrews [10] o Botta y Bahill
[11] han agrupado diversos criterios útiles para establecer prioridades que pueden
tomarse en cuenta para realizar el proceso de priorización de requerimientos. En la
tabla 4.2 se presenta un conjunto de los criterios que pueden ser usados.
126_ Ingeniería de requerimientos
Criterio Justificación
“Características que pueden incrementar la satisfac-
Satisfacción ción del cliente deben ser de prioridad alta”, pues el
de cliente producto es desarrollado a petición del cliente. Su
opinión es una de las más importantes en esta etapa.
Importancia Si se ha llegado a tener un acuerdo de lo que tiene
Los stakeholders deben de- Compromiso o debería hacer el sistema, esto se debe cumplir,
cidir qué requerimiento dado que ha existido un previo trato con el cliente.
es más importante para
el sistema. Dado que cada Es importante dar prioridad a las características que
Prioridad de
uno va a seguir su propio participan en los escenarios (casos de uso), ya que
escenarios
criterio, este ítem puede pueden ser importantes para los objetivos del negocio.
llegar a ser multifacético. Este beneficio se refiere a características relaciona-
Por lo tanto, es necesario Beneficio das con requerimientos no funcionales del sistema,
especificar el área de im- como desempeño, tiempo entre fallas, entre otros.
portancia que se quiere
manejar para asegurar, Las características críticas de seguridad deben ser
Seguridad
por lo menos, que se está de alta prioridad, ya que se está involucrando la
(safety)
calificando con las mismas seguridad de los seres humanos.
reglas. En algunas ocasiones, existen características que
deben ser planeadas de manera temprana, debido
Cuando es
al deseo o a restricciones por parte del cliente; por
necesario
lo tanto, el tiempo es algo que también se debe
tomar en cuenta.
Dar alta prioridad a las características que tendrán
un gran impacto en la arquitectura del sistema.
Impacto negativo
Esto se debe a que los cambios que se realicen so-
(penalización) Arquitectura
bre ellas posteriormente pueden afectar diferentes
Es el valor que tiene el
entidades y causar así más cambios en diferentes ar-
requerimiento para el
tefactos, lo cual llega a ser costoso para el proyecto.
stakeholder, pero se aplica
al contrario, es decir, qué Este tipo de relaciones entre los requerimientos
tanto se perjudica el siste- Dependencias pueden indicar el grado de impacto que puede
ma si se realiza o no un re- causar si existe cambio sobre algún requerimiento.
querimiento. Al igual que
Objetos que pueden ser usados muchas veces du-
el anterior grupo de crite-
rante el desarrollo del proyecto deben ser de alta
rios, se necesita especificar Frecuencia de
prioridad. Por ejemplo, un fragmento de código
el área que se va a evaluar. uso
que realiza una funcionalidad específica repetidas
veces, debe ser elaborado y optimizado.
Administración de requerimientos _127
Criterio Justificación
El costo es el valor numérico que se le asigna a cada
requerimiento, cuantificando los recursos invertidos
(tiempo, personas, viajes).
Depende de los stakeholders analizar su costo y si
Costo el retorno de la inversión es satisfactorio para el
cliente, el cual se puede obtener revisando el be-
neficio del requerimiento. Si el beneficio que trae
desarrollar el requerimiento es alto para el cliente,
entonces se puede considerar incluirlo.
Proporción Como su nombre lo indica es la combinación del
costo- costo-beneficio, obteniendo así características que
beneficio ofrecen mayor beneficio con menor costo.
Las características que son complejas de desarrollar
Costo Complejidad deben ser de alta prioridad, pues se debe asignar a
Como su nombre lo indi- los mejores miembros para llevarlas a cabo.
ca, es el esfuerzo en el que Si es un ítem altamente reusable, debe tener una
incurre el stakeholder para Potencial de
prioridad alta, pues puede influir en el tiempo de
llevar a cabo el requeri- reúso
desarrollo.
miento. Según el stakehol-
der, el recurso a tener en Los requerimientos que cuentan con un grado de
cuenta difiere. dificultad alto en el momento de poner en prácti-
ca deberían tener alta prioridad; por ejemplo, los
atributos que pueden hacer difícil la aplicación
Dificultad de incluyen gran tamaño, la incertidumbre, la no-
implementa- vedad, el número de personas involucradas y las
ción restricciones organizacionales. La complejidad y la
dificultad de implementación son diferentes, pues
la segunda se refiere más a la dificultad en aplicar la
solución, mientras que la primera se refiere al costo
que puede incurrir para el sistema.
Como su nombre lo indica, es el tiempo que puede
Tiempo de necesitar un requerimiento para ser aceptado; por
implementa- lo tanto, los que necesiten más tiempo deben ser
ción planeados con anterioridad y tener prioridad, para
no crear posibles caminos críticos en el proyecto.
128_ Ingeniería de requerimientos
Criterio Justificación
“Trabajar sobre los requerimientos de alto riesgo
en primer lugar para reducir el riesgo y, además
porque son más propensos a cambiar, produciendo
Riesgo
así cambios en otras características”. Con esto se
evita el gasto de dinero en la aparición de cambios
no planeados.
“La volatilidad de los requerimientos se considera
un factor de riesgo y en ocasiones se manejan como
parte del aspecto de riesgo. Otros piensan que la
volatilidad se debe analizar por separado”. Existen
Riesgo diferentes razones, por las cuales la volatilidad
Es la probabilidad de fallo puede variar como cambios en el mercado, en los
que tiene el requerimiento Volatilidad requerimientos de negocio, cambios legislativos,
de no ser implementado etc. Sin embargo, independiente de la razón, estos
o aplicado dentro del sis- cambios causan atrasos en el cronograma lo que
tema. lleva al gasto de dinero adicional en el proyecto.
Por lo tanto, hay que definir estos requerimientos
con alta prioridad y así evitar problemas en el de-
sarrollo del proyecto.
“Desarrollar requerimientos estables en primer
lugar” ayuda a mantener una base casi intacta
sobre la que se puede trabajar el resto de los reque-
Estabilidad rimientos. Además, permite visualizar los cambios
de otros requerimientos con antelación [52] y evi-
tar así el gasto de dinero en cambios que pudieron
ser evitados.
Fuente: [10], [11].
4.2.1.2.2. Proceso
Existe un proceso para priorizar requerimientos que recomienda el autor Firesmith
para integrarlo a la administración de requerimientos [12]:
• Convencer a los stakeholders: es necesario dar a conocer la importancia de la prio-
rización de requerimientos a los stakeholders; de esta forma se pueden obtener
mejores resultados.
• Entrenar a los stakeholders: el entrenamiento a los stakeholders de requerimientos
es necesario, ya que así se asegura que todos los involucrados en el proceso de
priorización de requerimientos están tomando el mismo concepto y criterio a la
hora de evaluar.
Administración de requerimientos _129
• Escoger técnica: se debe escoger una técnica de priorización para saber los cri-
terios a tener en cuenta para evaluar la importancia de cada uno de los requeri-
mientos. La selección de la técnica depende de la organización, del cliente, de la
complejidad del proyecto y de sus stakeholders [10].
• Priorizar los requerimientos actuales: “Durante el análisis de requerimientos,
el equipo debe trabajar con el representante de los stakeholders para priorizar
los requerimientos actuales” [12]. Dentro de esta fase se incluyen actividades
como la negociación con los stakeholders sobre los requerimientos que se van a
desarrollar y su validación.
• Publicar las prioridades: durante la especificación de requerimientos, el equipo
debe publicar las prioridades resultantes después del análisis, con el fin de que
todas las partes interesadas estén informadas y puedan utilizar este informe de
prioridades.
• Estimación el esfuerzo: con el equipo de arquitectura y el de desarrollo se regis-
tran estimaciones realistas sobre los esfuerzos a incurrir en los requerimientos
seleccionados.
• Desarrollar un cronograma: con los resultados obtenidos en la fase anterior se
desarrolla un cronograma para las etapas posteriores del desarrollo del producto.
Este cronograma no es permanente, ya que puede cambiar dependiendo de las
posibles modificaciones de los requerimientos en el futuro.
• Mantenga las prioridades: “Durante la administración de requerimientos, el
equipo debe trabajar con los stakeholders para mantener los parámetros de exi-
gencia a medida que cambian” [12]. Generalmente, este campo suele ser como
un atributo del requerimiento al final de todo el análisis.
4.2.1.2.3. Técnicas
En el momento de priorizar los requerimientos, los stakeholders asignan un valor de
importancia al requerimiento según el criterio; sin embargo, en proyectos donde la
complejidad es alta, el asignar un valor no soluciona el problema, pues el resultado
no logrará satisfacer los objetivos propuestos en principio, es decir, el conjunto de
requerimientos estará vagamente delimitado y no se tendrá la certeza de que esos re-
querimientos merecen estar dentro de ese conjunto. Además, el hecho de que influyan
diferentes stakeholders lo hace aún más complicado, ya que podría encontrarse con re-
sultados contradictorios, donde no se tiene un criterio de decisión más que escoger los
de mayor puntuación. Para evitar este tipo de problemas se han presentado diferentes
técnicas de priorización de requerimientos desde hace varios años. A continuación, se
presentarán las más comunes.
130_ Ingeniería de requerimientos
Para empezar, se debe mencionar que existen diferentes escalas para evaluar un
requerimiento, ya que dependiendo de la granularidad que se esté manejando, esta
puede variar [9]. Las más comunes son:
• Bajo, medio y alto
• Esencial, condicional y opcional
• Bueno tenerlo, objetivo, altamente deseada y se debe lograr
• Numérica (por ejemplo, 1-5 o 1-10)
Los stakeholders asociados a esta técnica suelen ser el director del proyecto, para me-
diar entre las partes implicadas; los representantes del área de desarrollo, para estimar
los riesgos y costos que se van a afrontar, y los representantes de los clientes “clave”,
para que indiquen qué beneficios e impactos negativos podrían tener si el requerimiento
está o no dentro del producto.
Luego de evaluar cada requerimiento se deben asignar unos pesos a cada crite-
rio, es decir, un valor de importancia a cada ítem; por ejemplo, si se considera que
el proyecto es de alto riesgo (variedad de caminos críticos, presupuesto o tiempo),
Administración de requerimientos _131
se le proporciona más valor al criterio riesgo. Por último, se les aplica una fórmula a
los valores asignados sobre los requerimientos respecto a cada criterio [2]:
Cuando se requiera ver una presentación más común, se debe recorrer todo el bst
en orden. Con esto se obtienen los requerimientos en una lista ordenada de mayor
a menor importancia, para llegar así a lo que Berander y Andrews llaman técnica de
priorización ranking [10].
4.2.2. Trazar
4.2.2.1. Localización
Análisis de
requerimientos
Ciclo de
requerimientos
Análisis y
localización
Ciclo de diseño
Verificación Diseño
4.2.2.2. Trazabilidad
Especificación de
Fuentes requerimientos Diseño Implementación
R1
D1 DC1
R2
R3 D2 DC2
R4 D3 DC3
R5
Realización de requerimiento.
Hacia adelante Ejemplo: en un módulo de
software de la implementación.
Antes de detallar cuáles son las técnicas que se usan para realizar la trazabilidad,
cabe notar que es necesario que tanto los requerimientos como los demás productos
que surgen durante el desarrollo del sistema, cuenten con un identificador único
(véase sección “4.2.1.1. Definir los atributos de los requerimientos”).
Requerimiento
uc-1 uc-2 uc-3 uc-4
funcional
rf-1 X
rf-2 X
rf-3 X
rf-4 X
rf-5 X X
Fuente: tomado de [16].
Lista de trazabilidad: es una técnica más simple y más compacta que la matriz,
donde cada requerimiento tiene una lista que muestra la información de trazabili-
dad. Estas listas, en general, como se muestra en la tabla 4.6, consisten en ubicar
en la primera columna los requerimientos y en la segunda poner los requerimientos
que están asociados o de los cuales depende el requerimiento de la primera columna
[16], lo cual más adelante permite crear una visualización gráfica más clara de los
requerimientos, como son los grafos de dependencias, que se utilizan para identificar
rutas críticas y ayudar con la priorización de requerimientos (véase sección “4.2.1.2.
Priorización”). La desventaja de utilizar las listas a cambio de la matriz de trazabili-
dad es que no se puede evaluar de manera inversa la relación [16].
Requerimiento Dependencia
rf-1 -
rf-2 rf-1
rf-5 rf-2
Reglas:
id regla Descripción
reg1 Super Triumph permite jugar en dos diferentes modalidades.
El jugador debe elegir con cuál característica apuesta. Puede elegir si la apuesta
a la mayor o a la menor. Eso quiere decir que dentro de las cartas que se ponen
reg2
en juego gana el que tenga el mayor o el menor puntaje, dependiendo si está a
la mayor o a la menor. Quien gana se lleva todas las cartas que están en la mesa.
El turno de un jugador termina cuando le pide a un contrincante una carta y el
reg3
contrincante no la tiene.
reg4 Los cuartetos se forman con la letra del identificador de la carta.
Fuente: elaboración propia.
1
Super Triumph es la versión latina del juego Ace Trump, véase: https://en.wikipedia.org/wiki/Ace_Trumps
Administración de requerimientos _143
Casos de uso:
Tabla 4.8. Casos de uso del ejercicio de localización y trazabilidad
Componentes definidos:
Tabla 4.9. Componentes del ejercicio de localización y trazabilidad
Componente Descripción
Componente definido para reunir los requerimientos relacionados con la
Jugar
manera en la cual se desarrolla el juego.
Componente definido para contener los requerimientos relacionados con
Consultas
la base de datos.
Son los requerimientos asociados a la gestión de la información de los par-
Administración
ticipantes del juego.
Fuente: elaboración propia.
144_ Ingeniería de requerimientos
Requerimientos:
id
Descripción Versión
requerimiento
El sistema debe validar que el usuario y la contraseña dados existan
imr002 2.0
en la base de datos.
imr002 El sistema debe validar los datos para acceder al sistema. 1.0
El sistema debe permitir que el anfitrión escoja la modalidad con
imr016 1.0
la cual se va a jugar la partida.
El sistema debe permitir al jugador en turno apostar al mayor
imr027 1.0
valor o al menor valor, en la segunda modalidad.
El sistema debe poder terminar el turno de un jugador si sus po-
imr039 1.0
sibilidades de juego son nulas en la primera modalidad.
El sistema debe validar cuál es la carta que tiene la mejor caracte-
imr024 2.0
rística elegida por el jugador en turno en la segunda modalidad.
El sistema debe permitir al jugador en turno apostar al mayor
imr027 2.0
valor en la segunda modalidad.
El sistema debe permitir al jugador en turno apostar al menor
imr028 2.0
valor en la segunda modalidad.
El sistema debe validar cuál carta es la mejor para la segunda
imr039 1.0
modalidad.
Fuente: elaboración propia.
Administración de requerimientos _145
Pruebas:
Solución: la tabla 4.12 se debe utilizar para definir la localización de los requeri-
mientos. Para esto marque con una X la casilla correspondiente al componente en
el cual usted cree que se encuentra el requerimiento.
imr016
imr027
imr039
imr024
imr016
imr027
imr039
imr024
Una vez definida la lista de políticas (o si ya se tiene una lista general), se deben
seleccionar las políticas más adecuadas para el proceso de administración del pro-
yecto específico.
El plan de administración de requerimientos debe incluir secciones que se en-
carguen de definir:
• Los objetivos que se van a cumplir en el proceso de administración de reque-
rimientos. Se debe especificar todo, por ejemplo, los objetivos que se quieren
cumplir en determinado lapso, el alcance que tendrá el documento [21] y las
reglas aplicables en cualquier situación (ya sea una entrevista con el cliente o el
proceso que se realizará para solicitar algún cambio). Además, caben mencionar
148_ Ingeniería de requerimientos
En cuanto a los problemas que se pueden presentar, está el hecho de que se debe
consultar a las personas que están involucradas en el proceso de ingeniería de reque-
rimientos para modificar, proponer y revisar las políticas, con el fin de generar un
entrenamiento que asegure que las personas involucradas en el proceso conozcan y
apliquen dichas políticas, lo cual puede tomar mucho tiempo.
Administración de requerimientos _149
Ya que los requerimientos rechazados pueden llegar a surgir durante alguna de las
etapas posteriores a la especificación de requerimientos (véase sección “3.1. Especifi-
cación de requerimientos”), es indispensable contar con un registro que los almacene
y las razones por las cuales se decidió que estos no deberían ser implementados, con
el fin de evitar un proceso de análisis de requerimientos (véase sección “2.2. Aná-
lisis”), a efectos de verificar por qué no se tuvieron en cuenta en el análisis anterior
[8]. Para almacenar estos requerimientos Sommerville y Sawyer [4] recomiendan
utilizar una base de datos.
Varios autores, como Lam o Wiedemann, indican que “los cambios siempre ocurren
en un proyecto y en cualquier fase” [26]. Para esto se es preciso contar con un proceso
de control de cambios que le permita al equipo de trabajo manejar el cambio en los
requerimientos de la mejor manera, a fin de evitar cualquier incoherencia o atraso
dentro del proceso [27]. A estos efectos, se deben definir los lineamientos o las po-
líticas que se van a seguir cuando se va a efectuar un cambio en los requerimientos.
1. Cuál debe ser el proceso para realizar la solicitud del cambio en los requerimien-
tos: el definir un proceso de control del cambio permite asegurar que los cam-
bios propuestos son evaluados o aplicados de manera consistente [4]. Para una
solicitud de cambio se realizan las siguientes actividades:
• Llenar la plantilla de solicitud de cambios. Esta debe contener atributos como:
el número de la solicitud, la fecha en la cual se hace, el nombre de la persona
que solicita el cambio, la descripción del problema, la descripción del cam-
bio, el costo del cambio, y campos en los cuales posteriormente se aceptará
o se registrarán las razones por las cuales no se acepta el cambio [28]. En la
tabla 4.14 se muestra un ejemplo de cuáles son los atributos en la solicitud
del cambio.
150_ Ingeniería de requerimientos
Solicitud de cambio
Dueño Identificador único
Resultados del análisis Fecha de registro
Referencia Prioridad
Fecha de decisión Persona que propone
Estado Descripción
Justificación Explicación
Fuente: adaptado de [26].
2. Establecer un comité de control de cambios [4]: esto con el fin de asegurar que
todas las solicitudes de cambio serán evaluadas. Para establecer este comité se
siguen los siguientes pasos:
• Seleccionar a los miembros: el objetivo de este paso es seleccionar a las personas
correctas que se encarguen de evaluar todos los cambios. Todos los stakeholders
pueden ser parte del comité [28].
Administración de requerimientos _151
• Reuniones para evaluar los cambios: los miembros del comité deben reunirse de
manera constante para asegurarse de que las solicitudes de cambios se eva-
lúan y que son contestadas en un tiempo determinado [28].
3. Definir cómo notificar el cambio a los stakeholders afectados [4]: se debe informar
a los stakeholders afectados los cambios que fueron aceptados e implementados.
Atributo Descripción
Referencias
[1] K. Wiegers, More About Software Requirements: Thorny Issues and Practical Advice,
1.a ed. Redmond, WA: Microsoft Press, 2005.
[2] K. Wiegers y J. Beatty, Software Requirements, 3.a ed. Redmond, WA: Microsoft
Press, 2013.
[3] “The Standish Group Report: chaos”. 2014. [Online]. Disponible: https://
www.projectsmart.co.uk/white-papers/chaos-report.pdf
[4] I. Sommerville y P. Sawyer, Requirements Engineering: A Good Practice Guide.
Londres: John Wiley & Sons, 1997.
[5] I. Alexander y R. Stevens, Writing Better Requirements, 1.a ed. Londres: Addison-
Wesley Professional, 2002.
[6] The Land Software Engineering Centre, “Requirements Attributes”, 2010.
[Online]. Disponible: http://www.lsec.dnd.ca/qsd_current_version/sw_eng/
di/reqpro_attributes.htm
[7] J. Heumann, “The Five levels of requirements management maturity”, The
Rational Edge, 2003. [Online]. Disponible: http://vincentvanrooijen.com/
container%5CRequirements%20Management%5CThe%205%20levels%20
of%20ManagementMaturity_TheRationalEdge_Feb2003.pdf
[8] I. F. Hooks y K. A. Farry, Customer Centered Products: Creating Successful Products
Through Smart Requirements Management, 1.a ed. Nueva York: Amacom/
American Management Association, 2000.
[9] K. Wiegers, “First things first”, Softw. Dev., vol. 7, no. 9, pp. 48-53, set. 1999.
Administración de requerimientos _155
5.1. Características
5.2. Beneficios
1
Disponibles en http://sourceforge.net
160_ Ingeniería de requerimientos
Fuente: [4].
2
Herramienta desarrollada como un proyecto de grado del programa de Ingeniería de Sistemas de la Pontificia
Universidad Javeriana.
Herramientas _161
Fuente: [5].
Fuente: [5].
162_ Ingeniería de requerimientos
Igualdad
Verificación y validación
52 9 10 11
Igualdad
Priorización 12
53 42 14
13
Igualdad
41 51 16 15
27 22 17 19
Localización y trazabilidad
26 28 43 20 18 21 38 35
Igualdad
Igualdad
Grafo y reportes
25 24 43 33 40 34 37 30
Igualdad
45
39 36 29
44 46 49 32 31
Igualdad
48
50
47
Fuente: [5].
Herramientas _163
Fuente: [5].
Fuente: [4].
164_ Ingeniería de requerimientos
Fuente: [4].
Fuente: [4].
Herramientas _165
Fuente: [4].
166_ Ingeniería de requerimientos
Además, ermt genera un reporte con el historial de todos los problemas que han
sido asociados a los requerimientos (figura 5.10).
Fuente: [4].
Por otro lado, ermt les permite a los usuarios generar en archivo csv (comma
separated values), una matriz de trazabilidad (véase sección 4.2.2.2), la cual cuenta
con todos los requerimientos registrados bajo un proyecto en la herramienta y la
relación que estos tienen con los casos de uso (figura 5.11).
Herramientas _167
Fuente: [4].
Referencias
_169
170_ Ingeniería de requerimientos
Como se observa en la figura 6.1, los sistemas e-health, al tener impacto en las per-
sonas, requieren un trabajo sociotécnico en la etapa de recolección y especificación
de requerimientos; también es importante involucrar a todos los stakeholders para
tener en cuenta los diferentes intereses y llegar a una negociación en un determinado
momento, establecer una terminología común [6] y evitar así que el proyecto de
software fracase. El contexto es también es un aspecto importante: incluye caracterís-
ticas políticas o sociales en el contexto externo y políticas propias de la organización
en el contexto interno [7]. En un estudio realizado por Ammenwerth et ál. [8], en
un hospital de Sudáfrica, se identificaron las principales fallas en la construcción y
uso del sistema Limpopo, que pueden ser aplicables a diferentes sistemas e-health
no exitosos. Las fallas incluyen, entre otras:
• No tomar en cuenta la cultura de las organizaciones de salud, ni capacitar a los
usuarios finales con la visión general de todo el proyecto.
• Subestimación de la complejidad de los procesos clínicos.
• Diferentes expectativas entre el patrocinador, desarrolladores y usuarios finales.
• Contexto muy cambiante para el cual no se adapta el sistema.
• No buscar ni aprender las lecciones aprendidas de proyectos similares.
Caso de estudio 4-Med _171
Contexto Terminología
altamente común
dinámico
Interacción
con stakeholders
El framework 4-Med [1] contempla cuatro vistas necesarias para modelar aplicaciones
e-health, como se puede ver en la figura 6.2. Estas vistas son la social, la empresarial,
la de dominio y la técnica, esto para contemplar los requerimientos y su impacto
desde diferentes ópticas.
Caso de estudio 4-Med _173
Social
Dominio Empresarial
Técnica
describa la situación deseada (to-be), para identificar así aspectos clave de requeri-
mientos que se deben contemplar en el proceso. Se aclara que como la vista social
es transversal a todo el proceso de requerimientos, este documento debe estar en
continua actualización por parte del ingeniero de requerimientos.
la etapa de especificación debe quedar claro tanto para el grupo técnico como para
los stakeholders las funcionalidades a implementar en el nuevo sistema. El reto aquí
es cómo lograr que el conocimiento médico se tenga en cuenta en la construcción
del nuevo sistema. Mediante la vista de dominio se proponen diferentes mecanis-
mos con los cuales se facilite la comunicación entre las dos áreas y se contemple el
conocimiento del dominio médico. Como artefacto asociado a esta vista se puede
construir una ontología o un vocabulario.
Como se puede ver en la figura 6.3, el framework 4-Med [1] tiene cuatro fases que
hacen parte del proceso de requerimientos: recolección, priorización, especificación,
verificación y validación.
176_ Ingeniería de requerimientos
Recolección
Verificación Priorización
y validación
Especificación
6.5.1. Recolección
Para la comprensión del entorno por parte del grupo técnico se sugieren reu-
niones en las cuales se expongan, por parte del personal médico a los ingenieros de
software, casos concretos en un lenguaje no médico de las patologías de salud que el
sistema apoyará. Es posible emplear modelos gráficos no técnicos para explicar una
situación en particular, e incluso el uso de técnicas como la actuación o storyboards,
que permitirán narrar qué se espera del sistema. Como resultado de esta actividad,
se puede construir un glosario o una ontología para tener de referencia en el pro-
yecto. Otra forma de obtener retroalimentación (y así una verificación inicial de
requerimientos) es mediante la construcción de un prototipo en el cual el personal
técnico exponga a los stakeholders lo que se plantea desde el sistema.
6.5.3. Especificación
En esta fase se producen los diferentes artefactos que pueden ser documentos tipo
Software Requirements Specification (srs), casos de uso, historias de usuario, modelos
visuales no técnicos que ayuden a una mejor comprensión del problema y prototipos
evolutivos. Estos documentos se deben revisar con los stakeholders para detectar posi-
bles inconsistencias en su redacción. En esta fase toma gran relevancia la vista técnica.
178_ Ingeniería de requerimientos
En esta fase se confrontará con el usuario que el sistema que se construirá es lo que
realmente se espera. Además, se verifica la consistencia en las relaciones de requeri-
mientos, su completitud y que los requerimientos apoyen la estrategia empresarial.
Durante todo el proyecto es importante la administración de requerimientos en
cada una de las vistas, así: la gestión del cambio en la vista social, manteniendo la
interacción con los stakeholders en todo el proceso de requerimientos; la vista técnica,
asociada con los artefactos que allí se construyen, y la vista de dominio y empresarial,
para incluir cambios en normatividad o políticas que no se hayan contemplado. En
cuanto a la captura y trazabilidad de los requerimientos, es importante también cons-
truir matrices de trazabilidad, tal como se mostró en la sección “4.2.2.2.3. Técnicas
utilizadas para realizar la trazabilidad”, que permitan identificar asociaciones entre:
• Requerimientos y objetivos del negocio.
• Requerimientos y casos de uso.
• Requerimientos y stakeholders.
• Requerimientos y artefactos de diseño.
El uso de estas matrices permite confrontar cómo los requerimientos se han con-
templado teniendo en cuenta la vista empresarial (requerimientos y objetivos del
negocio), cómo se ha involucrado a los stakeholders mediante la vista social y cómo
desde la vista técnica se producen casos de uso y diferentes artefactos que indican al
grupo de tecnología el trabajo que va a seguir. En la tabla 6.1 se aprecia un ejemplo
de la matriz de trazabilidad de requerimientos frente a casos de uso en la cual se
puede ver en qué casos de uso se está expresando lo solicitado en el requerimiento.
Caso de uso
Requerimiento
cu-01 cu-02 cu-03 cu-04
1.1 X
1.2 X
1.3 X X
1.4 X
1.5 X
1.6 X X
Fuente: elaboración propia.
Caso de estudio 4-Med _179
Referencias
[3] M. Chan, E. Campo, D. Estève y J.-Y. Fourniols, “Smart homes - current features
and future perspectives”, Maturitas, vol. 64, no. 2, pp. 90-97, oct. 2009.
[4] M. J. Ball y J. Lillis, “E-health: transforming the physician/patient relationship”,
Int. J. Med. Inf., vol. 61, no. 1, pp. 1-10, abr. 2001.
[5] E. AbuKhousa, N. Mohamed y J. Al-Jaroodi, “e-Health cloud: Opportunities
and challenges”, Future Internet, vol. 4, no. 3, pp. 621-645, 2012.
[6] S. A. Fricker, Requirements Engineering for Digital Health. Nueva York: Springer.
[7] D. Boddy, G. King, J. S. Clark, D. Heaney y F. Mair, “The influence of context
and process when implementing e-health”, bmc Med. Inform. Decis. Mak., vol. 9,
p. 9, 2009.
[8] E. Ammenwerth, S. Gräber, G. Herrmann, T. Bürkle y J. König, “Evaluation
of health information systems-problems and challenges”, Int. J. Med. Inf.,
vol. 71, no. 2, pp. 125-135, set. 2003.
[9] P. Demo, Investigación participante: mito y realidad. Barcelona: Lumen, 2009.
[10] R. R. Young, The Requirements Engineering Handbook. Boston: Artech House
Print on Demand, 2003.
[11] K. Wiegers y J. Beatty, Software Requirements, 3.a ed. Redmond, WA: Microsoft
Press, 2013.
Autores
_181
182_ Ingeniería de requerimientos