Está en la página 1de 46

Objetivo del capítulo

• Conocer los paradigmas (los métodos y los modelos) existentes


para el análisis de los requerimientos.
Contenido

Del modelo de proceso al


Proceso de requerimientos requerimiento
Ingeniería de y agente del proceso
requerimientos

Captura de requerimiento
Requerimientos: funcionales,
Requerimientos no funcionales
Unidad IIII. Ingeniería de
Requerimientos
¿QUÉ ES UN
REQUERIMIENTO?
Condición o capacidad requerida por el usuario para
resolver un problema o alcanzar un objetivo (IEEE, 1998).

Rama de la ingeniería del software que trata con el


establecimiento de los objetivos, funciones y restricciones
de los sistemas software (Zave, 1997).
Característica del sistema o una descripción de algo que el
sistema es capaz de hacer con el objeto de satisfacer el
propósito del sistema, lo que ha sido apropiadamente
documentado y validado por el solicitante.

Los requerimientos tratan exclusivamente sobre los


fenómenos del dominio de aplicación y no sobre la maquina
que los implementa.
Representan:

Factores de calidad del sistema que permitirán evaluar su utilidad a un


cliente o usuario.

Los datos de entrada al proceso de desarrollo de software y representan


lo que se requiere implementar.

Una descripción de cómo el sistema deberá comportarse, describe


información del dominio de la aplicación, describe restricciones de la
operación del sistema y especifica atributos ó propiedades del sistema.

Un problema por resolver.


• No se deben incluir aspectos de diseño, que especifiquen como
deben implementarse tales requerimientos, ni detalles de
planeación del proyecto o de las pruebas.
• Todo software tiene requerimientos que lo definen y quizás la
parte más difícil, es la decisión de qué es lo que se debe
construir.

¡CUIDADO!
• Se debe separar lo que se requiere (que se detalla con
los requerimientos) de cómo se requiere que el
sistema sea
diseñado (que se detalla en la etapa del diseño).
Características de los requerimientos

Precisos
• Deben extraer con precision lo que se desea del sistema

Completos
• Deben incluir todas las descripciones y componentes requeridos

Consistente
• No debe haber conflictos o contradicciones en las descripciones de los
requerimientos
 Los Requerimientos pueden ser Funcionales o No-Funcionales
‒ Los Requerimientos funcionalesdescriben servicios o
funciones
‒ Los Requerimientos No-funcionales son un límite en el
sistema o en el proceso de desarrollo.
 Requerimientos de Dominio
‒ Requerimientos que se obtienende el dominio de la
aplicación del sistema y que reflejan sus características.
¿Cuáles funcionalidades pueden identificar de este SISTEMA?

Base de Datos
Del Banco Análisis
de Riesgos
Lector de
Interfase Hombre-Maquina Tarjeta de
Crédito
Sistema de
Comunicaciones Pantalla ° Teclado
del Banco

Sistema de
Control
del
Cajero Automático

• Cliente
• Representante
del Banco
• Personal de
Mantenimiento Sistemas de Control y Sistema de Conteo de Billetes

Comunicaciones
INGENIERÍA DE
REQUERIMIENTOS
El proceso de establecer los servicios que el cliente requiere de
un sistema y los limites bajo los cuales opera y se desarrolla.

Las malas o ineficientes prácticas llevan invariablemente al


fracaso del desarrollo del software, y pueden ser más costosas.

Es necesaria una disciplina en el desarrollo de software a fin


de evitar que el desarrollo de software falle o que sufra de
costos excesivos.
Se define como:

El proceso de recopilar, analizar y verificar las necesidades


del cliente para un sistema de software.

Entregar una especificación de requerimientos


de software correcta y completa.
Propósito
Mejorar la forma en que comprendemos y
definimos sistemas de software complejos.
El éxito de un sistema de software se mide de acuerdo al grado con
que este y su proyecto de desarrollo cumplen con el objetivo para
el cual fueron requeridos.

El problema del desarrollo de los sistemas de software es que


los requerimientos son inherentemente dinámicos.

• Se debe a cambios por: mejoras, errores descubiertos,


adopción de nuevas tecnologías, mejoras en la comprensión
del sistema, entre otros.
El proceso de Ingeniería de Requerimientos debe ser:

PRECISO FLEXIBLE

• Debe incluir todos los • Los requerimientos


requerimientos del están sujetos a
cliente y del ambiente constantes cambios.
donde este estará
operando.
Pasos principales
Entender el
problema:
definición

Ponerse de
acuerdo en Describir el
los limites del problema:
problema: especificación
negociación

Verificar la
naturaleza del
problema:
validación
E
El Proceso de Ingeniería de Requerimientos
Estudio de Análisis de
Factibilidad Requerimientos

Definición de
Reporte de Requerimientos
Factibilidad
Especificación
Modelos del de Requerimientos
Sistema
Definición de
Requerimientos
Documento de
Requerimientos Especificación de
Requerimientos
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 no de como lo hará.
Requerimientos del Documento

Especificación del comportamiento externa del sistema.

Especificar las restricciones de la implementación.

Fácil de cambiar.

Sirve como una herramienta de referencia para el


mantenimiento.

Registro del ciclo de vida del sistema, con el fin de predecir cambios.

Caracteriza respuestas a eventos inesperados.


Estructura del Documento de Requerimientos
Introducción.
• Describe la necesidad de crear el sistema y cuales son sus objetivos
de negocio.

Glosario.
• Define los términos técnicos usados.

Modelos del Sistema.


• Define los modelos mediante los cuales se muestran los componentes
del sistema y las relaciones entre ellos.

Definición de Requerimientos Funcionales.


• Define los servicios que serán proporcionados.
Estructura del Documento de Requerimientos
Definición de Requerimientos No-funcionales.
• Definir las restricciones del sistema y el proceso de desarrollo.

Evolución del Sistema.


• Definir las suposiciones fundamentales en las cuales el sistema se
basa y los cambios que preveen.
Especificación de Requerimientos.
• Especificación detallada de los requerimientos funcionales del
sistema.
Apéndices.
• Descripción de la plataforma de Hardware del Sistema.
•Requerimientos de la base de Datos
Indice.
Requerimientos Definición/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
desarrolladores.
Tarea
Investigar las técnicas de recolección de requerimientos
REQUERIMIENTOS:
FUNCIONALES, NO
FUNCIONALES
REQUERIMIENTOS
FUNCIONALES
Describen una interacción entre el sistema y su ambiente
(comportamiento del sistema ante determinado
estímulo).
Declarar los servicios que debe proporcionar el sistema (entradas
y cómo se debe comportar en situaciones particulares).

Pueden declarar explícitamente lo que el sistema no debe hacer.

Los requerimientos funcionales de un sistema describen lo que el sistema


debe hacer.
REQUERIMIENTOS NO
FUNCIONALES
Son requerimientos que no se relacionan directamente
con los servicios específicos que el sistema entrega a sus
usuarios.

Pueden relacionarse con propiedades emergentes del


sistema, como fiabilidad, tiempo de respuesta y uso
de almacenamiento.
Describen una restricción sobre el sistema que
limita
nuestras elecciones en la construcción de una solución al problema.

Los requerimientos no funcionales, como el rendimiento, la seguridad o la disponibilidad,


especifican o restringen por lo general características del sistema como un todo.

Los requerimientos no funcionales ponen límites y restricciones al sistema.


La implementación de dichos requerimientos puede propagarse a
lo largo del sistema.

Un requerimiento no funcional
Los requerimientos no
individual podría Generar
funcionales afectan más la
Algunos Requerimientos
Arquitectura Global de un
funcionales relacionados que
sistema que los componentes
definan nuevos servicios del
individuales.
sistema que se requieran.
Tipos de requerimientos no funcionales
Requerimientos del producto
• Especifican o restringen el comportamiento del software.
• Ejemplo: rendimiento, cuánta memoria, fiabilidad, seguridad y de usabilidad.

Requerimientos de la organización
• Son requerimientos de sistemas amplios, derivados de políticas y procedimientos en la
organización del cliente y del desarrollador.
• Los ejemplos incluyen cómo se usará el sistema, requerimientos del proceso de desarrollo
y requerimientos ambientales que definen el entorno de operación del sistema.

Requerimientos externos
• Comprende todos los requerimientos derivados de factores externos al sistema y su
proceso de desarrollo. Incluyen requerimientos regulatorios, requerimientos legislativos, y
requerimientos éticos.
PROCESO DE REQUERIMIENTOS Y AGENTE
DEL PROCESO
El proceso de ingeniería de requerimientos incluyen cuatro
actividades de alto nivel.

Valoran si el sistema es útil para la empresa, descubrir


requerimientos, convertir dichos requerimientos en alguna forma
estándar y comprobar que los requerimientos definan realmente el
sistema que quiere el cliente.

La ingeniería de requerimientos es un proceso iterativo donde las


actividades están entrelazadas.
Están organizadas como un proceso iterativo alrededor de una
espiral, y la salida es un documento de requerimientos del sistema.

La cantidad de tiempo y esfuerzo dedicados a cada actividad en


cada iteración depende de la etapa del proceso global y el tipo de
sistema que está siendo desarrollado.

Al inicio del proceso, se comprenden los requerimientos


empresariales de alto nivel y los no funcionales, así como los
requerimientos del usuario para el sistema.

Posteriormente,se dedicará más esfuerzo a la adquisición y


comprensión de los requerimientos detallados del sistema.
¿CÓMO SE CAPTURAN LOS
REQUERIMIENTOS?
1 5

2 4

3
Comprender el problema que se va a resolver
• Estudiar el dominio o entorno en el que el sistema va a operar.

Buscar y recolectar información


• Del sistema a desarrollar, manuales de operación y
mantenimiento, manuales organizacionales y políticas de
operación.
Definir los límites y restricciones del sistema
• Determinar con precisión que es lo que el sistema va a hacer y
también especificar lo que no va a hacer.

Identificar a los usuarios interesados en el sistema


• Ellos conocen el medio ambiente en que operará el sistema y
pueden ayudar describiendo sus necesidades.

Recolectar y clasificar requerimientos


• Los desarrolladores pueden iniciar definiendo un bosquejo
general del sistema.
¿CÓMO SE COMPRENDE EL
PROBLEMA?
Es necesario dar respuesta a lo siguiente:

¿Qué se quiere hacer?

¿Qué problema se quiere resolver?

¿Para qué se quiere hacer el sistema?


Posibles Problemas:

El cliente no siempre define claramente el problema.

El analista de requerimientos y los desarrolladores


no comprenden la naturaleza del problema.
El analista y los desarrolladores entienden el problema pero
no saben como llevarlo a cabo.
El problema es muy amplio, vago, poco factible, o muy volátil.
Las siguientes actividades ayudan a comprender
las necesidades del cliente y los usuarios:

Identificar las tareas o funciones que describen las


necesidades del cliente (identificar los casos de uso).
Identificar los eventos del sistema y sus respuestas.

Observar a los usuarios en sus labores.

Observar reportes de problemas de los usuarios del


sistema actual.

También podría gustarte