Ingeniería de
Requerimientos
Universidad ORT - Uruguay
Alvaro Ortas
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
1
Objetivos del Curso
 Determinar la importancia de la Ingeniería de
Requerimientos en el proceso de desarrollo de software.
 Conocer la teoría que fundamenta la Ingeniería de
Requerimientos.
 Dominar los fundamentos de distintas técnicas y prácticas
de la Ingeniería de Requerimientos.
 Enmarcar la Ingeniería de Requerimientos en el contexto
de un proceso administrado.
 Desarrollar la capacidad de selección y adaptación de
dichas técnicas y prácticas según las restricciones de un
proyecto dado.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
2
Temario General
•
•
•
•
•
•
•
•
Introducción a la Ingeniería de Requerimientos.
El proceso de la ingeniería de requerimientos.
La extracción de requerimientos.
El análisis y negociación de requerimientos.
Técnicas de especificación de requerimientos.
Prototipación.
Validación de requerimientos.
La administración de requerimientos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
3
Referencias Bibliográficas
• Software Requirements: Objects, Functions and States,
Alan Davis.
• Requirements Engineering - Process and Techniques,
Gerald Kotonya and Ian Sommerville.
• The Object Advantage: Business Process Reengineering
with Object Technology, Ivar Jacobson.
• Software Requirements Engineering, Richard Thayer and
Merlin Dorfman.
• Requirements Engineering: A Good Practice Guide, Ian
Sommerville and Pete Sawyer.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
4
Evaluación
1) Se conformarán N grupos de trabajo para el obligatorio.
2) Cada grupo confeccionará un DCO, un ESRE, y realizará la evaluación de los DCO y los ESRE de los restantes
grupos.
3) De los N DCOs confeccionados se seleccionará uno que será base para la confección de los N ESREs.
4) La selección de este DCO resultará de la evaluación realizada por los otros N grupos y la evaluación del docente.
5) La elaboracion de los ESREs se realizará en función del DCO seleccionado.
6) El grupo cuyo DCO resulte seleccionado automáticamente obtendrá tres puntos adicionales al trabajo global.
7) El grupo cuyo ESRE resulte mejor evaluado (por los restantes grupos y el docente) automáticamente obtendrá tres
puntos adicionales al trabajo global.
8) La sumatoria de los puntos adicionales y la de los puntos del trabajo global nunca superarán los 100 puntos.
9) Luego de la entrega final del obligatorio se realizará una defensa.
10) Distribución de puntos: DCO - 25, ESRE, Story y Visión Arquitectónica - 30, Metodología de Trabajo - 17,
evaluación de DCO - 5, evaluación de ESRE - 7, adicionales por DCO - 3, adicionales por ESRE - 3, defensa 10. En cualesquiera de los ítems mencionados se debe alcanzar un mínimo del 50% y la sumatoria de cada uno de
los ítems debe ser mayor o igual que el 50% del puntaje total.
11) Entregas:
Entrega de letra del obligatorio.
07 al 12/02/2007.
DCO.
26/02/2007.
Evaluación del DCO.
05/03/2007. (ENTREGA OFICIAL 1).
ESRE y metodología de trabajo.
29/03/2007. (ENTRGA OFICIAL 2)
Evaluación del ESRE.
12/04/2007. (ENTREGA OFICIAL 3)
Defensa.
A determinar.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
5
Ingeniería de Requerimientos
Introducción
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
6
Temario
•
•
•
•
•
•
•
Ingeniería de software en su contexto.
Funciones de la ingeniería de software.
Procesos y ciclos de vida.
Definición e identificación de requerimientos.
Tipificación de requerimientos.
Productos de ingeniería de requerimientos.
La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
7
Temario
 Ingeniería de software en su contexto.
• Funciones de la ingeniería de software.
• Procesos y ciclos de vida.
• Definición e identificación de requerimientos.
• Tipificación de requerimientos.
• Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
8
Sistema
• Definición.
– Conjunto de elementos relacionados de manera
que les permita alcanzar un objetivo común.
[Thayer].
• Tipos de sistemas.
– Naturales.
– Artificiales (hechos por el hombre).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
9
Sistema Artificial
• Definición.
– Sistema hecho por el hombre basado en recursos humanos y
tecnológicos (hardware, software, infraestructura, procedimientos,
etc.) cuyos componentes cooperan para alcanzar un objetivo
común. [Thayer].
• Ejemplos:
–
–
–
–
–
Empresa.
Edificio.
Avión.
Automóvil.
Computadora.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
10
Sistema de Software
• Definición.
– Sistema artificial que consiste de un conjunto
de programas y documentos que en conjunción
cumplen con un conjunto de requerimientos
del usuario. [Thayer].
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
11
Contexto de Sistemas
Sistemas
Sistemas Naturales
Sistemas Artificiales
Sistemas de Software
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
12
Ingeniería de Sistemas
• Según Thayer.
Es la aplicación de esfuerzos de distintas disciplinas científicas y de
ingeniería con el fin de:
1) Transformar una necesidad operativa en en la descripción de un
sistema y sus parámetros de desempeño, valiéndose de un proceso
de definición, análisis, síntesis, diseño, prueba y evaluación.
2) Integrar elementos técnicos relacionados y asegurar la
compatibilidad de toda la funcionalidad de manera de optimizar la
definición y el diseño del sistema.
3) Integrar confibilidad, mantenibilidad, seguridad, sobrevivencia,
factores humanos, y otras consideraciones de modo de conjugar
objetivos de costo, tiempo y desempeño técnico.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
13
Procesos de la Ing. de Sistemas
• Proceso Técnico.
– Conjunto de actividades orientadas a la construcción
del sistema, básicamente: diseño y fabricación.
– Se denominan también actividades directas.
• Proceso Administrativo.
– Conjunto de actividades orientadas a asegurar que el
sistema se construya en tiempo y forma: definición del
sistema, control del proceso, cronograma, control de
costos, control de calidad, etc.
– Se denominan también actividades indirectas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
14
Ing. de Sistemas de Software
• Definición de Thayer.
• El proceso técnico es el esfuerzo necesario para:
– Transformar una necesidad operativa en una descripción de sistema de
software.
– Para confeccionar la documentación de los requerimientos y la
especificación de diseño.
– Realizar el diseño del sistema de software.
– Ejecutar los procedimientos de verificación, prueba y aceptación del
producto final.
– Para confeccionar la documentación necesaria para operar y mantener el
sistema de software.
• El proceso administrativo es ídem al de la Ing. de Sistemas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
15
Ingeniería de Software
• Adaptación de definición de Thayer.
– Es la aplicación sistemática de métodos,
herramientas y técnicas para transformar
requerimientos establecidos en una eficaz y
eficiente sistema de software.
– Utilizando un proceso de diseño, codificación,
prueba y documentación bajo estrictas
restricciones de tiempo, presupuesto y calidad.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
16
Relacionamiento entre las Ing.
Prueba del
Ingeniería de Sistemas
Análisis
Sistema
Prueba de Int.
del Sistema
Diseño
del Sistema
Anal. de Req.
del Sistema
Prueba del Sistema
Ing. de Sistemas de Soft.
de Soft.
Diseño Arq.
de Soft.
Prueba de
del Soft.
Diseño Det.
Ingeniería de Software
del Soft.
Int. del Soft.
Prueba
Subsistema
Codif. y
Unit.
Ingeniería de Requerimientos. Prueba
Introducción.
Alvaro Ortas.
17
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
• Procesos y ciclos de vida.
• Definición e identificación de requerimientos.
• Tipificación de requerimientos.
• Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
18
Funciones de las IS y ISS
•
Definición del problema (análisis de requerimientos).
– Relevamiento con los usuarios para determinar necesidades y restricciones.
•
Análisis de la solución (diseño).
– Determinar las posibles formas de resolver el problema.
– Estudiar las posibles soluciones.
– Seleccionar la solución óptima.
•
Planificación del proceso.
– Determinar costos, cronograma, y métodos para controlar el proyecto.
•
Control del proceso.
– Realizar revisiones del proceso y sus productos intermedios y tomar acciones
correctivas.
•
Evaluación del producto.
– Verificación, validación y prueba de los productos intermedios y del producto final.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
19
Distribución de Funciones
Ing. de Sist. de Soft. (Adm.)
•Planificación del Proceso.
•Control del Proceso.
•Organización.
•Reclutamiento de personal.
Ing. de Sist. de Soft. (Técnica)
Ingeniería de Software
•Definición del Problema.
•Diseño del software.
•Análisis de la Solución.
•Codificación.
•Evaluación del Producto.
•Prueba Unitaria.
•Integración del Subsist. de Soft.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
20
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
 Procesos y ciclos de vida.
• Definición e identificación de requerimientos.
• Tipificación de requerimientos.
• Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
21
Procesos
• Definición: conjunto secuencial de tareas y
actividades con el propósito de transformar
insumos en resultados con valor agregado.
• Ejemplos: facturar, cobrar, curar, hacer un
sistema, transportar, asignar recursos, etc.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
22
Tareas vs. Actividades
• Tarea.
–
–
–
–
Subdivisión de un proceso.
Unidad de trabajo a realizar por un agente humano.
Se le asocian agentes y recursos.
Se puede planificar, ejecutar y controlar.
• Actividad.
– Subdivisión de una tarea.
– Se ejecuta automáticamente por algún agente no humano
(herramienta).
– Se le asocian agentes y recursos.
– No es necesario que sea gerenciada.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
23
Perspectivas de un Proceso
• Objetivos.
– Definir QUE hacer, QUIEN debe hacerlo, CUANDO y COMO
hacerlo para alcanzar una meta.[JACOBSON].
• Perspectivas.
–
–
–
–
–
Prescribe tareas y
actividades a realizar.
Funcional.
De los resultados.
Organizacional.
Metodológica.
Del comportamiento.
Describe productos
y servicios y sus
interrelaciones.
Indica y especifica
roles (accionistas).
Describe métodos y
herramientas de las tareas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
24
Proceso de Software
Ing. de
Procesos
Procesos Orientados
al Producto
Proceso de Ingeniería
Necesidades
IR
CONS.
Sistema
Clientes y
Clientes y
Usuarios
Usuarios
Gerencia
SQA
SCM
Procesos Orientados
a la Gestión
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
25
Ing. de Requerimientos
•
•
•
•
•
Extraer necesidades de clientes y usuarios.
Analizar el problema.
Especificar requerimientos.
Validar y verificar requerimientos.
Administrar los requerimientos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
26
Construcción
•
•
•
•
•
•
Análisis del sistema de software.
Diseño arquitectónico.
Diseño detallado.
Codificación y prueba unitaria.
Integración y prueba de integración.
Integración final y prueba del sistema.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
27
Gerencia del Proyecto
•
•
•
•
•
•
•
Establecimiento del proceso y ciclo de vida.
Establecimiento del cronograma.
Establecimiento de costos.
Análisis de riesgos.
Organización.
Reclutamiento del personal.
Control del proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
28
Aseguramiento de la Calidad
• También denominada QA (Quality Assurance).
• Aseguramiento de la calidad del producto final a
través de validación y verificación:
– De los productos intermedios.
– Del producto final.
– De la ejecución de las tareas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
29
Control de Configuración
• También denominado CM (Configuration Management).
• Actividades destinadas a identificar, organizar y controlar las
modificaciones al software y documentos generados y
mantenidos por el equipo de desarrollo.
• Tareas:
–
–
–
–
–
–
Definir un plan de CM.
Definir estructura de almacenamiento del Repositorio
Definir e identificar los productos que se deben controlar.
Actividades de control y administración (Charge-in, Charge-Out, etc).
Medir el número cambios a cada producto.
Medir el esfuerzo de CM.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
30
Ingeniería de Procesos
• Tareas destinadas a definir:
–
–
–
–
–
–
–
Procesos.
Ciclos de vida.
Productos intermedios a generar.
Métodos y técnicas.
Herramientas.
Estándares.
Métricas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
31
Perspectivas de un Proceso
• Objetivos.
– Definir QUE hacer, QUIEN debe hacerlo, CUANDO y COMO
hacerlo para alcanzar una meta.[JACOBSON].
• Perspectivas.
–
–
–
–
–
Prescribe tareas y
actividades a realizar.
Funcional.
De los resultados.
Organizacional.
Metodológica.
Del comportamiento.
Describe productos
y servicios y sus
interrelaciones.
Indica y especifica
roles (accionistas).
Describe métodos y
herramientas de las tareas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
32
Perspectiva del Comportamiento
• Representa los aspectos dinámicos del proceso.
–
–
–
–
–
–
–
Secuenciamiento.
Paralelismo
Sincronización.
Iteraciones.
Retroalimentación.
Condiciones de inicio y terminación.
Transiciones de estado.
• En resumen: es el ciclo de vida que toma el proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
33
• Ciclo de Vida: especificación algorítmica de la
ejecución de tareas y actividades de un proceso.
Cascada
Evolutivo
Incremental
...
...
Requerimientos
Análisis
Diseño
Req.
Req.
Req.
Req.
Análisis
Análisis
Análisis
Análisis
Análisis
Análisis
Diseño
Diseño
Diseño
Diseño
Diseño
Diseño
Imp.
Imp.
Imp.
Imp.
Imp.
Imp.
Prueba
Prueba
Prueba
Prueba
Prueba
Prueba
Implementación
Prueba
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
34
Cascada
• Características.
–
–
–
–
Se construyen todos los entregables por fase.
No se transita a otra fase hasta no estar concluida la anterior.
La arquitectura es estable.
Se realiza una sola entrega al finalizar el proyecto.
• Ventajas.
–
–
–
–
Ordena el proceso de desarrollo.
Asegura mojones de revisión.
Permite planificar el control y seguimiento.
Permite generar documentación para el mantenimiento.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
35
Incremental
• Características.
–
–
–
–
Se especifican todos los requerimientos.
Se construye en base a incrementos.
La arquitectura permanece estable (en líneas generales).
Se entrega en base a un incremento (incremental de entrega
simple).
– Se entrega en base a N incrementos (incremental de varias
entregas).
• Ventajas.
–
–
–
–
Las mismas de la cascada y:
Minimiza riesgos tecnológicos.
Ayuda en la optimización de recursos.
El cliente puede ir “viendo” el producto en avance.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
36
Evolutivo
• Características.
–
–
–
–
–
Se especifica parte de los requerimientos.
Se construye en base a incrementos (evoluciones).
Se entrega en base a incrementos (siempre en varias entregas).
La arquitectura puede sufrir grandes cambios.
Se repite el proceso desde el inicio.
• Ventajas.
–
–
–
–
–
Las mismas de la cascada y:
Minimiza riesgos tecnológicos.
Ayuda en la optimización de recursos.
Permite ir conociendo los requerimientos en avance.
El cliente puede ir “viendo” el producto en avance.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
37
Modelos de Ciclo de Vida
• Abstracción que da origen a distintos ciclos
de vida.
• Ejemplos.
–
–
–
–
Cascada.
Espiral.
En V.
De USDP (Unified Software Development
Process de Rational).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
38
Modelo de CV en Cascada
• Da origen a ciclos de
vida en cascada
solamente.
Requerimientos
Análisis
Diseño
Implementación
Prueba
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
39
Modelo de Ciclo de Vida en Espiral
• Da origen a los siguientes
ciclos de vida:
Evaluación
Identificación
Punto de
Decisión
– Cascada.
Requerimientos
• Si solo se ejecuta la
primera vuelta.
Evaluación
Requerimientos
Evaluación
Evaluación
– Incremental.
Requerimientos
• N vueltas.
• Solo en la primera se hace
requerimientos.
Imp. Prim.Diseño
Bloque
Imp. Segundo
Bloque
Diseño
Diseño
Imp. Tercer
Bloque
Construcción
– Evolutivo.
Diseño
• N vueltas.
• Todas iguales.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
40
Modelo de Ciclo de Vida en V
Prueba del
Sistema
Requerimientos
• Da origen a los siguientes
ciclos de vida:
– Cascada.
Prueba de
Integración II
Análisis
• Si solo se ejecuta la
primera V.
– Incremental.
Diseño
Imp.
Prueba de
Integración I
Prueba de
Unidad
• N Vs consecutivas.
• Solo en la primera se hace
requerimientos.
– Evolutivo.
• N Vs consecutivas.
• Todas iguales.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
41
Modelo de Ciclo de Vida de USDP
F ases
C om ien zo
W orkflow
Elaboración
C onstrucción
Transición
Requerimientos
Análisis
D iseño
Im plem entación
Prueba
Iteraciones
iter. #1
iter. #2
...
...
...
...
iter. #n-1
iter. #n
Entregas
• Da origen a los siguientes ciclos de vida:
• Cascada.
– Una sola iteración.
• Incremental.
– N iteraciones.
– Solo en la primera se
hace requerimientos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
• Evolutivo.
– N iteraciones.
– Todas iguales.
42
Del Proceso al Proyecto
P. Funcional
P. Comportamiento
(Tareas)
(Modelo de CV)
Ciclo
Otras Perspectivas
de Vida
(Res., Org., Met.)
Molde
Proyecto
Instancia
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
43
Ciclo de Vida de un Producto de Software
Definición
Desarrollo del
Operaciones y
del Producto
Producto
Mantenimiento
Empresa
Orientada
al Mercado
•Estudio de mercado.
•Relevamiento
betusuarios.y clientes.
•Especificación.
•Validación.
•Análisis del sistema de software.
•Diseño arquitectónico.
•Diseño detallado.
•Codificación y prueba unitaria.
•Integración y prueba de integración.
•Betatest.
•Ventas.
•Distribución.
•Capacitación.
•Personalización.
•Migración.
•Puesta en funcionamiento.
•Seguimiento.
•Soporte.
Empresa o
desarrollo
Orientado
al Cliente
•Relevamiento
usuarios y clientes..
•Especificación.
•Validación.
•Análisis del sistema de software.
•Diseño arquitectónico.
•Diseño detallado.
•Codificación y prueba unitaria.
•Integración y prueba de integración.
•Integración final y prueba del
sistema.
•Capacitación.
•Puesta en funcionamiento.
•Seguimiento.
•Soporte.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
44
Ciclo de Vida de un Sistema
Requerimientos del Sistema
Diseño del Sistema
Requerimientos de Hard
Diseño del Hard
Requerimientos de Software
Diseño del Software
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
45
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
 Procesos y ciclos de vida.
 Definición e identificación de requerimientos.
• Tipificación de requerimientos.
• Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
46
¿Qué es un requerimiento?
• Definición.
– Condición o capacidad de un sistema requerida
por el usuario para resolver un problema o
alcanzar un objetivo. [IEEE].
• Determina lo FUNCIONAL.
– Desde el punto de vista del usuario, QUE hace
el sistema; NUNCA COMO lo hace.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
47
Ejemplos
• El sistema debe emitir un informe de estado de situación
patrimonial...
• El sistema debe realizar la liquidación de haberes a
destajistas, personal contratado, personal estable...
• El sistema debe permitir editar y manipular texto escrito en
cualquier idioma.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
48
Niveles de Abstracción
•
NIVEL 1.
– REQUERIMIENTOS (QUE): Satisfacción las necesidades del usuario.
– ESPACIO DEL PRODUCTO (COMO): lista de todos los sistemas que satisfacen
las necesidades del usuario.
•
NIVEL 2.
– REQUERIMIENTOS (QUE): definir el conj. de todos los sistemas que satisfacen
las necesidades del usuario.
– COMPORTAMIENTO DEL SISTEMA REAL (COMO): definir claramente el
comportamiento del sistema (a construir o comprar).
•
NIVEL 3.
– REQUERIMIENTOS (QUE): definir claramente como el comportamiento del
sistema (a construir o comprar).
– FUNCIONAMIENTO INTERNO (COMO): definir la estructura arquitectónica del
sistema.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
49
Niveles de Abstracción
•
NIVEL 4.
– REQUERIMIENTOS (QUE): definir la estructura arquitectónica del sistema.
– SUBDIVISION DE LA ARQ. (COMO): subdividir en módulos la arquitectura del
sistema agregando detalles.
•
NIVEL 5.
– REQUERIMIENTOS (QUE): definir las especificaciones de los módulos (inputs y
outputs).
– ESPECIFICACION ALGORITMICA: especificar los algoritmos de cada módulo.
•
NIVEL 6.
– REQUERIMIENTOS (QUE): especificar los algoritmos de cada módulo.
– CODIFICACION (QUE): escribir en algún lenguaje de programación los
algoritmos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
50
Ejemplos
• El sistema debe emitir un informe de estado de situación
patrimonial...
• El sistema debe realizar la liquidación de haberes a
destajistas, personal contratado, personal estable...
• El sistema debe implementar un álgebra que posibilite
cubrir toda la casuística de la liquidación de haberes sin
reprogramación.
• El sistema debe capturar cualquier regla de liquidación de
haberes sin necesidad de intervención del fabricante del
producto.
• El sistema debe tener un archivo de movimientos...
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
51
Tres Modelos de un Sistema
• Según definición de Rumbaugh.
– Modelo estático.
– Modelo Funcional.
– Modelo Dinámico.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
52
Modelo Estático
• Describe la estructura de los objetos (entidades) en un
sistema:
–
–
–
–
Identidad.
Relaciones.
Atributos.
Operaciones.
• Objeto: cualquier entidad del mundo real con límites bien definidos.
[DAVIS]
• Determina COMO SE ESTRUCTURA el SISTEMA.
• Herramientas más conocidas: MER, MO.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
53
Modelo Funcional
• Describe las transformaciones de inputs en outputs
de un sistema:
– Funciones.
– Mapeos.
– Restricciones.
• Determina QUE hace el SISTEMA.
• Herramientas más conocidas: casos de uso,
especificaciones funcionales.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
54
Modelo Dinámico
• Describe la secuencia de operaciones de un
sistema y tiempo en que se desarrollan:
– Eventos.
– Estados.
– Cambios de estado.
• Determina CUANDO lo hace el SISTEMA.
• Herramientas más conocidas: DTE.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
55
Requerimientos a partir del ME
• El sistema deberá mostrar la posición del
puntero en la región de pantalla en que se
encuentre.
• El sistema deberá desplegar el tipo de
productos que comercializa la empresa.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
56
Requerimientos a partir del MF
• El sistema deberá mostrar la posición del
puntero en la región de pantalla en que se
encuentre.
• El sistema deberá desplegar el tipo de
productos que comercializa la empresa.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
57
Requerimientos a partir del MD
• Si el usuario mueve el mouse, el sistema
desplazará el puntero hacia la región de
pantalla.
• El sistema deberá calcular los intereses
cada treinta días.
• El sistema bloqueará la cuenta cuando el
cliente tengo saldo negativo.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
58
¿Qué es un requerimiento?
• Definición (PARTE II).
– Condición o capacidad que debe poseer un
sistema para satisfacer un contrato, estándar,
especificación, u otro documento formalmente
impuesto. [IEEE].
• Determina lo NO FUNCIONAL.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
59
Ejemplos
• El sistema debe correr sobre WINDOWS XP o
más.
• El sistema debe estar desarrollado en JAVA.
• El sistema deberá ser desarrollado en 10 meses...
• Para cualquier consulta el tiempo de respuesta
máxima será de 2 segundos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
60
¿Qué es un requerimiento?
• Definición completa. [IEEE].
– (1) Condición o capacidad de un sistema
requerida por el usuario para resolver un
problema o alcanzar un objetivo.
– (2) Condición o capacidad que debe poseer un
sistema para satisfacer un contrato, estándar,
especificación, u otro documento formalmente
impuesto.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
61
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
 Procesos y ciclos de vida.
 Definición e identificación de requerimientos.
 Tipificación de requerimientos.
• Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
62
Tipificación de Requerimientos
• Funcionales.
– Los que cumplen la primera parte de la definición de
IEEE.
– Funcionalidad del sistema desde el punto de vista del
usuario.
• No funcionales.
– Los que cumplen la segunda parte de la definición de
IEEE:
•
•
•
•
•
Estándares.
Documentación.
Eficiencia.
Seguridad.
Interfaz.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
63
Otra Tipificación de Requerimientos
• De comportamiento.
– Todos los que hacen al relacionamiento del sistema con el exterior:
•
•
•
•
•
Funcionales.
Eficiencia.
Seguridad.
Interfaz.
Etc.
• No comportamentales.
– Los que no están incluidos en los de comportamiento:
• Estándares.
• Documentación.
• Etc.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
64
Ejemplos
• El sistema debe correr sobre WINDOWS XP o
más.
• El sistema debe estar desarrollado en JAVA.
• El sistema deberá ser desarrollado en 10 meses...
• Para cualquier consulta el tiempo de respuesta
máxima será de 2 segundos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
65
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
 Procesos y ciclos de vida.
 Definición e identificación de requerimientos.
 Tipificación de requerimientos.
 Productos de ingeniería de requerimientos.
• La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
66
¿Qué es un ESRE?
• ESRE (Documento de Especificación de
Requerimientos) o SRS (Software Requirements
Specification):
– Es un documento que describe exactamente QUE es lo
que se debe CONSTRUIR.
– Captura los resultados del análisis del problema y las
características de soluciones aceptables al problema.
– Incluye solamente los requerimientos del producto.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
67
Distintas visiones de un ESRE
• Un ente estatal que llama a licitación para la
implantación de un sistema de pagos y cobros.
• Una empresa que desea disputar la licitación.
• Una empresa que desea construir un sistema para
su propio uso.
• Una empresa orientada al mercado que desea
comercializar un producto de soft.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
68
El Ente Estatal...
• Tipo: genérico.
• Objetivo: poder comparar propuestas.
• Estilo de especificación de requerimientos:
– El sistema deberá permitir operaciones de pago y cobro de
facturas.
– El sistema deberá poder funcionar on-line u off-line.
– El sistema deberá poder consolidar su información en una BD
única periódicamente.
• En estos casos el ESRE a veces se denomina Documento
de Concepto de Operaciones (DCO).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
69
La Empresa Licitante...
• Tipo: más específico.
• Objetivo: explicar cual es su propuesta en forma detallada.
• Estilo de especificación de los requerimientos:
– El sistema posibilitará definir cualquier tipo de transacciones:
pago, cobro, débito, crédito, etc.
– Las transacciones tendrán a atributos y c comportamiento de
acuerdo a su tipo a saber:
• ...
– El sistema respetará la arquitectura X y el protocolo de
comunicación y replicación Y.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
70
Las Restantes Visiones
• La empresa que lo construye para su uso:
– Tipo: sumamente específico.
– Objetivo: describir claramente el sistema para que los
desarrolladores lo construyan.
• La empresa orientada al mercado:
– Tipo: sumamente específico.
– Objetivos:
• Describir claramente el sistema para que los desarrolladores lo
construyan.
• Ser base para la política y campaña de ventas.
• Marketing: mostrar que la empresa se puede diferenciar de otras en la
forma de construir sus productos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
71
Restantes Productos de la IR
• Plan de agenda (PAGE).
– Cronograma de entrevistas.
– Lista de usuarios a relevar por cada entrevista.
– Lista de necesidades a relevar en cada
entrevista.
• Minuta de Reunión (MINREU).
– Participantes.
– Temas a tratar.
– Resoluciones.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
72
Restantes Productos de la IR
• Documento de Conceptos de Operaciones (DCO).
– Descripción del sistema.
– Necesidades que lo motivan.
– Formas de operación.
– Usuarios y sus características.
– Características operativas y restricciones de uso.
• Cuestionario tipo (CUTI).
–
–
–
–
Area de la organización.
Cargo del usuario.
Descripción de tareas que desempeña.
Etc.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
73
Temario
 Ingeniería de software en su contexto.
 Funciones de la ingeniería de software.
 Procesos y ciclos de vida.
 Definición e identificación de requerimientos.
 Tipificación de requerimientos.
 Productos de ingeniería de requerimientos.
 La ingeniería de requerimientos como proceso.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
74
Tareas de la Ing. de
Requerimientos
• Planificar el relevamiento (PAGE).
• Extraer necesidades de clientes y usuarios (ESRE
o DCO).
• Analizar el problema (ESRE+ o DCO+).
• Especificar requerimientos (ESRE++).
• Validar y verificar requerimientos (ESRE++v).
• Administrar los requerimientos (versiones del
ESRE).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
75
Ing. de Requerimientos
• Conjunto de tareas en las cuales, utilizando técnicas y
herramientas, se analiza un problema y se concluye con la
especificación de una solución (a veces más de una).
• Especificación de la solución:
– Conjunto de requerimientos del sistema que indican QUE hace el
sistema y no COMO lo hace.
• Tareas:
–
–
–
–
–
Planificación del relevamiento.
Extracción y análisis de requerimientos (definición del problema).
Especificación de requerimientos (definición del producto).
Validación de requerimientos (asegurar completitud y correctitud).
Administración de requerimientos (control de cambios por
corrección, adaptación y/o extensión).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
76
Ing. de Requerimientos (Cont.)
• Técnicas:
–
–
–
–
de relevamiento (tormenta de ideas, grupos motivacionales, etc.).
de especificación (ESREs, casos de uso, DFDs, etc.).
de validación (QFD, etc.).
de administración (casos de cambio, etc.).
• Herramientas:
– Procesadores de palabra.
– CASEs.
– Etc.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
77
Perspectivas de un Proceso
• Objetivos.
– Definir QUE hacer, QUIEN debe hacerlo, CUANDO y COMO
hacerlo para alcanzar una meta.[JACOBSON].
• Perspectivas.
–
–
–
–
–
Prescribe tareas y
actividades a realizar.
Funcional.
De los resultados.
Organizacional.
Metodológica.
Del comportamiento.
Describe productos
y servicios y sus
interrelaciones.
Indica y especifica
roles (accionistas).
Describe métodos y
herramientas de las tareas.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
78
Perspectiva de la Información
Necesidades
del Usuario
Requerimientos
Aceptados
Estándares de la
Organización
Información
del Dominio
Proceso de la IR
Sist. de Inf.
Existentes
Especificación de
Reqs. del
Sistema
Modelos del
Sistema
Regulaciones
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
79
Entradas de la IR
• Necesidades del usuario.
– Descripción de lo que el usuario necesita para apoyar sus tareas.
• Estándares de la organización.
– Para el desarrollo de los sistemas, para la administración de la
organización, etc.
• Información del dominio.
– Información general del dominio en el cual el sistema se desempeñara.
• Sistemas de información existentes.
– Información de los sistemas que interactuarán con el que se va a
especificar o sobre el sistema a ser reemplazado.
• Regulaciones.
– Gubernamentales, de la industria en que se desempeña la empresa, etc.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
80
Salidas de la IR
• Requerimientos aceptados.
– Descripción de los requerimientos del sistema que son entendibles
por los usuarios y los cuales fueron acordados y aceptados por
ellos.
• Especificación de requerimientos del sistema.
– Especificación más detallada de los requerimientos del sistema, la
cual está más orientada a los técnicos.
• Modelos del sistema.
– Distintos modelos del sistema que lo describen desde distintas
perspectivas (funcional, estructural, comportamiento).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
81
Perspectiva Funcional
•
•
•
•
•
Planificar el relevamiento.
Extracción de requerimientos.
Análisis de requerimientos.
Especificar requerimientos.
Validar y verificar requerimientos.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
82
Perspectiva Funcional
•Necesidades
del Usuario
•Estándares de
la Organización
Planificación
Extracción
Requerimientos
Aceptados
Especificación de
Reqs. del
Sistema
•Información del
Dominio
•Sist. de Inf.
Existentes
Modelos del
Sistema
Análisis
Especificación
•Regulaciones
Validación
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
83
Extracción de Requerimientos
• Tarea orientada al descubrimiento de los
requerimientos a partir, fundamentalmente,
de las necesidades de los usuarios e
información del dominio.
• Es el relevamiento o trabajo de campo
directa con los usuarios.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
84
Análisis de Requerimientos
• Los requerimientos relevados en la tarea anterior
se analizan en detalle con el fin de:
–
–
–
–
Eliminar conflictos entre requerimientos.
Eliminar solapamientos de requerimientos.
Eliminar requerimientos superfluos.
Negociar requerimientos con los usuarios y lograr su
aceptación.
• Responde a: ¿hemos relevando los requerimientos
correctos?
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
85
Especificación de Requerimientos
• Los requerimientos aceptados en la tarea
anterior son especificados a nivel de detalle
adecuado para:
– Legibilidad de los usuarios.
– Legibilidad de los técnicos.
• Se especifican en el ESRE y/o el DCO.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
86
V&V de Requerimientos
• Tarea de control de los requerimientos que busca
asegurar:
– Completitud.
– Correctitud.
• Se validan y verifican los requerimientos del
sistema y no los requerimientos de los usuarios.
• Responde a: ¿hemos relevando los requerimientos
correctamente?
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
87
Perspectiva del Comportamiento
Punto de
Decisión
Especificación Informal
Planificación/
Extracción
Análisis
Reqs.
ESRE y
Reporte de
Aceptados
Validación
Validación
Especificación
ESRE preliminar
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
88
Perspectiva Organizacional
• Agentes o actores.
– Personas involucradas en el proceso de IR.
•
•
•
•
•
•
•
•
Analistas de Requerimientos.
Gerente del Proyecto.
Diseñadores.
Usuarios (beta y finales).
Clientes.
Expertos del dominio.
Auditores.
Usuarios umbral (se benefician de los resultados del sistema).
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
89
La Importancia de los Requerimientos
• [Estudio de Boehm].
• El 45% de los defectos detectados son por mala o
poca especificación de requerimientos.
• Estos defectos fueron detectados en la etapas más
tardías del desarrollo.
• Cuanto antes se encuentre un defecto más barato
será corregirlo.
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
90
Costos de Reparación
FASE
COSTO
R eq u erim ien to s
1
D iseñ o
5
P ru eb a U n itaria
20
P o st-L an zam ien to 2 0 0
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
91
COSTOS DE REPARACION
200
150
100
50
-L
an
za
m
ie
nt
o
Po
st
Un
ita
ria
Pr
ue
ba
D
is
eñ
o
0
R
eq
ue
rim
ie
nt
os
COSTO
250
FASES
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
92
Bibliografía
• Capítulo 2, Software Requirements Engineering, Richard Thayer and
Merlin Dorfman.
• Capítulo 1, Software Requirements: Objects, Functions and States,
Alan Davis.
• Capítulo 1, Object Oriented Modeling and Design, James Rumbaugh.
• Capítulos 2 y 4, Software Engineering, 5ta. Edición, Ian Sommerville.
• Capítulo 2, Requirements Engineering - Process and Techniques,
Kontoya and Sommerville.
• A Rational Development Process, Philippe Kruchten,
http://www.rational.com/sitewide/support/whitepapers/
Ingeniería de Requerimientos. Introducción. Alvaro Ortas.
93
Descargar

Ingeniería de Requerimientos