Documentos de Académico
Documentos de Profesional
Documentos de Cultura
E
N un nivel técnico, la ingeniería del software empieza con una serie de tareas de mode-
lado que llevan a una especificación completa de los requisitos y a una representación
del diseño general del software a construir. El modelo de análisis, realmente un conjunto
de modelos, es la primera representación técnica de un sistema. Con los años se han propuesto
muchos métodos para el modelado del análisis. Sin embargo, ahora dos tendencias dominan el
panorama del modelado del análisis. El primero, análisis estructurado, es un método de mode-
lado clásico y se describe en este capítulo. El otro enfoque, análisis orientado a objetos, se estu-
dia con detalle en el Capítulo 21. En la Sección 12.8 se presenta una breve visión general de
otros métodos de análisis comúnmente usados.
El análisis estructurado es una actividad de construcción de modelos. Mediante una nota-
ción que satisfaga los principios de análisis operacional estudiada en el Capítulo 11, creamos
modelos que representan el contenido y flujo de la información (datos y control); partimos el
sistema funcionalmente, y según los distintos compohamientos establecemos la esencia de lo
que se debe construir. El análisis estructurado no es un método sencillo aplicado siempre de la
misma forma por todos los que lo usan. Más bien, es una amalgama que ha evolucionado duran-
te los últimos 30 años.
En su principal libro sobre este tema, Tom DeMarco [DEM79] describe el análisis estruc-
turado de la siguiente forma:
Observando los problemas y fallos reconocidos para la fase de análisis, se puede sugerir que necesita-
mos añadir los siguientes objetivos a la fase de análisis.
Los productos del análisis han de ser de mantenimiento muy fácil. Esto concierne concretamente al
documento final [Especificación de Requisitos del Software].
Se deben tratar los problemas de gran tamaño mediante algún método efectivo de partición. La espe-
cificación mediante novelas victonanas ya no sirve.
Siempre que sea posible, se deben utilizar gráficos.
Tenemos que diferenciar las consideraciones lógicas [esenciales] y las físicas [de implementación]. ..
Como mínimo, necesitamos .:..
Algo que nos ayude a hacer una partición de los requisitos y a documentar esas divisiones antes de
especificar ...
Algún método de seguimiento y evaluación de interfaces ...
Nuevas herramientas para describir la lógica y la táctica, algo mejores que descripciones narrativas ...
199
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRffCTICO
Es muy probable que ningún otro método de ingeniería del software haya generado tanto interés, haya sido pro-
bado (y a veces rechazado y vuelto a probar) por tanta gente, criticado y haya provocado tanta controversia. Pero
el método ha subsistido y ha alcanzado un importante seguimiento dentro de la comunidad de la ingeniería del
software.
Al igual que muchas de las contribuciones importan- El término «análisis estructurado» originalmente
tes a la ingeniería del software, el análisis estructurado acuñado por Douglas Ross, fue popularizado por
no fue introducido en un solo artículo o libro clave que DeMarco [DEM79]. En su libro sobre esta materia,
incluyera un tratamiento completo del tema. Los pri- DeMarco presentó y denominó los símbolos gráficos y
meros trabajos sobre modelos de análisis aparecieron a los modelos que los incorporan. En los años siguientes,
finales de los 60 y principios de los 70, pero la prime- Page-Jones [PAG80], Gane y Sarson [GAN82] y
ra aparición del enfoque de análisis estructurado fue muchos otros propusieron variaciones del enfoque del
como complemento de otro tema importante - e l «dise- análisis estructurado. En todos los casos, el método se
ño estructurado»-. Los investigadores (por ejemplo, centraba en aplicaciones de sistemas de información y
[STE74], [YOU78], necesitaban una notación gráfica no proporcionaba una notación adecuada para los aspec-
para representar los datos y los procesos que los trans- tos de control y de comportamiento de los problemas
forman. Esos procesos quedarían finalmente estableci- de ingeniería de tiempo real.
dos en una arquitectura de diseño. A mediados de los 80, las «ampliaciones» para tiem-
po real fueron introducidas por Ward y Mellor [WAR85]
y, más tarde, por Hatley y Pirbhai [HAT87]. Con esas
ampliaciones, se consiguió un método de análisis más
robusto que podía ser aplicado de forma efectiva a pro-
blemas de ingeniería. En la actualidad, se está inten-
tando desarrollar una notación consistente [BRUXS] y
se están publicando tratamientos modernos que permi-
tan acomodar el uso de herramientas CASE [YOU89].
200
CAPfTULO 12 M O D E L A D O DEL ANALISIS
durante el análisis del dominio de información y sir- siciones de estado a estado. El DTE sirve como la base
ve como base para el modelado de función. En una del modelado de comportamiento. Dentro de la especi-
especificación de proceso ( E P ) se encuentra una des- ficación de control (EC) se encuentra más información
cripción de cada función presentada en el DFD. sobre los aspectos de control del software.
El diagrama de transición de estados (DTE) indica El modelo de análisis acompaña a cada diagrama,
cómo se comporta el sistema como consecuencia de especificación y descripción, y al diccionario señalado
sucesos externos. Para lograr esto, el DTE representa en la Figura 12.1. Un estudio más detallado de estos ele-
los diferentes modos de comportamiento (llamados esta- mentos del modelo de análisis se presenta en las sec-
dos) del sistema y la manera en que se hacen las tran- ciones siguientes.
-
procesamiento de datos. ¿Cuáles son los objetos de datos
Dirección
primarios que va a procesar el sistema? ¿Cuál es la com-
posición de cada objeto de datos y qué atributos des- Edad
cribe el objeto? ¿Dónde residen actualmente los objetos? Licencia
de conducir ’
¿Cuál es la relación entre los objetos y los procesos que
Número
los transforman?
posee
Fabricante
LA qué preguntas Modelo
da respuesta el modelo Número
de datos?
Tipo de
carrocería
Para responder estas preguntas, los métodos de mode- Color
lado de datos hacen uso del diagrama de entidad-rela-
ción (DER). El DER, descrito con detalle posteriormente FIGURA 12.2. Objetos de datos, atributos y relaciones.
en esta sección, permite que un ingeniero del software
identifique objetos de datos y sus relaciones mediante 12.3.1. Objetos de datos, atributos y relaciones
una notación gráfica. En el contexto del análisis estruc- El modelo de datos se compone de tres piezas de infor-
turado, el DER define todos los datos que se introdu- mación interrelacionadas: el objeto de datos, los atri-
cen, se almacenan, se transforman y se producen dentro butos que describen el objeto de datos y la relación que
de una aplicación. conecta objetos de datos entre sí.
Objetos de datos. Un objeto de datos es una repre-
sentación de cualquier composición de información com-
puesta que deba comprender el software. Por composición
de información, entendemos todo aquello que tiene un
número de propiedades o atributos diferentes. Por tanto,
el «ancho» (un valor sencillo) no sería un objeto de datos
válido, pero las «dimensiones» (incorporando altura,
ancho y profundidad) se podría definir como objeto.
(por ejemplo, un vendedor), una unidad de la organiza- como un identifcador -es decir, el atributo identifi-
ción (por ejemplo, departamento de contabilidad), o una cador supone una «clave» cuando queramos encontrar
estructura (por ejemplo, un archivo). Por ejemplo, una una instancia del objeto de dato-. En algunos casos,
persona o un coche (Fig. 12.2) se pueden ver como un los valores para los identificadores son únicos, aun-
objeto de datos en el sentido en que cualquiera se pue- que esto no es un requisito. Haciendo referencia al
de definir según un conjunto de atributos. La descrip- objeto de datos coche, un identificador razonable
ción de objeto de datos incorpora el objeto de datos y podría ser el número de bastidor.
todos sus atributos.
L V E
los atributos definen un objeto de datos,
describen sus caracteristicos, y en algunas ocasiones,
Información útil sobre el modelo de datos puede establecen referencias o otros objetos.
encontrarse en www.datamodel.org
El conjunto de atributos apropiado para un objeto de
Los objetos de datos se relacionan con otros. Por datos dado se determina mediante el entendimiento del
ejemplo, persona puede poseer coche, donde la rela- contexto del problema. Los atributos para coche des-
ción poseer implica una «conexión» específica entre critos anteriormente podrían servir para una aplicación
persona y coche. Las relaciones siempre se definen por que usara un Departamento de Vehículos de Motor, pero
el contexto del problema que se está analizando. estos atributos serían menos útiles para una compañía
Un objeto de datos solamente encapsula datos -no de automóviles que necesite fabricar software de con-
hay referencia dentro de un objeto de datos a operacio- trol. En este último caso, los atributos de coche podrían
nes que actúan en el dato'-. Por consiguiente, el obje- incluir también número de bastidor, tipo de carrocería,
to de datos se puede representar como una tabla de la y color, pero muchos atributos adicibnales (Por ejem-
forma en que se muestra en la Figura 12.3. Los enca- plo: código interior, tipo de dirección, selector de equi-
bezamientos de la tabla reflejan atributos del objeto. En pamiento interior, tipo de transmisión) se tendrían que
este caso, se define un coche en términos de fabrican- añadir para que coche sea un objeto significativo en el
te, modelo, número de bastidor, tipo de carrocería, color contexto del control de fabricación.
y propietario. El cuerpo de la tabla representa ocurren-
cias del objeto de datos. Por ejemplo, un Honda CRV
es una ocurrencia del objeto de datos coche.
a$$
CLAVE
Atributos Ata un objeto de datos a otro, las relaciones indican la manero en que los objetos
identificativos en este caso, el propietario de datos están ((conectados)) entre sí.
* ldentificador
Atributos
descriptivos
\
Atributos
de referencia Relaciones. Los objetos de datos se conectan entre
A A 6 sí de muchas formas diferentes. Considere dos objetos
Fabri- NGde Tipode de datos, libro y librería. Estos objetos se pueden repre-
cante Modelo Bastidor carrocería Color Propietaric sentar mediante la notación simple señalada en la Figu-
Lexus LS400 A8123... Sedan Blanco RSP ra 12.4a. Se establece una conexión entre libro y librería
Ocurrencia Honda CRV
Todo-
X456... terreno
porque los dos objetos se relacionan. Pero, ¿qué son
Rojo CCD
relaciones? Para determinar la respuesta, debemos com-
BMW 75011 XZ765 ... Coupe Blanco LJL
prender el papel de libro y librería dentro del contexto
Ford Taurus Q12A45.. Sedan Azul BLF
del software que se va construir. Podemos definir un
FIGURA 12.3. Representación tabular del objeto de datos. conjunto de parejas objeto-relación que definen las rela-
ciones relevantes. Por ejemplo,
Atributos. Los atributos definen las propiedades una librería pide libros
de un objeto de datos y toman una de las tres caracte- una librería muestra libros
rísticas diferentes. Se pueden usar para (1) nombrar
una ocurrencia del objeto de datos, (2) describir la ocu- una librería almacena libros
rrencia, o ( 3 ) hacer referencias a otra ocurrencia en una librería vende libros
otra tabla. Además, uno o varios atributos se definen una librería devuelve libros
202
CAPfTULO 12 M O D E L A D O DEL ANALISIS
203
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
Fabricante Coche
Un detallado estudio que describe los diogramas entidad
relación puede encontrarse en www.univ-parisl.fr/
CRINFO/dmrg/MEE/misopOO3/
Q
indica que debe haber un cliente para que ocurra una
acción de reparación. El círculo de la derecha indica
fl
que puede no existir acción de reparación para el tipo Transporta
de problema informado por el usuario.
".% C VE
Elobjetivo principal de un DER es representar entidades
porta, contrata, autoriza y almacena- indican cómo
los objetos de datos de la figura se asocian entre sí. Las
tablas para cada objeto de datos del DER, se tendría que
(objetos de datas) y sus relaciones entre sí. desarrollar de acuerdo con las reglas presentadas al
comienzo del capítulo.
Una notación DER rudimentaria se ha presentado en Además de la notación de DER básica introducida
la Sección 12.3. Los objetos de datos son representados en las Figuras 12.6 y 12.7, el analista puede represen-
por un rectángulo etiquetado. Las relaciones se indican tar jerarquías de tipos de objetos de datos. En muchas
mediante una línea etiquetada conectando objetos. En ocurrencias, un objeto de datos realmente puede repre-
algunas variaciones del DER, la línea de conexión con- sentar una clase o categoría de información. Por ejem-
tiene un rombo que se etiqueta con la relación. Las cone- plo, el objeto de datos coche puede categorizarse como
xiones entre objetos de datos y relaciones se establecen doméstico, europeo o asiático. La notación del DER
mediante una variedad de símbolos especiales que indi- mostrada en la Figura 12.8 representa esta categoriza-
can cardinalidad y modalidad (Sección 12.3.2). ción en forma de jerarquía.
204
C A P ~ T U L O1 2 M O D E L A D O DEL ANALISIS
Tc;;b
CLAVE I
I
--_ ,
,
\
\
X
El DFD facilita un mecanismo para modelizar el fluio 1-
1
de información y modelizar las funciones. l
se aplica para transformar la entrada y la salida que se vise la velocidad de la turbina, la temperatura del
produce. Además, el EP indica las restricciones y limi- combustible y varias sondas de presión, todo ello de
taciones impuestas al proceso (función), las caracterís- forma continua. La notación del flujo de datos con-
ticas de rendimiento que son relevantes al proceso y las vencional no hace distinciones entre datos discretos
restricciones de diseño que puedan tener influencia en y datos continuos en el tiempo. Una ampliación de la
la forma de implementar el proceso. notación básica del análisis estructurado que se mues-
tra en la Figura 12.12 proporciona un mecanismo para
12.4.2. Ampliaciones para sistemas de tiempo real representar el flujo de datos continuo en el tiempo.
Para representar el flujo continuo en el tiempo se usa
Muchas aplicaciones de software son dependientes del la flecha de dos cabezas, mientras que el flujo de
tiempo y procesan más información orientada al con- datos discreto se representa con una flecha de una
trol de datos. Un sistema de tiempo real debe inter- sola cabeza. En la figura, se mide continuamente la
actuar con el mundo real en marcos temporales que temperatura supervisada, mientras que sólo se pro-
vienen dados por el mundo real. El control de naves o porciona un valor para el ajuste de temperatura. El
de procesos de fabricación, los productos de consumo proceso de la figura produce una salida continua,
y la instrumentación industrial son algunas de entre valor corregido.
cientos de aplicaciones del software de tiempo real.
Para que resulte adecuado el análisis del software de
tiempo real, se han propuesto varias ampliaciones para
la notación básica del análisis estructurado. “%)e\
c VE
Poro odecuor el modelo o un sistema en tiempo reol,
la notacibn del onálisis estructurado debe permitir
12.4.3. Ampliaciones de Ward y Mellor procesar eventos y lo llegada de continuos datos.
Ward y Mellor [WAR85] amplían la notación básica La distinción entre flujo de datos discreto y con-
del análisis estructurado para que se adapte a las tinuo en el tiempo tiene implicaciones importantes,
siguientes demandas impuestas por los sistemas de tanto para el ingeniero de sistemas como para el dise-
tiempo real: ñador del software. Durante la creación del modelo
Flujo de información que es recogido o producido del sistema, podrá aislar los procesos que pueden ser
de forma continua en el tiempo. críticos para el rendimiento (es muy usual que la
Información de control que pasa por el sistema y el entrada y salida de datos continuos en el tiempo
procesamiento de control asociado. dependan del rendimiento). Al crear el modelo físi-
Ocurrencias múltiples de la misma transformación co o de implementación, el diseñador debe estable-
que se encuentran a menudo en situaciones de mul- cer un mecanismo para la recolección de datos
titarea. continuos en el tiempo. Obviamente, el sistema digi-
tal recolecta datos en una forma casi continua utili-
Estados del sistema y mecanismos que producen tran- zando técnicas de muestre0 de alta velocidad. La
sición de estados en el sistema. notación indica dónde se necesita hardware de con-
versión analógica a digital y qué transformaciones
requerirán, con mayor probabilidad, un software de
Entrada alto rendimiento.
«continua»
TernDeratura / Salida En los diagramas de flujo de datos convenciona-
les no se representa explícitamente el control o flu-
jos de sucesos. De hecho, al analista se le advierte
de que ha de excluir específicamente la representa-
+ Valor ción del flujo de control del diagrama de flujo de
corregido datos. Esta exclusión es demasiado restrictiva cuan-
do se trata de aplicaciones de tiempo real y, por este
motivo, se ha desarrollado una notación especiali-
de temperatura zada para la representación del flujo de sucesos y del
procesamiento de control. Siguiendo con los conve-
FIGURA 12.12. Flujo de datos continuo en el tiempo. nios establecidos para los diagramas de flujo de
datos, el flujo de datos se representa mediante fle-
En un porcentaje significativo de aplicaciones de chas con trazo continuo. Sin embargo, el flujo de
tiempo real, el sistema debe controlar la información control se representa mediante flechas de trazo dis-
continua en el tiempo generada por algún proceso del continuo o sombreadas. Un proceso que sólo mane-
mundo real. Por ejemplo, puede que se haga necesa- ja flujos de control denominado proceso de control,
rio un sistema de control de pruebas en tiempo real se representa analógicamente mediante una burbuja
para máquinas de turbina de gas, para que se super- con trazo discontinuo.
207
INGENIERfA DEL SOFTWARE. U N E N F O Q U E PRÁCTICO
3
Referencia Web
l a especificación del sistema en tiempo real planteada
por Hatley y Pirbhai es descrita en www.univ-par¡rl.fr
Para determinar qué es lo que ocurre cuando se pro-
duce este suceso, debemos comprobar la EC.
La especificación de control (EC) contiene varias
herramientas importantes del modelado. Para indicar
qué procesos se activan por un suceso dado que flu-
/CRINFO/dmrg/MEE98/niirop032/ ye por la barra vertical, se usa una tabla de activa-
ción de procesos (descrita en la Sección 12.6.4). Por
Una condición de datos se produce cuando los datos ejemplo, una tabla de activación de procesos (TAP)
de entrada de un proceso hacen que se produzca una sali- para la Figura 12.14 podría indicar que el suceso pre-
da de control. La Figura 12.14 ilustra esta situación en una sión alta haría que se invocara un proceso reducir
parte del modelo de flujo para un sistema de supervisión presión del tanque (que no se muestra). Además de
y control automatizado de válvulas de presión de una refi- la TAP, la EC puede contener un diagrama de tran-
nería de petróleo. El proceso comprobar y convertir pre- sición de estados (DTE). El DTE es un modelo de
sión implementa el algoritmo descrito en el pseudocódigo comportamiento que se basa en la definición de un
EPque se muestra. Cuando la presión absoluta del tanque conjunto de estados del sistema y se describe en la
es mayor que el máximo permitido, se genera un suceso sección siguiente.
presión alta. Observe que cuando se usa la notación de
Hatley y Pirbhai, el flujo de datos de muestra como par- Estado
te de un DFD, mientras que el flujo de control se encuen- de alimentación
tra a parte en un diagrama de flujo de control. del papel
(atascado. vacío)
Diagrama Diagrama
de flujo de datos de flujo de control
Presión absoluta
EP
end
endif
de reproducción
FIGURA 12.15. DFC de nivel 1 para el software de una foto-
copiadora.
Para ilustrar el uso de las ampliaciones de compor- zo/parada para activar/desactivar el proceso de ges-
tamiento y de control de Hatley y Pirbhai, consideremos tión de copiado. De forma similar, el suceso atasca-
el software empotrado en una máquina fotocopiadora de da (parte del estado de alimentación del papel)
oficina. En la Figura 12.15 se muestra un flujo de con- activaría realizar diagnóstico del problema. Se debe-
trol para el software de fotocopiadora. Las flechas del ría destacar que todas las barras verticales dentro del
flujo de datos se han sombreado ligeramente con pro- DFC se refieren a la misma EC. Un flujo de suceso
pósitos ilustrativos, pero en realidad se muestran como se puede introducir directamente en el proceso como
parte de un diagrama de flujo de control. muestra fallo de reproducción. Sin embargo, este flu-
Los flujos de control se muestran de cada proceso j o no activa el proceso, sino que proporciona infor-
individual y las barras verticales representan las «ven- mación de control para el algoritmo de proceso.
tanas» EC. Por ejemplo, los sucesos estado de al¡- Un diagrama de transición de estados simplificado
mentación del papel y de comienzo/parada fluyen para el software de fotocopiadora descrito anterior-
dentro de la barra de EC. Esto implica que cada uno mente se muestra en la Figura 12.16. Los rectángulos
de estos sucesos hará que se active algún proceso representan estados del sistema y las flechas repre-
representado en el DFC. Si se fueran a examinar las sentan transiciones entre estados. Cada flecha está eti-
interioridades del EC, se mostraría el suceso comien- quetada con una expresión en forma de fracción. La
parte superior indica el suceso (o sucesos) que hace(n)
Inactiva que se produzca la transición. La parte inferior indica
~
Llena y comienzo invocar leer-op-ent la acción que se produce como consecuencia del suce-
invocar gestión de copiado
I so. Así, cuando la bandeja de papel está llena, y el
botón de comienzo ha sido pulsado, el sistema pasa
Copias hechas &a del estado leyendo órdenes al estado realizando copias.
i
invocar leer-op-ent Observe que los estados no se corresponden necesa-
I riamente con los procesos de forma biunívoca. Por
ejemplo, el estado realizando copias englobaría tanto
Realizando Recargando
copias Vacía papel
el proceso gestión de copiado como el proceso pro-
invocar recarga papel ducir visualización de usuario que aparecen en la Figu-
Atakcada
ra 12.15.
invocar realizar diagnóstico del problema
No atascado
O
En la sección anterior, hemos visto las notaciones los completos y precisos mediante el análisis estruc-
básica y ampliada del análisis estructurado. Para turado. A lo largo de este estudio, se usará la notación
poder utilizarlas eficientemente en el análisis de presentada en la Sección 12.4 y se presentarán, con
requisitos del software, se ha de combinar esa nota- algún detalle, otras formas de notación ya aludidas
ción con un conjunto de heurísticas que permitan al anteriormente.
ingeniero del software derivar un buen modelo de
análisis. Para ilustrar el uso de esas heurísticas, en el 12.6.1. Creación de un diagrama Entidad-Relación
resto de este capítulo utilizaremos una versión adap-
tada de las ampliaciones de Hatley y Pirbhai [HAT87] El diagrama de entidad-relación permite que un ingeniero
a la notación básica del análisis estructurado. del software especifique los objetos de datos que entran y
salen de un sistema, los atributos que definen las propie-
dades de estos objetos y las relaciones entre los objetos.Al
igual que la mayoría de los elementos del modelo de aná-
El modelo de análisis permite un exáme,. crítico lisis y las relaciones entre objetos, el DER se construye de
de /os requisitos de/ sohore desde tres puntos una forma iterativa. Se toma el enfoque siguiente:
diferentes de vista. Asegurando la utilidad de los DERs,
DFDs y DTEs cuando construyes el modelo
¿Cuáles son los pasos
En las secciones siguientes, se examina cada uno requeridos para construir
de los pasos que se debe seguir para desarrollar mode- un DER?
210
CAPfTULO 12 M O D E L A D O DEL ANALISIS
1. Durante la recopilación de requisitos, se pide que los ta entre el propietario y panel de control, sistema de
clientes listen las «cosas» que afronta el proceso de seguridad y servicio de vigilancia. Existe una cone-
la aplicación o del negocio. Estas «cosas» evolu- xión Única entre el sensor y el sistema de seguridad, y
cionan en una lista de objetos de datos de entrada y así sucesivamente.
de salida, así como entidades externas que producen Una vez que se han definido todas las conexiones,
o consumen información. se identifican una o varias parejas objeto-relación para
2. Tomando objetos uno cada vez, el analista y el cliente cada conexión. Por ejemplo, se determina la conexión
definen si existe una conexión (sin nombrar en ese entre sensor y sistema de seguridad para que tenga las
punto) o no entre el objeto de datos y otros objetos. parejas objeto-relación siguientes:
el sistema de seguridad supervisa el sensor
3. Siempre que existe una conexión;el analista y el
el sistema de seguridad activaldesactiva el sensor
cliente crean una o varias parejas de objeto-relación.
el sistema de seguridad prueba el sensor
4. Para cada pareja objeto-relación se explOra la cardi- el sistema de seguridad programa el sensor
nalidad y la modalidad. Cada una de las parejas objeto-relación anteriores se
5. Interactivamente se continúan los pasos del 2 al 4 analizan para determinar la cardinalidad y la modali-
hasta que se hayan definido todas las parejas objeto- dad. Por ejemplo, en la pareja objeto-relación el siste-
relación. Es normal descubrir omisiones a medida ma de seguridad supervisa el sensor, la cardinalidad
que el proceso continúa. Objetos y relaciones nue- entre sistema de seguridad y sensor es una a muchos.
vos se añadirán invariablemente a medida que crezca La modalidad es una incidencia de sistema de seguri-
el número de interacciones. dad (obligatoria) y al menos una incidencia de sensor
6. Se definen los atributos de cada entidad. (obligatorio). Mediante la notación DER introducida en
7. Se formaliza y se revisa el diagrama entidad-relación. la Sección 12.3, la línea de conexión entre sistema de
8. Se repiten los pasos del 1 al 7 hasta que se termina seguridad y sensor se modificaría, como se muestra en
el modelado de datos. la Figura 12.18. Se aplicaría un análisis similar al res-
to de los objetos de datos.
Para ilustrar el uso de estas directrices básicas, usa-
remos el ejemplo del sistema de seguridad HogarSe-
Supervisa
guro tratado en el Capítulo 11. A continuación,
reproducimos la narrativa de procesamiento para Hogar-
Seguro (Sección 11.3.3), la siguiente lista (parcial) de
«cosas» son importantes para el problema:
propietario
Sistema de
II
Activa/desactiva
Sensor
c
0
seguridad II
0 panel de control rn
II
P
sensores f
0 sistema de seguridad I Programa I
servicio de vigilancia
FIGURA 12.18. Desarrollo de relaciones y cardinalidad/
modalidad.
¿Existe alguna guía útil para nombres y los verbos que son sinónimos y no se apoyan
crear DFD’s? directamente en el proceso de modeladoP.
FIGURA 12.19. DFD de nivel contextual para HogarSeguro. más los nombres y los verbos están relacionados entre
sí (por ejemplo, cada sensor tiene asignado un núme-
Ahora tenemos que expandir el DFD de nivel O o de ro y un &). Por tanto, con el análisis gramatical de
-
nivel a un modelo de nivel 1. Pero, ¿cómo lo hacemos? la narrativa de procesamiento de una burbuja de cual-
Una sencilla, pero efectiva, técnica consiste en realizar un quier nivel de DFD, podemos generar mucha infor-
«análisis gramatical» de la narrativa de procesamiento que mación útil sobre cómo proceder en el refinamiento
describe la burbuja de nivel contextual. Es decir, aislar del siguiente nivel. Usando esa información, obtene-
todos los nombres (y sentencias nominales) y todos los mos el DFD de nivel 1 que se muestra en la Figura
verbos (y sentencias verbales) de la narrativa presentada 12.20. El proceso de nivel contextual de la Figura 12.19
arriba. Para ilustrarlo, reproducimos de nuevo la narrati- se ha expandido en siete procesos, derivados de un
va de procesamiento, subrayando las primeras ocurren- examen del análisis gramatical. De forma similar se
cias de los nombres y con las primeras ocurrencias de los ha derivado el flujo de información entre los procesos
verbos en cursiva. (Se debería señalar que se omiten los del nivel 1.
Se debe tener en cuenta que serán omitidos los nombres y verbos
que sean sinónimos o no tengan una relación directa con el modelo
de procesos.
212
CAPfTULO 12 MODELADO DEL ANALISIS
O
se ha mantenido la continuidad del flujo de informa-
o
ción. Se pospone hasta la Sección 12.7 la elaboración Panel
de los contenidos de las entradas y las salidas de los de control
DFD de niveles O y 1.
\
/
lnteractuar
de comienzo/parad;//
Es cierto que el proceso narrativo pretende analizar con el
lo escrito siempre con el mismo nivel de abstracción. usuario / /
/
desactivar I ,/
Se pueden refinar en posteriores niveles los proce-
sos representados en el DFD de nivel 1. Por ejemplo,
se puede refinar el proceso monitorizar sensores al DFD
de nivel 2 que se muestra en la Figura 12.21. Podemos
observar de nuevo que se mantiene la continuidad del
flujo de información entre los niveles.
El refinamiento de los DFDs continúa hasta que cada
burbuja representa una función sencilla.
4
Información del sensor
Describir el comportamiento del sistema identifi- La Figura 12.23 refleja un diagrama de transición de
cando sus estados; identificar cómo se alcanza cada estados para el modelo de flujo de nivel 1 de HogarSegu-
estado y definir las transiciones entre los estados. YO. Las flechas de transición etiquetadas indican cómo res-
Centrarse en las posibles omisiones -un error muy ponde el sistema a los sucesos a medida que pasa por los
común en la especificación del control (por ejemplo, cuatro estados definidos en este nivel. Estudiando el D E ,
preguntarse si existe alguna otra forma en la que se un ingeniero del software puede determinar el comporta-
puede llegar a un estado o salir de él)-. miento del sistema y, lo que es más importante, compro-
bar si hay «lagunas» en el comportamiento especificado.
¿Cómo seleccionas eventos Una representación algo diferente del modo de com-
potenciales para DFC, DTE y EC? portamiento es la tabla de activación de procesos (TAP).
La TAP representa la información contenida en el DTE
En la Figura 12.22 se ilustra un DFC de nivel 1 para el dentro del contexto de los procesos, no de los estados.
software HogarSeguro. Entre los sucesos y los elementos Es decir, la tabla indica los procesos (burbujas) del
de control que aparecen están suceso de sensor (por ejem- modelo de flujo que serán invocados cuando se pro-
plo, un sensor ha detectado una anomalía), indicador de duzca un suceso. Se puede usar la TAP como una guía
parpadeo (una señal para que el monitor LCD parpadee), para el diseñador que tenga que construir un controla-
e interruptor de comienzo/parada (una señal para encen- dor que controle los procesos representados en ese nivel.
der y apagar el sistema). Un suceso fluye a una ventana En la Figura 12.24 se muestra una TAP para el modelo
EC desde el mundo exterior, ello implica la activación por de flujo de nivel 1 de HogarSeguro.
la EC de uno o más procesos de los que aparecen en el La EC describe el comportamientodel sistema, pero no
DFC. Cuando un elemento de control emana de un pro- nos proporciona información sobre el funcionamientointer-
ceso y fluye a una ventana EC, ello implica el control y la no de los procesos que son activados como resultado de ese
activación de algún proceso o de una entidad externa. comportamiento. En la siguiente sección se estudia la nota-
ción del modelado que proporciona esa información.
Interruptor de comienzoiparada
Invocar monitor y control
12.6.5. La especificación del proceso
Se usa la especificación de proceso (EP) para describir
todos los procesos del modelo de flujo que aparecen en
Suceso de sensor Invocar interactuar
el nivel final de refinamiento. El contenido de la espe-
Invocar monitorizar con el usuario cificación de procesamiento puede incluir una narrati-
y controlar el sistema va textual, una descripción en lenguaje de diseño de
programas (LDP) del algoritmo del proceso, ecuacio-
nes matemáticas, tablas, diagramas o gráficos. Al pro-
porcionar una EP que acompañe cada burbuja del
Suceso de sensor
modelo de flujo, el ingeniero del software crea una
Suceso de sensor «mini-especificación» que sirve como primer paso para
Invocar visualizar
Invocar monitorizar y controlar sistema
mensaje v estado la creación de la Especifrcación de Requisitos del Sof-
.
Mostrando ware y constituye una guía para el diseño de la compo-
* realimentación
Estado de la acción nente de programa que implementará el proceso.
Indicador de parpadeo *h al de visualización ~~
Sucesos de entrada
Suceso de sensor 0 0 0 0 1 0
Indicador de parpadeo 0 0 1 1 0 0
lnterruptordecomienzolparada O 1 O O O O
Estado de la acción de visualización
Terminada 0 0 0 1 0 0
12.6.4. La especificación de control En marcha 0 0 1 0 0 1
Exceso de tiempo 0 0 0 0 0 1
La especificación de control (EC) representa el com-
portamiento del sistema (al nivel al que se ha hecho Salida
referencia) de dos formas diferentes. La EC contiene Señal de alarma 0 0 0 0 1 0
un diagrama de transición de estados (DTE) que es
una especificación secuencia1 del comportamiento. 1 Activación de procesos
Monitorizarycontrolar el sistema 0 1 0 0 1 1
También puede contener una tabla de activación de Activar/desactivar el sistema 0 1 0 0 0 0
procesos (TAP)-una especificación combinatoria del Visualizar mensajes y estado 1 0 1 1 1 1
comportamiento-. En la Sección 12.4.4. se presenta- lnteractuar con el usuario 1 0 0 1 0 1
ron los atributos inherentes de la EC. Ahora es el
momento de examinar un ejemplo de esta importante FIGURA 12.24. Tabla de activación de procesos para
notación del modelado del análisis estructurado. HogarSeguro.
214
CAPfTULO 12 M O D E L A D O DEL ANALISIS
Para ilustrar el uso de la EP consideremos el proce- ta secundaria de contraseñas (estas pueden asignarse a
so que representa la transformación del modelo de flu- invitados o trabajadores que necesitan entrar en la casa
cuando el propietario no está presente). Si la contraseña
jo de Hogarseguro (Figura 12.20). La EP para esta coincide con alguna de las de la lista, <contraseña vali-
función puede tomar la siguiente forma: dada = true> es pasada a la función visualizar mensajes
EP: proceso y estado. Si no existe coincidencia, <contraseña valida-
da = false> se pasa a la función visualizar mensajes y
Procesar la contraseña lleva a cabo la validación de
estado.
.todas las contraseñas del sistema HogarSeguro. Proce-
sar la contraseña recibe una contraseña de 4 dígitos des- Si en esta etapa se desea incluir detalles algorít-
de la función interactuar con el usuario. La contraseña micos adicionales, se puede incluir como parte de la
primero se compara con la contraseña maestra almace- EP su representación en lenguaje de descripción de
nada en el sistema. Si al contrastar con la contraseña
maestra, <contraseña validada = true> se pasa a la fun-
programa. Sin embargo, muchos piensan que se debe
ción visualizar mensajes y estado. Si la comparación no posponer la versión en LDP hasta que comience el
es correcta, los cuatro dígitos se comparan con una lis- diseño.
El modelo de análisis acompaña representaciones de cómo lo usan (por ejemplo, como entrada al proceso,
objetos de datos, funciones y control. En cada repre- como salida del proceso, como almacén de datos,
sentación los objetos de datos y/o elementos de control como entidad externa).
juegan un papel importante. Por consiguiente, es nece- Descripción del contenido-el contenido represen-
sario proporcionar un enfoque organizado para repre- tado mediante una notación.
sentar las características de cada objeto de datos y Información adicional-otra información sobre los
elemento de control. Esto se realiza con el diccionario
tipos de datos, los valores implícitos (si se conocen),
de datos.
las restricciones o limitaciones, etc.
Se ha propuesto el diccionario de datos como gra-
mática casi formal para describir el contenido de los Una vez que se introducen en el diccionario de
objetos definidos durante el análisis estructurado. Esta datos un nombre y sus alias, se debe revisar la con-
importante notación de modelado ha sido definida de la sistencia de las denominaciones. Es decir, si un equi-
siguiente forma [YOU89]: po de análisis decide denominar un elemento de datos
El diccionario de datos es un listado organizado de todos recién derivado como xyz,pero en el diccionario ya
los elementos de datos que son pertinentes para el sistema, con existe otro llamado xyz, la herramienta CASE que
definiciones precisas y rigurosas que permiten que el usuario soporta el diccionario muestra un mensaje de alerta
y el analista del sistema tengan una misma comprensión de las sobre la duplicidad de nombres. Esto mejora la con-
entradas, salidas, de las componentes de los almacenes y [tam- sistencia del modelo de análisis y ayuda a reducir
bién] de los cálculos intermedios. errores.
La información de «dónde se usa/cómo se usa» se
¿Cómo representar
registra automáticamente a partir de los modelos de
el contenido de los objetos
flujo. Cuando se crea una entrada del diccionario, la
de datos que han sido
herramienta CASE inspecciona los DFD y los DFC
identificados?
para determinar los procesos que usan el dato o la
Actualmente, casi siempre se implementa el dic- información de control y cómo lo usan. Aunque esto
cionario de datos como parte de una «herramienta pueda no parecer importante, realmente es una de las
CASE de análisis y diseño estructurados». Aunque mayores ventajas del diccionario. Durante el análi-
el formato del diccionario varía entre las distintas sis, hay una corriente casi continua de cambios. Para
herramientas, la mayoría contiene la siguiente infor- proyectos grandes, a menudo es bastante difícil deter-
mación: minar el impacto de un cambio. Algunas de las pre-
* nornbre-el nombre principal del elemento de datos
guntas que se plantea el ingeniero del software son
«¿dónde se usa este elemento de datos? ¿qué mas hay
o de control, del almacén de datos, o de una entidad
que cambiar si lo modificamos? ¿cuál será el impac-
externa.
to general del cambio?». Al poder tratar el dicciona-
alias-otros nombres usados para la primera rio de datos como una base de datos, el analista puede
entrada. hacer preguntas basadas en «dónde se usa/cÓmo se
* dónde se usaicómo se usa-un listado de los proce- usan y obtener respuestas a peticiones similares a las
sos que usan el elemento de datos o de control y anteriores.
215
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRdiCTICO
Durante los últimos años se han utilizado otros méto- Técnicas de análisis y disefio estructurado (TADE)
dos valiosos de análisis de requisitos del software en la [ROS77, ROS851
industria. Mientras que todos siguen los principios del son presentadas dentro del sitio web SEPA para los lecto-
análisis operacional tratados en el Capítulo 1 1, cada uno res interesados en profundizar en el modelado del análisis.
introduce una notación y heurística diferentes para cons-
truir el modelo de análisis. Una revisión de tres impor-
tantes métodos de análisis:
Desarrollo de sistemas estructurados de datos
(DSED) [WAR8l,ORR8 11 d L
Desariollo de sistemas Jackson (DSJ) [JAC83] DSSD, ISD, y SADT
El análisis estructurado es el método más usado para el de todos los objetos de datos que son importantes para
modelado de requisitos, utiliza el modelo de datos y el el sistema. Los sistemas de datos y flujo de control son
modelo de flujos para crear la base de un adecuado la base de representación de la transformación de datos
modelo de análisis. Utilizando el diagrama entidad-rela- y control. Al mismo tiempo, estos métodos son usados
ción, el ingeniero del software crea una representación para crear un modelo funcional del software y proveer-
216
CAPiTULO 12 M O D E L A D O DEL ANALISIS
se de un mecanismo para dividir funciones. Después, de datos convencionales, pero ahora hay ampliacio-
Wa un modelo de comportamiento usando el diagra- nes que permiten aplicar el método a los sistemas de
&a de transición de estados y un modelo de contenido tiempo real.
de los datos con un diccionario de datos. Las especifi- El análisis estructurado está soportado por una
caciones de los procesos y del control proporcionan una larga lista de herramientas CASE que ayudan en la
blaboración adicional de los detalles. creación de cada elemento del modelo y también
La notación original para el análisis estructurado en el mantenimiento de la consistencia y de la
fue desarrollada para aplicaciones de procesamiento corrección.
[BRU88] Bruyn, W. et al., «ESML: An Extended Systems [ROS771 Ross, D., y K. Schoman, «Structured Analysis for
Modeling Language Based on the Data Flow Diagram», Requirements Definitions», IEEE Trans. Software Engi-
ACM Software Engineering Notes, vol. 13, n.' 1 , Enero nerring, vol. 3, n." 1, Enero 1977, pp. 6- 15.
' 1988, pp. 58-67.
[ROS841 Ross, D., «Applications and Extensions of SADT»,
tCHE771 Chen, P., The Entity-Rel&nship Approach to Logi- IEEE Computer, vol. 18, n.' 4, Abril 1984, pp. 25-35.
cal Datahase Design, QED Information systems, 1977, [STE74] Stevens, W.P., G.J. Myers y L.L. Constantine,
DEM791 DeMarco, T., Structured Analysis and System Spe- dtructured Design», IBM Systems Jonrnal, vol. 13, n.' 2,
, cificaction,Prentice-Hall, 1979. 1974, pp. 115-139.
[GAN82] Gane, T., y C. Sarson, Structured Systems Analy- [TIL93] Tillman, C.A., A Practica1 Guide to Logical Dutu
sis, McDonnell Douglas, 1982. Modeling, McGraw-Hill, 1993.
[HAT87] Hatley, D.J., e I.A. Pirbhai, Strategies for Real- [WAR8 11 Wamier, J.D., Logical Construction of Programs,
Time System Specification, Dorset House, 1987. Van Nostrand Reinhold, 198 1.
[JAC83] Jackson, M.A., System Development, Prentice-Hall, [WAR85] Ward, P.T., y S.J. Mellor, Structured Development
1983. for Real-Time Systems, tres volúmenes, Yourdon Press, 1985.
[ORR81] Orr, K.T., Structured Requirements Definition, Ken [YOU78] Yourdon, E.N., y L.L. Constantine, Structui-ed
Orr & Associates, Inc., Topeka, KS, 1981. Design, Yourdon Press, 1978.
[PAG80] Page-Jones, M., The Practica1 Guide to Structured [YOU89] Yourdon, E.N., Modern Structured Analysis, Pren-
Systems Design, Yourdon Press, 1980. tice Hall, 1990.
12.1. Obtenga al menos tres de las diferencias que se men- 12.4. Dibuje un modelo de nivel de contexto (DFD de nivel
cionan en la sección 12.1 y escriba un breve artículo que O) para uno de los cinco sistemas que se listan en el problema
refleje el cambio a lo largo del tiempo de la concepción 12.2. Escriba una descripción de procesamiento a nivel de con-
del análisis estructurado. En una sección de conclusiones, texto para el sistema.
Sugiera formas en las que crea que cambiará el método en 12.5. Mediante el DFD de nivel de contexto desarrollado en
el futuro. el problema 12.4, desarrolle diagramas de flujo de datos de
122. Se le pide que construya uno de los sistemas siguientes: nivel 1 y nivel 2. Utilice un «analizador gramatical» en la des-
a un sistema de registro en cursos basado en red para su uni- cripción de procesamiento a nivel de contexto para que se ini-
versidad cie en ese tema. Recuerde especificar todo el flujo de
información etiquetando todas las flechas entre burbujas. Uti-
b. un sistema procesamiento de transacciones basado en inter- lice nombres significativos para cada transformación.
net para un almacén de computadoras
c. un sistema simple de facturas para una empresa pequeña 12.6. Desarrolle DFC, EC, EP y un diccionario de datos para
el sistema que seleccionó en el problema 12.2. Intente cons-
d un producto de software que sustituya a rolodex construi- truir su modelo tan completo como sea posible.
do en un teléfono inalámbrico
12.7. ¿Significa el concepto de continuidad del flujo de infor-
e. un producto de libro de cocina automatizado construido en
mación que si una flecha de flujo aparece como entrada en el
una cocina eléctrica o en un microondas
nivel 0, entonces en los subsiguientes niveles debe aparecer
Seleccione el sistema que le sea de interés y desarrolle un una flecha de flujo como entrada? Explique su respuesta.
diagrama entidad-relación que describa los objetos de datos,
relaciones y atributos. 12.8. Usando las ampliaciones de Ward y Mellor descritas en
las figuras 12.13. ¿Cómo encaja la EC que se indica en la figu-
12.3. ¿Qué diferencia hay entre cardinalidad y modalidad? ra 12.13?Ward y Mellor no usan esa notación.
217
INGENIERfA DEL SOFTWARE. UN ENFOQUE PRÁCTICO
12.9. Usando las ampliaciones de Hatley y Pirbhai, rehaga el (determinada a partir de su tamaño). A cada bache se Is
modelo de flujo contenido en la Figura 12.13. ¿Cómo encaja asocian datos de petición de obra, incluyendo la ubicación
el modelo de control que se indica en la Figura 12.13? Hatley y el tamaño, la brigada, el equipamiento asignado, las horas
y Pirbhai no usan esa notación. de reparación, el estado del bache (obra en curso, r e p q
12.10. Describa con sus propias palabras un flujo de sucesos. do, reparación temporal, no reparado), la cantidad de m a j
rial de relleno usado y el coste de la reparación (calcula&
12.11. Desarrolle un modelo de flujo completo para el soft- con las horas dedicadas, el número de trabajadores, el maté
ware de fotocopiadora discutido en la sección 12.5. Puede uti- rial y el equipamiento usados). Finalmente, se crea un archi-
lizar las ampliaciones de Ward y Mellor o las de Hatley y vo de daños para mantener la información sobre los &Os
Pirbhai. Asegúrese de desarrollar para el sistema un diagrama reportados debidos a la existencia del bache, incluyendo
de transición de estados detallado. el nombre del ciudadano, su dirección, su número de telb
12.12. Complete la descripción de procesamiento para el soft- fono, el tipo de daño y el coste de subsanamiento del daña
ware HogarSeguro que se ha presentado en la Figura 12.20; El sistema SSRB es un sistema interactivo.
describiendo los mecanismo de interacción entre el usuario y Utilice el análisis estructurado para modelar SSRB.
el sistema. ¿Cambiará su información adicional los modelos
de flujo de HogarSeguro que aparecen en este capítulo? Si es 12.14. Se va a desarrollar un sistema de procesamiento de tex-
así, ¿cómo? tos basados en computadoras personales. Investigue durante algu-
nas horas sobre el área de aplicación y lleve a cabo una reunión
12.13. El departamento de obras públicas de un gran ciudad TFEA (Capítulo 11) con sus compañeros de clase para un m&
ha decidido desarrollar un sistema de seguimiento y repara- lo de requisitos del sistema utilizando el análisis estructurado (su
ción de baches (SSRB)basado en página web. Con los siguien- profesor le ayudará a coordinarlo).Construya un modelo de q u i -
tes requisitos: sitos del sistema mediante el análisis estructurado.
Los ciudadanos pueden conectarse a la página e infor-
12.15. Se va a desarrollar el software para un videojuego. Pro-
mar sobre la situación y la importancia del bache. A medi-
ceda como en el problema 12.14.
da que se informa sobre cada bache, se le asigna un número
de identificación y se guarda con la calle en la que se 12.16. Contacte con cuatro o cinco vendedores de herramien-
encuentra, su tamaño (en una escala de 1 a lo), su posi- tas CASE para análisis estructurado. Revise sus folletos y e&
ción (en el medio, a un lado, etc.), su distrito (determina- ba un breve artículo que resuma las características generales
do a partir de la calle) y una prioridad de reparación y las que se distingan a unas herramientas de las otras.
Existen literalmente docenas de libros publicados sobre el aná- Analysis and Design Methodology, Van Nostrand Reinhlod,
lisis estructurado. Todos cubren el tema de forma adecuada, 1990) y Hares (SSADMfor the Advanced Pructitioner, Wiley,
pero sólo unos pocos constituyen magníficos trabajos. El libro 1990) describe SSADM como una variación del análisis
de DeMarco [DEM79] sigue siendo una buena introducción estructurado que se utiliza enormemente por toda Europa y
de la notación básica. Los libros de Hoffer et al. (Modern Sys- Estados Unidos.
tems Analysis and Design, Addison-Wesley,2." ed., 1998),Ken- F l y et~ al. (InfornlationModelling: An International Pers-
da11 y Kendall (Systems Analysis and Design, 2.ded., Prentice pective, Prentice Hall, 1996), Reingruber y Gregory (Data
Hall, 1998), Davis y Yen (The Information System Consultunt's Modeling Handbook, Wiley, 1995) y Tillman [TIL93] pre-
Handbook: Systems Analysis and Design, CRCPress, 1998), sentan manuales detallados para crear modelos de datos de
Modell ( A Professional's Cuide to Systems Analysis, 2." ed., calidad de industria. Kim y Salvatores («Comparing Data
McGraw-Hill, 1996),Robertson and Robertson (Complete Sys- Modeling Formalisms», Communications of the ACM, June
tems Analysis, 2 vols., Dorset House, 1994), y Page-Jones (The 1995) han escrito una comparación excelente de métodos de
Practica1 Cuide to Structured Systems Design, 2." ed., Prenti- modelado de datos. Un libro interesante de Hay (Data Mode-
ce Hall, 1988) son referencias muy valiosas. El libro de Your- ling Patterns, Dorset House, 1995) presenta los «patrones#
don sobre este tema [YOU89] sigue siendo el tratado más comunes de modelos de datos que se encuentran en mucha
extenso publicado hasta la fecha. empresas diferentes. En Kowal (Behaviour Models: Speci-
Para mayor énfasis en la ingeniería, [WAR85] y [HAT87] fying User's Expectations, Prentice-Hall, 1992) se puede
son los libros preferidos. En cualquier caso, Edwards (Real- encontrar un tratamiento detallado del modelado de compor-
Time Structured Methods: Systems Analysis, Wiley, 1993) tra- tamiento.
ta el análisis de sistemas en tiempo real con gran profundidad, Una amplía variedad de fuentes de información sobre
presentando diagramas de ejemplos Útiles sobre aplicaciones el análisis estructurado están disponibles en internet. Una
reales. lista actualizada de páginas web que son interesantes sobre
Se han desarrollado muchas variaciones sobre el análisis el concepto y métodos de análisis se encuentran eo
estructuradodurante la última década. Cutts (StructuredSystems http://www.pressman5.com
218