!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