MC Alicia Martinez Rebollar 1997

Anuncio
!I
..,
SEIT
SEP
DGIT
CENTRO NACIONAL DE INVESTIGACION
Y DESARROLLO ‘TECNOIAOGICO
cenidet
ill
“ G ~ N E R A D O RDE CODIGO PARA LENGUA-JEc
UTILIZANDO UNA NOTACION
DE DISEÑO DETALLADO”
E
S
I
S
MAESTRO EN ClENClAS EN CIENCIAS
rn
C O M P U T A C I O N A L E S
P
’
CENIDET
OBTENER EL G1tAI)O DE:
QUE PARA
I1
CENTRO DE INFORMCIQE’
R
ALICIA
E
S
E
MARTINEZ
N
?r
A
REBQLLAR
1-1
I
C U E R N A V A C A ,M O R E L O S
AGOSTO
DE 1997
SEPD
sw
SISTEMA NACIONAL DE INSTITUTOS TECNOLOGICOS
Centro Nacional de Investigación y Desarrollo Tecnológico
ACADEMIA DE LA MAESTRIA EN CIENCIAS
DE LA COMPUTACION
Ciierriavaca Mor.. a 2 I de julio de 1997
Dr Juan Maiiiicl Ricaño Castillo
Ditector del CENIDET
Presente
1
At'ti. Dr losé Riiiz Asceticio
Jefe del Dpto de Computación
Nos es grato comunicarle, que confonne a los lineamieritos establecidos para la
obteiicióii del grado de maestría de este ceiitro, y después de Iiaber sometido a revisión
académica el trabajo de tesis deiioniitiado:.
!I
"Generador de código para lengua,je C utilizando
una notación de diseño detallailo"
que prcscnt0 la I, I Alicia Mariíiicz Rciiollar, y Iiaiiieiido ciitiipliclo coti todas las correcciones
1) .
qiie le Iiieroii iiidicatlas. acordamos 110 tener objeción para qite se IC coiicetla la aiitorizaciciii de
impresión de la tesis, así como de fijar la fecha del examen correspondiente
Sin más por el momento, quedamos de usted
Iiiterier Iiilcrn;ifleP : i I n i i n i S/N C.P. 62490
Ap;irl;itlo Post;il 5-165, C.P. 6Z0Sl1, Ciicrn:iv;ic;i Mor.. Mfxicn
Trlr. (73) 151-77-41 y 12-76-13, Fax. 12-25-35
'SW
SISTEMA NACIONAL DE INSTITUTOS TECNOLOGlCOS
Centro Nacional de Investigación y Desarrollo Tecnológico
81
Subdirección Académica
Of. No. CSS-019/97
Cuernavaca Mor., a 30 de julio de 1997
L I. Alicia Martinez Rebollar
Candidato al grado de Maestro
en Ciencias de la Computación
PRESENTE
Después de haber revisado su expediente escolar, y considerando que cumple con
los lineamientos establecidos en el reglamento académico para la obtención del grado de
maestría de este centro, me es grato comunicarle que se le concede la autorización para
que proceda con la impresión de su tesis. AI mismo, aprovecho para indicarle que, deberá
acordar con los miembros del jurado la fecha y hora de presentación del examen
respectivo.
Sin más por el momento, reciba mis felicitaciones por el término de su trabajo de
tesis, deseandole éxito en el examen correspondiente.
Atentamente
Dr. José Ruiz Ascencio
Jefe del Dpto. de Ciencias
Computacionales.
C.C.P.
C.C.P.
.
, A DIOS, por darme la vida ...
A mi MA1)RE n quien tleho todo lo que soy ...
A mis hermanos por todo su apoyo...
A mis ciifiados, por ser como son ...
A mi soi+inos por sus risas y alegrías...
A mi esposo Hugo, porque eres todo lo que necesito para ser feliz,
'Gracias mi amor. TE AMO ...
"
AGRADECIMIENTOS
A mi csposo I-lugo I:stratla I k p i v c l porque gracias a su apoyo yiayutla iiicoiitliciniial Iic logrado
alcanzar csia nieta.
Agfiidczco a
iiii
Asesor M.C. Máximo López Sáiicliez por sii apoyo, ar-¡eiiiac¡Ón y tiempo
110s propiisinins. y solii-e iodo. p o r sti ninisind.
tic<lic;iti»p w i ~ogr:irniuciio inh dc Io qtic
Espi-eso i i i i iriás sincero agradeciiniento al Centro Nacioiial de Investigacióii y Desarrollo
Tecnológico por darme la oportunidad de cursar mi maestría eii compirtacióri.
Reconozco y agradezco el apoyo econóniico brindado por' (CONACYT) para lograr la
terininaciOii de iiiis estudios dc maestría.
Agradezco al Dr. Javier Ortiz Fleriiáiidez por toda la ayuda y palabras de aliento que siempre me
iia brindado. además gracias por tu ninistad.
Agradezco al M.C. llené Saiitaolaya Salgado y M.C. Olivia Fragoso Por la ayuda y orieiiiacióii
hriiidada. y sohre todo por su aiiiistad.
Agi.;itlezco al grupo de Iiigciiicria <ICSoftware (I lugo Eslrad:i, C:arpio Tovilla, ixticie Saiitn
o ~ a i í a ,Eurí Sailgad». I'cresa C h n i i ú (por tu graii ayuda cii csta tcsis), irío íos de In Cruz, ~ i i s a i i n ,
Miriia, ILiliaiia y Marco Aurelio) por los buenos y malos iiionieiitos. y sobre todas las cosas,
gracias por que juiitoc Iieinos salido adelante.
Agi-adezco a i»d«s m i s profcsores dcl ceiiidet por stis coiiociiiiieiitos hrindados.
Agratlezcc a los profesores el Dr. Giiillerino Rodrígiiez, al M.L. Felipe Alaiiiz y ai Dr. Rodolfo
I'azos 1l:iiigcl
M.C. Máxiiiio López Sáiicliez potque con sus comentarios y correcciones
Iiicicroii iiii inc,jor ti-aba,jo.
Agradczco al M.C Manuel Juárez y al M.C. J. Luis Ramirez y Veróiiica Sotelo por su poyo?
amistad y sobre todo, por ser como son.
Agradezco a i n i s compañeros de generación I-lug« Esirada, Mario Flores, Victor Garcial Eiirí
Salgaddo. Ziiiini Sáiiciiez y Wiiiiatii Zapata; a todos eitos, gracia'; por su amistad.
Agratlczco i d gI-tipo dc bases dc datos distribuidas (Aiiasiacio. José Antonio, Miguel Maslaclie y
C:l:nidio Iliarra)
DEDICATORIAS
A DIOS
I'oi- darilic la vida, pcriiiaiieccr sieiiilxc ii
iiii
Iaclo y qiicrcriiic Isiiío.
I)cdico este trabajo con todo mi amor y respeio a tina gran iiiujer
que toda la vida ha permanecido a mi:lado,
diiidoine todo lo mejor de ella: MI MADRE.
Al rcctiei-do dc i i i i padre, que está presente en lodo iiioineiito
A MJ ESPOSO
I4ugo I.:sii.eda I3quivel por ser todo ni¡ iiiiiiido. Y coli quien deseo
coriipariir íodos lostnoinetiios de in¡ v¡d:i."i'E AMO.
A MIS HERMANOS
M a i í a del Rosario, Miguel Angel, 1,iicio y Eivin por SLI apoyo iiioial y
económico que iiie han brindado a lo largo de toda iiii cariera.
A MIS CUÑADOS
I
Octavio y Celia por hacer tan felices a inis hermanos
además por ser corno son.
A MIS SOJIRINOS
Mayra. Daiiiela y L i c k porque con sii caiiíio y
alegría ine han Iieclio miiy feliz
TABLA DE CONTENlDO
¡.isin dc Figuras................................................................................................................
v
Cilpitriio 1 INI’R0I)UCCION A LA INGENIERIA DE
...
.........................
SOFTWARE................
I
.............................
I.1 Iiitrodiiccioii a la Ingenieria de Software ........
I .2 (.iCl<> dc vida cl5sico ........................
...............
............................................
I .3 Iliscño dc +riwarc ............
............................................
1 .3.1 Discño de daios .....
I 3.2Dise( arquitecióii
I .3.? Diseño procediinci
..............................................
i .4 imporinncia dcl diseño ..........................
Capitulo 2 PLANTEAMIENTO DEL PROBLEMA
.....................
...............................
2. I Descripcióij dcl problema
2.2 Alieriialivas de soluciói
.......................................................................
..................................................
2.2.1 Ohjetivo de la iesi
2.2.2 Bciicficios dc la ICSIS ..........................
..............
. ”
2.3 Iiivcsiiyaci6ii sobre lii iiiilimci6ii de las noiacioncs dc disciio..................................
2.3.1 GrAfica dc tendcncias de las notaciones de dise.ño inis conocidas
2.3.2 Grifica de teiideiicias de las notaciones de diseño más utilizadas.
8
9
IO
IO
11
12
12
13
14
o s dc la investigación
...............
..............
.................
..........................
...........................
................
...............
2.5.3 Jackson ...........................................................
...............
........................
2.5.3. I Coiisiriiccioiies bisicas .............
2 . 5 4 Niissi/Sliiicitlcriii:iii (N-S).....
...................
15
16
16
16
17
18
18
19
19
2.5.5 I-llP0 (I-1ierucliy/liipiit/Process/Ouiput)
........................
..............
2.5.6 Diagraiiias de Wariiier
.........................................
2.5.6.1 Siinbología ........................
......................................
2.5.6.2 Coristrucciones básicas
......................................
2.6 Coiiiparacioiics cntre Ius iiotacioiies de diseño
.........................................
...............
2.7 Noiacióii de diseño detallado elegida...................... :................
20
23
25
/;
cal~itiiio
3 ~ONCEPTOS
DE PROGRAMACION visum
26
............
...........................................
3. I I Iilrotliiccióii.., .
1
............................................................
3.2 coiiccpios Lie prograiiiacióii visual
.................................................
3.3 iJiia taxoii6iiiío de ¡conos................
!,
.
3.4 I'rograiiiacioii
visual ...............................
.......................................
......................................
3.5 I,ciigiia,jc V i S l l a l vs. leslunl .....................
........................................
3.6 Esiado del ' a r k....................................
.................
3.6.1 Visiial Magic ........................... :......................
3.6.2 Geiierador de aiiibieiites visuales (VIXC) ................................
3.6.3 Microsle
.....................................................................
27
27
28
30
31
31
31
32
32
Capittilo 4. DEStRIPCION DE LA GRAMATICA DEI, GENCOD
33
4. I Aiiiecedeiites..................
...........................................
4.2 Esqiieiiia Coiiceptual del
...........................
4.3 1111 leiigiia.jc gráfico para
4.3. I N(ii:iciOii dc tliscño dctnll:iclo iiioclilicad;~........................................................
........
4.4 Algiiiias Veiiiajas que ofrecen las graiiiática
4.4.1 Coiivciición de la iioiacióii de la graiiiáiica .......................................................
.........................................................................
4.5 Dcscripcióii tle iiiia graiiiitic
4.5.1 Síiiiholos iio icriiiiiiales
.........................................................................
4.5.2 Síiiibolos ieriiiiiiales...................................................................................
4.5.3 Síinholo iiiicial ......................
.................
4.5.4 lleglas <le prodliccióii..
........................
4.5.4.1 Ilelacioiics Ciiá
..................................
4.5.4.1. I Relacioiies Cuádruples de los síiiiholos teriiiiiiales
de la gi-áiiiática .
...............
4.5.4;2 Airibiitos de los ob.jetos..........................................................
4.5.5 f:valii:i<lor piciogrAlico ......................................................................................
4.6 Esirwiiifii 'Idc I h i o s que iiiaiieja el GeiiCod ............................................
I/
4.6.1 1.ktriiciiii.a
(IC d;iios dc la lista de nhjeto
34
36
31
39
41
42
43
43
43
45
45
46
I/
47
49
50
5o
SI
..................
4.6.2 Estriictura de datos de la lista de Argumentos ..............
..................
4.6.3 1’:structrii.a de datos del arreglo de listas...............
4.7 Iiiterraz gráfica implantada en el sistema GenCod..
.....................
.....................
4.7.1 Interfaí: coli iiiúltiples documentos (MDJ) .....
........................
..........................
4.7.2 Iiiterraz del GeiiCod .....................
Capitiilo 5. DESARROLLO DEL SISTEMA .......................
56
57
.......... 60
5.1 1)cs;irrollo intcriio del diselio detallado .........................
...............................
................. p ........
5.1 . I Ileliiiicióti dirigida por la sintaxis.
5.1.2 Ariilisic en el desarrollo de in1 diseno y ubicacióii de los obj
............................
pa11talla ..........
............................
5.1.2.1 Ubicación del primer ob,jeto en la pantalla
...................................
to activo ....................
5.1 2 2 Ubicación de un objeto en la panta
5. I .2.3 Ubicación de un objeto en la pantalla después de un objeto pasivo......
5.1 .2.4 tibicación de i i n objeto en la pantalla despiiks llcl objeto FIN .............
5 . I .2.5 Ubicacióii del ohjeto activo hacer-mientras <coiidiciOri> y liacer
<condición > niientra
.....................................
5. I .3 lnscrcióii dc objetos ............................................
...........................
5.1.3. I Inserción entre niveles (de niayor a mennr abstracción) ..........
5.1.3.2 Inserción entre niveles (de menor a mayor
.....................
5. I .3.3 Iiisercióii entre objetos (en el mismo nivel)
5. I .3.4 Iiiserción entre niveles (de mayor a inenor abst;.accii>ii) cuando se
desea hacer la iiiserción antes del objeto Mientras coidición o
liaccr-Mientras coritlicicín ...........
.............................
5.1.3.5 Ubicación de los ohjjeios después de la inserción..................................
5.1 .4 Ajuste dc los objetos en el diseño.....................................................
5.1.4.1 Estructura de datos de la lista teiiipoi-al (que realiza el ajuste de las
coordenadas de los ob-jctos activos) ..................:..................
5.1 .5 Eliiiiiiiaciiiii de ol>jetos...........
..........................................
,.
5. I .6 Gciicrador niiioiiiaiico de
..... ~- ...................................
5.1 .6.1 Maiicjo (IC la estructura dc datos para In generación dc ckligo ....
5. I .7 Arqiiiicctura del archivo de di
.................................................................
5.1 .8 I-l~ri-aiiii~~itas
del (;ciiC«d
5. I .8. I Novcg;iciOii ciitrc liiiicioiic.s.
........................
5. I .8.2 Ayiidas por Iiiperiexto ......................................................
61
64
66
67
69
60
73
78
IO
80
81
83
83
86
O0
iii
Capitulo 6
DISENO
DE UN PLAN EXPERIMENTAL
.............................
;j
....................................
....................
6.1 Muestre«
.....................
6.2 V:iri:il)lcs tlepciitli
...................
..................................
................
6.3 Variables iridepeti
6.4 I-lipótccis a comprobar .......................................
........................
..
6.5 Plan de cvalwic
.......................................
..........................
.............................
6.6 Aiihlisis dc rcsu
Capitulo 7 COMENTARIOS FINALES........
7.1 Alcances logrados...........
7.2 Mejoras y ainpliacioiies a este Ira mjo ....
7.3 Trainjos fiitiiros ...................
92
93
O4
94
94
94
O6
.................. 100
..................................................
.........................
.............................................
..............
Referencias
.......................................................
.............
Anexo 1. Ciiestionario
.............................................
Anexo 2. Reglas de prodiicción de la gramitica visiial ...........
Anexo 3. Diagrama de transición de estados para la declaración de
iiria variable o un arrcglo..
.....................
Anexo 4. Formato del archivo de di
Anexo 5. Demostración de la ejecu
104
106
107
I09
I I0
I12
i"
LISTA DE FIGURAS
No. Fig.
Descripción
Pág.
1.1
1.2
Modclo (IC cascada dcl ciclo dc vida dcl soliware
Iiiipoi-taiicia del diseño
3
6
2. I
2.2
2.4
2.4
2.5
2.5
2.7
13
13
14
2.8
2.9
2.10
Mctodologías de diseño detallado inis coiiocidas
<ICI i o de frecuencia de las notaciones de diseño
Metodologias de diseño inás iiiilizadas
Uso dc las iiictodologías de diseño eiitre los des;ii.rollaclotes
1
C~~iistrucciciiics
en diagramas de flujo
13slrticturas básicas del método de Jackson
L.8s ircs sínibolos gráficos utilizados para dijar los diagwnias <le
Nnssi-Scliiieiderinan
‘Talda visual dc coiiieiiido para uii paqtieie 7111’0
Siiiihología utilizada para los diagraiiias de Wai-iiier
Coiisti-iiccioiies hásicas de los diagraiiias de Wai-iiiei.
19
20
21
22
3. I
Oiia iaxonornía de icniios
28
Gil.
15
17
IR
Y
4. I
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
4.10
4.1 I
4.12
4.13
4.14
4. I5
4.16
4.17
4.18
5.1
5.2
5.3
5.4
5.5
5.6
5.7
5.8
5.9
5.10
Esquema conceptual por capas del AMASS-I
Esqiiciiia coiiccptiial del GeiiCod
I'riiicipio dc la orgaiiizacióii jerhrquica
Tabla que iiiticsira las niodificacioiies lieclias a la notación de
disenode Wariiicr en la secueiiciacióii
l'ahla que iiiiicstra las iiiodificacioiies Iieclins a la notacion de diseño
dc Warnicr cii la bifiircacióii.
Tabla qiic iiiticstra las niodificacioiies Iieclias a la iiotacióii de diseno
de Wariiicr en la rcpcticióii
Coijiiiiio tlc síinholos no tcriniiiales
Coijuiiio de síiiibolos terminales
Tabla de síiiibolos gráficos coii su suhíiitlicc asociado depekiieiido
del significado
Ejciiiplo dc iiiia regla de prodiiccióii
Estniciiira de daios dcl GciiCod
Modelo coiiccpiiial dc los iiodos de l a lisia de objetos
Tabla de identificadores para el núnicro de iiistriiccioiics
Modelo coiiccpiual dc los iiodos de la lisia de variables
Motlclo conceptual de l o s nodos dcl arrcglo de listas
Atitóniaia ciiiplcado eii el GeiiCod
.
Editor dc u n prograina MDI
Iiiterfaz del GcnCod
'
35
36
38
39
40
41
43
44
.
44
46
51
51
52
54
55
56
51
58
'I
Ca.ja tlc dialogo qiie pide la iiiforinación de una Tiiiicióii del
sisikiiia GciiCotl
Ca.$ de dialogo qtie impide dar iioiiibi-es inapropiados a las
fuilcioiics
Caja de dialogo que for72 definir el tipo de una fiiiicióii
Caja de dialogo de la dcclaracióii de los paráineiros de una fuiición
Cajas <ledialogo para controlar el iioiiibrc y iipo de cada val-ialile
E.jeinplo del aiiálisis en la inserción de un objeio en el diseño
Ejciiiplo de iiii error cii el análisis coii la inserción del objcio else
E,jeinplo de tina Tiiiicióii con tres funciones anidadas
C«ordcii;idas dcl priiiicr ohjcto dcl diseíio
(a) Miicctra l a obteiicióii tie las coordenadas tlc la izquierda de
i i i i oh.jeto iiiscriado después de i i n objeto activo, (11) Muestra
l a obtciicióii de las coordenadas de arriba del iiiisino objeto
61
61
62
62
63
65
66
67
68
68
vi
5.15
5.16
Muestra la obtención de las coordenadas abajo y derecha de uti
objeto
.
insertado
Muestra la inserción de un objeto en el mismo nivel de abstracción
';
Muestra la Obtención de las coordenadas de arriba de un objeto
'I
insertado en un nivel de abstracción mayor
Muestra la obtención de las coordenadas de la izquierda de u n objeto
insertado en un nivel de abstracción mayor
Muestra la obtención de las coordenadas de arriba del objeto while
Mucstra la obtención de las Coordenadas de arriba e izquierda del
5.17
Ol,jCk) scanr
(a) Muesira la obteiición de las coordenadas de la izquierda del
5.1 1
,8
5.12
5.13
5.14
5.18
5.19
5.20
5.21
5.22
5.23
5.24
5.25
5.26
5.27
5.28
5.29
5.30
5.31
5.32
objeto scanf(b) Muestra la obtención de las coordenadas de arriba
del objeto
Comparación de las coordenadas obtenidas por el nioiise contra los
objetos que integran el diseño
Inserción de uti objeto después de una función.
Paiiialla de comparación de las coordenadas, para la inserción de
di objeto
P h d l a de comparación de las coordenadas, para la inserción de
un objeto
:I
Inserción
de u n objeto. después de el ob.jeto de terniinacibii de
una seiiieiicia
Paiit;illa de coinparación de .las coordenadas, para la iiisercihi de
nti objeto
Pamlla de la posición elegida por el inoiise para realizar la
inserción de u t i ob,jeto.
Paiitalla de coinparacióii de las coordenadas entre dos oljetos
que se encuentraii en el misnio nivel
Pantalla de la inserción entre niveles (de mayor a menor abstración)
I'antalla de coniparación de las coordenadas de la inserción
entre niveles
Inserción de u n objeto activo dentro de tin diseño
Ubicación del objeto activo ya insertado en el diseño
Ejemplo del ajuste de los ob,jetos en el diseño detallado
(externamente)
~ j i i s t cdc los objetos cii el diseño detallado (internamente)
Modelo conceptual de los nodos de la lista temporal que sirve
S
para realizar el a.juste de las coordenadas de ob.jetos activos
'tlel discño
68
69
70
70
71
72.
73
74
75
76
76
77
77
78
78
79
80
80
81
81
82
83
Vii
5.33
5.34
5.35
5.36
5.37
5.3R
5.39
5.40
5.41
6.1
6.2
6.3
6.4
6.5
Pantalla que muestra la eliminación de objetos en el sistema GenCod
Pantalla que muestra la elimiiiación del objeto if y la ubicación
de los ob.jetos después de la eliminación
Pantalla que muestra la eliminación del objeto fin d e una sentencia
y la ubicación de los objetos después de la eliminación
El GciiCod conlo un puente entre la etapa de diseño detallado y
pruebas
Orden secuencia1 en el cual se recorren las esirticturas de datos en
el GenCod para la generación de código
Iiiterfaz del GeiiCod que muestra la generación de código de
dos ftinciones
Ali~iaceiiaiii~eiito
del archivo de diseño detallado de:! GeiiCod
Arquitectura del archivo de diseíio
Navegación entre las funciones de diseño
Información para calcular la medida de dispersión para el tiempo
dedicado a desarrollar u n sistema sin utilizar la herramienta
Jnfortiiación para calcular la medida de dispersión para el tiempo
1;
dedicado a desarrollar u n sistema utilizando la Iiei-rainienta
Iiiforinación para calcular la medida de dispersión para el tiempo
dedicado a desarrollar un sistema sin utilizar la herramienta
Información para calcular la medida de dispersión cara el tiempo
cle¿!icado a desarrollar tin sistema utilizando la Iierraniienta
Resuineii coniparativo del tiempo utilizado en las cuatro pruebas
84
85
85
R6
87
88
89
90
90
96
96
97
98
98
..<
Vlll
Capitill0 I
__
__
,
.
Introducción a la ingeniería de software
CAPITULO 1
INTRODUCCION A LA INGENIERIA DE SOFTWARE
I<stecnpítiilo'describe 1111 breve panoratna del ciclo de vida de 1111sistema, así como de la
iiiiportaiicia que tiene el diseño dentro de él.
I/
I
c>q>ítlllc>
I
..
~
~~
’
.
:
Iiitioduccióii a l a iiigeiiieria de soltivare
.
1.1 Introdocción a la ingeniería de software
Los dirigentes de las organizaciones demandan Sistemas de software cada vez iiiás
confiables. es decir, que su realización se elabore en fornia correcta conforme a los estándares de
c;ilidad, y por “tia parte que su desarrollo se realice en los tiempos y cosios establecidos.
La situación real en los Centros de desarrollo de.software, dista niuclio de los deseos de
‘I
los ejecutivos, en cuanto a la calidad de los sistemas que producen, así conio a los tiempos y
cnstos realniciitc iriiplicados. Todo cllo es debido fiiiidei~ieiilaliiieiilea la falta de eiiipleo de
nietodologías y Iierraiiiieiiías adecuadas. además de los posibles casos particulares de relaciones
Iaboralcs[,CUE93].
I ’ w i dar snliicióii a esta prohleiiiática surge la Ingciiiería de Snfiwsre, que tiene coiiio
iiieia principal, aporinr Iierrainieiiias y técnicas que nieioreii la protiuctividad de Ins actiialcs
iiigciiiei-osde profraiiiación[~Al90].
Una dcfiiiicióii que acerca el concepto de la ingeniería de software es:
“L:i ingcnicría de software es la disciplina tecnoihgica y n<iiniiiistrativadedicaiia a is
I/
protliiccihn sisíciiihtica
de productos de programnción, que s o n desarrollailos y
‘I.
niotlificnrlns n Qcnipo y dentro de tin presupuesto dcfiiiido” [FA190].
Las nietas de primordiales de esta nueva disciplina tecnológica son mejorar la calidad de
cstos productos y auinciitar la productividad y satisfacción profesional de los ingenieros de esta
disciplina .
I 3 e íraba,jo de tccis da como resultado una Iierrniiiieiita cuyo ob.jetivo es ayudar a los
progratiiadores en i i n u de las etapas del ciclo de vida del software, de la cual hablaré iiiás
aiiiplianiente eii el punto 1 .3.
I .2 Ciclo de vida clásico
‘I
1% cstc tenia de tesis se trabajó eii la fase de diseno detallado y como tina consecuencia
I
t;iiiibiCii cn lii Iase dc codificación. Para entender más a detalle, como se relacionan las fases de
discíío y codiíicacióii. a coiitintiacióii se mucstrn tin rnodclo dcl ciclo dc vida del sokwarc.
La figura I . I ilustra el.paradigma del ciclo de vida clásico para la irigeriiería del software.
Algiiiias vcccs llamado “inndelo en cascada”, el paradigma del ciclo de vida exige un enfoque
sistciii;iiico y secucncial del desarrollo soítware que coinieriza en el nivel del sistema y progresa
:I través del :iii:ilisis. diseño, codificación?prueba y nianteniinieiito.
2
Iiiiroducci6n a la ingeniería de soilware
Capíiiilo I
rim
L
Aiiálisis
=
y
*
Codificación
Mantenimiento
II
Figura
I . I Modelo de cascada del ciclo de vida del soltivare
Modclizado a partir del ciclo convencional de una ingeniería, el paradigma del ciclo de
vida abarca ins siguicntcs actividades[PRE90]:
+ Irtgeiiicrín de/ sisfeirin. Debido a que el software es siempre parte de u n sistema mayor, el
t r a h j o coniicndl establecieiido los requisitos de todos los elementos del sistema y luego
asignando algún subconjunto de estos requisitos al software.
+
Aridisis. El proceso de recopilatióii de los requisitos se cenira e intensifica especialmente
para cI soíiwai-e. Para comprender la naturaleza de los programas que hay que construir, el
iiigciiicro dc soft\f;irc (“analista”) debe comprender el ámbito de l a iiiforinacibn del software, así
como la fiiiición. Ci rciidiiiiiciito y las iiitcrraces requeridos.
+ Bi.wiio. 111 tiiscño tlcl software es rcaliiiente u n proceso inultipaso que se enfoca sobre cuatro
atrihiitos clisiiiitos del programa: la estructura de los daios, la arquitectura del software, el deialle
procediiiieiitai y la caracterización de la iiiierfaz. El proceso de diseño traduce los requisitos en
11
iina rcprcscntacióii dcl software que puede ser establecida de forma que se obtenga la calidad
reqiicridn aiitcs de que coniience la codificacióii. AI igual que los requisitos: el diseño se
dociiiiieiita y forma parte dc la configuración del software.
3
Ce~>lliilo1
:
If
1
Iiilrodiiccióil a la ingeniería de software
.
+ Codrficnciórr. El diseño debe traducirse en una forma legible para la niáquina El paso de
codificación realiza esta tarea.
1-
+ Prrrebn. Una vez
que se ha generado el código, comienza la Iirueba del programa. La prueba
.I
sc centra cn la Ihgica intcrna del software, asegurando que todas las instrucciones se han
probado. y cn las lirricioiies externas, realizando pruebas qiie aseguren que la entrada definida
pro<liice los rcsiilta$os que realmente se requieren.
+
I/
U/mwciriir. Algiiiios autores añaden esta fase eii el ii~odclodel ciclo de vida del sonware. En
esta fase se identifican aciertos. en la medida eii qiie los reqireririiientos de los progranas de
coiiipiitadora satisfagan las necesidades del usuario, la arquitectura y los diseños se asocian a las
11
caracierísiicas espccíficas
del sistema de explotación de cómputo. y en general la disciplina que
I1;iya sido cnlplcatlo I""" la constriiccion del códigolGE1185].
+
,+fnrt/~.rrirrrierr/o!El sortware, iiitludablemeiite, sufrirá cambios después de que se entregue al
cliente. Idos cambios ocurrirán debido a que se hayan encontrado errores, a que el software deba
adaptarse a cambios dc entorno externo, o debido a que el cliente requiera ampliaciones
iiiiicioiiales o de rciidiiiiicnto.
I/
Uiia vez qlle se Iia analiz.ado el ciclo de vida del sonware s,e,liahlará más anipliainelite de
la fasc dc diseño.
81
1.3 Diseño de software
//
Estc lema de tesis se centra en la fase de dise'ño, debido a qiie ésta es una de las menos
atacadas por los desal-rolladores de sistemas, ya que si bien existen herramientas que nos
permiten organizar iiii sistema en niódulos en la fase de análisis, no existen aquellas utilerias que
1)
nos pcrriiitaii desarrollar el diseño de un sistema y que nos de como resultado la iniplantacióti de
csc diseño.
Ahora sc iiidiiciouarán las partes en las que se divide el diseño de sonware segun Farley y
I'rcssiiian. cabe aclarar que estas dos ideas respecto al diseño no se presentan como una
coiiiparacióii ciitre cllas' sino como iin medio para llegar a una idea tnás general de diseño.
I:airlcy divide la fasc de diseño en: estructural y detallado, dándoles la siguiente
tlc filii C i i i i i :
Discíio estriictiiral: coiiiprcnde la ideiitificacióii de los coniponeiites de la programacih, SLI
dcsacoplaniicnto y desconiposición en módulos de procesa~iiietito y estructuras de datos
coiiccptriales. y la cspccificación de las intercoriexioiies cntre coniponeiites.
4
. .
il
Capiliilo I
Introducción a la ingcniería de software
..
.
.
.
.~~. ... .
.
.....
.
IXseño detallado: se refiere a detalles de: cónio enipacar iriódiilos de procesainiento, y cónio
11 .
las estructuras de los datos y sus iiiterconexiones.
iiisirunicntar los algoritnios,
It1 discíio dci:illatln cskí Iiicriciiieiitc iiillueiiciado por cI Ieiigiia,jc <le iniplaiiiacióti. pero
no cs lo iiiisnio qiie la iiistrunieiitacióii, el diseño detallado tieiie que ver más con aspectos
scniáiiticos y iiieiios con detalles sintácticos que es la iiistriiinentacióii~además permite el diseño
de algnritiiios y rep:eseiitaciones de datos en un nivel más alto de abstracción y notación que el
.I
que proporcioiia c l 1eiigiia.je de iiiiplaiitación, es decir el diseño de un algoGiiiio es susceptible a
ser inipl;iritado en una amplia variedad de lenguajes de progi-ainacicíii.
I3 diseño detallado separa las actividades de diseño a bajo n i v e l de instriinieiitacióii, igual
que las aciivitlades de análisis y diseño aislan las consideraciones de lo que se desea de la
cstriiciiira que lograi-á los reiultados deseados Una especificación adecuada de diseño detallado
..'
niiiiiniiz,a el iiúiiiero /de soipresas
durante la iiistrumeiitación del pi-oducto.
I/
A tlirereiicia de I'airley, Pressnian asienta el diseño de i i n programa en el diseño de datos.
CItliseño ;irqiiitcctóiiicn, el diseño proccdiineiital y el diseño de la iiiterraz de usuario.
Diseña de dafos:~
13 diseño de datos es la priinera (y de alguna forma podríainos decir que la
iii6s iiiiportante) de las tres actividades de diseíio realizadas durante la ingeniería del sortware. El
11
iiiipncto dc la estrnctiira de datos sobre la estructura de programa y In coiiiple.jidncl
II
procetliinciiial, Iiacc qiie cI discño de datos tenga una gran inlliiciicia et1 la calidad dcl
sofiwarc[PIIE90]. 1% sccci«iies posteriores se inostrarin algunas de las iiietodologías eiirocadas a
este tipo de diseño.
Diseño arqnitecthnico: El objetivo principal del diseño arqiiitectónico es desarrollar una
1)
csiruciiira de programa inodular y representar las relaciones de control entre los inódulos.
I/
Adciiifis cI discño arqiiitcclóiiico mezcla la estructura de progrenias y la estructura de datos y
deliiic las iiiterfaces que facilitan el flujo de los datos a lo largo del programa [PRE90].
Diseño procecl¡mental: El diseño procedimental se realiza después de que se Iia establecido
la cstriictiira dcl prograina y de los datos. Eii iin inundo ideal, la especificación proceditneiilal
qiic dcliiic los deiallcs algoritiiiicos debería explicarse en leiigiiaje natural. Desafortunadamente
I/
CI discño procediiiiciital dcbe especificar los detalles de los procediiiiienios s i n ainbigüedad y la
kllh dc aiiibigüedad 'en el lenguaje natural no es Iiahitiial. Por estas y tiiiiclias otras más razones,
se dehe <IC
iisai- una forma iiiás restringida para la represeiitacióii de los detalles proeediiiientales,
las ciiiilcs se iiiosiraráii en las secciones subsccuentes a este capílulo. Este tipo dc diseño es
sciiic,jaiiic n cqiiivalciite al diseño detallado del cual se Iialiló aiitei-iornieiite. sólo que este autor
In dciioiiiina prnccdinicnial.
5
Cnpitiilo i
Iiiirodiiccioii a la itigenierla de software
.. .
Diseño de
1.7
.~
.
.
.
..
~~
~
~
... .
iiitefaz de iisiiar¡o: La interfaz del usuario es el mecanismo a través del cual
se establece u n didlogo entre el programa y el hutnaiio. Tiene tanto que ver con el estudio de la
11
gciitc como con aspectos
de la tecnología. ¿Quién es el usuario? (,Cómo aprende el usuario a
iiiteraccioiiar con di sistema nuevo basado en computadora? ¿Qué espera el usuario del sistema?
Esias son sólo unas pocas de las iiiiiclias preguntas que deheii ser planteadas y respondidas como
partc dcI diseño de la iiiier1a7, dc usuario.
Tciiiendo varios enfoques de la fase de diseño mencionaremos cuál es la importapcia qiie
ticiie éqtc dciitro cici ciclo de vida del sortware.
I/
1.4 Importancia del diseño
La importancia del diseño del software se puede sentar con tina única palabra CALIDAD.
El diseño es el proceso en el que se asienta la calidad del desarrollo del software. El diseño
produce las represehaciones del software de las que pueden evaluarse su calidad. El diseño es la
11
única forma iiiediantc la cual podemos traducir con precisióti los requisitos del cliente eii u n
producto o sisteiiin acabado. El discño de software sirvc como base de todas las postcriores
etapas del desarrollo y de la fase de mantenimiento. Sin diseño, nos arriesgamos a construir un
sistema inestable, u n sistema que falle cuando se realicen pequeños cambios; un sistema que
pueda ser difícil de probar; un sistema cuya calidad no pueda ser evaluada hasta más adelante en
el proccso de ingeniería del software- cuando quede poco tiempo y se haya gastado ya inuclio
diiicro ll'RE901.
:I
A continuación en la figura 1.2 se presenta una gráfica que ilustra los resultados de
d e s a t d l o de software con diseño y sin diseño.
Con diseíio
I
Sin tlisetio
Figura I .2 Importancia del diseno
h
Introdiicción a la iiigenierla de sonware
131csta gidfica se piictlc ver qiic el diseño es de priiiiordial iiiipoi-taiicia para el desarr»llo
de ciialquicr sistciiiii (le software. Al igual qiic eii liis dciiiás fascs del ciclo de v i h dcI sort\vare.
en la etapa de diseño detallado se cuenta con u n conjunto de Iierrainieiitas que sirven para
11
fxiliiar las distintas activiclades asociadas con dicha etapa, a estas herramientas se les conoce
conio notaciones de diseño
1% este tenia de tesis se plantea la construcción de un sistema de software que permita al
1)
usuario realizar la '!etapa de diseño detallado de una manera automatizada. En el capitulo 2 se
a n a l i m cI por q u é ' a pesar de que el diseño de sistemas tiene beneficios tan palpalSles, los
tlesarroll;idores no Io utilizan coíidianainente en el ciclo de desarrollo de sistemas. 1 3 GeiiCod se
idcó coino iiiia Iierrainieiita capaz de generar código en el lenguaje de programación C basándose
en el diseno de un isiqteiiia. El reto de construir esta herrainienta fiie que el GeiiCod fuese tan
Ticil (IC iitilizar q ~\,pai<i
c' . . Ios c1esarrolladores no lo vieran coino tin nuevo problema.
i
Capltlllo 2
Plaiiteamiento del problema
- ---
~
~~
- .... ,-
'I
CAPITULO 2
"
PLANTEAMIENTO DEL PROBLEMA
'1
cstc capír,ulo se rcalim uii platiieamieiito del problcnia, para esin se muestran los
rcsiili;idos ohicnidos dc dos iiivcstigacioiics, cuyo ob.jctivo rue elegir la iiotacióii de diseíío
dcíallado qiic se riiiplearía para soliicioiiar iiiia parte del problema que se presenta.
hi
R
Capiiiilo 2
Plaiiteainiento del pi-ohleiiia
-...----.--~-..._L~
-
~~~
~
~
H
2.1 Descripcio:ii del problema
En el capitailo uno se analizó niuy breveniente el ciclo
de vida del s«Rware. Si se
cstudiarari más a fondo cada una de las fases, nos percataríamos de que eti cada Litla de ellas
cxisicn problciiias que inipidcn que su uso sea extensivo. algunos de estos problemas (los que
Iiiin potlitio scr restle~íos)no cuciiíaii con soiiicioiies que ciiii1piaii con las expectativas (le 10s
11
tlesarrolladores de software.
Estc tema de tesis trata de resolver uno de los problemas que se presenta en el ciclo de
vida dcl software, la falta dc interés por parte de los desarrolladores en la fase de diseño détallado
en el ciclo dc vida dcl softwarelYOU921.
1311nlticlias ocasiones‘ la mayoría de los prograinadores trabajan coii un diseño informal
dcl sistema. restand8 importancia a uti diseño formal que permita contar con un producto robusto
y consistente. Gcneraliiiente se busca “/io perder /ientpo” y como resultado de esto, no se contará
con iui respaldo documental de los conceptos de diseño. Esto es el equivalente a construir una
casa sin realizar primero un plano arquitectónico de la misina. Pero aun con estas razones es
dificil que el desarrollador coniprenda que la implantación de una especificación adecuada del
diseño detallado iiiihiiiiiza el núinero de sorpresas durante la instruineiitación del producto.
i
A pesar de que actualmente existe una aniplia. gama de nietodologías- a los
desarrolladores les resulta una tarea desagradable el usar alguna de ellas, ya que consideran que
rcprcsciiia un desperdicio de íienipo y esfuerzo, los cuales pitdiescii ser -aprovecliados en l a
cotlilic:icihii clcl sisiciiia, sc dcbc tcncr cii ciiciiía cpc :iuncluc CI tliscfio dciallado es dc InucIi:i
utilidid, la construcción de éste es muy tediosa. por lo cual esta fase esta siendo reconocida como
1111 serio problciiia iYOU92]. Las consecuencias de esta actitiid s’e ven reflejadas mas tarde,
I
cli;iiido se intenta d’ar niaiiieiiiiniento al sistema, y no se cuenta coli tina buena docuinentacióii
11
que ayiidc a coiiiprciider de forma iiiás rápida el f~iiiciotiaiiiieiitodel sistema.
I .a ausencia de una docuniciitación que refleje el estado actual del sistema ocasiona
iiiuclios prohlenias asociados, uno de estos (aún sin soliicióii) es la irnposibilidad práctica para
prcdcc.ir coli exactitud el tieinpo de desarrollo de u n proyecto, ya que generalmerite el tieiiipo real
es n i i s clcvado qiie,el tienipo estirnado, disparándose de esta inanera el costo del sistenia. Y es
i1
clue los problciiias que se van encontrando durante el ciclo de vida del software y no se les da
soliicióii, o se les resta importancia se van acarreando hasta el final del ciclo de vida del software.
ocasionando otros problcnias como son:
I . ilcsarrollos lentos.
2. Elevadas cargas de iiiaiiteriiiiiielito.
3. Elcvados costos de corrccción en el desarrollo.
11
4. I h j i calidad y coiiliubilidad
dcI protluck~[CUI’:93].
It
II
Cn(líliil0 2
- ... .
I'lanteamieiito del problrnia
~..
-
.
~~
~
..
....
I'eor aun s i no se utiliza formalismo. y alguna metodología para la realizacioii del
sollwarc, se continuará teniendo dependencia de los desarrolladores del software.
/I
2.2 Aiternativah de solución
Una vez qiic se 1x1planteado el probleiiia, se explicará la alternativa de sol~icióii<I"e se
ciiiplcó para la solución de este probleina.
Lo qtlc se pretende con este trabajo.de tesis es que los desarrolladores se auxilien de la
co~iipi~tx~oi-a
para cl<il>orarc~ tliscfio t~ct:i~~acio
(IC u n sistciiia, pi-ctciitiiciicio con csto, a1iorr:Ir
1)
tiempo cn l a etapa de diseño, ya que las revisiones y correcciones serán inuclio más rápidas. EII
la scccióii 2.3 se iiiucstraii ¡os resultados de una investigación que se realizó con el fin de conocer
l a inctotlología de disefio que se emplearía para la realizacibn de este trabajo de tesis.
13 diseño dctallado se realizark de una manera griíica (se eiiipleó el paradigma de la
prograinacioii visual de la cual se iiabiari niás anipiiaiiiente en el siguiente capítulo),
11
prcteiidieiido con csto, que el empleo de la herramienta no resulte u n problema más.
'1
Una vcz que sc haya completado el diseño dctallado del sistema, el usuario pndri generar
cI cótligo cii el leiiguajc de programación C, correspondiente a dicho diseño, lográiidose con esto
una reducción en cl tiempo einpleatlo para obtener un sistema terminado.
Adcinás de que se le brinda al desarrollador una serie de ayudas para hacerle a u n m á s
I
hcil y :iiractiva la idea de realizar el diseño detallado de un sistema de software (acerca de estas
'I
ayudas se I1ablará más adelante).
2.2.1 Ob,jctivo dc la tesis
I',laborar e implantar m a gramática posicioiial de la notación de diseño detallado elegida,
así como in coiistruclión de u n analizador sintáctico de esta gramática, para la construcción de
I/
una Iici-raiiiienta visual que periiiita al usuario realizar de una manera automatizada sus diseños.
La coiistruccibn dc éstos deberán ser de una inaiiera visual lo que facilitará el uso de la
Iicii-aiiiiciita, porque se contarán con símbolos gráficos para i-epreseiitar las instrucciones de la
notación, as¡ taiiihieii sc agregarán sinibolos a aquellas instrucciones que n o sean gráficas, las
1igiir:is (ICestos síiiiliolos serán congruentes con la instrucción a la que representen.
Adciiiás l a Iicrrainieiita permitirá generar de manera auioinktica código estructurado en el
11 .
Ieiiguqic (IC prograiiiacihi C. cste c6digo será acordc al diseño consti-iiido.
¡I
Capii11lo 2
.
Planteamiento del prohleilia
~-
~
.~
____-
__
i,a Iierraiiiieiita debe permitir realizar diseños (que sólo utiiiceli las coiisirucioiies básicas
de la notación) sin conocer el lenguaje de programacióli C. Además de aliilacenar los diseños del
usuario en disco.
i
2.2.2 I3eiieficios tle la tesis
Crin cI dcsarrollo de esta íesis se ohiuvieron los siguientes beneficios:
Se realizó una iiiodilicación en la notación de diseño detallado elegida (sección 2.?), téniendo
I
notación dc diseño tiiás g ra' rica.
con csto inla iiiicya
!I
~c tiiscñó e iiiipkmentó una gramática posicionai de la notación <lediseño elegida.
Se cuenta coii u11 analizador sintáctico de la graiiiática posicional que permite validar las
cniistruccioncs Iieclias por el usuario.
Se cuenta con una gramática lineal que valida las entradas por teclado Iieclias por el usuario
I/
13 iisuario cuenta con una herraniieiita para construir sistenias, a partir del diseño detallado
'!
que asista a los programadores en la elaboración de programas y en la docnmentación de
sisleliias.
Esta Iierraniieiiia cuenta con un ambiente visual, en donde las insti-iiccionesde la metodología
dc discño dctnllndo cstin rcprcsentadas por botones. los cuales pueden ser seleccionados por
cI usuario para ir foi-inaiido el diseño detallado, además la Iierraiiiienta va guiando al usuario
en la coiistriiccióji de su diseño, todo esto permite al usuario construir su diseño de una forma
11
natural c iiitiiiiiva entre el Iiniiibre y la computadora.
Sc gciicra código autoiiiáíicameiite a partir del diseño dctallado, avciiiziiidose en la Else de
codificación, logrando con esto inia reducción de tieiiipo que puede ser empleado en otra fase
dcl ciclo de vida del software.
La Iicrraiiiieiita cle diseño adciiiás de uiilizar técnicas de diseño estriiciurado, fomenta a los
<lesarrolla<loresbuciios Iiáhiios de programación, ya que no permite disefiar sus programas
11
coii iiiiiclios ciclos anidados, además de poder utilizar solo variables que se hayan declarado
con antctioridatl.
j
Sc piicdc contar con la clociiiiientación de los programas (diseño detallado), esto facilita la
comprensión dcl fuiicionaiiiieiito de dichos programas, lo cual permitirá que las adaptaciones
fuiiirns (iiiaiiteiiiiiiieiito) sean mis simples y rápidas.
Cnpíi11lo 2
I'laiiteainieiito del probleiiia
.. - ... .-
.
.....
~
- .._
......
- ....
..
Sc cuciita coi1 tin arcliivo dc icxto, doiide se cnciieiitra el cótligo gciicrado por el sisieiiia. (te
tal iiiaiiera qiic este pueda ser iitilizado posterioi-ineiiie por el desarrollador si lo desea.
I/
IJiia vez que se Iiaii visto algunos de los beneficios que aporta esta herramienta, se
iiiiiestra a coiitinuacióii las investigacioiies que se realizaron para saber cual es la notación de
discño que se iba a implantar.
2.3 investigación sobre la utilización de las notaciones de diseño
Idas iiotacioiies de diseño surgen casi de manera siiiiultánea con l a aparición de los
Iciigiia,jcs dc prograinacióii~como una Iierraiiiieiita que racilita a los programadores la realización
dc la h e de discño. 1
I-Joy cii día existe una aniplia gama de iiietodologías de diseíío, por lo que existen muchas
niaiieras dc realizar la fase de diselio. Para unificar un poco esto? se llevó a cabo una
iiivesiigacióii a través dc uti cuestionario, el cual se aplicó a una muestra de 28 personas elegidas
$11 azar y coli ciirciuiics iiivelcs de conociiiiieiitos eii prograinacióii: aliiiiiiios del curso
propc<iéiitico t ~ ccidiicias coniputacioiiaics cic l a geiieracióii 95, profesores-iiivesiigadores,
aluiiiiios a iiivcl licciiciatiira tanto del Instituto 'leciiblógico de Zacatepec como de la
Uiiivcrsidad Auióiioiiia de Morelos. Esta iiivestigacióii se realizó para determinar cuáles
tiotacioiies soil las más conocidas, así iiiisino saber cuál de ellas es generaliiieiite la más utilizada
(Aiiexo I ) .
¡I
Los resultados obtenidos de esta investigación sirvieroii para decidir qué iiotacióii de
rliscíío sc iiiiplciiiciii~eii esta fesis. buscarido con esto realizar una lierrainietiia CASE (coinpiiter
;iiclctl softw:irc ciigiiicci-iiig)que pueda ser utilizada por iiii mayor iiúiilero de programadores.
A coiitiiiuacióii se niuestran los resultados obteiiidos de dicha iiivestigacióii
II
2.3.1. Gr5ficí1de tendencias de las notaciones de diseño ni& conocidas
1Jiio dc los propósitos dcl cuestioiiario fue: saber cuáles notaciones son las más
cniiocidas. nbiciiiéiidosc los sigiiieiites resultados de la eiiciiesta
i
a) 22 persoiias dijcroii que conocían la iiotacióii de diseno de Wariiier/Orr.
I,) 21)persniix coiiocíaii la notación de diseño del pseudocódigo.
c) IO pcrsniias coiiocími la iiotacióri dc disefio de Flujo de datos.
(I) 7 pcrsoiias coiiocíaii la iiotacióii de diseño de Jackson.
c) 6 pcrsniias conocíaii
la iiofacióii de diseño de Nassi-Slitleideriiian.
4
I) 5 persniias coiiocíaii la iiotacióii de diseño de Yourdoii.
/I
~ ~ ~ i ~2l i l i i l ~ l
I'lniileaiiiieiiin del p r « l h i i i 1
...
.
..
g ) 4 Ipcrsniias coiiocíaii la Iiotación de diseño de I-.lipo.
11) I pcrcoiia dijn qtic conncia lo iiotacióii de diseño de ki-iiiii.
l c ~ t i l l o < l ose
s ],Lletlc vcr c l ~ i ~ ~ l l l l C lqtic
l t c I i I S lllll;lcil~llcsi i K i S coI1ocid;Is C l l l t c 111s
11
I~i-(igi-Íitii~i'loi-esson: Wariiicr? Pseiidoctjcligo y I'liijo de datos. I'ara visualizar iiie.jor esia
iiiloriiiaci<iii se coiislriiyó la siguieiite gr6Tica de barras.
(.'Ill1 C S l O S
I,il ligilr" 2 . I i1iiicstr;i C I coiii~">~toiiliciito
<lei cucslioiiario ilplic¿l~Ill.
I
I'igiira 2.1 Metodologias de diseíio detallado iiih coiioci<las.
Ii
I1
~ . ' : l j l i l l l l i2
~
I'lniiieninieiilo del problciiin
Coii eslos diiios l a ligiii-a 2.3 iiiiieslra iiii diagraina pata represetitai- la frcciiencia de
tliscii:i<lorcs qiie eligji> cieria tiolacióii de diseño, eti dótide la aliiitri de cada barra represellin el
iiiiiiicro de Iicrsoiias'qiie eligió esa iioiacihii. y cada i i i i a de las I~:irtasrept'eseiiia a l a iioiacibii.
I/
I:
h i C t o < i o ~ s e i it i~e
sr
,iispn0
i i ~ i ~ i 7 . n < i a s
I
It
'1
I7igiii.a 2.3 Mctodiilogías de diseno i n i s iiiilizndas.
li-eciieiicia
t:iiig» ~ l c r c e i i l i l = -
N
* 1 O0
I'lanieainieiito del pinbleiiia
I
Uso de las metodologias de diseño entre los
desarrolladores
IGkiirii 2.4 lis« <IC l a s iiieinAologíns (IC discfin eiiirc
Ins desari-nlln(lorcs
2.4 ResiiIl-:i(los obtenidos (le la investigación
I.os rcsuliatlos <lite se obtiivieroii de la iiivestigacióii (iieroii iiiuy similares. 'lodas las
pcrsnii:is ciiircvisi:i<las coiiíestaroii que sí ii'nhíaii iiiilizado i i i i a iiotacióii de diseño deiallado para
I:I cliiliol.;iciiiii de iiii'sisieiiia, esio iiidica qiie si se realiza la fase de diseño detallado del ciclo dc
/I
v¡(l:i del ~ ( i l i w n r e .iiiitiquc geiieraliiiciiie eii iiiiIclias ocasioiies iio se Iiace. A pesar de que ellos
I/
t i i i s i i i o s coiliciiinii que sí liaii visto qiie"soii de graii ayuda p o q i e rediice el liempo eii el
i1cs:irrollo de t i t i sisíciiiii y cciiiio cni1sccticiici:i csio se ve rcllc.j;ido et1 cI costo. ya qric citiiiido it11
iiroyccio sc ciiciiciiirii (icsliisiitlo itis cosios se disixifiiii.
I.ii iii;iywí;i <IC Iiis persotins contestsroii que iitilimii i i t i a iioiacicíii (IC diseño cuaiido van a
w i sisiciiia gi-aiidc porque esto les periiiite ieiier i i i i iiiqior seguiiiiietiio de los
progr;itii;is :ttIciii:i,s t l qiic
~
.sirve para I:I tlociitnciilnci~iiif i i i a l del p i ~ i y c c i o .
iIcv;ir
;
I c;ili«
'1
Iiiii~
vez ;iiializid;i l i t riiilidntl y la freciieiicia enti la qiie se utiliza iiiia iiotaciOii de diseño
las d c t i i i s pregiiiiias tiel ciiestionario esiahaii ciifocadas para coiiocer ciial de todas las tiotacioiies
'1"" 11:111 iitili7.;ido les I1ahín giisiado iii5,, las i-esllllcstas y" l l a l l Si<lO liiosiradas et1
los I i i i t i i o s ~iiiicriorcsa ir;ivEs de iiiias gi-hficns.
(IIIC c<lIloccl1 y
Aitiiqiic la iiiforiiincióii recnhada en la eiiciicsta es itiiporiaiiie para este trabajo de tesis.
I;iiiii>iiii sc reqiiii-io iiacer oira iiivcsiigacióii eiiire las tioiacioiies de diseño detallado, nihs
wiwcidiis 1por Iiis tliscfi;i<ioi-cs. p w i aiiiili7,:ir si l i t iioincitiii elcgitln por 10s eiiciicsi:idos iiyutlnlxi :I
c i i i i l p i i r coi1 c i cii+!livo
cic esta icsis. í:ii esí;i iiivestigiicifiii se ati;iiizm)ii ins cniisir-iiccioiies
Ii;i~ic:ls..\.ciilii,jas y <IcSvciik\jas tie :ilgittiiis de ellas.
15
2.5 invcstigación tie las notaciones tie diseño
I.;is iiiciotlologkis liara cniistriiir cI disefin dei:ill:itlo siirgcii casi de illailera sii1itiii'iiic:i eo11
1;i a ~ l ~ l ~ i c (IC
i o l 10s
l Iciigu;!;cs <IC ~ ~ r o g G l l i l ~ l c i ~ l l l .
17sl;ls iiiciotlologías jiiiito cnii la ptograinacióii esíructtirada, pertiiiteii al disefiador
'1
I c p r c s c i i ~ mins ilciiillcs j)rocctliiiieiii;lles. Inciiiiaiido su irnduccicíii ai codigo.
1% s c g i i i h sc iiiiicstraii algiiiias de estas iiieiotlologias o iioi:lciniies de diseño. así coiiio
sus cniisitiiccioiics h'isicas (cii algiiiios casos): poi-que cualquier programa3iiidepeiidieiiie del área
(IC:iplic;icicíii y (IC1:i coiiiplc,jid;itl t¿.ciiic;i. ptiede diseñ:irse e iiiiplciiieiiiarse usaiido síiln las tres
cniisiruccioiics csiriicitii.;itlns. siti eiiihargo' debe ieiiersc c i i cuciiia que si estas Iierraiiiieiitas se
iis;iii iiicorrcciniiieiitc piiede coiidticir a uti software erróiieo [I'RE00].
I1
2.5. I I'sciitloc/,<llgo
1
1% "iiii lciiguajc cliapiirrcado qtie utiliza el \wcahiilario de uii Iciiguajc (p.ej.: iiiglés) y l a
siiikixis gciici-al <IC
oiiii (p.c,i.: uti leiiguajc de prngraiiiacitiii estrrictiirada)" ICA1751.
A priiiicrci v¡sI:i. e l psciitlociiiligo se puede parecer a I'ASCAI.. n a Ada. Ida dilereiicia
ciitrc cI pscudociidigo y u11Iciigiiaje (IC
prograiiiacióii de d i o iiivel se ciicueritra eii el 'tiso de iexto
<Icsci.ipti\w dircci;iiiieiiie cleiilro de las iiisirucciones del pseiidocódigo. I .a desveiiia.ja que tiene
csia iioiaciiiii de diseho es qiie describc las iiisiriiccioiies parecidas al leiiguaje natural. y el diseño
I). dct;iIl;ido dchc csjiccilic;ir Ins dei;illes de los procetliiiiieiitos s i l l :iiiil>igüedad y lii falta de
I/
;iiiihigi¡cd:id cii iiii Icilguajc iititui.al iio es Iiahiiual [PI<I?901].
1.52.
l ~ i ; l ~ r ~ l l l ltlc
; l s IliijO
tliagi-;iiiin de flujo es iiii gráfico niuy sericillo. I'ara representar un paso de
proccs:miciiin se utilizii iiii cuadi-o. iiii roiiilm pat-a rcprcseiitar i i i i a coiidicióii lógica y flec.lias
p;ii.;t iiins11';tr e l íiyio d e coiiirnl.
I!ii
/i
!I
I:sisteii iiiiiiiei-osas desveiitajas en el uso de los cliagrarnas ordinarios de flujo, iiiia de ellas
es que csie iipo de di;igi-aiiias requiereti de ~iii
espacio coiisidcrahle tle papel' de tal forma qiie e l
Iccior iiciic qiic iin\~g;ir cntrc vat-¡;is p'igiiias para asiiiiilar tndo el coiiieiiido del prograiiia.
A t l c i i i k c i i c i i u coil clciii:isi;id;is rani¡ licacioiies. catlii uiia de ellas provetiietites de catla decisiiiii
del d i i i p m ; t de Iltijo. liis cimlcs tieiieii varias formas de dilnijrti-se, segúii e l autor. 13sio ocasiona
c i prohlcim dc qtic a iiii discñador le resultará iiiiiy probleiiiAiico leer diagramas de flli.jo
l e . <I 1'.~/.~i(l;is
. por oiro diseíi:itlor lKEN88:l.
I6
I .;is c«iisiriiccioiies bisicas de esta iioiacióii son:
I
I'riiiicra tarea
si, < ~ ~ i i c ilarea
iie
Parte-
Parte-
Else
illen
Sccncncia
If-then-else
1
I'
Do-while
Ilepcal-Utili1
Rcpct iciím
I:iciii;i 2 . 5 Coiisiriicciones c i i dingraiiias <ICf l t t . i i ~ .
17
il
2.5.3 .I:icl<soil
Fsia iiiciodtilogía creada por el iiiglés Michael Jacksoii se basa eii que la estriictura tle L i i i
'!
IpI0gVillll:l C i i ; i Ctl I l i i I i C i t i i i de l i t cstriicllira de los <lalosqiic lll~ltlipllla..Incksoii eiiiplca intitliilos
scgiiii su ordcii jcriirqiiico deiitro de los clikrentes iiiveles doiitle se eiicueiiira. Cada tiiódirlo es
it11 h i o o i i t i conitti~iode dalos [JOYSX].
I
s i c
,,
i,, <. i n
I
I1
P
p c t I 1 i r i1
I 3 c sisiciii:i de rcprcseiiíacióii perniiie teiier titia visióii iiiiiclio t i i A s esiriiciurada que 10s
ciiagraiiias (IC flujo y el psciidocódigo. por lo taiiio íieiie iiiayor fricilidxl de ser iradiici<l« al
lcllgil~l,~c
<IC
1111i1 c i ~ l l i i ~ ~ i i i i l d o r a .
I)
/i
OIKI d e las veiii;i$is c o i i las qiie ciieiiia esíe iiiétodo son:
2.54. I . Coiislriiccioiics I>hs¡cas
I,os ciciiieníok Ixísicos de los diagi'a,inas N-S coi1 [KENXX]:
2'
f%oceso
Decisión
1lei-ación
capiltll~l
2
Platiteaiiiieiiio dcl prnhleiiia
li
/~I~C/S/O/V:
e l síiiiholo de decisióii representa coiidicioiies alieriiativas. Soii equivaleiites
csiiiiciiii~;is I l,.-'llII?N-I?I .SI?.
it
las
2.55. I-IIPO (I-Iici-acIiy/Iiipiit/l'i.occss/Oiitpiit)
lisie riiiindo liie crcxlo cor1 el Impósiio de nytidar n los discñxhres n IIO pei-dci- I:i pisiii
dc :iigiiiia Iiiiiciciii cihirii (ICiiii sisiciiia gwiitic. &io es s u priiicipai veiiinj:i cnii In que ciieiiiii c n i i
rcpccIc1 il (11GW ll<l~lilciollcs.ya qiic csic IiiCiotlo ~ " l l l i i i c Iciict' 1111:1 \,¡Ski ~ l a l l o K i l l l i c i l<IC Im
ciiiKi(las. prnccsos y salidas de datos. 13sio lo Iiace tina Iieri.aiiiieiiia útil para la d«cuiiieiiiacióii de
I(
1irog';iiii:is. ntlciii5s de qiic le Ipwxle lacilitar al aiiior de iiii prograiiin e l recordar lo clue Iiace el
sisiclll:l iIcs~"lEs (IC cicrin iiclllpo.
S i l l ciiib~irgoI III'O I;iliibiCii ciici1l:i coi1 cicrlas dcsvciiii1,jns. i111:1 de ellas es qiic iililiz:iii
i i i i a gr;iii c:iiiii(kid de papel para iiiosirer lotlo e l diagraiiia de i t t i sisleiiia por lo qiic piietle
ocwioiiar qiic cI Iccinr iiavcgtic eiiire 1iojas.y se le dificuiie el segiiiiiiieiiio del íiiijo de ésic
I I<1;NXX.I.
I..cyeiida
0
0
,. .,
.,.
I
I
Figiira 2.8 Tal>ln visilal d e cotiieiiidn para
iiii parliieie
I IIPO.
Plaiiieaiiiieiiio del pi-ohleiiia
A cniiíititi:iciiiii c i i la ligiira 2.9 se iiiiiesíi-a iiii diagrania geiieral de Wariiier-Orr. así coino
cl siyiiilicxlo de Ins dilereiitcs eleiiieiiios qiie eii él parlicipaii ISAN92.l.
I'iciira 2.9 S i i i i l i i h g í a utilizndn para Ins ilingrniiias
(IC
Wni-
s i ~ l l i f i c ~ l ~(IC
I r llos elr.111c11tos
iI!/
. .
I . I>ciini;i ;I w i I h q u c <ICi i i l o t i i i a c i h i ,jcrarqiiizada qiic piicdeii ser dains (1 iiccioiies, de dereclia ÍI
inliiicrila tlriioia los iiivclcs de iibsii-acción, de.arriba abajo. iiiiiesira l a secuencia y Ins relacioties
16gic;is cllllc Ins riiiicioiics.
2.5.6.2 Coiisli-iicciones básicas
11
121
l l ~ l l ~ l c i dc
~ l lwilrllicll
Illili%ilI i l S coilsirucciciiics Ixisic;is
: sCcI1cIlci:lci
.!
rc:pci¡ci<w Iigiiiw 2. IO. A coiifiiiuaciciii se explica cada i i i i a de ellas ISAN92J
I'roccso
I.
P r o c e s o 2,
I'roceso
(3)
Prnc I
I1
s c c i i C I 1 ci:1 rió11
c
(c)
c
1
( I , ) II iill rc:1 rii>I1
ItC[>CtiCióii
Figura 2. I O Coiisiriiccioiics Ixísicas tlc los clingt:iiiins tlc Wariiiei
22
I'laiiieainieiito del prolileiiia
.
1:si;t
i l l ~ ~ ~ l C i ¿<IC
llltliSCk>
<Ict:ill;ido tieiic
111111
.
c:lr1iclc~isliC:l q i i e
IC1
II;Icc <lifcreiilc l - c s ~ l C c l <11l
I:IS tlciii;ís ii0t:icioiicc. Csia es: p m i poder dcsni-i-ollar iiii diagi-aiiia de Wsriiicr/Orr. el aiialisia
dchc ir;ili:i$ir Ii:iciii air5s; cs decir' se clehe eiiipezar coli l a especificaci6ii de l a salida dcl sisieiiia.
ptipci CI 11ii.io (ICI tiiagi-aiiia va t ~ eizqiiiercia a ticriciia. cieíiiiieiitio cii priiiiei. 11ipirIR
wlidii o icsiili;itlos dcI ptocediiiiiciiio y cii el iiivcl siguiente. i i i o s i t a d o iiietliaiiie la i i i c l i i s i h i de
iiiiii ll:iw. sc dcfiiicii 10s pasos para pi-odticir iiiia salida. Las llaves adicioriales agriipaii l o s
procesos rcqticridos p:ir;i producir el resolindo eii e l sigiiiciiic iiivel.
i:ii CI
2.6 ~ o i n i ~ a r ~ . ; i c criti-e
i o ~ ~ elas
s notaciones tie tiiseño
I'ii I:i cccciíiii aiiierior sc i i i c i i c i o i i a r o i i algiiiias de las i i ~ t i c l i ~i i ns i a c i o i i c s qiie exisieii. p e r o
: l C l l i : l l i ~ l ; l ~ l 1111 11:iy :ilgllll;i i l i l I r i C i < i i i qiie ~lllc<l:lcoIlsi<ICI.:l~sc C I l I 1 1 0 C s l ~ í i l ~ l : l l -p:ilii lil
< I i i C l i l i i C i i t : i C i ¿ l ~ ldcl slllt\\,:irc.
Cii
1:)
73
l’laiiteaiiiienio del probleiiin
I
la lihei-iad qiie i i c i i y i los prograinadores eii elegir la iioiacióii qiie i i i i s l e
Ipiicdii servir 1i;ifii sii tliscño, ya qiic iio poclciiiix decir ciial de elliis es iiie,jor o peor porqiie cadti
iiixi de clliis cuciiia coil stis propias características. lo que las poiieii eii venta.jas coil alguiias de
Esio coiillew a
I
cII:Is y \’icc\’cls:I.
I’rcssI11;III
IlIIcc ; l l g l l l l ~ l s coIl.lcIlt:lrills
I(1S
CIIiIICS
~11Ic~IcIIscrlc
iItilcs
;I1
~ l i ~ l ~ ” : l 1>:
l 1l1:1l ~CICgiI.
l<~~
11112
l~
I l I l ~ ~ l c ~t ~
k Jtl¡SCñl).
ii
I!iw i1cii;iciOii de diseño dcbe coiidiicii- a i i i i a reprcseiiiaci6ii que sea bici1 de c o i i i p r e i i t l c r y
r w i w r . /\ticiii:is. I;:; iiot;iciím dchc r:leiiiiar ~ i icotliíicaciiiii. de íiiriiia qiic CI c<iciigo se obici1g;i <IC
Iicclio c o i i i o iiii prodiicio iiaiiiral del diseño. I’iiialiiieiite la reprcseiitaciOii del diseño dehe ser
1 x i:
l i i i c i i i e i i i a i i i e i i i l d ~d. e foriiia que e l diseño represente sieinpre correcíaineiite el jmqgmxi.
Adciii5s iiiciicioiia algiiiios alribiilos coil los qiie del)e c o i i l a r i i i i a hueiia iiolacitiii de
discño. eslos soil:
. .
. ..
2.7 Notación de diseño detailado elegida
Coil l o s resiilinrlos oliieiiitlos (le la eticiicsta y e l esiiidio realizado de las iioiíicioiics (le
tliscfio dciitllado. se dccidc iiiipl:iiii:ir la i i i c / i h / o g Í n c/c JVni7iiei. porqiic la iiiayoría de la geiiic l a
calilici) c«iiio iiiiii iioiaciiiii sciicilla d e uiilizir, porque pcriiiiie iiioiie,j:ir iiivelcs (le :il)sii-accibii
iaiiio coiiio cI i i s i k r i o qiiei-a, adeiiiás de que es iiidepeiidieiite del leiigiiaje sobre e l cual se desee
rc:1Iimi-la i iiiplail~ncióii.
0ir:i 1-azón por la clcccióii de csia tioiacióii es que ciieiita c.oii algiiiios síiiil>»los grificos
. I/
e i i x i s coiisiruccioiies
hásicns, lo que pcriiiiic realizai- la auioniátización visual de la notacióii.
Atlciiiiis c!si;i iiiclodologí:i licilc c i i cI iiioiiiciiio :icIii:il. tit1 i i i d (IC liiriii:il¡~.:ic¡Oii
coiisitlcl.ablciiiciitc siipcrior a otras iiieiodologías iales c o t m I3ei-tiiii. Jacksoti o Yoordoii, lo cual
11
Ipcriiliic iiiiii Toriiia iiiis cliciciite y real <ICsii sopoi-te iiicdiaiite uiia Iietraiiiieiita CASE. taiiio para
I;, gciici.:icitiii <IC pl0grillll:ls col110 p:1ra Sil \~;ilid:iciiiii I(:l l l 3 3 j .
25
CAPI'IULO 3
CONCEPTOS DE PROGRAMACION VISUAL
capiiulo se eiicuciltran algiiiios conceptos Tuiid;iiiieiitales de la pi-ogi-ainacióti
viswil. ;(sí coino cI estado dcl aríe de la inisina.
hi csíc
Coiiccpios de Prograiiiacióii Visiinl
c;lpillll~~
3
~.
~
~
.
,
.
.
..
,. .
~~
~
.. ....
.
. .. .. .
3.1 1ntrotliiccií,n
d i n crece el iiiiei-és eii los sisieiiias que utilizan grAficas en la c oiiiiinic ac ih
coiiiplii~itloi.n/sei-csi,liiiiiianos. eii programación de aplicaciones y c i i la Ilaiiiada visualizacióii de
11
~ I i l I ~ l S1'01.
.
Io l:11110' 1i1 Iciidcilcia <loiiliii;iiilc 1ioy CI1 dia es IC1 de I i l S Iicri.nnliciilns tle <les:irrolln
gcncr:idiis iiicdiiiiiic lo qiic sc liii dcnniiiiiixlo como proqrnrrtncihr i?i,rrrn/ [ I .01'95]
1)i:i
ii
Sc p r c s c i i m
p r " ~ ~ ~ r ; l l l l : l c\ Ji i~S l lli I l .
ii
coniiiiiincibii alguiios de los coiicepios i i i i s iiiipoi-taiitcs en torjio
!
ii
la
3.2 Co11cc 1, tos d e p rogI'R niR ci6 n vis 11 a I
!I
or pro~ririruciriir v i r r r c r / se eiiiiciitic cciiiio cI u s o de cxpi-csioiics visiiaIcs. t:iIcs
griiicas. d i l y i o s c icoiios e i i e l pi-(ices» de la programacióii de aplicaciones [.BUR95].
ti11 /<wgtrt!jci i r r r n l es i i i i a i-epresciii;icióii pictogrAficn
coi110
de eiiiid:ities coiicepiiialcs y operaciones
1(..'1 IAOOI.
IJiilerrgrrrrjc vitrrnl significa en realidad e l uso sisleiiiitico de las expresioiies visiinlcs
,I
(riilcs conio gi-iíicns. dilxi.io:, e icoiios). que se coiivierieii eii cidigo qite a s i i vez In coiiiputiidorii
'!
I i I I C d C ~ , j c c l i l ~piiri1
l r rcillixli- 1111i1 l:lrc:l pi1rlicIil:ii. ~ 1 . 0 1 ' 0 5 1
I .;I l/i.srrn/izcrcirírr tiene lii liiiicióii de ilusti-ai- cierios tipos de tlaios, la esiriiciiini de tlaios.
I:i csti-iicturii de tin sisiciiia coiiiplc.j« o, incluso, e l coiiiport:iiiiieiiio de iiii sisieiiia d i i i á i i i i c o
II
1.
mos
I 111 l~ngll:l,j~
V i S l i ~ I les cscilci~iliiiciitc1111:i Ilcrl.;inlicnl:i c~lnlpllcslil<IC ic<111os. o scIllCI1ci;Is
11 ,
\Jislialcs, I .os colll(N I:1dores de I«s lcllgllil,jes visllillcs <ICOCIl inlc.rpi-ci:lr sciiklicins visllilles y
4
.I[ <ih
..l.,I<1.'11 . L s i x dciii,ro de iiiiii forma que a l iiieiios iiiieiiie la e+xiiciOii de las tareas. Este prciceso
iio es tiii-ccin. 111' coiiipiiador iio piiecic deieriiiiiiai- e i signiíic:icio de i i i i a seiiieiicin visiiiii
siiiiplrnicnic poi- iiiil.iir c I icono. Ilcbe coiisitlerai- e l c o i i i e x i o de l a sciiieiicia, coiiio e l «bjeio se
:.
rclilci~1ll:lcoi1 los <Iciii;is.
I .(IS iniciilos de iii~illlciiiiiiicilioqilc I1:Icc lit1 IIsiI:ll.io. ;Is¡ cOIn<i l a inlcrprel~lcii~ii
(IC. Ills
n l i s ~ l l ~ l es
s . llllil <IC .lilS l;llcils i1i;is i l l l p ~ l ~ i : l n l cen
s u11 lcllgllil,jc V i S l l i l l .
ii
1 liiii scnicnciii \;¡will es ni1 :iconiodc cspnci:il de ol?jeios y/o icoiios (le procesos qiie
gciicriiliilcnlc d c s c r i l ~ e lllllil
l
coliiplc~jrieniicliitl coiiccpiiiiil <IC i111;i SeellCllCia de ope~ilciollcs.
27
Coiicepioi de Prograiiiación Viciial
(:;ipíllllo .3
.~
. ..
3.3 Utia t;ixotiotiiía de iconos
[I
Irotios i h j r t o s : tcprissciitnii eiitidades o gi-upos coiicepiiiales de i c o i i o s qtie sou acotiiodatlos eii
1111 lilf"" el1 piltlicillar.
Icolios tlr
~1r"""":
tIcIl(11i111 o ~ l c K l c . i ~ l l l cys sol1 gcllcKlllllcillc tIc~1I:lltlicIlIcs del c l l t l l c s l l l
lCI.IA9S I.
I
ij
I-ii ciiaiiio :I 10s icoiios, C h i - K i m Cliaiig eii su ai-ticiilo "I Iiicia iiiia teoría formal de
icoiios" 1 ( ' 1 IA871. tisalizi tiiiii (asoiiniiiia de los icoiios y dice: iiii icoiin geiiei-alizado es III; tIl~;clu
coi1 <IohIc tcl~tcsciiiacicíii.iiiia psi-ie IOgica (el sigiiiíicntlo) y i i i i a Ixiric física (la iiiiagcii).
iiiiageii; íigiii-a; i-epi-eseiitacióii; piiiiura". 1.a
I!I diccioiiiirio deíiiic iiii i c o i i o cnti1o:
c o i i i i i i i i c i i c i r i i i (ir i i t i i c o i i o coiicietne coi1 el IISO de la iiiiageii par;i triiiisiiiiiir ideas n acciniics
I)
(coI11:llldoc) de Illlil ItlilllcKI 110 vcr1,al. 1:i; la ligillil 3 . I se da llllil i;isoiioiiií;i tlc iCOI1OS. qIIc ptovcc
llllil cliisilicacinii pot s u cliscíio o SI1 fiitiCióii
28
I h i s i e n icoiios eleiiieiiinles especiales. Uii i c o n o iiiiageii es tino donde X,,, est5
\,;I&
así x es dc la loriiia ( { } ; iiiiageii). iJii icono eíiqtieia es iino donde l a parle
Ilsicn es nula. así que x es de la foriiia ( { e t i q u e t a ) . e). I:iiialiiieiite. u n ¡COITO nulo
es tlc Ir1 li,riiia ( { ;, e).
I i o i i o wiilplc,jo: Si X,,,nS es no vacío. Uii icnno coiiiple.jo apiiiita a citros ¡conos y deliiie
rcliicioiics de íconos. hi este tipo de icoiios se pueden disiiiigiiir los siguientes tipos:
;I
si X,,,nVi, cs no vacio. i?i icono x es de la forina ({Or, yl....,y,,).
iniageii). Eii otras palabras, x esi6 c o n i p i i e s t n de subicoiios yi.....y,q
iiiilizaiido el opei.odor 01'.
icono eoiiiIiiAto:
i w i i o ~ : ~ I ~ I I ~ IS Ii I X,,,nVI.
K ~ ~ : cs w c í o . ¡:I icono
'
x es de l i t
liiriiia ( ~ ; yi.....y,,,;. i i i i q c i i ) . c i i
oir:is p~iliilvas. s esiá relacionada c o n sitliicotins yi.....y,, , pero el
iiiccaiiisnio para ~ icoiiiposicii)ii
i
de x de yi.....y,, no está especilicacio.
de las r;imics por las qiic e l uso dc iconos i i e i i e
tiii g w i creciiiiiciiio. sc dchc a lii
Iiicnsajc visllill, yo q1ic 111 niciilc, cllillldo ~ i I 0 C C S I I iiii;igeiics, inlie1c
rcl:tcioiics s i n iicccsidiid (ICincluir i e x i n cii csins. Aclcni5s. existen oIl':is rrizoiics que nos i i i v i l a i i ii
i i i i c i m lit t i i i l i m c i t j n de clciiieiiios visiialcs (Ieniro de I«s iiicdios aiiibieiites de iraliajc y
d~xirrnlln.Iiiscgttitln c i i a i i i n s nlgitnas.
iJiia
liicilitl:itl pillil
c:llli;ir
1111
I1
:I) I.:is iigiiras s o i l iiiris t l i t l ~ c . t i c a sqiie 13s palabras como titi iiiedio de coiiiiinicacióii. I'iiede
irasniiiirsc iii;is iiilorniiici6ii de iina iiiiniera i i i i s concisa por uiiidatl de expresitjii.
11)
I.;is ligllrrls ~ l y l l ~ l:I~ciiírlitlciln
y recortlnr.
c) I.ris ligiirai Iiticdcii
ser uii i n c e n i i v o para apreiider a prograniat
/j
(1) I.;is 1igiir:is 110 iNiciicii ¡;is hnri-cr;is (IcI Iciigna.ic. Ciiniido s o n ntlcciindnnieiiie tliscñatlas. son
~ l i l c l l < l i < l : li sl l ~ l c ~ i c l l ~ l i c l l l c l l l cdel
l l l c idilllllil qllc se Ilill)lc.
lo iiiiicrior no qiiereiiios tlecii- que la nieta de Ins leiigiia,ies visiialcs sea representaii o h iipii (ICitlcns y acciones niediriiitc icoiins sin incluir eii esias iexio; la í i i i a l i t l a t l es iisar de
n1:iiicl':i :iiiiiOiiic;i los ( k i s i i p o s (ICrcprcsciiiiici(iii pw:i iiiícgi.:ir itlc:is inks cliii-as.
('ni1
!I
20
I )clli<lo :I csiils c:ir:icicrísliccis el níiiiici.o de ;írc:is el1 I>IS <pic se IlIIc<Ic11c.Ill~lIctIrlos ic(1IiOs
coiiio oli.ictiis <IC iiiliiriiiacióii es mayor. íJiia de estas ;ire:is y lii qtie i i o s iiiteresa es la de
coi1ip~it:iciOti. I'ii cllii rccienteiiiciite se Iia iiivestigado acerca de iniedios anibieiiies (le traliaio
1i:is;idos eii icoiios. y ambientes fiiiidaiiieiiinliiieiite visuales. lzstn ;irea es coiiocida actiiaiiiietite
c o n i o Iciigiigjcs Visiiales (l,V) o sisteiiias bastidor; eii iconos (SRI). Esios se eiiciieiiiraii deiiirn de
1;i ptxigr:iiii:icih \isiial IC.'¡ 1/\8h].
Itii csíe iciiiti de tesis se titilizaroii icoiios eleiiiciitales para repiesetitai catla i i n a de l i i s
iiisti-iiccioncs tic1 c i i h ! t ~ c i a ~ ~ esios
x ~ o . icoiios tieiieii con itii;t, paric ii>gica y tina pnrie' física,
1)
de los triliitios iisociados con los qtic ciieiitaii. 13ii el capítulo siguiente se Iiabliirá con iiihs
tlciiilic (ICla graiiirítica iitiliziitla eii el GeiiCod. así coiiio del lengua+ visital qiie se realizó con
:itlciii5s
cstc
lr:lllÍl,~ll <le i~ivcsiigacií,ll.
3.4 I'
1'0
gra in a c iO 11
1
vis 11a I
3.5 Leiigiiaje visii:il Vs. textiial
I,os tlcfccicis <ICl o s Iciigiiajes basados eii iexio son variahles. I l i i o de estos se preseiila eii
I!
I:I liiriii:i (IC rcprcseiiiar IRS variables. L a s variakles so11 síiiibolos para repieseiiiai' objetos
(Icscoiiocidns. CSI:IS tieiieii dos propósitos coiiiradictorios: a)eiias ligan puiiicw de dOiitle se
Iirl?duccii 10s dnios y d h d e se iiiilizaii (iioiiibres cOrtos I>rerei.eiiieiiieiiie) y b) sits iioiiihi-es dan
iiili,riii:icihii del iiio(10 c i i que se iisiiii los tlaios (iioiiilires I:irgos prelereiitciiieiiic). 1.1 los
l c l 1 ~ i l : l ~ ~gcKsi l i c w las \~;lri~llllcs
pIIc<IcIl ser c l i l l l i l l : l ~ l ~ l1Is:llldo
s
IIII sigiiilic:itlo g ~ i i l i c lqiic
l
,illlliqllc
totllls 11)s ~ l l l l l l 0 Sel1 el ~"'"gi'al1"' doiidc se usa cI lllislllo d a l ~ i .
!I
I .os c I c i i i c i i ~ o sde i i i i a figura piiedeii ser agi'iipad«s eii 1111 i i i i s i i i o tipo (leiiii-o <le uti
c i y i i i i i i o de liguris. lo cual piiecle scr :ideiiiás cciiiihiiiadu coi1 la f i v ~ i i ad e la figura. Et1 u n
~ ' r ~ ~ ~ ' ' " " 1 ; 'icstii;il esta coiiilliiiacióii agl-ilp:i síiiiholos ~itly:icelilcs ~Ic111l<i(IC s u l ~ ~ K l s c sI:si;i
.
coiii~"'ici¿~ii de d o s li-accs iesi1i;ilcs es SI1 coiicaleilacióii. I'ilKl iiiin íigurn I:1 colllp""citii1 cs i1i;is
cmiipliciidii qiic la coiicoieiiacióii. L Í ~
coiiiposicióii de i i i i a ligiira piiede ser lieclia coli I0riii;is
adyacciitcs. doiidc la adyiceiicia puede ser sin riiiidaineiito o coiiipleiaiiietite especificado ( A
~ i r r i l l<IC
~ i /l.I: ccrc{l de /I. cte.). I,a coiii~",sici¿~iip1lc<le :idciii;ís sei- Ilccllil a iravcs (IC lil coiicsitiil
del clciiictiio tal c It~ i i i i odos segnieiitos de líiieas coil 1111 piiiiio eii coiiiíiii. 'laiiio l o s leiiguajes
~ c s ~ i i i i l c coiiio
s.
vicualcs. estríii lot-iiiados sobre uti alfabeto bisico y iiiiede.ii sei' clescniiipiiesitx
dciiiro (ICsu esiriicíiira liicii deíiiiidn. I'cro (,a) una cadena dc strings es iiiiidiiiieiisioiial y ticric 1111
o r d w liiiciil. y (11) para ciiiciider I:I esiructiira de iiii progwiii:~visual es a iiieiiiido iiii gi.;ií'o
<lirccci<iii;ld«. i1l;iS qiic
3.6
I',SliitlO
ill1
¿íi-l,ol[i'i~o96:1.
tlcl :irte
coiiiiilil:lci~lll se lllcllciollall algriiias
r i L:
i o' i i u111 cI tciiiii de lcsis que se prcseiiia.
/\
3.6.1 \'isii:il
<IC
las I i e ~ r a i l i i e i i i : i qtie pudieseil lcller ;ilgliiia
i1i:igiC
?I
\
i:n iviicrosicp sc Ipticclcii crear di;igraiiias de llii,jo dc datos y definir los oli.jeios
ill~li\~i~lll~
( ci lscl ~s ~ l c i l l i - l lys filrlllnlils) y pr«cesos COI1 1111 C<liIOi. gi-lílico. Se I,llC'lC cspccilic;1r c l
Iluio de coiiiiol y uii I;iiigo coiiipleto dc IOgica. Microsiep verifica coiisisieiicia y siiiiaxis.
M i c r o s i c p sopoi-iii diagranias tlc flujo iiiás grandes qiie iiiia sola paiilalla; se ptiedcii
~ i ~ i i i ~iicrrziiiiiciihs
,ar
zoo111 para iiiovcrsc a irav6s dc (ales diagranias. I..:is esliecilicacioiics
.I
Iiiicdcii coiiiciicr Il:iiiiiidos :I oiras cspcciíicaciones Iizisia cinco iiivelcs de proliiiitlid:id. Esias
!I .
c;ir;icierísiicas pcriiiiicii coiisiriiir sisiciiins grandes.
I I ~ ~
1% h/licti>sicp se coiisirtiycii cspecilicnciones coiiil7~iizicioiialesy lógicas sclcccioiiai1do
K I ~y ~fiiiicii!lics
I I . ~ ~ <ICinciiiis ptill-dowii [LEW90].
32
CAPITULO 4
!I
DESCRIPCION DE L A GliAMATlCA
1
.7 .5
~'q~llilll,
4
!I
I ~ c i c i i ~ l c i l <IC
i i i I;,Lpllll.iticn
(IC1
[-;v,l(:,,(l
lii tloctiiiiciiiaci,íiii asociada. 13xisiil-6 tin canal de coiiitiiiicacióii e iiiiercairil>io tle iiifc1riii:icitiii
:l~lccLlil~lo
cntl&~cSlcS i S l C l l l i l y lw dci1i;is siihsisleiiicis del iiilll>iciiic.
Si.vleirtn de recrrpvrnciórr de crídign ierrliliznble (SisRec), esie sisieiiia Liiiliza tlepósiios de
coiiipoiientes reiiiilizahles y/o hihlioiecas de fiiiiciones ya sean definidas por los leiiguajes y/"
11
: i q d l : i s qiic soti
desarrolladas de iiiaiicra aislada por los progrniiiadores. para iiicorpotainii1oiii;iiicniiieiiic c6digo reiisal2l.e; niecliaiiie la búsqiieda, localizaciiiii y recirpei-acióii. de
scgiiicii~os[IC ccidiyo o unidades de biblioieca, al desiirrollo de iiiievos piograiiins de
aplic;icioiies divci-sas. s i n qiie se requiera de la niodificacióii iinporiaiiie de tales biblioíecas
y/o liiiiciniics. ~c Ipociuí iiccesiir desde csic sisieiiia 21 10s stibsisieiiias <le geiicracii)ii
;iiiiillli;iiic:i <IC ciitlig" y :IIIIo<IIlcIIIIlcIIl:lci~lll.1111:1 pi1r:i la c~lllsll~llcc.ilill
(IC l i l d i ~ l l c c ; l s)' lil OIKI
1i:ir;i SII tlociiiiiciil;icioii I SAN90 I.
!I
4.2 l7sq I1 c 111;I co I1cc 111I1 ;I I tlcl <:cilCotl
li
[I
4.3 U t i Iciigiinjc grifico para la representación %leuna notación d e
tliscfio
L I i i i , \,cy, que se tlcteriiiiii(j la iioincióii de diseño a iililizar (noiacióii de Wariiier) y l a
Iiiriiw c o i i i o sc ihii ;I rcprcsciiiar (iiii aiiibieiite grhlico). se hizo iiccesario diseñar u11 leiigiia.ie (lile
pcriiiiiicra iiiiir :iiiilins coiiccpíns s i i i qiie pel-dieraii stis airihiiios priiic.ipales. l o cual iiiiplicti
(icíiiiir iii1:i gmiifiiicii qiic sqmi-iara n csic ieiigiiajc. ~..agraiii;ítica ticíiiiicia para esic teiiin cie tesis
scl;i cxpiicst;i c i i Iiis scccioiies posici-iorcs.
I1
.: 7
!i
\
4.3. I
Noi:icii,ii
de diseño detallado iiiotlifirada
C ' o i i i o se iiiciiciciiiti aiiíerioriiieiite. se iuvier«ii qtic Iiaccr dgtiiiiis iiiotlilic-icioiies ;I is1
tliscíioNI dc Wariiier para Iincerla inis iiituitiva ai tisLiari<) para SII iiiaiiejo. i'oi- I« iniiio
i i o i x i t i i i tic
se
~ 1 l l I I I V O1111:i
l l o l ~ l c i ~de
l l l disciio
IiiÍíS
grÍíli.ca.
lii 1igiii.a 4.4 se iniicsii-n una tabla con las inodificacioiies qiie se Iiicieroii a l a iioiacióri
1)
dc tiiscño tIc~aIIadotie Wariiicr' cii csta fiiiira soIaiileiiíe se iiiniieja ia coiistruccióii txísica de ia
scciiciiciciciíiii qtic iihitrcíi las sigiiiciiics iiisiriiccioiies:
Iii
I
'
I
I
~ ~ ; l p l i l i l4f l
ilescripcióii de la gramática del GetiCod
I. Se ;igrcg<i I:I iiisiriicci6ii <IC
la hifiircacióii siinple, ya que eii la iiotaciiiii de diseñ» de Watiiier,
6sl;i iin existe. I%ta se ¡lizo c n i i e l fin tie eliiiiiiisi. e l coiijiiiiio vacio qiie se colocaba cii;iiido I«
.'t
>
C.SiSl iil Illlil coll<licIoII iicg"<I;i.
2. Se iigrcgh
siiiiholo grhfico a toclas las condiciones. '1-aiiibiéii a las coiidicioiies iieg:itlas se
:igrcgetlo iiii siiiiholo gidfico; estos síiiibolos se piiedeii observar cii la tercera coliiiiiiiii (le
Ics 1i;i
In lig1Ir;l 4.5.
iiii
I/
3 , Sc ciiiiiiiió e l siiiiboio €3 (or ~ ~ ~ c / u s ~ Ide
Y J la
) , iioi;icii>ii' de W;ii-iiier que existía eiitrc <Ins
coiidiciniics de iiiiii 1iriii.cacióii coiiipiiesín o múltiple (figura 4.5 iiiciso b y e), ya que lo lleva
I:
iiiiplicilo CI siiiibciloI'
0.
I
!I
Cnpiiiilo 4
j
Descripcióii de la gratiiática del GeiiCod
ti
4.5 Descripción de una gramática
I!
'1
Midios roriiialisiiros I i a i i sido propuestos para describir cI niializador siiitrictico de 10s
leiigiiajcs visiinles[CI~IAR7]. Pero para la foriiializacióii de esta gramática. se han utilizado los
conceptos Iiásicos que iitiiiza Cliang? quien comenta que las gi-aiiiática posicionales constitiiyeii
I/
iiiin cxiensi6n dc las graiii5iicas lineales [C1-1/\95].
1Z1 sisteiiin GeiiCotl est6 soportado por la graniática pnsicioiial iiidepeiidieiite tie coiitexio
que a coiitiiiti;icitiii~sedescribe. ~a grainitica .se compone de tina tupla de seis eleiiieiitos. .
G = ( N , I, S, I', POS, P E )
tloiide:
!'
S
Siiiiholos I1liio teriiiiiiales.
= Sinibolos teriniiiales
= Síiiiliolo inicial.
I'
= Rcglas de producción.
1'0s
= Relacione4 binarias de ideiiiificadores.
= Es t i t i cvaluadoi- pictogrhfico que coiiviei-te foriiias de iiisiriiccioiies eii sus
N
'r
PI:,
=
/I
rcpresciitaciones visiiales.
4.5.1 Símbolos no terniinales
I,os síiiiholos
no tcriiiiiialcs, so11 vnri:ililcs siiitáciicas qiic (Iciioiaii coii,iiinios dc cndcnns.
I
.I)
lisi;i de síiiiholos en la figura 4.7 represeniaii sinibolos no terrriinales. éstos definen coiijtiiitos
(ICcntlciins qiie ayiidaii a generar e l lenguaje generado por l a gramitica. Tanibiéii iinpniieii una
csiriicitir;i ,jcrirquicn sohrc el lciigiiaje qiic es útil tanto pata cI niiilisis siiiizíciicn cniiio para la
Ifiicliiccióii I A 1-1O9O;I.
I.,il
N=(cS>, <VAR>, <TX'IC>. <CAIIVAR>, <PARAMVAR>, <Ej.LSE>,<ELSEOP>, <SECUENCIAS>,
<INSTRi!CCINES>. <CON»CIC120~,<SWITCiI>, <DEI.'AUi.D, <I>ECI;¡JN>, <PRINlF>,
<SCANI'>, <LLAMADA>. < I k O M P > , <U'l-lJl,E>, <I>O\VI.III,E~,<FOR> }
Figura 4.7 Cmjunio de síiiil>olos110 terrniiiales.
Capitiilo 4
Ikscripción de la gramática del GenCod
I.
En la figiira 4.8 se iiiiiestra la lista de síinbolos teriniiiales que conforniaii la notación de
diseño dciallado) algunos de los síriibhlos terminales no son gráficos, debido a qrie dentro de la
iioiacióii de diseco. exisie taiiibiéii texto qiie sirve para c6inpieineiitar ai diseño. Por ejeiiipio el
iioiiihre <IC Iü fiiiicióii’ las e«iidiciones, etc.
”Noiiibre variables”, “Cadena”, “Coiidicióri”,
E}
I
Iiigiirs 4.8 toiijuiito de síinbolos terminales.
I,os síiiiholos teriniiialcs I iiiostrados nniericiriiierite son io<los aqtiellos que coinpoiieii la
iioiacióii del diseko deiallado. Algimos de ‘estos síiiiholos varían si1 significado de acuerdo a la
posición en la qiie‘1) se encueiitreii y, a los‘I atributos que tengan asociados. Por ejemplo‘ el síinbolo
sirve para representar la declaración de una función y taiiibiéii represenia la llamada a una
riiilci~lil
A
Esie síiiiholo con el subíndice 1 representa In declnrnciórt de rri9nfrrtcin’tt.
Este siiiibolc con el siibíiidice 2 representa l a llnrnndn de rrrtnfrrrtcióit.
Este síiiibolo con el subíndice 1 representa iiiia instrucción seleccin‘rr siirtple.
Este sinibolo con el subíndice 2 representa una instnicción seleccidrr
111lilt iple.
I:,s(ci slriibolo con cl siibíildicc 1 rcprcsciiin n la iiisirucci6ii
seleccióit siittple ttegnd~.
Este símbolo con el subíildice 2 representa a la instrucción
selcccicítr rirrilfiple itegndn.
Este siinholo coli el subitidice 1 representa a iin ciclo iternlirw siir condicidn.
I/
Este sinibolo con el siibíiidice 2 representa a un ciclo ifernlivo cort&iorinl
(MIENTII.AS condicióii).
Este símbolo con el subíndice 3 representa a un ciclo ilernfivo
cotidiciorrnl (HACER MIENTRAS condición ).
Figiira 4.9 Tabla de síinlmlos gráficos con su subíndice asociado dependiendo del significado.
I!
/I
Cal>liiilo4
Descripción de la griirnáiica del GeiiCocl
-
/I
I/
4.5.3 Síiiibolo inicial
I1
4.5.4 Reglas tlc piodiicción
Idas protliicciniies de iiiia graiiiáiica especifican cómo se pueden conibiiiar los ieriiiiiiales
NI
y los tin tcrtiiiiialc'; para foririar cadenas.:;Cada producción consta de tin no ieriiiiiial segiiicio por
iiiia íicclia. seguida por iiiia cadena de símbolos no tcrniiiiales y/o ieriiiinalesIAlio90].
Rcpasaiido i o qiie se había iiieiicioiiado aiiteriornierite: I m ~r.ni~iti/icos
po.~ici»rirr/e.s.soli
I I I I ~ I cx/einiciii (le 1tr.s grcrtiJó/iccis /iiienl&, por lo tanto podeiiios ver iiii iiicremenio de nuevas
características a las reglas de producción P. Enseguida se iiiuestra la forma general de las reglas
(IC protluccióii de tina graiiiáiica visual.
A i )
X'w R.'1 X2w2 R',X'
1)oiitlc i = l>2,3.4,
....~i y A es
iin
",."
._..R' ,,X
\\,,
,A
síinlmlo no icriiiiiiali cada
xiispiiecle ser i n i siiiibolo
tcriiiiiial o 110 tcriiiiiial. el siiperiiidice i identifica a cada objeto (icono o texto) en las reglas de
.I
prodiiccióii. El siidíndice IV es escrito despiiés de cada síiiiholo teriiiiiial gráfico y es utilizado
p r a idciiiiíicar s u significado (ver figura 4.9).
(REL;,/ii) donde R E L ~es
, una relación en POS cieiioiaiido las
relaciones posicionales qiie tiene iiii oljeto con respecto a otro; hi muestra el objeto con el cuál
se ficiic irel~ici61i~
cI valor de hi se obtiene de x'-ken doiidej corresponde al valoi- secueticial que
ticiic cI siiiibolo gramatical actual y k corresponde al valor seciiencial que tiene el síiiibolo
.I
gr;iniaiical cnti el c ~ i se
l relacioiia[CI-l/\95].
~ a c I~~ aE L $c~eiiota
~
iiii par
1Jii
cjiiiipln ,(le iiiia regla de producción del GeiiCod:
11
I)i~CI~'I~NCION
i)
A',
ABAIO',
A13AJO' I "n&iibre fiiiicióii"2 IIEllI~CI-IAZ2
4NS'IRUCC:IONI~S>'
worn
';:,
'faiiibi6ii se dehe mencionar que en cada regla de protluccióii se enciienira iin siiiibolo no
I/
11
ícriiiiiinl (:ICI:itlo i7,qiiierdo y clcl lado dercclio se ericilentrari Iíis rcglas que se tierivnii de ese
siiiibolii y para qiic se piicdn cuiiiplir csn rcgla, taiiibiéii se deben ciiiiiplir las derivacioncs qiie
C s i n ienga. Estas derivaciones son el resultado de cada una de las relaciones cutídruples que iiciie
cada uno dc los síiiibolo ieriniiialcs gi$licos, de las cuales se Iiablará eii l a siguiente sección.
I1
4.54.1 Relacioiies ciiádruples de identificdorcs (POS).
C'n<I;i síniiwih iieiie rclaciolies cii&iriipies con respccio a 10s cieniris identificadores, esias
rc1:icionc.r i i l k l t i a l objeto dentro de un plano cartesiano de 2-il coil i-especto a otros ob,jetos,
eslas relaciones son : ARRIBA, ABA.Jü, DERECIIA e 1ZQ111ERDA cada inia de estas relaciones
son itti par tic coortlciiadas qué muestran, qiie es lo que se encuentra alrededor de iin objeto,
4
xieniris c ~ ciiiciicar la posición c i i la que se.leiicueiitra cíeiiiro dc la p n n í a ~ ~Estas
: ~ . relaciones es a to
(pic sc reficrc cI t6riiiino POS d e la graimíiica posicional.
~
i>or c,jciiiplo: In regla de producción descriia arriba puede verse en la siguiente figiira
'1
J. IO. (Ioiicie se muestran 10s siiiiboios tefiiiinaies y no ieimiiiales jiinto con las relaciones que
csisicti m i r c estos. Se debe aclarar que con esta figura sólo se pretende ilustrar la secuencia de
Ulln regla (IC p ~ o d i i c c i o n
u,
I!
1;:í
píi11Io
!
1
Descripcih de
la graitiática del FetiCod
4.5.5.1 Relaciones cuádruples, de los síinbolos tei.iniiiales de la grainática
It.
1% I:i seccibii
aiilei-¡or se descr~bióen qué consisien las relacinlies entre Ins símbolos
g~;lill:iticalcs. el1 CSlil seccii,il sc csplicarri CUálCS son las rclliciolics qi1e tielle cada síiiiliolo
kriiiiiial con respecto a los deinás.
;
la seccióii 4.5.2, se ineiicioiió que eii esta graiiiática existeii síinbolos teriiiiiiales coil
tlifcreiitc sigiiilicado y para poder ideiitificarlos se les añadía iiii subiiidice. Para explicar las
,I
rclacioiies de los ideiitilicadores se va Iidcer uso de la tabla que se encuentra en esa secciOii figura
I31
4.9.
a) Dcclaiacióii de tina función
13 síiiibolo teriiiiiial asociado a la declaración de m a funcióii es el siguiente:
/
A
i3i la gi-aiiiitica que se eiiciietitra en e l anexo 2 podeinos ver que este símbolo es el prinier
síinllolo tcrillilld gi-:ílico COI1 c l qiic sc il1ici:lll I:1s rcgl:is (IC pr~l~lilcCi¿~ll.
y es cI S I l i i l i ~ l l <del
l
CII:ll
se dcriviiii iodos ids dciiiás síiiihoios teriliiiiaies que foriiiaii la grainiiiica posicioiial; es decir este
síiiiliolo siciiipre va a coiistitiiir el primer iiivei cleiiito de la iioiacióii de disefin, por lo taiilo sus
rclacioiics coil los detiiris olijctos son: ohojo e izgi~iei.do.
!(
I/
Sus relaciones son:
AI5AJO
: “iioinbi-e de la fiiiicióii”
a(,,I,3$i,2,3,i
l Z ~ ~ U l ~ l A2
~ l I~@O A I:f r o 1 “y,J@, i , 2 , 1
I1
I)) l,lain:ida <ICuna
fiiiicióii
I : ~ Isiiiihoio ieriniiini asociacio a iafiiaiiiada de uiia rLiiicióil es el siguiente:
A
lil siiiibolo terinitial que representa la Ilaiiiada de una fuiicióii es un símbolo I’asivo clue
coino ti11 no ociisitiiia u t i nivel, por Io taiiio eii sii relacihi a la dereciia no tiene iiiiigúil síiiibolo
tcriiiiiiiil ;isocindo.
47
!!
I ‘illllllllll :I
-
,
Ilwil~ii:li1iiIICIII triiiiiililiin IIPII IPIIIl ~ t ~ l
:,
.~..
.
.
. . . .,, ...
~
r ) l l l s ~ l ~ n ~ r(It,
i ~ s:llid:l
lll
I:I
I C r I n i l l i l l ilSOCi.il(l0
sílllllolo
il 1111:1
iiislriiccioii dc S i i l i ~ l i <IC
l 1111:1 lilllcioll cs cI sigiiiclilc:
:*:>y
.!,.
lisle síillbolo
,i icriliinol laiilbiCi1 4s 1111 Sín1bolo pLiSiv0’ peto a tliferencia del sínlliolo
anícrior, Csic iicnc asociado a s u derecha una cadena o una variable la cual forma parte de sits
:ltrih1iins iisociildos a csic objeio (csios aii-ibiiios serhii explicstl«s en I:i sigiiiciiie seccih).
Sus relaciones son:
AI?AJO
:
A2I @” I Y oI “;oolmomo 1 @II(,,,I m,,
)
),
I)I?I<ECl~IA: “cadena” I variable
IZQlJlI?RDA: h!.,’tj
@íl.2)l
I%
/I
<I) Iristriicción de ,entrada
El síiiibolo teriiiiiial asociado a inia instrucción de entrada de una funci6n es el siguiente:
!I
Las relaciones cuádruples de este síiiibolo son las inismas que el símbolo anterior
(insiruccióii de salida), la única diferencia es que este sirnholo sólo tiene asociado a su derecha el
iioiilllre de 1ina variablc.
e) Iiistriicciones:.condicional simple, mílltiple y condicional negacla
11
El sínibolo
~.~~
~
sigiiiciiie:
I:i
!I
tcrniinal asociado a la instrucción condicional siniple y múltiple es el
O.
síiiibolo teriiiitial asociado a la instrucción condicional negada es el siguiente: @
Ixsios símbolos
terminales iieiien// direrente represetitacióii (ver figiira 4.9), pero sus
11
rcI:Iciotics cii;í<lriiplesson las inismas, por’lo tanto se explic:ir6ii sólo inia ve7. para todos ellos.
Siis relaciones son:
4R
Cal,iiiilo 4
//
Oescripcióii de la graináiica del GenCod
r) Iiistriicciones: :ciclos condicioiiales
I!
I/
*,
111 síiiibolo tei-iniiial asociado a los ciclos condicior.sles (tiiieiitras<cotidicioti>, repetir
niiciil~:is ~ : c ~ l n d i c i o i l1131'il
~ . I1;isln ~:con<licicín~)
es CI S i g i l i C i l l c :
I:sios síiiiholos teriiiinales tienen diferente representación (ver tal& 4.9). y sus relaciones
cii;ítlriiplcs sot1 las i l i i s n i ~ i s ,qlic los síiiiholns :lnlCliorcs
4 5 4 . 2 Ati-ibutbs de los objetos,
Oira cosa qtic Ii:icc difcrciitcs a las graiiiáiicas visuales dc las graiiihticas lineales son los
; i t r i h i o s y c iiciieip asciciatlos los síiiibolos teriiiinales grilic«s. Estos airibiitos proporcionaii
"
iiiforiiiacicíii adicioikd a cada síiiibolo.
1.0s síiiilx,los griificos qiic conipoiieii
CSlOS
snn:
I)
la gramática (i ticiieti algiiiios airibufos en coiníin.
Ni.
* Tipo <IC instrLlcciói1.
* Tipo de bii,iiiaps.
* C:oortlciiatlac arriba dcl ob,jeio (x.y)
* (:oorticri;icihs a~xijocici otTjcio (x:y)
* Coordenadas derecha del objeto (x,y)
* Coordeiiadns izqijicrda del objeto (x,y)
* cadena
i,
Los atributos (tipo de insiruccióii y tipo de bitiiiaps) representati al nonibre lógico de cada
l>iini:ip. y el cual-teto de coordenadas (XJ) representan las relaciones que tiene el símbolo con
rcspcclo n oiros síiill,olos. adeniás de ubicar a cada siiiibolo dentro de un plaiio cartesiano dc 2I>.I:I airiiwio cadena sirve para aimacenaj información, la C i l a ~tiepencie del tipo de insiruccióii al
qiic reprcsciiie, por ejemplo si se trata de la declaración de w i a fuiicióii, en esa cadena se va a
illniacciiar el nonibre de la riiiición, en caso de que se trate de un ciclo en esa cadena se
;ilniaceiiará la coiidicióii. etc.
seguida se iiiiiestran los atributos adicionales que tienen cada lino de los sinibolos
1crn1inalcs gráficos.
Iii
Ati.il>iitos de la rleclaraci6n d e una fiincióii:
* Tipo de la fiincióii
* p a r h e i r o s {tipo daio, nonibre, tipo paráiiietro}
49
I/
Cnpillilo 4
I>escripcióii de la grain6lica del GeiiCod
Atribiilos de l a Ilaiiiada de una función:
i
;I
* pxíiiiciros
{ l i p o daio. iioiiibre, iipo Paróiiietro)
A t r i l ~ i t o sde lbs instriicciones cle,ienfrada y salida:
* Variables (csie síiiibolo puede tener asociado varias variables)
'I
A1iil)iito de las iiisinicciones condicional siinple, iiiiiltiple, condicional negada y
los ciclos:
* Coiidicióii'l
4.5.5 Ev:1liiador pictogi-áfico (FE)
r(
5
I'E cs iiii evaliiador pictogi-tífico doiide se eiiciietiiraii las reglas seniáiiticas que se
iitilizarAii deiitro del coiiipilador, aquí se defiiieii las posiciones que deberá tomar cada objeto de
acuerdo ;I la rclacióii que íenga con los d e m h objetos, a difereiicia de un coinpilador liiieal doiide
I/
sc ciiciiciitrnii las iiistriiccioiies para generar CI código.
4.6 Estructura1 de datos que maneja
el GenCod
i/
l':iIa la iiiipl$iitacióii de la graiiiática G fue iiecesario que ésta eitiiviera respaldada por
csirticiiira tlc dnios que sopoi-tara los airibiitos y «I~.jeios que iiiaiieja diclia graiiiática
posicioiial. 1% la Iigiira 4.1 1 se niiiesira uii paiioi-ama de la estructura de datos que iiiiliza el
I!
CicIiCotl. esias son: '1
iina
* iiii 1isi:i (Iohlciiiciiic ligatla c i i doiide se alinaceiian los datos de las variables globalcs, coino
soil: cI iioiiihrc dc 14s variables, su tipo de daio y el tieiiipo de vida de la variable.
11
*
la cual está apuiiíada por un arreglo. Eli esta lista se aliiiaceiia la
iiiforiii;ici«ii dc las variables locales (la iiiforiiiacióii que se alniaceiia es parecida a la lista de las
variahlcs glolmles).
iiiia lisia tloblciiieiiie ligada
i
* uii arreglo tic 50 posiciones eii doiide se aliiiaceiia la iiiforiiiacióii de las diferentes fiincioiies
qiic coiiipoiicii iotlo el disciio detallado, adeiiiás de la iiiroririaci6ii re fereiiie a cada veiiiaiia (que
rcllres~~li;i
;1 c ~ i litiicioii).
a
!I
so
Capiliilo 1
V e r a ipción de la gramática del GeiiCod
d
D
Vnrinliles glohnler
Ohjctns
Figllrll 4.1 I Esii-ilcirira (IC LlillOS (IC1 GCilCOil.
.L
*
iiiia
*
1ni:i
lista tlobleiiieiite ligada tloiide se aliiiacena la iiiformacióri de los ob.jetos que forman el
discño dctall;ido, C M cada win dc Ins iiodos se aliiiaceiian los ail-ihiitos de los objetos, conio son:
la posición dcl oli.jeto deiiiro dc IIII espacio, e l tipo de iiistriicciOn. el tipo de biiniap qut: va a
iitiiizii- y los airihiiios coil los quc cuente este oljeio, acienizís pueclc c o n ~ a tcon una lista
I/
I) .
dohlciiiciite ligada que contiene iiiforiiiaciúii asociada al o-jeto. En la signietite sección se
Ii;iblni.á ink aiiipliaiiieiite de esta esiriictura.
lisia dohleiii~nteligada que aliiiacena la iiifoririaciún de los atribiiios de los objetos esia
't
1
lisia va a estoi apuiitatla pnr la lisia de Ios'ob.jetos.
4.6.1 Esti-iictiiija dc datos de la lista de oljjetos
51
Cnpiiiilo 4
.
Descripcióii de la y a i i i á t i c a del GenCod
I!
La estriictiira;de los iiodos de la lista de objetos (figiira'4.1.2) se ni&&
I/
a continuación:
't
IypctlcCstriicf {
ilil IIII1sIrlIc:
int ii13nip:
IIcrecl1a~X;
iiii IlerecliaY;
iiii Izqilicrdax;
i i i t 17.qilici.daY;
iiii ArribaX;
iiii ArrihaY ; ;
i i i i AImioX;
i t i t Aha.joY
iiii Arribn$lodiIX;
iilt
"
7
1
Coordenadas
iiit ArribaModifY:
i i i l Norni:iIRiilp;
i11I 'I'i po:
char Cadci1al801;
striict OIIECI'DATA *AptNext;
striict OBlli:C7'DATA "AptAiit;
sit-itct 1,ISTAVARS *AptArgs:
I
doiicle:
/
.
.
1;
nlristriic = Es tina variahlc de iipo entera q i ~ ealniacena el tipo de iiisiruccióti que representa ese
iicido. cl valor qiic coiiiciiga se va a toinar de la siguiente tabla de coinparacióii (Figura 4.1 3 ) .
11
I)
Iiistrucción
I;UNC I ON
1)
LLAMADA
I
2
3
PRINII:
4
DECLARA
.fx.Ic
SCANI'
!i
5
swI'I'c:II
6
I
CASE
ElSE
8
9
M~llll,l:
Io
l>OWI-llLE
I'OK
II
12
FIN
13
11:
i(
Identificador numérico
O
,
IC iiistriiccioiics.
52
II
í:;ipíiiilo 4
Ilescripcióii de In gratiiáiica del CeiiCod
iiBiii11 = Al ig:Lial qiie
v:iri:ible aiitci-¡or ésta taiiibién es de tilio eiitera. JJ :iltiiacena el iipo del
biiiii:ip qiic rcpresdiiia a la iiistriicciiiii de la que se trate, cs decir, :IIi11:iccii:i ci iiotiihre iísico cici
lit
.I
oli.jeto' que en realidad taiiibiéii lleva el ttútiiero del identificador de la tabla de la figura 4.1 3: ese
núiiicro cot-responde al íiidice de uti arreglo, en el cual se eiiciieiitr.ai1 todos los nombres de los
bitiiinps.
I)ci-ccli:iX, J>ei-ecliaY, IzquierdaX, IzquicrdaY, h i - i l > a X , ArribaV, . AhajoX, AbaJoV,
Ari-ilxtModiíX, Aiiil>aModifY (Coordenadas) = Almacenan las relaciones de cada objeio.
I(
II
ArriliaMotlifX, Ari-ibaMotlifY = Estos dos campos almacenan las coordenadas iiiodificadas
del objeio cilaiido el ol7jeto iieiie qiie cambiar de posición: esto ocurre ciiaiido se trata de iin
nlljeto activo, qlie /necesita volver a calcular sus coordenadas coli respecio a los ol$etos qiie
liirin:rii parie de él (Esto serti explicado iiiós adelante en la seccihi de a-jiistede objetos).
Norinalniiip = Este campo sirve como tina bandera para realizar el hori-ado de algún objeto. el
caiiipo siempre estar6 iiiicializado en O, de otra manera iiidica que el objeto tiene que ser
eliiiiiiia<lodc la lista (la fLiiición de este cnrnpo se verá más ainplianiei,te en la seccióti de borrado
(IC ol~,jctos).
.!
Tipo = 1% este caiiipo sc almacena el iipo de la fiiiicióii. El valor de este campo corresp«n<le a
iiii indicador tiiiiné!;ico; el ciial es el íiidice de ini arreglo (I'posD~os)~
en donde se encuetitraii
'
i d o s los iioiiilires de los tipos de datos.
Coiiio se iiiciicioiió anteriormente en esta estnictura se guarda la iiiformaciim de la
. It
If
ttccl;ii-ncióii <IC vaiia,bles y de los argiiinetikx (que se Iiablará posterioriiie~ite).por lo tanto eii esta
\,nri:ihle dc tipo cntcro. se aliiiaceiia el tipo de la variable, c.olnc6ndose in1 indicador numérico
(111ecorrcspoiicle a l íiidice de un arrcglo en donde se encueiitraii los iioiiihres de los tipcls de
(li11011.
Catlcna
= Eii CSIC c:iiiipo se aliiiaceiia distinta itiíorinacióii. ésta 'va a depender del tipo de
iiisiriiccitiii qiic ten@ el nodo. I'or c,iciiipln si el iiúiiicrn dc la iiistriiccitiii corrcspoiidc a ui:l
riiiicióii. ciitoiiccs eii esle caiiipo se alm&eiiaró el noiiibre de la fiincióii, pero si la iiistriiccióti
corrcspoiitlc a tin pi.in/J:cnionces aquí se alinacctiaró la cadena que sc desea imprimir en paiiialla.
4.6.2 Estructura de datos de la lista de argumentos
11
I,;I cslriictiira qiie se presenta en Id figura 4.14, es la niisina que se utiliza para almacenar
1;i iiiloriiiaciiiii de las varialdcs localcs, globales y los arguineiiios de los objetos.
53
\
Cn(iiltil« 4
I.)escripción de la graináiica del GeiiCod
//
11
I1ncin el
11o<10
aiiíerior
11
I
Tipo
Variable
alcance
Apiiniador hacia el
iiodo sigiiieiiie
Iiigiire 4.14 Modelo conceptual de los nodos de la lista de variables
I1
'I
I..:i csiriiciiini de I«s,no<Ios (le la lista de argumentos (figura 4.14) se niiiesira a coiiiiiiiiacióii:
)I
1
tylicdcEslriict{
iiii Tpo;
ciiar ~ariiiblc[251:
ellar ;ilcniice[,íl];
siruct 1,ISTAVARS *AptNext;
striict JzlSrhVAllS *Aptlast;
"
:
<Iotldc:
c s ~ ac s p c i i i r a se giiarda l a ,,iiiforiiiaciOii <IC l a tlcclaraciOn de variahles y de los
;irgiiiiiciiios. por lo i:iiiio cn csia vnrinhlc de tipo ciiiero, se iiltiiiiceníl el iipo tlc l a variiihle. e l c w l
cnrrespoii<lc ill í i d i c c dcl ;1rrcglo T~"'SIi)lOS.
7'110 = I'ii
I1
Vnrialile
esia cadena se aliiiaceiia el iioiiilm de la variable: en caso de (]lie se ti-ate de
:irgiimciiio o piirhiiieiro, sc giiarda el noinhre de éste.
=
131
tin
csic caiiipo se ainiacena' CI alcance q i ~ ctietic. win variahie. por ejeiiiplo se
:~ltl1:\ccn:l 1:) pkil,Ki "static", cii c;is« dc que se tniie de un ~ ~ : " . ; í i i i c i r o ~ l i ~ r se
~ i igii:irdri
al~
el CIII'RCICI'
:I~C:IIICC
y=
i:ii
(IcI iipo dcI p:inítiic,iro. por e,jciiiplo si es'por referencia se aliiiacena un
p a h i i c i r o real por rcfei-eiicia, se almacena el síniholo &.
1:
*,
y si se trata de
iiii
I1
4.6.3 Estructura de datos del arreglo de listas
I
I.a figura 4!ll 5 niiiesira la estructura de m a posiciOti del at-reglo de listas, en el ciial se
;IlIn:Icctm iotlii In i n f o r i i i a c i h i referente a la inierfaz del sisienla (;eiiC«d, adetnhs de la
iiifiiriiiiiciiiii cspecifi,ca de cada tina de las funciones que existan dentro del diseño detall:ido.
:l
54
I
C:ipíllllo 4
Descripción de la gramática del GenCod
!IIiigiirn 4.15
Modelo conceptiral de los nodos del arreglo de lisias
Ihscgiiida sc iiiiicstiii la declaración de esta estructiira
typeclef striict(
slriict O ~ I I ~ C T ~ A*AptOl>js;
TA
slriict IL.IS'fAVAI<S *AptVars;
i iií Arrl3iiipFiinX;
iiií ArtFiiii'kioiiY;
int i.,crtx;
iiit Rigl1tX;
¡ill 13olt"n~Y;
iiit
3
Coordenadas del área cliente
iiit I'opY;
IYo;
iiii NuiiiWiii;
-1-
ellar catliiiiol!l20:~:
cI1;1r ca<ltlos[!l201:
Coiiiciitarios cle la liinci6n
cliar cacltrcs[ 1201;
1
I
E
.i
AiriIiiipliiiiiX, A b l ~ i i i i c i o n Y= lisías dos coor<lcii:i(liis iiliii:iccii:iii 1:i inloriiiaci6ii
coordeii;idas dc arrihn dc la posición eii la que se encuentra el biiniap de la I-iiiticiÓti.
I,citX, Top\', IligiifX, IhttomY (Coordenadss del área del cliente)
I)
1)
coordcii;itl;is del hrca dcl cliente. en el lnoinento de crear una nueva fiiiición.
Etln
=
(IC
las
Almacenan las
I ~ 3 ecaiiipo aliiiacciia el estado de cada i i i l a de las ftiiicioiics (el aiitóinaia qiie se
iiiciicioiiii. sc'ciiciieiiira ilustrado en la figura 4. IG). Por cjeiiiplo. en caso de qiie una fuiicióii qiie
I/
1)
se cst:í c,jcciii:iiidu ~ c i i g qiic
i
iiiicrriiinpirse por cI Ilaiilado (IC O I K ~riiiiciijll. se dchc alniaccnar el
csí:itl« c i i c1 ciial sc ciicueiiira, para que cuando vuelva a ser Ilaiiiada coniiiiúe en el estado cn el
CiIi11 se <Iiiedti.
=
5
I/
.
._
.~....
I1
Cnpiiiilo 4
Ilescripciiiti (le l a grntiiiticn del GeiiCod
.I
secuencial,
bifiircacióii,
repetición.
Fuiicio
NuinWiri
= Esta variahle guarda el iiíiinero de la
Fin del
diseño
veiitaiia que le correspoiide a cada i i i i a de las
iuiicioiics.
cadiinn, caddos, cadtres (Comentarios) = El sistema GeiiCod permite que e l usuario
I1
1)
docuiiieiite cada uiia de sus funciones, para esto tiene una opción para realizar estos coinentarios.
10s cualcs soil aliiieceiiados eii estas tres variahlcs de tipo cadeiia.
4.7 lnterfaz gráfica implantada en el sistema GenCod
se preseiiia uiia d'cscripción de 10seieiiientos que foriliati la iiiteriaz del
(iciiCoiitl, explicando en algunos de los casos especiales el porqué de la eleccióii de una técnica
A coiitiiiiia&n
cii piiiciilar.
4.7.1. lntcrfm con niíiltiplcs tlociiineiitos
(MUI)
I/
1)
i..;is iiiicrfaces coil iiiiiltiples docuiiieiitos periniteii iraha.jni eii iuia sola aplicación coli
iiiiiliiplcs veiitaiias / / Iii.jas que ieiidráii todas las iiiisnias fuiicioiies pero diferentes atributos
asociiidos. 'l'aiito la veiitaiia principal coiiio las ventanas hijas ciietiinii con barra de iitlilos. hartas
scroll, hoioiics de iiiaxiiiiizar, niiiiiiiiizqr e iconos. Una de las difereiicias eiitre la ventana
pi-iiicipal y las veiitaiias hijas es que, las veiitaiias hijas solo piiedeii iiioverse dentro de la veiitaiia
prii1Cip;ll (iren cliciiic), ndciricis sólo la veiilaria ,pi.incipal IiCtlC iiiciiii. 13 adtiiiiiisli.ad«r de
arcliivns (I:ile Mniibger) para Wiiidows'en Witidows 3'.1 y el SysEdii de Wiiidows 3.0 soil
e.jciilpio~ (iCM I I I ~r ~ ~ ~ ~ c i i w j .
Eii la figura 4. I7 se tiiiiestra un c,jetnplo de un editor <IC1111programa que i i t i l i m los
h4l)l's
co1110
inicriaz.
.
í
il
1
Cnlliiill« 4
I>esci-ipcióii de l a grariikiica del GcnCod
'I
Iiigiirn 4.17 Editor de un programa MDI
I
En el desarrollo de esta tesis fue necesario utilizar la técnica de los MDi's con la finalidad
de liaccr inis pi'hctico cI GeiiCod, cstoi es, se necesitaha que exisiiera u n niecaiiisino que
pcriiiiiicrn crear iiiiiltiple ventanas para coniener a las iiiúltiples funciones que pueden integrar tin
pi-ograiiia escrito en Icngiiaje C. Se requería que cada veiiiaiia pudiera representar una función, y
qtic por lo tanto, todas estas ventanas tuvieran la tnisnia finalidad. pero cada una conteniendo una
p r 1 c del tliscfirl tlclnllntlo dcI sistcliia.
:.
4.7.2. Itilerfaz t l t l GeiiCod
I ,;I illlci'l~l7,del ( i c l l ( : ~ l t l (ligllra 4. I X ) cuciit;i COI1 1111 IIIclllI y 1111:1 pdci:1 de l > ~ l i ~ l n c C!1
s.
( h i d e se cncuciiir;iii r c p r c s c n k d o s CII li)rma gfiílica 10s si1nOo1os CIC l a ~ i o i a c i í ~
<IC
~ i diseño
~lcI;Ill;I(lIl(IC w ; i ~ i i i c r ~ ( c s I r i I c I I l ~
del s1lccisión. ilcfiicitiii, ll:nll~l~l:is
;I liincioncs. cic.).
'l':ii11liitii c i i e p con tina ventana ,,de edición doiide se consirtiye el diseño detallado
cspcciílicatlo pot- e l mmii'io, Chriio se iiieiicionó en la sección anterior. en esta iiilerfaz que
cinplca 1;i i i c i i i c a dc,Ml)l's puedeti existiti tantas pantallas de edición como funciones ienga el
progra tiiii.
57
Cn~>iiiilo
4
I!
Descripción <le In graniilica del GeiiCod
il
Catla iiiin de estas vciiiaiias de edición posee las características básicas <ICciialqLiier
vciIi;iii:i cii wiiidnws: iiiiiiiiiiizaci6ii. iiiasiiiiizaciGii, c«I(icar liis vciitaiins eii cascada. <livitiir Itis
ventanas. cíc. I s t o ~ t l oiina nniplia flcxihilidad al sistema. en el sentido qiie u t i tisuario plredc tener
siciiiprc visible todas las ftiiicioiies qiic integran s u sistcina.
I
la fiincióii
1
il
......., ....,,
. . ......,......,.....
~
~
...,.... ...............................
~~
~
.,,.,.
. .........
....... .
17igiii.n 4.18 Iiiieifaz del GeiiCod
i/
If
I:;I iiiciiú cici CieiiCoci ctieiiia coil las siguientes opcioiics:
Archivo: c:;la oiicitiii dc i i i e i i í i coiiiiciic laslopcioiies Cnrgnr, Soli9nrdiseño y Snlir del sistema
Opciiiiies: coniiciic las opciones Geirernr ckligo con liase eii el diseño des;iIroilado, Vi!r
I1
,I
Códi,yo. Coiitliilnr y I?jecii/nr cI archivo fueiiic creado y por iilíinio, colocar Conteirlnrios en
cnda mi de I:is itiiicioiics qiie forincii el disciio ci-eado con la Iierraiiiienia.
I/
58
II
1
I
Capiiiilo 4
I)escripcióii de la graiiiáiica del GeiiCod
59
Desarrollo del sistenia
c.ipitiilo 5
CAPITULO 5
T MA
L
capíiulo se describe la inciodologia de colucióii para el pi-oblcnia descrito eii el
c;ipítiilo 2. <letallando 10s algor.i(mosiitilizados.
1511 ecie
I!
r:npiiliio
s
I!
Desarrollo del sisicilla
5. I Ilesarrollo !interno del dise,ño detallado
I,
íitiiizaiich el sisieiiia GeiiCod el cisiiario tiene la opcitiii realizar iiii diseíio iicievo o d e leer
ciii tiiseíío licciio coil aiiierioridad, si la opción elegida es realizar eiiio iiuevo, eiiioiices se l e
iircscii1:i ciiia ca,ja dc diálogo para proporcionar el nombre y el tipo de In fiiiicióii (figura 5.1). Ésie
11
i i l ~ i i r i «sc cligc (IC ciiia lisia de iipos escrita en español, pot' lo que el cisriario sRlo deber5 elegir
algtiilo dc cIIos.
...........................
i
1
j
. . . .
j:
1<
I'
Miiiimo 3 letras al iiiicio
j
>I
i
i!
i
i
GI
Desariollo del sisleina
Cnpiiiilo 5
S i cI usiiario diera tiii iioiiihre correcto a l a fiiiiciím pero iio Iiiihiese elcgido el iipo de la
fiiiiciOii se ICprcseiiiaró la caja de diálogo iiiosirada eii la figiii-a 5.3.
1,
I
Csperaiido l i p 0 de la Fuiición
I
Figiira 5.3 Caja de diálogo que fuerza n
defiiiir el iipo de una función
I J n n vez, que Iin escrito el iioiiihre y elegido el tipo de I:?fiiiicióii se le presenta otra caja de
di;ilogo (íigiira 5.4). eii In cual sc piden los pariiiicti-os de In fiiiicitiii, si es que los tieiie, (le oirn
iiiaiicra el usiiiirio puctlc clcgir l a opcicíii de caiicelar e iiiiiictliaioiiiciiie iniciar coil el desarrollo
de su discño deiallado, del cual se hablará en la siguiente secciiiii.
It
I!
~
~
~~._.___.
:lira 5.4 Caja de cli5logo de la dcclaracióri de Ins par5inetros de tina fiinció
¡I
1% caso de gue la íiiiicitiii tenga parAiiietr«s. eiiloiices el lisuario deheri escribir el iionihre
<IC
c a l a it110 de cstos c i i la ca,jn de edición coi-respoiidieiiie. Al igual que eii la declaración del
iioiiilii-c y iipo dc la fuiiciOii, esta seccióii fuerza a l usiiario a dcfiiiir el iipo del pariinetro sí es
qiic se ha ciiiiiiitlo~así cniiio taiiibién para escribir por lo nieiios tres letras al inicio del nombre de
jJ
1111 p:ii'óiiictro (figura 5.5).
62
1
S i el usuario ha determinado el iioiiibre y tipo para una variable entonces deberá definir si
e l paráiiictro será pasado poi- valor o por referencia: en caso de no especificarse esta característica
se tenia por oiiiisióii la opcióii de paso de paráiiietro por valor. (Jna vez que se Iiayaii definido el
noiiihrc. tipo y foi'iiia de paso de paráiiiefro, el usuario debe presionar el botón de ogregor que le
Oarh la opción de seguir declarando niás paránietros. Una vez que el usiiario haya declarado todos
los pariiiietros qiic contiene la función deberá de pi-esionar el b o t h de ji7nliznr. De la niisma
iii:inci-ii sc i.c;ilizti la (lcclarncióii de las variiihles.
I/
Si cI milario ha determinado el nombre y tipo para tina variable entonces deberá definir si
11
los paráiiietros sei-án pasados por valor o por referencia, eii caso de no especificarse esta
caractcrístic:i se toma por default la opcióii de paso por valor. IJna vez que se haya definido el
iioiiihrc. tipo y foriiia de paso de paráiiietros, entonces el usuario debe presionar el botóii de
1)
Aprvgni. que le dará la opcihi de seguir declarando iiiás paráinetros. Una vez que el tisiiario haya
<lecl;ir;ido los paráiiietros de la fuiicióti deberá presionar el hotóii de ,Jii7o/iznr.. D e la iiiisina
iiiiincrii se realiza la dcclaracióii (IC las variablcs (cii el anexo 5 se muestra brevemente la
cjcclicióli (IC1 Cic1;Cod).
Sc dcbe niciicioiiar que la entrada de datos que se realiza por teclado (por ejemplo: el
iioiiihrc dc la fiiiicióii, la declaración de variables, la declaración de parárnetros. etc.)' se analiza a
irav6s de tina graiiiática iiiiiy parecida a la grainática utilizatla poi. el lenguaje de prograiiiacióii C:
11
por lo que sc tiene tin analizador léxico y sintáctico. para este tipo de entradas. Se utilizaron tinos
aiil0iii;itas (le estados finitos?los cuales se iiiuesl.raii en el anexo 3.
5.1.1. Dcfiiiicibii dirigida por la sintaxis
I1
13) csta scccióii se Iiablará de cómo se realiza iiiternaineiite la inserción de los objetos en
el sisicniii GciiCocl por i n d i o de t i n análisis sintáctico, pero antes de eso defiiiireñios el análisis
1)
de <~e/ei~riiinni.
.si irrrn CcJdCilo de C O J ~ J ~ O I ~ léxicos
~ J ~ / ~ puede
~ . Y
ser.
silit:iciico conio: 13 /.~r~oceso
, q i ! i i e r ~ r ~ / /?or
rr
i / r ? u jycirrr<í/ic(i [AI-l090], c i i este caso los coiiipoiientes serán los objetos. de los
cii:iIes sc 11;i li;ibIiiiiclo :I lo Iiirgo dc estc capitulo.
<<
"
Para esic sistema se utilizó tina definición dirigida por sintaxis que es una generalización
dc una graniritica iii$epeiitlieiite (lei contexto en la que cada síiiibolo gramaiical tiene un conjuiilo
dc ntrihiiios asociados, dividido e n dos siibcoiijuntos. llamados atributos sintetizados y atribiitos
Iici-edados de dicho siinbolo gramatical.
(In atributo puede representar cualquier cosa: una cadena, t i t i número, un tipo, una
posiciciii (IC ineiiioria, etc. El valor de u n atributo en un nodo de un irbol de análisis siiitictico se
ticritic iiicdiaiitc una regla scniáiitica asociada a la producción utilizada en dicho nodo, e t i este
caso se uiilizarin IDS atrihutos Iieredados, porque el valor de un atributo heredado se calcula a
partir dc los valores de los atributos en los Iiei-tnaiios (objetos pasivos) y el padi-e (objetoactivo)
~AIIOOO~.
I 111:1 v t v
6 S l C SC l ’ C ; l l ¡ X l
, I l l y Lit‘ 11:111 11cL~1lo:il~!,llll:ls
CI1
~lcliiiiL~iillics.
se
Viii-iZiS O C i l S ~ O l l C St ~ i l ~ ~CIl ~i k~
p:lS:lKi :I
cspli<~.:ll.
1.1 :lll:ílisis ~ i n l : i c l i ~ l l ,
l i i ~ ~ ~ ~ idcl
i ~ S¡StClll;l:
l l l ~ ~ CII
l i C
~I ~6 / <l 5 S ~ / / ’ / ’ t J / / t ltk! 1117
t/i.rtv?o. e11 la i m w c i t j 1 7 y e/iiniiincitiii c/c o/?je/osdentro dcl diseño. i’atxlelo a esto, se lleva a caho
¡:I iillic:iricíii (IC los’~ol!jcl~ls
(ICIIIrn (IC1 tliscfin. nsi colll(l CI i l j l l s l r (IC IXS ~:llnr~l1.ll~l~i;ls
(IC 111s nljclos
activos. I s i o s (los úliiincis aspectos
1oriii;iii parte tlcl análisis seiii;iiiiicci
5.1.2 Aiihlisisiieii cl desarrollo d e
I a pa 11t a II a
IIII
dc este sistema,
diseíío y iihicacióii cle los objetos en
13 sislcnia GeiiCod está desarrollado de forma tal que no permita que un usnario cometa
crrnrcs tliir:iiitc cI !clcsnrrollo <IC su discíio, giii;iii<lolo c i i todo cI <Icsarrnlln de su tlisefio, es por
cstn raicíii ~ L I Cse rciilini u n aiiálisis iiiiiiiiiio de las expresiones gi-ziiiiaticales que el ustwio va
fo rni a lido ,
Ca(l;i vez que u n usuario realiza u n diseno y eligc uii obicto p:ira forinar parte del tlisefio.
i.
s i hrnia u n csprcsihii graiiiatical, y es eiiioiiccs cuando se realiza el aniílisis sobre esa expresihi.
13 proceso que se realiza es el siguiente:
I . 1.3 ol~jcíoclcgido por el usuario es iiiscrtado al final de
Ins oh~jctcis.
l a l i s i a que contiene
la inforniaci6n de
7. Si cI ol+to iiiseriado representa a las instrucciones else o d C / h / / ,se recorre la lista de iiodos
qiic contiene la infnrniación de los objetos de airás hacia adelante. ya que debe haber sido
I/ .
iiiscrlxia iintcs 1 3 instrucción i/(coiidicioiiai compuesta) o c m e (conciicioiiai inúiiipie):. además el
(;cnCotl verifica que In expresi6n condicional esté finalizada, es decir‘ debe existir el siniholo,firt
corrcspoiidieiilc ií I:I insti.uccióii /l: como se ilustra en la figura 5.6.
I1
64
Callil~ilos
Desarrollo del sisteina
I'igiii."
5.6 Ejeiiiplo dcl nii5lisi.k e i i In iiisercióii [IC
titi
ohjcio
CII
c1 diseno
1311 caso coiiii.ari».
el sisiciiia GciiCocl iiisiida un nic.iis;i,jc de error al discñ:itloiiiidic;iiidole que no piicde iiiseriar ese objeio en el diseño, y en forma automática es borrado de la
l i s i a dc oIi~jeios7cl nodo que representa a la instrucción else. Este e.jemplo se inuestra en la figiira
5.1.
Figiirn 5.7 E,jeiiiplo de 1111error en el awílisis
con l a iiiscrcióii del ol>.jeioelse.
18
3 . Si c i ohjcio clcgitlo coi-1-espoiide al símbolo ,/ir7 de iodo cl diseño. eiiionces no es posible
.'I
iiiscrix iiiro o l i ~ c i oii~ menos qiic sc elimine c s i c ol).jcio o sc rcillicc I:I opción de inscri;ii- 1111
oi,jcio cii u n a pat-te iiiici-media cleiitro del diseño.
14
cis
!I
.
Capiliilli
r
Desarrollo del sistema
4. C a h \;c7. que sc inserta tin objeío acíivo en el -diseño, se aiializa el anidatiiieiito de las
fiiiicioiies. es decir."se recorrer8 la lista de objetos para verificar que no existan inás de dos
objcios aciivos aiiidiidos del inisino tipo, si esto ocurre entonces se despliega un iiiensa.je de error
iiidiciiitlolc al tliscñ;itlor qiic iio piicdc iiiserlar csc objcio, cii 1;i figiii.;i 5.8 sc iiiiieslrn tin qjcinplo
dc cstc lip0
1
Figi1i.a
5.R Ejemplo de wia función con ires condicionales
simples anidadas.
5.1.2.1 Ubicacibn del primer objeto en la pantalla
i::ii ciiaiii«:a In iibicacióii de los objéios tieiiiro de l a pantalla. para el priiiicr oújeío grrifico
qiic corresponde a la (Icclaracióti de tina fuiición. el sistcinn lo pone autoiiiáticaiiieiite
cuaiido cl tiwarin clige In opciiiii de hacer iiii niievo diseño. p«r<iiie de csie primer eleiiieiito se
\Jail ;I ~lclcrnlin~ir
I;Is c~lor<IcIl:ldils
<IC los dcn18s 0l1.jci0s.
i l c l tliscñci
I'kic cil>,jcioohticiic sus coordeiiadas tiel irea tiel clieiife, y es ciilocado eti In posicióti
Arriba (0.0): las dciiiás coordcnadas son calciiladas de la sigiiiciiie manera:
Lo.$ coorderrnr/ns de nbnjo se obtienen suiiiándole a las coordenadas de arriba eii J) el espacio
del Iiiiiiiap (SI'CIiMI'). adeiiiis del espacio que ocupan l o s datos de la declaración de la
liiiici6ii ( D A b S ) . que eri esle caso es el nombre de la fiiiición.
I.o.v c o o r ~ / e i i h d wde In izqrrierh soil (O,O), ya
o i r o oljcio a s1.1izq&rda.
I
que este oiijcio no ticiie iiiiigiiiin relacióii con
Desarrollo del sisieina
F
~,~8,,i(,IlO
Lns coorrIertnrlns de In derechn vaii a inodificarse eii su coordeiiada en x , estas coordeiiadas
se ohticiicii clc liis coordeiiadas de arriba, a estas se les va a siiniar en x 1111 espacio horizontal
(SI'CI 1011) csic espacio es lo que separa un nivel de otro.
I,a iiisei-cióii'dc este ob,jeto se eiicueiitra ilustrado eii la figura 5.9
ArribaX=O
Arril>aY=O
I
DerecliaX=ArribaX+ SPCIiOR
DereciiaY=O
Al>njoX=ArrihaX
AhrjoY=ArribnY+SPCnMP+DATOS
"
'
\
I
Iiigiira 5.9 Coordenadas del primer objeto del disefin.
5.1.2.2 Uh¡c:ic¡$ii (Ir IIII ol),jcto cii In pnnialln dcspii6s (Ir 1111 ol7,jcto nctivo
ve% qpc sc liii iiiscriiicl~icI priiiicr oh,jeio del discíio. I:is deiii5s posicioiics van n
oriviiiwsc (IC iilgiiii:i iii:iiici-ii (ICcslc priiiicr ohjclo. Aliorii hicii c~i:iii(I(isc iiiscrI:i olro oi>,jclo. sc
rc.alizi el :iiihlisis! (IC la siguiciite iiiaiiera: priiiierciiiiciite. sc aiiiiliixi el objcio iiiseriado. para
c ~ ~ i l l ~ ~ r osih :CSIiI
l r iicciilii coI.I.csp(IIl<lc :1 I i l S lcglils (IC ~"'"'lilccióil (IC l i l g ~ l l l l h l i c ~S ,i l l 0 cxistc
error' ciiioiiccs sc'13iiaIi7.:i cui1 es el elciiieiito que lo aiiiecede para obiener las coordenadas del
ohjcio qiie se lia iiiscrtiiclo, si el ob.jeio aiiierior correspoiitle ii iiii objeto activo. es decir, que el
ohjcio iiisci-iarlo foriiic parte (le uti iiiievo nivel, eiiioiices las coortlenadas de la izquierda del
oljcio vati :iesiar dadas por las coortleiiadas de arriba del objeto aiiierior, esia represeiiiación se
.I
iliisira el1 In ligiii-a 5 . 1 0 illcis0 a.
l1ii:t
IAS coordciiadas dc arriba del ohjeto iiiscrtatlo s e r i i i las iiiisiiias qiie las cooi.dcii:idas de In
(IcrccIi:i (IcI ohjc.io aiiicrior. solaiiiciiie que a la coortleiiada eii J' del o i j e i o insertado se le s u i i i a r i
iiii csjiiicio (SPCciiircBMI'S)~ para que el objeto iio quede Iiasia arriba de la pantalla (figura 5.10
i l l C i S 0 17).
61
Desarrollo del sisteiiia
cnpíllilo 5
ll
I
I ' i K i i w 5. IO (:I) MiÍcsti-;i l a «I>tencihii<IC las ciirirdciiadas (ICla izqiiiettln (IC
wi ol,jcio iiiscrtado dcspués de
objcio aciivo, (h) Muestra la oliteiicihn de las coordenadas de arriba del mismo ohieto.
1111
dereclia del ohjeto. se ohtieiieii de las coordeiiadas (x.y) de
Las coordeiiadas de abajo soil las iiiisiiias que las coordenadas de arriba,
solaiiieiiic qiic c i i la coordeiiada eii y se le va a siiniai- el espacio que ocupa el hifriiap. Las
coordciiiidas dc Iaitlereclia del objeto vaii a ser (O,O), ya que este ob.jeio (el de la figura 5.1 1) que
se C S I ~iiiiiilizaiido es uii oh.jcio pasivo
I.as coor<lc¡i;idas dc ahajo y
ai-riha del i i i i s i i i o objeto.
IiiEiirn 5 . I I Muestra la obtencihii de las coordciia<lasahajo y
dcreclia de uti ohjefo iiiseriado.
5.1.2.3 Ubicacióii d e iin objeto en la pantalla despiiés de un o13,jeto pasivo
1Iii:i vez :iiializad« u n ohjeto insertado e n tin nivel abstracto ineiioi-, se analizará la
iiiscrcihii de in1 objeto ciiaiido éste se encuentre en e l iiiisiiio iiivel de abstracción (figura 5.12),
cii cstc caso tlespiics d e aiialimr que e l objeto elegido pira SII iiisercióti corresponda a l a
grniii,iiica posic.ioiial explicada aiiteriorinente. Las coordeiiadas de l a izquierda del objeto
iiiscrtatlo scrzíii las inisiiias que las coordenadas de la izquierda del ohjeto anterior y las
cnordciiadas <le &ha serán las coordenadas de abajo del objeto anterior, las coordenadas de
11
;iba.jo y clereclia del ol>jcto iiiscrtado serán calculadas coni« las coordenadas de los objetos
. 11
cxplic:i<los í i i i l c r i ~ ~ r i i i c i i l c .
I:
,
-
A h a jn( x ,y)
Izquiercla(x,y)
I
A I? a jn( x,y)
I:igiiin 5 . 12 Miiesira In inscrcióii (ICi i t i ol),jcin
cn cI iiiisino iiivcl dc ahstracciiiii.
5.1.2.4 Ubicacibri tlc
itii
ohjeto cn la pantalla tlespiik del objeto FIN
/\lior;i se i i i o s t r w i cóiiio se realiza el a n d i s i s de la expresión ciiaiido se iiiserta uii objeto
cI c u d cs ;iiiicccdid» p o r el oli,jeto FIN? el objeto qiic ser6 iiiscrlndo dche pertenecer a u t i nivel
iii:iynr de ;ibstracc.ióii. Se dche recordar que cada vez que iiii ob,jcto se desea iiisertar eti el diseño
pi-iiiicrc sc rcali7rl u n aii5lisis para ver s i el ob.jeto se encuentra siiitácticaiiiente correcto; para
ciitc~i<Icr
iiic,joi- esto. cii la sigiiiciitc sección se tiiosirrirá u n e,jeiiiplo dc i i n a expresióii incorrecta.
Rcioiiiaiido lo rcrei-ente al análisis, verenios la .iiisercií,ii del nl>jeto de lectura (figura
5 . 1 7 ) . qiic csih rcpresciit;ido por l a figura del libro. L a coortleiiatla de ari-iba en .Y de este oh.jeio
csi:ii.:i <l;id:i por I:is coortleiiati:i de la izquierda en I del ob,jeio ;interior. y l a coordeiiada de arrilia
e i i .I' est5 d iid ;i phi- las coordciiada de abajo cn y del oI?jc~oaiitcrior y se le va a aciicionar iiii
t
peqiiciio cspacio liara scparar a Ins oljjetos vel-iicaliiieiite.
'I
I
.
Capiiiilo 5
.
,I
.
.
Desarrollo del sisieltia
Vipira 5.13 Mucsira la obiencih de las coordenadas <ICarriha
tic
iiiscriado e i i u11nivcl de absirnccióti inayor.
iiii oi>jc~o
I.,ai cooi-denadas dc la iiquiérda del objeio iiisei-lado esthii (ladas por las coordciiadas de
l a izqiiicrda dcl «I),jeio qiie se cncnentra arriba del objeto inseriado (figiira 5.14).
ii
I tiicriiainentc ésto se lleva a cabo recorriendo la lista dobleniente ligada que alinacena la
infiirniacihi (IC los olijctos Iiasia cI final, como c i peníiltiiiio oh.jeto se trata de 1111 ohjeio fin
cnionccs sc coloca pti apiiniadoi. :I ese nodo y se recorrc la lisia :ili«i.a [le ati-hs Iiacia adelante,
liasta ciicoiiirar el nodo al ciial corrcspoiidc el nodo fin, para este ejcinplo ese nodo representa a
1111 iJ. sc coloca oiro apiiniador eii ese nodo para obtener las coordenadas qiie interesan. Las
coordciia<ias de aii$j«
y derecha se obtienen de la iiiisnia fnriiia que las coordenadas de los
Ir
i>\i.jclosc s p l i w c l w : ~ i i l c ~ i ~ ~ i - ~ i l c ~ i t c .
r
l4g11I:iS.14 Miicsir:i In olmxcióii <ICIns coordcnn<l:is (ICI:I kqi! rdn
dc u11 oiijcio iiiscrtado CII 1111nivel de al>siraccióii iiiayor
70
Capiliilo 5
.
.
.
Desarrollo del sistema
.
. ....
5.1.2.5 Ubicación del objeto activo: hacer-niientras <condición> y hacer
<condición> r1iientr:ls >
IT1 an5lisis de las iiistruccioiics: Iiacer mientras <condi&ín> y Iiacer <iii.r/i.ircciones>
niientras <condiciím> , es direrente a las instrucciones que,se han estado analizando y esto se
debe a In inserción qbe tienen estas instrucciones cuando son elegidas por el usuario?cuando esto
S I I C C . ~ las
~
coortlcii:idns <IC
arriha tlcl oljcto van a ser tladas por Ins coordctindas de abajo dcl
ol+to aiitcrior, i ~ t l c i i i i i scc vil i t iidicioiinr e l cspicio c l ~ cocupit el I>itiiiap (SI'CUMI'), y t i t i
cspacio Iiorizontal (SKI-IOR). Aunque este ohjeto ya sea iifhile o d o i i h i / e >pertenece al con,iitnto
(ICiiistruccioiics dc lii runci6ii (IXIKI este c.jciiiplo figura 5.15), se va a encontrar cii u n a posición
1111 pot<> ii1;is
ii~icl:llllc qilc h i s ~ l c l l l ~ ~ll7,jcl~ls,
ís
cslo sc
< I C h C :I
la
lll:lilcKl <IC C ó i i l O
iii:iiic,ia Iii
notación dc Wariiier'estas dos iiistriicciones.
1:igiii.a 5.15 Miicsirn la (hiciicióii de Ins coordenadas dc nrriha tlcl olijeio iihilc
'!I
I/
Coiiio se aiiiilizó anleriornicntc las coordeiiaclas de arriba de estos dos ob,jctos (ivhile o
11
~(JII,/T;/(!).
sc obiiciicii <IC
difcrciiie inaiicra que las coordenadas de los deiiiis objetos activos qiie
I/
se liaii csintli, aiinliz$iitlo, por Io tanto cuando un objeto es insertado después que es finalimdo el
iiivcl tlc ;ihsiraccióii' qiic coiiipreiitlc la iiistriicción de un i i h i l e o c/o i,ihik, las coordeiiadas de
csic ( i h j c ~ (se
i oliiiciicti de iii siguiciiic niaiicrii: sc analiza c i pciiíiltiiiio ohjcio. si éste corrcspotidc
al oli.jcio/irt (figura 5.16). entonces se coloca un apuntador a este objeto y se recorre la lista de
ol?jctos de atris liacia adelante. para encontrar c ~ i i es
l el objeto activo al cual 'corresponde este
oijcto,firr. si se i r a t i dc u n ii.hi/e o c/oiiihi/e (apuntador 2). entonces se aiiaiiza curii es el ob,jcto
;iillci.ioi.. q l i c IiiIcdc
a)
1111
11) C I
c)
Sclr
ol),jcto [,asivo.<IiIei-eiiic al oiijeio fin:
(ll>.jctcliil.
1111 clll~jcto:lcli\m
71
Desarrollo del sisleina
<al!iiiilo 5
""iinirdor
n
1:ijyr:i 5. i í i Miicsira la obtciici6ii de las courdeiiadas de xrilxi c i7,quierda del objeto
scad.
ol)jeto pmiiw rli/L.r.cit/e nl nhjciofirt: en cstc caso las coordenadas del ob,jeto insertado son
c:ilculsdas de I;i iiiisiiiii iiiaiici-a que en las figuras 5.12 y 5.15.
o)
irit
cl ol>jefojirt:ciiaiido se trate del objetojiit que antecedai al objeto i i h i l e o u'oiihile (apuntador
3. dc la figiira 5.10)' se debe seguir recorriendo la lisia que contiene la iiiforinación de los
oi+teis, para enkontrar c l objeto al cual correspoiide e i j i n , para este ejemplo se tl'ata del objeto
/i)
'1
qiic rcpi'cseiita ii .I
In iiisiriiccitiii ifl:ipiiiiíador 4), entonces se coloca titi aptintador y las coordenadas de la izqiiierda
'1
del o i j c i o iiiscrtaclo, son las iiiisinas que las coordenadas elc la izquiei-da del objeio señalado por
11
e l apiiiiíador i i h i i c r o 4. del olijeto seiialado por el apuntador tiúniero 3 se toinan las coordenadas
I)
(IC tii-rilia CII SII c o o r ~ l ~ ~ iCII
i i ~.Yl i(Icl
i oi?jcío iiiscrtado, I:IScorit(Iciixl:is (IC :irrilxi cn y (Icl oliicio
iiiscrI:idn soli id niisiiias que ins coordciiadas d e abajo en y de! objeto anterior a éi (ajiliniacior 1).
l : l l :llgilll:ls ( I C L I S l~gilr:ls(5. IO y 5 . 17) sc Jli-cscIlI:III ~ 1 I I I l I I l Ss ~ i s p c i l s i \ ~c~l l lsl e 1111 S í l l l I l O l l l
a c i i v n y cI síiiihoio liii. éstos iiidicaii que piieden exisíir it iiistrLicciones en esie espacio.
»/!jeto ncliiw: ciiaiido se trate d e tin objeto activo. el que anteceda al objeto 1.1h;le o
~ l o w l i i í e(,cii
~ esíc c,jeiiiplo iiiosirado en l a figura 4.35, el sínibolo que antecede al ishile es el que
rcprcsciií:i ii la iiisíi-iicciiíii dcl i j qiic sc ciicueiitra señalatlo por cI apiiniador 3 , en la figura 5.1 1 .
i i i c i s o I>). las cnorclcii:i(las de l a izqiiicrda del objeio iiiseri:iclo soil las niisnias que las
conrdcnxiiis de la izqiiiei-da del objeto anterior a él (figura 5.17 inciso a), l a coordenada de arriba
cii .v c.si6 d x l a 1inr In cooi-tleiiada de la dei-echa del objeto activo que antecede al sínibolo while y
i:i cnordcii;idii de ariiha e n .y esii dada por l a cooi-deiiada d e ahíijo cii y del sínibolo anterior al
s í i i i h r i l o iiisei-tado (íigiira 5.17 inciso b).
c)
uit
72
Desarrollo del sistema
('apiiiilo 5
......
~
~.
.........
. . . .
~
~
.
.....,. . . . .....
np!ininrl"r 2
I
Iigiirn 5.17 (a) Miiesrra la olitcricióii 1Ic Ins coordeiindas (IC la izquicrcln del olijcio scaiil
(b) Muestra la obrencióii de lay coordenadas de arriba del objeto.
5.1.3 Iiiscrcián de objetos
hi este pinito se Iiahlará de l a inserción (le los oijeios, pero desde e l punto de vista de las
c<i»rilcna<las qiie el usuario el+ para insertar un objeto. 13 análisis de las expresiones
grniiiaiicaics foriiiadas son evaiiiadas de la niisnia niaiiera que cuando se lleva a cabo e i
dcsarrollo de 1111 diseño (visto eii la sección anterior).
Sc clcbc I i i c e r notar, que el diseño se va coiisíruyeiido de arriba hacia abajo y de dereclia a
¡qii¡crd;i. A dili.rciici:i de la opcióii de insci-lar qiic cxisic en cI iiiciiii, con l a ciial sc piiedc Iiaccr
1iiscri:ir i i n o l j c i o e11cI Iiig!ar qiic iiitliquc c l iisiiai-io, siciiiprc y ciiaiitlo scii cori-ccta l a cxprcsicíii.
I'ai.;i poder entender inejor esto se toinari coiiio ejemplo el diseño de la figura 5.17, en
(0)
c!i?jeio acíivo is
es terniitiacio ciiaticio se elige el
s í i i i l x \ l o . f i r i (MOM). por Io tanto ctiaiiclo el usiiai-io elija otro objeto, éste foriiiara parte del objetci
x i i v o -A. i'or Io iaiito si el iisiiario desea insertar un objeto en el conjunto de instrucciones que
íiirnmi cl objcio aciivo tlcheri elegii- la opción de insertar que se presenta en el menú principal
del sistciiia CieiiCod. Noíaiido que sólo se piiede hacer la inserción de tin objeto a la vez.
tlotitic c~ coii,iiinio t ~ einctriicciones del
La iriscrcitln de r i n oljeto, entre dos objetos qiie ya Iinii sido insertados anteriormente se
dclw rcalixir (le la siguiente niaiiera:
13
Desarrollo del sistema
Capitrilo 5
1 , ¡:I iisiiai-io tiene que elegir del menú principal la opción de iiiseriar.
2. Señalar con el iiio1.m y pi-esionar el hotóii dereclio el lugar dónde se desea liacer la inserción
3. I’or últiiiio se &be elegir de la paleta de botones la iiistriiccióii que desea insertar.
U n a vez que el usuario realiza los ires pasos qiie se iiieiicionati arriba, internamente el
sistciiia inserta el nodo (IC la iiisii-iiccióii seleccionada por el usuario. pero antes de hacer es«.
vcriíiica las co«rtlena<las señaladas por el rr1ou.w. para realizar una coinparación ile las
coortlcnatlas ohiciiidas, coiiti-a las coordenadas de los deiii8s objetos, ésto se hace analizando las
coorclciiiidas de tin iiodo y del sigiiientc para verificar si las coordenadas ohtenidas por el i w m s e
sc enciicnIi-:ni enlre cstos dos nodos (ver figura 5.1 8) y poder Iiacer la inserciciti del nodo con la
iiistriiccih sc1cccioii;ida. 1 i i caso de que la coordenada señalada poi- el i m i m fuera inválida, se
iiirlii(1ii mi ineimje de error al iisuario.
Figura 5.18 Coiiiparacióii de las coordeiiadas ohtenidas por el nioiise
contra los ohieios qiie integran el diseíio
11ii;i VCY, qiic sic l i i i iiiscrta(1o cI nodo en lii lisia, sc re;iliz:i e l :in:ílisis para vcr si lo
inserción de este niievo oh.jcto cumple con las reglas graniaticales, de las cuales se Iia esiado
Ii;ihlaiidn. La iibicncióii de este objeto en el diseño sólo se verá reíle.&&
Iiasta qiie se realice el
ajiistc de las c«ortlciiadas (le todos los deniis objetos que coiiiponeii el diseño, tomando cotno
liase cI ob,jcio activo que antecede al nuevo &jeto insertado (las coordenadas se obtienen de la
inisnia niaiicra (pic cn In sección anterior).
¡.,a iiiscrciciii se puede llevar a calm entre los iiiveles de abstraccicíii que existan eii cl
discfin, cii las siguiciites secciones se Iiahlará de cómo analiza el sistema GenCod, si tina
coordcii;id;i cs vAlida para realizar la inserción de tin oh.jeio eii esa posicióri.
Desarrollo del rkietnn
Cnpiiulo 5
5.1 3 . 1 Iiiserci,Ón entre niveles (de niayor a menor abstracción)
Este tipo de inserción se lleva a cabo cuando se desea iiisertar después de un objeto
activo. ya que el oljeio a iiisci-tar forinarri p a r k del coiijiiiiio de ohjelos que perteriecen a ese
ohjcto iictivo.
Aiiiiqiie c i i la ligiira 5. I9 se ve l3c¡liiienic cii tloi.~<lcse
desea Iiacei. la iiiserciún, ti; se debe perder de vista que
todos los objetos gráficos (y su posición en el espacio)
inostrados en el diseño se eiicueiitran aliiiacenados en iiiia
lisia, poi- lo tanto se iieiie que Iiacer u n recorrido de estos
ohjeios para saher cii d6iidc se dehe insertar cl objeto.
Figiira 5.19 Iiivxcióii de
1111 nhjeio
deyiiiés dc una luiicióii
Cuando se eligen las coordenadas en el área de desarrollo del diseño para realizar la
iiiserciim, sc dehe analizar si éstas son válidas, es decir se debe veri.ficar que eri las coorderiacias
elcgitlas poI cI iisiiiii-io pircdc iiisei-talse iiii oijeto de ese tipo, esio se realirra Iiaciciido las
siguieiiies coiiipraciories.
(S1ir.x >= XNcxi && Ctir.x <= XNexi+SPC:BMP)&&
(Ciii-.y >= YNext ’&& Ci1r.y .c= YNexii-SPCBMP)I/
(Ciir.y < YNcxt && C~1r.y> Nodohit->ArrihaY-I- SPCBMI’))
~l~lild~:
(,‘llr.X = ~ O l I ~ S l X l l l d
il clil ~ O O ~ t k ! i l X ~CI1
i l -Y CIiiC CI I I S l l i l l ~ ( 1Cligih p>iKi~G11¡7,iI~
¡:I¡ i i S C ~ C i o i i .
<iiir.y = corrcspoiidc n la
coordeiiada eii qiie el iisiiaIi» eligi6 para rcalizar la iiisercibii
XNcst- corresponde a la coordenada eii x del iiodo siguiente.
Y Ncsi= correspoiidc a la coordenada en del nodo sigiiieiiie.
SI’C13h4l’ = cori-espoiide al espacio eii pixeles qiie ocupa titi biiiiiap.
JJ
JJ
1% la figura 5.19 se iiiiiestfii la inserción de t i t i ob,jeto deipiiés de la declaraci0n de tina
liiiicitiii y mitts de iiii objeto pasivo (scaiií). eii este caso específico la inset-ciúii se lleva a calio
c o i l t i t i chjcic qtic sc ciiciiciiir:i eii tin nivel de iihstracci6ii i n k grande qiie el o1,jeio siguiente.
,
Capikilil 5
»esarrollo del sisteina
.I
En la figura 5.20 se iiiiistia la comparación de las coordenadas seiiaiadas por el riioim
(CiirX). las cuales se deben encontrar entre las coordenadas x y x ni8s el espacio que ocupa el
hitiimp (SI’CBMI’) del elenieiito siguiente al que se eiicuoiitra, en el nivel de abstracción i n a s
gr:nl(lc.
fiigitrn 5.20 Paiiialla de coinparación de las coiirdeiiadas,
par? l a inscrcióii (IC1111 ol).icin.
AdcriiAs de cuiiiplirse la coniparaci6n anterior debe cuiiiplii-se la siguiente coinparación:
/ I K I J . N C en y deben estar entre las coordenadas de y y las
coortlenatlas de y+SfCflMP. pero puede sei- que ciiry esté hci-a de las coordenadas de YNexi,
y i;iiiibiEii sc coiisidcra win coordenada correcta. Ver figura 5.21.
Ins cocirdciiadas sefinladas por el
YNcri
I’igiira 5.21 Pantalla de coinparación de Ins cnordciia(las
para la iiisercióii de tin oi+m.
76
11
.
i/
.
.
CapiililLi 5
. .
.
Ileiari-ollo del sisieiiia
5.1.3.2 Inserci'hn ciitre niveles (de menor a mayor abstracción)
I A i i i c e r c i h eiilre iiii iiivel de abstracción iiieiior a otro de iiiayoi- absiraccióii (figiira
5.22) se preseiita i r u a i i d o In i i i s e r c i ó i i de un objeto se desea Iiacer después d e l oh,jelo '{tie
rcprcsciitn cI fiii de iiiin i i i s i r u c c i ó i i de u i i objeto a c i i v o (WU).
IXgiira 5.22 Iiiscrcióii (IC iiii olJ.jclo.
dcspués del objcio de leriniiincih ilc uiia iniiriiccióii.
!I
X .I SI'CU M 1'
Y~+SPC"MP
.-
-"
A[
x
$>f.
CWY
CiirX
YNcrl
0".
i!
SNexi
XNerl~l~SIY'IIM
I.
+
CilrX
Nirrll
li
Nivel2
Nivcli
_-
77
~.~;lpiilll~l
5
Desarrollo del sistema
ieticr e.ii cuenta que cuaiido se desea hacer la itiserción después del objeto fin de
It11 IiivcI. se analiza que e s ~ efin no represente el final de una condicional conipuesta, es decir no
sc podr5 llevar a cabo la inserción entre u n f y (in else, porque representa un error, aunque las
coortlei1ad:is dc inserción estén correctas. lo niisino ocurre cuaiido se tiene la iiistruccióti qne
rcprcsciii:i 1111 c»iidicional iii<iltiplc.
Se debe
5.1.3.3 Iiisercióii eiitre
)jetos (en el inisino iiivel)
Este tipo de iiisercióii se lleva a cabo cuando se desea
insertar entre dos ohjetos pasivos. los cuales van a encontrarse
en el inisino nivel
Figiira 5.24 Pantalla de In posicióii elegida por el
iiiserción <IC un objeto.
Nivcll
1noii.w
para realizar la
I t i cstc lipa de iiisercióii el aiiálisis de las coordenadas es iiiás siiiiple (figura 5.25).
Snlniiieiiie se ticiic qiic verificar que e l olijeto actitnl (scaiio, esfá represeníado por u n objeto
p x i w y el nl+iii sigiiietiic tatnhiéii.
CurX
A
x ISI’CBMP
CiirY
I
l i g i i i a 5.25 Paiiinllii de ciiiiipnracihti ile las cuorileiinilas eiitre
dos oh.ietoi qoe se encuentran en el
~ i i i s t i i onivel.
78
c:l~~iilll~!
5
. .
. .
Desarrollo del sisiciira
por Io taiito las coordciiatlas seleccionadas por el tisilario en .Y dcbeii eiicoiiírarsc eiitrc
las coordciiadas eii .Y y .u+SPCBMP del ohjeio analizado y las coordenadas en
debeii
ciicoiitrarsc ciitre l a coordeiiada d e y+SI'CBMI' del ol3,jcto aiiali&lo y la coordenada de y del
lll>,ictosigiiicntc.
JJ
i!iia vez que se Iia coiiiprohado que las coordenadas dadas poi- el usuario ciiniplcii coil
csiiis iesiriccioiies se piiedc llevar a cabo la iiisercióii dc tiii objeto, cieinpre y cuando &te sea
v5l ¡<I<>.
5.1 3 . 4 Iiisercióii entre niveles (de inayor a ineiior abstracción) cuando se
'I
<Icsca Ii:icer la iiisercióii antes del ohjrio mientras condici«'ii o
Ii a c e I-- in i e ii t r as coi~dicián
Este tipo de inserción se lleva a cabo ciiaiido se desea insertar aiites del objeto que
ii I:i iiisirwxiOt? M117N7XAS cni&Ydn
I) I lA(:l3< MIENTRAS (coiitlicirjii) (í¡giiI:i
5.26). ilchitln a <pic cuniido se iiiscria cualquiers de estas dos iiistriiccioiies se crea u n nivel
viiitriil (iiivcl 3 de la figura 5.26) que en realidad no es posible (pie vayaii objetos en ese nivel,
segíiii la i i o i a c i h inodiíicada de Wariiier, pero el disefiador piidiera ser que desee hacer iiiia
iiiscrciim de iiii oh-jeto c i i cse espacio' entonces la coniparacióii de las coordenadas, se realiza de
rclitcwiki
l a sigiiicrilc iiiariera:
I
70
Desarrollo del sisleiiia
iapillilo 5
I>) para
a n i i l i m r si la coordenada elegida por el usuario pai-a realizar l a inserción es válida se
sigtw cI misino procedimiento que la inserción entre niveles. El aidisis de las coordenadas se
encucniI:) iliisttado en la figlira 5.27.
1
I
J
XN X L
Iiigiirs 5.27 Pantalla de comparacióii de las coordenadas
de la iiisercióii entre niveles.
5.1.3.5 Ubicación dc los objetos dcspiiés de la inserción
IJiia vez analizada la manera de cómo se lleva a calm la inserción internaiiiente:en este
punto se verá como afecla la iiisercih de un objeto activo en el diseño. En ¡a íigura 5.28 se
i l t i s t m i i n diseño ya terniiiiado. esto se puede ver porqiie la fuiici6n ciieiita con el sírnbolo
dc tcriiiiii:icihi cn el nivcl dos. 1.k cslc cjciiiplo sc iiiiicsir;i I:I iiiscrcihi de n n ol>,je(o;ictivn
( f / ) , <IC1I11.0 del tliscñc1.
I
N i v eI I
Figirrn 5.28 Iiiserci6n de
Nivel2
itit
ohjcro iictivo detiiro <IC
mi diseño
Capiililo 5
Desarrollo del sisfeiiia
I!iia vez que se i i a n verificado iaS coordenacias de la iiisercii,ii y se iia visto que esie
objeto piietle ir en 11esa posición, se realiza la actualizacióri de las coordenadas (el GenCod lo
realiza autoiiiAiicaiiienie) con el nuevo objeto ya irisertado. En la íigiira 5.29 se muestra el
diseño actualizado después que se Iia realizado la ins.erci6ri del objeto activo (!o, en donde se
piicdc iiot;ir qiic sci 1i;i aiiiiieiitado u n nuevo nivel y todos 10s objetos Iiasia el fin del nivel
pcrtcncccii al IIIICVO olijcio ;iciivo iiiscri;ido, d;iIido coino i~esiili;i&i uti diseño inconciuso
Iioi-cluc el objeto que represeiita la declaracióii de l a furicih no cuenta con su objeto de
teriiiinaci6ri.
I1
Fik~ira
5.29 Uhicacióii del olijeio aclivo ya iiiserlado eii el diseño
5.1.4 Ajuste de.los
objetos en el diseño
/I
I:¡
;ijtistc de los ob.jeios consiste en ordenar los ob.jetos activos (declaracióii de m a
ftitici(1ii. if cctse, c/.tr.,/iv' etc.). que se eiiciientreii deiitro del diseño deiallado confornie se vaya
decal.t«ll;llido cl disc.ho
Cnpiiiilo 5
.,. .
.
.
Desai-iollo dcl sisieiiia
I1
I'or cjciiiplo cii la ligtira 5.30 se eiiciieiitraii.señalados-pcir L i i i a flecha dos objetos activos.
Siis coordeiiiidac en y dcpeiiden del iiúrnero de objetos que Totiiieii parte de ellos.
511
por c,jciiiplo el oli.jcio activo 2 (coiidicioiial simple ifi, se eiiciieiiira colocado al centro (eii
It
coordeiinda eii J J ; ) de Ins ciiico objetos que perteiieceii a el:
1?1ti,jiisie de liis coordeiiadas e n y, ?e los objeios activos se realiza iiiteriiaiiieiile de la
sigiiiciilc tll:lllcra (vcr lig"'" 5.3 1 ):
a) Se irccnrrc la I¡& (IC los objetos y cada vez que se eiiclieiiire uii objeto activo, se crea iiiíiiodo
ieiiip»i.al. el ciid v a ii estar iiiicializado coli las coordeiiadas de abajo del objeto activo.
I>) SC cinc cI iiodri ieiiiporal
y el objcto activo ill ciiai
est$ asociiido a
través de iiii apuiilntlor.
r) (:xh vc7, qrie se ciiciiciiirc t i t i síiiiholo (le teriniiiacih de iiii coii.iuiito de iiistruccioiies de titi
aciivo, se p0sicioiia uii api~ii~acior
al final de la listti [IC iiodos teinporaies (apiiiiiaclor 2 de
la rig"r" 5.31).
«t?jCiO
(1) Se calciilaii las coordciiadas del objeto activo, comparando las coorderiadas de nhqjo del
ohjclo (le lcriii¡iiac¡¿)i1 (apiintador I de la figura 5.3 I), con las coordeiiadas del nodo ieiiiporal
I/
(:ipiiiiindor 2). para dcierniiiiai- las coordeiiadas (lei obieio acíivo, Csias se colncaii eti el cariipo
del o l j c i o ,4r.i.ihrrA.lr>dIfly Ai.rihnA.loúi/Y.
e ) 13 nodo de la lista ieiiipnriil se cliriiiiia.
82
...
~.'~l~>
5 ~llllll
Ilesarrolln del sisietna
.. . ..,
5.1.4.1 Esti-iiciiii-a t ~ cdatos <I& la lisia teiiipoi-ai (que realiza
las cooi-deiiatlas de los objetos activos)
CI
ajiiste
(IC
ccíriicíiira de datos quc iitiliza la 1ist.a temporal que sirve para calcular las coodenadas
de :1Colllo(li~de ¡os oli;cí»s ~ i c t i v o sel1 e l discño, se cIlclIcIllIa illlslKl~l:l CI1 In fig1ii.a 5.32.
1.8
f
dot
IltlCiB C I
sigilicnle
1
IGgiii'ii 5.32 Modclo coricepiiial dc los nodos ile la lisia !einpnral que sirve para realizar
e l a+te de las coor<leriadasde objetos aciivos del diseño
I,a cstriictiira de los nodos de la lista iiiosirada e i i la iigiira anterior es la siguiente:
5.1.5
Eliiiiiiiacióii
11
de ol)jcíos
,
...,
,
,
..,
.
_..__........l.___.l..__...
"......__..
.......I..."
""
....
1:iiiii.a 5.33 Pmiialln qiic iiiiicslrn In cliiiiiiincióii de olijek)s eii el sistcnia FciiCoil.
iJna vez colocado e l vidco inverso se recorre la lista de los
"
I
objetos aiiali7zindo sus
coor(lciintlas para sillier si éstas sc cnctientiaii dentro del bloqiie inarcado' si es así se le pone l m a
niarca a l nodo del ohjcio y tlcpeiidieiido del tipo de i i i s t r i t c c i h del que se trate va a afectar a los
t l c n i i s ol?.jctosl.
1. íMjc/os pn.ti+s: i'ii c:iso <IC que la eiiiiiiiiaciiiii se trate (le iiii oi+io
iili,jcíos no iiiiplicaii a oiros cilijrtos siinpiciiieiitc son eliminados.
pasivo. coiiio este tipo
CIC
I!
'1
2. O/lje/m nc/iiyu:,/iw,
el.tc. d o i i ~ l d r ,iih;/e
I n casoidc qiic se tratc de cstas iiislriicc.ioiies se tiene que d c j i r i i i i apiintador en esa
p~lsicicíii(IC la I i S I i l y rCcorI.cl.lil Ililcia a<lcl:iiilc piirci anali7,ilr si csi1 iiisli.Iiccitii1 tic11c f i i i (IC I l i V C I .
I b l CilSO tlc qiic tciiga. se V i l iI C l i l l l i l i i i r t ~ l i i i 0la insti.licci«n c O l l i « SI1 Iiii <IC I l i V C I .
3. Colrr/iciorlnl (if):
Si la iiisiroccióii qiie se tlcsea eliiiiiiiar es tin condicional siinple, entonces solaine.iiie SE
cliiniiia la instrucciiiii del f y se sigue analizando para ver s i ésta ciietita con sii fin d e nivel para
cliiiiiiiarsc iaiiibiéii. 131 caso de ser condicional coiiipuestao se tiene qiie eliininar también e l
oljcio dc clse y si1 f i i i de nivel (si lo tieiie) todos los demás objetos que se encuentren dentro de
c s t x inslriicciniies p x a r i i i n forniar parte del objeto activo anterior. 1Jn ejeiiiplo de esto se
ciiciicnira cti la ,figura 5.34,en doiitk al eliiiiiiiar el objeto activo il; se realiza aiitotiiáticaiiietite la
cliiiiiii:icii,ii dcl:oli,jcto fiii dcl i / y se c l i i i i i n a el ob,jeto else con s u fin respectivo .
/i
//
8.1
Cnpitiilo 5
. .
.
i'
Ilesarrolli>del sistema
. . .
.
A
Mdl
Iiigiirn 5.34 Paiiialla qiie iiiiicsira l a eliiiiinacióii del ohjein i f y
l a iihicncihi de In3 objetos tlcspiiés de l a cliiiiinacióii.
4. Fin de in e j e c i i c i h de w i n iiisírirccih:
Ciiaiido se dcsea Iiacer l a cliiiiiiiacióii del ob-jeto que represenin la terniiriaciUii de m a
i i i s i r t i c c i i m (para este ejeiiiplo la t e r n i i i i a c i ó i i de l a iiistrucciUi1
se aiializa que 110 exista e l
11
o l j c t o q i i c rcprcseiiia a l a insiriiccióii else eiiseguida d e l ob,jet.o tie terniiiiacióii. s i es así, entonces
i;iiiii>ieii cicix eiiniiiiarse. jiiiiio con su ieriiiiiiacióii de la iiisiruccióii.
la figiira 5 . 3 5 se ilustra
r s i c c.jciiiplo. cn d o i i d c piicdc vcrsc cóino al eliiiiiiiar e l o l j e t o dc ieriiiiiiacióii, iainl>i&i es
cliiiiiii:ido cl objeto &e y los ol>.jeiosque periciiecíaii a él' pasati a Toi-iiiai. park de la iiisii-iiccióii
(/y c I objeio dc leriiiiiiacióii de la iiistriiccióii E / . S E va a ser l a ieriiiiiiaciiin de la instriiccióii if:
[o,
I
I
A
~~~
~
~~~
~~~
IiigiirR 5.35 la cliiiiiiincióii (IcI objeio fin' (ICiina insir&ciúii y la ubicación de los ohjeios
!j
dcspiits dc I:i eliiiiinación.
Ca~’i1iilo 5
..
Oesarrollo del sisfeina
. .
51.6 c;ciicr:ldoi- :liitoiil:itico dc código
‘I
Coiiio se Iia estndo tnencioiiaiido a lo largo (le esta tesis, el CieiiCod es una Iierraiiiieiita
vislial qiic pcrniiic crcar diseños deiallad«s. Iiiíeriiainciite el sisteiiia (GeriCod) nlnincena estos
diseños en tina cs~rtictrira(le datos(analizada en la sección 4.6), toda In iiirorinacióii alniacetiada
c i i esta cstriictiirii de tlatos. sirve paia gciicrm ~ i i i t o i i i ~ t i c ~ i i i i ccódigci
iit~
cstriictui-;ido cii c1
lciigu;l.je de prograiiiaciciii C.
I I sisteiiia CieiiCod valida In iiiforniacióii que es introducida por el diseñndnr al sistema,
aití6iriaías que titilizziii la gi-siii,itica del leiigiinje de prograiiiaci0ii C,
(sccciciii 5 . I ) a tr:ivCs de
eliiiiiii:iiido i i i i a íiicntc potciicial de error. Esto no s o l o nscgiira qiie e l codigo pi-odiicido sen
siiit;icticniiiciitc corrccto sino clue además corresponda a l diseño detallado.
Aunque éste iio es el objetivo principal de esta h i s , sí constitiiye iiii gran beneficio para
cI diceñador ya que la Iierraiiiienta sirve coino 1111piieiite eiitrc la fase tie diseño tictailado y la
frise (ICpi-uchasi(tigiira S.36), s i i i iener que pasar por la etapa de iinpiantación.
!I
I
S.1.6.1 Maiiqio de la estructura de datos para la generación (le código
1.n gcticfiici611 <IC ctitlign se realiza coli In iiikirtii;ici6i~coiiiciiitl;~CII las csii-~ici~iias
dc
tl;iios q11c ii1iliz:i cI ~icllcod,
IilS C l l a l e S liicroii explicatlas CI1 la scccióii 4.6.
:.
Capillilii 5
.
.,.
. .. .
I>esarrollo del sisieiiw
E1 código gciicraclo se almnceiia cii titi arcliivo de iexlo. el cual tieiie m a extciisitiii .C,
C S ~ Cc0digo se foriiia de la sigiiieiitc inancra:
+
cc colocaii iai. hibliotecas básicas.que utiliza e l lenguaje de programación C.
+
Sc cscrihcii todas las variables glohalcs que existeii eii el diseño detalladol esto se tiace
rccorriciido catla iiiio de los iiodos de la lista que alIiiaceiia la iiiforiiiacióii de las variables
glolinlcs (íigiira 5.37 iiúiiicro I).
+
sc cscrii)CIl ios Ilr(ll~liillos
(IC I(.I(I:W
rliiici~~~ics
c lcxisI:lll
~ ~c I ~~ (iisciío.
'I
it
Figlira k.37 Ordeii secllencial en e l c ~ i a se
l recorren las eslriiciiirai de c l a m en el GeiiC»<I
x7
¡I
t
fkspiiés de liaber escrito los pariinetros de una fuiicióii (si los tiene), se escriben las
v;iriahlcc localcs a In TiiiiciOii. recorriendo la lisia donde se encuentra la iiiforniacióii de estas
vtiri;ildcs (figura 5.37. número 5 ) . aquí al igual que Ins d e r i i h listas, cada uno de Ins iiodos
coiiticiic In iiifnriiiaciOii tlc la dcclaración de uiia varialdc.
t
Al icriiiiiiar de recorrer la lista de las variables locales a una fmcióii, se continua recorriendo
la lista <IC los .objetos, ciiipezaiido con el nodo siguiente al nodo que representa la declaración
[le una función (figura 5.37. iiíiiiicro 6). I~epeiidientlola instrucción que se irate, va a tener
wiíi lisia asociada de airibiitos. por ejemplo en cI caso de tin prin/f; puede conténer la
itiroriiinción dc tina variable y una cadena a desp~egai:.Cada vez que se encuentre un nodo
qtic represente la instrucción de fin de una instrucción (ñbU), se escribe en el archivo del
código fuente la llave " } " .
De esta iiianera se sigiie generando el código de cada una de las instrucciones que
rcprcsciite cada ;ino de los nodos, hasta íerriiinar de recorrer la lista de los olljetos. Después se
coiiiiiiiia con lnlsigiiiciite posicióii ~ C arreglo,
I
reaiizancio ~ n smisinos pasos para tncias las
I
posiciones dcl arreglo que coiitciigaii inforinación.
131 cOtligo,geiicrado se almacena en un archivo fiieiite, que puede ser visualimdo mediante
opciim dcl iiieiiíi i v r cklixo, tlc esta niaiiera se preseiiia el código en otra ventana, cii donde e l
iisiiario piictlc analizirlo y c,jcciii;irlo si lo dcsea. f31 la Tigui-a 5.38 se iiiiicstra lit geiieraciim dc
cídigo dcI tliscíio tlct;ilI:itlo (IC dos liiiicioiics.
1:i
..
CqiliIlC 5
Desarrollo del sisteiiia
5.1.7 Ai.qiiitectiira del archivo de diseño
131 sisieiiia GciiCod tiene la opcióii de salvar el diseñci detallado en iin disco. esto lo Iiace
aliiiaceiiaiido la inforniacióii conieiiida eii las estructuras de datos a un archivo(i7giira 4.39). L a
iiilorinacióii de las esli-ticturas de datos manejadas por el GeiiCod se convierleii en cadenas. las
CIIÍIICS
son inscriadac cii 1111 archivo de texto para su alniacenaniiciito, la extensión que tienen
los iircliivos qi!c illniilccnini el diseño es .dis.
I!
!!
Figiir:i 5.39 Alin:icciiniiiiclito del archi\~odc discfir) dctnllatlo dcI GciiCotl.
?
El i v d c i i
archivo de texto es el
sigiiiciiic ( v e r figiirn 5.40. c i i dniide los iioiiihres de Ins hloques niosirados. en esta figura
rcpresciiiaii Ihs palahras claves que i<leníi.ficaii el tipo de iiiforinacióii qiie se está
eii qiie es aliiiacenada l a iiiforniaci0ii del diseño en e l
iiliiiaccii;iii<ln):
(I)
Sc iiliiiiiceiiaii piiiiicrn los datos glohnlcs c i i e l ai-chivo. ~ a l c scomo e l iope del arreglo.
I?> I')cspiiEs n1iii:iccii:i la iiiriiriiiaciiiti de Ins variables gloh;iies. s i es que existeti eii e l disefin.
r ) Una vcz aliiiaceiiada In iiiforiiiación de las variables glohales, se vati a tener i? hlnqiies de
ii1fi)riiixiÍiii. e i i donde cada iiiio de los bloqiies va a coiiieiier la itiforiiiaci6ii de las fiiiicioiies
~ l c c l : ~ r ; i dctiiro
~ l ~ s dcl tli.scfio. Esi(>s hloqiies contienen la declaracií~iide las sat.iahlcs locales (si
csisicii). In declaración <IC
iodos Ins objetos qiie pertenecen a l a fiiiicióii de la cual se está
h;ihiaiid~>.asi,Coiiio la dcclar;iciÍ)ii de los arguiiieiitos o paráiiieiros <le Ins ohjeios.
RO
. .
Desai-rollo del sisteiiia
Capiliilo 5
(111 cjeinplo
1
tie esíe archivo se encuentra eii el anexo 1 al íiiial de esta tesis.
I L
I
-
val-iahlcs globalcs
Se almilcena la iiiforinnc.ión de l a
riiricihn
Figura 5.40 Arquireciura del archivo de disefio
5.1.8 I-Ierraniientas
del GeiiCod
I/
5.1.8. I Navegacicíri cri ti-e funciones
13 sisieiiiu GeiiCod iticluye uii sisteiiia de iiavegacióii etiii-e las'funciories, que periiiiie a
1111 u s t i a r k invocar a tiiia Ttiiicióii daiido tin clic con el inotise en el icono que represente las
1I:iiiiiidii ii esa íiiiicióii, de esta forma, el lisciario puede observar el cuerpo de la funcióii invocada
(Iigiira 5.41).
iiigi".a
5.41 Nnvegacióii eiilrc Ins liiricioiies de discfin.
Estc iiiccanisiiio de navegación es inia de las ventajas del uso de Ins MDI’s pala la
(,i.i~gr;”ll~’cioll
dc vcntaiias.
5.1.8.2 Ayiitlas por hipertexto
Esla Iici-raiiiieiita cuenta con in1 iiiecaiiisiiio (le ayuda poi. hipertexto, siinilar a la iitilizada
por Iiaqiictcs cniiierciales. IJiia vez que el usuario activa el hipertexto piiede navegar entre
i<iiiiccis qnc cxpiikaii el liiiicionaniieiito del ~ e i i ~ o d
~ c. í aayuda por iiipertexto pue& ser
c o i i i p w i d a cnii in1 n i a i i i i a l cic iisiiario de In hcrinniiciiia.
91
i>isei(o de un plan espeiiinctiial
Capílillll 6
I!
DíSEÑO DE UN PLAN EXPERíMENTAL
92
h s s u j c t w que se eligieron para este estudio fiieroii 5 desarrolladores de sistemas de
distiiiias i i i s i i t i i c i o i i e s (C.13.T.i.s 136, Universidad Auióiioiiia de Morelos, certidel, HE) y de
tiisiiiiin nivci ;ic:fciEiiiico (iiieciio. proresioiial y iiiaesiria). 171 csiiitiio o I i r i i c ~ i acoiisisiió eii iiieciir
el iicinpo rcqiicr/t~opai-a realizar i i n prograiiia de sonware coil la iierraiiiienta o sin ella, cie in1
fnriiia qiic c;i<la persoiia pudiese experirneiiiar las dos formas de desarrollo. Se decidió no hacer
uiia coiiipatnciim inidieiido e i i fornia Iiaralela el iicinpo de dos tlesarrolladores coli la utilización
de (:I Iierraiiiieiita o siii ella, debido a que esta forma de evaluación ocasionaría que el
cspcriinciiio esiuvicra afectado por demasiados factores externos. Por ejemplo, la experiencia de
los prograiii:idorcs en el leiigiia.jc C? la capacidad de abstracción, razonamiento lógico. y otros
r:ictoi-cs de l o s siijcios a cstudio. cte. Ida alternativa elegida h e pcriiiiiir que un sujeto desarrollara
[in progi-:iiiia s i i i l a Iicrraiiiiciita, para posterioi-iiiente desarrollar uii sisieina de igual coiiiplejidad
iiiilizaiidn cI GeiiCnd. Se pensó eii no utilizar el inisinn programa para mibas pruebas porque se
<I;irín cl caso clc quc al iitilizar la lierraniieiiia el sujeto ya estai-in cniidicioiiatlo por. el experiiiieiiio
prcvio.
13 Iiriiiicr paso pal-a evalmr el desenipeño del GerrCotl fitc dctermiriar laiilo las variables
dcpciitliciiics coiiio iiidcpeiidieiiics que afcctaii el cieseinpeño dcl sisieiiia.
:I) V A I I I A U I . X I~I~P1iNl)IENTE:
la dimensión tecnológica a inedir en el GenCod es el iienipo
(IC <Icsarr«llodc (in sisieiiia en relacióii al tamaño del iiiisiiio.
11)
VAICIAI<I.IiS I N I ~ I ~ I ' I ~ N I ~ I I ~ N 'las
I ' I ~v:irinblcs
S:
iiidqxiidiciiics soil los tlos iiiEiotlos de
t~cs:irrol~o!ciesisícinas a iiieclir. el traúicioiiai (sin uiiiizar generadores de cóciigo) y el uso
del CiciiCOd.
93
6.2 Variables tlel)eiitlientes
I,
A continiiacióii se describe cada uno de los factores que se utilizaron para medir el
tlcscni(~cfi~i
(IC1 sislci11:1.
'i'ieinpo de (lesarrnllo: para este caso de estudio se consider6 coino el tiempo que requiere
rni sii,icin 1x11-aelnlxirar el disetio conceptual de iiii probleiiia para pocteriimiiente realizar el
discfio <leiallad« del niisnio. y poi- iiltiiiio tratliicir la especificación de diseño a {ni lengiiaje
d e pr"gl-aiiiaciciil.
Conio ya se iiiciicionó anteriornieiite las variables independientes consideradas para este
p h i experiiiiciiial s r i n : a)ei niétodo íradiciorial de desarrollo y e consiste en elaborar todas las
cttipas en kiriwi aricsaiial y b)el iiso (IC I~erraiiiientasaiitoiiihticas para generar ccídigo.
6.4 Hiphttesis a comprobar
I,
1.11 .<liscñc?tlcl plan cxpcriiiiciiiiil ticrie coiiio ob.jetivo coiiiproh:ir o i-ef&ir algtiiias de las
liipciicsis qiic se plantearon al iniciar esic trabajo de tesis:
El
GciiCod permite reducir eii aproxiniadaniente iina tercera parte el iiempo nornial
de tlesni-rollo de in1 sistema de software utilizaiido el metodo iradicioiial de desarrollo.
LISO dcl
El iicnipo de desarrollo de 1111 sistciiia utilizando el GeiiCod se reduce en fnrnia itiás
sigiiificaiiva ii iiicdirlti qiic cI iaiiinño (le los prngrzniins ;iiinicni:1.
6.5 i>i:in tie'levaiiiación
.. .
Con la fiiiíilidad de ohieiier datos más exactos acerca de la dispersión de los datos entre
sí, cs necesario uiiliz;ir valores como la desviación inedia. la vaiiaiiza y la desviación estándar.
I
Eslas ineditlas dc dispel-sión fueron elegidas porque muestran qué tanto están dispersos los
d;iios ol?ieiiidos contra la inedia, lo cual da una idea del grado de error presente en cada una de
12s rot-nias de criacióii de sisieinas.
A coiilitiuncióti se decct-ihc el significado de cada unn de esios valores y las fóriniilas que
las cnlciilaii:
Metli;i ariliiiéfica: I 3 la sima de 10s valores dividida por el tiútiiero de esios
I)esvi;icihi
ii la iiiedi;i.
iiietlin:
I 3 el protiiedio dcl valor absoliiío tle las desviaciones de los datos respecic
N
I>csvi:icií>ii cs1hiitl:ir: es la raíz ciia<lr:ida (IC la vnriaiizn
I!
95
6.6 Aiidisis (IC resultados
i'riiiicraiiieiitc se calciiiaii 10s valores de dispersión para el tiempo de desarrollo c o n
pr«grniiias dc 136 líneas de código.~Catabla 5.1 iniiestra los datos relativos al desarrollo de un
11 .
sisiciiie dc cbdigo sin iitiiizar la lierraiiiieiita.
I'Vl:X,,,:t
__.
1
..
Desvio
x - Y
.
. . . . . . . . . .
I
Tiempo
(iiiiiilii<iS)
.
4
5
-. .
.
.
210
I<!.!
___----HI
__
76
XI
~
-
Valor ahsoluio
1s - Y[
_x .......
I .!I
f,.l:l
-45,o
.
.
- .
__
-S?.f,
...
-4I.O
CLIMA
.
_.
x I .i
f+I
4F,f>
. -.
52.6
,i.l.f,
20I.6
Ciiadrados de Ins
,ll.!:"l,,!:
.....
- ..- X)..
.. -
(S
6625 .')h
,I I 4 7.36
7117').7fI
-----2lf,fh7lt
.....
2205.7f,
17885.2
i i i i l i i a i i d o I:) Iicrraiiiiciiía (ial)la 6.2)
I'clslllla
'l-iclllpo
I>esvlo
(111 i l l ( l t 0 S )
x-x
Valoi aOsoIuin
Ix - XJ
Cuadrados de los
desvlos
(x
I
-
2
3
i
4
'
'.
11s
1.71
63
58
61
53.4
39.4
-28.6
33.6
30.6
SUMA
S3.1
39.1
28.6
33.6
30.6
185.6
- X)2
2RS I.5G
1552.36
817.96
1128.96
936.36
7287.2
.
...
Iliseño de un plan experiineiital
Capiiiilii 6
458
= 91.6
5
/ y -
,
7287.2
-8-=-
S=
I'crsoiiii
5
= 1451.44
+-
= rt38.17
'l'ic111po
Ikcvio
(iiiiiiiiii~S)
u-x
Valrir ahsoliilo
(u - XI
Ciiadrados dc los
dcsvios
(x - X)'
I
2
3
245
4
-
232.6
214.6
-137.4
-165.4
-144.4
615
591
217
238
5
232.6
214.6
137.4
1G5.4
144.4
894.4
SUMA
'I
;Y =
DM =
,Y =
1912
5
894.4
-_
5
=
382.4
=
178.88
167243.2
= 33448.M
5
S = rt.J33448?%= rt182.88
54102.76
46053.16
18878.76
21357.16
2085 I .36
167243.2
l3iseflo de iin p h i experirrieiital
Cnpiiiilo 6
Por úliiiiio se calculan los valores relativos al desarrollo de un sistema de 350 líneas
iiiilizatido el GeiiCod
ii
'l'ic111po
I!
Pcrsnila
(Illilllltos)
I
2
3
407
348
I37
4
5
I18
I>csvlo
X-X
V;ilr>i ;ll>sl~llllo
Ix - XI
Ciin<lia~los<IC10s
desvlos
176.6
I 17.6
-93.4
- I 12.4
-88.4
SUMA
176.6
117.6
93.4
112.4
3 1 187.56
13829.76
8723.56
12633.76
78 14.56
74 189.2
-
(x - xy
142
n desarrollar
iin
88.4
588.4
'
sisteina iirilizarido la Iierrnriiiciiin
1152
/y-= 230.4
5
,y2 = --74 I89.2 = 14837.M
5
el GeiiCocI
el CcnCod
3R2.4
I-
\'~iri;iii7,~i
(IC 10s I I i l t O S
1I
dcI<1slla1<ls
I
l o s diiios.
II!,
3 '77.04
I
14.57.44
121.81
IR2.XR
I
'I'iibla 6.5 Rcsiiiiicii coiiipnrniivo del iicinpo
111
zado eii Ins ciiairn priiebns.
1
(le las pruebas permitieron validar cii pequeña esc~ila las Iiipóiesis
pl:in~c;itlns ill inicio tlc esie icnia de. tesis ya que el porcentaje de reducción de tieinpo al utilizar el
GeiiCod fric dcl 28.43% en sisteiiias de 150 líneas de código. y de 39.79% en sistemas de
alredcdnr de 350 líiicas de código, lo cual representa una disniiiiucióii considerable de tiempo.
!.,OS rcsiiltados
1.m rcstiltad~sobtenidos periiiiiieroii coiiiprobar la Iiipóiesis de que iiiieniras m i s graiide
sea cI sisieiiia a desiirrollar, iiiayor será el ticmpo que se ahorre en relación a la forilia ti-adiciorial
<IC desarrollo (IC
sisiciiias, ya que el control de sisteiiias se vuelve tnás dificil.
!I
Sc tlclic recordar qiic los rcs~ilindosobtciiidos no piicdcii ser ioiii:itlos conio IINI
cniicliisi0ii (leliiiiiiva de la rclacióii entre el uso del GeiiCod y e l alioi-ro de iienipo' sino como 1111
iiidicaiivci dc la nioncrn cóiiio se comporta el GenCod coli una pequeña muestra, de tal forma que
sc liacc necesario 1111 plan cxperinieiiial niás completo.
Referencias
AITred V. Aho: et al, "Compiladores: principios, técnicas y Iierrariiieritas", Ed.
Addisoii- Wesley Iberoaiiie.i-icaiia.Wiliiiiiigton, Delnwwe? E.U.A. 1990.
".
M.M. 13iirnett. D.W. Mclntyre, "Visun/ Pro~rnniirfii?,q Cornpuler. vol. 28, No. 3 ,
iníli.Zo 109.5.
Caii1c.S.. and K. Gordoii, "I'DI, - A . 'fool for scilt\vnre Iksing", in I'roc. Natioiial
Computer Confcreiice' AI:II'S Press, 1975.
S . K Cliriiigi T Icliikawa niid P.A. I,igoiiieni<les. "Visual Imigunges". i'leniiiii Press.
New York 1986.
S. K. Cliang. et al.. Icoii piiriiy-toward a foi-nial tlieory o f icons, international joiirnal
of pattern recognition aiid artificial intelligence. World Scientific Piihlisliing
Coiiipaiiy. Vol 1, No. 3,4. 1987.
$
S. K. Cliaiig Principles o f Visiial I'rograiiiniiiig
i:llgicwooci ciirrs. N . J . ~1990.
Sysienis, I d . Preiitice-Hall,
S . K. Cliang and Gennaro Cosiagliola, Visual-laiguage System for llser Interfaces,
IEEE coiriptitcr society, Vol 12, No. 2>March 1995.
CjotizÍilo Chcvas Agusiín
"INGENIERIA I X L SOITWARE: Práctica de la
prograiiiacióii", lid. Addison- Wcslcy I1woaiiiericaii:i. W iIni iiigloii, Ilelaware. L. 1J. A.
1993.
IiciiiiCIIi I;. l<cii&iIl. I i i l i c 1:. Kcii1l:ill “ S Y S ’ I ’ I < M ANALYSIS ANI> I.)I<SICiN.. Ik.
l ~ i e n ~ ~ L e - l ~1988.
lall.
‘l‘cd Lewis “Code Generators”: IEEE Sonware, iiiayo 1990
Maiiucl I.,ópez, Gerartlo Marín, et al. r i las nuevas herrainienias visuales”, Persoiiai
coiiipiiiiiig México, tiiayo 1995.
‘ ~ ~ ~ ~ ~ l ~ l pCrSOllZtI”
l l l ~ ¡ ~ I>J.
~ ~I’aZoS
l ~ ~ RailgCl
~ t l
R.
i:
Cliarlcs I’ci7,old “Progratiimitig Witidows 3.1 ”. 3i-a. I;.dicih. Micr«sofi press. USA.
1092.
S1i:ii.i i,awrcticc Pfleegder, “Soitware Iiigiiieeriiig ‘l‘lie Production of Quality
Sofiwarc” , segiitida cdicióii, Maciiiillan Piiblisliiiig Conipatiy, U.S.A..1991.
1)ressiiiati. S. Roger “INGENIERIA DE SOFTWARE, UN ENFOQUE PRACTICO”,
3cra!!Edicihii Esliníia. 1:d. McGrnw-llill. 1990.
“I’rograiiiiiiiiig Visual“.
http: //~iiiioii.iicsa.iiiitc.edii/ Iiyperiiews/ get/ coniputitig/
visual.liiiiil ttwiliai-is-VP1,. 1996.
S:inl:iol:iy:i S.I<. “I’l~iiic~icir‘~ti
y tliscño (IC progt:ini;ts (IC Cotii(,iiladoni“, Apiitiles
ceiiidci 1992.
1
S:iiitaolaya S.R. et al. “Anhlisis prospeciivo de investigacihn sobre la linea (le
iiigeíiiería dc software, precisando en reusabiiidad de conipoiieiiies”. ceiiidet. junio
1996.
Jaiiies A . Sciiti “Atiilisk y discíio de S I S T E M A S 1>17 INFORMACION” I’Y.
McC;t;iiv-l lill: Scgitii<l;ictlicicíii 1904.
“Visual Magic“, Ii~lp://w~~w.visuaI-inagic.cotii/¡iiclex.liiinl.
1 997.
lidwai-d Yoiii-d«ii “Dccliiie & Fall of Aiiietic:iti I’rograiiiiiicr”. 1992 by 1’TR I’reiiiicc
I~lall:¡tic.
.
Cueslioiiai-irl
Aiiesn I
ANEXO I
CUESTIONARIO
I.
j,l~i:17, iiiilizado
algiiiizi vez i i i i a iioiacibii (le diseño dciiillado para la clnboraci6ii de
1111
sisieiiin?
2. S i la respiiesia anterior ftie negativa escribe breveiiieiik ¿por qué?
Si
liiiz
iiiilizado alguna vez iina noiaciói, de djseilo cririiesia breveineiite las siguienles
p'cg~l'1I:is.
3. i,Coii qiiE frcciieticia iiiilizas una iiotacióii de diseño deiallatlo para In elaboración de tus
sislciiins y poi. qué?
4. j,.Cu;il cs el resultado eii tiempo, costo, etc. qiie Iiaz obtenido cuando iiiilizas
(IC discño y Cii;ili<lO Il(lla iitili7.as?
:;
titia
Iierraiiiieiita
I
5 . j,Coiisitlci-risj i i c las iioiacioiies de diseño realiiieiite ayudati al prograiiiador'? /,Por qué?
__
6 . i,C~ifilcsiioiacioiies de disefio detallado conoces?
Reg!la%de pi-odiiccióii de la giainática posicioiial
AiicsoZ
ANEXO 2
/I
!I
/i
?
E =
SIC;NII:ICA VAClO
REGLAS DE PRODUCCION
_ -
ii
Diagrama de tratisición de estados
para la declaración de una variable o iin arreglo
Frirrnaio del archivo de ( l i s ~ i l o
Aiiexo 4
ANEXO 4
FORMATO DEL ARCIJIVO DE DJSEÑO
SC ziliiiacciin la iiir«riiiacióii general del sisteiiia.
{I)TOSGLORALES
-
*
(1mIe.Yil'lifl)
Alinacena el tope del arreglo.
)FIN
- l,:sic Idoqiic
aliiiiiccii:i l a iiihrtiiaci6ii de iiiia liiiicióii, piicdcii exisiir varios hloqucs tie csic
tipo. dcpciidicii(lo <IC !;isliincioiics ~ I I Cexisinn eii el <lcsai-rollodc 1111 tliseíi«.
( 1 ) I K I;(! N CION
(NiiiiiWiii)(ErloI'iiii)(Ed(,)
* (Niiiii Win) almacena el iiúitiero de la veiiiaiia qiie l e corresponde a esa fiincióii.
* (1Yoi;iiii) aliiiacena el estado de la íiiiicióii. El niimero 1 indica qiie la fiiiicióii
est3
ac,iiva y O qiie esa íiiiicióii y" Iia sido botiatla.
'(Ed«) Aliiiaceiia el estado del auióninia.
(Cndiitiii) (í:nddns)
(Cailite?)
*
1% estas ires cadciias se aliiiaceiiaii los coiiieníatius de l a íiiiicióii
)FIN
va a nIiii:icctiíIr la iiiroriiiacióii de las variahies locales de In liiiicióii
{VA 11LOCA [.,ES
- Sc
(Vnrinhlc) (I-ipo)(Alcance)
* Se a l i i i a c e i i a la información de las variables locales.
)FIN
-
1111csic tiloqiic se aiiiiacena la iiiforiiiaci6ti de todos los objetos que existan en la runción y se
tliíicrciiciiir I:i iiiroriiixitiii de tiii oh,$(), coii respccio :I oii-o coil cI síiiibolo (@)
vil ii
{ol~.~si~Alos
68.
~- (1ilii~1r11c)(iiI1iiip)(S~~cl3iiip)
* (E)
Esie sítnholo ideiiiifica l a declaración de 1111 olijeto.
*
(iiirisiriic) aliiiaceiia el nonihre Ióeico del ohjeio.
*
(iii3iiip) nliiiaceiia e l noinhie íisico dcl oiijeiii.
*
Sc va a iiliiiaceiiar el espacio que ocupa el ol?jeto eii piuelcs.
IIO
Aiicsii 4
Forinaio del archivo dc diseño
(.AiiiIi:iX)(Ari-ih;iY)(Alia.joX)(Aba,joY)
*
(1~qiiierdaX)(1~qiiier<lnY)(l~ereclinX)(l~~~ecliaY)
Se altiiaceiia e l cii;i<li-iiple de coni-dciindns que iiciic cada iihjeio
(Allil~~~M~~~lil~)(Alril~~~,i~~(li~)
* Se van a alinaceiiar las coordeiiadas de a r r i h en X y Y pero ya iiiodifica<las, de
ciiniido se realiza el a.jiiste de olijetos eii la pantalla.
,
(lipo)(Noriiinll~iii~~)
(rnllciia)
* (fipo) Alinncena difei-eiiles cosas depeiidieiido d e l a instriicción.
* (NormalBiiip) Esie campo sirve para ver s i se va a elitninnr iin oi).jeio.
* (cadena) S e aliiiaceiinii varias cosas segfiii sea In iiisiriicci6ii.
- Sc iiliiiacciia In iiiroriiincióii de los argiiineiitos de uti oi>jeto
(AIIG 1)lOS
(Var¡;ililc) (.i-ipn) (Alc;itice)
)FIN
}FIN
* Se va11 a alinacciiai los arguiiiciilos de Ins oLi.ieios.
- I3ic ITIN iiidica la lei-iniiiacióii de la iiifortiiacióii de iiiia fiiiicióii
I
ANEXO 5
DEMOSTRACION DE J A E,JECUCION DEL GENCOD
[:sic anexo pretende iiiosttar breveiiieiiie la ejeciición del GeiiCod
13 sisieiiia GciiCod cuenta coti dos iiieiiús, el priiiiero de ellos sólo h i e las opciones de
tihrir iin iircliivo ya cxistenic de diseño o de coiiieiizar 1111iiuevn diseño, atleiiih de la opcióii de
;iyiida (que iiidica cóiiio se puede manejar el sisteiiia). para esta prueba de corrida se iiiicii) con In
opcióii dc gcncrar ~ i i nuevo
i
archivo de diseño. enseguida aparece una caja de diálogo que
Iircgiiiiia c~ tiniiibre cie i a riitlcióii dc diseño, acieiiiAs de mostrar ins iipos de datos que existen
p r : i quc cI iisiial.in cliga el iipo de la iiición, iina vez. Iieclio Esio se oprime el botóii de Acep/or
(vct ligiiril I )
:!
i
i
I
. .
. ...~."
__ -.... ....
~.
~~.
ligiira I f'niiialla inicial que se presenta a1 elegir del iueiiii rtrrevn archivo de
/¡
vez qiic se escribc el iionibre de la Tiiiición y se elige el tipo de la fiiiicióii. se presenta
dc ili$lngo prcguiitaiido por los pariiiietros de In fiiiicióii (figura 2). El usuario debe
cscriliir cI iiniiihre dcl pariítiietro, elegir el tipo de dato y el tipo de paso del pariinetro, Iieclio
i.sío clclx oprimir cl I>ott>ncoti la opcii>ii (IC A,yrqyn'"n'y coniiiiri:ir con In declaración de los (Iciiihs
'1
Eii caso de que lit
p:iránieirns. al ieiiiiiii:ir debe opriiiiir el botóii con la opcióii de Fimdiza~~.
r i i i i c i h i no ciiciiie coil parhiiiciros el listiario sólo debe opriniii- el boióii de Fimdizai..
tJii:i
( i l w c:i,j:i
I Ii
, .....
! . . . . . . . . . . . . . . . . . . . . .
.............
..........
ligiira 2 I>aiitnll;i que se iiiueslra para realirni la rlcclninci6li de pavitnctros
se prescntn eii In íigiir;i 3 . se piietle ver el segiiiido iiieiiú del
(.;ciiC:otl, c1 ci~iilconticiic iodm las iiis(ruccioiiec (IC la iioiaciiiii dc diseño de Wariiiet. ;itleiitis
n p i - c c c c i priiiier objeio del disefio qiie represeiita la declaraci6ii de iii1a hncióti.
Itti
In sigiiiciite
paiii;illn que
I>eino.&ación de la ejecitcióii del GeiiCod
Aiicxo 5
Cada vez que se eii,jn una instriicción de la paleta de botones del menú, se presentati iiiia
caja de diálogo, que pide la infnrniacióri necesaria para cada instrucción. En In figura 4 se
iiinestraii las cajas de diálogo de las instrucciones de salida y coiidicioiial (todas las iiisti-ticciones
tictien la opcitiii (IC c m ~ c c l ola~acción)
ii ; l I
~
. .. ...... . . . .... ... ..
ligiiin 4 Caia de di5log'o de las itistriiccinties de salida y del coiidiciorial
i i i i l i z i c i i j i i d e In hcri-:iniiciiia c l usiiiirio 110 dclic pi.cociiparse d0iitlc colocíir c:id;i
i i n a tlc las iiistriiccioties elegidas, porque el GenCod se encarga de realizar ésto. En la íigiira 5 se
i i i u e s h c6nio tlcspúes de elegit iin objeto activo (condiciori:il), se crea uii iiuevo nivel de
:ihsiracci6ii. asi que i d o s los otjeios o instriicciones qiie se eligaii van a pertenecer al ol+do
Chi
I:i
:icliVo ;iiilci.ini..
CI1
cstc caso al cnlldicion~ll.
I I4
Deiiimlraciúii de la ejeciicióii del GeiiCnd
Aiieuo 5
A(lciii5s c i i cmo (IC qiic se e1igici.a
iiiciisajc iiit1ic;iiitlo cI crIor (vcr Iigtiia 6 ) .
tiiia
iiislriiccii>ii incorrectn. el GeiiCod preseiita un
.....
'CISP 5P ?I>CLIC"llil
.-. .
.IC
"la1 C0l"CRtl"
..*. .........
.
I"
-
figura 6 Mciisa.je [ICerror al elegir uiia iiisirocciúii i n c o r m l a
Ilc tal iiiaiiera que cl usuario puede coníiniiar eligiendo iiistrriccioiies Iiasta íeriilinar con
s u d i s e h . piidiéiid(?lo guardar c i i t i t i archivo (ver figura 7).
:I
I-! Nnmhip n i
:¡l.............................
. ...................
~
, .. ,
11' . . . . . . . . .
I
i".whjdi,
.
. / /
fl.,
.I
Dettiosii-aciirn rle la e,jecticiirti dcl GetiC:od
Aiicuii 5
Adeinis cl GeiiCod crierita con un sistema de ayuda que permite al usuario consultar a
través (IC Iiipcrtexio el liiiicioiiainiento que tiene el sistema (ver figura 8).
el capi8irilo5 se explica coli mayor detalle las opciones que tiene el GeiiCod, así coino
t;iiiihitii la geiieraciOii de código y la ejecución de los prograinas g c i i e r a h a partir del discño
((lcsdc el piiiito (It visin interno del sistema).
I:ii
Descargar