domingo, 29 de septiembre de 2013

Análisis de requisitos. Análisis estructurado. Modelización

: Análisis de requisitos. Análisis estructurado. Modelización conceptual de funciones.

Objetivo de la Unidad de Trabajo: Introducir los fundamentos del análisis de requisitos y la metodología
de análisis estructurado.
(Tiempo estimado: 15 períodos)


Hechos/conceptos (contenidos soporte)
ü  Introducción al análisis de requisitos (A.R.). Características de una buena especificación de requisitos de software (E.R.S.). Documentación de la E.R.S.

ü  Análisis estructurado como método de A.R. Ampliaciones: Análisis estructurado (A.E.) moderno. 

ü  Componentes. Etapas de desarrollo de un sistema con A.E.

ü  Modelización conceptual de funciónes. Diagrama de flujo de datos (D.F.D.). Diccionario de datos. Técnicas para construir especificaciones de procesos. Diagramas de descomposición funcional (D.D.F.). Tipos de comprobaciones a realizar sobre una especificación estructurada

ANÁLISIS DE REQUISITOS
3.1.- INTRODUCCIÓN AL ANALISIS DE REQUISITOS

Como se dijo en capítulos anteriores, el término análisis aplicado a sistemas significa
descomponer el sistema en sus componentes para estudiar cada uno de ellos tanto como un
ente aislado como en interacción con el resto de los componentes.
Para ser útil, al análisis debe seguir un proceso de síntesis que consistirá en unir los
componentes del sistema para determinar cómo funcionan en conjunto.
Cuando se habla de una fase del ciclo de vida, el análisis consiste en producir un
documento de especificación de requisitos que describa lo que el sistema debe hacer, pero
no cómo hacerlo. No se trata pues de una actividad sólo de análisis, sino también de
síntesis.

Se define el análisis de requisitos como “el proceso del estudio de las necesidades de
los usuarios para llegar a una definición de los requisitos del sistema, de hardware o de
software, así como el proceso de estudio y refinamiento de dichos requisitos” (Estándar
IEEE Std. 610 [IEEE 1990]).

El Requisito es pues “una condición o capacidad que necesita el usuario para resolver un
problema o conseguir un objetivo determinado” (por ejemplo, poder listar rápidamente
todos los clientes que deben dinero). Por extensión, el término Requisito se aplica también
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”.

La definición de los requisitos en un proyecto debe ser fruto del trabajo conjunto de
las partes involucradas en su desarrollo: Suministradores de software (analistas), clientes
y usuarios. Ningún colectivo ante citado puede redactar la Especificación de Requisitos
Software (ERS) ya que

El cliente no suele conocer el proceso de diseño y desarrollo del software.
Los analistas no entienden completamente el problema del cliente dado que no dominan
su área de trabajo.

La fase de análisis de requisitos, según el estándar IEEE 1074 [IEEE, 1991] se desglosa
en tres grandes actividades:

Definir los requisitos de software. Tarea iterativa para crear una definición o
especificación preliminar de los requisitos que debe cumplir el software a partir de
la información obtenida mediante técnicas de recogida de información analizadas en
el capítulo anterior.

Definir los requisitos de las interfaces del software con el resto del sistema y
con el exterior. Deben definirse las propiedades que se deben satisfacer para
obtener una interacción eficaz con otros elementos del sistema (el usuario, el
hardware, otras aplicaciones software, ...). En particular la interfaz con el usuario
es crítica para la facilidad de uso (y por tanto el éxito) del software.
Los requisitos de interfaz con otras aplicaciones deben describir las características
para que el software se relacione con ellas, las cuales pueden estar muy influenciadas por
restricciones de trabajo del sistema (S.O. utilizado, SGBD empleado, Compiladores,
controladores de red, etc.).

Así mismo deben definirse las características de las interrelaciones con elementos
hardware.

Integrar los requisitos en un documento de especificación y asignarles
prioridades. La asignación de prioridades debe hacerse en función de su
importancia o los beneficios que puede aportar su cumplimiento.
Otra manera de describir las actividades que se realizan en la fase de análisis de
requisitos sería la siguiente (Raghavan, et al., 1995):

Extracción o determinación de requisitos. Proceso mediante el cual los clientes o
futuros usuarios del software descubren, revelan, articulan y comprenden los requisitos
que desean.

Análisis de requisitos. Proceso de razonamiento sobre los requisitos obtenidos en la
etapa anterior, detectando y resolviendo posibles inconsistencias o conflictos, coordinando
los requisitos relacionados entre sí, etc.

Especificación de requisitos. Proceso de redacción o registro de los requisitos. Suele
recurrirse a un lenguaje natural, lenguajes formales, modelos, gráficos, etc.

Validación de los requisitos. Confirmación, por parte del usuario o el cliente de que los
requisitos especificados son válidos, consistentes, completos, etc.

Aunque estas actividades no tienen por qué realizarse en secuencia, ya que hay muchas
iteraciones y solapamientos entre ellas, sí marcan un proceso general para la fase de
análisis.

3.2.- ESPECIFICACIÓN DE REQUISITOS DEL SOFTWARE

3.2–1.- Introducción

Según el estándar IEEE, 1990 se define:

Especificación: Documento que define, de forma completa, precisa y verificable, los
requisitos, el diseño, el comportamiento u otras características de un sistema o de un
componente de un sistema

Software: Conjunto de programas, procedimientos y documentación asociada a la
operación de un sistema informático.

Con estas premisas puede definirse la Especificación de Requisitos del Software
(ERS) como la documentación de los requisitos esenciales (funciones, rendimiento, diseño,
restricciones y atributos) del software y de sus interfaces externas [IEEE,1990].

Las dos características fundamentales de una ERS eficaz son:
Incluir información veraz, es decir, coherente con las necesidades reales del usuario
que se desean satisfacer.

Comunicar dicha información de forma veraz, es decir, de tal manera que se pueda
comprender perfectamente Las exigencias para una ERS conducen a no excederse a la hora de definirla y construirla, sino mas bien a abordar la descripción de lo que hay que desarrollar, no el cómo, el cuándo, etc. Se desarrolla el software. Esto implica:

Describir correctamente todos los requisitos de software sin incluir requisitos
necesarios.

No describir ningún detalle de diseño de software, de su verificación, de la dirección
del proyecto, excepto las restricciones impuestas al diseño que influyen en los requisitos.

3.2–2.- Características de una buena Especificación de Requisitos del Sistema (ERS)
Las características deseables para una buena ERS son las siguientes [IEEE 1984B]:

No ambigua. Cada requisito descrito debe tener una única interpretación.
Completa. Lo será si:

􀂃 Incluye todos los requisitos significativos del software
􀂃 Define la respuesta del software a todas las posibles clases de datos de
entrada y en todas las posibles situaciones, tanto para los datos válidos
como para los que no lo son

􀂃 Está conforme con el estándar de especificación que se deba cumplir
􀂃 Están etiquetadas y referenciadas en el texto todas las figuras, tablas
y diagramas
􀂃 Si algún término está por determinar, se debe acompañar de una
descripción de las condiciones que lo han causado y una posible
descripción para eliminarlo

Fácil de verificar. Existencia de algún procedimiento finito y efectivo en coste para
que se compruebe que el software satisface dicho requisito

Consistente. Lo será sí y sólo sí ningún conjunto de requisitos entran en conflicto entre
ellos. Pueden darse tres tipos de conflictos:

􀂃 Dos o más requisitos pueden describir el mismo objeto real pero utilizan
términos distintos para designarlo

􀂃 Las características especificadas de objetos reales pueden estar en
Conflicto

􀂃 Puede haber conflicto lógico o temporal entre dos acciones
Determinadas

Fácil de modificar. La estructura y el estilo de la ERS deben permitir que cualquier
cambio necesario en los requisitos pueda realizarse de forma fácil, completa y consistente.
Esto implica que la ERS debe:

􀂃 Tener una organización coherente y manejable (con una tabla de
contenidos, un índice y referencias cruzadas)

􀂃 No ser redundante, es decir, el mismo requisito no debe aparecer en
más de un lugar en la ERS

Facilidad para identificar el origen y las consecuencias de cada requisito (facilidad
de traza). Se dice que una ERS facilita las referencias con otros productos del ciclo de
vida si establece un origen claro para cada uno de los requisitos y si posibilita la referencia
de estos requisitos en desarrollos futuros o en incrementos de la documentación.
Cuando un requisito de la ERS representa un desglose o una derivación de otro
requisito, se debe facilitar tanto las referencias hacia atrás como las referencias hacia
delante en el ciclo de vida. Estas últimas son especialmente importantes para el
mantenimiento del software. Cuando el código o la documentación son modificados, es
esencial poder comprobar el conjunto total de requisitos que pueden verse afectados por
estas modificaciones.

Facilidad de utilización durante la fase de explotación y de mantenimiento. La ERS
debe considerar las necesidades de mantenimiento, incluyendo una eventual sustitución del
software, especialmente debido a:

􀂃 El personal que se encarga del mantenimiento no ha estado relacionado
con el desarrollo del producto software.

􀂃 Gran parte de los conocimientos y de la información necesaria para el
mantenimiento se dan por supuestos en la organización del desarrollo,
pero suelen estar ausentes en la organización de mantenimiento.

3.2–3.- Evolución de las ERS
Normalmente, la ERS deberá ser cambiada a medida que progresa el producto software
ya que es casi imposible especificar algunos detalles en el momento en el que se inicia el
proyecto y es casi seguro que se realizarán cambios adicionales como consecuencia de
haber encontrado deficiencias, defectos e inexactitudes que se descubren a medida que el
producto evoluciona.

En este proceso deben tenerse en cuenta las consideraciones siguientes:

El requisito debe ser especificado de la forma mas completa posible, aun en el caso en
que se prevean de forma inevitable revisiones en el proceso de desarrollo.

Debe iniciarse un proceso formal de cambio para identificar, controlar, seguir e
informar de cambios proyectados tan pronto como sean identificados

Los cambios aprobados en los requisitos deben incluirse en la ERS de forma que
permita:

Suministrar una revisión precisa y completa del rastro de las modificaciones

Permitir un examen de fragmentos actuales y reemplazados en la ERS.

3.2–4.- Estructura para las ERS
Un modelo propuesto por el estándar IEEE Std. 830 [IEEE, 1984b] es el que se
presenta a continuación:

1.- Introducción
1.1 Objetivo
1.2 Ámbito
1.3 Definiciones, Siglas y Abreviaturas
1.4 Referencias
1.5 Visión Global
2.- Descripción General
2.1 Perspectiva del producto
2.2 Funciones del producto
2.3 Características del Usuario
2.4 Limitaciones Generales
2.5 Supuestos y dependencias
3.- Requisitos específicos

Existen otras normas emitidas por otros organismos que también aportan esquemas
para documentar las ERS (DOD, 1988, DORFMAN y THYER, 1990).

3.2–5.- Especificación de requisitos de Interfaces

Las interfaces con el exterior coinciden con lo que tradicionalmente se ha llamado
entradas y salidas (E / S) del sistema. En el caso del análisis estructurado, pueden
identificarse fácilmente observando los flujos que entran y salen del sistema en el
diagrama de contexto (del que se hablará posteriormente).

En el caso de las salidas puede hablarse de las pantallas de presentación de la
información, listados o salida en papel, ficheros, etc. Las entradas serán pantallas de
introducción de datos mediante teclado, introducción de datos mediante sensores,
ficheros, etc.

TABLA II
3.- Requisitos específicos
3.1 Requisitos funcionales
3.1.1 Requisito funcional 1
3.1.1.1 Introducción
3.1.1.2 Entradas
3.1.1.3 Procesamiento
3.1.1.4 Salidas
3.1.2 Requisito funcional 2
... ... ... ... ... ...
3.1.N Requisito funcional N
3.2 Requisitos de interfaz externa
3.2.1 Interfaces de usuario
3.2.2 Interfaces de hardware
3.2.3 Interfaces de software
3.2.4 Interfaces de comunicaciones
3.3 Requisitos de ejecución
3.4 Restricciones de diseño
3.4.1 Acatamiento de estándares
3.4.2 Limitaciones hardware
... ... ... ... ... ...
3.5 Atributos de calidad
3.5.1 Seguridad
3.5.2 Mantenimiento
... ... ... ... ... ...
3.6 Otros requisitos
3.6.1 Base de datos
3.6.2 Operaciones
3.6.3 Adaptación de situación
... ... ... ... ... ...
La definición de las interfaces de E / S tiene como objetivo la estabilización del modo
en que el sistema va a interactuar con el exterior del sistema.

3.3.- VISIÓN GENERAL DE LAS TÉCNICAS DE ESPECIFICACIÓN

Sobre la clasificación de técnicas de especificación no existe una regla general por lo
que posiblemente, la forma mas lógica de hacerlo sea por orden alfabético. Sin embargo,
pueden clasificarse las técnicas bajo dos enfoques diferentes:

Por la forma de representación (gráfica, textual, matricial, DFD, DD, etc.)
Por el enfoque de Modelización bajo los que se crean modelos del sistema relativos a su
función, información y tiempo.

3.3–1.- Clasificación según la forma de representación
Gráficas. Utilizan iconos que representan un componente particular del modelo. Se usan
cuando se quiere resaltar la conexión entre los distintos componentes del modelo.

Textuales. Se utilizan para especificar con mas detalle los componentes definidos en
los gráficos mediante una gramática definida mas o menos formal.

Marcos o plantillas. (“Templates”) especifican información relativa a un componente
de un modelo que ha sido declarado en un diagrama o en otro marco. Se representan
mediante un formulario que incluye todas sus características.
En la figura se define el contenido de una entidad definida en un diagrama Entidad /
Relación.

Matriciales. Son técnicas de comprobación entre modelos que permiten estudiar las

referencias cruzadas entre sus componentes.



No hay comentarios:

Publicar un comentario