Está en la página 1de 27

Procesos del Desarrollo de Software – 3º Grado en Ingeniería Informática

Cómo redactar requisitos

Curso 2010-2011

José Miguel Fuentes

Cómo redactar requisitos 1

Índice
• La importancia del requisito en el ciclo de vida de desarrollo de software
• Cómo debería ser una especificación de requisitos
• Estructura de la especificación
• Especificaciones completas
• Especificaciones consistentes
• Una especificación de requisitos no es una novela
• Redacción del requisito
• Ejemplos
• Referencias

Cómo redactar requisitos 2


La importancia del requisito

Cómo redactar requisitos 3

Current situation in sw. development

Factores de éxito % de respuestas Basados en requisitos


1. User Involvement 15.9%
15.9%
2. Executive Management Support 13.9%
3. Clear Statement of Requirements 13.0%
13.0%
4. Proper Planning 9.6%
5. Realistic Expectations 8.2%
8.2 %
6. Smaller Project Milestones 7.7%
7. Competent Staff 7.2%
8. Ownership 5.3%
9. Clear Vision & Objectives 2.9 %
2.9%
10. Hard-Working, Focused Staff 2.4%
Other 13.9%

40% relacionados
con requisitos
Cómo redactar requisitos 4
La importancia del requisito
• Cuanto antes… mejor!!
– No hay que esperar hasta las pruebas de aceptación para determinar si
hemos omitido algo o hemos entendido mal a un interesado
– Aplicar revisiones y técnicas para detectar requisitos de baja calidad lo
antes posible

Cómo redactar requisitos 5

Cómo debería ser una especificación de requisitos


• Completa: describe todas las necesidades relevantes para los
stakeholders
• Consistente: carece de conflictos entre requisitos
• Correcta: todo es pertinente y no contiene errores
• Modificable: facilidad para efectuar cambios de forma sencilla,
completa y consistente
• Verificable: existencia de un proceso acotado que determine si
el sistema final satisface el requisito
• Trazable: el origen del requisito está marcado de forma clara; y
se puede seguir el impacto del requisito a lo largo del SDLC
• Clara y no ambigua: una única interpretación

IEEE 830, 1998


Cómo redactar requisitos 6
Cómo debería ser una especificación de requisitos

Sigla Concepto Descripción


S eSpecífico Claros y simples: qué, por qué…
M Medible Se puede cuantificar y evaluar
A Alineado Con la estrategia o con el fin del sistema
R Realista Puede conseguirse con un número de recursos lógico
T limitado en Establece un periodo de tiempo claro
Tiempo

"I believe that this nation should


commit itself to achieving the goal,
before this decade is out, of landing
a man on the Moon and returning
him safely to Earth"

Cómo redactar requisitos 7

Estructura de la especificación
• Un proyecto mediano puede tener centenares de requisitos
• Estos requisitos no se escriben y se olvidan:
– Pueden ser firmados, con lo que son pieza clave en contratos
– Son la fuente del diseño
– Se verificará el software contra ellos
• La correcta organización de los mismos es vital
• Claves:
– Utiliza estándares de estructuración de especificaciones de requisitos
– Aclara el objetivo global a cumplir por el sistema
– Emplea descripciones textuales y gráficas
– Ordena y agrupa tus requisitos de forma lógica
– Relaciona unos requisitos con otros para facilitar su entendimiento
– Relaciona los requisitos con otros activos

Cómo redactar requisitos 8


Especificaciones completas
• ¿Qué podemos hacer para no olvidar nada…
– Revisión por pares: junto con compañeros más experimentados, expertos
en la materia, cliente y otros interesados
– Emplear check-lists
– Comparar la especificación contra taxonomías propias de la materia
– Reutilizar requisitos de proyectos previos
• Reutilización de grano grueso: componentes reutilizables
• Reutilización de grano fino: buscadores avanzados

Cómo redactar requisitos 9

Especificaciones consistentes
• El primer paso hacia la consistencia es evitar redundancia…
• … y las inconsistencias provocan retrabajo
• Las revisiones en grupo permiten detectar parte de estas
redundancias
• Técnicas automáticas para su apoyo:
– Comparación de grafos semánticos
– Detección de unidades inconsistentes

Cómo redactar requisitos 10


Especificaciones consistentes
• Comparación de grafos semánticos:
UR001: ….
UR023: El sistema deberá enviar notificaciones semanales de nuestras
ofertas a todos los clientes
URxxx: …
UR842: La aplicación debe ser capaz de notificar periódicamente a sus
clientes sobre nuestras ofertas
UR999: …

Cómo redactar requisitos 11

Especificaciones consistentes
• Detección de unidades inconsistentes:
• “NASA y ESA reconoces la pérdida de una sonda marciana por haber
diseñado dos módulos empleando diferentes sistemas de medida”
• Revisiones globales de la especificación
• Detección automática de unidades inconsistentes

Cómo redactar requisitos 12


Comparativa: Novela vs. Requisito

 Múltiples estilos narrativos:


 Ficción
 Histórica
 Científica
 Cómica
 …

Cómo redactar requisitos 13

Comparativa: Novela vs. Requisito

 Múltiples estilos narrativos

 Nos deben contar una historia real


 Creíble por todos los interesados

 El autor no debe expresar su punto de vista, sino


la situación real
 Capaz de ser diseñada, implementada, probada,
implantada, mantenida…

Cómo redactar requisitos 14


Comparativa: Novela vs. Requisito

 Abiertas a todo tipo de licencias poéticas y


adornos:
 “Generalmente se viste de manera victoriana,
incluyendo un traje, botas de montar, y una ostentosa
corbata de moño intrincadamente atada, …”

Cómo redactar requisitos 15

Comparativa: Novela vs. Requisito

 Abiertas a todo tipo de licencias poéticas y adornos

 Licencias poéticas las mínimas


 Textos simples y claros para facilitar su lectura y
entendimiento
 Siguiendo un conjunto de gramáticas fijas y simples

 Usando la voz activa en lugar del pasivo

 Evitando terminología técnica, abreviaturas …

 Utilizando un vocabulario controlado, donde los términos


estén bien consensuados
 Prescindiendo de especulaciones

Cómo redactar requisitos 16


Comparativa: Novela vs. Requisito

 Intentan contarnos la totalidad de la historia:


Qué ocurre


 Por qué ocurre


 Cómo se desenlaza la trama

Cómo redactar requisitos 17

Comparativa: Novela vs. Requisito

 Intentan contarnos la totalidad de la historia

Sólo nos deben contar parte de la historia


 Centrándose en el qué, e incluso, en el por
qué
 Nunca debe tratar el cómo

 Debe evitarse terminología propia de diseño,


pseudocódigo…

Cómo redactar requisitos 18


Comparativa: Novela vs. Requisito

 Suelen jugar con nuestra imaginación:


 “…la verdad es que Robert parecía mayor, no
aparentaba los 32 años que tenía.”
 “Podía verse el fuego desde la distancia…”

 “… triangular, a veces largamente triangular, reticulado,


con largos dientes en el margen y con un tejido grueso
…”

Cómo redactar requisitos 19

Comparativa: Novela vs. Requisito

 Suelen jugar con nuestra imaginación

 No pueden jugar con nuestra imaginación


 Todos los requisitos, además de simples, deben
ser fáciles de medir
 Ambigüedad cero, para que todos los
interesados interpretemos cada requisito de una
única forma

Cómo redactar requisitos 20


Comparativa: Novela vs. Requisito

 A menudo, pueden hacer referencias a otros textos:


 Otros tomos de la novela

Situaciones de otras novelas del autor, o personajes de otras


novelas
 Al conocimiento general que se supone a nuestros lectores

 …

Cómo redactar requisitos 21

Comparativa: Novela vs. Requisito

 A menudo, hacen referencias a otros textos

No deben dar ningún conocimiento por sentado


 Deben ser autocontenidos

 En el mejor de los casos, acompañados incluso de


glosarios

Cómo redactar requisitos 22


Comparativa: Novela vs. Requisito

 Pueden mezclar diferentes hilos de argumento

Cómo redactar requisitos 23

Comparativa: Novela vs. Requisito

 Pueden mezclar diferentes hilos de argumento

 Cada requisito debe ser atómico


 Una única necesidad por requisito

 Orden lógico de interpretación

Cómo redactar requisitos 24


Comparativa: Novela vs. Requisito

 Se redactan con maravillosos procesadores de


texto

Cómo redactar requisitos 25

Comparativa: Novela vs. Requisito

 Se redactan con maravillosos procesadores de


texto

 Deben escribirse con herramientas


especializadas en estos fines
 Con ello conseguimos:
 Identificarlos unívocamente
 Atomizarlos

 Organizarlos, categorizarlos y relacionarlos

 Reutilizarlos por separado o en conjunto

 Medir su calidad individual o global

Cómo redactar requisitos 26


Redacción del requisito
• Claridad y ambigüedad:
– ¿Puede medirse de forma clara y no ambigua la claridad y ambigüedad
de un requisito?
– “En casa del herrero… cuchillo de palo”

Cómo redactar requisitos 27

Redacción del requisito


• Emplear la estructura correcta:

Usuario El operador del Call Center…


Acción … deberá ser capaz de ver…
Objeto … detalles de cada compañía contactada…
Cualificador … en menos de dos segundos.

Cómo redactar requisitos 28


Redacción del requisito
• Tamaño del requisito:
– El justo, ni muy breve ni muy largo
– Tamaño medido en caracteres, palabras, párrafos
• Legibilidad:
– La máxima posible
– Procesadores como MS Word miden la legibilidad de los textos
• Tiempo verbal:
– Imperativo en lugar de condicional
• Modo verbal:
– Activa en lugar de pasiva
• Sentencias opcionales y especulativas:
– Evitar sentencias del estilo “quizá…” , “posiblemente…”, “usualmente…”, “casi siempre…”
• Expresiones ambiguas:
– Evitar expresiones del estilo: “rápido”, “amigable”…

Cómo redactar requisitos 29

Redacción del requisito


• Sentencias subjetivas:
– Evitar sentencias del tipo: “yo creo…”, “en mi opinión…”
• Sentencias implícitas (empleo de pronombres):
– Evitar el abuso de los pronombres
– A la hora de la lectura, podríamos dudar en qué nombre sustituye cada nombre
• Conectores:
– El abuso de conectores puede indicar que se está incluyendo más de una necesidad en el
mismo requisito
– También puede indicar un exceso de detalle
• Negaciones:
– Más de una palabra negativa en la misma frase podría hacerla difícil de entender
• Sentencias incompletas:
– Evitar sentencias del tipo “etcétera…”, “…entre otros…”, “…”
• Términos propios de diseño o de flujo:
– Evitar términos que denotan diseño como por ejemplo “clave ajena”, “tabla hash”…

Cómo redactar requisitos 30


Redacción del requisito
• Número de términos del dominio:
– Un exceso de términos del dominio puede indicar que se están mezclando diferentes
necesidades en el mismo requisito
– También puede indicar que se está dando un excesivo detalle
• Número de verbos principales (del dominio):
– Un exceso de verbos del dominio puede indicar que se están mezclando diferentes
necesidades en el mismo requisito
– También puede indicar que se está dando un excesivo detalle
• Acrónimos y abreviaturas:
– Sólo permitidos si están definidos en alguna sección del documento de requisitos

Cómo redactar requisitos 31

Ejemplo 1
• La información sobre los metadatos de los usuarios debería
almacenarse en memoria dentro de una tabla hash, o bien en
una tabla de base de datos, con una clave ajena a la tabla de
Usuarios

Cómo redactar requisitos 32


Ejemplo 1
• La información sobre los metadatos de los usuarios debería
almacenarse en memoria dentro de una tabla hash, o bien en
una tabla de base de datos, con una clave ajena a la tabla de
Usuarios
– Evite el uso del tiempo condicional
– Sustitúyalo por el imperativo
• La información sobre los metadatos de los usuarios deberá
almacenarse en memoria dentro de una tabla hash, o bien en
una tabla de base de datos, con una clave ajena a la tabla de
Usuarios

Cómo redactar requisitos 33

Ejemplo 1

Cómo redactar requisitos 34


Ejemplo 2
• El administrador deberá ser capaz de insertar, borrar, mostrar y
actualizar la información sobre los usuarios. Opcionalmente,
deberá también ser capaz de generar un informe y enviarlo por
e-mail al cliente

Cómo redactar requisitos 35

Ejemplo 2
• El administrador deberá ser capaz de insertar, borrar, mostrar y
actualizar la información sobre los usuarios. Opcionalmente,
deberá también ser capaz de generar un informe y enviarlo por
e-mail al cliente

– La opcionalidad debe expresarse mediante un atributo, y nunca como


texto dentro del requisito

Cómo redactar requisitos 36


Ejemplo 2

• El administrador deberá ser capaz de insertar, borrar, mostrar y


actualizar la información sobre los usuarios. Opcionalmente, deberá
también ser capaz de generar un informe y enviarlo por e-mail al
cliente

– La opcionalidad debe expresarse mediante un atributo, y nunca como texto


dentro del requisito
– Deberá usar un requisito individual para cada necesidad. Muchos verbos
concentrados en un requisito pueden implicar la mezcla de diferentes
necesidades

• El Administrador deberá ser capaz de añadir usuarios


• El Administrador deberá ser capaz de borrar usuarios
• El Administrador deberá ser capaz de mostrar usuarios
• El Administrador deberá ser capaz de actualizar usuarios
• El Administrador podrá generar un informe para enviarlo por e-mail al
cliente
Cómo redactar requisitos 37

Ejemplo 3
• El sistema debe ser capaz de importar ficheros ABC. El proceso
debe ser amigable y rápido para el usuario

Cómo redactar requisitos 38


Ejemplo 3
• El sistema debe ser capaz de importar ficheros ABC. El proceso
debe ser amigable y rápido para el usuario

– Términos como ‘amigable’ y ‘rápido’ son difíciles de medir y, por lo tanto,


imposible de probar de forma correcta
– Utilice unidades físicas para medir cómo de rápido debe rendir un
requisito
– Utilice otros medios (p.e. WAI AA) claramente definidos para indicar cómo
de amigable o accesible debe ser un sistema

Cómo redactar requisitos 39

Ejemplo 3
• El sistema debe ser capaz de importar ficheros ABC. El proceso
debe ser amigable y rápido para el usuario

– Términos como ‘amigable’ y ‘rápido’ son difíciles de medir y, por lo tanto,


imposible de probar de forma correcta
– Utilice unidades físicas para medir cómo de rápido debe rendir un
requisito
– Utilice otros medios (p.e. WAI AA) claramente definidos para indicar cómo
de amigable o accesible debe ser un sistema
– Utilice acrónimos sólo cuando estén comúnmente aceptados por todos los
interesados

Cómo redactar requisitos 40


Ejemplo 4
• El administrador deberá ser capaz de crear facturas asociadas
con las diferentes compañías que estén dadas de alta en el
sistema y éste también deberá estar al tanto de facturas
impagas para que puedan generar un mail y enviárselos a ellos

Cómo redactar requisitos 41

Ejemplo 4
• El administrador deberá ser capaz de crear facturas asociadas
con las diferentes compañías que estén dadas de alta en el
sistema y éste también deberá estar al tanto de facturas
impagas para que puedan generar un mail y enviárselos a ellos
– El uso apropiado de signos de puntuación hará los requisitos más fáciles
de leer
– El número de sílabas por palabra y palabras por frase es también un buen
indicador de la legibilidad del requisito

• El administrador deberá ser capaz de crear facturas asociadas


con las diferentes compañías que estén dadas de alta en el
sistema. Éste también deberá estar al tanto de facturas impagas
para que puedan generar un mail in enviárselos a ellos

Cómo redactar requisitos 42


Ejemplo 4
• El administrador deberá ser capaz de crear facturas asociadas
con las diferentes compañías que estén dadas de alta en el
sistema y éste también deberá estar al tanto de facturas
impagas para que puedan generar un mail y enviárselo a ellos

– El exceso de pronombres puede hacer un requisito difícil de entender


– El último ‘ellos’, ¿se refiere al administrador o al cliente?
• El administrador deberá ser capaz de crear facturas asociadas
con las diferentes compañías que estén dadas de alta en el
sistema y éste también deberá estar al tanto de facturas
impagas para que puedan generar un mail in enviárselo a los
clientes

Cómo redactar requisitos 43

Ejemplo 4

• El administrador deberá ser capaz de crear facturas asociadas


con las diferentes compañías que estén dadas de alta en el
sistema y éste también deberá estar al tanto de facturas impagas
para que puedan generar un mail y enviárselos a ellos.
El proceso para localizar impagados es el siguiente:
1. Iterar sobre todas las facturas
2. Si Fecha_Factura + CondicionesPago es mayor que la fecha actual,
entonces:
• Si la categoría del cliente es A, entonces se le deja un mes extra
• SI no, mientras la factura no esté pagada no se le permite generar nuevas facturas y se
le enviará un mail cada semana

– Evite el uso de pseudocódigo en sus requisitos


– Los requisitos extensos (en caracteres o párrafos) pueden indicar baja
calidad

Cómo redactar requisitos 44


Ejemplo 5
• Los clientes podrán remitir órdenes por Internet. Estas órdenes
deben incluir fecha de envío y cantidad de artículos.
Una vez que se recibe la orden, el equipo de empaquetado debe
recoger todos los artículos y enviar un mail al cliente.
Deben soportarse los protocolos http y https, así como los
navegadores Explorer y Firefox. La resolución mínima será de
1024x768

Cómo redactar requisitos 45

Ejemplo 5

• Los clientes podrán remitir órdenes por Internet. Estas órdenes


deben incluir fecha de envío y cantidad de artículos.
Una vez que se recibe la orden, el equipo de empaquetado debe
recoger todos los artículos y enviar un mail al cliente.
Deben soportarse los protocolos http y https, así como los
navegadores Explorer y Firefox. La resolución mínima será de
1024x768

– Un exceso de términos diferentes en el mismo requisito puede indicar:


• Que se están mezclando diferentes necesidades en un único requisito
• Que se está proporcionando demasiado detalle
– Igualmente, muchos verbos pueden involucrar diferentes necesidades
mezcladas en un único requisito
Cómo redactar requisitos 46
Ejemplo 6
• En mi opinión, ningún cliente debería poder nunca enviar
órdenes al equipo de empaquetado. Ya lo hicimos así en un
proyecto hace tres años y el resultado fue nefasto

Cómo redactar requisitos 47

Ejemplo 6
• En mi opinión, ningún cliente debería poder nunca enviar
órdenes al equipo de empaquetado. Ya lo hicimos así en un
proyecto hace tres años y el resultado fue nefasto

– No haga explícita su opinión, limítese a escribir lo que el sistema debe


hacer

Cómo redactar requisitos 48


Ejemplo 6
• En mi opinión, ningún cliente debería poder nunca enviar
órdenes al equipo de empaquetado. Ya lo hicimos así en un
proyecto hace tres años y el resultado fue nefasto

– No haga explícita su opinión, limítese a escribir lo que el sistema debe


hacer
– No mezcle demasiados términos negativos, ya que a veces puede
dificultar la lectura del requisito/restricción

Cómo redactar requisitos 49

Ejemplo 6

• En mi opinión, ningún cliente debería poder nunca enviar


órdenes al equipo de empaquetado. Ya lo hicimos así en un
proyecto hace tres años y el resultado fue nefasto

– No haga explícita su opinión, limítese a escribir lo que el sistema debe


hacer
– No mezcle demasiados términos negativos, ya que a veces puede dificultar
la lectura del requisito/restricción
– No divague al redactar el requisito. Limítese a indicar qué es lo que debe
hacer el sistema

• Un cliente no podrá enviar órdenes directamente al equipo de


empaquetado
Cómo redactar requisitos 50
Ejemplo 7
• Generalmente, el sistema debe ser capaz de terminar el proceso
de rastreo sin sobrecargar excesivamente el servidor

Cómo redactar requisitos 51

Ejemplo 7
• Generalmente, el sistema debe ser capaz de terminar el proceso
de rastreo sin sobrecargar excesivamente el servidor

– Evite expresiones vagas como: ‘generalmente’, ‘comúnmente’

Cómo redactar requisitos 52


Ejemplo 7
• Generalmente, el sistema debe ser capaz de terminar el proceso
de rastreo sin sobrecargar excesivamente el servidor

– Evite expresiones vagas como: ‘generalmente’, ‘comúnmente’


– Verifique si cada aserción puede ser medida de forma sencilla

• El sistema debe ser capaz de terminar el proceso de rastreo en


un tiempo inferior a 2 segundos y sin que el proceso sobrepase
los 250 MB de memoria

Cómo redactar requisitos 53

Referencias
• Writing better requirements:
– Ian F. Alexander & Richard Stevens
– Addison-Wesley, 2002

Cómo redactar requisitos 54

También podría gustarte