Post on 18-Jul-2022
CAPÍTULO 6:Introducción a los requerimientos.
Ing. Alejandra Colina V.
Julio, 2019
• Conocer los paradigmas (los métodos y los modelos) existentes
para el análisis de los requerimientos.
Objetivo del capítulo
Contenido
Requerimientos
Del modelo de proceso al
requerimientoIngeniería de
requerimientos
Proceso de requerimientos
y agente del proceso
Captura de requerimientoRequerimientos: funcionales,
no funcionales
¿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 queel sistema es capaz de hacer con el objeto de satisfacerel propósito del sistema, lo que ha sido apropiadamentedocumentado y validado por el solicitante.
Los requerimientos tratan exclusivamente sobre losfenómenos del dominio de aplicación y no sobre lamaquina 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.
Un problema por resolver.
• No se deben incluir aspectos de diseño, que especifiquen como debenimplementarse tales requerimientos, ni detalles de planeación delproyecto o de las pruebas.
• Todo software tiene requerimientos que lo definen y quizás la partemás difícil, es la decisión de qué es lo que se debe construir.
¡CUIDADO!
Se debe separar lo que se requiere de cómo se requiere que el sistema sea diseñado.
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 funcionales describen 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 obtienen de el dominio de la
aplicación del sistema y que reflejan suscaracterísticas.
Interfase Hombre-Maquina
Pantalla ° Teclado
Sistemas de Control y
Conteo de BilletesSistema de
Comunicaciones
Lector de
Tarjeta de Crédito
Sistema de
Control del
Cajero Automático
•Cliente
•Representante
del Banco
•Personal de
Mantenimiento
Base de Datos
Del Banco
Sistema de
Comunicaciones
del Banco
Análisis
de Riesgos
¿Cuáles funcionalidades pueden identificar de este SISTEMA?
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.
El proceso de recopilar, analizar y verificar las necesidades
del cliente para un sistema de software.
Propósito
Entregar una especificación de requerimientos
de software correcta y completa.
Mejorar la forma en que comprendemos y
definimos sistemas de software complejos.
Se define como:
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
• Debe incluir todos los requerimientos del cliente y del ambiente donde este estará operando.
FLEXIBLE
• Los requerimientos están sujetos a constantes cambios.
Pasos principalesEntender el problema: definición
Describir el problema:
especificación
Verificar la naturaleza del
problema: validación
Ponerse de acuerdo en
los limites del problema:
negociación
Este es un proceso iterativo
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á.
Estructura del Documento de Requerimientos
• Describe la necesidad de crear el sistema y cuales son sus objetivosde negocio.
Introducción.
• Define los términos técnicos usados.
Glosario.
• Define los modelos mediante los cuales se muestran los componentes del sistema y las relaciones entre ellos.
Modelos del Sistema.
• Define los servicios que serán proporcionados.
Definición de Requerimientos Funcionales.
Estructura del Documento de Requerimientos
• Definir las restricciones del sistema y el proceso de desarrollo.
Definición de Requerimientos No-funcionales.
• Definir las suposiciones fundamentales en las cuales el sistema se basa y los cambios que preveen.
Evolución del Sistema.
• Especificación detallada de los requerimientos funcionales del sistema.
Especificación de Requerimientos.
• Descripción de la plataforma de Hardware del Sistema.
• Requerimientos de la base de Datos
Apéndices.
Indice.
Requerimientos Definición/Especificación
• Una declaración en un Lenguaje Natural incluye los diagramas de los servicios del sistema y sus límites operacionales. Escrito para clientes.
Definició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 Requerimientos
• Descripción detallada de software, la cual, puede servir como una base para diseño o implementación. Escrito para desarrolladores.
Especificación de Software
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 limitanuestras elecciones en la construcción de una solución alproblema.
Los requerimientos no funcionales, como el rendimiento, laseguridad o la disponibilidad, especifican o restringen por logeneral características del sistema como un todo.
Los requerimientos no funcionales ponen límites y restricciones al sistema.
Los requerimientos no funcionales afectan más la Arquitectura Global de un
sistema que los componentes individuales.
Un requerimiento no funcional individual podría Generar Algunos Requerimientos
funcionales relacionados que definan nuevos servicios del sistema que se requieran.
La implementación de dichos requerimientos puede propagarse a
lo largo del sistema.
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.
¿CÓMO SE CAPTURAN LOS
REQUERIMIENTOS?
1
2
3
4
5
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?
¿Qué se quiere hacer?
¿Qué problema se quiere resolver?
¿Para qué se quiere hacer el sistema?
Es necesario dar respuesta a lo siguiente:
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.
Posibles Problemas:
Las siguientes actividades ayudan a comprender lasnecesidades 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.
Taller N° 8
En pareja se desea que realice una investigación relacionada la
introducción a los requerimientos. El docente asignará a cada grupo
el tema a desarrollar para lo cual se debe investigar lo siguiente:
1. Mencione y describa tres artefactos (herramientas gráficas) demodelado para el desarrollo de software orientada a objetos.
2. Mencione y describa tres artefactos (herramientas gráficas) demodelado para el desarrollo estructurado de software.
Taller N° 8
En pareja se desea que realice una investigación relacionada la introducción a los
requerimientos. El docente asignará a cada grupo el tema a desarrollar para lo cual se
debe investigar lo siguiente:
3. Descubra las ambigüedades u omisiones en el siguiente enunciado derequerimientos de un sistema de emisión de boletos:
“Un sistema automatizado de emisión de boletos vende boletos de ferrocarril. Losusuarios seleccionan su destino e ingresan un número de tarjeta de crédito y uno deidentificación personal. El boleto de ferrocarril se emite y se carga en su cuenta detarjeta de crédito. Cuando el usuario oprime el botón start, se activa una pantalla demenú con los posibles destinos, junto con un mensaje que pide al usuario seleccionarun destino. Una vez seleccionado el destino, se solicita a los usuarios ingresar sutarjeta de crédito. Se comprueba su validez y luego se pide al usuario ingresar unidentificador personal. Cuando se valida la transacción crediticia, se emite el boleto”.
Taller N° 8
4. Describa utilizando las descripciones en lenguaje natural losrequerimientos de usuario aceptable para las siguientes funciones:
• Un sistema dispensador de gasolina no asistido que incluya un lectorde tarjeta de crédito. El cliente pasa la tarjeta en el lector, luegoespecifica la cantidad de combustible requerido. Se suministra elcombustible y se deduce de la cuenta del cliente.
• La función de dispensar efectivo en un cajero automático.
• La función de revisión y corrección ortográfica en un procesador detextos.