Está en la página 1de 7

www.monografias.

com
Generacin de cdigo en la programacin Web avanzada
Leevan Abon Cepeda labon@uci.cu
Resumen:
La generacin de cdigo en el mundo se ha hecho algo imprescindible, pues el ahorro de tiempo, la
eficiencia en la programacin y la estandarizacin de cdigo son los pilares fundamentales para la
construccin de un proyecto. La automatizacin de la programacin trae consigo un cambio radical en la
construccin de softwares, pues el programador solo tendra que concentrarse en la Lgica del Negocio que
desea implementar, debido a que el resto de las tareas pueden ser generadas, perdindose mucho tiempo
creando plantillas y programando la apa de !cceso a "atos, cosa que puede ser erradica generando todo
este cdigo con solo especificarle alg#n que otro par$metro, sin importar el lengua%e.
&in lugar a dudas el resultado m$s rele'ante consiste en el ahorro del tiempo y alcance de un estado
superior en la calidad de software. !dem$s de ser una herramienta hecha para los propios programadores,
ayudando a facilitar su traba%o, el cual suele ser en ocasiones engorroso y difcil, constituyendo un paso de
a'ance en el me%oramiento de las condiciones de traba%o.
(alabras cla'es) *eneracin de digo, programacin, ahorro de tiempo, automatizacin.
Introduccin:
+n la construccin de aplicaciones ,eb con modelos de - capas./nterfaz de 0suario, Lgica de Negocio y
!cceso a "atos1 aparecen una serie de patrones comunes en cualquiera de las capas e2istentes as como a
la hora de la programacin 3rientada a 3b%eto, por lo que muchas 'eces los programadores tienen que
repetir el mismo segmento de cdigo 'arias 'eces cuando desarrollan una aplicacin siendo esto una
situacin problmica en la construccin de cualquier software perdindose tiempo innecesariamente en su
construccin y a pesar de que el cdigo es el mismo, se cometan errores. 4odo esto trae consigo una falta
de eficiencia muy grande a la hora de programar.
+n trminos m$s generales, la generacin de cdigo es usada para construir programas de una manera
autom$tica e'itando que los programadores tengan que escribir el cdigo a mano. onstituyendo un ahorro
de tiempo en el desarrollo de proyectos y aplicaciones.
Desarrollo:
La generacin de cdigo ha de'enido en una necesidad casi obligatoria para la mayora de los
programadores durante el desarrollo de software. Numerosas herramientas conocidas como !&+ permiten
la generacin autom$tica de cdigo a partir de diagramas o modelos.
La generacin de cdigo data desde la e2istencia de los primeros compiladores. 5asta la aparicin de los
primeros generadores de cdigo comercial u orientado a 6usuarios finales67 la generacin de cdigo era
e2clusi'idad de programas compiladores especializados. +n tiempos m$s recientes la generacin de cdigo,
gracias al a'ance de la ingeniera del software, se ha lle'ado a un ni'el diferente7 donde se encuentran
programas generadores de pantallas, reportes y consultas, estas son herramientas de gran utilidad7 pero se
debe, en la mayora de los casos, pagar una gran cantidad de dinero por ellos. 89: 4oda'a el mundo se
encuentra a'anzando y dando pasos firmes en el tema de generacin de cdigo, pues no se puede hablar
de una herramienta eficaz que cumpla con todos los requerimientos necesarios en la actualidad, pero
tampoco e2iste una slida preparacin en cuanto al tema, pues todo programador se enfrasca en el cdigo
que debe confeccionar y no en la b#squeda de una herramienta que le puede ayudar a generar parte de ese
cdigo.
Tipos de generacin de cdigo:
Templating. &e genera un armazn .o esbozo1 de cdigo fuente no funcional para ser editado, con el que
se e'ita tener que escribir la parte m$s repetiti'a del cdigo .generalmente poco comple%a1. &uele ser una
opcin recomendable.
arcial. &e genera cdigo fuente que implementa parcialmente la funcionalidad requerida, pero que el
programador usar$ como base para modificar, integrar y;o adaptar a sus necesidades. No suele ser
recomendable. (or e%emplo) generamos una aplicacin para el mantenimiento de tablas de una <ase de
datos.
Total. &e genera cdigo fuente funcionalmente completo pero que no 'a a ser modificado por el
programador, sino que si es necesario se 'uel'e a regenerar. (or lo general tampoco suele ser un cdigo
e2cesi'amente comple%o. =ecomendable.
Creacin de generadores de cdigo:
(ara la creacin de generadores de cdigo se deben considerar los siguientes aspectos)
(ara 'er traba%os similares o recibir informacin semanal sobre nue'as publicaciones, 'isite www.monografias.com
www.monografias.com
> La arquitectura de software para la cual se 'a ha desarrollar el generador.
> Las caractersticas especificas del lengua%e de programacin.
> +l lengua%e con el que se desarrollar$ el propio generador.
> =esponder las interrogantes) ?La generacin de cdigo se realizar$ a partir de modelos como 0ml@ ?La
generacin de cdigo se har$ a partir de las tablas de una base de datos@, ?&e realizar$ un generador
de cdigo que su resultado sea fragmentos de cdigo que son de uso m$s frecuente en el software@
?&e crear$ un generador genrico que 6genere6 cdigo para diferentes lengua%es@
> Las reglas de utilizacin del generador, en otras palabras, la forma adecuada para que los usuarios del
generador obtengan el mayor pro'echo.
+n sntesis para crear un generador de cdigo se deben hacer muchas de las tareas que realizan los
compiladores7 algunas de estas tareas son) la b#squeda de patrones, la escritura de cdigo, el an$lisis
sint$ctico, el an$lisis l2ico y la optimizacin de cdigo. +stas tareas las realiza el desarrollador una 'ez,
para una arquitectura especfica.
Desventa!as de los generadores e"istentes:
+n el mundo e2isten una serie de *eneradores de cdigos innumerables, pero a pesar de sus facilidades,
tambin tienen sus des'enta%as, como)
*eneran cdigo solo referente a los mtodos b$sicos en las cone2iones a la <ase de
datos, es decir, insertar, modificar, eliminar y en casos muy especficos consultas.
No est$n orientados a una arquitectura, y para especificarle una se debe realizar todos los
modelos correspondientes a la misma, siendo esto un traba%o muy engorroso y difcil de
modelar.
! 'eces deben ser demasiado detallados los diagramas para generar un simple cdigo y
otras 'eces no es posible a tra's de diagramas especificar lo que se quiere hacer.
La mayora de los generadores de cdigo son aplicaciones de escritorio.
Ar#uitectura ideal para la generacin de cdigo:
0na aplicacin se compone de 'arios componentes, as como el modo en que cada uno de los cuales
realiza una tarea diferente. 4odas las soluciones de software contienen tipos de componentes similares,
independientemente de las necesidades que deban cubrir. (or e%emplo, la mayora de las aplicaciones
contienen componentes que tienen acceso a datos, encapsulan reglas empresariales y controlan la
interaccin con el usuario, entre otros. La identificacin de los tipos de componentes que se encuentran
normalmente en las soluciones de software facilitar$ la elaboracin de un plano tcnico para el diseAo de las
aplicaciones, as como para una r$pida creacin o utilizacin de herramientas de generacin de cdigo.
Tipos de componentes:
+l an$lisis de la mayora de las soluciones basadas en modelos de componentes por capas muestra que
e2isten 'arios tipos de componentes habituales. +n la figura 9.9 se muestra una ilustracin completa en la
que se indican estos tipos de componentes. !unque la lista que se muestra en la figura no es completa,
representa los tipos de componentes de software m$s comunes encontrados en la mayora de las
soluciones con una arquitectura en capas, orientada a ob%etos y 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 mayor parte de las soluciones necesitan ofrecer al usuario
un modo de interactuar con la aplicacin. Las interfaces de usuario se implementan utilizando formularios,
controles u otro tipo de tecnologa que permita procesar y dar formato a los datos de los usuarios, as como
adquirir y 'alidar los datos entrantes procedentes de stos. +n un gran n#mero de casos, la interaccin del
usuario con el sistema se realiza de acuerdo a un proceso predecible.
Componentes de lgica de negocio o empresariales. /ndependientemente de si el proceso consta de un
#nico paso o de un flu%o de traba%o organizado, la aplicacin requerir$ probablemente el uso de
componentes que implementen reglas empresariales y realicen tareas empresariales. (or e%emplo, en la
aplicacin comercial, deber$ implementar una funcionalidad que calcule el precio total del pedido y 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 mayora de las aplicaciones y ser'icios necesitan obtener acceso a
un almacn 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 realiza
un pedido. (or tanto, es razonable abstraer la lgica necesaria para obtener acceso a los datos en una capa
independiente de componentes lgicos de acceso a datos, ya que de este modo se centraliza la
funcionalidad de acceso a datos y se facilita la configuracin y el mantenimiento de la misma.
B. *ervicios. uando un componente empresarial requiere el uso de la funcionalidad proporcionada por un
ser'icio e2terno, tal 'ez 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 y pueden proporcionar ser'icios adicionales, como la asignacin
b$sica del formato de los datos que e2pone el ser'icio al formato que requiere la aplicacin.
C. Componentes de seguridad: La directi'a de seguridad se ocupa de la autenticacin, autorizacin,
comunicacin segura, auditoria y administracin de perfiles.
ada componente tiene sus especificidades las cuales cumple funcionalidades de acuerdo al rol que tienen
en la aplicacin. ! continuacin se muestra una descripcin un poco mas detallada por cada componente,
para una mucha me%or comprensin de la arquitectura
$uncionalidades de los componentes de inter&az de usuario
Los componentes de la interfaz de usuario deben mostrar datos al usuario, obtener y 'alidar los datos
procedentes del mismo e interpretar las acciones de ste que indican que desea realizar una operacin con
los datos. !simismo, la interfaz debe filtrar las acciones disponibles con el fin de permitir al usuario realizar
slo aquellas operaciones que le sean necesarias en un momento determinado. Los componentes de
interfaz de usuario)
No inicializan, 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 'isualizacin como un controlador.
!l aceptar la entrada del usuario, los componentes de la interfaz)
!dquieren los datos del usuario y atienden su entrada utilizando guas 'isuales .como
informaciones sobre herramientas1 y sistemas de 'alidacin, as como los controles
necesarios para realizar la tarea en cuestin.
apturan los e'entos del usuario y llaman a las funciones de control para indicar a los
elementos de la interfaz de usuario que cambien el modo de 'isualizacin de los datos, bien
inicializando una accin en el proceso de usuario actual, o bien, modificando los datos del
mismo.
=estringen los tipos de entrada del usuario. (or e%emplo, un campo puede limitar las entradas
del usuario a 'alores numricos.
=ealizan la 'alidacin de entrada de datos, por e%emplo, restringiendo el inter'alo de 'alores
que se pueden escribir en un campo determinado, o garantizando que se escriben los datos
obligatorios.
Lle'an a cabo la asignacin y transformacin simple de la informacin proporcionada por los
controles del usuario en los 'alores necesarios para que los componentes subyacentes
realicen su traba%o .por e%emplo, un componente de interfaz de usuario puede mostrar el
nombre de un producto pero pasar el /d. del mismo a los componentes subyacentes1.
/nterpretar las acciones del usuario .como las operaciones de arrastrar y colocar o los clics de
botones1 y llamar a una funcin de control.
(ueden utilizar un componente de utilidad para el almacenamiento de datos en cach.
(ueden utilizar un componente de utilidad para realizar la paginacin. +s frecuente,
especialmente en las aplicaciones ,eb, mostrar largas listas de datos como con%untos
paginados. !simismo, se suele disponer de un componente de ayuda para realizar el
seguimiento de la p$gina actual en la que se encuentra el usuario y, 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 tamaAo de p$gina y p$gina actual. La paginacin se puede realizar sin
la interaccin del componente de proceso de usuario.
Componentes de lgica de negocio o empresariales
Los componentes empresariales pueden ser la raz de las transacciones atmicas. Dstos implementan las
reglas empresariales en di'ersos patrones y aceptan y de'uel'en estructuras de datos simples o comple%as.
Los componentes empresariales deben e2poner funcionalidad de modo que sea independiente de los
almacenes de datos y los ser'icios necesarios para realizar la tarea, y se deben componer de forma
coherente desde el punto de 'ista del significado y transaccional. &i el proceso empresarial in'ocar$ a otros
procesos empresariales en el conte2to de una transaccin atmica, todos los procesos in'ocados deben
garantizar que sus operaciones participan en la transaccin e2istente de modo que las operaciones se
deshagan en caso de que la lgica empresarial que realiza las llamadas se interrumpa. 0na tcnica muy
segura es 'ol'er a intentar una operacin atmica si sta da error, sin miedo a que los datos pierdan su
coherencia. onsidere el lmite de una transaccin determinada como un lmite de reintento. +n la siguiente
lista se resumen las recomendaciones relati'as al diseAo de componentes empresariales)
<$sese lo m$s que pueda en la comunicacin basada en mensa%es.
!seg#rese de que los procesos e2puestos en las interfaces de ser'icios no se pueden
alterar y que, por tanto, el estado de la aplicacin o el ser'icio no perder$ su coherencia si
se recibe el mensa%e dos 'eces.
+li%a con cuidado los lmites de la transaccin de modo que se puedan realizar reintentos y
composiciones. +sto 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 e2poner la funcionalidad de la aplicacin como un ser'icio.
Los componentes empresariales se deben poder e%ecutar en el conte2to de cualquier
usuario de ser'icio7 no necesariamente suplantando a un usuario de una aplicacin
especfica. +sto permite su in'ocacin con mecanismos que ni transmiten ni delegan la
identidad del usuario.
+li%a y mantenga un formato de datos coherente .como EFL, con%unto de datos, etc.1 para
los par$metros de entrada y 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
/nterfaces de ser'icios.
omponentes de proceso de usuario.
Glu%os de traba%o empresariales.
3tros componentes empresariales.
+n la figura9.H se muestra un componente empresarial tpico que interact#a con los componentes lgicos de
acceso a datos, las interfaces y los agentes de ser'icios y otros componentes empresariales.
$igura %.+. Componentes empresariales
3bsr'ese los siguientes puntos)
9. Los componentes empresariales pueden ser in'ocados por los componentes de las capas de
presentacin.
H. Los componentes empresariales pueden ser in'ocados por interfaces de ser'icios .por e%emplo, un
ser'icio ,eb EFL1.
-. Los componentes empresariales pueden llamar a componentes lgicos de acceso a datos para
recuperar y actualizar datos, y pueden in'ocar a otros componentes empresariales.
B. Los componentes empresariales tambin pueden in'ocar a agentes de ser'icios. 4enga especial
cuidado al diseAar la lgica de compensacin en caso de que el ser'icio al que desea tener acceso
no est disponible o lle'e demasiado tiempo de'ol'er una respuesta.
,ota: Las flechas que 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 y ser'icios necesitan almacenar y obtener acceso a un determinado tipo de
datos.
!l traba%ar con datos debe determinar)
9. +l almacn de datos que utiliza.
H. +l diseAo de los componentes utilizados para obtener acceso al almacn de datos.
-. +l formato de los datos pasados entre componentes y el modelo de programacin necesario para
ello.
La aplicacin o ser'icio puede disponer de uno o 'arios orgenes de datos, los cuales pueden ser de tipos
diferentes. La lgica utilizada para obtener acceso a los datos de un origen de datos se encapsular$ en
componentes lgicos de acceso a datos que proporcionan los mtodos necesarios para la consulta y
actualizacin de datos. Los datos con los que la lgica de la aplicacin debe traba%ar est$n relacionados con
entidades del mundo empresarial que forman parte de la empresa. +n determinados escenarios, puede
disponer de componentes personalizados que representan estas entidades, mientras que en otros puede
decidir traba%ar con datos utilizando directamente con%untos de datos o documentos EFL. La mayora de las
aplicaciones utilizan una base de datos relacional como almacn principal de los datos de la aplicacin.
Dise-o de la directiva de seguridad
La directi'a de seguridad se ocupa de la autenticacin, autorizacin, comunicacin segura, auditora y
administracin de perfiles, tal como muestra la figura 9.-.
(ara 'er traba%os similares o recibir informacin semanal sobre nue'as publicaciones, 'isite www.monografias.com
www.monografias.com
$igura %.0. Aspectos de la directiva de seguridad
rincipios generales sobre seguridad
+2isten ciertos principios generales sobre seguridad que se deben tener en cuenta a la hora de desarrollar
una directi'a de seguridad. 5ay que tener en cuenta las siguientes directrices)
&iempre que sea posible, se debe recurrir a sistemas de seguridad que se hayan comprobado
y demostrado su eficacia en lugar de generar su propia solucin personalizada.
Nunca confiar en las aportaciones e2ternas. "eber$ 'alidar todos los datos que introduzcan
los usuarios o en'en otros ser'icios.
onsiderar por principio que los sistemas e2ternos no son seguros. &i su aplicacin recibe
datos confidenciales sin cifrar desde un sistema e2terno, asuma que dicha informacin no es
segura.
!plicar el principio del menor pri'ilegio. No habilitar m$s atributos en las cuentas de ser'icios
que los que resulten estrictamente necesarios para la aplicacin. 3btener acceso a los
recursos con cuentas que tengan los mnimos permisos necesarios.
=educir el $rea de superficie. +l riesgo se incrementa seg#n aumenta el n#mero de
componentes y datos que haya e2puesto a tra's de la aplicacin y, por lo tanto, se deber$
e2poner #nicamente la funcionalidad que se crea que otros 'an a utilizar.
+stablecer como predeterminado un modo seguro. No habilitar ser'icios, tecnologas y
derechos de cuenta que no sean absolutamente necesarios. uando se implemente la
aplicacin en equipos cliente o ser'idor, la configuracin predeterminada de esta deber$ ser
segura.
No confiar en la seguridad a tra's del ocultamiento. +l cifrado de los datos implica disponer
de cla'es y de un algoritmo de cifrado demostrado. +l almacenamiento de los datos seguros
e'itar$ el acceso a sta en cualquier circunstancia. No se puede considerar seguridad la
mezcla de di'ersas cadenas, el almacenamiento de la informacin en rutas de archi'o
inesperadas y dem$s tcnicas similares.
&eguir los principios de &4=/"+. .&4=/"+ responde a las siglas inglesas de &imulacin,
!lteracin, =epudio, =e'elacin de informacin, "enegacin de ser'icio y +le'acin de
pri'ilegios1. 4odas estas son clases de 'ulnerabilidades de la seguridad contra los que un
sistema se debe proteger.
=ealizar la comprobacin desde la misma puerta. No permitir que los procesos 'ayan m$s all$
del lugar para el que los usuarios est$n autorizados.
<loquear su sistema interna y e2ternamente) los usuarios y operadores internos pueden
representar un riesgo igual que los intrusos e2ternos.
Conclusiones:
Ialorados los impactos causados por los generadores de cdigo, se puede afirmar que su uso es de gran
ayuda en la confeccin de softwares, me%or$ndose grandemente la calidad de la produccin, el
establecimiento de est$ndares de cdigo y el tiempo de desarrollo de las aplicaciones.
!dem$s, con un buen uso una arquitectura en componentes se puede llegar a obtener un m$2imo
rendimiento del generador de cdigo que se utilice, as como una buena practica de lo mtodos de
construccin de software utilizando capas o componentes.
Re&erencias 1ibliogr2&icas:
3F(/L!"3=+& J *+N+=!"3=+& "+ K"/*3.
http);;www.mail2mail.com;curso;informatica;generadores;capituloH.htm .
3"+5!=*+ &40"/3. http);;www.yessoftware.com;products;productLdetail.php@
productLidM9.
larion. http);;www.gopac.com.m2;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, =. &oftware +ngineering. ! (ractitionerNs !pproach. Gourth +dition. Fc*raw O
5ill. 0&!, 9PPP.
=eferente al !utor)
Leevan Abon Cepeda.
labon@uci.cu
!Ao de nacimiento) 9PQ-.
4itulo) /ngeniero en iencias /nform$ticas.
"atos !dicionales) 4raba%ador de la 0ni'ersidad de iencias /nform$ticas. *raduado con 4itulo de 3ro de
/ngeniero en iencias /nform$ticas en dicha uni'ersidad.
=eferente al 4raba%o)
iudad) iudad de la 5abana.
(as) uba.
Gecha de =ealizacin) febrero del HRRQ.
(ara 'er traba%os similares o recibir informacin semanal sobre nue'as publicaciones, 'isite www.monografias.com

También podría gustarte