1. M.Sc. Javier David Chávez Centeno
DEPARTAMENTO ACADÉMICO DE INFORMÁTICA
jdchavez5@hotmail.com
CUSCO – PERÚ
2013
2. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 2Dpto Académico de Informática
Requerimientos
«Sin análisis de requisitos o sin diseño, programar es el
arte de crear errores en un documento de texto vacío»
Louis Srygley
3. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 3Dpto Académico de Informática
CONTENIDO
5.1 Requerimientos del software
Ingeniería de requerimientos-requerimiento-Stakeholders
Tipos de requerimientos
Requerimientos Funcionales-NoFuncionales
Los Requerimientos
5.2 Proceso de Ingeniería de Requerimientos
Proceso de Desarrollo de Requisitos
a) Descubrimiento de Requisitos
b) Análisis de Requisitos
c) Especificación de Requisitos
d) Validación de Requisitos
Gestión de Requisitos
Bibliografía - Lecturas
4. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 4Dpto Académico de Informática
¿Qué Significa?
«No tenemos tiempo para delinear qué es lo que necesitamos
construir. Si nosotros no empezamos a codificar ahora mismo,
…»
«No tenemos tiempo para completar los
requerimientos. Si nosotros no empezamos
a codificar ahora mismo, nunca cumpliremos
nuestra fecha de entrega».
Para crear una solución, primero es necesario tener claro y
comprender el problema…
5. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 5Dpto Académico de Informática
Ingeniería de Requerimientos
Es el proceso de descubrir, analizar, documentar y verificar
los requisitos del software. Pretende definir los
requerimientos del sistema que se está construyendo.
¿Qué es un Requerimiento?
• Descripción de un servicio que debe proporcionar el
sistema o de una restricción de éste.
• Establecen lo que debe hacer el sistema y definen las
restricciones sobre su operación e implementación.
• Son una descripción de las necesidades o deseos de un
producto.
Stakeholders
Cualquier persona que tiene influencia directa o indirecta
sobre los requerimientos del sistema.
6. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 6Dpto Académico de Informática
Un Requisito…
…es algo que el sistema debe ser capaz de
hacer (o una restricción que debe
cumplir) para que pueda cumplir su
propósito y satisfacer a sus usuarios.
Los requerimientos se concentran en el
cliente y el problema a resolver.
¡Los requisitos se concentran en que debe
hacer el sistema, no en cómo debe
hacerlo!
7. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 7Dpto Académico de Informática
Requerimientos del usuario (es muy general)
Son enunciados, en lenguaje natural y en diagramas,
acerca de qué servicios esperan los usuarios del sistema, y
de las restricciones bajo las cuales debe funcionar.
Requerimientos del sistema (más específica)
Son descripciones más detalladas de las funciones, los
servicios y las restricciones operacionales del sistema de
software que se implementará. Puede formar parte del
contrato entre el comprador del sistema y los
desarrolladores del software.
8. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 8Dpto Académico de Informática
Definición del requerimiento del usuario
Especificación de los requerimientos del sistema
1. El Sistema de Administración de Pacientes para apoyar la atención a la
salud mental elaborará mensualmente informes administrativos que
revelen el costo de los medicamentos prescritos por cada clínica
durante este mes.
1.1 En el último día laboral de cada mes se redactará un resumen de los
medicamentos prescritos, su costo y las clínicas que los prescriben.
1,2 Se realizará un reporte para cada clínica junto con los nombres de
cada medicamento, el número de prescripciones, las dosis prescritas
y el costo total de los medicamentos prescritos.
1.3 Si los medicamentos están disponibles en diferentes dosis (por
ejemplo, 10 mg, 20 mg) se harán informes por separado para cada
unidad de dosis.
1.4 El acceso a los informes de costos se restringirá a usuarios
autorizados en la lista de control de acceso administrativo.
9. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 9Dpto Académico de Informática
Requerimientos funcionales
Son enunciados, acerca de servicios que el sistema debe
proveer, de cómo debería reaccionar el sistema a entradas
particulares y de cómo debería comportarse el sistema en
situaciones específicas. Las funciones del sistema son lo
que éste habrá de hacer.
Requerimientos no funcionales
Son limitaciones sobre servicios o funciones que ofrece el
sistema. Estos pueden ser requerimientos del producto,
organizacionales o externos.
Requerimientos del dominio
Se derivan del dominio de la aplicación del sistema y
reflejan las características de ese dominio.
10. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 10Dpto Académico de Informática
FUNCIONALES
Describen lo que la aplicación
deberá hacer, esto es:
• Su comportamiento
• Su interacción con los usuarios y
su dominio de aplicación
(negocio)
• Sus respuestas a eventos
NO-FUNCIONALES
Describen:
• Las restricciones que se le
imponen a la aplicación
• Las cualidades o atributos de
calidad que la aplicación debe
satisfacer
• Las reglas del negocio que la
aplicación debe respetar o
implementar
• Las interfaces con otros sistemas
11. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 11Dpto Académico de Informática
Requisito
Requisito
Funcional
Requisito
No-Funcional
Requisito del
Negocio
Requisito del
Usuario
Requisito del
Sistema
Requisito de
Comportamie
nto
Restricción
Reglas del
Negocio
Atributo de
Calidad
Requisito de
Interface
Que objetivos espera
alcanzar con el uso de la
aplicación.
Son limitaciones que se le
imponen al desarrollo de
la aplicación.
Están asociados a
productos que tienen
componentes de H/S
Rendimiento,
Confiabilidad, Seguridad
y Utilidad
Son requisitos funcionales
propiamente dichos.
Atributos de interacción
usuario-sistema o
sistema-sistema.
Lo que el usuario será
capaz de hacer con la
aplicación.
gubernamentales, de la
empresa o propias de la
aplicación.
12. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 12Dpto Académico de Informática
Maneja
adecuadamente las
funciones para las
cuales fue diseñada
Nivel de
rendimiento
aceptable bajo
condiciones
normales
Facilidad de uso de
la aplicación
Nivel de
funcionamiento de
la aplicación y la
cantidad de
recursos utilizados
Capacidad para
mantener la
aplicación
Capacidad de la
aplicación para ser
transferida de una
plataforma de
operación a otra
13. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 13Dpto Académico de Informática
Aspectos de la
visión y alcance
del producto
Aspectos de
uso del
producto
Aspectos de
diseño
del producto
14. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 14Dpto Académico de Informática
Requerimientos no
funcionales
Requerimientos
externos
Requerimientos de:
- Usabilidad
- Eficiencia
. Rendimiento
. Espacio
- Confiabilidad
- Seguridad
Requerimientos
de la organización
Requerimientos
del producto
Requerimientos:
- Ambientales
- Operacionales
- De desarrollo
Requerimientos:
- Regulatorios
- Éticos
- Legales
. Contables
.
Protección/Seguridad
Requerimientos del producto
Especifican o restringen el comportamiento del software.
Requerimientos de la organización
Se derivan de políticas y procedimientos en la organización del cliente y del
desarrollador.
Requerimientos externos
Son derivados de factores externos al sistema y su proceso de desarrollo.
15. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 15Dpto Académico de Informática
Los requerimientos son una descripción de las necesidades o deseos de
un producto. La meta primaria de la fase de requerimientos es identificar y
documentar lo que en realidad se necesita, en una forma que claramente se
le comunique al cliente y a los miembros del equipo de desarrollo.
Se recomienda los siguientes artefactos en la fase de
requerimientos:
Panorama general
Clientes
Metas
Funcione del sistema
Atributos del sistema
16. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 16Dpto Académico de Informática
Ejemplo:
Presentación general
Este proyecto tiene por objeto crear un sistema de termina para el
punto de venta que se utilizará en las ventas al menudeo.
Clientes
ObjectStore, Inc., detallista multinacional de objetos
Metas
Concretamente la meta incluye:
- Pago rápido de los clientes.
- Análisis rápido y exacto de las ventas.
- Control automático del inventario.
Funciones del sistema
Las funciones del sistema son lo que éste habrá de hacer, por ejemplo
Autorizar los pagos a créditos. Hay que identificarlas y listarlas en
Grupos cohesivos y lógicos.
17. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 17Dpto Académico de Informática
Por ejemplo:
El sistema deberá autorizar los pagos a crédito.
Los atributos del sistema son cualidades no funcionales (facilidad de
Uso, etc.). Nótese que «facilidad de uso» no encaja en la oración de
Verificación:
El sistema deberá hacer la facilidad de uso.
Los atributos no deben formar parte del documento de especificaciones
Funcionales del sistema, sino de un documento independiente que
Especifica sus atributos.
Con el objeto de verificar que algún X es de verdad una función
del sistema, la siguiente oración deberá tener sentido:
El sistema deberá hacer <X>
18. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 18Dpto Académico de Informática
Categorías de las funciones
Categoría
De la función
Significado
Evidente Debe realizarse, y el usuario debería saber que se ha
realizado
Oculta Debe realizarse, aunque no es visible para los usuarios.
Por ejemplo, guardar información en un mecanismo
persistente de almacenamiento.
Superflua Opcionales; su inclusión no repercute significativamente
en el costo ni en otras funciones.
Funciones básicas
Ref # Función Categoría
R1.1 Registra la venta en proceso (actual): los productos
comprados.
Evidente
R1.2 Reduce las cantidades del inventario cuando se realiza
una venta.
Oculta
R1.3 Ofrece un mecanismo de almacenamiento persistente. Oculta
19. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 19Dpto Académico de Informática
Funciones de pago
Ref # Función Categoría
R2.1 Maneja los pagos en efectivo, capturando la cantidad
ofrecida y calculando el saldo deudor.
Evidente
R2.2 Registra los pagos en el sistema de cuentas por cobrar,
pues el servicio de autorización de crédito debe a la
tienda el monto del pago.
Oculta
…
Atributos del sistema
Los atributos del sistema son sus características o dimensiones.
Por ejemplo:
Facilidad de uso, tolerancia a fallas, tiempo de respuesta, metáfora de
Interfaz, costo al detalle, plataformas.
Éstos abarcan todas las funciones (por ejemplo, la plataforma del
sistema operativo) o ser específicos de una o grupo de funciones.
20. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 20Dpto Académico de Informática
Aquí algunos ejemplos de atributos del sistema
Atributos Detalles y restricciones de frontera
Tiempo de respuesta (restricción de frontera) Cuando se registre un producto
vendido, la descripción y el precio aparecerán en cinco
segundos.
Metáfora de interfaz (detalle) Ventanas orientadas a la metáfora de una forma y
cuadros de diálogo.
Tolerancia a fallas (restricción de frontera) debe registrar los pagos a crédito
autorizados que se hagan a las cuentas por cobrar en un plazo
de 24 horas, aun cuando se produzcan fallas de energía o del
equipo.
Plataformas del
sistema operativo
(detalle) Microsoft Windows 2008.
Además, los detalles de los atributos y las restricciones de frontera
Pueden catalogarse como obligatorios u opcionales.
21. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 21Dpto Académico de Informática
La Ingeniería de Requisitos es un proceso compuesto por:
- Proceso de Desarrollo de Requisitos
Se encargan de capturar, organizar, filtrar y documentar los
requisitos
- Procesos de Gestión de Requisitos
Planifican y controlan los procesos de desarrollo y controlan los
Cambios a los requisitos.
22. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 22Dpto Académico de Informática
En qué consiste
En la búsqueda y recolección de requisitos
Qué actividades principales requiere
- Establecer los objetivos de la aplicación
. Analizar el Caso de Negocios, Documento de Inicio y Plan del Proyecto
- Analizar el modelo de negocios
. Analizar el problema que la aplicación debe resolver
. Identificar a los usuarios
- Recolectar los requisitos que tienen los usuarios
. Usar la plantilla VOLERE y/o herramientas de gestión de requisitos
- Organizar los requisitos que tienen los usuarios
23. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 23Dpto Académico de Informática
Qué técnicas se utilizan para descubrir requisitos
- Entrevista
- Prototipos
- Reuniones
- Observación directa
- Reutilización de requisitos
- Uso de modelos de negocios
- Ingeniería en Reverso
- Encuestas (cuestionarios)
- Torbellino de ideas
- Análisis de documentos
24. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 24Dpto Académico de Informática
En qué consiste
En analizar los requisitos recolectados durante el proceso
anterior a fin de:
- Determinar y resolver posibles conflictos entre estos
requisitos
- Refinar los requisitos recolectados y establecer
prioridades
- Establecer acuerdos entre los usuarios y
desarrolladores sobre los requisitos que se pueden
implementar
25. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 25Dpto Académico de Informática
Qué actividades principales requiere
- Refinar y clasificar los requisitos
. Verificar necesidad, consistencia (los requisitos no se contradigan entre
si), completud (sin omisiones que comprometan la integridad de
requisitos) y factibilidad
- Negociar requisitos con el cliente y/o usuarios
. Discutir, priorizar y acordar requisitos
- Modelar los requisitos
. Elaborar los modelos funcional, estructural y dinámico de la aplicación
- Construir un prototipo de la interfaz gráfica
26. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 26Dpto Académico de Informática
Qué técnicas se utilizan para analizar requisitos:
- Análisis de los procesos del negocio
- Análisis Orientado a Objetos
. Modelado de funciones mediante Diagramas de Casos de uso
. Modelado de flujos de trabajo a través de Diagramas de Actividad
. Modelado estructural de la aplicación usando Diagramas de Clases
. Modelo del comportamiento mediante Diagramas de Secuencia
- Análisis Estructurado de Sistemas
. Modelado de procesos usando Diagramas de Flujo de Datos (DFD)
. Modelado de transiciones empleando Diagramas de Estados
. Modelo de entidades por medio de Diagramas Entidad-Relación (ER)
- Prototipos
. Elaborar los modelos funcional, estructural y dinámico de la aplicación
- Técnicas de negociación
27. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 27Dpto Académico de Informática
En qué consiste
- En la documentación de los requisitos
- Está relacionado con la estructura, calidad y
verificabilidad del Documento de Requisitos
- Premisa:
«La documentación de requisitos es la precondición fundamental para
el manejo exitoso de requisitos» [Kotonya and Sommerville, 2000]
- Que actividades principales requiere:
. Seleccionar el estándar de documentación
. Documentar los requisitos del cliente
- Elaborar el Documento de Definición de Requisitos
. Documentar los requisitos del desarrollador
- Elaborar el Documento de Especificación de Requisitos
28. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 28Dpto Académico de Informática
Qué técnicas se utilizan para especificar los requisitos:
- Uso de estándares de documentación de requisitos
. IEEE P1233/D3
. IEEE 830-1998
. ISO/IEC 12119-1994
. IEEE 1362-1998 (ConOps – Concepto de Operaciones)
- Indicadores de calidad
. Modelos de calidad del software
- Lenguajes y notaciones
. Lenguajes de modelado gráfico
- Lenguajes OO: UML
- Lenguajes estructurados: DFD, SADT, IDEF
- Lenguajes dinámicos: Redes de Petri, Diagramas de Estado
. Lenguajes formales de especificación
- Notación Z
29. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 29Dpto Académico de Informática
En qué consiste
En examinar los productos elaborados durante la Ingeniería
de Requisitos para:
- Determinar si son válidas y aceptables las descripciones de los
requisitos del sistema que se desea construir
Qué productos de la IR se validan en este proceso
- Lista de requisitos recolectados
- Modelos de Requisitos
. Modelos funcional, estructural y dinámico
- Prototipo
- Documento de Requisitos
. Documento de Definición de Requisitos
. Documento de Especificación de Requisitos
30. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 30Dpto Académico de Informática
Los productos de la IR se validan para determinar si sus
requisitos son:
- Correctos
. Satisfacen las necesidades reales de los usuarios
- Completos
. Incluyen todos los requisitos que los usuarios demandan
- Consistentes
. No hay conflictos entre requisitos
- Libres de errores
- Cumplen con los estándares establecidos
- Precisos
. No hay requisitos ambiguos
31. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 31Dpto Académico de Informática
Qué actividades y técnicas se utilizan para validar
requisitos:
- Revisar técnicamente los modelos y documentos
. Inspección de modelos
. Inspección de documentos
- Validar el Prototipo
. Evaluación de prototipos de interfaces gráficas
- Diseñar pruebas funcionales
. Definición de criterios de aceptación
- Qué criterios emplearán los usuarios para aceptar la aplicación
. Diseño de casos de pruebas para validar las funciones de la aplicación
32. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 32Dpto Académico de Informática
En qué consiste
En establecer y mantener, a lo largo de todo el proyecto,
un acuerdo con el cliente o usuarios sobre los requisitos de
la aplicación
Qué actividades principales se requieren:
- Planificar y controlar las actividades de Ingeniería de
Requisitos
- Controlar los cambios a los requisitos acordados
. Definición de la línea base de requisitos
. Control de cambios en requisitos
- Manejar las relaciones entre requisitos
- Manejar las dependencias entre el Documento de Requisitos
y los otros documentos del desarrollo
. Seguimiento o trazabilidad de requisitos
33. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 33Dpto Académico de Informática
Qué técnicas se utilizan:
- Planificación y control de proyectos
- Control de cambios
. Definición de la línea base de requisitos
. Control de cambios en requisitos
- Gestión del almacenamiento de requisitos
. Identificación de requisitos
. Uso de bases de datos para requisitos
- Rastreo o trazabilidad de Requisitos
. Seguimiento o trazabilidad de requisitos
34. UNIVERSIDAD DE SAN ANTONIO ABAD DEL CUSCO – PERÚ - 2013
JAVIER DAVID CHÁVEZ CENTENO 31/08/2013 34Dpto Académico de Informática
Bibliografía
1. Pressman, R. (2005). Ingeniería del Software. México:
McGraw-Hill. 6ta ed. cap. 7.
2. Sommerville, I. (2011). Ingeniería de Software. México:
Pearson. 9na ed. cap. 4.
3. Larman, C. (2003). UML y Patrones, México: Pearson.
2da. ed. cap. 5.
Lecturas obligatorias
Bahamonde, J.M., Rossel, R. (2003). Un Acercamiento a la
Ingeniería de Requerimientos. Recuperado el 15 de agosto de
2013, de http://www.alumnos.inf.utfsm.cl/~rrossel/Papers/re.pdf