You are on page 1of 27

Procesos del Desarrollo de Software 3 Grado en Ingeniera Informtica

Cmo redactar requisitos


Curso 2010-2011
Jos Miguel Fuentes

Cmo redactar requisitos

ndice
La importancia del requisito en el ciclo de vida de desarrollo de software Cmo debera ser una especificacin de requisitos Estructura de la especificacin Especificaciones completas Especificaciones consistentes Una especificacin de requisitos no es una novela Redaccin del requisito Ejemplos Referencias

Cmo redactar requisitos

La importancia del requisito

Cmo redactar requisitos

Current situation in sw. development


Factores de xito
1. User Involvement 2. Executive Management Support 3. Clear Statement of Requirements 4. Proper Planning 5. Realistic Expectations 6. Smaller Project Milestones 7. Competent Staff 8. Ownership 9. Clear Vision & Objectives 10. Hard-Working, Focused Staff Other

% de respuestas
15.9% 15.9% 13.9% 13.0% 13.0% 9.6% 8.2% 8.2 % 7.7% 7.2% 5.3% 2.9 % 2.9% 2.4% 13.9%

Basados en requisitos

40% relacionados con requisitos


Cmo redactar requisitos 4

La importancia del requisito Cuanto antes mejor!!


No hay que esperar hasta las pruebas de aceptacin para determinar si hemos omitido algo o hemos entendido mal a un interesado Aplicar revisiones y tcnicas para detectar requisitos de baja calidad lo antes posible

Cmo redactar requisitos

Cmo debera ser una especificacin 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 interpretacin IEEE 830, 1998
Cmo redactar requisitos 6

Cmo debera ser una especificacin de requisitos


Sigla S M A R T Concepto eSpecfico Medible Alineado Realista limitado en Tiempo Descripcin Claros y simples: qu, por qu Se puede cuantificar y evaluar Con la estrategia o con el fin del sistema Puede conseguirse con un nmero de recursos lgico Establece un periodo de tiempo claro

"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"
Cmo redactar requisitos 7

Estructura de la especificacin 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 diseo Se verificar el software contra ellos

La correcta organizacin de los mismos es vital Claves:


Utiliza estndares de estructuracin de especificaciones de requisitos Aclara el objetivo global a cumplir por el sistema Emplea descripciones textuales y grficas Ordena y agrupa tus requisitos de forma lgica Relaciona unos requisitos con otros para facilitar su entendimiento Relaciona los requisitos con otros activos
Cmo redactar requisitos 8

Especificaciones completas Qu podemos hacer para no olvidar nada


Revisin por pares: junto con compaeros ms experimentados, expertos en la materia, cliente y otros interesados Emplear check-lists Comparar la especificacin contra taxonomas propias de la materia Reutilizar requisitos de proyectos previos Reutilizacin de grano grueso: componentes reutilizables Reutilizacin de grano fino: buscadores avanzados

Cmo redactar requisitos

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 Tcnicas automticas para su apoyo:
Comparacin de grafos semnticos Deteccin de unidades inconsistentes

Cmo redactar requisitos

10

Especificaciones consistentes Comparacin de grafos semnticos:


UR001: . UR023: El sistema deber enviar notificaciones semanales de nuestras ofertas a todos los clientes URxxx: UR842: La aplicacin debe ser capaz de notificar peridicamente a sus clientes sobre nuestras ofertas UR999:

Cmo redactar requisitos

11

Especificaciones consistentes Deteccin de unidades inconsistentes:


NASA y ESA reconoces la prdida de una sonda marciana por haber diseado dos mdulos empleando diferentes sistemas de medida Revisiones globales de la especificacin Deteccin automtica de unidades inconsistentes

Cmo redactar requisitos

12

Comparativa: Novela vs. Requisito


Mltiples estilos narrativos:
Ficcin Histrica Cientfica Cmica

Cmo redactar requisitos

13

Comparativa: Novela vs. Requisito


Mltiples estilos narrativos Nos deben contar una historia real Creble por todos los interesados El autor no debe expresar su punto de vista, sino la situacin real Capaz de ser diseada, implementada, probada, implantada, mantenida

Cmo redactar requisitos

14

Comparativa: Novela vs. Requisito


Abiertas a todo tipo de licencias poticas y adornos: Generalmente se viste de manera victoriana,
incluyendo un traje, botas de montar, y una ostentosa corbata de moo intrincadamente atada,

Cmo redactar requisitos

15

Comparativa: Novela vs. Requisito


Abiertas a todo tipo de licencias poticas y adornos
Licencias poticas las mnimas Textos simples y claros para facilitar su lectura y entendimiento Siguiendo un conjunto de gramticas fijas y simples Usando la voz activa en lugar del pasivo Evitando terminologa tcnica, abreviaturas Utilizando un vocabulario controlado, donde los trminos estn bien consensuados Prescindiendo de especulaciones

Cmo redactar requisitos

16

Comparativa: Novela vs. Requisito


Intentan contarnos la totalidad de la historia:
Qu ocurre Por qu ocurre Cmo se desenlaza la trama

Cmo redactar requisitos

17

Comparativa: Novela vs. Requisito


Intentan contarnos la totalidad de la historia

Slo nos deben contar parte de la historia Centrndose en el qu, e incluso, en el por qu Nunca debe tratar el cmo Debe evitarse terminologa propia de diseo, pseudocdigo

Cmo redactar requisitos

18

Comparativa: Novela vs. Requisito


Suelen jugar con nuestra imaginacin:
la verdad es que Robert pareca mayor, no aparentaba los 32 aos que tena. Poda verse el fuego desde la distancia triangular, a veces largamente triangular, reticulado, con largos dientes en el margen y con un tejido grueso

Cmo redactar requisitos

19

Comparativa: Novela vs. Requisito


Suelen jugar con nuestra imaginacin

No pueden jugar con nuestra imaginacin Todos los requisitos, adems de simples, deben ser fciles de medir Ambigedad cero, para que todos los interesados interpretemos cada requisito de una nica forma

Cmo 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

Cmo redactar requisitos

21

Comparativa: Novela vs. Requisito


A menudo, hacen referencias a otros textos No deben dar ningn conocimiento por sentado Deben ser autocontenidos En el mejor de los casos, acompaados incluso de glosarios

Cmo redactar requisitos

22

Comparativa: Novela vs. Requisito


Pueden mezclar diferentes hilos de argumento

Cmo redactar requisitos

23

Comparativa: Novela vs. Requisito


Pueden mezclar diferentes hilos de argumento Cada requisito debe ser atmico Una nica necesidad por requisito Orden lgico de interpretacin

Cmo redactar requisitos

24

Comparativa: Novela vs. Requisito


Se redactan con maravillosos procesadores de texto

Cmo 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 unvocamente Atomizarlos Organizarlos, categorizarlos y relacionarlos Reutilizarlos por separado o en conjunto Medir su calidad individual o global

Cmo redactar requisitos

26

Redaccin del requisito Claridad y ambigedad:


Puede medirse de forma clara y no ambigua la claridad y ambigedad de un requisito? En casa del herrero cuchillo de palo

Cmo redactar requisitos

27

Redaccin del requisito Emplear la estructura correcta:


Usuario Accin Objeto Cualificador El operador del Call Center deber ser capaz de ver detalles de cada compaa contactada en menos de dos segundos.

Cmo redactar requisitos

28

Redaccin del requisito


Tamao del requisito:
El justo, ni muy breve ni muy largo Tamao medido en caracteres, palabras, prrafos

Legibilidad:
La mxima 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: rpido, amigable

Cmo redactar requisitos

29

Redaccin del requisito


Sentencias subjetivas:
Evitar sentencias del tipo: yo creo, en mi opinin

Sentencias implcitas (empleo de pronombres):


Evitar el abuso de los pronombres A la hora de la lectura, podramos dudar en qu nombre sustituye cada nombre

Conectores:
El abuso de conectores puede indicar que se est incluyendo ms de una necesidad en el mismo requisito Tambin puede indicar un exceso de detalle

Negaciones:
Ms de una palabra negativa en la misma frase podra hacerla difcil de entender

Sentencias incompletas:
Evitar sentencias del tipo etctera, entre otros,

Trminos propios de diseo o de flujo:


Evitar trminos que denotan diseo como por ejemplo clave ajena, tabla hash

Cmo redactar requisitos

30

Redaccin del requisito


Nmero de trminos del dominio:
Un exceso de trminos del dominio puede indicar que se estn mezclando diferentes necesidades en el mismo requisito Tambin puede indicar que se est dando un excesivo detalle

Nmero de verbos principales (del dominio):


Un exceso de verbos del dominio puede indicar que se estn mezclando diferentes necesidades en el mismo requisito Tambin puede indicar que se est dando un excesivo detalle

Acrnimos y abreviaturas:
Slo permitidos si estn definidos en alguna seccin del documento de requisitos

Cmo redactar requisitos

31

Ejemplo 1
La informacin sobre los metadatos de los usuarios debera 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

Cmo redactar requisitos

32

Ejemplo 1
La informacin sobre los metadatos de los usuarios debera 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 Sustityalo por el imperativo

La informacin 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

Cmo redactar requisitos

33

Ejemplo 1

Cmo redactar requisitos

34

Ejemplo 2
El administrador deber ser capaz de insertar, borrar, mostrar y actualizar la informacin sobre los usuarios. Opcionalmente, deber tambin ser capaz de generar un informe y enviarlo por e-mail al cliente

Cmo redactar requisitos

35

Ejemplo 2
El administrador deber ser capaz de insertar, borrar, mostrar y actualizar la informacin sobre los usuarios. Opcionalmente, deber tambin 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

Cmo redactar requisitos

36

Ejemplo 2
El administrador deber ser capaz de insertar, borrar, mostrar y actualizar la informacin sobre los usuarios. Opcionalmente, deber tambin 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 aadir 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
Cmo redactar requisitos 37

Ejemplo 3
El sistema debe ser capaz de importar ficheros ABC. El proceso debe ser amigable y rpido para el usuario

Cmo redactar requisitos

38

Ejemplo 3
El sistema debe ser capaz de importar ficheros ABC. El proceso debe ser amigable y rpido para el usuario
Trminos como amigable y rpido son difciles de medir y, por lo tanto, imposible de probar de forma correcta Utilice unidades fsicas para medir cmo de rpido debe rendir un requisito Utilice otros medios (p.e. WAI AA) claramente definidos para indicar cmo de amigable o accesible debe ser un sistema

Cmo redactar requisitos

39

Ejemplo 3
El sistema debe ser capaz de importar ficheros ABC. El proceso debe ser amigable y rpido para el usuario
Trminos como amigable y rpido son difciles de medir y, por lo tanto, imposible de probar de forma correcta Utilice unidades fsicas para medir cmo de rpido debe rendir un requisito Utilice otros medios (p.e. WAI AA) claramente definidos para indicar cmo de amigable o accesible debe ser un sistema Utilice acrnimos slo cuando estn comnmente aceptados por todos los interesados

Cmo redactar requisitos

40

Ejemplo 4
El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema y ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail y envirselos a ellos

Cmo redactar requisitos

41

Ejemplo 4
El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema y ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail y envirselos a ellos
El uso apropiado de signos de puntuacin har los requisitos ms fciles de leer El nmero de slabas por palabra y palabras por frase es tambin un buen indicador de la legibilidad del requisito

El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema. ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail in envirselos a ellos
Cmo redactar requisitos 42

Ejemplo 4
El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema y ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail y envirselo a ellos
El exceso de pronombres puede hacer un requisito difcil de entender El ltimo ellos, se refiere al administrador o al cliente?

El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema y ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail in envirselo a los clientes

Cmo redactar requisitos

43

Ejemplo 4
El administrador deber ser capaz de crear facturas asociadas con las diferentes compaas que estn dadas de alta en el sistema y ste tambin deber estar al tanto de facturas impagas para que puedan generar un mail y envirselos 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 categora 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 pseudocdigo en sus requisitos Los requisitos extensos (en caracteres o prrafos) pueden indicar baja calidad
Cmo redactar requisitos 44

Ejemplo 5
Los clientes podrn remitir rdenes por Internet. Estas rdenes deben incluir fecha de envo y cantidad de artculos. Una vez que se recibe la orden, el equipo de empaquetado debe recoger todos los artculos y enviar un mail al cliente. Deben soportarse los protocolos http y https, as como los navegadores Explorer y Firefox. La resolucin mnima ser de 1024x768

Cmo redactar requisitos

45

Ejemplo 5
Los clientes podrn remitir rdenes por Internet. Estas rdenes deben incluir fecha de envo y cantidad de artculos. Una vez que se recibe la orden, el equipo de empaquetado debe recoger todos los artculos y enviar un mail al cliente. Deben soportarse los protocolos http y https, as como los navegadores Explorer y Firefox. La resolucin mnima ser de 1024x768
Un exceso de trminos diferentes en el mismo requisito puede indicar:
Que se estn 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
Cmo redactar requisitos 46

Ejemplo 6
En mi opinin, ningn cliente debera poder nunca enviar rdenes al equipo de empaquetado. Ya lo hicimos as en un proyecto hace tres aos y el resultado fue nefasto

Cmo redactar requisitos

47

Ejemplo 6
En mi opinin, ningn cliente debera poder nunca enviar rdenes al equipo de empaquetado. Ya lo hicimos as en un proyecto hace tres aos y el resultado fue nefasto
No haga explcita su opinin, limtese a escribir lo que el sistema debe hacer

Cmo redactar requisitos

48

Ejemplo 6
En mi opinin, ningn cliente debera poder nunca enviar rdenes al equipo de empaquetado. Ya lo hicimos as en un proyecto hace tres aos y el resultado fue nefasto
No haga explcita su opinin, limtese a escribir lo que el sistema debe hacer No mezcle demasiados trminos negativos, ya que a veces puede dificultar la lectura del requisito/restriccin

Cmo redactar requisitos

49

Ejemplo 6
En mi opinin, ningn cliente debera poder nunca enviar rdenes al equipo de empaquetado. Ya lo hicimos as en un proyecto hace tres aos y el resultado fue nefasto
No haga explcita su opinin, limtese a escribir lo que el sistema debe hacer No mezcle demasiados trminos negativos, ya que a veces puede dificultar la lectura del requisito/restriccin No divague al redactar el requisito. Limtese a indicar qu es lo que debe hacer el sistema

Un cliente no podr enviar rdenes directamente al equipo de empaquetado


Cmo redactar requisitos 50

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

Cmo 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, comnmente

Cmo 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, comnmente Verifique si cada asercin 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

Cmo redactar requisitos

53

Referencias Writing better requirements:


Ian F. Alexander & Richard Stevens Addison-Wesley, 2002

Cmo redactar requisitos

54

You might also like