1.4.1.- Especificación de requerimientos



Requerimientos

Un requerimiento es una característica que debe tener el sistema, o una restricción que debe satisfacer para que sea aceptado por el cliente. La ingeniería de requerimientos pretende definir los requerimientos del sistema a desarrollar e incluye dos actividades principales: la obtención de los requerimientos , que da como resultado una especificación que el cliente comprende, y el análisis, que da como resultado un modelo de análisis que los desarrolladores pueden interpretar sin ambigüedad.

La obtención de requerimientos hace indispensable la colaboración de varios grupos de expertos en sus dominios y que tienen una idea general de lo que debe hacer el sistema, pero que, generalmente, tienen muy poca experiencia en el desarrollo de software. Por otro lado, los desarrolladores tienen experiencia en la construcción de sistemas pero, con frecuencia, tienen muy poco conocimiento del entorno de trabajo de los usuarios.

Los escenarios y los casos de uso proporcionan herramientas para tender puentes entre ambos grupos. Un escenario describe un ejemplo de uso del sistema, desde el punto de vista de una serie de interacciones entre el usuario y el sistema. Un caso de uso es una abstracción que describe una clase de escenarios. Tanto los escenarios como los casos de uso se escriben en lenguaje natural, una forma que es comprensible para el usuario.

Los desarrolladores obtienen los requerimientos observando a los usuarios y entrevistándolos. Primero, los desarrolladores representan los procesos de trabajo actuales del usuario como escenario, y luego desarrollan escenarios visionarios en donde se describe la funcionalidad que proporcionará el sistema a desarrollar. El cliente y los usuarios validan la descripción del sistema revisando los escenarios y probando los prototipos pequeños proporcionados por los desarrolladores. Conforme madura y se estabiliza la definición del sistema, los desarrolladores y el cliente se ponen de acuerdo en una especificación del sistema en forma de casos de uso.

Obtención de requerimientos

La obtención de requerimientos se enfoca en la descripción del propósito del sistema. El cliente, los desarrolladores y los usuarios identifican un área problema y definen un sistema que ataca el problema. A tal definición se le llama especificación del sistema y sirve como contrato entre el cliente y los desarrolladores.

La especificación del sistema se estructura y formaliza durante el análisis para producir un modelo de análisis. Tanto la especificación del sistema como el modelo de análisis representan la misma información. Difieren sólo en el lenguaje y la notación que usan. La especificación del sistema está escrita en lenguaje natural, mientras que el modelo de análisis se expresa, por lo general, en una notación formal o semiformal.

La especificación del sistema da soporte a la comunicación con el cliente y los usuarios. El modelo de análisis da soporte a la comunicación entre los desarrolladores. Ambos son modelos del sistema en el sentido que de que tratan de representar con precisión los aspectos externos del sistema. Tomando en cuenta que ambos modelos representan los mismos aspectos del sistema, la obtención de requerimientos y el análisis se desarrollan en forma concurrente e iterativa.

La obtención de requerimientos y el análisis se enfocan sólo en la visión que tiene el usuario acerca del sistema. Por ejemplo, la funcionalidad del sistema, la interacción entre el usuario y el sistema, los errores que el sistema puede detectar y manejar, y las condiciones ambientales en las que funciona el sistema son parte de los requerimientos. La estructura del sistema, la tecnología de desarrollo y otros aspectos que no son visibles en forma directa para el usuario no son parte de los requerimientos.

La obtención de los requerimientos incluye las siguientes actividades.

1.- Identificación de actores. Los desarrolladores identifican los diferentes tipos de usuario que soportará el sistema futuro.

2.- Identificación de escenarios. Los desarrolladores observan a los usuarios y desarrollan un conjunto de escenarios detallados para la funcionalidad típica que proporcionará el sistema futuro. Los escenarios son ejemplos concretos del uso del sistema futuro. Los desarrolladores usan estos escenarios para comunicarse con los usuarios y profundizar su comprensión del dominio de la aplicación.

3.- Identificación de los casos de uso. Una vez que los desarrolladores y usuarios se ponen de acuerdo en un conjunto de escenarios, los desarrolladores derivan, a partir de los escenarios, un conjunto de casos de uso que representan por completo al sistema futuro. Mientras que los escenarios son ejemplos concretos que ilustran un solo caso, los casos de uso son abstracciones que describen todos los casos posibles. Cuando se describen los casos de uso, los desarrolladores determinan el alcance del sistema.

4.- Refinamiento de los casos de uso. Los desarrolladores se aseguran que la especificación del sistema esté completa, detallando cada caso de uso y describiendo el comportamiento del sistema en presencia de errores y condiciones excepcionales.

5.- Identificación de las relaciones entre casos de uso. Los desarrolladores consolidan el modelo de caso de uso, eliminando redundancias. Esto asegura que la especificación del sistema sea consistente.

6.- Identificación de requerimientos no funcionales. Los desarrolladores, usuarios y clientes se ponen de acuerdo en aspectos que son visibles ante el usuario pero que no están relacionados en forma directa con la funcionalidad. Esto incluye restricciones en el desempeño del sistema, su documentación, los recursos que consume, su seguridad y su calidad.

Estándar para la especificación de requerimientos

El IEEE( Institute of Electronic and Electrical Engineers, Instituto de Ingenieros Electrónicos y Eléctricos) estableció el estándar IEEE 830-1993 para la especificación de requerimientos, cuyo contenido se muestra a continuación.

1. Introducción

1.1 Propósito

1.2 Alcance

1.3 Definiciones, acrónimos y abreviaturas

1.4 Referencias

1.5 Panorama

2. Descripción general

2.1 Perspectiva del producto

2.1.1 Interfaces del sistema

2.1.2 Interfaces de usuario

2.1.3 Interfaces de hardware

2.1.4 Interfaces de software

2.1.5 Interfaces de comunicación

2.1.6 Restricciones de memoria

2.1.7 Operaciones

2.1.8 Restricciones de adaptación del sitio

2.2 Funciones de producto

2.3 Características del usuario

2.4 Restricciones

2.5 Suposiciones y dependencias

2.6 Distribución de requerimientos

3. Requerimientos específicos

4. Información de apoyo

Bibliografía:

1.- Bernd Bruegge , Allen H. Dutoit ; "Ingeniería de software orientado a objetos ";
Pearson Educación de México; México; 2002.
Capítulo 4

2.- Eric J. Braude; "Ingeniería de Software: Una perspectiva orientada a objetos";
Alfaomega Grupo Editor; México; 2003.
Capítulo 3



Página anterior Página siguiente