Belgrano. Las tesinas. Universidad de Belgrano. Departamento de Investigaciones Agosto 2008
|
|
- Carlos Arroyo Peña
- hace 8 años
- Vistas:
Transcripción
1 Universidad de Belgrano Las tesinas de Belgrano Facultad de Tecnología Informática Ingeniería en Informática Generación de código fuente en aplicaciones Web. Nº 226 Leonardo F. Tomé Tutor: Alejandro A. Vaisman Departamento de Investigaciones Agosto 2008
2
3 Estilo decisionista matizado de gobierno. Agradecimientos A mi hermano Pablo; a Enrique Molinari y a quienes de una u otra manera ayudaron a que este trabajo sea posible.
4
5 Índice Índice... 5 Resumen... 7 Capítulo 1 Introducción Contexto Motivación Contribución Organización del documento... 8 Capítulo 2 Estado del arte Genexus... 8 Modelo de desarrollo... 9 Tecnologías involucradas BackEnd Wizard Modelo de desarrollo Tecnologías involucradas Otras herramientas ASPRunner Profesional SQL2JAVA...11 Evolve...11 Brightsword Resumen...11 Capítulo 3 La herramienta propuesta: Balmod Modelo de desarrollo Lectura de metadatos Configuración de presentación Generación de código Tecnologías involucradas Comparación de Balmod con herramientas similares Resumen Capítulo 4 Diseño de Balmod Esquema general de Balmod Técnica de generación in-line code expansion Modelo de datos y procesos Lector de Metadatos Generador de Código Ejemplos de funcionamiento Funcionamiento general Generación de código Resumen Capítulo 5 Ejemplo de uso Caso de estudio Configuración Lectura de metadatos Especificación Generación de código Análisis del código generado con Balmod Resumen Capítulo 6 Trabajos futuros y conclusiones Trabajos futuros Conclusiones... 28
6 Apéndice A Ejemplo de una aplicación web Solicitud de datos al usuario Validación de datos ingresados por el usuario Registro en la base de datos de la información ingresada Información del resultado de la operación Apéndice B Configuración de Balmod Apéndice C Conectividad de Balmod con motores de bases de datos Apéndice D Componentes Auxiliares Glosario: Bibliografía
7 Resumen Este trabajo presenta Balmod, una herramienta de software generadora de código fuente orientada al desarrollo de aplicaciones web que utilicen bases de datos. El principal objetivo de la aplicación consiste en acelerar el proceso de desarrollo de módulos de uso habitual en diferentes aplicaciones; básicamente altas, bajas y modificaciones. La generación automática de código fuente permite que las tareas que habitualmente son realizadas por un programador se realicen automáticamente generando archivos con código fuente destinado a resolver un determinado tipo de problemas de aparición recurrente. Se logra así disminuir los recursos de desarrollo necesarios, evitando el origen de errores de programación y aumentando la productividad. Una de las características distintivas de la herramienta aquí propuesta es la capacidad de operar independientemente del tipo de tecnología específica que desee utilizarse; ya sea en herramientas relativas a motores de bases de datos, lenguajes de programación o plataformas de ejecución. Capítulo 1 Introducción 1.1 Contexto Actualmente no existen dudas de que el manejo de información automatizado proporciona beneficios deseados por cualquier clase de organización como lo son por ejemplo persistencia de información, búsquedas ágiles y eficientes de información, óptimo mantenimiento de datos y duplicación de datos instantánea entre otros. Con el desarrollo de internet; la utilidad de los sistemas informáticos se potenció considerablemente debido a la posibilidad de acceso a la información mediante cualquier computadora conectada a la red con un navegador (browser) instalado. En sus inicios la totalidad de la información publicada en internet estaba compuesta por páginas en formato HTML completamente estáticas lo que no hacía posible personalizar información publicando datos del interés de algún usuario en particular de acuerdo a las necesidades y/o posibilidades del mismo. Esa fue la causa en la que se originan los lenguajes de desarrollo de aplicaciones web. Los lenguajes de desarrollo de aplicaciones web permiten publicar en la red información de manera dinámica generando páginas HTML mediante el procesamiento de información concreta; esto permite, por ejemplo, que un usuario se conecte a un sitio web y que solicite información específica, luego el servidor web recibe esa solicitud, busca la información en alguna fuente de datos (por ejemplo una base de datos relacional), genera una página HTML que contenga la información solicitada y finalmente envía la página al usuario. En la figura 1.1 puede observarse un ejemplo tradicional de la arquitectura de una aplicación web. Figura 1.1 Arquitectura de una aplicación web 7
8 El desarrollo de una aplicación web básicamente debe contemplar 3 componentes: un modelo de datos, una aplicación que envía información al cliente desde el servidor web y finalmente una aplicación que envíe información al servidor web desde el cliente. Para el modelo de datos mayoritariamente se utiliza un Sistema Administrador de Base de Datos Relacionales mediante el cual es posible manipular datos de una manera efectiva y eficiente. La aplicación que envía información al cliente desde el servidor puede ser implementada utilizando un lenguaje de programación de aplicaciones web como por ejemplo ASP, PHP o JSP. La aplicación que envía información al servidor desde el cliente puede ser implementada en lenguaje HTML. Dado que HTML básicamente se trata de un lenguaje orientado a la presentación de información y no al procesamiento de esta; se extendieron sus capacidades mediante el lenguaje Javascript para tal fin; para especificar la apariencia de la información presentada se le incluyó el procesamiento de archivos de estilos denominados CSS (Cascade Style Sheet). En el apéndice A se encuentra un simple ejemplo de una aplicación web en el que puede observarse como interactúan las tecnologías involucradas. 1.2 Motivación La aplicación descripta en el apéndice A muestra que son muchas las tecnologías necesarias para un desarrollo web; esta variedad de tecnologías provoca que la complejidad de un sistema de este tipo aumente provocando así el incremento de tiempos y costos de desarrollo. En todo proceso de desarrollo de software resulta de gran utilidad identificar previamente tareas recurrentes utilizadas en otros desarrollos. Considerando que toda aplicación que incluya un repositorio de datos debe proveer una vía para administrarlo y de acuerdo a la arquitectura expuesta en la figura 1.1 puede inferirse que una de las tareas presente en desarrollos web es el desarrollo de una aplicación que permita la administración de la información almacenada en las bases de datos del sistema web. A este tipo de aplicaciones tradicionalmente se los conoce como ABMs debido a que las operaciones básicas propias de la administración de información almacenada en bases de datos son Altas, Bajas y Modificaciones de datos. 1.3 Contribución La herramienta aquí presentada permite la generación automática de código fuente para aplicaciones ABMs independientemente del motor de base de datos de soporte con capacidad de generación en distintos lenguajes orientados a plataformas web. Su utilización permite generar aplicaciones con un esfuerzo considerablemente menor al necesario en la programación íntegramente manual en cualquier plataforma de ejecución compatible con Java Virtual Machine. 1.4 Organización del documento Inicialmente, en el Capítulo 2, serán descriptas herramientas similares a Balmod que reflejan el estado del arte en el campo de generación de código fuente. En el Capítulo 3 se describirá la funcionalidad de Balmod y se comparará con las herramientas presentadas anteriormente para establecer las similitudes, diferencias y contribuciones proporcionadas por cada herramienta focalizándose especialmente en Balmod. El Capítulo 4 presenta y describe el diseño de Balmod. En el Capítulo 5 se presenta un ejemplo de uso de Balmod sobre la generación de un ABM del que ya se encuentra desarrollada una versión mediante programación tradicional. En el capítulo 6 se proponen trabajos futuros y se formulan conclusiones. El Apéndice A presenta y describe un ejemplo práctico de una aplicación web. Los Apéndices B, C y D contienen información técnica que ejemplifica el funcionamiento de la aplicación. Capítulo 2 Estado del arte En este capítulo se describen las principales herramientas de generación de código existentes. En particular fueron seleccionadas Genexus y Back End Wizard para estudiarlas en forma detallada. 2.1 Genexus Genexus es una herramienta desarrollada en Uruguay por ARTech que en 15 años en el mercado tecnológico comercializó más de licencias brindando servicios a 4500 clientes en 26 países de 4 continentes; su objetivo es asistir al analista y a los usuarios en todo el ciclo de vida de las aplicaciones. El paradigma de Genexus consiste en automatizar todo lo automatizable, lo que implica en el ciclo de vida de un sistema informático diseñar automáticamente una base de datos normalizada y generar y mantener la base de datos, los programas de aplicación y documentación autosuficiente. 8
9 Modelo de desarrollo El modelo de desarrollo utilizado por Genexus es el modelo de desarrollo incremental basado inicialmente en tres etapas; diseño, prototipación e implementación; posteriormente a la ejecución completa de estas etapas pueden desarollarse tareas de mantenimiento y de documentación. El ambiente de realización y prueba de diseño y prototipo utilizado es Windows NT/2000/XP. En la etapa de diseño el analista junto con el usuario elaboran una base de conocimientos en la que se incluyen reglas de negocio las cuales se representan mediante diferentes objetos propios de Genexus como pueden ser por ejemplo el objeto transacción mediante el cual es posible que un usuario pueda crear, modificar o eliminar información de la base de datos. Una vez finalizada esta etapa puede diseñarse en forma abstracta (independientemente del motor de bases de datos) un modelo de datos con base en la teoría de Bases de Datos Relacionales obteniéndose una base de datos en tercera forma normal. La siguiente etapa es la de prototipación y consiste en probar el modelo diseñado en un prototipo de Genexus. El prototipo de Genexus es una aplicación completa funcionalmente equivalente a la aplicación de producción. Durante esta etapa probablemente se detecten fallas en el diseño de la aplicación por lo que es posible regresar a la etapa anterior para corregir esas fallas. La tercera y última etapa dentro del modelo de desarrollo es la de implementación la cual se divide en dos subetapas: especificación y generación. En la subetapa de especificación se determinan tecnologías y características particulares propias de la tecnología seleccionada. En la subetapa de generación se produce y compila en código fuente. Debido a que Genexus utiliza una base de conocimientos para cumplir con su propósito es posible actualizar aplicaciones actualizando la base de conocimientos. Si se realizan cambios en la base de conocimientos de una aplicación ya implementada Genexus efectúa un análisis de impacto de los cambios realizados y ofrece la posibilidad de generar programas de conversión para la aplicación implementada o bien implementar nuevamente toda la aplicación. Debido a esta característica es de suma importancia no modificar manualmente el código fuente generado por Genexus porque de esta manera se producirían inconsistencias entre la base de conocimientos y la aplicación final lo que puede causar un nivel de inutilidad absoluto de la funcionalidad de mantenimiento de Genexus. Durante todo el proceso de desarrollo y mantenimiento de aplicaciones, Genexus elabora y mantiene un repositorio con documentación acerca de aplicación en cuestión. No solamente incluye la información propia de la base de conocimientos sino que además incluye toda la información inferida lógicamente. Tecnologías involucradas Actualmente existe una gran variedad de posibilidades para generar aplicaciones con Genexus; a continuación se enumeran todas las tecnologías con las que esta herramienta puede implementar aplicaciones. Las aplicaciones generadas por Genexus pueden ejecutarse en una gran variedad de plataformas: Sistemas operativos: o IBM OS/400 o Linux o Uníx o Windows NT/2000/2003 Servers o Windows NT/2000.XP/CE Plataformas web: o Java o ASP.NET o Visual Basic Script (ASP) o c/sql o HTML o Web Services Plataformas de ejecución: o JAVA o Microsoft.NET Los motores de bases de datos soportados por esta herramienta son: IBM DB2 UDB Informix Miscrosoft SQL Server MySQL 9
10 Oracle PostgreSQL. El código generado puede producirse en los siguientes lenguajes: Java C# C/SQL COBOL RPG Visual Basic Embedded Visual Basic Visual Fox Pro Las aplicaciones web pueden ejecutarse en los siguientes servidores: Microsoft IIS Apache Web Sphere 2.2 BackEnd Wizard El húngaro Attila Zsigmond es el creador de BackEnd Wizard, una herramienta desarrollada unipersonalmente; la última versión de este producto data del año 2004, su principal objetivo es generar páginas web que permitan listar, buscar, insertar, modificar y eliminar registros en bases de datos. La herramienta se encuentra implementada en una arquitectura cliente/servidor en lenguaje PHP y si bien es una herramienta comercial puede utilizarse parcialmente de manera gratuita ingresando a www. backend-wizard.com. Modelo de desarrollo Backend Wizard genera scripts PHP que permiten administrar tablas soportadas en MySQL; su funcionamiento íntegramente basado en una aplicación web consiste en crear las tablas necesarias enviando a la herramienta los comandos SQL correspondientes, indicar características de presentación de cada uno de los campos de las tablas en cuestión (por ejemplo, seleccionar si un determinado campo se presentará como casilla de texto o como lista desplegable) y finalmente generar el script. Una vez que se genera el script es posible visualizarlo, utilizarlo y testearlo sin costo alguno; si el usuario lo desea puede descargar el script generado a cambio del pago de una subscripción temporal. El proceso de creación de scripts resulta ser realmente ágil con el uso de esta herramienta sin embargo Backend Wizard posee dos restricciones sobre el modelo de datos a utilizarse que disminuyen significativamente su utilidad; la primera restricción es que no recomienda el uso de campos que admitan valores nulos debido a que pueden generar fallas en la funcionalidad de búsqueda de registros; la segunda restricción establece que todas las tablas del modelo de datos deben poseer como clave primaria un campo autonumérico, esta restricción impacta significativamente sobre la variedad de modelos de bases de datos posibles de utilizar ya que restringe la cantidad de campos propios de la clave primaria impidiendo además que sea posible establecer claves foráneas de más de un campo. Tecnologías involucradas Como ya se mencionó anteriormente Backend Wizard genera scripts en código PHP y como motor de bases de datos utiliza MySQL; actualmente los scripts PHP pueden ejecutarse en servidores web Apache o Miscrosoft Internet Information Server bajo los sistemas operativos Windows, Linux y Unix. Los scripts PHP generan información en el servidor Web y la presentan al cliente en lenguaje HTML. 2.3 Otras herramientas La oferta de herramientas generadoras de código fuente es muy variada. En la página web www. codegeneration.net puede encontrarse un listado con aproximadamente 200 aplicaciones de este tipo; cada una posee características particulares que enriquecen o empobrecen su utilidad; a continuación se describen brevemente algunas de ellas. ASPRunner Profesional Lenguaje de generación de código: ASP Motores de bases de datos: Oracle, SQL Server, MS Access, DB2, MySQL 10
11 Genera base de datos: no Plataforma de ejecución: Windows 95/NT o superior Licencia: comercial Creador: Universal Data Solutions, Inc (USA) Pagina web: SQL2JAVA Lenguaje de generación de código: Java Motores de bases de datos: Oracle, MYSQL, HSQL y cualquier motor de base de datos que soporte JDBC Genera base de datos: no Plataforma de ejecución: compatible con JVM Licencia: GPL Creador: desarrollo conjunto de código abierto Pagina web: Evolve Lenguaje de generación de código: ASP.NET Motores de bases de datos: Microsoft SQL Server 2000 o superior Genera base de datos: no Plataforma de ejecución: Windows 98 o superior Licencia: Freeware Creador: Joseph Cooney (USA) Pagina web: Brightsword Lenguaje de generación de código: ASP, PHP, JSP, ASP.NET Motores de bases de datos: Microsoft Access, MySQL, Oracle y Microsoft SQL Server Genera base de datos: no Plataforma de ejecución:.net Licencia: comercial Creador: BrightSword Technologies Private Limited (India) Pagina web: Resumen En este capítulo se presentaron herramientas similares a Balmod. Se describieron en detalle Genexus y Backend Wizard detallando el modelo de desarrollo que utiliza cada una y las tecnologías con las que trabajan. También se describieron brevemente otras herramientas similares. En el capítulo 3 se describirá en detalle el modelo de desarrollo y las tecnologías incluidas en Balmod para luego comparar las tres herramientas descriptas en detalle. Capítulo 3 La herramienta propuesta: Balmod Siempre que se implementa un modelo de datos relacional utilizando un motor de bases de datos es posible ingresar, modificar y eliminar datos en la base de datos mediante sintaxis SQL. Sin embargo, esta sintaxis no resulta práctica para el común de los usuarios finales por lo que en la mayoría de los casos en los que se utiliza una base de datos relacional también debe desarrollarse una aplicación que permita al usuario final administrar los datos de la base de datos sin que el mismo deba acudir a los tecnicismos de la sintaxis SQL. A este tipo de aplicaciones se los conoce como ABMs. Balmod es un software que permite agilizar el proceso de desarrollo de aplicaciones web focalizándose en la generación del código fuente de aplicaciones destinadas a administrar los contenidos de bases de datos relacionales lo que implica la generación del código fuente de un software que permita realizar altas, bajas y modificaciones en las diferentes tablas del modelo de datos en cuestión. En otras palabras; Balmod genera código fuente para ABMs. Para cumplir con su objetivo Balmod se basa en utilizar la información disponible del modelo de datos; a la información del modelo de datos (metadatos). El análisis de los metadatos permite deducir el formato 11
12 de la información que será almacenada. Por ejemplo; si en el modelo de datos contamos con la tabla T1 que posee los campos A, B y C siendo A un campo que contiene caracteres, B un campo numérico y C un campo que almacena fechas es posible inferir que para realizar altas es necesario el ingreso de una cadena de caracteres, un número y una fecha por lo que automáticamente es posible generar un formulario que permita dar altas sobre la tabla T1 validando que la información ingresada por el usuario contenga el formato necesario. En este capítulo se presenta una descripción general de Balmod y se lo compara con las herramientas descriptas en el capítulo 2. En el capítulo 4 se describirá detalladamente el producto. 3.1 Modelo de desarrollo El desarrollo de una aplicación mediante Balmod consta de tres etapas: lectura de metadatos, configuración de presentación y generación de código. Lectura de metadatos En esta etapa se indica el modelo de datos que se utilizará junto con información necesaria para acceder al mismo (usuario de la base de datos, contraseña, etc.); una vez que Balmod se conecta a la base de datos presenta una lista con las tablas del modelo de datos en la que debe indicarse cuáles serán administradas mediante la aplicación a generar; posteriormente se procederá a la extracción de información de cada una de las tablas seleccionadas elaborando internamente un esquema que contempla características de los diferentes campos de las tablas y sus relaciones. En el Apéndice C se indican los metadatos requeridos por Balmod para interpretar el modelo de datos. Balmod considera por cada campo: Pertenencia a clave primaria Pertenencia a clave foránea Tipo de dato Tamaño Admisión de valores nulos Autonumeración del valor Configuración de presentación Una vez especificada la información que debe ser considerada para la generación de la aplicación el usuario tiene la posibilidad de seleccionar diferentes características de presentación de la información a publicar como por ejemplo la etiqueta de identificación de cada campo y tabla y el modo de selección de valores de claves foráneas, entre otros. Generación de código Finalmente se procede a la generación del código fuente, para ello el usuario debe indicar parámetros como la ubicación de los archivos generados, datos para la conexión a la base de datos por parte de la aplicación y ubicación de archivos que pudieran ser referenciados por el código generado como por ejemplo archivos de imágenes gráficas. Figura 3.1 Flujo de datos en Balmod 12
13 3.2 Tecnologías involucradas La actual versión de Balmod está desarrollada con tecnología Java bajo su versión JRE lo que permite su ejecución en múltiples plataformas; los parámetros de configuración deben indicarse mediante lenguaje XML permitiendo una configuración simple, precisa y portable. Balmod y el código fuente que produce realizan conexiones a bases de datos mediante el uso de objetos ODBC; actualmente todos los motores de bases de datos utilizados masivamente soportan conexiones mediante objetos ODBC como es el caso de MS SQL Server, MySQL, PostgreSQL, Informix, IBM DB2 y Oracle. En el apéndice C se detallan las características de conectividad de Balmod con los diferentes motores de bases de datos. Balmod genera código fuente en lenguaje PHP, puede ser ejecutado en cualquier servidor web que soporte esta tecnología como por ejemplo Linux, Uníx, Microsoft Windows, Novell NetWare, OS/2, AS/400 y Solaris. Además, Balmod está diseñado para generar código en lenguajes de desarrollo de aplicaciones web como por ejemplo ASP y JSP; si bien internamente no implementa métodos que soporten la generación de código en estos lenguajes contiene una especificación para generación de código mediante la cual es posible implementar métodos que soporten la generación de código en lenguajes ASP y JSP. En el capítulo 4 se describe el funcionamiento del generador de código de Balmod. Resumiendo: Plataformas de ejecución de la herramienta: o Cualquiera compatible con JRE (MS Windows, Linux, Uníx, entre otros) Motores de bases de datos soportados: o Cualquiera compatible con ODBC (MS SQL Server, MySQL, DB2 entre otros) Lenguajes del código fuente generado: o PHP o Posibilidad de extensión a ASP y JSP. 3.3 Comparación de Balmod con herramientas similares A continuación se presenta un cuadro comparativo en el que se incluyen características de las tres herramientas presentadas y descriptas en los capítulos 2 y 3. Las características consideradas son: Arquitectura de aplicación generada: indica la disposición física y lógica de los componentes de la aplicación a ser generada. Funcionalidad de las aplicaciones generadas: representa el universo de problemas que la aplicación generada es capaz de resolver. Lenguajes: enumera los lenguajes de programación en los que puede generarse el código fuente. Solamente son considerados lenguajes de programación web. Motores de bases de datos: enumera aquellos motores con los que la herramienta es compatible. Plataforma de ejecución: indica la compatibilidad de la herramienta con software de base (sistemas operativos). Generación de modelos de datos: indica si la herramienta genera automáticamente modelos de datos. Esta característica puede considerarse como una ventaja o una desventaja dependiendo de cada caso en particular. En aquellos casos en los que no se posea una base de datos generada es un ahorro de esfuerzo generarla automáticamente. En los casos en los que ya se posea una base de datos que quiera ser reutilizada en una nueva aplicación la generación automática impediría la reutilización generando un modelo que probablemente sea diferente al que se desea reutilizar. Orientado a modificaciones manuales sobre el código generado: indica si los componentes generados automáticamente por la herramienta soportan modificaciones manuales. Si la herramienta utilizada está orientada al programador es porque se pretende que éste perfeccione y/o modifique el código generado en caso de que sea necesario por lo tanto el código fuente generado debe ser lo más simple, breve y conciso posible para permitir una clara interpretación del mismo; si el programador puede modificar el código fuente generado con un esfuerzo relativamente bajo tiene la posibilidad de explotar al máximo las capacidades del lenguaje de programación en cuestión adaptándolo a sus necesidades particulares. En el caso en el que la herramienta esté orientada al analista lo que debe cambiarse para perfeccionar una aplicación generada es el modelo lógico de la aplicación (en Genexus el modelo lógico es la base de conocimientos) y luego se genera nuevamente o se actualiza el código fuente pero el usuario en ningún momento entra en contacto con el código fuente por lo que no es necesario que posea conocimientos específicos del lenguaje de programación utilizado Restricciones sobre el modelo de datos utilizado: indica si la herramienta es compatible o no con cualquier modelo de datos. Modificación del modelo de aplicaciones generadas: indica si es posible generar nuevas aplicaciones 13
14 modificando el modelo de una aplicación generada anteriormente. Documentación de la aplicación generada: indica si la herramienta genera algún tipo de documentación de la aplicación generada. Genexus Backend-Wizard Balmod Arquitectura de aplicaciones generadas Funcionalidad de las aplicaciones generadas Lenguajes (web) Motores de bases de datos Plataforma de ejecución Genera modelo de datos Orientado a modificaciones manuales sobre el código generado Restricciones sobre el modelo de datos Modificación del modelo de aplicaciones generadas Documentación de la aplicación generada stand alone y web web web general ABM ABM Java, ASP.NET, ASP, c/sql IBM DB2 UDB, Informix, Miscrosoft SQL Server, MySQL, Oracle, PostgreSQL. MS Windows PHP My SQL Entorno web SI NO NO NO SI SI -- Claves primarias simples autonuméricas SI NO NO SI NO NO PHP extensible a ASP y JSP Cualquiera compatible con ODBC Compatible con Java VM Modelo en 3º forma normal Del cuadro anterior, con respecto a Genexus, se destaca que: Es la herramienta más poderosa de las presentadas. Su aplicación no se limita solamente a la generación de ABMs orientados a web sino a la generación de aplicaciones en general. Posee una amplia variedad en soporte a bases de datos y los lenguajes de generación de código. No genera código en PHP. Ejecuta solamente bajo plataforma MS Windows. Genera automáticamente el modelo de base de datos. No permite utilizar modelos de datos ya generados. No está orientado al programador; sino al analista. Soporta la generación de código fuente sobre aplicaciones generadas anteriormente. Genera documentación de la aplicación producida. Con respecto a Backend Wizard se destaca que: Su aplicación se limita a la generación de ABMs orientados a web. Soporta bases de datos MySQL y genera código fuente en PHP Al funcionar en un entorno web puede considerarse que se trata de una herramienta que ejecuta en cualquier plataforma (si bien la aplicación ejecuta en un servidor un usuario puede acceder a la herramienta mediante cualquier navegador que se encuentre ejecutándose en cualquier sistema operativo). Utiliza bases de datos existentes. No genera modelos de datos. Está orientado al programador. Las restricciones sobre el modelo de datos condicionan considerablemente su utilidad. 14
15 Con respecto a Balmod se destaca que: Posee una amplia variedad en soporte a bases de datos y a lenguajes de desarrollo de aplicaciones web. Es multiplataforma. Está orientado al programador. Facilidad y rapidez de uso. 3.4 Resumen En este capítulo se presentó Balmod describiendo su modelo de desarrollo y las tecnologías que utiliza. También se comparó a Balmod con Backend Wizard y con Genexus destacando las características de cada una de las herramientas presentadas. Capítulo 4 Diseño de Balmod Tal como se mencionó anteriormente, un ABM posee 3 funciones básicas: altas, bajas y modificaciones. Las operaciones de altas, bajas y modificaciones implican una serie de procedimientos comunes independientemente del modelo de datos utilizado. Por ejemplo, para realizar una alta en una tabla siempre deben realizarse como mínimo los siguientes pasos: Solicitar los datos a cargar. Validar los datos a cargar. Cargar los datos en la tabla correspondiente. Informar al usuario el resultado de la operación. Ese tipo de operaciones recurrentes posibilitan la generación automática de código fuente y en base a estas Balmod cumple con su propósito. 4.1 Esquema general de Balmod En el capítulo 4 de Code Generation in Action ([1]), Jack Herrington propone diferentes técnicas para generar código fuente. Tomando como referencia teórica esas técnicas Balmod implementa la denominada inline code expansion. La razón de su elección se basa justamente en la similitud de las operaciones recurrentes mencionadas anteriormente; durante el desarrollo de un ABM se cuenta principalmente con dos elementos: el modelo de datos y la lógica funcional. El resultado final se logra adaptando la lógica funcional al modelo de datos y ese es justamente el propósito de la técnica inline code expansion. 4.2 Técnica de generación in-line code expansion Esta técnica consiste en tomar una porción de código fuente base y adaptarla a requerimientos específicos. El código fuente base soluciona un problema específico en un entorno general identificando en su interior aquellos componentes que varían en cada caso particular mediante palabras clave o marcas especiales en el texto; este podría ser considerado un pseudocódigo. El generador de código debe analizar cada porción de código fuente base para luego modificarla de acuerdo a necesidades específicas reemplazando las marcas especiales por porciones de texto que se correspondan con los componentes específicos del caso particular de aplicación. En el ejemplo expuesto en [1] se presenta una caso en el que se desea generar automáticamente una porción de código en C++ que retorne en pantalla el resultado de una consulta SQL específica; esto implica conectarse a la base de datos, preparar la sentencia SQL, ejecutar la consulta, formatear el resultado de la consulta y mostrarlo en pantalla. Los subprocesos de conexión a la base de datos, ejecución de una consulta SQL, formateo de resultado de una consulta y presentación en pantalla básicamente realizan las mismas operaciones en casos diferentes independientemente de la forma de la consulta SQL es por eso que estos subprocesos pueden incluirse en el código fuente base. El código fuente base en este caso es: void main( int argc, char *argv[] ) { struct { char *first; char *last; } *sql_output_1; { 15
16 db_connection *db = get_connection(); sql_statement *sth = db->prepare( CONSULTASQL ); sth->execute(); sql_output_1 = malloc( sizeof( *sql_output_1 )*sth->count()); for( long index = 0; index < sth->count(); index++ ) { // código para mostrar datos } } return; } Los requerimientos específicos en este caso se corresponden con una consulta SQL: SELECT first, last FROM names El resultado final es el siguiente: void main( int argc, char *argv[] ) { struct { char *first; char *last; } *sql_output_1; { db_connection *db = get_connection(); sql_statement *sth = db->prepare( SELECT first, last FROM names ); sth->execute(); sql_output_1 = malloc( sizeof( *sql_output_1 )*sth->count()); for( long index = 0; index < sth->count(); index++ ) { // código para mostrar datos } } return; } Nótese que la porción del código base que contenía el texto CONSULTASQL en el código generado fue reemplazada por SELECT first, last FROM names. El modelo de Herrington emplea archivos de texto plano como elementos de entrada al proceso de generación de código lo cual implica que deben ser interpretados mediante un parser; en Balmod tanto el modelo de datos como las porciones de código fuente base son representadas en clases para evitar el uso de un parser, obtener valores específicos de una forma más simple y además contar con las ventajas proporcionadas por el paradigma de programación orientada a objetos es por esa razón que se optó por Java como lenguaje para su implementación. 4.3 Modelo de datos y procesos De acuerdo a la técnica inline code expansion para la generación del código fuente son necesarios dos componentes: el código fuente base y los requerimientos específicos. Como ya se mencionó anteriormente, en el desarrollo de un ABM el código fuente base se corresponde con la lógica funcional y los requerimientos específicos se corresponden con el modelo de datos; estos dos componentes son representados en Balmod mediante dos módulos; un módulo que permite reconocer e interpretar el modelo de datos que utiliza una determinada base de datos denominado Lector de Metadatos y un módulo denominado Generador de Código que basándose en el modelo de datos obtenido genera el código fuente. Lector de Metadatos El lector de metadatos a partir de una conexión a una base de datos y de una serie de consultas SQL genera una colección de objetos que representan metadatos de la base de datos en cuestión. 16
17 Figura 4.1 Entradas y salidas del Lector de Metadatos El mecanismo es el siguiente: Identifica las consultas SQL necesarias para el motor de base de datos en cuestión. Se conecta a la base de datos. Realiza las consultas correspondientes Genera los objetos correspondientes con los resultados obtenidos En la figura 4.2 puede observarse en notación UML reducida el diagrama de clases que representa el modelo de datos; no se incluyen atributos y métodos de cada clase para simplificar el esquema. Los objetos correspondientes al modelo de datos se corresponden con este diagrama. Figura 4.2 Diagrama de clases del modelo de datos Las clases involucradas son: ModeloBDD: contiene la colección de tablas propias de la base de datos en cuestión. MetadatosTabla: representa una tabla, contiene una colección de campos. Campo: es una clase abstracta que representa el campo de una tabla; contiene atributos comunes a los campos como el nombre y el tamaño entre otros. Tipos de datos: por cada tipo de datos existe una subclase que hereda de la clase Campo. Por ejemplo, para el tipo de dato entero (habitualmente conocido como int o integer) existe una subclase de Campo denominada CampoEntero que considera particularidades de este tipo de dato. Clave: esta superclase considera restricciones de un campo. ClavePrimaria y ClaveForanea: consideran restricciones de clave primaria y clave foránea respectivamente; la relación de composición con un objeto de la clase Clave existe para contemplar casos de campos que posean restricciones de clave primaria y foránea. Cada objeto que representa un componente del modelo de datos posee un conjunto de parámetros que pueden ser editados por el usuario permitiendo personalizar aspectos de la aplicación a generarse. Por ejemplo, la clase Campo posee un atributo denominado etiqueta mediante el cual el usuario puede asignar la etiqueta de identificación de cada campo en la aplicación generada. Generador de Código El generador de código toma como entradas el modelo de datos representado sobre objetos que genera el lector de metadatos y una serie de componentes auxiliares (ver Apéndice D) para producir los archivos de código fuente. 17
18 Figura 4.3 Entradas y salidas del Generador de Código Su funcionamiento consiste en generar por cada tabla del modelo de datos el grupo de archivos de código fuente necesario para realizar el ABM de esa tabla. También se encarga de generar archivos de código fuente de uso general como por ejemplo el menú principal de la aplicación o la librería de conexión a la base de datos. En la figura 4.4 puede observarse el diagrama de clases involucradas en el módulo generador de código. Figura 4.4 Diagrama de clases del Generador de Código Los componentes involucrados son: ModeloBDD: explicada anteriormente. GeneradorArchivos: se encarga de crear archivos y directorios con el nombre y la ubicación correspondientes. Además, introduce en los archivos el código fuente proporcionado por algún objeto que implemente la interfaz GeneradorCodigo. GeneradorCodigo: establece la interfaz que debe implementar una clase para poder producir código fuente en Balmod. En la siguiente sección se describe su funcionamiento. Generadores: son clases que implementan la interfaz GeneradorCodigo proporcionando código fuente en un determinado lenguaje de programación. 4.4 Ejemplos de funcionamiento Funcionamiento general Se utilizará un ejemplo para aclarar el funcionamiento general de Balmod. Un caso concreto puede producirse en la elaboración de un sistema de registro de ventas. Es requisito del sistema que para registrar la venta de un artículo debe ingresarse un registro en la tabla VENTAS; la cual contiene los siguientes campos: artículo: campo de texto que registra el artículo vendido. monto: campo numérico que refleja el monto de la venta. fecha: campo que almacena la fecha en la que ocurrió la venta. El modelo de datos está compuesto solamente por la tabla VENTAS; recopilando información sobre 18
19 esta tabla estaremos en conocimiento de los requerimientos específicos de la aplicación. Una vez que el Lector de Metadatos interpreta la información del modelo de datos obtiene el siguiente diagrama de objetos: Figura 4.5 Diagrama de objetos El diagrama representa a la tabla VENTAS y a los tres campos que la conforman; cada campo es un objeto perteneciente a una clase representante de un tipo de dato particular, en este caso existen instancias de las clases CampoTexto, CampoNumero y CampoFecha. Por otra parte tenemos conocimiento de la lógica funcional de un ABM; ésta debe contemplar: Formularios de carga de datos. Validación de los datos cargados y posterior registro según corresponda. Listados de datos cargados. Mecanismos para baja y modificación de datos. Los componentes de la lógica funcional de un ABM se corresponden con los métodos contenidos en la interfaz GeneradorCodigo. Así, por ejemplo, en la elaboración de un formulario para la carga de datos se dispone de un método que recibe como parámetro la tabla en cuestión y de acuerdo a la naturaleza de cada uno de los campos de la tabla genera el código correspondiente; si el campo es un número genera el código necesario para permitir el ingreso de números, si el campo es una fecha genera el código necesario para permitir el ingreso de una fecha y así sucesivamente. El pseudocódigo básico del método mencionado es el siguiente: funcion generarformulario (MetadatosTabla mt) por cada campo c existente en mt imprimir (campo c) fin loop fin funcion El método imprimir(campo c) se ejecuta de acuerdo a la naturaleza del campo en cuestión. Cada tipo de dato contiene una implementación particular de este método, no es igual el código correspondiente a un campo numérico que el correspondiente a un campo de fecha. La aplicación determina en tiempo de ejecución - utilizando polimofirsmo - cual de todos los métodos ejecutar de acuerdo al tipo de objeto instanciado por el Lector de Metadatos. Si se une la lógica funcional general de un ABM junto con los requerimientos específicos particulares de la aplicación es posible determinar concretamente la lógica funcional para la aplicación particular. La misma en este caso sería: Presentar un formulario para registrar ventas. El formulario debe permitir la carga de un artículo, el precio y la fecha correspondientes. Evaluar que la información ingresada por el usuario se encuentre en el formato correcto. Es decir, que el campo artículo esté completado con una cadena de caracteres, que el campo precio contenga un número y que el campo fecha contenga una fecha válida. Si los datos son correctos debe procederse al registro de la venta, caso contrario deberá indicársele al usuario que dato debe corregir y como hacerlo. Presentar al usuario un listado de las ventas registradas. Proveer las herramientas necesarias para que el usuario pueda eliminar o modificar las ventas en las que detecte algún error en la información registrada. 19
20 Generación de código El módulo de generación de código fuente en Balmod consiste en la implementación de una interfase en lenguaje Java denominada GeneradorCodigo; en esta interfase se incluyen los prototipos de una lista de métodos mediante los cuales es posible indicar la manera en la que un lenguaje en particular realiza una operación; todos los métodos retornan una cadena de caracteres o un conjunto de cadenas de caracteres y la gran mayoría recibe como argumento uno o varios objetos que representan componentes del modelo de datos como por ejemplo tablas, campos y claves primarias entre otros. Balmod incluye una implementación de la interfase GeneradorCodigo mediante la clase Generador- CodigoPHP de la cual a continuación se expone la implementación de uno de los métodos propios de la interfase en el que se retorna un conjunto de cadenas de caracteres que contienen el código PHP necesario para conectarse a una base de datos. public ArrayList conexionbasededatos() { ArrayList codigo = new ArrayList(); codigo.add( <?php ); codigo.add( // Conexión a la base ); codigo.add( include(\../includes/conexionodbc.php\ ); ); codigo.add( // Objeto de la base de datos ); codigo.add( $basededatos = new baseodbc(); ); codigo.add( $link_id = $basededatos->conectar() or die(\ Se produjo el siguiente error al intentar conectarse a la base de datos:\. $basededatos->sqlerror()); ); codigo.add(?> ); return codigo; } A continuación se presenta otro ejemplo de implementación de un método de la interfase GeneradorCodigo en el que se genera el código PHP para imprimir en formato HTML una lista de selección de valores correspondientes a una clave foránea compuesta por un campo (ClaveForaneaSimple); nótese que en este caso el método recibe como argumento un objeto que representa una clave foránea. public ArrayList imprimirselectclaveforaneacombo(claveforaneasimple cf) { ArrayList codigo = new ArrayList(); String[] campos_a_mostrar = cf.getparametroseditables().arreglodecolumnas(); codigo.add( <TR> + this.etiquetacampo(cf.campo) + <TD> ); codigo.add( <SELECT name=\ + cf.campo.nombreetiquetahtml() + \ > ); codigo.add( <?php ); codigo.add( //rellenado del SELECT ); codigo.add( $resultado = $basededatos->comandosql(\ select + cf.getcolumnaforanea() +, + MetodosAuxiliares.unirStrings(campos_a_mostrar,, ) + from + cf.getnombretablaforanea() + \ ) or die(\ </select>se produjo el siguiente error al intentar realizar una consulta a la base de datos:\. $basededatos->sqlerror()); ); codigo.add( while ($linea = $basededatos->generarlinea($resultado)) ); codigo.add( \techo \ <option value=$linea[ + cf.getcolumnaforanea() + ]>$linea[ + MetodosAuxiliares.unirStrings(campos_a_mostrar, ] - $linea[ ) + ]</option>\ ; ); codigo.add( \t$basededatos->liberarrecordset($resultado) ); codigo.add(?> ); codigo.add( </SELECT> ); codigo.add( </TD></TR> ); return codigo; } La interfase GeneradorCodigo está compuesta por 50 métodos y fue diseñada para soportar la implementación de generadores de código en lenguajes de desarrollo de aplicaciones web por lo que análogamente a la implementación del generador de código PHP pueden implementarse generadores para otros lenguajes como por ejemplo JSP o ASP. 20
Visión General de GXportal. Última actualización: 2009
Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de
Más detallesLa utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.
Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el
Más detallesBASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN
BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN 3.3 Aplicaciones Definición de Aplicación (Application). Programa informático que permite a un usuario utilizar una computadora con un fin específico. Las
Más detallesEstándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web
Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 4 Julio 2009 Índice 1. Generalidades... 3 1.1
Más detallesModulo I. Introducción a la Programación Web. 1.1 Servidor Web.
Modulo I. Introducción a la Programación Web. 1.1 Servidor Web. Antes de analizar lo que es un servidor Web y llevara a cabo su instalación, es muy importante identificar diferentes elementos involucrados
Más detallesCORPORACIÓN MEXICANA DE INVESTIGACIÓN EN MATERIALES, S.A. DE CV
Página 1 de 6 1. OBJETIVO El presente documento tiene la finalidad de citar los beneficios de la migración de la herramienta de análisis de riesgo, mantenimiento e inspección que en lo sucesivo se denominará
Más detallesPropuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA
Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)
Más detallesDescripción. Este Software cumple los siguientes hitos:
WWWMONITORDBACOM Descripción Este Software cumple los siguientes hitos: a- Consola de Monitoreo b- Envío de Alertas (correo, SMS) c- Gestión de Eventos desatendidos (sea capaz ejecutar script de solución
Más detallesCapitulo III. Diseño del Sistema.
Capitulo III. Diseño del Sistema. Para el desarrollo del sistema en la presente tesis se utilizo el paradigma orientado a objetos utilizando el lenguaje Java en su versión 1.2. Por medio de este lenguaje
Más detallesVisión General GXplorer. Última actualización: 2009
Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de
Más detallesCapitulo 5. Implementación del sistema MDM
Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo
Más detallesSLIDEFINDER: Una herramienta universal y gratuita para clasificar, buscar y compartir imágenes e información en la Web
SLIDEFINDER: Una herramienta universal y gratuita para clasificar, buscar y compartir imágenes e información en la Web José-María Zamanillo, Daniel Franco, Isabel Zamanillo, Constantino Pérez-Vega Estructura
Más detallesCapítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable
Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable 1. Introducción. El Sistema de Administración de Información de un Negocio Franquiciable (SAINF)
Más detallesWorkflows? Sí, cuántos quiere?
Workflows? Sí, cuántos quiere? 12.11.2006 Servicios Profesionales Danysoft Son notables los beneficios que una organización puede obtener gracias al soporte de procesos de negocios que requieran la intervención
Más detalles"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios
"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se
Más detallesElementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Más detallesVisión General GXflow. Última actualización: 2009
Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de
Más detallesdesarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el
Capitulo II. Análisis de herramientas y tecnologías de desarrollo. Dentro del desarrollo de la tesis el proceso de modelado del sistema fue hecho con el lenguaje de Modelo de Objetos llamado UML (Unified
Más detallese-mailing Solution La forma más efectiva de llegar a sus clientes.
e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution Es muy grato para nosotros presentarles e-mailing Solution, nuestra solución de e-mail Marketing para su empresa. E-Mailing
Más detallesAdministración de la producción. Sesión 10: Gestor de Base de Datos (Access)
Administración de la producción Sesión 10: Gestor de Base de Datos (Access) Contextualización Microsoft Access es un sistema de gestión de bases de datos, creado para uso personal y de pequeñas organizaciones,
Más detallesConfiguracion Escritorio Remoto Windows 2003
Configuracion Escritorio Remoto Windows 2003 Instalar y configurar servicio de Terminal Server en Windows 2003 Fecha Lunes, 25 diciembre a las 17:04:14 Tema Windows (Sistema Operativo) Os explicamos cómo
Más detallesAnexo 4 Documento de Arquitectura
Anexo 4 Documento de Arquitectura 1. Introducción El anexo se describe el propósito y alcance referentes al proyecto correspondiente al documento de arquitectura. 2. Propósito El propósito del anexo de
Más detallesObjetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.
Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios
Más detallesCapítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y
Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También
Más detallesMANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1
MANUAL DE USUARIO Webservice simple para la exportación rápida de información proveniente de una base de datos Versión 0,1,1 Jorge Iván Meza Martínez INTRODUCCIÓN Esta aplicación permite
Más detallesDiseño dinámico de arquitecturas de información
Diseño dinámico de arquitecturas de información CARACTERISTICAS DEL SISTEMA Las organizaciones modernas basan su operación en la gestión del conocimiento, es decir, en el manejo de información que se presenta
Más detallesGuía de instalación 1
Guía de instalación 1 Tabla de contenidos 1. Requisitos de software y hardware 3 2. Instalación del sistema 6 Bienvenida... 8 Archivo de licencia... del producto 9 Información de... licencia 12 Acuerdo
Más detallesAcronis License Server. Guía del usuario
Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE
Más detallesEstándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web
Secretaría de Planificación Estratégica Oficina de Informática Estándares para el Uso de Herramientas de Desarrollo y Plataformas de Aplicaciones Web VERSIÓN 3 Abril 2006 Índice 1. Generalidades... 3 1.1
Más detallesCARACTERISTICAS DEL SISTEMA
CARACTERISTICAS DEL SISTEMA 1. CONSIDERACIONES GENERALES El Sistema de Gestión Financiera en Línea esta orientada a LA GESTION DEL PRESUPUESTO Y COMPRAS, esto es posible mediante interfaces vía Web, cuya
Más detallesGuía Rápida de Inicio
Guía Rápida de Inicio 1. Acerca de esta Guía Esta guía le ayudará a instalar y dar los primeros pasos con BitDefender Security for SharePoint. Para disponer de instrucciones detalladas, por favor, diríjase
Más detalles1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14
EVALUACIÓN A TRAVÉS DE LA WEB: EL SISTEMA TUTORMAP 1 R.Criado, D.Martín y S. Sánchez (GIEMATI, Dpto. de CC. Experimentales e Ingeniería de la URJC) Resumen En este trabajo se describen las características
Más detallesUNIVERSIDAD DE OVIEDO
UNIVERSIDAD DE OVIEDO ESCUELA POLITÉCNICA DE INGENIERÍA DE GIJÓN MÁSTER EN INGENIERÍA INFORMÁTICA TRABAJO FIN DE MÁSTER SPRING ROO ADD-ONS PARA PROTOTIPADO RÁPIDO JAVIER MENÉNDEZ ÁLVAREZ JULIO 2014 UNIVERSIDAD
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
Más detallesENTORNO DE DESARROLLO MICROSOFT.NET 2010
ENTORNO DE DESARROLLO MICROSOFT.NET 2010 UNIDAD 2 Estructura de contenidos: 1. Conociendo ASP 2. Sitio Web y Proyecto Web 3. WebForm 4. Características de los webforms 5. Entorno del.net 6. Controles básicos
Más detallesSIGPRE Sistema de Gestión Presupuestaria
SIGPRE Sistema de Gestión Presupuestaria Documento de Arquitectura UTN Histórico de Revisiones Fecha Versión Descripción Autor 11/17/2009 1.0 Borrador de la arquitectura Roberto López Hinojosa 12/14/2009
Más detalles2.3. Lenguajes de programación del lado Servidor. ASP.NET (Active Server Pages).
2.3. Lenguajes de programación del lado Servidor Existe una multitud de lenguajes concebidos o no para Internet. Cada uno de ellos explota más a fondo ciertas características que lo hacen más o menos útiles
Más detallesMicrosoft Access proporciona dos métodos para crear una Base de datos.
Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las
Más detallesManual hosting acens
Manual hosting acens Contenido Acceso al panel de control de cliente... 3 Asociar un dominio a mi Hosting... 5 Acceso al panel de administración del hosting... 7 INICIO - Visión general del estado de nuestro
Más detallesMANUAL DE USUARIO APLICACIÓN SYSACTIVOS
MANUAL DE USUARIO APLICACIÓN SYSACTIVOS Autor Edwar Orlando Amaya Diaz Analista de Desarrollo y Soporte Produce Sistemas y Soluciones Integradas S.A.S Versión 1.0 Fecha de Publicación 19 Diciembre 2014
Más detallesCurso de PHP con MySQL Gratis
Curso de PHP con MySQL Gratis Introducción Este mini curso o mini tutorial de PHP le ayudará a realizar cualquier sistema para que pueda insertar uno o varios registros a una base de datos con MySQL, este
Más detallesSCT3000 95. Software para la calibración de transductores de fuerza. Versión 3.5. Microtest S.A. microtes@arrakis.es
SCT3000 95 Versión 3.5 Software para la calibración de transductores de fuerza. Microtest S.A. microtes@arrakis.es Introducción El programa SCT3000 95, es un sistema diseñado para la calibración automática
Más detallesUnidad V: Programación del lado del servidor
Unidad V: Programación del lado del servidor 5.1 Introducción al lenguaje La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante
Más detallesC a p í t u l o 3 : T r a b a j o r e l a c i o n a d o
C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o Capítulo 3 Trabajo relacionado Este capítulo describe una serie de proyectos enfocados a la generación automática de servidores OAI-PMH. Se describen
Más detallesQué es una página web?, qué conoces al respecto?, sabes crear una página
Semana 13 13 Empecemos! Bienvenidos a una nueva sesión, llena de aprendizajes! En semanas anteriores estudiamos lo que son bases de datos, estructuras de datos y métodos de ordenamientos, todo lo cual
Más detallesFAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS
FAMILIA PROFESIONAL: Informática y Comunicación CICLO SUPERIOR DESARROLLO DE APLICACIONES MULTIMEDIA DAM 350 HORAS Resultados de aprendizaje y criterios de evaluación 1. Identificar la estructura y organización
Más detallesCURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB
CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB Objetivos Generales: Al término de esta acción formativa los participantes alcanzarán los siguientes objetivos: Preparar profesionales para el desarrollo
Más detallesPROGRAMACIÓN PÁGINAS WEB CON PHP
PROGRAMACIÓN PÁGINAS WEB CON PHP Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript y la programación de la parte servidor con la tecnología
Más detallesCAPÍTULO 1 Instrumentación Virtual
CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento
Más detallesSistema de Mensajería Empresarial para generación Masiva de DTE
Sistema de Mensajería Empresarial para generación Masiva de DTE TIPO DE DOCUMENTO: OFERTA TÉCNICA Y COMERCIAL VERSIÓN 1.0, 7 de Mayo de 2008 CONTENIDO 1 INTRODUCCIÓN 4 2 DESCRIPCIÓN DE ARQUITECTURA DE
Más detallesINTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN
INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo
Más detallesserra Access y SQL Server Qué es mejor en cada caso? Valentín Playá, Serra GTS 22 de enero de 2009 Bases de datos 1
Access y SQL Server Qué es mejor en cada caso? Valentín Playá, Serra GTS 22 de enero de 2009 Bases de datos 1 Bases de datos en una organización Distintas necesidades según el tipo de solución Ninguna
Más detallesCOPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA
COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador
Más detallesXPERTO EN DISEÑO DE PÁGINAS WEB
Curso ICA de: EXPERTO EN DISEÑO DE PÁGINAS WEB Módulo 1: Program. cliente: JavaScript Estudia el lenguaje JavaScript para crear guiones o scripts que se incluyen en las páginas web y que son ejecutados
Más detallesNovedades. Introducción. Potencia
Introducción Basado en el demostrado rendimiento y flexibilidad de la versión 8.5, Crystal Reports 9 presenta una amplia variedad de avanzadas funciones para que el diseño, entrega e integración de informes
Más detallesPlataforma e-ducativa Aragonesa. Manual de Administración. Bitácora
Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar
Más detallesCAPITULO III.- SELECCIÓN DE PLATAFORMA Y ENTORNO DE DESARROLLO
CAPITULO III.- SELECCIÓN DE PLATAFORMA Y ENTORNO DE DESARROLLO 1. GENERALIDADES En el presente capítulo se tratará la determinación de los requerimientos de software que se necesitan para el sistema; para
Más detallesCapitulo VI. Conclusiones.
Capitulo VI. Conclusiones. VI.I. Conclusiones. Finalmente como conclusiones tenemos que resaltar el uso de varias tecnologías aparte de Java, como lo son el uso de la librería O reilly para pasar archivos
Más detallesEdición de Ofertas Excel Manual de Usuario
Edición de Ofertas Excel Manual de Usuario Alfonso XI, 6 28014 Madrid F(+34) 91 524 03 96 www.omie.es Ref. MU_OfertasExcel.docx Versión 4.0 Fecha: 2012-11-26 ÍNDICE 1 INTRODUCCIÓN 3 2 CONSIDERACIONES DE
Más detallesLENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)
LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52) LENGUAJES DE PROGRAMACIÓN WEB (PHP, HTML5) 1 Sesión No. 1 Nombre: Arquitectura Objetivo: Conocer cómo funciona y se planifica una aplicación web Contextualización
Más detallesCapítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas
Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes
Más detallesPerson IP CRM Manual MOBILE
Manual MOBILE División Informática BuscPerson Telecomunicaciones : Manual MOBILE 0.- Introducción 3 0.1 Configuración de los terminales 3 0.2 Acceso de Usuarios 3 1.- Funcionalidades CRM 5 1.1 Agenda del
Más detallesINTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD. Estructura de contenidos: http://www.ucv.edu.pe/cis/ cisvirtual@ucv.edu.pe. 1.
INTRODUCCIÓN A LA PROGRAMACIÓN WEB UNIDAD 1 Estructura de contenidos: 1. Programación Web 2. Sistema De Información 3. Sistema Web 4. Requisitos Para Sistemas Web Con Asp 5. Internet Information Server
Más detalleswww.artologik.com Programa de soporte y gestión de incidencias efectivo y fácil de usar
Programa de soporte y gestión de incidencias efectivo y fácil de usar Gestión de proyectos Gestión del tiempo Creación de encuestas HelpDesk Herramienta de publicación web Sistema de reservas www.artologik.com
Más detallesEstructura de Bases de datos. Leonardo Víquez Acuña
Estructura de Bases de datos Leonardo Víquez Acuña Lenguajes de Bases de Datos Un sistema de bases de datos proporciona Un lenguaje de definición de datos para especificar el esquema de la base de datos
Más detallesSistema de Gestión de Contenidos XML. Ing. Lianet Luaces Torres Ing. Ayleen Menéndez Senarega Ing. Yanet Bellón Landa Ing. Renier Valdés González
Sistema de Gestión de Contenidos XML Autores: Tutores: Ing. Lianet Luaces Torres Ing. Ayleen Menéndez Senarega Ing. Yanet Bellón Landa Ing. Renier Valdés González Noviembre de 2006 XML Su propósito principal
Más detallesCONVERTIMOS SUS PROYECTOS EN REALIDAD SOMOS CONSTRUCTORES Y DESARROLLADORES DE NUESTROS SOFTWARE, CONFIENOS SUS PROYECTOS. Descripción del Producto
CONVERTIMOS SUS PROYECTOS EN REALIDAD SOMOS CONSTRUCTORES Y DESARROLLADORES DE NUESTROS SOFTWARE, CONFIENOS SUS PROYECTOS Descripción del Producto ADMINISTRACION Y CONTROL DE FLOTAS ADVERTENCIA: Este producto
Más detalles1. CONSIDERACIONES GENERALES
Pág. 1. CONSIDERACIONES GENERALES... 1 2. EJECUTANDO ADMINISTRACION... 2 3. PANTALLA PRINCIPAL... 4 4. OPCION BASE DE DATOS... 4 4.1 ACTUALIZAR BASE DE DATOS...5 4.2 COPIA DE SEGURIDAD...6 4.2.1 Realizar
Más detallesCAPITULO IV CONCLUSIONES Y RECOMENDACIONES
CAPITULO IV CONCLUSIONES Y RECOMENDACIONES VERIFICACIÓN DE OBJETIVOS El objetivo general del proyecto ha sido cumplido satisfactoriamente en la Unidad de Sistemas de PETROECUADOR, realizando el análisis
Más detallesLINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN
LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...
Más detallesToda base de datos relacional se basa en dos objetos
1. INTRODUCCIÓN Toda base de datos relacional se basa en dos objetos fundamentales: las tablas y las relaciones. Sin embargo, en SQL Server, una base de datos puede contener otros objetos también importantes.
Más detallesFACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS:
FACULTAD DE INFORMATICA MATERIA: GESTION DE CONTENIDO ELECTRONICO PROFESOR: JONATHAN VEGA ALUMNOS: LUISA ROSERO JAIME CAMACHO DATOS INFORMATIVOS: TRABAJO BIBLIOGRAFICO DE, CONCEPTOS, IMÁGENES, EJEMPLOS,
Más detallesCAPITULO 4. Requerimientos, Análisis y Diseño. El presente capítulo explica los pasos que se realizaron antes de implementar
CAPITULO 4 Requerimientos, Análisis y Diseño El presente capítulo explica los pasos que se realizaron antes de implementar el sistema. Para esto, primero se explicarán los requerimientos que fueron solicitados
Más detallesCAPÍTULO 3 Servidor de Modelo de Usuario
CAPÍTULO 3 Servidor de Modelo de Usuario Para el desarrollo del modelado del estudiante se utilizó el servidor de modelo de usuario desarrollado en la Universidad de las Américas Puebla por Rosa G. Paredes
Más detallesUNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN
UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACIÓN CICLO: 02/2011 GUIA DE LABORATORIO #1 Nombre de la Práctica: Adquisición de servicio webhosting Lugar de Ejecución: Centro
Más detallesDEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma
DEPARTAMENTO: Informática MATERIA: Programación NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma 1. Objetivos. Competencias Profesionales, Personales y Sociales 1.1 Objetivos del ciclo formativo La
Más detallesUtilidades de la base de datos
Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas
Más detalles1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura
1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos
Más detallesNovedades en Q-flow 3.02
Novedades en Q-flow 3.02 Introducción Uno de los objetivos principales de Q-flow 3.02 es adecuarse a las necesidades de grandes organizaciones. Por eso Q-flow 3.02 tiene una versión Enterprise que incluye
Más detallesUNIVERSIDAD DE SALAMANCA
UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA
Más detallesLa Pirámide de Solución de TriActive TRICENTER
Información sobre el Producto de TriActive: Página 1 Documento Informativo La Administración de Sistemas Hecha Simple La Pirámide de Solución de TriActive TRICENTER Información sobre las Soluciones de
Más detallesMi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:
Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.
Más detallesGuía Metodológica para el diseño de procesos de negocio
Guía Metodológica para el diseño de procesos de negocio La guía desarrollada para apoyar TBA, se diseñó con base en las metodologías existentes para el desarrollo BPM, principalmente en aquellas que soportan
Más detallesGuía de Apoyo Project Web Access. (Jefe de Proyectos)
Guía de Apoyo Project Web Access (Jefe de Proyectos) 1 ÍNDICE Contenido INTRODUCCIÓN... 3 CAPITULO I: ELEMENTOS INICIALES DE PROJECT WEB ACCESS... 4 Configuración General... 4 Área de Trabajo del Proyecto...
Más detallesComponentes de Integración entre Plataformas Información Detallada
Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.
Más detallesProgramación páginas web con ASP.NET 3.5 (C#)
Horas de teoría: 40 Horas de práctica: 40 Programación páginas web con ASP.NET 3.5 (C#) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte cliente con JavaScript
Más detallesPLAN FORMATIVO MODALIDAD I
PLAN FORMATIVO MODALIDAD I Modalidad Acción: TELEFORMACIÓN Nº de la Acción: FPTO/2014/695/202 Familia Profesional: Tipo Especialidad: IFC / INFORMÁTICA Y COMUNICACIONES NUEVA ESPECIALIDAD Area Profesional:
Más detallesMANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS.
MANUAL DE USUARIO. SISTEMA DE INVENTARIO DE OPERACIONES ESTADÍSTICAS. INDICE Cómo Ingresar al Sistema?... 1 Autenticación de Usuario... 2 Pantalla Principal del Sistema de Operaciones Estadisticas... 3
Más detallesBeneficios estratégicos para su organización. Beneficios. Características V.2.0907
Herramienta de inventario que automatiza el registro de activos informáticos en detalle y reporta cualquier cambio de hardware o software mediante la generación de alarmas. Beneficios Información actualizada
Más detallesWorkFlow Pagos de Facturas de Bienes y Servicios De la Administración Central. Seminario: Plataforma Lotus Domino.
WorkFlow Pagos de Facturas de Bienes y Servicios De la Administración Central Seminario: Plataforma Lotus Domino. Integrantes: Ana Goyes Grésely Pamela Ortiz Quinteros 2006 Proceso De Pago De Facturas
Más detallesSISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública
JEFATURA DE GABINETE DE MINISTROS SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública Manual para los Organismos Índice Índice... 2 Descripción... 3 Cómo solicitar la intervención
Más detallesSoporte y mantenimiento de base de datos y aplicativos
Soporte y mantenimiento de base de datos y aplicativos Las bases de datos constituyen la fuente de información primaria a todos los servicios que el centro de información virtual ofrece a sus usuarios,
Más detallesManual de NetBeans y XAMPP
Three Headed Monkey Manual de NetBeans y XAMPP Versión 1.0 Guillermo Montoro Delgado Raúl Nadal Burgos Juan María Ruiz Tinas Lunes, 22 de marzo de 2010 Contenido NetBeans... 2 Qué es NetBeans?... 2 Instalación
Más detallesIntroducción a las redes de computadores
Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes
Más detallesProgramación páginas web. Servidor (PHP)
Programación páginas web. Servidor (PHP) Curso de desarrollo de aplicaciones web. Para ello se estudia la programación de la parte servidor con la tecnología PHP y el servidor de bases de datos MySQL.
Más detallesTema: INSTALACIÓN Y PARTICIONAMIENTO DE DISCOS DUROS.
1 Facultad: Ingeniería Escuela: Electrónica Asignatura: Arquitectura de computadoras Lugar de ejecución: Lab. de arquitectura de computadoras, edif. de electrónica. Tema: INSTALACIÓN Y PARTICIONAMIENTO
Más detallesCAPITULO I El Problema
CAPITULO I El Problema 1. CAPITULO I EL PROBLEMA. 1.1. PLANTEAMIENTO DEL PROBLEMA. Desde su nacimiento la Facultad de Administración, Finanzas e Informática dispone del departamento de la biblioteca, con
Más detallesCAPÍTULO 3 VISUAL BASIC
CAPÍTULO 3 VISUAL BASIC 3.1 Visual Basic Microsoft Visual Basic es la actual y mejor representación del viejo lenguaje BASIC, le proporciona un sistema completo para el desarrollo de aplicaciones para
Más detallesDistribuidor de documentos 1. Ventajas. Distribuidor de documentos
1 El paquete de Lexmark permite escribir scripts personalizados que abarcan los pasos del proceso de distribución de. Combine estos scripts con valores de digitalización (formato, resolución, profundidad
Más detallesInternet Information Server
Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en
Más detalles