Sei sulla pagina 1di 7

www.monografias.

com

Generacin de cdigo en la programacin Web avanzada


Leevan Abon Cepeda labon@uci.cu

1. Resumen 2. Introduccin 3. Desarrollo

4. Tipos de generacin de cdigo 5. Desventajas de los generadores existentes


6. Ar uitectura ideal para la generacin de cdigo 7. !uncionalidades de los componentes de inter"az de usuario

8. Componentes de lgica de negocio o empresariales 9. Dise#o de capas de acceso a datos $ almac%n de datos 10. &rincipios generales sobre seguridad
11. Conclusiones 12. Re"erencias 'ibliogr("icas
Resumen) La generacin de cdigo en el mundo se ha hecho algo imprescindible, pues el ahorro de tiempo, la eficiencia en la programacin la estandari!acin de cdigo son los pilares fundamentales para la construccin de un pro ecto. La automati!acin de la programacin trae consigo un cambio radical en la construccin de softwares, pues el programador solo tendr"a #ue concentrarse en la Lgica del $egocio #ue desea implementar, debido a #ue el resto de las tareas pueden ser generadas, perdi%ndose mucho tiempo creando plantillas programando la &apa de 'cceso a (atos, cosa #ue puede ser erradica generando todo este cdigo con solo especificarle alg)n #ue otro par*metro, sin importar el lengua+e. ,in lugar a dudas el resultado m*s rele-ante consiste en el ahorro del tiempo alcance de un estad"o superior en la calidad de software. 'dem*s de ser una herramienta hecha para los propios programadores, a udando a facilitar su traba+o, el cual suele ser en ocasiones engorroso dif"cil, constitu endo un paso de a-ance en el me+oramiento de las condiciones de traba+o. .alabras cla-es/ 0eneracin de &digo, programacin, ahorro de tiempo, automati!acin. Introduccin) 1n la construccin de aplicaciones 2eb con modelos de 3 capas45nterfa! de 6suario, Lgica de $egocio 'cceso a (atos7 aparecen una serie de patrones comunes en cual#uiera de las capas e8istentes as" como a la hora de la programacin 9rientada a 9b+eto, por lo #ue muchas -eces los programadores tienen #ue repetir el mismo segmento de cdigo -arias -eces cuando desarrollan una aplicacin siendo esto una situacin probl%mica en la construccin de cual#uier software perdi%ndose tiempo innecesariamente en su construccin a pesar de #ue el cdigo es el mismo, se cometan errores. :odo esto trae consigo una falta de eficiencia mu grande a la hora de programar. 1n t%rminos m*s generales, la generacin de cdigo es usada para construir programas de una manera autom*tica e-itando #ue los programadores tengan #ue escribir el cdigo a mano. &onstitu endo un ahorro de tiempo en el desarrollo de pro ectos aplicaciones. Desarrollo) La generacin de cdigo ha de-enido en una necesidad casi obligatoria para la ma or"a de los programadores durante el desarrollo de software. $umerosas herramientas conocidas como &',1 permiten la generacin autom*tica de cdigo a partir de diagramas o modelos. La generacin de cdigo data desde la e8istencia de los primeros compiladores. ;asta la aparicin de los primeros generadores de cdigo comercial u orientado a <usuarios finales<= la generacin de cdigo era e8clusi-idad de programas compiladores especiali!ados. 1n tiempos m*s recientes la generacin de cdigo, gracias al a-ance de la ingenier"a del software, se ha lle-ado a un ni-el diferente= donde se encuentran programas generadores de pantallas, reportes consultas, estas son herramientas de gran utilidad= pero se debe, en la ma or"a de los casos, pagar una gran cantidad de dinero por ellos. >1? :oda-"a el mundo se encuentra a-an!ando dando pasos firmes en el tema de generacin de cdigo, pues no se puede hablar de una herramienta efica! #ue cumpla con todos los re#uerimientos necesarios en la actualidad, pero tampoco e8iste una solida preparacin en cuanto al tema, pues todo programador se enfrasca en el cdigo

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

#ue debe confeccionar cdigo.

no en la b)s#ueda de una herramienta #ue le puede a udar a generar parte de ese

Tipos de generacin de cdigo) Templating* ,e genera un arma!n 4o esbo!o7 de cdigo fuente no funcional para ser editado, con el #ue se e-ita tener #ue escribir la parte m*s repetiti-a del cdigo 4generalmente poco comple+a7. ,uele ser una opcin recomendable. &arcial* ,e genera cdigo fuente #ue implementa parcialmente la funcionalidad re#uerida, pero #ue el programador usar* como base para modificar, integrar @o adaptar a sus necesidades. $o suele ser recomendable. .or e+emplo/ generamos una aplicacin para el mantenimiento de tablas de una Aase de datos. Total* ,e genera cdigo fuente funcionalmente completo pero #ue no -a a ser modificado por el programador, sino #ue si es necesario se -uel-e a regenerar. .or lo general tampoco suele ser un cdigo e8cesi-amente comple+o. Becomendable. Creacin de generadores de cdigo) .ara la creacin de generadores de cdigo se deben considerar los siguientes aspectos/ La C ar#uitectura de software para la cual se -a ha desarrollar el generador. Las C caracter"sticas especificas del lengua+e de programacin. 1l C lengua+e con el #ue se desarrollar* el propio generador. Besponder C las interrogantes/ DLa generacin de cdigo se reali!ar* a partir de modelos como 6mlE DLa generacin de cdigo se har* a partir de las tablas de una base de datosE, D,e reali!ar* un generador de cdigo #ue su resultado sea fragmentos de cdigo #ue son de uso m*s frecuente en el softwareE D,e crear* un generador gen%rico #ue <genere< cdigo para diferentes lengua+esE Las C reglas de utili!acin del generador, en otras palabras, la forma adecuada para #ue los usuarios del generador obtengan el ma or pro-echo. 1n s"ntesis para crear un generador de cdigo se deben hacer muchas de las tareas #ue reali!an los compiladores= algunas de estas tareas son/ la b)s#ueda de patrones, la escritura de cdigo, el an*lisis sint*ctico, el an*lisis l%8ico la optimi!acin de cdigo. 1stas tareas las reali!a el desarrollador una -e!, para una ar#uitectura espec"fica. Desventajas de los generadores existentes) 1n el mundo e8isten una serie de 0eneradores de cdigos innumerables, pero a pesar de sus facilidades, tambi%n tienen sus des-enta+as, como/ 0eneran cdigo solo referente a los m%todos b*sicos en las cone8iones a la Aase de datos, es decir, insertar, modificar, eliminar en casos mu espec"ficos consultas. $o est*n orientados a una ar#uitectura, para especificarle una se debe reali!ar todos los modelos correspondientes a la misma, siendo esto un traba+o mu engorroso dif"cil de modelar. ' -eces deben ser demasiado detallados los diagramas para generar un simple cdigo otras -eces no es posible a tra-%s de diagramas especificar lo #ue se #uiere hacer. La ma or"a de los generadores de cdigo son aplicaciones de escritorio. Ar uitectura ideal para la generacin de cdigo) 6na aplicacin se compone de -arios componentes, as" como el modo en #ue cada uno de los cuales reali!a una tarea diferente. :odas las soluciones de software contienen tipos de componentes similares, independientemente de las necesidades #ue deban cubrir. .or e+emplo, la ma or"a de las aplicaciones contienen componentes #ue tienen acceso a datos, encapsulan reglas empresariales controlan la interaccin con el usuario, entre otros. La identificacin de los tipos de componentes #ue se encuentran normalmente en las soluciones de software facilitar* la elaboracin de un plano t%cnico para el diseFo de las aplicaciones, as" como para una r*pida creacin o utili!acin de herramientas de generacin de cdigo. Tipos de componentes) 1l an*lisis de la ma or"a de las soluciones basadas en modelos de componentes por capas muestra #ue e8isten -arios tipos de componentes habituales. 1n la figura 1.1 se muestra una ilustracin completa en la #ue se indican estos tipos de componentes. 'un#ue la lista #ue se muestra en la figura no es completa, representa los tipos de componentes de software m*s comunes encontrados en la ma or"a de las soluciones con una ar#uitectura en capas, orientada a ob+etos ser-icios.

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

!igura +*+* Ar uitectura en capas* Tipos de componentes utilizados* Componentes de inter"az de usuario ,I-.. La ma or parte de las soluciones necesitan ofrecer al usuario un modo de interactuar con la aplicacin. Las interfaces de usuario se implementan utili!ando formularios, controles u otro tipo de tecnolog"a #ue permita procesar dar formato a los datos de los usuarios, as" como ad#uirir -alidar los datos entrantes procedentes de %stos. 1n un gran n)mero de casos, la interaccin del usuario con el sistema se reali!a de acuerdo a un proceso predecible. Componentes de lgica de negocio o empresariales. 5ndependientemente de si el proceso consta de un )nico paso o de un flu+o de traba+o organi!ado, la aplicacin re#uerir* probablemente el uso de componentes #ue implementen reglas empresariales realicen tareas empresariales. .or e+emplo, en la aplicacin comercial, deber* implementar una funcionalidad #ue calcule el precio total del pedido agregue el costo adicional correspondiente por el en-"o del mismo. Los componentes empresariales implementan la lgica empresarial de la aplicacin. Componentes de acceso a datos. La ma or"a de las aplicaciones ser-icios necesitan obtener acceso a un almac%n de datos en un momento determinado del proceso empresarial. .or e+emplo, la aplicacin empresarial necesita recuperar los datos de los productos de una base de datos para mostrar al usuario los detalles de los mismos, as" como insertar dicha informacin en la base de datos cuando un usuario reali!a un pedido. .or tanto, es ra!onable abstraer la lgica necesaria para obtener acceso a los datos en una capa independiente de componentes lgicos de acceso a datos, a #ue de este modo se centrali!a la funcionalidad de acceso a datos se facilita la configuracin el mantenimiento de la misma. 4. /ervicios. &uando un componente empresarial re#uiere el uso de la funcionalidad proporcionada por un ser-icio e8terno, tal -e! sea necesario hacer uso de cdigo para administrar la sem*ntica de la comunicacin con dicho ser-icio. Los agentes de ser-icios permiten aislar las idiosincrasias de las llamadas a -arios ser-icios desde la aplicacin pueden proporcionar ser-icios adicionales, como la asignacin b*sica del formato de los datos #ue e8pone el ser-icio al formato #ue re#uiere la aplicacin. 5. Componentes de seguridad) La directi-a de seguridad se ocupa de la autenticacin, autori!acin, comunicacin segura, auditoria administracin de perfiles. &ada componente tiene sus especificidades las cuales cumple funcionalidades de acuerdo al rol #ue tienen en la aplicacin. ' continuacin se muestra una descripcin un poco mas detallada por cada componente, para una mucha me+or comprensin de la ar#uitectura !uncionalidades de los componentes de inter"az de usuario Los componentes de la interfa! de usuario deben mostrar datos al usuario, obtener -alidar los datos procedentes del mismo e interpretar las acciones de %ste #ue indican #ue desea reali!ar una operacin con los datos. 'simismo, la interfa! debe filtrar las acciones disponibles con el fin de permitir al usuario reali!ar slo a#uellas operaciones #ue le sean necesarias en un momento determinado. Los componentes de interfa! de usuario/ $o iniciali!an, participan ni -otan en transacciones.

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

.resentan una referencia al componente de proceso de usuario actual si necesitan mostrar sus datos o actuar en su estado. .ueden encapsular tanto la funcionalidad de -isuali!acin como un controlador. 'l aceptar la entrada del usuario, los componentes de la interfa!/ 'd#uieren los datos del usuario atienden su entrada utili!ando gu"as -isuales 4como informaciones sobre herramientas7 sistemas de -alidacin, as" como los controles necesarios para reali!ar la tarea en cuestin. &apturan los e-entos del usuario llaman a las funciones de control para indicar a los elementos de la interfa! de usuario #ue cambien el modo de -isuali!acin de los datos, bien iniciali!ando una accin en el proceso de usuario actual, o bien, modificando los datos del mismo. Bestringen los tipos de entrada del usuario. .or e+emplo, un campo puede limitar las entradas del usuario a -alores num%ricos. Beali!an la -alidacin de entrada de datos, por e+emplo, restringiendo el inter-alo de -alores #ue se pueden escribir en un campo determinado, o garanti!ando #ue se escriben los datos obligatorios. Lle-an a cabo la asignacin transformacin simple de la informacin proporcionada por los controles del usuario en los -alores necesarios para #ue los componentes sub acentes realicen su traba+o 4por e+emplo, un componente de interfa! de usuario puede mostrar el nombre de un producto pero pasar el 5d. del mismo a los componentes sub acentes7. 5nterpretar las acciones del usuario 4como las operaciones de arrastrar colocar o los clics de botones7 llamar a una funcin de control. .ueden utili!ar un componente de utilidad para el almacenamiento de datos en cach%. .ueden utili!ar un componente de utilidad para reali!ar la paginacin. 1s frecuente, especialmente en las aplicaciones 2eb, mostrar largas listas de datos como con+untos paginados. 'simismo, se suele disponer de un componente de a uda para reali!ar el seguimiento de la p*gina actual en la #ue se encuentra el usuario , por tanto, in-ocar a las funciones de consulta paginada de los componentes lgicos de acceso a datos con los -alores adecuados relati-os al tamaFo de p*gina p*gina actual. La paginacin se puede reali!ar sin la interaccin del componente de proceso de usuario. Componentes de lgica de negocio o empresariales Los componentes empresariales pueden ser la ra"! de las transacciones atmicas. Gstos implementan las reglas empresariales en di-ersos patrones aceptan de-uel-en estructuras de datos simples o comple+as. Los componentes empresariales deben e8poner funcionalidad de modo #ue sea independiente de los almacenes de datos los ser-icios necesarios para reali!ar la tarea, se deben componer de forma coherente desde el punto de -ista del significado transaccional. ,i el proceso empresarial in-ocar* a otros procesos empresariales en el conte8to de una transaccin atmica, todos los procesos in-ocados deben garanti!ar #ue sus operaciones participan en la transaccin e8istente de modo #ue las operaciones se deshagan en caso de #ue la lgica empresarial #ue reali!a las llamadas se interrumpa. 6na t%cnica mu segura es -ol-er a intentar una operacin atmica si %sta da error, sin miedo a #ue los datos pierdan su coherencia. &onsidere el l"mite de una transaccin determinada como un l"mite de reintento. 1n la siguiente lista se resumen las recomendaciones relati-as al diseFo de componentes empresariales/ A*sese lo m*s #ue pueda en la comunicacin basada en mensa+es. 'seg)rese de #ue los procesos e8puestos en las interfaces de ser-icios no se pueden alterar #ue, por tanto, el estado de la aplicacin o el ser-icio no perder* su coherencia si se recibe el mensa+e dos -eces. 1li+a con cuidado los l"mites de la transaccin de modo #ue se puedan reali!ar reintentos composiciones. 1sto se aplica tanto a las transacciones atmicas como a las de e+ecucin larga. 'simismo, debe considerar el uso de reintentos para sistemas basados en mensa+es, sobre todo al e8poner la funcionalidad de la aplicacin como un ser-icio. Los componentes empresariales se deben poder e+ecutar en el conte8to de cual#uier usuario de ser-icio= no necesariamente suplantando a un usuario de una aplicacin espec"fica. 1sto permite su in-ocacin con mecanismos #ue ni transmiten ni delegan la identidad del usuario. 1li+a mantenga un formato de datos coherente 4como HIL, con+unto de datos, etc.7 para los par*metros de entrada los -alores de de-olucin. Los componentes empresariales son llamados por los siguientes clientes/

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

5nterfaces de ser-icios. &omponentes de proceso de usuario. Jlu+os de traba+o empresariales. 9tros componentes empresariales. 1n la figura1.K se muestra un componente empresarial t"pico #ue interact)a con los componentes lgicos de acceso a datos, las interfaces los agentes de ser-icios otros componentes empresariales.

!igura +*0* Componentes empresariales 9bs%r-ese los siguientes puntos/ 1. Los componentes empresariales pueden ser in-ocados por los componentes de las capas de presentacin. K. Los componentes empresariales pueden ser in-ocados por interfaces de ser-icios 4por e+emplo, un ser-icio 2eb HIL7. 3. Los componentes empresariales pueden llamar a componentes lgicos de acceso a datos para recuperar actuali!ar datos, pueden in-ocar a otros componentes empresariales. 4. Los componentes empresariales tambi%n pueden in-ocar a agentes de ser-icios. :enga especial cuidado al diseFar la lgica de compensacin en caso de #ue el ser-icio al #ue desea tener acceso no est% disponible o lle-e demasiado tiempo de-ol-er una respuesta. 1ota) Las flechas #ue aparecen en la figura representan el flu+o de control, no el flu+o de datos. Dise#o de capas de acceso a datos $ almac%n de datos* &asi todas las aplicaciones ser-icios necesitan almacenar obtener acceso a un determinado tipo de datos. 'l traba+ar con datos debe determinar/ 1. 1l almac%n de datos #ue utili!a. K. 1l diseFo de los componentes utili!ados para obtener acceso al almac%n de datos. 3. 1l formato de los datos pasados entre componentes el modelo de programacin necesario para ello. La aplicacin o ser-icio puede disponer de uno o -arios or"genes de datos, los cuales pueden ser de tipos diferentes. La lgica utili!ada para obtener acceso a los datos de un origen de datos se encapsular* en componentes lgicos de acceso a datos #ue proporcionan los m%todos necesarios para la consulta actuali!acin de datos. Los datos con los #ue la lgica de la aplicacin debe traba+ar est*n relacionados con entidades del mundo empresarial #ue forman parte de la empresa. 1n determinados escenarios, puede disponer de componentes personali!ados #ue representan estas entidades, mientras #ue en otros puede decidir traba+ar con datos utili!ando directamente con+untos de datos o documentos HIL. La ma or"a de las aplicaciones utili!an una base de datos relacional como almac%n principal de los datos de la aplicacin. Dise#o de la directiva de seguridad La directi-a de seguridad se ocupa de la autenticacin, autori!acin, comunicacin segura, auditor"a administracin de perfiles, tal como muestra la figura 1.3.

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

!igura +*2* Aspectos de la directiva de seguridad &rincipios generales sobre seguridad 18isten ciertos principios generales sobre seguridad #ue se deben tener en cuenta a la hora de desarrollar una directi-a de seguridad. ;a #ue tener en cuenta las siguientes directrices/ ,iempre #ue sea posible, se debe recurrir a sistemas de seguridad #ue se ha an comprobado demostrado su eficacia en lugar de generar su propia solucin personali!ada. $unca confiar en las aportaciones e8ternas. (eber* -alidar todos los datos #ue introdu!can los usuarios o en-"en otros ser-icios. &onsiderar por principio #ue los sistemas e8ternos no son seguros. ,i su aplicacin recibe datos confidenciales sin cifrar desde un sistema e8terno, asuma #ue dicha informacin no es segura. 'plicar el principio del menor pri-ilegio. $o habilitar m*s atributos en las cuentas de ser-icios #ue los #ue resulten estrictamente necesarios para la aplicacin. 9btener acceso a los recursos con cuentas #ue tengan los m"nimos permisos necesarios. Beducir el *rea de superficie. 1l riesgo se incrementa seg)n aumenta el n)mero de componentes datos #ue ha a e8puesto a tra-%s de la aplicacin , por lo tanto, se deber* e8poner )nicamente la funcionalidad #ue se crea #ue otros -an a utili!ar. 1stablecer como predeterminado un modo seguro. $o habilitar ser-icios, tecnolog"as derechos de cuenta #ue no sean absolutamente necesarios. &uando se implemente la aplicacin en e#uipos cliente o ser-idor, la configuracin predeterminada de esta deber* ser segura. $o confiar en la seguridad a tra-%s del ocultamiento. 1l cifrado de los datos implica disponer de cla-es de un algoritmo de cifrado demostrado. 1l almacenamiento de los datos seguros e-itar* el acceso a %sta en cual#uier circunstancia. $o se puede considerar seguridad la me!cla de di-ersas cadenas, el almacenamiento de la informacin en rutas de archi-o inesperadas dem*s t%cnicas similares. ,eguir los principios de ,:B5(1. 4,:B5(1 responde a las siglas inglesas de ,imulacin, 'lteracin, Bepudio, Be-elacin de informacin, (enegacin de ser-icio 1le-acin de pri-ilegios7. :odas estas son clases de -ulnerabilidades de la seguridad contra los #ue un sistema se debe proteger. Beali!ar la comprobacin desde la misma puerta. $o permitir #ue los procesos -a an m*s all* del lugar para el #ue los usuarios est*n autori!ados. Alo#uear su sistema interna e8ternamente/ los usuarios operadores internos pueden representar un riesgo igual #ue los intrusos e8ternos. Conclusiones) Lalorados los impactos causados por los generadores de cdigo, se puede afirmar #ue su uso es de gran a uda en la confeccin de softwares, me+or*ndose grandemente la calidad de la produccin, el establecimiento de est*ndares de cdigo el tiempo de desarrollo de las aplicaciones. 'dem*s, con un buen uso una ar#uitectura en componentes se puede llegar a obtener un m*8imo rendimiento del generador de cdigo #ue se utilice, as" como una buena practica de lo m%todos de construccin de software utili!ando capas o componentes. Re"erencias 'ibliogr("icas) &9I.5L'(9B1, M 01$1B'(9B1, (1 &N(509. http/@@www.mail8mail.com@curso@informatica@generadores@capituloK.htm . &9(1&;'B01 ,:6(59. http/@@www. essoftware.com@products@productOdetail.phpE productOidP1. &larion. http/@@www.gopac.com.m8@herramientas@clarion@descripcion.htm.

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

www.monografias.com

.ressman, B. ,oftware 1ngineering. ' .ractitionerQs 'pproach. Jourth 1dition. Ic0raw R ;ill. 6,', 1999.

Beferente al 'utor/ Leevan Abon Cepeda* labon@uci.cu 'Fo de nacimiento/ 1983. :itulo/ 5ngeniero en &iencias 5nform*ticas. (atos 'dicionales/ :raba+ador de la 6ni-ersidad de &iencias 5nform*ticas. 0raduado con :itulo de 9ro de 5ngeniero en &iencias 5nform*ticas en dicha uni-ersidad. Beferente al :raba+o/ &iudad/ &iudad de la ;abana. .a"s/ &uba. Jecha de Beali!acin/ febrero del K008.

.ara -er traba+os similares o recibir informacin semanal sobre nue-as publicaciones, -isite www.monografias.com

Potrebbero piacerti anche