• No se han encontrado resultados

CAPÍTULO 6: Introducción a los requerimientos. Ing. Alejandra Colina V. Julio, 2019

N/A
N/A
Protected

Academic year: 2022

Share "CAPÍTULO 6: Introducción a los requerimientos. Ing. Alejandra Colina V. Julio, 2019"

Copied!
41
0
0

Texto completo

(1)

CAPÍTULO 6:

Introducción a los requerimientos.

Ing. Alejandra Colina V.

Julio, 2019

(2)

• Conocer los paradigmas (los métodos y los modelos) existentes para el análisis de los requerimientos.

Objetivo del capítulo

(3)

Contenido

Requerimientos

Del modelo de proceso al requerimiento

Ingeniería de requerimientos

Proceso de requerimientos y agente del proceso

Captura de requerimiento Requerimientos: funcionales,

no funcionales

(4)
(5)

¿QUÉ ES UN REQUERIMIENTO?

(6)

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).

(7)

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.

(8)

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.

(9)

• 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 de cómo se requiere que el sistema sea diseñado.

(10)

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

(11)

▪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 sus

características.

(12)

Interfase Hombre-Maquina Pantalla ° Teclado

Sistemas de Control y

Conteo de Billetes Sistema 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?

(13)

INGENIERÍA DE REQUERIMIENTOS

(14)

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.

(15)

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:

(16)

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.

(17)

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.

(18)

Pasos principales

Entender 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

(19)

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á.

(20)

Estructura del Documento de Requerimientos

• Describe la necesidad de crear el sistema y cuales son sus objetivos de 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.

(21)

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.

(22)

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

(23)

REQUERIMIENTOS: FUNCIONALES,

NO FUNCIONALES

(24)

REQUERIMIENTOS FUNCIONALES

(25)

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.

(26)

REQUERIMIENTOS NO FUNCIONALES

(27)

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.

(28)

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.

(29)

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.

(30)

Tipos de requerimientos no funcionales

(31)

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.

(32)

¿CÓMO SE CAPTURAN LOS

REQUERIMIENTOS?

(33)

1

2

3

4

5

(34)

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.

(35)

¿CÓMO SE COMPRENDE EL

PROBLEMA?

(36)

¿Qué se quiere hacer?

¿Qué problema se quiere resolver?

¿Para qué se quiere hacer el sistema?

Es necesario dar respuesta a lo siguiente:

(37)

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:

(38)

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.

(39)

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) de modelado para el desarrollo de software orientada a objetos.

2. Mencione y describa tres artefactos (herramientas gráficas) de modelado para el desarrollo estructurado de software.

(40)

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 de requerimientos de un sistema de emisión de boletos:

“Un sistema automatizado de emisión de boletos vende boletos de ferrocarril. Los usuarios seleccionan su destino e ingresan un número de tarjeta de crédito y uno de identificación personal. El boleto de ferrocarril se emite y se carga en su cuenta de tarjeta de crédito. Cuando el usuario oprime el botón start, se activa una pantalla de menú con los posibles destinos, junto con un mensaje que pide al usuario seleccionar un destino. Una vez seleccionado el destino, se solicita a los usuarios ingresar su tarjeta de crédito. Se comprueba su validez y luego se pide al usuario ingresar un identificador personal. Cuando se valida la transacción crediticia, se emite el boleto”.

(41)

Taller N° 8

4. Describa utilizando las descripciones en lenguaje natural los requerimientos de usuario aceptable para las siguientes funciones:

• Un sistema dispensador de gasolina no asistido que incluya un lector de tarjeta de crédito. El cliente pasa la tarjeta en el lector, luego especifica la cantidad de combustible requerido. Se suministra el combustible 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 de textos.

Referencias

Documento similar

Se llega así a una doctrina de la autonomía en el ejercicio de los derechos que es, en mi opinión, cuanto menos paradójica: el paternalismo sería siempre una discriminación cuando

• Consiste en una estructuración de los factores en una jerarquía multinivel, con un conjunto de factores de más alto nivel, unos criterios que descomponen dichos factores,

Pero como "el fin egoísta en su rela- ción y condicionado por la generalidad constituye un sistema de correspondencia total, puesto que la sub- sistencia y el bienestar

Los recintos serán una clase de artefactos técnicos (producidos por transformación de materias y productos por medio de otros artefactos) caracterizables como

La parte más importante de los datos mostrados son los distintos niveles de accesibilidad personalizados para cada colectivo destinatario de esta aplicación (usuarios de sillas

Con esta máquina es posible realizar diversas operaciones de medida directa sobre una pieza, apoyándose en elementos geométricos sencillos y de fácil comprensión para conseguir

Esta generación de DSPs está caracterizada por su nivel de integración de señales junto con un procesador de gran rendimiento, memoria interna de tipo Flash,

En este proyecto se ha unificado el desarrollo de aplicaciones para dispositivos móviles S40 de Nokia con la tecnología NFC, dando como resultado la aplicación “Smart-Info UPCT”,