Está en la página 1de 33

Ingeniería del Software

Tema 2. Requisitos y Análisis


Universidad de Alcalá
Contenidos
 Importancia de los requisitos
 Conceptos fundamentales
 Características de los requisitos
 Requisitos funcionales y no funcionales
 Actividades de requisitos
 Gestión del proceso de requisitos

2 Módulo II. Requisitos y Análisis


Requisitos: tarea difícil
Lo más complicado de construir un sistema software es decidir
exactamente qué construir [...]

Ninguna otra parte del trabajo afecta tan negativamente al


resultado si se hace mal.

Ninguna otra es tan difícil de rectificar.

—F. P. Brooks

75% - 85% de los fallos que aparecen en un software se deben a errores cometidos en las
actividades de requisitos o durante el diseño del sistema

3 Módulo II. Requisitos y Análisis


Clave en el éxito del proyecto
 Proyecto software: transformación de un conjunto de
requisitos en un sistema informático
 El sistema fracasará si no satisface las expectativas:
 descripción inadecuada
 se desvía de lo que el cliente o los usuarios desean

 Establecer con exactitud los requisitos de un sistema es


esencial para el éxito de un desarrollo de software

4 Módulo II. Requisitos y Análisis


Factores que influyen en los requisitos

Complejidad Factores
del problema relacionados
a resolver con el cliente

Dificultades Existencia de
de requisitos
comunicación ocultos

Naturaleza cambiante de los requisitos


5 Módulo II. Requisitos y Análisis
Conceptos fundamentales
 Requisito software: propiedad que un software ha de tener
para resolver un cierto problema
 Atributo: información complementaria sobre un requisito
que se utiliza para su gestión que se incluye en su
especificación
 Si es funcional o no
 Historia de cambios
 Fuente del requisito
 Prioridad
 Dificultad
 Estado
 …
6 Módulo II. Requisitos y Análisis
Actividades de requisitos

Especificación de
Requisitos del
Software

7 Módulo II. Requisitos y Análisis


Actores
 Roles definidos que una persona puede desempeñar en la fase
de requisitos:

 Usuarios: operan con el software


 Clientes: tienen interés en adquirir el software
 Analistas de mercado: identifican requisitos a través de
potenciales clientes
 Reguladores: autoridades que establecen normativas específicas o
requisitos legales
 Ingenieros del software: tienen intereses en el software en sí
 Ej. en la reutilización de ciertos componentes para futuros
proyectos

8 Módulo II. Requisitos y Análisis


Características de los requisitos
 Verificable: es posible comprobar que el software da
cumplimiento al requisito tal y como fue especificado.
 Para ello, especificarlos de manera cuantificable
 Propiedades no esenciales (externas):
 Priorizable
 Que pueda hacerse un seguimiento del mismo
 Identificable de manera única
 Cuantificable

El tiempo de respuesta menor a La respuesta ha de ser


2 segundos rápida

9 Módulo II. Requisitos y Análisis


Tipos de requisitos
 Funcionales: funciones, servicios o tareas a llevar a cabo
 Son más fácilmente verificables, en general
 No funcionales: aspectos técnicos que debe incluir el sistema
desarrollado
 Restricciones: limitaciones a que se enfrentan los
desarrolladores del sistema (ej. el sistema operativo del
entorno del usuario)
 Calidades: características que importan a los clientes y
usuarios, relevantes para su satisfacción con el sistema final
(rendimiento, fiabilidad o disponibilidad del sistema)
 En general, son más difíciles de verificar

10 Módulo II. Requisitos y Análisis


Clasificación de requisitos no funcionales
 Requisitos del producto: detallan limitaciones o comportamientos
exigidos al producto resultante del desarrollo.
 Cantidad de memoria requerida
 Velocidad de respuesta en operaciones interactivas
 Tasa de fallos…
 Requisitos de la organización: relacionados con las normativas de
funcionamiento de la organización que lleva a cabo el desarrollo (y/o del
cliente), sus procedimientos y políticas.
 Estándares de desarrollo
 Documentación a entregar junto con el producto
 Plazos de entrega
 Lenguajes de programación a utilizar …
 Requisitos externos: cubren aspectos externos al sistema y a su proceso
de desarrollo.
 Interoperabilidad con otros sistemas
 Requisitos legales, éticos o impuestos por organismos reguladores
 …

11 Módulo II. Requisitos y Análisis


Requisitos funcionales y no funcionales
 Se deben poder imprimir los contratos de alquiler
 Deben almacenarse todas las facturas emitidas por el sistema
 El área de trabajo debe poder ampliarse o reducirse
 El lenguaje de programación a utilizar será obligatoriamente Java
 El sistema debe almacenar los datos de todos los clientes
 El código debe ponerse a disposición de la comunidad
 Además de operar desde la interfaz de ventanas, debe facilitarse
también una interfaz de comandos
 El cliente podrá comenzar a utilizar los servicios contratados en
menos de 24 horas
 Los datos se almacenarán según las directrices de la LOPD española

12 Módulo II. Requisitos y Análisis


Requisitos funcionales y no funcionales

F  Se deben poder imprimir los contratos de alquiler


F  Deben almacenarse todas las facturas emitidas por el sistema
NFP  El área de trabajo debe poder ampliarse o reducirse
NFO  El lenguaje de programación a utilizar será obligatoriamente Java
F  El sistema debe almacenar los datos de todos los clientes
NFO  El código debe ponerse a disposición de la comunidad
NFO  Además de operar desde la interfaz de ventanas, debe facilitarse
también una interfaz de comandos
NFP  El cliente podrá comenzar a utilizar los servicios contratados en
menos de 24 horas
NFE  Los datos se almacenarán según las directrices de la LOPD española
¡Determinar su tipo no es tan sencillo!

13 Módulo II. Requisitos y Análisis


Requisitos no funcionales: Clasificación
exhaustiva

14 Módulo II. Requisitos y Análisis


Actividades de requisitos: interrelaciones

15 Módulo II. Requisitos y Análisis


Obtención
 Objetivo: conocer los requisitos del sistema a desarrollar y
establecer sus fronteras
 Acciones a llevar a cabo:
1. Determinar las fuentes de información de las que se
obtendrán los requisitos
2. Establecer las técnicas de obtención de requisitos a utilizar
• Entrevistas y cuestionarios
• Escenarios
• Prototipos
• Reuniones de grupo
• Observación “in situ”
3. Glosario: definiendo términos a usar en el proyecto de forma
consensuada
16 Módulo II. Requisitos y Análisis
Análisis
 Objetivo: describir las tareas que deben llevarse a cabo para
examinar los requisitos, delimitarlos y definirlos con precisión
 Enlaza la definición de alto nivel del sistema desde la perspectiva del
usuario –visión externa–, con el diseño del software que permitirá
implementar dicho sistema –visión interna –.

 Acciones a llevar a cabo:


1. Elaborar los requisitos del sistema para obtener, a partir de
ellos, los requisitos del software a desarrollar
2. Detectar requisitos ambiguos, duplicados o incoherentes
3. Clasificar y priorizar los requisitos: categorías de requisitos

17 Módulo II. Requisitos y Análisis


Análisis
4. Toma de decisiones de compromiso en los casos de conflictos
entre varios requisitos (negociación)
5. Establecer un modelo conceptual de los requisitos:
 A menudo se plasman en modelos visuales
 Para crear estos modelos es necesario un lenguaje y un conjunto de reglas que
establezcan cómo se han de usar los elementos del lenguaje
 Casos de uso
 Diagramas de clases de análisis UML
 Diagramas Entidad-Relación
 Notaciones formales
 Etc.
6. Situar los requisitos en la arquitectura del sistema

18 Módulo II. Requisitos y Análisis


Especificación
 Objetivo: describir completamente los requisitos del sistema a
desarrollar
 Implica con frecuencia la construcción de un modelo (o varios) del
sistema a construir desde el punto de vista de los usuarios del
sistema, que incluya los requisitos obtenidos.
 De manera generalizada, los requisitos se plasman en un documento
denominado especificación de requisitos del software (SRS)
 Importancia: documento contractual
 En proyectos complejos, 3 documentos:
 Documento de definición del sistema
 Documento de requisitos del sistema
 Documento de Especificación de Requisitos del Software (SRS)

19 Módulo II. Requisitos y Análisis


Especificación: estructura del SRS

20 Módulo II. Requisitos y Análisis


Validación
 Objetivo: examinar si los documentos de requisitos definen el software
que los usuarios esperan y no otro.
 Un grupo de revisores con representación de los actores más significativos
cumplimenta una tabla con sus análisis
 Objetivo: buscar errores y contradicciones en los requisitos,
descripciones poco claras y desviaciones de las prácticas estándar

21 Módulo II. Requisitos y Análisis


Ejemplo

“Queremos que se guarden todas las


facturas”

Obtención

22 Módulo II. Requisitos y Análisis


Ejemplo
 ¿Qué entiende el cliente / usuario por factura? ¿De
qué datos estamos hablando?
 ¿Qué tipo de requisito es este? ¿Puede dividirse en
varios o es único?
 ¿Colisiona con otros?
 ¿Es esencial hacer esto?¿Qué prioridad tiene?
 ¿Procede hacerlo o vamos a proponer alguna
alternativa?
 ¿En qué parte del sistema se incluirá?

Análisis

23 Módulo II. Requisitos y Análisis


Ejemplo

Especificación

24 Módulo II. Requisitos y Análisis


Ejemplo

Validación

25 Módulo II. Requisitos y Análisis


Gestión del proceso de requisitos
 Seguimiento + Métricas + Herramientas de gestión

 Seguimiento: más improbable que el sistema final tenga inconsistencias


por culpa de cambios realizados sin un control exhaustivo
 Los requisitos evolucionan iterativamente hasta alcanzar un nivel de calidad
y detalle suficiente que permita iniciar los trabajos de diseño de las
funcionalidades que les dan soporte.
 Para facilitar la comprensión completa de todos los aspectos asociados con
los requisitos han de definirse líneas base
 Una línea base es un conjunto de requisitos que deberá contener una
entrega del producto

26 Módulo II. Requisitos y Análisis


Seguimiento de los requisitos
 Matriz de seguimiento: tabla donde se relacionan dos documentos, los
cuales pertenecen probablemente a etapas distintas del desarrollo.
 Su utilización más frecuente es seguir la pista de los requisitos a lo
largo de todo el desarrollo,
 Fundamentalmente en diseño, plan de pruebas y casos de prueba
 Hace corresponder los requisitos con los componentes software que
los implementarán, y especialmente con los casos de prueba

27 Módulo II. Requisitos y Análisis


Seguimiento de los requisitos

28 Módulo II. Requisitos y Análisis


Seguimiento de requisitos

 ¿Qué ocurre si hay un cambio en un requisito?


 Ejemplo de proceso de gestión de cambios:
 Se remite una solicitud de cambio
 Se analiza el impacto y esfuerzo del cambio
 El CCB (control change board) revisa el cambio y toma una decisión
sobre el mismo (acceptar, rechazar, etc)
 Se asigna el cambio a un responsable de cambio
 El responsable lleva a cabo el cambio
 Se valida el cambio
 Se cierra la solicitud de cambio

29 Módulo II. Requisitos y Análisis


Métricas de requisitos
mide deseos del cliente

 Es posible tomar medidas de los requisitos software que indiquen el


alcance del proyecto, su crecimiento potencial, su estabilidad y progreso.
 Las medidas de requisitos son únicas: caracterizan el espacio del problema
 Otras medidas del desarrollo caracterizan el espacio de la solución.
 Ejemplos:
 Número de requisitos nuevos (o modificados) por mes. Refleja la estabilidad o
inestabilidad del desarrollo.
 Indicador de cobertura: porcentaje de requisitos actualmente incluidos en
alguna línea base que han sido soportados por un componente.
 Número de requisitos derivados a partir de cada requisito inicial: muestra la
explosión de requisitos consecuencia de una incorrecta especificación o de su
descripción a un nivel de detalle incorrecto.

30 Módulo II. Requisitos y Análisis


Herramientas de requisitos
 El tamaño y complejidad de los desarrollos ha convertido el uso de
herramientas en algo esencial
 Las herramientas de gestión de requisitos:
 Facilitan un modo de seguimiento de los cambios que se
producen durante el ciclo de vida del proyecto
 Permiten automatizar algunas de las tareas relacionadas con los
cambios y el seguimiento de requisitos (ej. identificación,
medición…)
 Mejoran la productividad y la calidad en el desarrollo
 Permiten gestionar versiones y definir líneas base
 …/…

31 Módulo II. Requisitos y Análisis


Herramientas de requisitos
 …/…
 Almacenan atributos de los requisitos y permiten agruparlos
 Permiten estudiar el impacto de los cambios
 Permiten enlazar requisitos con otros artefactos (documento,
casos de uso, etc.)
 Permiten generar informes automáticos

32 Módulo II. Requisitos y Análisis


Referencias
 Sánchez, Sicilia, Rodríguez (2011). Ingeniería del Software, un
enfoque desde la guía SWEBOK, Ed. Garceta. Cap. 4.
 Sommerville, Ian (2011). Ingeniería del Software, 9ª ed. Pearson.
Cap. 4.
 SWEBOK 2004: Software Engineering Book of Knowledge.
http://www.computer.org/portal/web/swebok
 Moreira (2005). ABCs of Requirements Engineering, CM
Crossroads, Junio 2005.
http://www.cmcrossroads.com/implementation-excellence/6684-
abcs-of-requirements-engineering
 INTECO. Guía avanzada de Gestión de Requisitos. 2008.

33 Módulo II. Requisitos y Análisis

También podría gustarte