Escolar Documentos
Profissional Documentos
Cultura Documentos
Requerimientos
Luis Contreras
(MCSD.Net)
Temario
Introducción
El proceso de Ingeniería de Requerimientos
1. Estudio de Factibilidad
2. Obtención y análisis de requerimientos
3. Especificación de requerimientos (SRS)
4. Validación de requerimientos
Administración de Requerimientos
Análisis comparativo de las técnicas de ingeniería de
requerimientos
Gestión de Requerimientos según RUP y CMMI
Caso Práctico
Objetivos
Resaltar la importancia que tiene la Ingeniería de
Requerimientos dentro del ciclo de desarrollo.
Dar a conocer las diferentes alternativas que existen
para identificar requerimientos.
Ayudar a comprender la diferencia que existe entre las
diferentes técnicas utilizadas en la Ingeniería de
Requerimientos.
Minimizar las dudas que se tiene sobre los casos de uso.
Mostrar la utilización de herramientas CASE dentro de la
administración de requisitos.
Problemas de los proyectos de TI
Causas (Standish Gr.1995)
Requerimientos incompletos (13.1%)
Falta de involucramiento de usuarios (12.4%)
Falta de recursos (10.6%)
Expectativas no realistas (9.9%)
Falta de soporte de ejecutivos (9.3%)
Requerimientos y Especificaciones cambiantes (8.7%)
Falta de planificación (8.1%)
Sistema no se precisaba más (7.5%)
Problemas de los proyectos de TI
Problemas comunes debido a personas y procesos
No se capturan requerimientos
críticos.
Equipos de trabajo no entendieron
bien el problema del negocio.
Los requerimientos no cubren las
necesidades del negocio.
Mal entendimiento de los objetivos
por el equipo de trabajo
Importancia de los requerimientos
o facilidad
Diferentes niveles de descripción
Requerimientos de Usuario:
Declaraciones en lenguaje natural y en diagramas de los
servicios que se espera que el sistema provea y de las
restricciones bajo las que cuales debe operar.
Diferentes niveles de descripción
Requerimientos del Sistema:
Detalla los servicios y restricciones del sistema.
Documento de Especificación funcional sirve como contrato
entre el comprador del sistema y el desarrollador de software.
Diferentes niveles de descripción
Especificación del diseño del software:
Descripción abstracta del diseño del software que es una base para el
diseño detallado y la implementación.
Agrega detalle a la especificación de requerimientos del sistema .
Lectores de Requerimientos
Gerencia de Cliente
Requerimientos Usuarios Finales del Sistema
de Usuario Ingenieros de Clientes
Gerencia de Contratistas
Arquitectos del Sistema
1) Entrevistas y Cuestionarios
2) Tormenta de Ideas
3) Prototipos
4) Casos de Uso
Entrevistas y Cuestionarios
Ventajas: Desventajas:
- Se obtienen - La información obtenida
Ventajas: Desventajas
- Los expertos pueden - Es necesaria una
introducir y unificar buena
terminología para
compenetración de
que todos las usen
todos
para expresar las
nuevas ideas.
Prototipos
Para validar los requerimientos hallados, se
construyen prototipos.
Los prototipos son simulaciones del posible producto,
que luego son utilizados por el usuario final
Permiten conseguir una importante retroalimentación
en cuanto a si el sistema diseñado en base a los
requerimientos recolectados le permite al usuario
realizar su trabajo de manera eficiente y efectiva.
Facilita la comprensión del desarrollador.
Prototipos
Prototipo rápido: Mecanismo para lograr
validación pre-compromiso
Se utiliza para validar requerimientos en una etapa
previa al diseño específico
También podemos llevar el caso de uso y
bosquejar la interfase de usuario y, mediante el
diálogo, manejamos la interactividad entre el
usuario y el sistema.
Prototipos
Prototipo evolutivo: Es implementado sobre la
arquitectura del producto final, el sistema final se
obtiene de evolucionar el prototipo
Modificaciones y mejoras subsecuentes resultan en
nuevas entregas de prototipos más maduros. Este
proceso continúa hasta que se haya desarrollado el
producto final.
Todo el ciclo de vida de un producto puede ser visto
como una serie incremental de prototipos.
Prototipos
Desventajas
Ventajas: El cliente puede llegar a pensar
- Ayudan a validar y que el prototipo es una versión
desarrollar nuevos del software que será
desarrollado.
req. A menudo, el desarrollador
- Ayudan a hace compromisos de
implementación para acelerar el
comprender req. desarrollo del prototipo
que no están muy
claros.
Mismos datos, pero…
mes: ____
día: ____
1998 2025
1 31
Ene Dic
Martes 16 Oct. 2002
Casos de Uso
Un caso de uso representa una
interacción típica entre un usuario y un
sistema informático.
La descripción se centra en lo que debe
hacerse, no en la manera de hacerlo.
No son exclusivos del mundo de OO,
pueden ser utilizados en proyectos que
sigan cualquier metodología de desarrollo
Casos de Uso
Los casos de uso sólo consideran los
requisitos funcionales del proyecto, hay que
añadir los no funcionales en la descripción.
Sistema de
Bodega
«extend»
incluye
Vender Bebida
caso
Barmen de uso
«include»
Registrar Venta
actor
Ejemplo de relaciones Include-Extend
<<extends>>
Giro por Internet
Cliente
<<includes>>
Giro
Identificación
Plantilla para casos de uso
Caso de Uso identificador / historia
Descripción objetivo a conseguir
Actores lista de actores
Asunciones Condiciones que deben cumplirse
Pasos interacciones entre los actores y el sistema
necesarias para obtener el objetivo
Variaciones (opcional) cualquier variación en los pasos
No-funcional (opcional) lista requisitos no funcionales
Casos de Uso
Ventajas: Desventajas
- Representación de En sistemas grandes,
Proceso de los
Administración de
Requerimientos
los Requerimientos
Validación
de Cambios En Reqs
Reqs
Cambios en el
proyecto
Proceso de IR
Estudio de Factibilidad
Encuentran los usuarios actuales que sus necesidades son satisfechas
dada la tecnología y el presupuesto disponible?
Obtención y Análisis de Requerimientos
Comprensión del dominio, recolección, clasificación y priorización de
requerimientos.
Especificación de Requerimientos
Define los requerimientos en detalle.
Validación de Requerimientos
Demostración de que los requerimientos que definen el sistema son lo que
el cliente realmente quiere.
Proceso de IR
Actividade
s
Artefactos
Artefactos
Ventajas
Orientado a las personas
Interactivo/flexible
Desventajas
Costoso
Depende de las habilidades interpersonales
Encuesta - Cuestionario
No substituye la entrevista
Antes de usar el enfoque:
Determinar la información que se precisa
Determinar el enfoque más adecuado:
Abierto, cerrado, combinado
Múltiple opción, valor en escala, orden relativo
Desarrollar cuestionario
Probarlo con perfil típico
Analizar resultado de las pruebas
Ventajas Desventajas
Confiable Tener cuidado con
Muy rico en generalizar demasiado
datos (sesgo particular/local)
Desarrolla
empatía
Tormenta de ideas (brainstorming)
Objetivo: Lograr consenso sobre los requerimientos
Ayuda a la participación de todos los involucrados
Permite pensar en otras ideas
Un secretario saca notas de todo lo discutido
Reglas
No se permite criticar ni debatir
Dejar volar la imaginación
Generar tantas ideas como sea posible
Mutar y combinar ideas
Sesiones de trabajo (Workshop)
Ámbito para las tormentas de ideas
Preparación
Asegurarse que asisten los stakeholders correctos
Enviar material previo a la reunión
Doc de requerimientos
Entrevistas, bugs de los sistemas existentes, etc
Asegurarse de enviar lo necesario, sin exagerar
Organizar la Agenda
Introducción
Tormenta de ideas
Priorización
Conclusiones
Casos de Uso
Formato simple y estructurado donde los usuarios
y desarrolladores pueden trabajar juntos
No son de gran ayuda para identificar aspectos no
funcionales
Mientras se definen los casos de uso, puede ser
un buen momento para definir pantallas u otros
objetos con los que el usuario interactúa
Pueden ser usados en el diseño y en el testing del
sistema
Prototipado
Implementación parcial que permite a los
desarrolladores y usuarios:
entender mejor los requerimientos
cuales son necesarios, deseables
Acotar riesgos
Artefactos
Objetivo:
Se sigue una serie de buenas prácticas para
escribir especificaciones de requerimientos de
software (SRS).
Artefactos
Diagramas de Clases
Diagramas de Componentes
Diagramas de Despliegue
Tipos de Diagramas
Modelo Dinámico
Diagramas de Secuencia
Diagramas de Colaboración
Diagramas de Actividad
Proceso de IR
Actividade
s
Artefactos
Artefactos
Modelación de Negocios
Requerimientos
Análisis y Diseño
Implementación
Contenido
Prueba
Desarrollo
Flujos de Trabajo de Soporte
Admin. Configuración
Administración
Ambiente
Iteración(es) Iter. Iter. Iter. Iter. Iter. Iter. Iter.
Preliminar #1 #2 #n #n+1 #n+2 #m #m+1
Iteraciones
RUP - Workflow de Requerimientos
El diagrama de actividad presenta el flujo
lógico donde los trabajadores ejecutan
actividades, crean y modifican artefactos
En el mundo real no es necesario trabajar
en secuencia
Todos los artefactos se completan y
mejoran incrementalmente en cada
iteración.
RUP - Workflow de Requerimientos
Actividades
Analizar el Problema
Entender las Necesidades de Stakeholder
Definir el Sistema
Administrar el Alcance del Sistema
Refinar la Definición del Sistema
Administrar Cambios de Requerimientos
RUP - Workflow de Requerimientos
RUP - Workflow de Requerimientos
Especificador de Diseñador de
Analista Arquitecto Casos de uso interface
RUP - Workflow de Requerimientos
Encontrar actores y casos de uso: Esbozar que actores
interactuarán con el sistema, y que funcionalidad se espera.
Priorizar Casos de Uso: Determinar que casos de uso son
necesarios en las primeras iteraciones y cuáles pueden
dejarse para más tarde. Considerar aspectos no técnicos
Detallar un Caso de Uso: Describir su flujo de sucesos en
detalle, flujo básico, flujo alternativo, pre y post condiciones.
Se puede utilizar diagramas de actividad o de interacción
RUP - Workflow de Requerimientos
Prototipar la interfaz de Usuario: Se realiza el
diseño lógico de la interfaz de usuario, luego el
diseño físico y se construye el prototipo con
apoyo de alguna herramienta.
Estructurar el modelo de Casos de Uso:
Extraer descripciones de funcionalidad (de casos
de uso) generales y compartidas que puedan ser
utilizados por descripciones (de casos de uso)
más específicas.
Conclusiones
La IR es una actividad que involucra a clientes, usuarios, equipo de
desarrollo, administradores de proyectos, etc.; por lo tanto, el
proceso de IR no depende solamente de la forma en cómo se
percibe el problema, sino también, del nivel de experiencia que
tengan los involucrados.
Es importante tomarse el tiempo necesario para conocer a
nuestros clientes y usuarios, para establecer una buena relación
de trabajo y comunicación entre el equipo de desarrollo y los
clientes
Conclusiones
Los errores en los requerimientos son usualmente muy
caros de corregir una vez desarrollado el sistema.
La revisión debe involucrar al cliente y al staff de
contratistas para validar los requerimientos del sistema.
El establecer requerimientos está relacionado con las
actividades del cliente para el Software.
Bibliografía
G. Booch, J. Rumbaugh, I. Jacobson, “El lenguaje unificado de
modelado”, Addison-Wesley, 1999.
Sommerville I., Software Engineering, , Addison-Wesley, 2002.
Brackett, Jhon W. "Software Requirements". Software Engineering
Institute Education Program – Carnegie Mellon University.
C. Larman, “UML y Patrones: Una introducción al análisis y diseño
orientado a objetos y al proceso unificado”, Prentice-Hall, 2003.