Ingeniería inversa de eventos GUI en aplicaciones RAD mediante MDD. Óscar Sánchez Ramón Jesús Sánchez Cuadrado Jesús García Molina.

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Ingeniería inversa de eventos GUI en aplicaciones RAD mediante MDD. Óscar Sánchez Ramón Jesús Sánchez Cuadrado Jesús García Molina."

Transcripción

1 Ingeniería inversa de eventos GUI en aplicaciones RAD mediante MDD Óscar Sánchez Ramón Jesús Sánchez Cuadrado Jesús García Molina Facultad de Informática Facultad de Informática Facultad de Informática Universidad de Murcia Universidad de Murcia Universidad de Murcia Resumen La migración del código de manejo de eventos de la interfaz gráca de usuario (GUI) es uno de los retos que deben afrontarse cuando se aborda la modernización de un sistema heredado desarrollado con un entorno Rapid Application Development (RAD). Esta tarea conlleva varias dicultades, pues frecuentemente implica un cambio de lenguaje de programación o tecnología, y un cambio en la arquitectura del sistema, dado que las aplicaciones desarrolladas en entornos RAD no contemplan una separación de la arquitectura en capas. En este trabajo proponemos una aproximación MDD para realizar ingeniería inversa de los eventos GUI de aplicaciones RAD, con el objetivo de obtener información acerca del código original que sea de utilidad para un posterior proceso de rediseño e ingeniería directa. 1. Introducción En la actualidad existe un gran número de aplicaciones heredadas que fueron construidas con entornos RAD (Rapid Application Development), tales como Oracle Forms 6 o Borland Delphi 5, y que están siendo migradas a plataformas más modernas. Estas migraciones son realizadas manualmente en la mayoría de los casos. Recientemente ha emergido la Modernización Dirigida por Modelos, como forma de conseguir automatizar las tareas propias de los procesos de evolución de software a través de la aplicación de las técnicas básicas del Desarrollo Dirigido por Modelos (Model Driven Development, MDD). Cuando se realiza una migración entre plataformas, es necesario considerar todos los componentes de la arquitectura software de la aplicación existente. El componente relacionado con interfaz gráca de usuario (GUI) es fundamental en la mayoría de arquitecturas, y su migración requiere considerar varios aspectos, como la disposición de los controles grácos (layout) y el manejo de eventos. El primer aspecto se ha tratado en un trabajo previo [1], y este trabajo se centrará en el segundo aspecto en el contexto de la migración de aplicaciones RAD. Las tecnologías de desarrollo de GUI utilizan modelos de eventos para permitir la interacción del usuario con la aplicación (por ejemplo, en Java la librería Swing usa el Modelo de Delegación de Eventos). En el caso de la tecnología RAD, el modelo de eventos es simple y normalmente y los manejadores de evento se asocian directamente a los componentes. Sin embargo, cada entorno dene un conjunto de eventos propios, y el lenguaje y las facilidades de que se dispone para denir las acciones asociadas son dependientes de la tecnología. Una característica de los entornos RAD es que el código de los eventos puede interaccionar directamente con una base de datos, sin necesidad de invocar a funciones de la lógica de negocio que se encarguen de dicha tarea. Esto supone un problema cuando pretendemos abordar la modernización de este código, dado que hoy en día es una práctica habitual separar las aplicaciones en capas con el n de facilitar el mantenimiento, legibilidad y extensibilidad de la aplicación.

2 DECLARE DECL n Number; DECL val VARCHAR2(50); BEGIN n := 1; SELECT value INTO val FROM mappings Refinamiento DECLARE DECL n Number; DECL val VARCHAR2(50); BEGIN n := 1; SELECT value INTO val FROM mappings M2M Código Fuente (PL/SQL) T2M Modelo de Código (PL/SQL) M2M Modelo Abstracto de Eventos Usuario Patrones conformes al DSL Repositorio de patrones (patrones Forms) M2M Figura 1: Arquitectura para realizar ingeniería inversa de eventos de GUI Es deseable, por tanto, analizar los eventos de GUI y disponer de una representación de los mismos que sea independiente de entornos, lenguajes y tecnologías, que pueda ser fácilmente estructurada en capas, y que en denitiva contenga toda la información que sea posible deducir del código fuente con el objetivo de automatizar los procesos de generación de nuevas aplicaciones en la mayor medida posible. Por tanto, el propósito de este trabajo es mostrar una aproximación de Modernización Dirigida por Modelos para aplicar ingeniería inversa de los eventos de aplicaciones RAD destinada a facilitar la migración a otras plataformas, lo que nos permitirá la automatización total o parcial del proceso. Se propone una representación independiente del lenguaje para el código de manejo de eventos, y un DSL para establecer la correspondencia entre patrones código y tal representación. También, se describen varias usos de esta representación al automatizar la ingeniería inversa. La sección 2 se muestra una visión general de la arquitectura de modelos para realizar el proceso de ingeniería inversa. La sección 3 muestra el metamodelo empleado para representar la información extraída de los eventos, en la sección 4 se describe el DSL de patrones, y en la sección 5 se describen varios ejemplos de aplicación. Las secciones 6 y 7 nalizan presentando respectivamente el trabajo relacionado, y las conclusiones y trabajo futuro. 2. Visión general de la arquitectura La arquitectura de modelos propuesta para realizar el proceso de ingeniería inversa del código de manejo de eventos en aplicaciones RAD se muestra en la Figura 1. Aunque esta arquitectura esta orientada a la extracción del comportamiento de los eventos de Oracle Forms y PL/SQL, el esquema puede ser generalizado para otras tecnologías RAD. En primer lugar, partimos de código de la aplicación RAD original, código PL/SQL de Oracle Forms en nuestro caso. El código se inyecta en un modelo que lo representa mediante una transformación texto a modelo(t2m ), y que conformará con un metamodelo de la sintaxis abstracta de PL/SQL. El segundo paso consiste en obtener el modelo abstracto de eventos, que se utiliza para: i) representar el código fuente de forma independiente a lenguajes y tecnologías, mediante acciones habituales en los entornos RAD (como por ejemplo leer de la interfaz o escribir en base de datos), y ii) eliminar detalles que son superuos para analizar el comportamiento de los eventos. La obtención de un modelo abstracto de eventos a partir del modelo de código PL/SQL se consigue mediante una transformación modelo a modelo (M2M). Como explicaremos más adelante, a su vez esta

3 0..n 0..n RADVariable 1 ModelRoot RADReadable 1 0..n 0..n in 0..1 out 0..n 1 EventDefinition + targetelement 0..n 1 0..n RADAction UIVar DBVar TempVar PredefinedVar ReadFromDB WriteToUI ManipulateData ControlFlow Figura 2: Metamodelo abstracto de eventos transformación se obtiene automáticamente a través de otra transformación modelo a modelo que toma como entrada un modelo que representa un conjunto de patrones que establecen reglas para construir el modelo abstracto de eventos a partir del modelo de código. La siguiente etapa del proceso consiste en renar el modelo abstracto de eventos. El objetivo es inferir información adicional acerca de los eventos, y representarla de forma explícita en el propio modelo abstracto de eventos. A partir del modelo renado es posible realizar diversas tareas de reingeniería, como generar informes y visualizaciones, restructurar el código o generar esqueletos de código (automatización parcial de la migración). La infraestructura se está desarrollando en la plataforma Eclipse, utilizado Ecore como lenguaje de metamodelado, Gra2MoL [3] para inyectar código PL/SQL en modelos, y RubyTL [4] para realizar las transformaciones modelo a modelo. 3. Representación de los eventos a alto nivel El modelo abstracto de eventos se utiliza para representar los eventos GUI a alto nivel. Tiene dos características principales: permite representar las acciones de los eventos con independencia de lenguajes y tecnologías, y omite detalles que no son relevantes para analizar el comportamiento del evento (por ejemplo cuál es la funcionalidad concreta de una operación de tratamiento de enteros), con lo cuál se simplica el posterior análisis de los mismos. En la Figura 2 se muestra de forma simplicada el metamodelo al que conforman los modelos abstractos de eventos. Principalmente distinguimos dos elementos en el metamodelo: variables (RADVariable) y acciones (RADAction). Las primeras son los datos que el evento maneja, mientras que las segundas son primitivas que utilizan esos datos. En base a la proveniencia de los datos tendremos los siguientes tipos de variables: Variables temporales (TempVar), que son variables locales a los eventos y que se utilizan para almacenar datos que resultan de lecturas y manipulaciones de datos. Variables predenidas (Predened- Var), son variables globales que tienen una semántica predenida en un entorno o tecnología. Variables de interfaz (UIVar), que representan los controles de la interfaz gráca. Variables de base de datos (DBVar), que representan un recurso que permite interaccionar con una base de datos, como puede ser un origen de datos. Igualmente, distinguimos diferentes tipos de primitivas para representar acciones. En el

4 Primitiva ReadFromUI WriteToUI WriteToVar ReadFromDB ModifyUI ManipulateData SelectionFlow ShowMessage Invoke Signicado Lee un valor de un control de la GUI Modica un valor de un control de la GUI Escribe un valor en una variable temporal Lee valores de base de datos Modica atributos grácos de los controles de la GUI Realiza una operación sobre datos, por ejemplo, la obtención de una subcadena en base a una cadena Control de ujo selectivo Muestra una ventana modal emergente Invoca a una función o procedimiento Cuadro 1: Primitivas semánticas cuadro 1 se muestran algunas de las primitivas identicadas. Las primitivas se aplican sobre una o más variables de entrada, y si se trata de una operación de escritura, tendrán una variable de salida asociada (referencia out). Además, como se observa en el metamodelo, la entrada de una primitiva (dependencia in entre RADAction y RADReadable) puede ser otra primitiva, lo que permite componer las primitivas para expresar acciones más complejas de un modo más compacto, esto es, sin necesidad de utilizar variables temporales para almacenar el resultado de otras primitivas. Esta representación mantiene, en cierta medida, la estructura del código original lo que facilitará análisis de grano grueso. Otras representaciones más atómicas (como SSA [9] [10]) son útiles para análisis de grano no, y serán consideradas en futuros trabajos. Estas primitivas conforman un subconjunto básico suciente para comprender la funcionalidad del evento a alto nivel. Sin embargo, si en fases posteriores del proceso de modernización pretendemos generar código a partir de los eventos, necesitamos anar más en la especicación de algunas de las primitivas para incluir información más detallada. Por ejemplo, sería necesario modelar las condiciones de las primitivas de control, o la funcionalidad de las primitivas de manipulación de datos. Con el objetivo de representar toda la información del sistema original, en un futuro se evaluará la posibilidad de relacionar el metamodelo abstracto de eventos con el metamodelo de la tecnología fuente, ya sea mediante un metamodelo propio que represente el código de forma independiente de la plataforma, o utilizando un metamodelo estándar como KDM [7] para este n. El elemento ModelRoot actua como raíz del metamodelo, y contiene los eventos (EventDefinition), así como las variables globales a los éstos, de modo que las variables de interfaz, las de base de datos y las predenidas puedan ser reutilizadas. La metaclase EventDenition tiene un nombre, un tipo de evento, está asociada al elemento targetelement que dispara el evento (normalmente un control de la interfaz), y contienen las variables y acciones que denen el comportamiento a realizar cuando se activa el evento. 4. Abstracción de código mediante un DSL de patrones Para obtener el modelo abstracto de eventos a partir del modelo de código fuente, la aproximación directa sería crear una transformación modelo a modelo. Sin embargo, este enfoque presenta dos problemas fundamentales: a) el codigo de la transformación sería muy verboso, b) incorporar nuevos casos de análisis implicaría modicar la transformación. Para superar estas desventajas, se ha diseñado un DSL para establecer correspondencias entre patrones de código PL/SQL y primitivas del modelo abstracto de eventos. La dinámica consiste en aplicar los patrones sobre el código de los manejadores de eventos del sistema heredado, de modo que para ca-

5 «from PL/SQL» Statement source 1..n FormsPattern target 1..n «from SemanticActions» RADAction «from PL/SQL» Statement GenericStatement «from PL/SQL» Expression GenericExpression +vargroup: string «from PL/SQL» Variable GenericVariable +id: string +pattern: RegExpr «Datatype» OpType AND OR «from EventAbstractMM» RADVariable RegExpr GenericVariable +id: string GenericVarGroup +id: string SimpleRegExpr +not: boolean +expr: string CompositeRegExpr +operator: OpType 1..n Figura 3: Metamodelo de la sintaxis abstracta del DSL de patrones. da patrón concordado se genera un fragmento de código de primitivas de alto nivel. Cuando existan varios patrones posibles, se informará al desarrollador para que seleccione una de las alternativas, siendo por tanto un proceso semiautomático. Con el objetivo de denir los patrones de forma concisa, se pretende que una sola sentencia del DSL empareje con un trozo de modelo de sintaxis abstracta mediante el uso de comodines (por comodin entendemos un elemento que permite emparejar una parte cualquiera del modelo de código). Además, se ha decidido extender la propia sintaxis de PL/SQL para facilitar la escritura de los patrones, pues es menos verboso que utilizar la sintaxis abstracta. Para facilitar la extensibilidad se ha denido un repositorio de patrones (escritos con el DSL). Así, es posible incorporar de un modo sencillo nuevos patrones que sean dependientes de las convenciones de las empresas de desarrollo, sin necesidad de modicar las transformaciones. Se observa que tanto el DSL y el repositorio de patrones son dependientes de la tecnología origen del proceso de modernización. En el futuro se pretende separar la compilación de los patrones de la sintaxis concreta utilizada, con el n de usar el mismo compilador con diferentes lenguajes. El DSL de denición de patrones podría ser generado automáticamente a partir de la gramática, lo que evitaría tener que realizar un DSL manualmente para cada tecnología origen. La sintaxis abstracta del DSL corresponde al metamodelo que aparece en la Figura 3. El metamodelo hace corresponder un conjunto de sentencias PL/SQL con un conjunto de primitivas. Este metamodelo tiene referencias cruzadas con el metamodelo de PL/SQL, de modo que las metaclases Statement, Expression y Variable representan sentencias, expresiones y variables de PL/SQL respectivamente. En ocasiones ocurre que para denir los patrones necesitamos especicar que algunos elementos de un trozo de código no son relevantes. Por esta razón, las metaclases Generic- Statement, GenericExpression y GenericVariable han sido denidas para actuar como comodines al expresar los patrones. Generic- Variable puede tener un identicador (id) para referirse a la misma variable en otra parte del

6 Patrón PL/SQL (parte izquierda) IF GenericExpression(varGroup=V) THEN statements END SELECT - INTO GenericVariable(id=X, pattern=:*.* AND NOT :system.*) FROM - WHERE GenericExpression(varGroup=V) GenericVariable(id=X, pattern=not :*) := GenericVariable(id=Y) GenericVariable(pattern=':*.*' and not ':system.*') Primitivas (parte derecha) SelectionFlow(GenericVarGroup(id=V)) { statements } WriteToUI(ReadFromDB( GenericVarGroup(id=V)), GenericVariable(id=X)) WriteToVar(GenericVariable(id=Y), GenericVariable(id=X)) UIVar Cuadro 2: Ejemplos de reglas del DSL de patrones, con la sintaxis de PL/SQL. patrón y/o en la parte derecha de la regla (nótese que con id no nos estamos reriendo al nombre de un variable concreta del código PL/SQL). Mediante el atributo pattern también es posible especicar aquellas variables cuyo nombre cumple con una determinada expresión regular. La metaclase GenericExpression reemplaza a cualquier expresión, y utiliza el atributo vargroup para especicar el identicador del grupo de variables que se usan en la expresión (de manera que pueda utilizarse en la parte derecha de la regla). Respecto al metamodelo abstracto de eventos se denen dos tipos nuevos, GenericVarGroup y GenericVariable que representan a las variables y grupos de variables respectivamente, que se han identicado en el modelo PL/SQL. En el cuadro 2 se muestran algunos de los patrones establecidos para la tecnología Oracle Forms. Para facilitar la comprensión de los mismos se utiliza una sintaxis más verbosa que corresponde directamente con el metamodelo del DSL. El primer patrón transforma una sentencia IF en una sentencia de control de ujo de selección (SelectionFlow). El elemento GenericExpression se utiliza para representar cualquier expresión, pues no nos interesa un tipo de expresión en concreto, aunque sí que nos interesan el conjunto de variables que se utilicen en dicha expresión, a las cuales identicaremos como V. El segundo patrón representa una consulta SELECT de base de datos que escribe en una variable. De momento no estamos interesados en almacenar el nombre de la tabla y los atributos, razón por la cuál en el patrón se especica un guión para ignorarlos. Se especica que la variable (que identicaremos por X ) en la que se almacene el resultado de la consulta debe concordar con un patrón, que concretamente es un patrón que dene las variables que se reeren a controles GUI. Por esta razón, este patrón se traduce como una lectura de base de datos (ReadFromDB) que se escribe en una variable de interfaz (WriteToUI). El tercer patrón traduce una asignación de una variable de cualquier tipo a una variable local. El cuarto patrón se utiliza para resolver variables de interfaz. Cuando se aplica un patrón, puede ocurrir que la parte derecha de la regla se reera a GenericVarGroup o Generic- Variable. En estos casos es necesario aplicar otras reglas para resolver estas partes. Por ejemplo, es necesario traducir los tipos GenericVariable del modelo abstracto de eventos en tipos de variables concretas (UIVar, Temp- Var,...). Por esta razón es necesario especicar patrones (como por ejemplo el cuarto patrón) para resolver estos casos. Vamos a ilustrar el proceso de aplicación de los patrones mediante un ejemplo. En el entorno Oracle Forms 6 se pueden asociar disparadores PL/SQL a la ejecución de un conjunto predeterminado de eventos. A continuación se muestra el código de un disparador asociado al evento WHEN_VALIDATE_ITEM del campo de texto USERNAME, que se ejecuta cuando se produce un cambio en el campo de texto.

7 1 DECLARE 2 name VARCHAR2 (50) ; 3 BEGIN 4 name := : USER_DATA. USERNAME ; 5 IF name IS NOT NULL THEN 6 SELECT INTO : USER_DATA. 7 FROM User WHERE username = name ; 8 END IF ; 9 END ; En la línea 4 se copia el contenido del campo de texto USERNAME a la variable local name. Se comprueba que esta cadena de caracteres no sea nula (línea 5), y de ser así se obtiene el valor de la la de la tabla de datos User cuyo nombre de usuario (username) coincida con el valor de la variable name. El valor obtenido de base de datos se almacena en el campo de texto . El efecto del código es el siguiente. Cuando un usuario introduce el nombre de usuario en el campo de texto USERNAME, la aplicación busca la dirección de correo electrónico asociada a dicho usuario, y la muestra en el campo de texto . Si aplicamos el conjunto de patrones denidos en el cuadro 2 al modelo PL/SQL antes descrito, se obtiene el siguiente modelo. Por simplicidad se han omitido algunos detalles de las primitivas, como la información relativa a la base de datos de la primitiva ReadFromDB, o la condición del SelectionFlow. Para cada conjunto de primitivas, se indica la línea o líneas que las originaron mediante la aplicación de los patrones y reglas. 1 WriteToVar (: USER_DATA. USERNAME, name ) /* línea 4 */ 2 SelectionFlow ( name ){ /* línea 5 */ 3 WriteToUI ( ReadFromDB (name ), : USER_DATA. ) /* líneas 6 y 7 */ 4 } planteamos dos posibles usos de esta representación que tienen como objetivo inferir información implícita: la búsqueda de dependencias entre variables y la categorización de fragmentos de código. Las dependencias entre variables de interfaz (que representan controles) pueden ser una fuente de información útil en el proceso de comprensión del comportamiento de los eventos. En las interfaces de usuario frecuentemente ocurre que un cambio en el valor de un control de la interfaz afecta a otro control. Por ejemplo, imaginemos una casilla de veri- cación que cuando es marcada, habilita una lista desplegable que antes estaba deshabilitada. En este ejemplo, los controles vendrían representados por variables de interfaz, de modo que existiría una dependencia entre la variable asignada a la casilla de vericación y la variable que representa la lista desplegable. Esta información puede ser interesante para determinar dependencias entre eventos, pues un evento E 1 que estuviese asociado a una variable de interfaz V 1 podría activar la ejecución de otro evento E 2 asociado a la variable de interfaz V 2 si V 2 depende de V 1. Es posible asociar automáticamente categorías a fragmentos de código a partir de la información de grano no sobre variables y acciones obtenida en el modelo abstracto de eventos. En la actualidad estamos diseñando un algoritmo que recorre el modelo buscando secuencias de sentencias que tienen la misma naturaleza(ui, base de datos, etc.) y las agrupa. Esta información puede ser a su vez utilizada para dividir la aplicación original en capas, ya que cada fragmento de código de cierta naturaleza puede ser asignado a la UI, al controlador, o a la lógica de negocio. 5. Usos del modelo abstracto de eventos El modelo abstracto de eventos pretende ser una representación de información sobre los eventos adecuada, que está implícita en el código fuente y que puede ser de utilidad en una fase posterior de ingeniería directa para crear un nuevo sistema. A continuación 6. Trabajo relacionado En el trabajo [2] se presenta una herramienta comercial que migra aplicaciones Oracle Forms a la plataforma.net. Los eventos de la plataforma origen para los cuales existe una correspondencia con semántica similar en la plataforma destino se migran directamente, mientras que el resto deben ser asistidos por

8 el usuario. En [5] se aborda la evolución de sistemas heredados a sistemas SOA en tres capas. En esta propuesta los fragmentos de código original se anotan manualmente según el aspecto con que se relaciona (interfaz, lógica de negocio o datos). La arquitectura presentada permitirá automatizar estas anotaciones, como se comenta en la sección anterior. En [6] se propone la reingeniería inversa de interfaces de usuario con el objetivo de realizar pruebas de interfaz. En este trabajo se utiliza un modelo de ujo de eventos que representa todos las caminos de ejecución de eventos posibles a partir de las ventanas de la aplicación. La reingeniería se centra en deducir las relaciones entre ventanas originadas por eventos. Existen numerosos trabajos relativos al estudio del ujo de datos [8], [9] que se utilizan en la optimización de código por parte de compiladores. Estos trabajos proponen el análisis estático de código, más especícamente Single Static Assignment Form (SSA) así como otras técnicas, con el objetivo de eliminar código redundante y optimizar la asignación de variables. En [10] se utiliza SSA para obtener un grafo de ventanas, que es un grafo que representa las relaciones entre las ventanas de una GUI. Estos trabajos guardan cierta relación con las etapa de simulación y con el análisis de variables, sin embargo en nuestro caso, el análisis que realizamos es más sencillo y está orientado especícamente al código de eventos de GUI. 7. Conclusiones y trabajo futuro En este trabajo hemos presentado una aproximación para analizar el código de los eventos de la GUI de aplicaciones RAD. Como resultado de este análisis se obtiene una representación de alto nivel con información útil para la comprensión de dichos eventos. La información recopilada puede ser utilizada posteriormente para efectuar un proceso de ingeniería directa con el objetivo de generar un nuevo sistema o de reingeniería para modicar el sistema existente. Se evaluará la posibilidad de representar el sistema original completo mediante KDM [7], de modo que el modelo abstracto de eventos mantenga referencias al modelo KDM. Como trabajo futuro, se espera probar el proyecto con casos de estudio reales. Como fruto de dicho trabajo, se incorporarán nuevas primitivas de alto nivel y se renará y ampliará el conjunto de patrones identicados e incluidos en el repositorio estándar. Se modicará también la arquitectura para que sea independiente de la tecnología origen en la medida de lo posible. También sería posible realizar generadores de DSLs de denición de patrones a partir de gramáticas. Agradecimientos Este artículo ha sido parcialmente nanciado por la Consejería de Universidades, Empresa e Investigación (proyecto 129/2009) y la Fundación Séneca (proyecto 08797/P1/08). Referencias [1] O. Sánchez Ramón, J. Sánchez Cuadrado, and J. García Molina. Model-Driven Reverse Engineering of Legacy Graphical User Interfaces. In Proceedings of the 25th IEEE/ACM International Conference on Automated Software Engineering, ASE'10, [2] L. F. Andrade, J. Gouveia, M. Antunes, M. El-Ramly, and G. Koutsoukos. Forms2net - Migrating Oracle Forms to Microsoft.NET. In GTTSE, pages , [3] J. L. Cánovas Izquierdo and J. G. Molina. A Domain Specic Language for Extracting Models in Software Modernization. In ECMDA-FA '09: Proceedings of the 5th European Conference on Model Driven Architecture - Foundations and Applications, pages 8297, Berlin, Heidelberg, Springer-Verlag. [4] J. S. Cuadrado and J. G. Molina. Modularization of Model Transformations Through a Phasing Mechanism. Software and System Modeling, 8(3):325345, 2009.

9 [5] R. Heckel, R. Correia, C. M. P. Matos, M. El-Ramly, G. Koutsoukos, and L. F. Andrade. Architectural Transformations: From Legacy to Three-Tier and Services. In Software Evolution, pages [6] A. M. Memon. An Event-Flow Model of GUI-Based Applications for Testing: Research Articles. Software Testing Verication and Reliability, 17(3):137157, [7] OMG. Knowledge Discovery Meta-Model (KDM) v [8] B. K. Rosen. Data Flow Analysis for Procedural Languages. J. ACM, 26(2): , [9] B. K. Rosen, M. N. Wegman, and F. K. Zadeck. Global Value Numbers and Redundant Computations. In POPL '88: Proceedings of the 15th ACM SIGPLAN- SIGACT symposium on Principles of programming languages, pages 1227, [10] S. Staiger. Reverse Engineering of Graphical User Interfaces Using Static Analyses. In WCRE '07: Proceedings of the 14th Working Conference on Reverse Engineering, pages , 2007.

Generación de código para Hibernate desde modelos UML

Generación de código para Hibernate desde modelos UML Generación de código para Hibernate desde modelos UML Alejandro Nogueiro Mariscal Ingeniería Técnica en Informática de Sistemas, Universidad de Cádiz 24 de Septiembre 2012 1 / 35 Índice 1 Motivación y

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Capitulo III. Diseño del Sistema.

Capitulo 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 detalles

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática

La Necesidad de Modelar. Diseño de Software Avanzado Departamento de Informática La Necesidad de Modelar Analogía Arquitectónica Tiene sentido poner ladrillos sin hacer antes los planos? El modelo, los planos, ayuda a afrontar la complejidad del proyecto. Cuál es el lenguaje adecuado

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él.

PROCESOS SOFTWARE. Según esta estrategia, todo proceso debe planificarse, implantarse y evaluarse, para luego actuar sobre él. PROCESOS SOFTWARE MOTIVACIÓN? Con independencia de la metodología o modelo implementado, es común la estrategia para la mejora continua de la calidad, basada en el Círculo de Deming o Plan, Do, Check,

Más detalles

GENERACIÓN DE CÓDIGO

GENERACIÓN DE CÓDIGO GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información

Más detalles

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos.

ANÁLISIS SEMÁNTICO. Especificación formal: Semántica Operacional, semántica denotacional, semántica Axiomática, Gramáticas con Atributos. ANÁLISIS SEMÁNTICO El análisis semántico dota de un significado coherente a lo que hemos hecho en el análisis sintáctico. El chequeo semántico se encarga de que los tipos que intervienen en las expresiones

Más detalles

Arquitectura de Aplicaciones

Arquitectura de Aplicaciones 1 Capítulo 13: Arquitectura de aplicaciones. - Sommerville Contenidos del capítulo 13.1 Sistemas de procesamiento de datos 13.2 Sistemas de procesamiento de transacciones 13.3 Sistemas de procesamiento

Más detalles

ENTORNO DE DESARROLLO MICROSOFT.NET 2010

ENTORNO 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 detalles

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE

1.4.1.2. Resumen... 1.4.2. ÁREA DE FACTURACIÓN::INFORMES::Pedidos...27 1.4.2.1. Detalle... 1.4.2.2. Resumen... 1.4.3. ÁREA DE MANUAL DE USUARIO DE ABANQ 1 Índice de contenido 1 ÁREA DE FACTURACIÓN......4 1.1 ÁREA DE FACTURACIÓN::PRINCIPAL...4 1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA...4 1.1.1.1. ÁREA DE FACTURACIÓN::PRINCIPAL::EMPRESA::General...4

Más detalles

Capítulo 1 Documentos HTML5

Capítulo 1 Documentos HTML5 Capítulo 1 Documentos HTML5 1.1 Componentes básicos HTML5 provee básicamente tres características: estructura, estilo y funcionalidad. Nunca fue declarado oficialmente pero, incluso cuando algunas APIs

Más detalles

- Bases de Datos - - Diseño Físico - Luis D. García

- Bases de Datos - - Diseño Físico - Luis D. García - Diseño Físico - Luis D. García Abril de 2006 Introducción El diseño de una base de datos está compuesto por tres etapas, el Diseño Conceptual, en el cual se descubren la semántica de los datos, definiendo

Más detalles

Propuesta 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 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 detalles

Capítulo 9. Archivos de sintaxis

Capítulo 9. Archivos de sintaxis Capítulo 9 Archivos de sintaxis El SPSS permite generar y editar archivos de texto con sintaxis SPSS, es decir, archivos de texto con instrucciones de programación en un lenguaje propio del SPSS. Esta

Más detalles

Un primer acercamiento a la CMDB.

Un primer acercamiento a la CMDB. Un Versión primer 1.2 acercamiento a la CMDB. 20/07/2005 Un primer acercamiento a la CMDB. Versión 1.1 1.2 18/02/05 20/02/05 Fecha Jose Autores Carlos Manuel García Viejo García Lobato http://ars.viejolobato.com

Más detalles

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.

TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse. TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La 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 detalles

Fundamentos del diseño 3ª edición (2002)

Fundamentos del diseño 3ª edición (2002) Unidades temáticas de Ingeniería del Software Fundamentos del diseño 3ª edición (2002) Facultad de Informática necesidad del diseño Las actividades de diseño afectan al éxito de la realización del software

Más detalles

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib Manual de uso de la plataforma para monitores CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib [Manual de uso de la plataforma para monitores] 1. Licencia Autor del documento: Centro de Apoyo Tecnológico

Más detalles

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática

Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Universidad acional Experimental Del Táchira Decanato de Docencia Departamento de Ingeniería en Informática Metodología Evolutiva Incremental Mediante Prototipo y Técnicas Orientada a Objeto (MEI/P-OO)

Más detalles

Patrones para persistencia (I) Ingeniería del Software II

Patrones para persistencia (I) Ingeniería del Software II Patrones para persistencia (I) Ingeniería del Software II 1 Patrones para la construcción del esquema relacional En todos los ejemplos realizaremos transformaciones del siguiente diagrama de clases: Figura

Más detalles

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos 2.1. Principios básicos del Modelado de Objetos UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos Hoy en día muchos de los procesos que intervienen en un negocio o empresa y que resuelven

Más detalles

Algoritmos y Diagramas de Flujo 2

Algoritmos y Diagramas de Flujo 2 Algoritmos y Diagramas de Flujo 2 Programación Java NetBeans 7.0 RPC Contenido 2.1 Algoritmo...1 Fase de creación de un algoritmo...1 Herramientas de un algoritmo...2 2.2 Diagrama de Flujo...2 Símbolos

Más detalles

Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes de dispositivo

Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes de dispositivo Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes de dispositivo Oferta tecnológica: Herramienta software y método para modelar aplicaciones web independientes

Más detalles

Introducción a los Tipos Abstractos de Datos

Introducción a los Tipos Abstractos de Datos Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de

Más detalles

6. DESCRIPCIÓN DEL SOFTWARE

6. DESCRIPCIÓN DEL SOFTWARE Capítulo 2. Equipo 6. DESCRIPCIÓN DEL SOFTWARE 6.1 Introducción El equipo de medida descrito en el capítulo anterior lleva asociado un software que hace de sistema de control del proceso de medición. Este

Más detalles

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicios - Persistencia en Android: ficheros y SQLite Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base

Más detalles

1.- Introducción y objetivos

1.- Introducción y objetivos 1.- Introducción y objetivos El objetivo principal de este proyecto, desarrollado en el Departamento de Tecnología Electrónica de la Universidad de Valladolid (UVA) es realizar un entorno que ayude a los

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos 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 detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado Capítulo VI Estudio de Caso de Aplicación del Integrador de Información Desarrollado 6.1 Organización elegida La Organización elegida para el caso de aplicación, es la empresa CTM Tours del grupo Costamar,

Más detalles

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos

Mejores prácticas para el éxito de un sistema de información. Uno de los problemas de información dentro de las empresas es contar con datos ANEXO VI. Mejores prácticas para el éxito de un sistema de información Uno de los problemas de información dentro de las empresas es contar con datos importantes del negocio y que éstos estén aislados

Más detalles

Ejemplo de EVS (v 1.0). 1. Ámbito y alcance del proyecto. 2. Lista de usuarios participantes.

Ejemplo de EVS (v 1.0). 1. Ámbito y alcance del proyecto. 2. Lista de usuarios participantes. Ejemplo de EVS (v 1.0). A continuación se incluye una documentación inicial de la fase EVS. Se ha producido tras la consolidación de diferentes entrevistas con los responsables y usuarios del sistema a

Más detalles

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN

COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN COMANDOS DE SQL, OPERADORES, CLAUSULAS Y CONSULTAS SIMPLES DE SELECCIÓN Tipos de datos SQL admite una variada gama de tipos de datos para el tratamiento de la información contenida en las tablas, los tipos

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS 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 detalles

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas. El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los

Más detalles

Operación Microsoft Access 97

Operación Microsoft Access 97 Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe

Más detalles

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD 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 detalles

Resumen del trabajo sobre DNSSEC

Resumen del trabajo sobre DNSSEC Resumen del trabajo sobre Contenido 1. -...2 1.1. - Definición...2 1.2. - Seguridad basada en cifrado...2 1.3. - Cadenas de confianza...3 1.4. - Confianzas...4 1.5. - Islas de confianza...4 2. - Conclusiones...5

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL.

2.6.2.- Aplicaciones de las vistas. 2.6.1.- Concepto de vista. 2.6.3.- Vistas en SQL. 2.6.3.- Vistas en SQL. 2.6.1.- Concepto de vista. Una vista es una tabla derivada de otras tablas (básicas o virtuales). Una vista se caracteriza porque: Se considera que forma parte del esquema externo. Una vista es una tabla

Más detalles

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

DEPARTAMENTO: 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 detalles

Gestión y Desarrollo de Requisitos en Proyectos Software

Gestión y Desarrollo de Requisitos en Proyectos Software Gestión y Desarrollo de Requisitos en Proyectos Software Ponente: María Jesús Anciano Martín Objetivo Objetivo Definir un conjunto articulado y bien balanceado de métodos para el flujo de trabajo de Ingeniería

Más detalles

Un ejemplo teórico de trigger podría ser éste:

Un ejemplo teórico de trigger podría ser éste: 9. TRIGGERS EN LA BASE DE DATOS Un trigger (disparador sería la traducción técnica) es un bloque PLSQL que se ejecuta implícitamente cuando ocurre un evento y pueden ser de base de datos o de aplicació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 "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 detalles

Figura 4.1 Clasificación de los lenguajes de bases de datos

Figura 4.1 Clasificación de los lenguajes de bases de datos 1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje

Más detalles

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros La sentencia INSERT permite agregar nuevas filas de datos a las tablas existentes. Está sentencia

Más detalles

- MANUAL DE USUARIO -

- MANUAL DE USUARIO - - MANUAL DE USUARIO - Aplicación: Kz Precio Hora Instagi Instagi Teléfono: 943424465-943466874 Email: instagi@instagi.com GUIA PROGRAMA CALCULO PRECIO HORA 1. Introducción 2. Datos de la empresa 2.1.Gastos

Más detalles

MACROS. Automatizar tareas a través del uso de las macros.

MACROS. Automatizar tareas a través del uso de las macros. OBJETIVOS MACROS Definiciones Automatizar tareas a través del uso de las macros. Grabar Ejecutar Manipular macros. Tipos de Macros en Excel Introducción Las operaciones tradicionales que se pueden realizar

Más detalles

Sistema de Facturación de Ventas WhitePaper Enero de 2007

Sistema de Facturación de Ventas WhitePaper Enero de 2007 Sistema de Facturación de Ventas WhitePaper Enero de 2007 Ronda Guglielmo Marconi, 9 Parque Tecnológico 46980 Paterna Valencia Spain T +34 96 338 99 66 ventas@preference.es Please Recycle PrefSuite Document

Más detalles

Entre los más conocidos editores con interfaz de desarrollo tenemos:

Entre los más conocidos editores con interfaz de desarrollo tenemos: Herramientas de programación Para poder programar en ensamblador se precisa de algunas herramientas básicas, como un editor para introducir el código, un ensamblador para traducir el código a lenguaje

Más detalles

DISEÑO DE FUNCIONES (TRATAMIENTOS)

DISEÑO DE FUNCIONES (TRATAMIENTOS) DISEÑO DE FUNCIONES (TRATAMIENTOS) Diseño Estructurado. Estrategias para Derivar el Diagrama de Estructura. Diseño de Módulos Programables. 1. DISEÑO ESTRUCTURADO El Diseño es el proceso por el cual se

Más detalles

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008

GeneXus BPM Suite X. Última actualización: 01 de Setiembre de 2008 Última actualización: 01 de Setiembre de 2008 Copyright Artech Consultores S. R. L. 1988-2008. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento

Más detalles

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución

Más detalles

CAPÍTULO II. Gráficos Dinámicos.

CAPÍTULO II. Gráficos Dinámicos. 2.1 Definición. Los gráficos dinámicos son representaciones a escala del proceso, en donde se muestra la información de las variables del proceso a través de datos numéricos y de animación gráfica. Éstos

Más detalles

Ingeniería inversa de GUIs

Ingeniería inversa de GUIs Ingeniería inversa de GUIs Existen numerosos sistemas en funcionamiento que fueron desarrollados en los años 90 utilizando entornos RAD (Rapid Application Development), tales como Delphi, Visual Basic

Más detalles

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON) 3.1.1 Introducción Este método proporciona un soporte para el diseño creativo de productos de software, inclusive a escala industrial.

Más detalles

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008 Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008 Introducción Aunque la estrategia de adquisiciones que Oracle ha seguido en los últimos años siempre ha buscado complementar y fortalecer nuestra oferta

Más detalles

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI) OFERTAS TECNOLÓGICAS 1) GESTIÓN ORGANIZACIONAL Y LOGÍSTICA INTEGRADA: TÉCNICAS Y SISTEMAS DE INFORMACIÓN 2) GESTIÓN

Más detalles

19. Packages o paquetes

19. Packages o paquetes Programación orientada a objetos con Java 201 19. Packages o paquetes Objetivos: a) Definir el concepto de paquete b) Interpretar el código fuente de una aplicación Java donde se utilicen paquetes c) Construir

Más detalles

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo

CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA. Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo CAPÍTUL07 SISTEMAS DE FILOSOFÍA HÍBRIDA EN BIOMEDICINA Alejandro Pazos, Nieves Pedreira, Ana B. Porto, María D. López-Seijo Laboratorio de Redes de Neuronas Artificiales y Sistemas Adaptativos Universidade

Más detalles

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz

Compiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes 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 detalles

Capítulo I. Marco Teórico

Capítulo I. Marco Teórico 1 Capítulo I. Marco Teórico 1. Justificación Hoy en día existe una gran diversidad de aplicaciones que corren sobre la World Wide Web (WWW o Web), y cada una orientada a un fin en particular, el cuál depende

Más detalles

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software

Departamento de Lenguajes y Sistemas Informáticos. Ciclo de vida del software El Ciclo de Vida Software Departamento de Lenguajes escuela técnica superior de ingeniería informática Grupo de Ingeniería a Software Febrero 2006 Versión original: Amador Durán Toro (septiembre 2004)

Más detalles

Manual de rol gestor de GAV para moodle 2.5

Manual de rol gestor de GAV para moodle 2.5 Manual de rol gestor de GAV para moodle 2.5 Consultas LDAP-GAUR... 2 Buscar en LDAP datos de un usuario... 2 Docentes... 3 Buscar en GAUR datos de un docente... 3 Buscar en GAUR la docencia de un docente

Más detalles

LiLa Portal Guía para profesores

LiLa Portal Guía para profesores Library of Labs Lecturer s Guide LiLa Portal Guía para profesores Se espera que los profesores se encarguen de gestionar el aprendizaje de los alumnos, por lo que su objetivo es seleccionar de la lista

Más detalles

5.4. Manual de usuario

5.4. Manual de usuario 5.4. Manual de usuario En esta sección se procederá a explicar cada una de las posibles acciones que puede realizar un usuario, de forma que pueda utilizar todas las funcionalidades del simulador, sin

Más detalles

7. CONCLUSIONES Y TRABAJOS FUTUROS

7. CONCLUSIONES Y TRABAJOS FUTUROS 7. CONCLUSIONES Y TRABAJOS FUTUROS 7.1 CONCLUSIONES El presente trabajo ha realizado un acercamiento a JBoss AOP, un framework que permite la definición y ejecución de comportamiento aspectual. Consideramos

Más detalles

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech Resumen Todo documento XBRL contiene cierta información semántica que se representa

Más detalles

Curso de Spring Framework

Curso de Spring Framework Todos los Derechos Reservados Global Mentoring 2012 Experiencia y Conocimiento para tu Vida 1 Spring es un proyecto de código abierto (open source), originalmente creado por Rod Johnson y descrito en su

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

O jeto de apre r ndizaje

O jeto de apre r ndizaje Herramientas de Gestión para Objetos de Aprendizaje. Plataforma AGORA Victor Hugo Menéndez Domínguez Universidad Autónoma de Yucatán, México :: mdoming@uady.mx Manuel Emilio Prieto Méndez Universidad de

Más detalles

DISEÑO DE COMPONENTES DE SOFTWARE *

DISEÑO DE COMPONENTES DE SOFTWARE * DISEÑO DE COMPONENTES DE SOFTWARE * NOTAS DEL CURSO Ingeniería de Software I DRA. MARIA DEL PILAR GÓMEZ GIL INAOEP * Resumen del capítulo 10 de libro de [Pressman 2010] V:18-11-2008 (c) P. Gomez-Gil, INAOE.

Más detalles

Administración de Variabilidad en una línea de producto basada en modelos

Administración de Variabilidad en una línea de producto basada en modelos Administración de Variabilidad en una línea de producto basada en modelos Kelly Garcés Carlos Parra Hugo Arboleda Andres Yie Rubby Casallas Universidad de los Andes, Bogotá k-garces @uniandes.edu.co Universidad

Más detalles

Práctica de introducción a

Práctica de introducción a Práctica de introducción a XML El trabajo consiste en una introducción al uso del lenguaje XML y su aplicación en documentos y sistemas de caracteristicas multimedia. 1.- Qué es XML? XML (extensible Markup

Más detalles

Geolocalización de Sitios de Interés Para Aplicaciones Móviles G-SIAM. Plan de Aseguramiento de Calidad del Software SQAP

Geolocalización de Sitios de Interés Para Aplicaciones Móviles G-SIAM. Plan de Aseguramiento de Calidad del Software SQAP Proyecto de Grado Lic. En Informática Geolocalización de Sitios de Interés Para Aplicaciones Móviles Plan de Aseguramiento de Calidad del Software SQAP VERSIÓN 1.1 Universidad de la Empresa Soriano 959

Más detalles

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado.

Es de aplicación a todas aquellas situaciones en las que se necesita desplegar un objetivo para obtener una visión clara de cómo debe ser alcanzado. DIAGRAMA DE AÁRBOL 1.- INTRODUCCIÓN Este documento describe el proceso de construcción de un Diagrama de Árbol, mediante el cual se dispone de una metodología simple y sistemática para la identificación

Más detalles

Patrones de Diseño Orientados a Objetos 2 Parte

Patrones de Diseño Orientados a Objetos 2 Parte Patrones de Diseño Orientados a Objetos 2 Parte Patrón Observador Observer (Patrón de Comportamiento) Patrón Observador Observer Observador (en inglés: Observer) es un patrón de diseño que define una dependencia

Más detalles

Optimizar base de datos WordPress

Optimizar base de datos WordPress Optimizar base de datos WordPress Cardenal Gardoki, 1 48008 BILBAO (Vizcaya) Teléfono: 902 012 199 www.hostalia.com WordPress se ha convertido en uno de los CMS más utilizados en todo el mundo. Su robustez,

Más detalles

Diseño orientado a los objetos

Diseño orientado a los objetos Diseño orientado a los objetos El Diseño Orientado a los Objetos (DOO) crea una representación del problema del mundo real y la hace corresponder con el ámbito de la solución, que es el software. A diferencia

Más detalles

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema

Capítulo 2. Planteamiento del problema. Capítulo 2 Planteamiento del problema Capítulo2 Planteamientodelproblema 38 2.1Antecedentesycontextodelproyecto En lo que respecta a los antecedentes del proyecto, se describe inicialmente el contexto donde se utiliza el producto de software.

Más detalles

Unidad 1. Fundamentos en Gestión de Riesgos

Unidad 1. Fundamentos en Gestión de Riesgos 1.1 Gestión de Proyectos Unidad 1. Fundamentos en Gestión de Riesgos La gestión de proyectos es una disciplina con la cual se integran los procesos propios de la gerencia o administración de proyectos.

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT) MANUAL DE AYUDA MODULO SAT (Anexo Integración AGIL SAT) Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS 1 INTRODUCCION... 3 1.1 Objetivo... 3 1.2 Descripción de la aplicación Agil-SAT PDA... 3 1.3

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma 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 detalles

INFORME TECNICO PARA LA ADQUISICIÓN DE LICENCIAS SOFTWARE OFIMÁTICO

INFORME TECNICO PARA LA ADQUISICIÓN DE LICENCIAS SOFTWARE OFIMÁTICO INFORME TECNICO PARA LA ADQUISICIÓN DE LICENCIAS SOFTWARE OFIMÁTICO 1.- Nombre del Área: El área encargada de la evaluación técnica para la adquisición de licencias de software ofimático es la oficina

Más detalles

Introducción a Protégé

Introducción a Protégé FACULTAD DE INFORMÁTICA LICENCIATURA EN DOCUMENTACIÓN SISTEMAS DE REPRESENTACIÓN Y PROCESAMIENTO AUTOMÁTICO DEL CONOCIMIENTO Práctica 1 1ª Parte Introducción a Protégé Febrero 2003 1. Objetivo La presente

Más detalles

Migración de datos automática a partir de la información de los esquemas conceptuales 1

Migración de datos automática a partir de la información de los esquemas conceptuales 1 Migración de datos automática a partir de la información de los esquemas conceptuales 1 J.Pérez 1, J.A.Carsí 1, I.Ramos 1, V.Anaya 1, J.Silva 1, Departamento de Sistemas Informáticos y Computación Universidad

Más detalles

JavaScript como Orientación a Objetos

JavaScript como Orientación a Objetos Gustavo Lacoste (gustavo@lacosox.org) October 2012 Resumen El objetivo de las siguientes notas es generar una estructura en JavaScript que nos permita reutilizar de manera limpia las funciones creadas

Más detalles

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN

2.1.- EJEMPLO DE UN PROGRAMA FORTRAN 2.1.- EJEMPLO DE UN PROGRAMA FORTRAN Con el presente apartado comenzaremos a conocer cómo se escribe un programa en lenguaje FORTRAN bajo el entorno de programación FORTRAN. En primer lugar conozcamos

Más detalles

Metodología centrada en la Experiencia del Usuario

Metodología centrada en la Experiencia del Usuario Metodología centrada en la Experiencia del Usuario Esta metodología fue creada por Jesse James Garrett, se describe a detalle en su libro The Elements of User Experience, consiste en asegurarse que ningún

Más detalles

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola

MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO. Tema 1: Gestión de listas de datos y tablas dinámicas. Leire Aldaz, Begoña Eguía y Leire Urcola MÓDULO 2: TRATAMIENTO DE DATOS CON HOJA DE CÁLCULO Tema 1: Gestión de listas de datos y tablas dinámicas Leire Aldaz, Begoña Eguía y Leire Urcola Índice del tema - Introducción a las listas de datos -

Más detalles

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado

Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado Ingeniería de Software con UML Unified Modeling Language Lenguaje Unificado de Modelado 1. Introducción Unified Modeling Languaje Fuente: Booch- Jacobson-Rumbauch y diversos sitios Internet, entre otros:

Más detalles

Capí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 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 detalles