Hacia una mejor experiencia de debugging en desarrollos AOP

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

Download "Hacia una mejor experiencia de debugging en desarrollos AOP"

Transcripción

1 TESIS DE GRADO EN INGENIERÍA INFORMÁTICA Hacia una mejor experiencia de debugging en desarrollos AOP FACULTAD DE INGENIERÍA UNIVERSIDAD DE BUENOS AIRES TESISTA: Adrián EIDELMAN DIRECTORA: Lic. Rosa WACHENCHAUZER CO-DIRECTOR: Lic. Alan CYMENT NOVIEMBRE 2006

2 Resumen Las limitaciones que presenta la Programación Orientada a Objetos para encapsular las incumbencias transversales en un desarrollo de software han dado origen a nuevas técnicas de programación, entre las cuales se ha destacado en los últimos años la Programación Orientada a Aspectos (AOP). AOP introduce una nueva unidad de modularización denominada aspecto, que tiene el fin de encapsular estas funcionalidades transversales y mejorar así la comprensión y mantenibilidad de las aplicaciones. A partir de la introducción del aspecto como unidad de modularización, AOP a su vez incorpora nuevas fuentes de fallas y por lo tanto nuevos desafíos en lo que respecta al testing en desarrollos de este tipo. A pesar de esto, el aseguramiento de la calidad no ha sido objeto de atención dentro de la comunidad AOP y el escaso desarrollo de esta disciplina se manifiesta particularmente en una actividad: el debugging de aplicaciones. El objetivo de la presente tesis es exponer las fallas características que pueden presentarse en desarrollos AOP y las limitaciones en cuanto al soporte a las tareas de debugging que presentan en general las herramientas para desarrollos orientados a aspectos, para luego presentar una propuesta de solución y plasmar la misma dentro del framework conocido como SetPoint. Adrián Eidelman 2/148

3 Agradecimientos A Rosita y a Alan, directora y co-director de esta tesis, por su confianza y ayuda incondicional desde el primero hasta el último día de trabajo. A Rubén, por sus aportes, comentarios y sugerencias desde el viejo continente. A Silvina por su apoyo y compañía constantes durante todos estos años de carrera. A mis padres, Alicia y Mario, y mis hermanos Gabriel y Nadia. A todos aquellos que ayudaron desinteresadamente desde algún lugar del cyberespacio. A profesores, compañeros, amigos y todos los que me permitieron llegar a este momento. Adrián Eidelman 3/148

4 Tabla de Contenidos RESUMEN...2 AGRADECIMIENTOS...3 TABLA DE CONTENIDOS INTRODUCCIÓN...7 ORGANIZACIÓN DE LA TESIS LA PROGRAMACIÓN ORIENTADA A ASPECTOS...12 EL PROBLEMA DE LAS INCUMBENCIAS TRANSVERSALES...12 Ejemplificando el problema...13 UNA PROPUESTA DE SOLUCIÓN: AOP...15 Elementos distintivos del paradigma AOP...16 Otras ventajas que ofrece AOP...20 AOP vs. POO...20 RESUMEN EL PROYECTO SETPOINT...22 SETPOINT, LECTOR LECTOR, SETPOINT...22 UNA MOTIVACIÓN PARA SETPOINT: LA PARADOJA DE LA PROGRAMACIÓN AOP...23 SEMANTIC POINTCUTS Y CONCEPTOS DE LA WEB SEMÁNTICA...25 Conceptos de la Web semántica...26 Armando el rompecabezas hacia la implementación de setpoints...30 MODELO DE JOINPOINTS Y WEAVING...32 Completando el universo semántico de la aplicación...33 DECLARACIÓN DE ASPECTOS, ADVICES Y POINTCUTS...34 Pointcuts...35 Aspectos...36 Advices...37 ARQUITECTURA SETPOINT...38 RESUMEN ANTES DE CONTINUAR... QUÉ ENTENDEMOS EXACTAMENTE POR DEBUGGING?...40 BUGS, DEFECTOS Y FALLOS...40 DEBUGGING...41 DEBUGGERS...42 Estado del arte...43 ALGUNAS ACLARACIONES RELACIONADAS CON EL DEBUGGING...44 RESUMEN ESTADO DEL ARTE: INVESTIGACIONES SOBRE EL TEMA...46 TRABAJOS RELACIONADOS...46 TEMAS PENDIENTES DE INVESTIGACIÓN...48 RESUMEN DEFINICIÓN DEL PROBLEMA Y OBJETIVOS...51 POR QUÉ TESTEAR DESARROLLOS AOP ES DIFERENTE?...51 UN MODELO DE FALLAS PARA AOP...52 La naturaleza de las fallas en desarrollos AOP...53 Modelo de fallas candidato...54 DEBUGGEANDO APLICACIONES EN SETPOINT...56 Modelos de weaving...56 Información de debugging...59 Adrián Eidelman 4/148

5 Desentendimiento de las actividades propias de AOP...61 OBJETIVOS DE LA TESIS...64 RESUMEN MEJORANDO LA EXPERIENCIA DE DEBUGGING EN DESARROLLOS AOP...66 PROPIEDADES DE UNA SOLUCIÓN IDEAL DE DEBUGGING...67 Idempotencia...67 Desentendimiento...69 Intimidad...72 Dinamismo...73 Introducción de aspectos...74 Modificaciones en tiempo de ejecución...75 Aislamiento de fallas...76 Conocimiento del flujo de ejecución...77 Inmediatez...77 LA SITUACIÓN DE SETPOINT Y LAS RESTANTES PLATAFORMAS AOP...78 RESUMEN NUESTRO GRANO DE ARENA: DISEÑO E IMPLEMENTACIÓN DE LA SOLUCIÓN EN SETPOINT...82 DEFINIENDO EL ALCANCE DEL TRABAJO...82 Las propiedades a implementar...82 Debugger...83 SETPOINT V1.1: UN PRIMER ACERCAMIENTO...84 Idempotencia...85 Desentendimiento...88 Dinamismo...90 Conocimiento del flujo de ejecución...95 Síntesis de la primera experiencia...97 SETPOINT V2.0: PROPUESTA FINAL PARA ESTE TRABAJO...98 Idempotencia...98 Desentendimiento e Intimidad Conocimiento del flujo de ejecución Inmediatez Síntesis de la segunda experiencia RESUMEN UNIFICANDO CONCEPTOS: UN EJEMPLO DE APLICACIÓN DESCRIPCIÓN DE LA APLICACIÓN AOP Dimensión base y aspectos Implementación de los aspectos REALIZANDO EL DEBUGGING DE LA APLICACIÓN Debugging a nivel código fuente Controlando la dinámica de la aplicación Flujo de ejecución de aspectos Determinando el origen de la falla RESUMEN CONCLUSIONES ANEXO A EL FRAMEWORK PHOENIX VISIÓN GENERAL ARQUITECTURA DE PHOENIX MODO DUAL JERARQUÍA DE UNIDADES RESUMEN ANEXO B DIAGRAMAS DE SECUENCIA SETPOINT El algoritmo del weaver Obtención de matchpoint y política de weaving Adrián Eidelman 5/148

6 Ejecución de la RandomWeavingPolicy ANEXO C EJEMPLOS DE REPRESENTACIONES SEMÁNTICAS REPRESENTACIÓN SEMÁNTICA DE LA APLICACIÓN DOTSTACK REPRESENTACIÓN SEMÁNTICA DEL COMMON TYPE SYSTEM REFERENCIAS Adrián Eidelman 6/148

7 1. Introducción A partir de la mitad de la década de 1980 y hasta la actualidad, la POO o Programación Orientada a Objetos se ha constituido como uno de los paradigmas de programación más importantes. Las características de la POO han permitido modelar problemas complejos con gran facilidad, y hoy día el paradigma de objetos es probablemente el más utilizado a la hora de construir soluciones de software. Sin embargo, como todos los paradigmas de programación existentes, éste posee también sus puntos débiles. Este hecho ha dado lugar a la aparición de nuevas técnicas de programación, dentro de las cuales se destaca principalmente la Programación Orientada a Aspectos, también conocida como AOP por sus siglas en inglés (Aspect Oriented Programming). La Programación Orientada a Aspectos aparece como una propuesta para solucionar el problema de la separación de incumbencias transversales o crosscuting concerns, es decir, aquellas funcionalidades o cualidades del sistema que afectan a más de una clase u objeto [Kiczales et al., 1997]. Ejemplos típicos de crosscuting concerns son tracing, logging y seguridad, entre muchos otros. Generalmente, estos crosscuting concerns constituyen requerimientos no funcionales del sistema y se dispersan a lo largo de todo el código fuente 1. En la programación tradicional, ya sea mediante POO o programación procedural, la lógica principal de la aplicación se entremezcla con aspectos suplementarios o no funcionales, como los mencionados anteriormente. La propuesta de AOP se basa en permitir la modularización de estos aspectos, permitiendo a los desarrolladores construir la lógica del negocio de forma independiente a las restantes incumbencias, y luego poder relacionarlas con la ayuda automática de herramientas especialmente diseñadas para tal fin. En definitiva, lo que AOP ofrece desde la teoría- es una verdadera separación de incumbencias. Debido a la corta edad que registra la programación orientada a aspectos, y su inmadurez como técnica de desarrollo, ésta aún presenta varios desafíos que será necesario afrontar para pasar de ser una tecnología promisoria a una tecnología que se pueda utilizar en la práctica y de manera masiva a nivel industrial. Hoy 1 Algunos trabajos realizados denominan crosscuting concern a cualquier incumbencia transversal independientemente de su carácter funcional o no funcional. Consideramos que las ventajas de AOP se presentan principalmente al tomar como crosscuting concerns a los aspectos no funcionales de un sistema. Queda fuera del alcance de este trabajo entrar en una discusión sobre este tema. Adrián Eidelman 7/148

8 día, los mayores esfuerzos en investigación de este paradigma se centran en las disciplinas de análisis, diseño e implementación, y en ese sentido otras áreas de investigación han quedado relegadas. Quizás el ejemplo más concreto sea el testing. A pesar de la sabida importancia que tiene el testing en el desarrollo de soluciones informatizadas, esencial para asegurar la calidad del software, aún no se le ha prestado la atención debida en el mundo AOP y los trabajos relacionados con esta disciplina son realmente escasos. Ciertas características propias de la programación orientada a aspectos que serán abordadas a lo largo de este trabajo- hacen que las técnicas y herramientas de testing existentes en la actualidad no sean las más adecuadas para este tipo de soluciones. Encontrar técnicas y herramientas adecuadas para el desarrollo de aplicaciones AOP será sin dudas un paso fundamental e ineludible para poder construir exitosamente este tipo de soluciones. Teniendo en cuenta esta situación, con la esperanza de contribuir a la madurez de esta tecnología y conseguir herramientas prácticas que permitan desarrollar software de alta calidad, la presente tesis abordará el estudio de un tema específico dentro de la disciplina de testing: el debugging de aplicaciones. Es sabido que las herramientas modernas de debugging constituyen una parte fundamental en el desarrollo de software y seguramente son pocas las necesidades que puedan surgir al debuggear aplicaciones procedurales u orientadas a objetos y que estas herramientas no nos provean. No sucede lo mismo para AOP: las características particulares de la programación orientada a aspectos -relacionadas con la introducción del aspecto como una nueva entidad de programación, la relación e interacción entre los aspectos y los módulos tradicionales, entre otras cosas- dan lugar a nuevas fuentes de fallas en los programas, y por lo tanto resultarán en sistemas con nuevos desafíos de testing y diferentes necesidades de debugging. La gran mayoría de las herramientas AOP en la actualidad carecen de un adecuado soporte al debugging, dificultando así la tarea de diagnosticar fallas y comprender la estructura y flujo de ejecución de los programas. La posibilidad de debuggear aplicaciones AOP es crítica para la adopción de este paradigma. La intención de la presente tesis es presentar una propuesta de solución basada en propiedades de debugging que idealmente debería soportar una herramienta para desarrollos AOP, y realizar una experiencia práctica implementando aquellas Adrián Eidelman 8/148

9 funcionalidades que sean posibles de acuerdo a un análisis previo de factibilidad- dentro del framework de AOP SetPoint [Cyment & Altman, 2004] 2. Los pasos que se realizarán a lo largo del trabajo serán: 1. Se analizarán las fuentes de fallas que introduce la programación orientada a aspectos, particulares de este paradigma. 2. A partir del modelo de fallas planteado, y a los trabajos existentes sobre el tema, se presentarán las propiedades de debugging que debería brindar idealmente cualquier herramienta para desarrollos AOP. 3. En base a los dos puntos anteriores, se analizará qué facilidades de debugging ofrece hoy en día el framework para AOP SetPoint, y se establecerá una meta previo análisis de factibilidad- para mejorar la situación actual. 4. Se diseñaran y construirán las propiedades propuestas para el framework AOP SetPoint, describiendo de qué manera estas nuevas funcionalidades del framework facilitan la experiencia de debugging. 5. Finalmente, se expondrán las conclusiones del trabajo, intentando sentar las bases para nuevas técnicas de debugging para herramientas AOP. Organización de la tesis El trabajo se encuentra dividido en una serie de capítulos, los cuales se describen brevemente a continuación: 1. Introducción: presenta el problema y temas a ser tratados en el trabajo. 2. La Programación Orientada a Aspectos: realiza una introducción al paradigma AOP, sus conceptos principales y objetivos. 3. El proyecto SetPoint: introduce el proyecto SetPoint y sus características salientes, destacando aquellos que estén directamente relacionados con el tema de esta tesis. 4. Antes de continuar qué entendemos exactamente por debugging?: explica qué es el debugging y las diferentes técnicas existentes. Presenta 2 El proyecto SetPoint será descrito en profundidad más adelante en este trabajo. Adrián Eidelman 9/148

10 aclaraciones acerca de conceptos erróneos comúnmente utilizados sobre la actividad. 5. Estado del arte: Investigaciones sobre el tema: describe los trabajos de investigación relacionados con el tema abordado en la presente tesis y presenta los temas pendientes de resolución relacionados con el aseguramiento de la calidad en desarrollos orientados a aspectos. 6. Definición del problema y objetivos: describe en detalle un modelo de fallas para AOP y las limitaciones al debugging existentes en SetPoint muchas veces presentes en otras plataformas-, los cuales sientan las bases para determinar las necesidades de debugging de para una herramienta de desarrollo AOP. De acuerdo al problema planteado se definen formalmente en este capítulo los objetivos de la tesis. 7. Mejorando la experiencia de debugging en desarrollos AOP: presenta una propuesta de mejora basada en una serie de propiedades que debería brindar una solución ideal de debugging para AOP. En base a las propiedades planteadas se presenta la situación de SetPoint y otras herramientas de desarrollo, reflejando el estado de situación actual en relación al soporte de debugging. 8. Nuestro grano de arena: diseño e implementación de la solución en SetPoint: describe la implementación en SetPoint de cada una de las funcionalidades construidas para dar soporte a las propiedades alcanzadas dentro del trabajo, presentando los problemas y limitaciones encontradas. Compara la situación final de la herramienta en relación a su versión anterior. 9. Unificando conceptos: un ejemplo de aplicación: presenta mediante un ejemplo sencillo cómo se puede realizar la actividad de debugging en SetPoint haciendo uso de los avances alcanzados en este trabajo 10. Conclusiones: presenta los aspectos salientes del trabajo realizado proponiendo a la vez futuras líneas de investigación relacionadas. 11. Anexo A El framework Phoenix: introduce las características más importantes de la herramienta. 12. Anexo B Diagramas de secuencia SetPoint: presenta los diagramas de secuencia actualizados correspondientes a las actividades de weaving en SetPoint. Adrián Eidelman 10/148

11 13. Anexo C Ejemplos de representaciones semánticas: presenta ejemplos de ontologías con el fin de profundizar el concepto de pointcuts semánticos. Adrián Eidelman 11/148

12 2. La Programación Orientada a Aspectos La Programación Orientada a Aspectos como nueva técnica de programación se encuadra dentro de lo que se conoce de manera genérica como POP o Post-Object Programming [Elrad et al., 2001b]. La Programación Orientada a Objetos, a pesar de ser el paradigma de programación dominante en la actualidad, posee limitaciones que han dado origen a esta nueva generación de técnicas. Hemos mencionado que AOP propone desde la teoría una real separación de incumbencias. Ahora bien... cuál es el problema con POO? Qué es en definitiva AOP? Cómo propone solucionar el problema de las incumbencias transversales? AOP reemplaza POO? El presente capítulo intentará aclarar todas estas preguntas. El problema de las incumbencias transversales La programación orientada a objetos nos ha permitido desarrollar aplicaciones complejas: interfaces gráficas, sistemas operativos y aplicaciones distribuidas son sólo unos pocos ejemplos de lo que se ha podido construir utilizando POO. Sin embargo, el éxito en desarrollar este tipo de sistemas nos lleva a querer desarrollar sistemas aún más complejos, y es ahí donde surgen necesidades de nuevas técnicas y herramientas que nos permitan hacerlo. POO es una excelente idea, pero también tiene sus limitaciones: si uno se detiene a analizar la implementación en código de una solución, es posible observar que muchos requerimientos no se descomponen claramente en una unidad que agrupe esos comportamientos. La orientación a objetos presenta dificultades al intentar agrupar o localizar estos requerimientos [Kiczales et al., 1997; Elrad et al., 2001b], que en la generalidad de los casos tienden a ser requerimientos suplementarios o no funcionales. Por el contrario, estos requerimientos se encuentran dispersos a lo largo de todo el código, de forma transversal, generando de esta forma un código de mayor complejidad y más difícil comprensión. Adrián Eidelman 12/148

13 Ejemplificando el problema Supongamos que nos piden construir un sistema para un estudio jurídico y, como parte de éste, modelamos utilizando los conceptos de la orientación a objetoslas siguientes clases: Abogado, Pasante y Secretaria. Entre los tantos requerimientos que nos solicitan deberemos brindar la posibilidad de enviar mensajes entre estos tres actores. Una modelización posible es la que muestra la Figura 2-1. Empleado Abogado Secretaria Pasante -enviarmensaje() -enviarmensaje() -enviarmensaje() Figura 2-1: Modelo de la solución para el estudio jurídico Dado que los mensajes enviados por abogados y secretarias pueden contener información crítica, nos solicitan además que todo mensaje enviado por alguno de estos actores deberá ser encriptado previo a su envío. Por supuesto accedemos al pedido y, dentro de la operación enviarmensaje de las clases Abogado y Secretaria, agregamos la siguiente línea de código: private void Abogado.enviarMensaje(string mensaje) {... string mensajeencriptado = encriptar(mensaje);... } Por supuesto nuestro modelo no ha sido alterado, pero ahora existe una particularidad en el código: las operaciones de envío de mensaje de las clases Abogado y Secretaria incluyen la encriptación de los mismos y, como se ilustra en la Figura 2-2, esta funcionalidad de encriptación se encuentra ahora dispersa a lo Adrián Eidelman 13/148

14 largo de más de una clase. En conclusión: la encriptación, en este modelo, constituye una incumbencia transversal o crosscuting concern [Kiczales et al., 1997]. Empleado Abogado Secretaria Pasante Encriptación -enviarmensaje() -enviarmensaje() -enviarmensaje() Figura 2-2: La encriptación de datos constituye una incumbencia transversal Existe además otra característica, producida por la aparición de esta incumbencia transversal, que no hemos mencionado aún. Las clases Abogado y Secretaria, que originalmente fueron diseñadas para resolver aspectos funcionales del estudio jurídico, se entremezclan ahora con aspectos secundarios al dominio del problema, como es en este caso la funcionalidad de encriptación. En resumen, son dos los efectos no deseables producto de la existencia de incumbencias transversales: el primero de los efectos mencionados, en donde el código correspondiente a una incumbencia no es encapsulado en un único módulo sino que se dispersa en varios puntos del programa, es conocido como Code Scattering. El segundo de los efectos, en donde en un mismo módulo encontramos código correspondiente a distintas incumbencias, se conoce con el nombre de Code Tangling [Kiczales et al., 1997] (Figura 2-3). El code scattering y el code tangling producen como consecuencia un código más complejo y complicado de entender y mantener. Puede argumentarse que la solución planteada en este ejemplo puede no ser la mejor. Es cierto que existen soluciones más elegantes al problema, probablemente mediante la especialización de las clases o el uso de patrones de diseño. No es intención del presente trabajo profundizar en esta discusión, sin embargo, como se explica en diversos trabajos relacionados, el problema sigue Adrián Eidelman 14/148

15 existiendo más allá del ejemplo que se utilice [Dedecker, 2002; Cyment & Altman, 2004]. Empleado Code Tangling Abogado Secretaria Pasante Code Scattering -enviarmensaje() -enviarmensaje() -enviarmensaje() Figura 2-3: Code Scattering y Code Tangling Una propuesta de solución: AOP La programación orientada a aspectos centra su propuesta en la idea de que es conveniente construir un sistema especificando las diferentes incumbencias del problema de manera separada e independientes unas de otras, y luego utilizar mecanismos propios del entorno de desarrollo para relacionarlas de forma de obtener un programa coherente. AOP introduce para esto una nueva unidad de modularización, denominada aspecto, la cual tiene como objetivo encapsular las incumbencias transversales. Basándose en esta propuesta, existirá una dimensión base del problema y otras que la cruzan, representadas por estos aspectos [Cyment & Altman, 2004]. Si suscribimos a la idea de asociar los aspectos con requerimientos no funcionales del sistema como puede ser logging, persistencia, transaccionabilidad, entre otros- entonces la dimensión base se corresponderá con la lógica del negocio, mientras que la dimensión de aspectos conformará los requerimientos suplementarios del sistema. Si logramos modularizar por un lado al negocio, y por separado a cada una de las incumbencias transversales, entonces desde la teoría- estaremos solucionando el problema del code scattering y el code tangling. Más aún, el programador de una dimensión del problema podrá ser capaz de desentenderse de las demás dimensiones y concentrarse sólo en aquella Adrián Eidelman 15/148

16 que le interesa, propiedad que se conoce con el nombre de obliviousness [Filman & Friedman, 2000]. Volviendo por un momento al ejemplo del abogado y la secretaria, quizás la tendencia en POO hubiese sido la de agrupar las funcionalidades comunes entre las clases en este caso la funcionalidad de encriptación- y empujarlas hacia arriba en el diagrama de clases, de forma de localizar el código de encriptar exclusivamente en la clase Empleado 3. AOP en cambio intenta tomar la incumbencia como un elemento de primera clase, y expulsarla horizontalmente de la estructura de clases, tal como se ilustra en la Figura 2-4. Empleado Encriptación Aspecto de Encriptación Abogado Secretaria Pasante -enviarmensaje() -enviarmensaje() -enviarmensaje() Figura 2-4: AOP modulariza las incumbencias transversales en unidades llamadas aspectos Modularizando las incumbencias de esta forma, AOP ofrece -desde la teoría- una real separación de incumbencias. Elementos distintivos del paradigma AOP 4 Hemos visto hasta el momento qué propone AOP como objetivo principal, analizando el problema de las incumbencias transversales. Esto no aclara de todas maneras de qué forma la programación orientada a aspectos lo trata de solucionar. Intentaremos comprender, mediante la presentación de los elementos 3 Si se analiza un poco más en detalle esta solución, llegará a la conclusión que el problema de code tangling no se resuelve de esta manera. 4 No existe un real consenso dentro de la comunidad sobre si AOP es en realidad un nuevo paradigma o no. Sí existe una visión común acerca de que constituye una evolución lógica en el desarrollo de software, especialmente para desarrollos orientados a objetos. Esta discusión escapa los alcances de este trabajo, a pesar que utilizaremos el término a lo largo del mismo. Adrián Eidelman 16/148

17 distintivos del paradigma, cómo es que AOP logra modularizar estas incumbencias. JoinPoints, Pointcuts y Advices Mediante el uso de AOP podemos modularizar las incumbencias transversales de forma independiente, y así contar con una dimensión base del problema por un lado y otras dimensiones que lo cruzan por otro lado. En dónde se intersecan estos dos mundos? Los puntos en la ejecución de un programa donde es posible aplicar la lógica de un aspecto se denominan joinpoints. Cada plataforma AOP posee su definición particular de cuáles son los puntos de ejecución que pueden conformar un joinpoint, aunque generalmente éstos están constituidos por llamadas a métodos, accesos a propiedades de un objeto o creaciones de objetos. La definición de joinpoint no basta para completar el modelo. Es necesario contar con algún mecanismo que nos permita decir qué aspecto se debe aplicar en determinado joinpoint. Expresándolo de una manera un poco más formal, necesitamos poder predicar sobre los joinpoints para definir su pertenencia o no a un conjunto, y así definir los aspectos que deben ejecutarse en tales puntos del programa. La forma que tenemos de predicar sobre los joinpoints es denominada cuantificación [Filman & Friedman, 2000] y su implementación será también particular de cada plataforma. Mediante la facilidad de cuantificación que nos provea la herramienta AOP que utilicemos será posible definir una serie de joinpoints para luego aplicar aspectos sobre tal conjunto. El nombre que se le da a un conjunto definido de joinpoints es pointcut. Finalmente, se denomina advice a la entidad que permite definir qué aspecto se debe ejecutar en todos los joinpoints pertenecientes a un pointcut. A partir de estas tres entidades presentadas, la idea de cómo funciona AOP empieza a quedar un poco más clara. Trataremos de aplicar estos nuevos conceptos al ejemplo antes presentado 5 : De acuerdo a lo expresado anteriormente, tenemos una dimensión base del problema compuesta por la lógica de negocio del estudio jurídico y otra dimensión 5 El ejemplo utiliza los conceptos de forma general, sin entrar en detalles de implementación o referenciando a alguna herramienta AOP en particular. Adrián Eidelman 17/148

18 transversal compuesta por el aspecto de encriptación 6. Necesitamos, de acuerdo a lo solicitado por nuestro cliente, que los envíos de mensaje que realizan tanto un abogado como una secretaria sean encriptados previos a su transmisión. Suponiendo que contamos con una plataforma AOP en la que las llamadas a métodos pueden constituir un joinpoint deben ser contados los casos de herramientas en los cuales esto no es así, si efectivamente existe alguna que no lo permita- podríamos decidir aplicar el aspecto de encriptación a todas las llamadas al método enviarmensaje de instancias de las clases Abogado y Secretaria. Para eso debemos definir el pointcut que incluya a todos esos puntos de ejecución, por ejemplo de la siguiente manera: Pointcut mensajessensibles { todas las llamadas al método enviarmensaje de instancias de las clases Abogado o Secretaria } Resta definir un advice que indique que se debe aplicar el aspecto de encriptación en todos los joinpoints del pointcut mensajessensibles. Esto podría realizarse de la siguiente manera: Advice encriptarmensajessensibles { aplicar el aspecto Encriptación al pointcut mensajessensibles } De acuerdo a las definiciones de pointcuts, aspectos y advices que se realicen, la plataforma AOP deberá encargarse de relacionar todos estos elementos con el objetivo de obtener como resultado un sistema que funcione idénticamente a como lo haría si hubiésemos optado por mecanismos tradicionales de programación. En definitiva, esta modularización en aspectos tiene por objetivo facilitar la construcción y entendimiento del software, mientras que el resultado que deseamos obtener desde un punto de vista de la ejecución del mismo no 6 Lógicamente podrán existir más aspectos aparte del de encriptación. Se toma este solo para simplificar el ejemplo. Adrián Eidelman 18/148

19 varía con respecto a los restantes paradigmas. El proceso por el cual se combinan la dimensión base con las restantes dimensiones del problema se denomina weaving, término que en castellano significa entretejido. Weaving El weaving es el proceso que se encarga de que se ejecuten los aspectos que corresponden durante la ejecución del programa, de acuerdo a los advices que se hayan definido. Denominaremos al componente que realiza el proceso de weaving con el nombre de weaver. Lógicamente este proceso debe valerse de mecanismos automáticos provistos por la plataforma AOP, de forma que sea, en la mayor medida posible, invisible para el programador. Como ejemplifica la Figura 2-5, el proceso de weaving integra la dimensión base en este caso la lógica de negocio del estudio jurídico- con las dimensiones transversales encapsuladas en aspectos. SISTEMA DE ESTUDIO JURÍDICO Encriptación Visualización... weaving weaving weaving Logging weaving Abogados, Secretarias, Legajos, Escritos... weaving Persistencia weaving weaving weaving Caching Tracing Seguridad Figura 2-5: El proceso de weaving Adrián Eidelman 19/148

20 El proceso de weaving es un tema central no sólo a la programación orientada a aspectos, sino también en particular al debugging en plataformas AOP por lo que será abordado en mayor detalle a lo largo del trabajo. Otras ventajas que ofrece AOP Además de la claridad en el desarrollo que persigue la programación orientada a aspectos, podemos mencionar otras ventajas que ofrece esta técnica de programación: Reutilización de aspectos: el tener las incumbencias transversales modularizadas nos da la posibilidad de reutilizar la lógica de los aspectos en otros desarrollos. Esto se puede tornar sumamente complicado si las funcionalidades se encuentran dispersas a lo largo del código fuente. Utilización de aspectos en sistemas legacy: la independencia que poseen los aspectos de la dimensión base facilitan la incorporación de funcionalidades a sistemas de los cuales no se posee conocimiento y por lo tanto sería sumamente complicado modificar el código para lograrlo. Incluso en plataformas AOP que no se valen del código fuente para lograr el weaving, esto es posible de realizar precisamente sin la existencia del código. AOP vs. POO Es importante, para cerrar la idea de la programación orientada a aspectos, entender un último concepto: el objetivo de AOP no es reemplazar POO. Todo lo contrario, AOP se construye por sobre POO, tratando de conseguir la separación de las incumbencias que POO no logra modularizar. Al programar en AOP, se siguen utilizando objetos, métodos, atributos y todos los elementos distintivos de la programación orientada a objetos. Es cierto también que las ideas centrales que propone el paradigma pueden aplicarse de la misma manera a otros paradigmas como el imperativo o el funcional, sin embargo existe una relación mucho más cercana con POO, básicamente por el uso de clases y objetos o la asociación de joinpoints con llamadas a métodos, entre otros. Adrián Eidelman 20/148

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

Introducción. Metadatos

Introducción. Metadatos Introducción La red crece por momentos las necesidades que parecían cubiertas hace relativamente poco tiempo empiezan a quedarse obsoletas. Deben buscarse nuevas soluciones que dinamicen los sistemas de

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

Capítulo VI. Diagramas de Entidad Relación

Capítulo VI. Diagramas de Entidad Relación Diagramas de Entidad Relación Diagramas de entidad relación Tabla de contenido 1.- Concepto de entidad... 91 1.1.- Entidad del negocio... 91 1.2.- Atributos y datos... 91 2.- Asociación de entidades...

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

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

UNIVERSIDAD DE BUENOS AIRES FACULTAD DE INGENIERÍA. Documentación de Motivación del Proyecto. JMit. Java Monitoring by Introspection Tool

UNIVERSIDAD DE BUENOS AIRES FACULTAD DE INGENIERÍA. Documentación de Motivación del Proyecto. JMit. Java Monitoring by Introspection Tool UNIVERSIDAD DE BUENOS AIRES FACULTAD DE INGENIERÍA Documentación de Motivación del Proyecto JMit Java Monitoring by Introspection Tool Alumnos: 84.264 86.097 Tutor: Wachenchauzer, Rosa Graciela Indice

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

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

Workflows? Sí, cuántos quiere?

Workflows? 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

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

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

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

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

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

Manual del Usuario. Sistema de Help Desk

Manual del Usuario. Sistema de Help Desk Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos

Más detalles

PROGRAMACIÓ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. 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 detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Sistemas de Gestión de Calidad. Control documental

Sistemas de Gestión de Calidad. Control documental 4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4

Más detalles

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación.

Unidad II. - Las técnicas en las que se basó, las categorías de análisis o ejes centrales que permiten guiar el proceso de investigación. Unidad II Metodología de Solución de Problemas 2.1 Descripción del problema (enunciado). Este aspecto nos indica describir de manera objetiva la realidad del problema que se esta investigando. En la descripción

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

Gestión de Configuración del Software

Gestión de Configuración del Software Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software

Más detalles

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores

PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores PERFIL DEL PUESTO POR COMPETENCIAS Sepa cómo construirlo y evitar bajos desempeños posteriores Martha Alicia Alles Es contadora pública nacional, doctora por la Universidad de Buenos Aires en la especialidad

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

BPMN Business Process Modeling Notation

BPMN Business Process Modeling Notation BPMN (BPMN) es una notación gráfica que describe la lógica de los pasos de un proceso de Negocio. Esta notación ha sido especialmente diseñada para coordinar la secuencia de los procesos y los mensajes

Más detalles

CAPÍTULO 3 Servidor de Modelo de Usuario

CAPÍ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 detalles

forma de entrenar a la nuerona en su aprendizaje.

forma de entrenar a la nuerona en su aprendizaje. Sistemas expertos e Inteligencia Artificial,Guía5 1 Facultad : Ingeniería Escuela : Computación Asignatura: Sistemas expertos e Inteligencia Artificial Tema: SISTEMAS BASADOS EN CONOCIMIENTO. Objetivo

Más detalles

La ventana de Microsoft Excel

La ventana de Microsoft Excel Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft

Más detalles

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...

PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS

Más detalles

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2

K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 K2BIM Plan de Investigación - Comparación de herramientas para la parametrización asistida de ERP Versión 1.2 Historia de revisiones Fecha VersiónDescripción Autor 08/10/2009 1.0 Creación del documento.

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

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

DE VIDA PARA EL DESARROLLO DE SISTEMAS

DE VIDA PARA EL DESARROLLO DE SISTEMAS MÉTODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS 1. METODO DEL CICLO DE VIDA PARA EL DESARROLLO DE SISTEMAS CICLO DE VIDA CLÁSICO DEL DESARROLLO DE SISTEMAS. El desarrollo de Sistemas, un proceso

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

2 EL DOCUMENTO DE ESPECIFICACIONES

2 EL DOCUMENTO DE ESPECIFICACIONES Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir

Más detalles

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO

MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO MANUAL DE AYUDA HERRAMIENTA DE APROVISIONAMIENTO Fecha última revisión: Junio 2011 INDICE DE CONTENIDOS HERRAMIENTA DE APROVISIONAMIENTO... 3 1. QUÉ ES LA HERRAMIENTA DE APROVISIONAMIENTO... 3 HERRAMIENTA

Más detalles

FUNDAMENTOS DE PROGRAMACION CON C#

FUNDAMENTOS DE PROGRAMACION CON C# Capítulo 1 FUNDAMENTOS DE PROGRAMACION CON C# El lenguaje C# C# (léase, en inglés C sharp, y en español C almohadilla) es un lenguaje de programación que permite el desarrollo de aplicaciones para Internet,

Más detalles

Traducción del. Our ref:

Traducción del. Our ref: Traducción del Documento: Our ref: Secretaría del ISO/TC 176/SC 2 Fecha: 15 de octubre de 2008 A los Miembros del ISO/TC 176/SC 2 - Gestión de la Calidad y Aseguramiento de la Calidad/ Sistemas de la Calidad

Más detalles

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes:

Proceso Unificado de Rational PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: PROCESO UNIFICADO DE RATIONAL (RUP) El proceso de desarrollo de software tiene cuatro roles importantes: 1. Proporcionar una guía de actividades para el trabajo en equipo. (Guía detallada para el desarrollo

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

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Análisis de los datos

Análisis de los datos Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Análisis de los datos Hojas de cálculo Tema 6 Análisis de los datos Una de las capacidades más interesantes de Excel es la actualización

Más detalles

Las Relaciones Públicas en el Marketing social

Las Relaciones Públicas en el Marketing social Las Relaciones Públicas en el Marketing social El marketing social es el marketing que busca cambiar una idea, actitud o práctica en la sociedad en la que se encuentra, y que intenta satisfacer una necesidad

Más detalles

PRESENTACIÓN DEL PRODUCTO

PRESENTACIÓN DEL PRODUCTO PRESENTACIÓN DEL PRODUCTO esernet, s.l. Sebastián Elcano, 32 Planta 1 Oficina 22 28012 Madrid Teléfono: 91 433 84 38 -- Fax. 91 141 21 89 www.esernet.com -- esernet@esernet.com 1. Introducción 2. Descripción

Más detalles

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

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. evaluacionycalidad@navarra.es

Más detalles

Ingeniería del Software I

Ingeniería del Software I - 1 - Ingeniería del Software I Introducción al Modelo Conceptual 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 CLASES CONCEPTUALES... 3 ESTRATEGIAS PARA IDENTIFICAR CLASES CONCEPTUALES... 3 Utilizar lista

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

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

COMPRAS CEPAS A TRAVÉS DE INTERNET PORTAL CEPAS

COMPRAS CEPAS A TRAVÉS DE INTERNET PORTAL CEPAS COMPRAS CEPAS A TRAVÉS DE INTERNET PORTAL CEPAS Es un sistema que describe las funcionalidades claves a través de Internet. Se pueden efectuar las compras, ver la trazabilidad de los pedidos y visualizar

Más detalles

MANUAL DE USUARIO APLICACIÓN SYSACTIVOS

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

ESPECIFICACIÓN DE VIDEOCLUB

ESPECIFICACIÓN DE VIDEOCLUB ESPECIFICACIÓN DE VIDEOCLUB 1. ANÁLISIS DEL SISTEMA Nuestro principal objetivo, lo cual implica que se trata de nuestra mayor meta a conseguir, es desarrollar un sistema software que realice una gestión

Más detalles

1.1 EL ESTUDIO TÉCNICO

1.1 EL ESTUDIO TÉCNICO 1.1 EL ESTUDIO TÉCNICO 1.1.1 Definición Un estudio técnico permite proponer y analizar las diferentes opciones tecnológicas para producir los bienes o servicios que se requieren, lo que además admite verificar

Más detalles

Diseño orientado al flujo de datos

Diseño orientado al flujo de datos Diseño orientado al flujo de datos Recordemos que el diseño es una actividad que consta de una serie de pasos, en los que partiendo de la especificación del sistema (de los propios requerimientos), obtenemos

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

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

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi

Gestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Mesa de Ayuda Interna

Mesa de Ayuda Interna Mesa de Ayuda Interna Documento de Construcción Mesa de Ayuda Interna 1 Tabla de Contenido Proceso De Mesa De Ayuda Interna... 2 Diagrama Del Proceso... 3 Modelo De Datos... 4 Entidades Del Sistema...

Más detalles

Orientación acerca de los requisitos de documentación de la Norma ISO 9001:2000

Orientación acerca de los requisitos de documentación de la Norma ISO 9001:2000 Orientación acerca de los requisitos de documentación de la Norma ISO 9001:2000 Documento: ISO/TC 176/SC 2/N 525R Marzo 2001 ISO Traducción aprobada el 2001-05-31 Prólogo de la versión en español Este

Más detalles

Introducción a la programación orientada a objetos

Introducción a la programación orientada a objetos Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación

Más detalles

La Web Semántica como herramienta para e-learning

La Web Semántica como herramienta para e-learning La Web Semántica como herramienta para e-learning Lidia Marina López llopez@uncoma.edu.ar Departamento de Ciencias de la Computación Universidad Nacional del Comahue Buenos Aires 1400 8300 Neuquén Tel.

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

Servidores Donantonio

Servidores Donantonio Especificación de requisitos software Tabla de contenidos Juan José Amor David Escorial Ismael Olea 1. Introducción...3 1.1. Propósito...3 1.2. Ámbito del sistema...3 1.3. Definiciones, acrónimos y abreviaturas...3

Más detalles

RESULTADOS CONSULTA CIUDADANA VIRTUAL. Consulta Laboral en Línea

RESULTADOS CONSULTA CIUDADANA VIRTUAL. Consulta Laboral en Línea RESULTADOS CONSULTA CIUDADANA VIRTUAL Consulta Laboral en Línea Septiembre, 2015 1 Agradecimientos Ponemos a disposición de ustedes los resultados de la Consulta Ciudadana Virtual, efectuada en julio de

Más detalles

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP

REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP Visual Sale posee módulos especializados para el método de ventas transaccional, donde el pedido de parte de un nuevo cliente

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula>

Objetos educativos y estandarización en e-learning: Experiencias en el sistema <e-aula> Objetos educativos y estandarización en e-learning: Experiencias en el sistema Fernández-Manjón, B.1, López Moratalla, J.2 Martínez Ortiz, I. 2, Moreno Ger, P. 2 Universidad Complutense de Madrid,

Más detalles

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones:

Para representar los conjuntos, los elementos y la relación de pertenencia, mediante símbolos, tendremos en cuenta las siguientes convenciones: 2. Conjuntos 2.1 Introducción El concepto de conjunto, de singular importancia en la ciencia matemática y objeto de estudio de una de sus disciplinas más recientes, está presente, aunque en forma informal,

Más detalles

Guía de los cursos. Equipo docente:

Guía de los cursos. Equipo docente: Guía de los cursos Equipo docente: Dra. Bertha Patricia Legorreta Cortés Dr. Eduardo Habacúc López Acevedo Introducción Las organizaciones internacionales, las administraciones públicas y privadas así

Más detalles

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas

INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas INTRODUCCIÓN: Una Visión Global del Proceso de Creación de Empresas 1 INTRODUCCIÓN. Una visión global del proceso de creación de empresas Cuando se analiza desde una perspectiva integral el proceso de

Más detalles

Apuntes Recuperación ante Fallas - Logging

Apuntes Recuperación ante Fallas - Logging Lic. Fernando Asteasuain -Bases de Datos 2008 - Dpto. Computación -FCEyN-UBA 1 Apuntes Recuperación ante Fallas - Logging Nota: El siguiente apunte constituye sólo un apoyo para las clases prácticas del

Más detalles

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online

Guías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...

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

MANUAL DE USUARIO INTRANET

MANUAL DE USUARIO INTRANET MANUAL DE USUARIO INTRANET Partes de la Intranet. La intranet se divide en varias partes claramente diferenciadas, que facilitan la navegación a través de la misma. A) Cabecera Es la parte estática de

Más detalles

Contenidos. INFORME ENCUESTA TELEFÓNICA. Curso 2009 10

Contenidos. INFORME ENCUESTA TELEFÓNICA. Curso 2009 10 ENCUESTA DE OPINIÓN DEL ALUMNADO SOBRE LA ACTUACIÓN DOCENTE DEL PROFESORADO UNIVERSIDAD DE SEVILLA Curso 2009-2010 ENCUESTA TELEFÓNICA Contenidos Introducción.... 4 El Cuestionario... 5 El muestreo...

Más detalles

Administración del conocimiento y aprendizaje organizacional.

Administración del conocimiento y aprendizaje organizacional. Capítulo 2 Administración del conocimiento y aprendizaje organizacional. 2.1 La Importancia Del Aprendizaje En Las Organizaciones El aprendizaje ha sido una de las grandes necesidades básicas del ser humano,

Más detalles

Plataforma Helvia. Manual de Administración Administración General. Versión 6.08.05

Plataforma Helvia. Manual de Administración Administración General. Versión 6.08.05 Plataforma Helvia Manual de Administración Administración General Versión 6.08.05 Índice de contenidos INTRODUCCIÓN... 3 ENFOQUE...3 LA ADMINISTRACIÓN GENERAL...3 ACCESO A LA ADMINISTRACIÓN GENERAL...

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

Convergencia, Interoperabilidad y. Fernando González-Llana Gerente de Cuenta AGE T-Systems

Convergencia, Interoperabilidad y. Fernando González-Llana Gerente de Cuenta AGE T-Systems Convergencia, Interoperabilidad y Arquitecturas de Servicios Gerente de Cuenta AGE T-Systems Palabras clave Convergencia digital, Interoperabilidad, Semántica, IDABC, SOA, Módulos Comunes, Protección de

Más detalles

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar

Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar Comunicación: Herramientas Informáticas de Apoyo a la Educación: Experiencias. Autor: Ing. Hernán Mariño hernanmarino@uca.edu.ar Pontificia Universidad Católica Argentina Facultad de Ciencias Fisicomatemáticas

Más detalles

Uso de Visual C++ Pre-Practica No. 3

Uso de Visual C++ Pre-Practica No. 3 Pre-Practica No. 3 Uso de Visual C++ Microsoft Visual C++ 2010 es una versión de Visual Studio específica para el lenguaje de programación C++. Es un entorno de desarrollo muy completo y profesional. Por

Más detalles

Manual para la utilización de PrestaShop

Manual para la utilización de PrestaShop Manual para la utilización de PrestaShop En este manual mostraremos de forma sencilla y práctica la utilización del Gestor de su Tienda Online mediante Prestashop 1.6, explicaremos todo lo necesario para

Más detalles

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo

Cómo seleccionar el mejor ERP para su empresa Sumario ejecutivo Índice completo de la Guía Índice completo de la Guía 1. Quién debe leer esta guía? 3 2. Qué es un ERP? 7 2.2. Qué es un ERP?... 9 2.3. Cuál es el origen del ERP?... 10 2.4. ERP a medida o paquetizado?...

Más detalles

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler

CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA. BizAgi Process Modeler CONSTRUCCIÓN DEL PROCESO MESA DE AYUDA INTERNA BizAgi Process Modeler TABLA DE CONTENIDO PROCESO DE MESA DE AYUDA INTERNA... 3 1. DIAGRAMA DEL PROCESO... 4 2. MODELO DE DATOS... 5 ENTIDADES DEL SISTEMA...

Más detalles

Clave Fiscal. Manual del Sistema. - Administración de Relaciones -

Clave Fiscal. Manual del Sistema. - Administración de Relaciones - Clave Fiscal Manual del Sistema - Administración de Relaciones - Subdirección General de Sistemas y Telecomunicaciones Página 1 de 16 Indice Indice... 1 Administración de Relaciones... 3 1. Acceso de un

Más detalles

comunidades de práctica

comunidades de práctica 1. Introducción CoSpace es una plataforma web diseñada para proporcionar un espacio virtual de interacción y colaboración entre formadores en comunidades virtuales. Se originó como resultado de las necesidades

Más detalles

Módulo 7: Los activos de Seguridad de la Información

Módulo 7: Los activos de Seguridad de la Información Módulo 7: Los activos de Seguridad de la Información Se explica en este tema cómo deben abordarse la elaboración de un inventario de activos que recoja los principales activos de información de la organización,

Más detalles

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA Perfil Entidad Proveedora El objetivo del módulo de Gestión de Solicitudes vía Internet es facilitar el trabajo

Más detalles

CONCLUISIONES Y RECOMENDACIONES

CONCLUISIONES Y RECOMENDACIONES CONCLUISIONES Y RECOMENDACIONES CONTENIDO 7.1 Verificación de Hipótesis 7.2 Conclusiones 7.3 Recomendaciones Mónica Cecilia Gallegos Varela - 145 - VERIFICACIÓN DE HIPÓTESIS La hipótesis planteada al inicio

Más detalles

Guía Metodológica para el diseño de procesos de negocio

Guí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 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

Manual de administración Administración General V 7.08.03

Manual de administración Administración General V 7.08.03 Manual de administración Administración General Versión 7.08.03 Página 1 Índice de contenidos Introducción... 3 Enfoque... 3 La Administración General... 3 Acceso a la Administración General... 4 Acceso

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

Educación y capacitación virtual, algo más que una moda

Educación y capacitación virtual, algo más que una moda Éxito Empresarial Publicación No.12 marzo 2004 Educación y capacitación virtual, algo más que una moda I Introducción Últimamente se ha escuchado la posibilidad de realizar nuestra educación formal y capacitación

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

1.- INTRODUCCIÓN 2.- PARÁMETROS

1.- INTRODUCCIÓN 2.- PARÁMETROS 1.- INTRODUCCIÓN Hemos diseñado una aplicación que facilite el envío a las entidades bancarias de las de cobro por domiciliación. La entrada de esta aplicación pueden ser, tanto ficheros cuyos formatos

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web

Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web Metodología y Framework para el Desarrollo de Aplicaciones Científicas con Computación de Alto Rendimiento a través de Servicios Web J.Corral-García, D.Cortés-Polo, C.Gómez-Martín, J.L.González-Sánchez

Más detalles

Resumen de las Etapas de la Conversación de Coaching

Resumen de las Etapas de la Conversación de Coaching Resumen de las Etapas de la Conversación de Coaching Lic. Marta Calvo En mi trabajo como docente en la carrera de formación de coaches ontológicos he tenido la oportunidad de observar que los estudiantes,

Más detalles