3. Creando Requerimientos Eficaces
Razones Claves de los Fracasos de Proyectos
Requerimientos vagos, ambiguos, incorrectos, inconsistentes, y/o
incompletos.
No se involucra al usuario, el usuario no participa y no acepta los
resultados.
Muchos cambios a través de la vida del proyecto.
5. Creando Requerimientos Eficaces
¿Qué es un Requerimiento?
WEBSTER’S DICTIONARY:
“Something wanted or needed.”
“Algo deseado o necesario.”
IEEE STD. 610.12-1990, GLOSSARY OF SOFTWARE ENGINEERING
TERMINOLOGY:
“(1) A condition or capability needed by a user to solve a problem or
achieve an objective.”
“Una condición o capacidad necesaria por un usuario para
resolver un problema o alcanzar un objetivo.”
“(2) A condition or capability that must be met or possessed by a system ...
to satisfy a contract, standard, specification, or other formally imposed
document.”
“Una condición o capacidad que debe alcanzar o poseer un
sistema … para satisfacer un contrato, estándar,
especificación o un documento impuesto formalmente.”
6. Creando Requerimientos Eficaces
¿Qué es un Requerimiento Efectivo?
“Los Requerimientos son … las especificaciones de lo que debe ser
implementado. Una descripción de cómo el sistema, producto o
servicio debe comportarse con sus propiedades y atributos. Inclusive
considerando también las restricciones y premisas para el proceso
de desarrollo.”
7. Creando Requerimientos Eficaces
Tres Niveles de Requerimientos:
= Entrada
Requerimientos
de Negocio
= Documento Formal
Documento de Visión y Alcance
Requerimientos
de Usuario
Atributos de
Calidad
Documento de Visión y Alcance
Requerimientos
del Sistema
Reglas de
Negocio
Requerimientos
Funcionales
Interfaces
Externas
Restricciones
Especificación de Requerimientos de Software (SRS)
8. Creando Requerimientos Eficaces
Requerimiento de Negocio:
Están ligados a los objetivos de alto nivel de una organización,
proyecto o cliente, requiriendo un producto, servicio o sistema.
Son contenidos en el documento que describe la visión y alcance
de un proyecto.
Un Objetivo del Proyecto se convertirá en un Requerimiento de
Negocio.
9. Creando Requerimientos Eficaces
Requerimiento de Usuario:
Describe las tareas y procesos que se deben realizar para llevar a
buen término el producto o servicio.
Ejemplo:
Puede haber un Requerimiento de Usuario de tipo “Cambio
Organizacional”, de “Sistemas”, de “Procesos y Procedimientos”, etc.
10. Creando Requerimientos Eficaces
Requerimiento Funcional:
Define la funcionalidad detallada del sistema que los
desarrolladores o áreas deben construir o elaborar en el producto o
servicio, que habiliten al usuario para llevar a cabo sus tareas y de
este modo satisfacer las necesidades del requerimiento de usuario y
de negocio en consecuencia.
Los Requerimientos Funcionales deben escribirse sin utilizar
lenguaje técnico, ni incluir partes de la solución técnica, sólo deben
avocarse a lenguaje de negocio.
11. Creando Requerimientos Eficaces
Componentes de Ingeniería de Requerimientos:
Ingeniería de Requerimientos
Desarrollo de
Requerimientos
Obtención
Manejo de
Requerimientos
Análisis
(Entender)
Especificación
re-escribir
clarificar
re-evaluar
corregir y cerrar
diferencias
Verificación
12. Creando Requerimientos Eficaces
Componentes de Ingeniería de Requerimientos:
Desarrollo de Requerimientos:
Manejo de Requerimientos:
• Recabe las necesidades de los
usuarios que representan todas
las clases de usuario.
• Entienda las tareas y los objetivos
del usuario.
• Entienda la importancia relativa de
la calidad de los atributos.
• Negocie las prioridades de
implementación.
• Traduzca las necesidades del
usuario a especificaciones y a
modelos escritos.
• Revise los documentos de los
requerimientos.
• Establezca y mantenga un acuerdo
con el cliente sobre los requerimientos.
• Controle los requerimientos formales del
software.
• Procese los cambios de
requerimientos propuestos a
través de un control de cambios
formal.
• Mantenga los planes y productos
consistentes con los
Requerimientos cambiantes.
• Negocie nuevos compromisos
basados en el impacto de los
cambios.
La meta de la ingeniería de requerimientos
(IR) es entregar una especificación de
requisitos de software correcta y
completa.
14. Creando Requerimientos Eficaces
Escribiendo Requerimientos Eficaces:
Evalúe desde la perspectiva del desarrollador.
Documente en una forma jerárquica y estructurada:
-Incluya comportamientos esperados y condiciones de
excepción.
-No restrinja las opciones de diseño.
Mantenga cortas las frases y párrafos:
-Utilice gramática, ortografía y puntuación apropiada.
-Utilice los términos consistentemente.
-Defina los términos en un glosario.
Evite requerimientos redundantes.
Evite requerimientos contradictorio.
15. Creando Requerimientos Eficaces
Escribiendo Requerimientos Eficaces:
Escriba los requerimientos a un alto grado de detalle:
– Evite los párrafos largos.
– Tenga cuidado con el uso de "y" y "o", que sugieren que hay
requerimientos múltiples combinados.
– Evite listas en viñetas (Bullets).
– Identifique cada requerimiento.
– Organice en tablas los requerimientos similares.
Sea preciso y específico:
– Use “debería” o “debe”, no use “podría,” “pudo,” “pueda”.
– Evite palabras ambiguas: minimizar, maximizar, optimizar,
rápido, de uso amigable, fácil, simple, intuitivo, robusto,
avanzado, mejorado, eficiente, flexible, opcionalmente,
suficiente, razonable.
16. Creando Requerimientos Eficaces
Lineamientos de Identificadores:
Utilice una convención simple, consistente.
Utilice abreviaciones alfabéticas para categorizar por tipo (por ejem. BR para
“Business Requirements”).
Combine el identificador de categoría alfabético con un numero único.
Numere en incrementos de por lo menos 10 para permitir la inserción de
nuevos
requerimientos y elementos de rastreo subsecuentes resultado de requisiciones
de cambio durante el proyecto o mejoras en subsecuentes liberaciones de
mantenimiento (por ejemplo: BR010, BR020, BR030).
17. Creando Requerimientos Eficaces
Lineamientos de Identificadores:
Ejemplo de Esquema de Identificadores:
Requerimientos de Negocios
BR + número único
Requerimientos de Usuarios
UR + número único
Requerimientos de Sistema
SR + número único
Diseño de Arquitectura
AD + número único
Diseño Detallado
DD + número único
Componente de Aplicación
AC + número único
Caso de Prueba:
-Prueba de Aceptación de Usuario
UAT + número único
-Prueba de Aceptación Operacional
OAT + número único
-Prueba de Desempeño
PT + número único
-Prueba de Sistema
ST + número único
18. Creando Requerimientos Eficaces
Lineamientos de Identificadores:
Utilice una convención simple, consistente.
Utilice abreviaciones alfabéticas para categorizar por tipo (por ejemplo BR para
“Business Requirements”).
Combine el identificador de categoría alfabético con un numero único.
Numere en incrementos de por lo menos 10 para permitir la inserción de
nuevos
requerimientos y elementos de rastreo subsecuentes resultado de requisiciones
de cambio durante el proyecto o mejoras en subsecuentes liberaciones de
mantenimiento (por ejemplo: BR010, BR020, BR030).
19. Creando Requerimientos Eficaces
Mejores Prácticas para Documentar Requerimientos:
Inspección formal de documentos de requerimientos:
– Mucho más barato encontrar y corregir defectos en la etapa de
requerimientos.
– Incluir a los clientes, diseñadores, probadores.
– Utilice listas de comprobación de los errores comunes de
requerimientos.
Pruebas basadas en requerimientos:
– Derive los casos de prueba de los casos de uso y
requerimientos funcionales.
– Los casos de prueba cristalizan una visión de comportamiento
esperado.
– Revise los casos de prueba contra los requerimientos y modelos.
20. Creando Requerimientos Eficaces
Mejores Prácticas para Documentar Requerimientos:
Maneje las Versiones de los documentos de requerimientos.
Adopte y haga cumplir un Proceso de control de cambios de
requerimientos:
– Defina el procedimiento para proponer, evaluar, decidir
sobre cambios.
– Apoye el procedimiento con una herramienta de seguimiento de
defectos.
– Defina el estatus de una requisición de cambios y un modelo
estado-transición (antes-después).
– Establezca un Consejo de Control de Cambios para tomar
decisiones y que haga cumplir el proceso de control de cambios.
Análisis de impacto de cambios de requerimientos:
– Involucre al usuario, diseñador, probador.
– Identifique los componentes del sistema afectados por el cambio.
– Identifique las tareas que se tendrían que efectuar.
– Estime el esfuerzo, costo, otros impactos.
21. Creando Requerimientos Eficaces
Mejores Prácticas para Documentar Requerimientos:
Matriz de seguimiento de requerimientos:
- Ligar requerimientos a su origen.
- Ligar requerimientos a diseño, código, casos de prueba.
- Ayuda a evitar pasar por alto requerimientos durante la
construcción.
- Facilita el mantenimiento y análisis de impacto.
Seguimiento de estatus de requerimientos:
- Propuestos, aprobados, implementados, verificados,
suprimidos.
- Permite un más preciso seguimiento de estatus del proyecto.
Utilice una herramienta de manejo de requerimientos:
- Guarde los requerimientos y sus atributos en una base de datos.
-Defina ligas de seguimiento, formalice los requerimientos, de
seguimiento de estatus.