            Especificaciones para el programa DB3protp


DB3protp  es  una  extensin  del programa  DB3mnugn  que  permite 
generar  prototipos  de sistemas escritos en DBase  III  Plus.  El 
DB3mnugn es til para formular el rbol de mens de un sistema,  y 
el  DB3protp  lo complementa permitiendo  al  programador  tambin 
describir los dilogos hombre-mquina del sistema.  DB3protp ayuda 
a  definir  interactivamente pantallas y sus  conecciones.  Usando 
como  entrada  una  descripcin concisa  de  los  componentes  del 
sistema   del   usuario,   el   DB3protp   genera   un   prototipo 
representativo del sistema,  incluyendo ayudas para cada pantalla. 
Este  prototipo  puede  ser luego extendido al  sistema  real  del 
usuario en forma incremental.  Adems, este programa tambin puede 
generar   tutores  bastante  completos  con  base  en  las  mismas 
entradas.

En este documento los trminos prototipo y aplicacin se referirn 
siempre  al programa que el DB3protp genera.  Esta  distincin  se 
hace  para  evitar el engorro de tener que calificar las  palabras 
sistema o programa como prototipos generados por el DB3protp.  Los 
trminos sistema y programa se usarn, en general, para denotar al 
DB3protp. Por las mismas razones, el trmino usuario se refiere al 
usuario  de la aplicacin generado,  y el trmino  programador  se 
reserva para quien genera un prototipo usando el DB3protp.

En  este documento centro atencin en el mdulo para definicin de 
dilogos del DB3protp.  Adems de ser un editor de pantallas, esta 
herramienta  de programacin permite interconectar  las  pantallas 
generadas   para  as  obtener  un  grafo  representativo  de   la 
interaccin  del  usuario  con el computador.  Un  prototipo  est 
formado por un rbol de mens cuyas hojas son a su vez grafos  que 
corresponden  a las pantallas de la aplicacin.  La forma de estos 
grafos tienen varias caractersticas distintivas, que corresponden 
bastante   a  las  estructuras  de  control  de  un  lenguaje   de 
programacin estructurado.  Sin embargo,  el programador no se  ve 
afectado  por esto,  y puede generar todas sus pantallas de manera 
fcil e interactiva.

Un grafo de pantallas est compuesto de nodos.  Cada uno de  estos 
nodos  corresponde a una pantalla.  Entonces una pantalla contiene 
todos los caracteres desplegados por el computador,  y los  ledos 
desde  el  teclado.  En  el contexto del programa  DBase  III  una 
pantalla puede definirse como todas las instrucciones @ SAY, @ GET 
que aparecen juntas antes de una instruccin READ. Pero el sistema 
tambin  considera  como una sla pantalla el desplegar en  varios 
renglones  un  reporte.   En  estos  casos  el  programador   debe 
especificarle al sistema que la pantalla es un reporte multilnea.

Cabe   destacar   que  en  general  las  pantallas  pueden   estar 
sobrepuestas  unas sobre otras,  pues no es necesario ejecutar  un 
CLEAR  al  pasar de una pantalla a otra.  esto da  generalidad  al 
sistema.

El grafo de pantallas tiene un nodo inicial,  que corresponde a la 
coneccin con el rbol de mens. Puede tener muchos nodos finales, 
que  representan  los puntos de salida del  prototipo.  Entre  dos 
nodos puede existir cuando ms una sla coneccin, y un nodo puede 
estar conectado a s mismo. El grafo puede contener ciclos, ciclos 
anidados y bifurcaciones de 2 o ms alternativas.  Para cada ciclo  
se  genera una instruccin DO WHILE,  y para cada bifurcacin  una 
instruccin IF o DO CASE. Consecuentemente, los ciclos en el grafo 
no pueden cruzarce,  pues esto resultara en un programa  invlido 
al traducirse al DBase III.

Esta  restriccin permite describir el dilogo de pantallas de  la 
misma manera en que se escribe un programa estructurado: de arriba 
hacia abajo, anidando construcciones.


Asociado  a cada nodo puede existir una pantalla de ayuda,  la que 
debe ser invocada adecuadamente por el usuario.  DB3protp tiene la 
habilidad de generar un tutor con base en el prototipo. Este tutor 
contiene  todas las pantallas de ayuda definidas para cada uno  de 
los nodos,  y permite al novicio conocer el sistema sin  necesidad 
de modificar archivos de datos.

Las   conecciones  entre  nodos  pueden  tener  asociadas   varios 
procedimientos  o  archivos  de cdigo  que  implementan  diversas 
acciones  a  efectuar  antes  y  despus  de  ejecutar  el  cdigo 
correspondiente  al nodo.  De esta manera es posible establecer un 
contexto  de trabajo en cada nodo.  Estas conecciones permiten  al 
diseador  del  prototipo  definir  varios  parmetros  para  cada 
pantalla.

Un  nodo entonces tiene los siguientes  componentes:  cdigo  para 
desplegar  la pantalla,  cdigo de ejecucin y pantallas de ayuda. 
Esqumticamente tenemos:

                         __________
                        |          |
                        | Entrada  |-----[Cdigo-Salida 1]----->
[Cdigo-Entrada 1] ---> |          |
                        | Pantalla |
                        |          |-----[Cdigo-Salida 2]----->
                        | (Ayuda)  |
[Cdigo-Entrada 2] ---> |          |
                        | Salida   |-----[Cdigo-Salida 3]----->
                        |__________|

                            NODO

Este  ejemplo corresponde a un nodo que tiene dos  conecciones  de 
entrada y tres de salida.  O sea que a l puede llegarse desde dos 
nodos, y desde l puede llegarse a tres diferentes nodos. Asociado 
al  nodo  se encuentra un cdigo que debe ser ejecutado  antes  de 
desplegar la pantalla, cdigo para desplegar la pantalla, cdigo a 
ejecutar despus de desplegar la pantalla,  y opcionalmente cdigo 
para desplegar una pantalla de ayuda para la pantalla.

El programador puede pedir al sistema que le disee cada pantalla. 
Para  esto  basta que l defina cuales son los rtulos  que  deben 
desplegarse,  para  el  el  DB3protp  los acomode  en  el  espacio 
disponible  para  la pantalla.  El sistema  usa  varios  criterios 
simples  para ordenar los rtulos,  y el programador puede  verlos 
todos hasta encontrar uno que le agrade o que puede ser modificado 
levemente  para  obtener  una pantalla  agradable.  El  editor  de 
pantallas   est  integrado  al  sistema,   y  la  escogencia  del 
programador  es  luego  guardada  en un  archivo  para  ser  usada 
despus, cuando se necesite modificar el sistema.

Los mens generados son de dos tipos:  verticales y  horizontales. 
Asociado  a  cada men est una pantalla de ayuda,  que  se  puede 
activar   seleccionando  la  opcin  correspondiente   (usualmente 
presionando  la  tecla F1).  Para ambos tipos de men  el  usuario 
puede moverse de una opcin a otra usando las flechas del teclado, 
en  cuyo caso la opcin correspondiente se despliega en caracteres 
resaltados.  Para  seleccionar un tem de men debe  localizrsele 
primero,  y  luego seleccionarlo usando la tecla  Entrada.  Cada 
tem  de  men  puede  tener asociada una  letra  que  sirve  para 
localizarlo  de  forma  rpida.   Opcionalemente,  un  men  puede 
encerrarse  en una cajita.  En general,  los mens ocupan toda  la 
pantalla,  y  la borran inmediatamente despus de  seleccionar  un 
tem  (esto porque DBase III no ofrece facilidades para el  manejo 
de ventanas).

Los   nodos  pueden  clasificarse  en  varias  categoras:   mens 
horizontales, mens verticales, entrada de datos, salida de datos, 
despliegue mltiple de lneas y definida por el usuario.  Cada uno 
de estos tipos de nodo tiene sus caractersticas propias.
