ingeniería de software requerimientos. contenido conceptos básicos definiciones guía práctica...

28
Ingeniería de Software Requerimientos

Upload: arcelia-barraza

Post on 20-Feb-2015

52 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Ingeniería de SoftwareRequerimientos

Page 2: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Contenido

Conceptos básicos

Definiciones

Guía práctica para la especificación de requerimientos

Proceso y etapas en la especificación de requisitos

Productos del proceso

Page 3: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Conceptos básicos

La ingeniería de Requisitos es una manera sistemática de identificar, organizar, comunicar, y administrar los requisitos y el cambio de ellos

Es una tarea grupal, más que individual

Es un proceso iterativo de estudio de necesidades, análisis funcional, síntesis, optimización, definición, diseño, prueba y evaluación

El éxito o fracaso de un proyecto depende en gran medida de la calidad de los requisitos formulados y el grado al cual el cliente ha comprendido estos.

Page 4: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Conceptos básicos

Cuál es la problemática de los requisitos en el proceso de desarrollo ?

• Usuarios no saben lo que quieren

• Usuarios cambian de parecer

• El mercado es cambiante

• desarrolladores creen saber mejor que el usuario lo que el usuario necesita

• estimaciones basadas en requisitos incompletos con contratos poco claros

Page 5: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Conceptos básicos

Cuál es el papel de los requisitos en el proceso de desarrollo ?

• Requisitos ocupan entre un 10% y un 15% de los recursos del proyecto

• El énfasis actual está en dedicar más recursos a definir el problema

• La primera tarea es la de estimar plazos, esfuerzo y costo. Sin una buena especificación no se puede estimar

“La parte más difícil en la construcción de un sistema de software es decidir qué construir...Ninguna otra parte del trabajo deja como inválido al sistema resultante si no está hecho correctamente, ninguna otra parte es tan difícil de corregir después...” Fred Brooks

Page 6: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definiciones

Qué es un requisito ?

1) Una condición o capacidad necesitada por un usuario para resolver un problema o lograr un objetivo

2) Condición o capacidad que debe ser alcanzada, o poseída por un sistema o componente del sistema para satisfacer un contrato, estándar, especificación, u otro documento formalmente impuesto

3) Una representación documentada de una condición o capacidad como en 1) o 2)

Page 7: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definiciones

Qué es un requisito de Sistema ?

Son las características funcionales, no funcionales y de interfaz que debe poseer un sistema para satisfacer las necesidades de los usuarios

• Son enunciados desde la perspectiva del usuario final

• Deben ser lo más libre de detalles de implementación posible

Qué es un requisito de Software ?

Son aquellas funciones, capacidades o interfaces que en el diseño del sistema fueron asignados a ser implementados mediante software

Page 8: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definiciones

Hay varios tipos de requisitos:• Funcionales del producto

• No funcionales del producto

• Actividades del proceso

Características de Requisitos:

• Precisión, es decir, no es ambiguo

• Enunciado gramaticalmente correcto

• Consistente técnicamente

• Consistente en su terminología (siempre se debe usar el mismo término para referirnos a lo mismo)

• Comprobable

• Ausencia de términos indefinidos

• Contiene referencias explícitas

•Completo (incluso indicar lo obvio)

• Trazable

Page 9: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Funcionales / No funcionales

Los Requisitos funcionales describen servicios o funciones

Los Requisitos No-funcionales son un límite en el sistema o en el proceso de desarrollo.

Page 10: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definición y Especificación

Definición de Requerimientos Una declaración en un Lenguaje Natural

incluye los diagramas de los servicios del sistema y sus límites operacionales. Escrito para clientes.

Especificación de Requerimientos Un documento estructurado con descripción o

detalle de los servicios del sistema. Escrito como un contrato entre el cliente y el contratista.

Especificación de Software Descripción detallada de software, la cual,

puede servir como una base para diseño o implementación. Escrito para desarrolladodres.

Page 11: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definición y Especificaciones

Definición de Requerimientos

1. El Software proporciona significado de representación y acceso a archivos externos creados por otras herramientas.

Especificación de Requerimientos

1.1 El usuario debe proporcionar facilidades para definir el tipo de archivos externos.1.2 Cada tipo de archivo externo puede tener una herramienta asociada. La cual, será aplicada para el archivo.1.3 Cada tipo de archivo externo será representado como un icono específico mostrado al usuario.1.4 Las facilidades proporcionadas para la representación del icono en un tipo de archivo externo será definido por el usuario.1.5 Cuando un usuario selecciona una representación de icono de un archivo externo, el efecto de la selección es aplicar las herramientas asociadas con el tipo de archivo ex- terno al archivo representado por la selección del icono.

Page 12: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

¿Quiénes leen (o deberían leer) los requerimientos?

Gerencia de ClienteUsuarios Finales del SistemaIngenieros de ClientesArquitectos del Sistema

Definición deRequerimientos

RequerimientosEspecificación de

Usuarios Finales del SistemaIngenieros de ClienteArquitectos del SistemaDesarrolladores de Software

Especificación deSoftware

Ingenieros de ClientesArquitectos del SistemaDesarrolladores de Software

Page 13: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

El Proceso de la Ingeniería de Requerimientos

Estudio de Factibilidad

Análisis deRequerimientos

Definición deRequerimientos

Especificaciónde Requerimientos

Reporte deFactibilidad

Modelos delSistema

Documento deRequerimientos

Definición deRequerimientos

Especificación deRequerimientos

Page 14: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Estudio de Factibilidad Encuentran los usuarios actuales que sus necesidades

son satisfechas dada la tecnología y el presupuesto disponible?

Análisis de Requerimientos Encontrar que el sistema requiere del mantenimiento de

intereses. Definición de Requerimientos

Definir los requerimientos en una forma comprensible para el cliente.

Especificación de Requerimientos Define los requerimientos en detalle.

El Proceso de la Ingeniería de Requerimientos

Page 15: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Documento de Requerimientos

Es la declaración oficial de lo que es requerido para que el sistema sea desarrollado.

Incluye la definición y especificación de requerimientos.

No es un documento de diseño. Tanto como sea posible, es un conjunto de lo que es el sistema y como lo hará.

Page 16: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Requerimientos del Documento de Requerimientos

Especificación de la conducta externa del sistema.

Especificar los límites de la implementación. Fácil de cambiar. Sirve como una herramienta de referencia

para mantenimiento. Recuerda el ciclo de vida del sistema, esto

es, predice cambios. Proporciona respuestas características a un

evento no esperado.

Page 17: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Definición de Requerimientos No-funcionales. Definir las limitantes del sistema y el proceso de

desarrollo. Evolución del Sistema.

Definir las suposiciones fundamentales en las cuales el sistema se basa y se anticipan los cambios.

Especificación de Requerimientos. Especificación detallada de los requerimientos

funcionales del sistema. Apéndices. Indice.

Requerimientos del Documento de Requerimientos

Page 18: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Validación de los Requerimientos

Demostración de que los requerimientos que definen el sistema son lo que el cliente realmente quiere.

Los costos de errores en los requerimientos son altos, por lo cual, la validación es muy importante. Fijar un error de requerimiento después del

desarrollo puede resultar en un costo 100 veces mayor que fijar un error en la implementación.

El Prototipado es una técnica importante de la validación de requerimientos.

Page 19: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Chequeo de requerimientos

Validación. Provee al sistema las funciones que mejor soporten las necesidades del cliente?

Consistencia. Existe cualquier conflicto en los requerimientos?

Completo. Están incluidas todas las funciones requeridas por el cliente?

Realismo. Pueden los requerimientos ser implementados con la tecnología y el presupuesto disponible?

Page 20: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Revisión de Requerimientos

Una revisión regular puede ayudar mientras la definición de requerimientos está siendo hecha.

Tanto el cliente como el staff de contratistas deben estar involucrados en la revisión.

La revisión debe ser formal (con los documentos completos) o informal. Una buena comunicación entre desarrolladores, clientes y usuarios puede resolver problemas en las primeras etapas.

Page 21: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Chequeo de la revisión

Verificabilidad. Es el Requerimiento realmente probable?

Entendibilidad. Es el Requerimiento comprendido propiamente?

Probabilidad. Es el origen de los requerimientos claramente establecido?

Adaptabilidad. Puede el requerimiento ser cambiado sin causar un gran impacto en otros requerimientos?

Page 22: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Evolución de los Requerimientos

Los requerimientos siempre involucran como comprender mejor el desarrollo de las necesidades de los usuarios y como los objetivos de la organización pueden cambiar.

Es esencial planear posibles cambios en los requerimientos cuando el sistema sea desarrollado y utilizado.

Comprensión Inicialdel Problema

Comprensión de losCambios del Problema

RequerimientosIniciales

Cambios en losRequerimientos

Page 23: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Guía práctica

• La organización debe ser jerárquica y comprensible por el usuario

• Debe ser organizados lógicamente (por función o categoría/objeto/subsistema)

• Cada requisito debe tener una identificación única

• Se debe usar una numeración multinivel (X.Y.Z.W) que permita el desarrollo de un árbol con ramificaciones

• Se debe incluir comentarios explicativos del raciocinio detrás del requisito para que se sepa el “porqué”

• Se debe distinguir entre requisitos mandatorios y no mandatorios. También se habla de “negociables” y “No Negociables”

Page 24: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Proceso y etapas

Etapa de recolección de información

• Se identifican los usuarios afectados

• Se identifica el contexto operativo del problema

• Se identifican sistemas similares

• Se hace un análisis de contexto

Etapa de compilación y clasificación de requisitos

• Se obtiene la lista de funciones

• Se clasifican las funciones y se agrupan

Etapa de racionalización y evaluación

• Se realiza una abstracción del sistema para responder a la pregunta: ¿Por qué se necesita esto?

• Se capta el raciocinio detrás de los requisitos

Page 25: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Proceso y etapas

Etapa de priorización

• Se determina la prioridad relativa de los requisitos entre ellos

Etapa de integración y validación

• Se intenta definir asuntos pendientes

• Se valida que los requisitos formulados estén en concordancia con los objetivos

Page 26: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Productos del proceso

El producto principal que resulta de un proceso de definición de requisitos es un documento donde aparecen los requisitos funcionales, no funcionales y las limitaciones sobre la implementación y diseño

El objetivo de este producto es

• proveer un mecanismo para lograr un acuerdo entre las partes,

• proveer una base para el diseño del sistema,

• proveer un punto de partida para definir los requisitos del software,

• proveer una base para la estimación de esfuerzo y costos del proyecto y,

• proveer un punto de referencia para la validación del sistema

Page 27: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

Resumen

Es muy difícil formular una especificación de requerimientos completa y consistente.

Una definición de requerimientos, una especificación de requerimientos y una especificación de Software son una manera de especificar el Software para diferentes tipos de personas (lectores de requerimientos).

El Documento de Requerimientos es una descripción para clientes y desarrolladores.

Page 28: Ingeniería de Software Requerimientos. Contenido Conceptos básicos Definiciones Guía práctica para la especificación de requerimientos Proceso y etapas

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.

Los requerimientos volátiles dependen del contexto en que se use el sistema.

Resumen