Especificación de Requisitos Software Según El Estándar de IEEE 830
Especificación de Requisitos Software Según El Estándar de IEEE 830
Especificación de Requisitos Software Según El Estándar de IEEE 830
Universitat Jaume I
2000-2001
Resumen
Palabras Clave
Índice
1 Introducción................................................................................................................1
3.1 Corrección............................................................................................................3
3.4 Verificabilidad......................................................................................................4
3.6 Clasificación.........................................................................................................5
5 Conclusiones .............................................................................................................11
6 Bibliografía ...............................................................................................................12
1 Introducción
El análisis de requisitos es una de las tareas más importantes en el ciclo de vida del desarrollo
de software, puesto que en ella se determinan los “planos” de la nueva aplicación.
En cualquier proyecto software los requisitos son las necesidades del producto que se debe
desarrollar. Por ello, en la fase de análisis de requisitos se deben identificar claramente estas
necesidades y documentarlas. Como resultado de esta fase se debe producir un documento de
especificación de requisitos en el que se describa lo que el futuro sistema debe hacer. Por
tanto, no se trata simplemente de una actividad de análisis, sino también de síntesis.
El análisis de requisitos se puede definir como el proceso del estudio de las necesidades de los
usuarios para llegar a una definición de los requisitos del sistema, hardware o software, así
como el proceso de estudio y refinamiento de dichos requisitos, definición proporcionada por
el IEEE [Piattini, 1996]. Asimismo, se define requisito como una condición o capacidad que
necesita el usuario para resolver un problema o conseguir un objetivo determinado [Piattini,
1996]. Esta definición se extiende y se aplica a las condiciones que debe cumplir o poseer un
sistema o uno de sus componentes para satisfacer un contrato, una norma o una
especificación.
En la determinación de los requisitos no sólo deben actuar los analistas, es muy importante la
participación de los propios usuarios, porque son éstos los que mejor conocen el sistema que
se va a automatizar. Analista y cliente se deben poner de acuerdo en las necesidades del nuevo
sistema, ya que el cliente no suele entender el proceso de diseño y desarrollo del software
como para redactar una especificación de requisitos software (ERS) y los analistas no suelen
entender completamente el problema del cliente, debido a que no dominan su área de
trabajo.
Así pues, el documento de especificación de requisitos debe ser legible por el cliente, con lo
que se evita el malentendido de determinadas situaciones, ya que el cliente participa
activamente en la extracción de dichos requisitos.
2 Objetivos de la ERS.
3. Servir de base para desarrollos de estándares de ERS particulares para cada organización:
Cada entidad puede desarrollar sus propios estándares para definir sus necesidades.
Una buena especificación de requisitos software ofrece una serie de ventajas entre las que
destacan el contrato entre cliente y desarrolladores (como ya se ha indicado con anterioridad),
la reducción del esfuerzo en el desarrollo, una buena base para la estimación de costes y
planificación, un punto de referencia para procesos de verificación y validación, y una base
para la identificación de posibles mejoras en los procesos analizados.
La ERS es una descripción que debe decir ciertas cosas y al mismo tiempo debe decirlas de una
determinada manera. En este documento se presentará una de las formas que viene
especificada por el estándar IEEE 830.
Una ERS forma parte de la documentación asociada al software que se está desarrollando, por
tanto debe definir correctamente todos los requerimientos, pero no más de los necesarios.
Esta documentación no debería describir ningún detalle de diseño, modo de implementación o
gestión del proyecto, ya que los requisitos se deben describir de forma que el usuario pueda
entenderlos. Al mismo tiempo, se da una mayor flexibilidad a los desarrolladores para la
implementación.
Así pues, el grado y el lenguaje utilizado para la documentación de los requisitos estarán en
función del nivel que el usuario tenga para entender dichas especificaciones.
E78. Ingeniería del Software ERS según el estándar IEEE 830 3
Las características deseables para una buena especificación de requisitos software que se
indican en el IEEE son las siguientes [Chalmeta, 2000][Piattini, 1996]:
· Correcta
· No ambigua
· Completa
· Verificable
· Consistente
· Clasificada
· Modificable
· Explorable
3.1 Corrección
La ERS es correcta si y sólo si todo requisito que figura en ella refleja alguna necesidad real. La
corrección de la ERS implica que el sistema implementado será el sistema deseado.
3.2 Ambigüedad
Los analistas deben poner un cuidado especial a la hora de especificar los requisitos. El hecho
de utilizar el lenguaje natural para hacer la ERS comprensible a los usuarios supone un riesgo
muy elevado, porque el lenguaje natural puede llegar a ser muy ambiguo.
Ejemplo:
En términos generales, el lenguaje natural es de los más ambiguos. Por el contrario existen los
lenguajes formales que no son ambiguos, pero son más difíciles de aprender y menos
comprensibles para el que no los conoce.
3.3 Completitud
· Incluye todos los requisitos significativos del software (relacionados con la funcionalidad,
ejecución, diseño, atributos de calidad o interfaces externas).
· Existe una definición de respuestas a todas las posibles entradas, tanto válidas como
inválidas, en todas las posibles situaciones.
· Cumple con el estándar utilizado. Si hay alguna parte del estándar que no se utiliza, se debe
razonar suficientemente el porqué no se ha utilizado dicho apartado.
· Aparecen etiquetadas todas las figuras, tablas, diagramas, etc, así como definidos todos los
términos y unidades de medida empleados.
La ERS debe ser siempre completa, aunque en ocasiones esto no será posible. Por ejemplo si
todavía no se han determinado los formatos de los informes finales o por cualquier razón se
esta esperando la publicación de un Real Decreto o un reglamento sobre impuestos.
3.4 Verificabilidad
Un requisito se dice que es verificable si existe algún proceso no excesivamente costoso por el
cual una persona o una máquina pueda chequear que el software satisface dicho
requerimiento.
Ejemplo
3.5 Consistencia
Una ERS es consistente si y sólo si ningún conjunto de requisitos descritos en ella son
contradictorios o entran en conflicto. Se pueden dar tres casos:
· Las características especificadas de objetos reales. Un requisito establece que todas las luces
son verdes y otro que son azules.
· Conflicto lógico o temporal entre dos acciones determinadas. Se llega a un punto en el que
dos acciones serían perfectamente válidas (¿sumar o multiplicar?)
No verificables:
3.6 Clasificación
No todos los requisitos son igual de importantes. Los requisitos pueden clasificarse por
diversos criterios:
3.7 Modificabilidad
Una ERS es modificable si cualquier cambio puede realizarse de manera fácil, completa y
consistente. Para ello, es deseable tener una organización coherente y fácil de usar en la que
aparezca el índice o una tabla de contenidos fácilmente accesible.
Una ERS es explorable si el origen de cada requerimiento es claro tanto hacia atrás (origen que
puede ser un documento, una persona etc.) como hacia delante (componentes del sistema
que realizan dicho requisito).
Las referencias hacia delante de la ERS son especialmente importantes para el mantenimiento
del software. Cuando el código y los documentos son modificados, es esencial poder comparar
el conjunto total de requisitos que puedan verse afectados por estas modificaciones.
La siguiente figura muestra la estructura de la ERS propuesta por el IEEE en su estándar 830
[IEEE, 1998] [upm, 2000].
1 Introducción
1.1 Propósito
En esta subsección se pondrá nombre al futuro sistema, se explicará lo que el sistema hará y lo
que no hará, se describirán los beneficios, objetivos y metas que se espera alcanzar con el
futuro sistema y se mantendrán referencias a los documentos de nivel superior que puedan
existir.
1 Introducción
1.1 Propósito
1.4 Referencias
2 Descripción General
2.4 Restricciones
3 Requisitos Específicos
3.2 Funciones
4 Apéndices
5 Índice
1.4 Referencias
Esta subsección describirá brevemente los contenidos y la organización del resto de la ERS.
2 Descripción General
En esta sección se describen todos aquellos factores que afectan al producto y a sus requisitos.
En esta sección no se describen los requisitos, sino su contexto. Los detalles de los requisitos
de describen en la sección 3, detallándolos y haciendo más fácil su comprensión.
2.1.8. Operaciones
2.1.9.1. Indicar cualquier dato o secuencia de inicialización específico de cualquier lugar, modo
de operación.
2.1.9.2. Características que deben ser modificadas para una instalación en particular.
Esta subsección debe proporcionar un resumen de las funciones principales que el software
debe llevar a cabo. Las funciones deben estar organizadas de manera que el cliente o cualquier
otra persona lo entienda perfectamente. Para ello se pueden utilizar métodos textuales o
gráficos, siempre que dichos gráficos reflejen las relaciones entre funciones y no el diseño del
sistema.
En la metodología estructurada se podrían utilizar los DFDs y en una metodología orientada a
objetos, el funcionamiento y las relaciones del futuro sistema se modelarían a través de los
Casos de Uso. En ellos se representa lo que el usuario ve del sistema, así pues facilitará en gran
medida su comprensión, siempre y cuando en los diagramas se eviten las ambigüedades.
Se indica aquí el tipo de usuario al que se dirige la aplicación, así como su experiencia técnica,
nivel de conocimientos, etc.
2.4 Restricciones
Se debe indicar aquí cualquier tipo de limitación como pueden ser políticas de la empresa,
limitaciones hardware, seguridad, protocolos de comunicación, interfaces con otras
aplicaciones, estándares de la empresa en cuanto a interfaces, etc. Serán las limitaciones que
se imponen sobre los desarrolladores del producto.
En este apartado aparecerá cualquier factor, que si cambia puede afectar a los requerimientos.
No son restricciones de diseño, por ejemplo, asumir que un determinado sistema operativo
estará disponible, presuponer una cierta organización de las unidades de la empresa. Si
cambian ciertos detalles puede ser necesario revisar los requisitos.
Se indican aquí posibles mejoras del sistema en el futuro. Estas mejoras deben estudiarse y
analizarse una vez concluido y puesto en marcha el sistema. Son modificaciones a realizar en
un futuro incierto.
3 Requisitos Específicos
Los requisitos que se aquí se indiquen deben describir comportamientos externos del sistema,
observables por el usuario así como por parte de los operadores y otros sistemas.
Puesto que deben indicarse todos los requisitos, esta sección es la más larga de la ERS y debe
cumplir los principios descritos en los primeros apartados de este informe.
En esta subsección se definirán los requisitos que afecten a la interfaz de usuario e interfaz con
otros sistemas (hardware y software), así como a interfaces de comunicaciones.
3.2 Funciones
En este subsección de deben especificar todas aquellas acciones o funciones que deberá llevar
a cabo el sistema a desarrollar. Las acciones que se indican como “el sistema deberá ...” son las
que deben incluirse en este apartado.
La estructuración de las funciones a desarrollar por el nuevo sistema no está del todo claro. Se
debe tener en cuenta que en el estándar de IEEE 830 de 1983 se establecía que las funciones
de deberían expresar como una jerarquía funcional (véase anexo II), puesto que es la que
mejor se adaptaba a los DFDs que proponía el análisis estructurado. Con la evolución de la
programación y los nuevos métodos de análisis se puede observar como esta estructura no se
adapta, por tanto es necesaria la modificación de los estándares.
El estándar IEEE 830, en sus últimas versiones, permite la organización de esta subsección de
múltiples formas y simplemente sugiere alguna manera para hacerlo, dejando la oportunidad
de utilizar cualquier otra justificando suficientemente la utilización de ésta.
· Por tipo de usuario: Distintos usuarios poseen distintos requisitos. Para cada clase de usuario
que exista en la organización, se especifican los requisitos funcionales que le afecten o tengan
mayor relación con sus tareas.
· Por objetos: Los objetos son entidades del mundo real que son reflejadas en el sistema. Por
tanto, para cada objeto se detallan sus atributos y sus funciones. Los objetos se pueden
agrupar en clases. A pesar de realizar el análisis con objetos no obliga a que el diseño del
sistema siga el paradigma Orientado a Objetos, aunque lo facilita en gran medida.
· Por objetivos: un objetivo es un servicio que se desea que ofrezca el sistema y que requiere
una determinada entrada para obtener su resultado.
Para cada objetivo o subobjetivo requerido al sistema, se detallarán las funciones que
permitan llevarlo a cabo.
· Por jerarquía funcional: La funcionalidad del sistema se especifica como una jerarquía de
funciones que comparten entradas, salidas o datos del propio sistema. Para cada función y
subfunción del sistema se detallará la entrada, el proceso en el que interviene y la salida.
Normalmente este tipo de análisis implica que el diseño siga el paradigma de diseño
estructurado.
Por lo general éste sistema se utiliza cuando ninguno de los anteriores se puede aplicar.
E78. Ingeniería del Software ERS según el estándar IEEE 830 10
Como se puede apreciar, el estándar propone una serie de plantillas según el tipo de sistema
con el que nos enfrentemos. Pero en muchas ocasiones la elección se realiza por eliminación, o
lo que es lo mismo, se escoge aquel que mejor se adapta a lo que se busca.
En esta subsección se incluyen los requisitos relacionados con la carga que se espera que tenga
que soportar el sistema (número de usuarios simultáneos, número de terminales ...).
Asimismo, se pueden incluir los requisitos que afecten a la información que se vaya a guardar
en la base de datos (cantidad de registros en una base de datos, frecuencia de uso...)
Se incluyen aquí todas las restricciones que afecten al diseño de la aplicación, como pueden
ser estándares internos de la organización, limitaciones hardware, etc.
4 Apéndices
Se incluirá aquí cualquier tipo de información relacionada con la ERS, pero que no forme parte
de la misma. Por ejemplo, se incluirían los resultados del análisis de costes, restricciones
especiales acerca del lenguaje de programación...
5 Índice
5 Conclusiones
El análisis y la especificación de los requisitos puede parecer una tarea relativamente sencilla,
pero, en realidad, el contenido del análisis es muy denso y abundan las malas interpretaciones
o la falta de información. Es muy difícil evitar la ambigüedad.
El análisis de requisitos es la fase más importante en el desarrollo de un proyecto software, ya
que es en esta fase en la que el usuario indica las especificaciones del futuro sistema, porque
de un correcto análisis dependerá la correcta implementación de la aplicación.
La mejor manera de acercar ambas partes es hacer que el cliente forme parte activa del
análisis de requisitos permitiendo que pueda interpretarlo y revisarlo. Las últimas tecnologías
utilizadas para la obtención de requisitos permiten una mejor comprensión de los documentos
de especificaciones, que hasta ahora eran demasiado técnicos para la correcta comprensión
por parte del usuario.
Estas técnicas modernas son los casos de uso, que forman parte del UML. Ésta es la principal
herramienta utilizada para el diseño completo de proyectos software orientado a objetos. Los
casos de uso modelan el sistema desde el punto de vista del usuario, permitiéndole así la
comprensión completa del futuro sistema. El nuevo producto se muestra en forma de
“historieta”.
El hecho de enfocar el análisis de requisitos hacia el usuario tiene una doble ventaja: por un
lado evita las tendencias del informático hacia un diseño técnico que permita optimizaciones
innecesarias o complicaciones añadidas; por otro lado, la participación del usuario en el
proceso y la utilización de su lenguaje cotidiano en la redacción de los casos de uso facilita la
identificación de las necesidades del sistema.
Finalmente, se debe indicar que esta fase es posiblemente la más costosa (temporalmente) en
el desarrollo de un producto software. Esto se debe a que, en general, el cliente no sabe
realmente lo que quiere y requiere la ayuda de los analistas para concretar las funciones que
realmente se han de implementar. Por tanto, de la calidad del documento de ERS dependerá el
desarrollo y calidad del producto final. La existencia de un estándar, como es el presentado en
este trabajo, para la ERS (IEEE 830) permite la coherencia en la especificación de requisitos y
ayuda a no dejar cabos
sueltos.
6 Bibliografía
1999.
[Davis A., 1995]: Davis A. 201 Principles of Software Development. 1ª ed. McGraw-Hill, 1995.
[Gause, 1989]: Gause D.C. y G.M. Weinberg. Exploring Requirements: Quality before design.
Dorset House, 1989.
[Pierre-Alain, 1997]: Pierre-Alain M. Modelado de objetos con UML. 1ª ed. Ediciones Gestión
2000 S.A, Barcelona, 1997.
[cern, 2000]: Web con un amplio glosario de términos de Ingeniería del software.
http://dxsting.cern.ch/sting/glossary.html
Engineers). http://www.computer.org/
http://www.thehathway.com/
[upm, 2000]: Web de la universidad politécnica de Madrid, aparecen algunos artículos sobre la
IEEE 830 y sobre análisis de requisitos en general.
http://www.upm.com.
Caso de uso: herramienta que modela los servicios que ofrece el sistema a través de un
diálogo entre un actor y el sistema. Acciones del usuario y reacciones del sistema.
“Un caso de uso es una secuencia de transacciones proporcionadas por el sistema que
proporcionan un resultado mensurable de valores a un actor particular”
DFD: Diagrama de Flujo de Datos. Es un diagrama en forma de red que representa el flujo de
datos y las transformaciones que se aplican sobre ellos al moverse desde la entrada hasta la
salida del sistema. Se utiliza para modelizar las funciones del sistema y los datos que fluyen
entre ellas a distintos niveles de abstracción. El sistema, por tanto, se modela mediante un
conjunto de DFS nivelados en el que los niveles superiores definen las funciones del sistema de
forma general u los niveles inferiores definen estas funciones en niveles más detallados.
Validación de los requisitos: Proceso de confirmación, por parte de los usuarios o del cliente,
de que los requisitos especificados son válidos, consistentes, completos, etc.
Así pues, se presenta un esquema de los pasos a seguir en una metodología estructurada
según el estándar IEEE 830 de 1983.
Dicha versión del estándar IEEE 830 propone tres posibles modelos para la sección 3 de una
ERS [Chalmeta, 2000].
Modelo 1
3. Requerimientos específicos
3.1.1.1. Introducción
3.1.1.2. Entradas
3.1.1.3. Proceso
3.1.1.4. Salidas
..........
.......
3.5. Atributos
3.5.1. Seguridad
3.5.2. Mantenimiento
.......
.......
Modelo 2
3. Requerimientos específicos
3.1.1.1. Especificación.
3.1.1.1.1. Introducción
3.1.1.1.2. Entradas
3.1.1.1.3. Proceso
3.1.1.1.4. Salidas
......
.......
3.4. Atributos.
3.4.1. Seguridad.
3.4.2. Mantenimiento.
........
3.5.2. Operaciones.
.......
Modelo 3
3. Requerimientos específicos.
3.1.1.1. Introducción
3.1.1.2. Entradas
3.1.1.3. Proceso
3.1.1.4. Salidas
3.1.1.7. Atributos-
3.1.1.7.1. Seguridad
3.1.1.7.2. Mantenimiento
.........
........
.......
.......
3.2.1.3. Atributos.
3.2.1.3.1. Seguridad
3.2.1.3.2. Mantenimiento
.......
3.2.1.4.2. Operaciones
.......