Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

24
ESPECIFICACIÓN DE REQUERIMIENTOS Janet Chumpitaz Miranda [email protected] e

Transcript of Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

Page 1: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS

Janet Chumpitaz [email protected]

Page 2: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS

¿Qué son requerimientos?

“Una condición o capacidad que debe estar presente en un sistema o componentes de sistema para

satisfacer un contrato, estándar, especificación u otro documento formal”.

(Std 610.12-1900, IEEE: 62)

“Un requerimiento es simplemente una declaración abstracta de alto nivel de un servicio que debe

proporcionar el sistema o una restricción de éste”. (Sommerville, 2005: 108)

Los requerimientos especifican lo que el sistema debe de hacer (sus funciones) y sus propiedades esenciales y deseables.

Es una necesidad documentada sobre el contenido, forma o funcionalidad de un producto o servicio.

Son declaraciones que identifican: atributos, características y cualidades que debe de cumplir un sistema para que tenga valor y utilidad para el usuario.

Page 3: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS

¿Qué características debe de tener un requerimiento?

a) Encontrarse especificado por escrito: Ya que constituye un acuerdo entre varias

partes.

b) Posible de comprobar o verificar: Si no se puede comprobar, entonces cómo se

sabrá si se desarrolló o no.

c) Conciso: Debe ser fácil de leer y entender por cualquier tipo de lector

considerando su simplicidad y claridad para quienes lo consulten a futuro.

d) Completo: No necesita ampliar detalles a su redacción, proporciona la

información suficiente para su comprensión.

e) Consistente: No se contradice con otro requerimiento.

f) No ambiguo: Tiene una sola interpretación, no confunde al lector.

Page 4: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS

ADICIONALMENTE

a) Deben expresarse en forma individual.

b) Deben estar organizados jerárquicamente (distintos niveles de detalle).

c) Deben tener un código que los identifique.

d) Deben indicar su justificación y quién lo propuso.

e) Deben indicar cuáles son los criterios de aceptación (para verificar su cumplimiento).

<id> <nombre descriptivo>[Versión] <nº versión>(<fecha de versión>)Descripción El sistema deberá <descripción del requisito general del sistema>

[Importancia] <justificación del requisito para el cliente>[Prioridad] <prioridad del requisito para la dirección del proyecto>Comentarios <comentarios adicionales sobre el requisito general>

Page 5: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS FUNCIONALES

INDICAN QUÉ DEBE DE HACER EL SISTEMA (FUNCIONES)

• Son declaraciones de servicios que debe de proporcionar el sistema, es decir la

manera cómo se debe de comportar o reaccionar a situaciones particulares.

• Pueden ser:

• Evidentes: Deben desarrollarse y el usuario debe estar consciente de que

se realiza.

Por ejemplo: El sistema debe permitir a los usuarios modificar el contenido

de una noticia.

• Ocultas: Deben realizarse pero no ser visibles para los usuarios.

Por ejemplo: El sistema debe procesar el texto escrito para validar la

ortografía.

Page 6: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS FUNCIONALES

Matrícula:REQF01: El sistema deberá preguntar al alumno cuál es el plan de estudios en el que desea matricularse (pueden ser varios).

REQF02: El sistema deberá generar una copia impresa de la constancia de matrícula una vez finalizada la operación por parte del alumno.

REQF03: El sistema deberá bloquear la matrícula para aquellos alumnos que mantengan deudas pendientes.

REQF04: El sistema deberá organizar cronológicamente las reservas, siendo las más antiguas las más prioritarias y las más recientes las menos prioritarias. .

Ejemplos de requerimientos funcionales:

Son claros, concisos y verificables, organizados jerárquicamente y desglosados en requisitos individuales.

Page 7: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS FUNCIONALES

Su especificación debe tener las siguientes características:

a) Su redacción deberá ser comprensible para usuarios con y sin

conocimientos técnicos de informática.

b) Deben especificar el comportamiento externo del sistema y evitar, en la

medida de lo posible, establecer características de su diseño técnico.

c) Deben encontrarse priorizadas y poder identificar cuáles son obligatorios y

cuáles son deseables.

Page 8: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS NO FUNCIONALES

INDICAN CÓMO DEBE DE SER EL SISTEMA

Prácticamente son restricciones que tiene la solución de software que se va a desarrollar, por ejemplo:

• Restricciones en rendimiento: tiempo y espacio.• Interfaces de usuario: dispositivos de e/s• Fiabilidad: Robustez del sistema, disponibilidad de la solución.• Mantenimiento• Seguridad• Portabilidad• Estándares• Herramientas (de desarrollo)• Software• Plazos de entrega

Page 9: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS NO FUNCIONALES

De ser posible deben ser redactados cuantitativamente para su posterior validación.

¿Está bien o mal especificado?

a) El sistema será lo más fácil de usar posible.

b) El sistema proporcionará una respuesta rápida al usuario.

c) El sistema se recuperará automáticamente al producirse un fallo.

¿Cómo valido que han sido desarrollados correctamente?

No es posible porque la especificación es vaga, muy general y está abierta a que tenga muchas interpretaciones.

Page 10: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS NO FUNCIONALES

Los mismos requerimientos NO funcionales especificados de forma que pueda realizarse una verificación posterior

a) El sistema será lo más fácil de usar posible.

Un usuario debe ser capaz de utilizar todas las funciones del sistemas tras un

entrenamiento de 2 horas, tras el cual no cometerá más de 3 errores diarios en

promedio.

b) El sistema proporcionará una respuesta rápida al usuario.

Cuando haya 40 usuarios accediendo de forma simultánea, el tiempo de respuesta

del sistema deberá ser como máximo de 10 segundos.

c) El sistema se recuperará automáticamente al producirse un fallo.

Ante un fallo o caída del sistema, la restauración no debe demorar más de 5

minutos (en un estado válido).

Page 11: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS NO FUNCIONALES

Infraestructura/Hardware/Software:REQNF01: La solución de software deberá implementarse considerando la infraestructura existente en los laboratorios de la Universidad al momento de realizar el estudio, es decir:

• Monitor de características xyz.• CPU de características abc..• Etc…

REQNF02: No es posible adquirir ninguna licencia de software.

REQNF03: La aplicación deberá ser implementada en PHP y utilizar como gestor de base de datos Oracle.

Ejemplos de requerimientos no funcionales:

Son claros, concisos y verificables

Page 12: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

REQUERIMIENTOS FUNCIONALES – NO FUNCIONALES

Problemática:Muchas veces es complicado distinguir si se trata de un requerimientos

funcional o no funcional, a veces no resulta evidente

Por ejemplo:A nivel de seguridad, una especificación no funcional puede indicar:

Únicamente debe permitirse el acceso a la web a alumnos de la universidad debidamente verificados.

Sin embargo:Durante su elaboración puede llevarnos a definir nuevos requerimientos funcionales, por ejemplo: El sistema deberá permitir al coordinador dar el alta a los usuarios que podrán acceder al portal web.

¿Qué es importante?Incluirlos, ya sea en una sección u otra, lo importante es especificarlos correctamente

Page 13: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

PROBLEMÁTICA EN LA DEFINICIÓN DE REQUERIMIENTOS

• Los requerimientos no son obvios y vienen de muchas fuentes.

• Son difíciles de expresar en palabras (el lenguaje es ambiguo).

• La cantidad de requerimientos en un proyecto puede ser difícil de manejar.

• Un requerimiento puede cambiar a lo largo del ciclo de desarrollo.

• El usuario no puede explicar lo que hace

• Tiende a recordar lo excepcional y olvidar lo rutinario

• Hablan de lo que no funciona

• Los usuarios tienen distinto vocabulario que los desarrolladores.

• Usan el mismo término con distinto significado

“Ingeniería de Requerimientos ayuda a los ingenieros de software a entender mejor el problema en cuya solución trabajarán. Incluye el conjunto de tareas que conducen a comprender cuál será el impacto del

software sobre el negocio, qué es lo que el cliente quiere y cómo interactuarán los usuarios finales con el software”. (Pressman, 2006: 155)

“La ingeniería de requerimientos es el proceso de desarrollar una especificación de software. Las especificaciones pretender comunicar las necesidades del sistema del cliente a los desarrolladores del

sistema”. (Sommerville, 2005: 82)

Page 14: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

SRS

Page 15: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

¿Qué es ERS (SRS)?

Es el documento que contiene la descripción completa del sistema que se va a desarrollar.

Su estructura ha sido definida por IEEE y si bien no se requiere que se siga estrictamente, para su correcto entendimiento debería contener:

1. Definición del ámbito del sistema: a. Damos un nombre al sistema: Mi sistemab. Se realiza una explicación de lo que sistema hará y no hará.c. Se describen los beneficios, objetivos y metas que se espera alcanzar con el sistema

que se desarrollará.

2. Acrónimos, abreviaturas, definiciones.

Page 16: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

3. Descripción general del sistema: No se describen los requisitos, si no su contexto.Permitirá entender con mayor facilidad los requerimientos descritos a continuación.

• Perspectiva del software:• En caso se encuentre relacionada con otros sistemas.

‘Mi sistema’ interactúa con cuatro productos de software. Los cuales serán comerciales, por lo tanto adquiridos y no desarrollados. Son los siguientes:

• Sistema de contabilidad, que solicitará, todas las quincenas, el reporte de asistencias de los empleados, con lo cual calculará el sueldo correspondiente. �

• Etc…

Page 17: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

3. Descripción general del sistema: Continuación…

• Funciones del software• Resumen a grandes rasgos de las funciones del sistema.

Por ejemplo: El sistema permitirá realizar la gestión de las cuentas de los usuarios, el seguimiento de las compras realizadas en línea.

La solución a desarrollar contiene las secciones siguientes:Contendrá una sección web de administración, a través de la cual únicamente los usuarios registrados podrás gestionar los contenidos.

Contendrá una sección móvil que podrá ser descargada e instalada en dispositivos Android y permitirá realizar compras. No es posible registrarse por este medio.

Etc…

Page 18: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

3. Descripción general del sistema: Continuación…

• Características de los usuarios• Describiendo características generales de cada usuario, incluyendo nivel

educacional, experiencia y experiencia en tecnología.

Por ejemplo: El sistema tiene tres usuarios: Profesores, alumnos y coordinadores académicos.El usuario profesor tiene las siguientes características:- Formación universitaria.- Utiliza frecuentemente las herramientas informáticas.- Etc…

Page 19: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

3. Descripción general del sistema: Continuación…

• Restricciones del software• Se deberá describir aquellas limitaciones que se imponen sobre los

encargados de desarrollar el software.

Por ejemplo: El sistema tiene tres usuarios: Profesores, alumnos y coordinadores académicos.El usuario profesor tiene las siguientes características:- Formación universitaria.- Utiliza frecuentemente las herramientas informáticas.- Etc…

• Requisitos futuros: Futuras mejoras al sistema, que podrán analizarse o implementarse a futuro.

Page 20: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

4. Requisitos específicos: Todo requisito especificado debe describir el comportamiento externo del sistema, perceptible por usuarios y otros sistemas, es la sección mas larga e importante del documento.

a. Requerimientos funcionales: Subsección (mas larga del documento) debe especificar todas aquellas funciones (acciones) que deberá llegar a cabo el software. Si es necesario pueden considerarse gráficas y tablas, pero siempre supeditadas al lenguaje natural y no al revés.

Pueden estar organizados de múltiples formas, considerando:i. Tipos de usuarioii. Objetivosiii. Tipos de aplicacionesiv. Seccionesv. Jerarquía funcional: cuáles se efectúan primero

Page 21: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

continuación:

4. Requisitos específicos: Todo requisito especificado debe describir el comportamiento externo del sistema, perceptible por usuarios y otros sistemas, es la sección mas larga e importante del documento.

b. Requerimientos no funcionalesi. Requisitos tecnológicos

− El sistema debe permitir el acceso concurrente de 40 usuarios.ii. Requisitos de rendimiento

− El sistema debe permitir el acceso concurrente de 40 usuarios.iii. Reglas del negocio

− La constancia de pago únicamente podrá ser el voucher.− Ningún empleado tiene tolerancia en la hora de ingreso.− Etc…

iv. Requisitos de diseñov. Otros requisitos

Page 22: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ESPECIFICACIÓN DE REQUERIMIENTOS DEL SISTEMA

Bibliografía:

IEEE STD 830. "Especificaciones de los requisitos del Software“

Ian Sommerville. Ingeniería de Software.

Page 23: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ERS – TRABAJO PRÁCTICO

En base al proyecto que usted y su grupo definió:

Iniciar el desarrollo del documento de Especificación de requerimientos según la plantilla adjunta, desarrollar y entregar las secciones en las fechas indicadas:

1. Sección Requerimientos Específicos:a. Requerimientos funcionales: Divididos por secciones generales, por ejemplo:

i. Aplicación WebRegistro de clientes− REQW01: El sistema deberá permitir el registro de cualquier usuario a través del

portal.− REQW02: El sistema deberá solicitar a los usuarios los datos siguientes: DNI,

nombres, etc.− REQW03: El sistema deberá generar un código para cada cliente.Consulta de productos− REQW04: El sistema deberá permitir visualizar los productos registrados que

tengan stock (mayor que 1).

ii. Aplicación MóvilSección N− Requerimiento M01: …

Fecha de entrega: 02 de mayo

Documento de Microsoft Word 97-2003

Page 24: Modelamiento_de_Sistemas_-_Semana_05_-_Sesion_02_-_Requerimientos

ERS – TRABAJO PRÁCTICO

Continuación…

1. Sección Requerimientos Específicos:

b. Requerimientos no funcionalesi. Requisitos tecnológicos

− Requisitos de hardware.− Requisitos de software.− Requisitos de infraestructura.

ii. Requisitos de rendimiento− El sistema debe permitir el acceso concurrente de 40 usuarios.− El tiempo de respuesta deberá ser, como máximo de 10 segundos.− Etc…

iii. Reglas del negocio− La constancia de pago únicamente podrá ser el voucher.− Ningún empleado tiene tolerancia en la hora de ingreso.− Etc…

iv. Otros requisitos

Fecha de entrega: 02 de mayo

Documento de Microsoft Word 97-2003