Spelling suggestions: "subject:"programación orientador all objeto"" "subject:"programacióon orientador all objeto""
1 |
Imagen tridimensional. Diseño de aparato cinético para experimentación sobre la relación imagen-tridimensionalidad en medios interactivosCornejo Castillo, Cristobal January 2015 (has links)
Memoria para optar al título de Diseñador Gráfico / Imagen tridimensional, es un proyecto experimental de diseño que busca
realizar un estudio sobre el fenómeno de la mediación de la tridimensionalidad
mediante la construcción de un aparato que actúe como mediador y
objetos que serán presentados en este. En este proceso se busca contribuir a la reflexión sobre las nuevas posibilidades y limitantes técnicas de los
medios, el fenómeno de representar objetos volumétricos en imágenes y ampliar la discusión sobre aquellas mediaciones que son consideradas
tridimensionales y que como diseñadores nos encontramos a menudo encargados
de producir.
En una primera etapa de este proyecto se busca estudiar y comprender el
fenómeno de la percepción de la tridimensionalidad naturalmente y cuando se encuentra mediada, recopilando conceptos claves y comprendiendo
procesos que, en una segunda parte, permitirán definir la forma de construcción
de un aparato mediador que incentive al observador en reparar sobre el acto perceptual de comprender un objeto como tridimensional a
través de la presentación de imágenes.
Para esto, se realiza la construcción de un zoótropo inverso, que interviene
en la percepción continua de objetos móviles presentados frente a un
observador. Objetos volumétricos y físicos que son el resultado de re-interpretaciones
de cuadros pertenecientes al movimiento suprematista de
1915 y que son diseñados para representar la tensión entre una imagen
bidimensional y su posible realidad volumétrica desconocida.
El proyecto concluye con un prototipo funcional que permite a un observador
enfrentarse a una experiencia de mediación interactiva diseñada para
advertir aquello que es necesario para mediar tridimensionalidad.
|
2 |
Visualizador y evaluador de mallas geométricas mixtas 3DMascaró Cumsille, Javiera Alejandra January 2010 (has links)
Ingeniera Civil en Computación / El objetivo del presente tema de memoria es diseñar y desarrollar un visualizador y
evaluador de mallas geométricas mixtas en 3D, que provea diferentes formas de
visualización, que permita evaluar la calidad de las mallas aplicando distintos criterios de
evaluación sobre ellas, y que sea fácilmente extensible a nuevas funcionalidades.
Una malla geométrica es una colección de vértices, aristas y caras, que define la
forma de un objeto complejo en base a polígonos (2D) y poliedros (3D). Se considerará en
este trabajo la manipulación de mallas de superficie y mallas mixtas 3D compuestas por
tetraedros, pirámides, prismas de seis vértices y hexaedros. Mientras más regulares son los
elementos de una malla geométrica esta es de mejor calidad. Para evaluar la calidad de una
malla, se aplican sobre los elementos que la componen los criterios de evaluación ángulo
diedro, ángulo sólido, jacobiano y relación volumen - arista más larga al cubo.
En una primera etapa, se propone e implementa un diseño con enfoque orientado a
objetos en donde se utilizan diferentes patrones de diseño. Se propone una estructura de
datos para el manejo de mallas que privilegia la eficiencia al ejecutar algoritmos sobre ellas
por sobre el espacio utilizado al almacenarlas en memoria. Se utiliza un subsistema que
permite abrir y guardar mallas almacenadas en archivos de distintos formatos usando el
patrón de diseño Facade. Se crean los elementos de las mallas a partir de los datos
utilizando el patrón Factory Method. Se generan Iteradores sobre los elementos de la malla
según sea necesario. Se utiliza el patrón de diseño Strategy para definir y aplicar los
diferentes criterios de evaluación. Finalmente, se define el visualizador como un Singleton
para asegurar una instancia única.
Luego, se procede con el desarrollo de una interfaz adecuada a los requisitos y fácil
de usar que provee distintas funcionalidades dentro de las cuales se encuentran: abrir y
guardar una malla geométrica, visualizarla, rotarla, trasladarla, realizar zoom-in y zoomout,
ver sólo la superficie de la malla, desplegar datos de los elementos, seleccionar
elementos, escoger niveles de vecindad y observar un elemento con sus vecinos, aplicar
criterios de evaluación sobre toda la malla o sobre vecindades, visualizar elementos que
cumplen o no con los rangos de evaluación y mover puntos de la malla para mejorar su
calidad.
Como resultado, se obtiene una herramienta extensible, flexible y fácil de usar, que
provee distintos tipos de visualización de mallas geométricas, que permite evaluar la
calidad de los elementos que las componen y, mejorarlas manipulando los puntos de
elementos críticos y al mismo tiempo manteniendo su integridad.
|
3 |
Control de Reentrancia de Aspectos en AspectJCabrera Hormazabal, Carlos Sebastián January 2010 (has links)
La programación orientada a aspectos (POA) es un paradigma de programación. Permite encapsular funcionalidad que se encuentra dispersa en un sistema. Para ello utiliza pointcuts, predicados que definen eventos del programa, y advices, el código que es ejecutado en los eventos definidos por un pointcut. Un aspecto es una entidad que agrupa pointcuts y advices.
AspectJ es un lenguaje de programación para POA. Está diseñado como una extensión de Java, de forma que cualquier programa Java es también un programa AspectJ válido. Además del compilador oficial del proyecto AspectJ existen otros, de los cuales AspectBench Compiler (abc) es el más avanzado.
La reentrancia de aspectos ocurre cuando la ejecución de un aspecto desencadena nuevamente su propia ejecución; produciéndose bucles infinitos. Actualmente la reentrancia se soluciona utilizando chequeos y patrones adhoc.
La introducción de niveles de ejecución evita la reentrancia de aspectos. La ejecución del programa se separa en distintos niveles. Por defecto, la computación base ocurre en el nivel 0, mientras que los aspectos que observan esta ejecución se ubican en el nivel 1. La ejecución en el nivel 1 sólo puede ser observada desde el nivel 2, y así sucesivamente. Esta estructura para la ejecución de los programas soluciona casi todos los casos de reentrancia. Para el caso faltante, se utiliza un mecanismo adicional de control de reentrancia.
Para esta memoria se extendió el compilador abc para incorporar una adaptación de niveles de ejecución. El lenguaje soportado por el compilador extendido incorpora nueva sintaxis para ello. Y los programas compilados contienen rutinas adicionales que agregan la estructura de niveles de ejecución y el control de reentrancia. Además, es posible controlar el nivel de ejecución en que se ejecutará una expresión, si fuese necesario.
Se hicieron distintas pruebas para validar el trabajo realizado. Se confeccionaron tests para las distintas funcionalidades que, en conjunto, implementan niveles de ejecución. También se verificó la correcta compilación y ejecución de AJHotDraw, un framework para interfaces gráficas de programas de dibujo. Adicionalmente se probó el compilador con RacerAJ, una herramienta para la detección de data races implementada en AspectJ. RacerAJ es de interés porque incorpora pointcuts para evitar la ocurrencia de reentrancia de aspectos; removidos estos pointcuts, el programa funciona correctamente al ser compilado con esta versión extendida de abc.
Además se realizó un ligero análisis de performance para medir el impacto en los programas compilados. Para ello se utilizó una suite de benchmarks para AspectJ. Se compararon los tiempos de ejecución logrados al utilizar el compilador desarrollado y la versión original.
|
4 |
Reconocimiento Automático de Bordes en Imágenes Aplicado a Anillos de ÁrbolesAguilar Vergara, Pablo Agustín January 2009 (has links)
No description available.
|
5 |
Discovering memory optimization opportunities by analyzing shareable objectsInfante Rica, Alejandro José January 2017 (has links)
Magíster en Ciencias, Mención Computación.
Ingeniero Civil en Computación / Los lenguajes modernos de programación orientada a objetos han aliviado de manera impor- tante a los programadores la tarea de administrar memoria. A pesar de la eficiencia de los recolectores de basura y herramientas de análisis de programas en tiempo real, aún existe una porción importante de memoria siendo desaprovechada.
El desaprovechamiento de memoria en software posee graves consecuencias, incluyendo frecuentes interrupciones en la ejecución debido a la presión ejercida sobre el recolector de basura y el uso ineficiente de dependencias entre objetos.
Hemos descubierto que supervisar los lugares de producción de objetos y la equivalencia de los objetos producidos es clave para identificar ineficiencias causadas por objetos redundantes. Hemos implementado optimizaciones para reducir el consumo de memoria de seis aplicaciones industriales, obteniendo una reducción superior al 40% en el uso de memoria en la mitad de las aplicaciones sin poseer conocimiento previo de las mismas.
Nuestros resultados replican parcialmente los resultados obtenidos por Marinov y O Callahan y exploran nuevas formas de identificar objetos redundantes. / Este trabajo ha sido parcialmente financiado por CONICYT-PCHA/Magíster-Nacional/2015-22150809
|
6 |
Diseño e Implementación de PHANtom, un Lenguaje de Aspectos para Pharo SmalltalkGaldames Grünberg, Daniel Andrés January 2011 (has links)
La programación orientada a aspectos es un paradigma de programación que intenta solucionar el problema de las funcionalidades transversales, esto es, funcionalidades de la aplicación que están dispersas por muchas áreas del código, y no pueden separarse en forma eficiente usando el paradigma de programación orientada a objetos.
Un aspecto representa una funcionalidad transversal de la aplicación. Éste incluye en su definición un pointcut, que representa un conjunto de puntos en la ejecución de la aplicación que van a ser capturados por el aspecto, y un advice, que representa la funcionalidad del aspecto, esto es, el código que va a ser ejecutado en los puntos capturados.
En este trabajo se diseñó e implementó un lenguaje de aspectos para el lenguaje de programación Pharo Smalltalk, donde se incluyeron características destacadas de otros lenguajes de aspectos, junto a nuevas funcionalidades que le otorgan un mayor control y flexibilidad al lenguaje desarrollado.
El lenguaje desarrollado incluye un sistema de definición de patrones para la definición de los pointcuts, reglas de precedencia globales y a nivel de pointcut. También contiene modificadores de clases similares a las inter-type declarationsde AspectJ, y un sistema de control dinámico en el orden de ejecución de los advice.
Para el lenguaje desarrollado se implementó el concepto de membranas computacionales.
Éstas son una forma de controlar el alcance que tienen los aspectos en el sistema, permitiendo controlar problemas como la reentrancia en los aspectos, esto es, cuando un aspecto captura un evento desencadenado por sí mismo. Junto a esto, las membranas computacionales son capaces de controlar la visibilidad que los aspectos tienen sobre el sistema donde son instalados.
Se creó una suite de test usando el framework para test unitarios de Pharo Smalltalk, para comprobar el correcto funcionamiento del lenguaje desarrollado, además, se comprobó el grado de cobertura de la suite de test usando el software Hapao.
Finalmente, se comprobó el funcionamiento del lenguaje de aspectos desarrollado, usándolo para refactorizar algunas partes del software de análisis dinámico de código Spy. Se realizaron algunos benchmark para comprobar el sobrecosto generado por la infraestructura de aspectos desarrollada, donde se pudo apreciar un sobrecosto variable, siendo elevado en algunos casos.
|
Page generated in 0.0911 seconds