Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
) Curso 07/08
MODULO I:
Introducción al Desarrollo de
Sistemas Software
Tema 3:
Ingeniería de Requisitos (IR)
Contenidos
0. Estudio del Dominio del problema
1. Ingeniería de Requisitos (IR)
1.1 Definición de IR
1.2. El concepto de Requisito
1.3. Las dimensiones de los Requisitos
1.4. Propiedades deseables de los Requisitos
2. Modelos de Procesos de IR
2.1. Actividades del Proceso.
2.2. Otros modelos de Procesos.
2.2.1. Modelo de Pohl.
2.2.2. Modelo Espiral
2.2.3. Modelo SWEEBOK
3. Adquisición de Requisitos
3.1. Problemas de la Elicitación de Requisitos.
3.2. Técnicas de Adquisición de Requisitos.
3.3. Propuesta metodológica para la Adquisición de Requisitos.
4. Análisis de Requisitos.
3.1. Modelado de Sistemas de Información.
3.2. Rastreabilidad entre Requisitos-C y Requisitos-D.
3.3. Propuesta metodológica para el Análisis de Requisitos.
5. Validación y Verificación de Requisitos.
5.1. Técnicas de Validación de Requisitos.
5.2. Propuesta metodológica para la Validación de Requisitos.
1
Ingeniería del Software I (4º I.I.) Curso 07/08
z Se podría decir que el trabajo del analista no busca el éxito, sino que
intenta evitar el fracaso.
2
Ingeniería del Software I (4º I.I.) Curso 07/08
zTareas básicas:
Los participantes:
Dentro del estudio del dominio del problema hay dos
colectivos implicados:
• Usuarios.
- Intentan reformular su concepto, algo nebuloso, del
dominio del problema.
• Analistas.
- Actúan como la persona que “interroga”, consulta e
intenta comprender y describir una realidad que
desconocen.
3
Ingeniería del Software I (4º I.I.) Curso 07/08
Los usuarios:
El analista:
4
Ingeniería del Software I (4º I.I.) Curso 07/08
• Cuestionarios.
• Técnicas de grupo.
Entrevistas
• Reunión con uno o dos usuarios para recabar información sobre el sistema
tanto actual como futuro.
Problemas
5
Ingeniería del Software I (4º I.I.) Curso 07/08
6
Ingeniería del Software I (4º I.I.) Curso 07/08
Ingeniería de Sistemas
Ingeniería de Sistemas
7
Ingeniería del Software I (4º I.I.) Curso 07/08
Ingeniería de Requisitos
8
Ingeniería del Software I (4º I.I.) Curso 07/08
1. Introducción
1. Introducción
9
Ingeniería del Software I (4º I.I.) Curso 07/08
z Tres enfoques desde los que se debe abordar la IR para lograr las
especificaciones finales de los requisitos:
10
Ingeniería del Software I (4º I.I.) Curso 07/08
11
Ingeniería del Software I (4º I.I.) Curso 07/08
12
Ingeniería del Software I (4º I.I.) Curso 07/08
13
Ingeniería del Software I (4º I.I.) Curso 07/08
14
Ingeniería del Software I (4º I.I.) Curso 07/08
15
Ingeniería del Software I (4º I.I.) Curso 07/08
16
Ingeniería del Software I (4º I.I.) Curso 07/08
17
Ingeniería del Software I (4º I.I.) Curso 07/08
18
Ingeniería del Software I (4º I.I.) Curso 07/08
19
Ingeniería del Software I (4º I.I.) Curso 07/08
20
Ingeniería del Software I (4º I.I.) Curso 07/08
21
Ingeniería del Software I (4º I.I.) Curso 07/08
22
Ingeniería del Software I (4º I.I.) Curso 07/08
3. Elicitación de Requisitos
23
Ingeniería del Software I (4º I.I.) Curso 07/08
2. Problemas de comunicación:
• Los clientes y usuarios y los desarrolladores tienen culturas y
vocabularios diferentes, con la posibilidad de que los mismos
términos tengan significados distintos en los distintos
vocabularios, o que su significado se vea enormemente afectado
por el contexto.
• Las preocupaciones sobre el sistema a desarrollar son distintas.
Mientras los clientes y usuarios suelen preocuparse por aspectos
de alto nivel como facilidad de uso o fiabilidad, los
desarrolladores suelen preocuparse por aspectos de bajo nivel
como utilización de recursos, algoritmos, etc.
Es importante no olvidar que el principal interés de los clientes
no es un sistema software en sí mismo, sino los efectos positivos
resultantes de la introducción del sistema en su organización.
• El medio de comunicación que se utilice debe ser entendible por
todos los participantes. Se suele utilizar lenguaje natural porque
es el único medio de comunicación común a todos los
participantes, a pesar de su inherente ambigüedad.
24
Ingeniería del Software I (4º I.I.) Curso 07/08
5. Problemas técnicos
z El software tiene que resolver problemas cada vez más complejos,
por lo que sus requisitos son también cada vez más complejos y
contemplan detalles cada vez más específicos del dominio del
problema.
z Los requisitos cambian en el tiempo.
z Otra fuente de cambios es el hecho de que el hardware y el
software cambian rápidamente, haciendo asequibles requisitos que
antes eran inabordables por su complejidad o por su coste.
z En algunos sistemas puede haber muchas fuentes de requisitos, por
lo que a veces no basta con consultar con los clientes y usuarios,
sino que también es necesario hacerlo con técnicos, personal de
mantenimiento, consultar normativas, estándares, etc.
z Es necesario tener también en cuenta que los sistemas novedosos
requieren un esfuerzo mucho mayor de elicitación, y que las fuentes
de información pueden ser muy distintas dependiendo de la
naturaleza del sistema a desarrollar
25
Ingeniería del Software I (4º I.I.) Curso 07/08
Entrevistas:
z Las entrevistas son la técnica de elicitación más utilizada, y de hecho son
prácticamente inevitables en cualquier desarrollo ya que son una de las
formas de comunicación más naturales entre personas.
z En las entrevistas se pueden identificar tres fases: preparación, realización y
análisis.
Brainstorming.
z El brainstorming o tormenta de ideas es una técnica de reuniones en grupo
cuyo objetivo es la generación de ideas en un ambiente libre de críticas o
juicios.
z El brainstorming puede ayudar a generar una gran variedad de vistas del
problema y a formularlo de diferentes formas, sobre todo al comienzo del
proceso de elicitación, cuando los requisitos son todavía muy difusos.
z Frente al JAD, el brainstorming tiene la ventaja de que es muy fácil de
aprender y requiere poca organización.
z Por otro lado, al ser un proceso poco estructurado, puede no producir
resultados con la misma calidad o nivel de detalle que otras técnicas
26
Ingeniería del Software I (4º I.I.) Curso 07/08
27
Ingeniería del Software I (4º I.I.) Curso 07/08
28
Ingeniería del Software I (4º I.I.) Curso 07/08
Plantilla de objetivos
OBJ–<id> <nombre descriptivo>
Versión <nº de la versión actual> (<fecha de la versión actual>)
Autores • <autor de la versión actual> (<organización del autor>)
• ...
Fuentes • <fuente de la versión actual> (<organización de la fuente>)
• ...
Descripción El sistema deberá <objetivo a cumplir por el sistema>
Subobjetivos • OBJ–x <nombre del subobjetivo>
• ...
Importancia <importancia del objetivo>
Urgencia <urgencia del objetivo>
Estado <estado del objetivo>
Estabilidad <estabilidad del objetivo>
Comentarios <comentarios adicionales sobre el objetivo>
29
Ingeniería del Software I (4º I.I.) Curso 07/08
30
Ingeniería del Software I (4º I.I.) Curso 07/08
Requisitos de almacenamiento
31
Ingeniería del Software I (4º I.I.) Curso 07/08
Requisitos de almacenamiento
Requisitos de almacenamiento
32
Ingeniería del Software I (4º I.I.) Curso 07/08
Plantilla de actores
33
Ingeniería del Software I (4º I.I.) Curso 07/08
Actores
34
Ingeniería del Software I (4º I.I.) Curso 07/08
35
Ingeniería del Software I (4º I.I.) Curso 07/08
36
Ingeniería del Software I (4º I.I.) Curso 07/08
37
Ingeniería del Software I (4º I.I.) Curso 07/08
38
Ingeniería del Software I (4º I.I.) Curso 07/08
Portada
Lista de cambios
Índice
Lista de figuras
Lista de tablas
1 Introducción
2 Participantes en el proyecto
3 Descripción del sistema actual [opcional]
4 Objetivos del sistema
5 Catálogo de requisitos del sistema
5.1 Requisitos de almacenamiento de información
5.2 Requisitos funcionales
5.2.1 Diagramas de casos de uso
5.2.2 Definición de actores
5.2.3 Casos de uso del sistema
5.3 Requisitos no funcionales
6 Matriz de rastreabilidad objetivos/requisitos
7 Conflictos pendientes de resolución [opcional, pueden ir en un documento aparte]
8 Glosario de términos [opcional]
Apéndices [opcionales]
Matriz de trazabilidad
39
Ingeniería del Software I (4º I.I.) Curso 07/08
4. Análisis de Requisitos
40
Ingeniería del Software I (4º I.I.) Curso 07/08
z Rastreabilidad:
requisitos–D <-> requisitos–C
41
Ingeniería del Software I (4º I.I.) Curso 07/08
42
Ingeniería del Software I (4º I.I.) Curso 07/08
43
Ingeniería del Software I (4º I.I.) Curso 07/08
44
Ingeniería del Software I (4º I.I.) Curso 07/08
45
Ingeniería del Software I (4º I.I.) Curso 07/08
46
Ingeniería del Software I (4º I.I.) Curso 07/08
47
Ingeniería del Software I (4º I.I.) Curso 07/08
1. Walkthroughs
z Técnica de revisión de productos, tradicionalmente asociada con
inspecciones de código, definida en el glosario de términos de IEEE
como:
técnica de análisis estático en la que un programador o
diseñador dirige a miembros del equipo de desarrollo u otras
personas interesadas a través de un segmento de
documentación o código y los participantes realizan comentarios
sobre posibles errores, violaciones de estándares de desarrollo y
otros problemas.
z Objetivo: encontrar conflictos (defectos, omisiones, contradicciones)
en el producto que se revisa (casos de uso), de forma que puedan
plantearse alternativas y los participantes aumenten su
conocimiento sobre el producto en cuestión.
z Durante las sesiones de walkthrough, el autor del producto recorre
el producto a revisar en detalle, permitiendo que los participantes
pongan de manifiesto sus opiniones sobre el mismo.
z En la organización es similar al JAD.
48
Ingeniería del Software I (4º I.I.) Curso 07/08
z Clases de prototipos:
• Prototipos orientados a clientes/usuarios o prototipos–C
Interfaz de usuario: independientemente de que su naturaleza sea
evolutiva o de usar y tirar, o de que sean prototipos en papel o
ejecutables
49
Ingeniería del Software I (4º I.I.) Curso 07/08
z Técnica: Walkthrough
Entrada = Prototipos de interfaz + requisitos funcionales (casos de
uso)
Exige = Rastreabilidad req. almacenamiento y funcionales
z Resultados:
• Requisitos de almacenamiento de información, los requisitos
funcionales y el prototipo validados total o parcialmente.
• Conflictos=> nuevas sesiones de adquisición/negociación.
http://klendathu.lsi.us.es/REM/
50