Académique Documents
Professionnel Documents
Culture Documents
Ingeniería de Requisitos
Recopilación de pequeñas herramientas informales para IR
Andrés Silva
Facultad de Informática • Universidad Politécnica de Madrid • 2008
Plantillas de requisitos! 3
Patrones de proceso! 10
Razón:
Origen: Prioridad:
Dependencias: Conflictos:
Referencias:
Historia:
Clasificación: En qué apartado del documento de requisitos debería figurar. En otras pa-
labras, a qué parte del sistema afecta (p. ej. pedidos, contabilidad, ventas, etc.)
Descripción: Una frase que describe el requisito, tipo “feature” (es decir, frase breve y
directa, como las que podemos encontrarnos en un folleto publicitario del producto).
La siguiente lista de comprobación sirve para realizar una validación guiada de un conjunto
de requisitos. La lista sirve tanto para inspeccionar los requisitos contenidos en una ERS co-
mo para cualquier conjunto de requisitos almacenado en una herramienta de gestión de re-
quisitos o en una Base de Datos. Es especialmente recomendable, no obstante, utilizarla an-
tes de crear una línea base. La checklist se basa en la propuesta por Karl Wiegers
(www.processimpact.com), aunque ligeramente modificada.
¿Se ha especificado el origen de cada requisito? (p.ej. quién lo pide, en qué reu-
nión se decidió incluirlo y porqué, etc.)
(2) Completitud
¿Se han definido todas las interfaces externas, hardware, software y de comuni-
caciones?
(3) Corrección
(5) Trazabilidad
¿Los requisitos son trazables a requisitos de más alto nivel? (p.ej., requisitos del
sistema, objetivos, casos de uso, otros documentos de nivel superior a la ERS)
¿Se ha tenido en cuenta los estándares, las leyes aplicables y las imposiciones de
posibles entidades certificadoras?
Hay que tener en cuenta que algunas de las anteriores preguntas se dirigen a cada requisito
individual, mientras que otras afectan al documento en general. El resultado de la aplicación
de esta checklist debería conducir a una serie de acciones orientadas a corregir y mejorar la
Especificación de Requisitos Software.
Estas preguntas (basadas en las de Gause & Weinberg) son útiles en las fases preliminares,
cuando no tenemos ni idea de por donde empezar a preguntar. Sirven para “romper el hielo”
al inicio del proyecto. Por ejemplo, se pueden solicitar respuestas por e-mail a un cliente/u-
suario, como actividad previa a una entrevista más formal.
¿Quién es el cliente?
(3) Metapreguntas
¿Cree que mis preguntas tocan aspectos relevantes? Si la respuesta es “no”, ¿cuáles?
¿por qué?
¿Hay alguna otra persona a la que debería hacer éstas, o similares, preguntas?
Estos patrones de proceso son muy útiles para llevar a la práctica en distintas circunstancias.
Proceden del artículo “Sharing RE Experiene Using Patterns” de Hagge y Lappe, publicado
en IEEE Software, Enero de 2005.
Objetivo
Crear una especificación de mutuo acuerdo en un entorno donde los interesados se encuen-
tran distribuidos en distintos grupos o equipos.
Contexto
Los líderes del proyecto tendrán que asignar responsabilidades para crear la especificación
desde el principio del proyecto.
Problema
Todos los interesados tendrán que negociar los requisitos hasta que se alcance un acuerdo,
pero normalmente los técnicos tienden a concentrarse en su trabajo y, por tanto, son de difí-
cil acceso a la hora de realizar una negociación. El líder del proyecto es quien deberá organi-
zar la colaboración y el intercambio de información entre los distintos afectados.
Solución
Áreas de Aplicación
Consecuencias
Ejemplos
En el proyecto X el líder del proyecto organizó a los equipos según los distintos componentes
de una planta industrial y según distintas disciplinas de ingeniería (había grupos relacionados
con plantas criogénicas, otros con túneles y otros con componentes electrónicos). En el pro-
yecto Y la estructura seguía los distintos proceso de negocio de la organización, con un res-
ponsable por área y con un equipo adicional encargado de diseñar la arquitectura del sistema.
Experiencias
Objetivo
Capacitar a los interesados (stakeholders) para que hagan contribuciones completas, consis-
tentes y balanceadas a la especificación.
Contexto
Para proyectos distribuidos, donde hay equipos independientes que tienen que desarrollar o
educir requisitos.
Problema
Los expertos en el dominio no pueden delegar la escritura de requisitos en otros, pero esos
expertos, en muchos casos, carecen del conocimiento sobre los métodos y herramientas
apropiadas para la escritura de requisitos.
Solución
Áreas de Aplicación
Se han utilizado con éxito en (i) proyectos largos, donde los equipos sufren frecuentes cam-
bios; (ii) por equipos de expertos en áreas muy especializadas y (iii) por interesados distri-
buidos espacialmente y con dificultades para reunirse.
Consecuencias
Un efecto positivo es que permiten la especificación remota, facilitando así los proyectos dis-
tribuidos. El problema es que una guía mal hecha conduce a especificaciones defectuosas.
Ejemplos
En el proyecto X los analistas desarrollaron una guía similar a los pasos seguidos para crear
un modelo de objetos. La guía preguntaba, de manera iterativa, por la funcionalidad de cier-
tos componentes de una planta industrial, por su equipamiento y por los recursos necesarios.
En el proyecto Y se creó una guía similar a los pasos seguidos por un analista para crear casos
de uso. En la guía se preguntaba a los interesados por determinadas tareas, la información
que requerían o producían tales tareas y la manera en que ellos introducían o recibían dicha
información.
Experiencias
Dado que las guías se utilizan en las fases tempranas del proyecto, se pueden producir inter-
cambios de información bastante útiles. En muchos proyectos, los analistas pudieron traducir
las especificaciones en modelos UML, sin demasiada dificultad.
Objetivo
Asegurar que los desarrolladores creen una versión del producto de acuerdo con la especifi-
cación.
Contexto
Problema
Los ingenieros de requisitos no pueden poner una marca al lado de cada requisito para indi-
car si se cumple o no, porque la especificación reutiliza requisitos asignados a distintos com-
ponentes (especificación redundante, pero inevitable, pues distintos componentes poseen
requisitos compartidos con otros componentes).
Solución
Usar listas de comprobación generadas dinámicamente que contengan los requisitos que con-
tribuyen a cada componente, en el formato “Componente+{Lista de requisitos asociados al
componente}”. Puede realizarse a partir de la base de datos de requisitos.
Áreas de Aplicación
La lista de comprobación beneficia a cualquier proyecto que reutilice requisitos en varios lu-
gares. Por ejemplo, proyectos que sigan un modelo incremental (donde los requisitos pasan
por sucesivas pruebas de aprobación) o para familias de productos.
Consecuencias
Ejemplos
En el proyecto X el equipo generó una serie de certificados de aprobación para revisar mode-
los CAD de distintos edificios, para asegurar que podían albergar distintas instalaciones. En
el proyecto Y se generaron listas de comprobación para distintos grupos de trabajo, donde
cada grupo era responsable de ciertas partes de cada requisito. El objetivo era comprobar si
los requisitos globales se cumplían en su totalidad.
Experiencias