31 |
Herramienta de gestión cuantitativa de proyectos de software orientada por un proceso de desarrolloRamírez Abarca, Daniel January 2014 (has links)
Magíster en Tecnologías de la Información / Esta tesis tiene como objetivo definir y diseñar una herramienta de administración de proyectos de software orientada por un proceso de desarrollo, que permita obtener en forma oportuna un conjunto de métricas que apunten a mejorar la calidad del proceso y productos de la organización.
Este proyecto está contextualizado en la experiencia de Amisoft Ingeniería Ltda., la cual ha implementado un proceso denominado Amisoft Process Framework (APF), que enmarca las actividades de gestión, ingeniería y soporte, necesarias para guiar cada proyecto en su ejecución. Este proceso de desarrollo y mantención de software ha sido un gran paso para la organización en busca de la mejora continua y dar cumplimiento a la política de calidad de la empresa. No obstante, este paso no es suficiente para garantizar el éxito de la organización en la entrega de productos y servicios de calidad, siendo necesario llevar a cabo una medición del proceso de desarrollo para entender, monitorear, controlar y predecir el desarrollo y mantención de los proyectos y tomar buenas decisiones en su gestión.
El trabajo consistió en proveer una herramienta de gestión de proyectos de software integrada, orientada por el proceso de desarrollo APF, que permita, a partir de los datos de los proyectos ejecutados por la organización, realizar la medición de indicadores y el cálculo de métricas para un mejor entendimiento de la pertinencia del proceso durante el desarrollo y mantenimiento de los proyectos de Amisoft, y provea de la información necesaria para mejorar los procesos y productos de la organización. En particular, se incorporaron a la herramienta las métricas del valor ganado y la volatilidad de requerimientos.
Como parte de este trabajo, también se destaca la identificación y propuesta de las características y funcionalidades fundamentales para una herramienta de este tipo, así como también la ejecución de un proyecto piloto que permitiera validar el correcto funcionamiento del sistema y evaluar la calidad de las métricas obtenidas desde el mismo, en comparación con las obtenidas actualmente, a fin de validar su efectividad respecto a los objetivos definidos por la empresa y para este trabajo.
|
32 |
Opening up trace-based mechanisms -- application to context-aware SsstemsLeger Morales, Paul Saint January 2012 (has links)
Doctor en Ciencias, Mención Computación / In 1972, David Lorge Parnas argued that modular programming is extremely valuable for the development of large pieces of code. This is so because a module can be written with little knowledge of the code of other modules and replaced without the need to rewrite the remaining other modules. However, paradigms based on general procedures like object-oriented programming do not fully support modular programming due to crosscutting concerns of a system. Fortunately, the aspect-oriented paradigm provides a set of abstractions and mechanisms that allow developers to modularize these concerns; therefore, improving modular programming. Aspects are widely-known abstractions to modularize crosscutting concerns. An aspect intercepts a single execution point, named join point, to execute a piece of code, named advice, that implements a crosscutting concern. However, some crosscutting concerns cannot be modularized through the interception of a single join point, e.g. error detections. Trace-based mechanisms support the definitions of stateful aspects that intercept join point traces. A stateful aspect is defined by a join point trace pattern and an advice that is executed when this pattern is matched.
Various trace-based mechanisms have been proposed. These mechanisms do not share the exact semantics, which suggests there is no silver-bullet trace-based mechanism for all purposes. In addition, existing mechanisms do not allow developers to expressively define patterns and semantics of their stateful aspects. Therefore, developers end up "coding around" these mechanisms or creating specialized ones to modularize a particular crosscutting concern. In this thesis work, we propose a model of an expressive and open trace-based mechanism, named OTM. This model allows developers to flexibly define patterns and adapt them at runtime. In addition, as OTM follows the open implementation guidelines, this model allows developers to customize
the semantics of how stateful aspects match and advise join point traces. Finally, this dissertation presents a concrete and practical implementation of OTM for JavaScript and a typed functional description in Typed Racket.
We use the JavaScript implementation of our model to develop a number of systems that adapt their behavior when they detect certain contexts, know as context-aware systems. A context is detected by analyzing the history of events of a context-aware system. In this kind of systems, patterns represent the contexts that must be detected and advices represent the system adaptations. The development of these systems showed that our practical version improves modularity support to build (Web) applications, and that will eventually make it possible to empirically validate the benefits brought by an expressive and open trace-based mechanism.
|
33 |
Diseño del proceso de negociación de acuerdos de nivel de servicio para un intermediario de servicios WebVillar Aguilar, Camilo Antonio January 2018 (has links)
Magíster en Ingeniería de Negocios con Tecnologías de Información.
Ingeniero Civil Industrial / Los servicios web están siendo cada vez más utilizados en el campo de la computación, lo que se refleja en el crecimiento del mercado de la computación en la nube. Además, las nuevas tecnologías son cada vez más utilizadas, una de las tecnologías son los dispositivos móviles, que alcanzan una penetración del 66% de la población mundial.
Hoy en día, existen diversos negocios que realizan tareas relacionadas a estas tendencias, un ejemplo es Amazon Web Services Marketplace, ellos ofrecen espacio en su portal para que desarrolladores puedan ofrecer servicios web a clientes. Sin embargo, en este proyecto se va más allá y se realiza un proceso de selección y negociación de servicios en el momento de correr una aplicación en el smartphone, evitando la intervención humana .
Para lo anterior se trabaja en una empresa que desarrolle este sistema, diseñando su estrategia y modelo de negocios, además de proponer los principales procesos. Luego se propone una arquitectura tecnológica y se desarrolla un prototipo del sistema que permite simular escenarios.
Para realizar esta tarea se desarrolla un sistema multiagente utilizando el lenguaje Java y la librería JADE, para representar de manera virtual a los actores involucrados en el negocio, permitiendo que, a través de agentes autónomos, se representen los intereses y se pueda lograr una negociación en tiempo real.
El principal problema a resolver corresponde a la determinación de las mejores ofertas en la subasta, ya que corresponde a un problema combinatorial, y está clasificado como un problema de optimización de la familia NP-completo.
Para la resolución del problema se implementaron dos algoritmos, la programación lineal y algoritmos genéticos. Entre ambos se concluyó que limitando la estructura de los procesos se obtiene una mayor tasa de éxito en el uso de programación lineal superando el 80% para más del 95% de los escenarios. Además, se obtuvo en un escenario simple de 10 actividades, 100 proveedores y 2.000 servicios disponibles entre ellos, un proceso de 1.480 milisegundos, lo que puede acercarse a un escenario real, con un muy buen tiempo de respuesta. / Este trabajo ha sido parcialmente financiado por Proyecto DONDECYT N° 11130252
|
34 |
Sistema de gestión y visualización de muestras medio ambientales en contexto geográficoCisterna Madrid, Matías Adrián January 2017 (has links)
Ingeniero Civil en Computación / En el contexto de la gran minería se debe mantener un constante monitoreo de diversas variables medio ambientales (por ej., el caudal del agua que se utiliza, la temperatura del agua, concentración de sustancias, etc.) por razones de seguridad, de impacto medioambiental y de previsión de disponibilidad de los recursos naturales en el futuro inmediato. Para dicho monitoreo las empresas mineras utilizan estaciones de medición, que típicamente son una estructura con diversos sensores. Dichas estaciones permiten tomar las mediciones de los datos requeridos, los que posteriormente son recogidos para ser almacenados y usados para apoyar procesos de toma de decisiones.
La recolección de estos datos se debe hacer de manera periódica, ya que las estaciones de medición están capturando y almacenando esta información constantemente. Actualmente la gestión y visualización de datos no se encuentra automatizada en la empresa minera donde se realizó esta memoria, por lo que se debe invertir tiempo en el almacenamiento y posterior interpretación de los datos obtenidos, antes de poder tomar una decisión en este ámbito.
Bajo ese contexto, en el presente trabajo se desarrolló una herramienta computacional basada en Tecnologías de la Información, la cual apoya la recuperación y gestión de datos de mediciones medio ambientales, así como la entrega de información geográfica asociada a estos datos y su visualización en el contexto geográfico correspondiente. La aplicación desarrollada consiste en un sistema Web, que permite al usuario realizar la gestión de los datos obtenidos desde las estaciones de medición instaladas por la empresa; y a través de la representación visual de diversos indicadores, apoya los procesos de toma de decisión. Esta aplicación contiene dos grandes componentes: (1) un gestor de datos medio ambientales, y (2) un dashboard interactivo para la visualización de datos en contexto geográfico y apoyo a la toma de decisiones.
Debido a limitaciones propias de un trabajo de memoria y la complejidad del problema abordado, el proyecto realizado involucró el desarrollo de la herramienta a nivel de prototipo piloto, con el fin de demostrar su factibilidad de implementar para la empresa en cuestión. La aplicación cuenta con las funcionalidades necesarias y suficientes para demostrar que una solución con tales características puede ser implementada y puesta en producción, y para ellos se la probó con distintos casos de uso y potenciales usuarios finales. Si bien las pruebas realizadas revelaron que ésta necesita más inversión de horas de ingeniería para poder ponerse en producción, la aplicación está encaminada para convertirse en un producto viable en el futuro, no sólo para la empresa destino, sino también para otras empresas similares.
|
35 |
Implantación de procesos y herramientas basadas en DevOps para una empresa de servicios de informaciónDíaz Cortés, Eduardo Alberto January 2018 (has links)
Memoria para optar al título de Ingeniero Civil en Computación / Previred S.A. es una empresa que presta servicios a la industria de la seguridad social nacional desde el año 2000. Una división de negocios, denominada Apoyo al Giro, implementa y presta servicios de información a diversas entidades de la industria previsional. Esta división de negocios cuenta con un equipo propio de desarrollo de software que construye cerca del 80% de los sistemas de información que sirven de apoyo a los servicios de negocio. Estos servicios son cada vez más demandados y gran parte de ellos son considerados críticos por sus clientes, lo que compromete a la organización a cumplir altos niveles de servicio, y se debe garantizar la continuidad operativa de los mismos.
El proceso de implantación de nuevas versiones de los sistemas existentes se realiza mediante procesos manuales, con una tasa de fallos considerada insatisfactoria por los clientes internos y externos. Por otro lado, hay una tasa de fallos críticos que se espera disminuir. Un fallo crítico corresponde a una indisponibilidad del servicio productivo por varias horas o días. Una parte de estos fallos se debe a errores en el proceso de implantación en producción, por mala ejecución de las instrucciones, falta de prolijidad en la instalación, o en la elaboración de los documentos que describen los pasos a producción.
El objetivo general de este trabajo es implementar un proceso de integración y entrega continua automatizado incorporando procesos y herramientas de DevOps dentro de la organización, para un servicio productivo de Previred, con el fin de reducir la tasa de fallos críticos debidos al proceso actual.
Para lograr el objetivo se revisa el actual proceso de desarrollo de Previred, luego se realiza un estudio de los principales problemas y dolores que experimenta la organización con este proceso, mediante entrevistas a personas claves de la organización.
Con los antecedentes recogidos se propone una modificación al proceso de desarrollo, junto con una plataforma tecnológica que apoya los cambios al proceso. Para poder plasmar esta plataforma se propone una arquitectura, y para construirla se analizan las herramientas disponibles y se seleccionan las adecuadas para la cultura y realidad de Previred.
Para validar la arquitectura realizó una prueba de concepto que permite determinar la factibilidad de la plataforma propuesta. Además, se realiza una evaluación cualitativa de la solución a través de una encuesta realizada a un grupo de personas claves en la organización.
|
36 |
Visual Vertical profiling: Evaluar la performance y optimizar capas arquitectónicasSanfurgo Bauer, Cristóbal Felipe January 2015 (has links)
Magíster en Tecnologías de la Información / Un problema recurrente en un sistema es la degradación del rendimiento a través del tiempo, las variaciones suelen ser en un principio casi imperceptibles hasta que llega un punto de inflexión donde el aumento de los tiempos de respuesta se hace cada vez mayor. En este punto la identificación y corrección de las desviaciones en el comportamiento esperado del sistema, se vuelve crítico ya que dado el comportamiento exponencial en el aumento de los tiempos de respuesta, nos pone contra el tiempo para evitar el colapso del sistema.
Lo anterior pone en riesgo la continuidad operacional de la organización, la posible disrupción del servicio puede traer consecuencias económicas para la compañía y nuestros clientes, dada esta situación se hace crítico corregir las desviaciones de manera oportuna, rápida y a un bajo costo, sin embargo, no contamos con una forma de identificar que piezas de software son las responsables de los problemas de performance detectados.
Se propone el concepto de Vertical Profiling, la cual es una técnica y metodología que fue definida en la Universidad de Lugano, la cual utilizaremos para generar una representación del comportamiento de una aplicación basado en un set de métricas, donde cada métrica se representa como una serie de tiempo, esto nos permite entender el comportamiento a través del tiempo en cada capa del sistema, independiente de su nivel de abstracción y/o tipo de componente. Esto implica 2 etapas, la primera que consiste en un proceso de recolección de datos a través de todas las capas que componen el software y la segunda etapa que consiste en poder hacer un análisis que considere la variación en el tiempo del comportamiento del sistema. Para poder realizar el análisis del comportamiento, se propone una visualización gráfica, multidimensional, de fácil lectura y oportuna, con el fin de poder identificar los cuellos de botella.
Para este estudio en particular, se utilizará la orientación a aspectos para la captura de datos, y el análisis se realizará utilizando Moose, la cual es una plataforma de análisis de datos, en este caso lo emplearemos para el análisis de Software, y para la visualización utilizaremos Mondrian que nos permite crear el meta-modelo y así realizar un análisis visual del rendimiento del aplicativo. Con la implementación de nuestro Vertical Profiling, se redujeron considerable los tiempos de respuesta de nuestra aplicación de forma rápida, algo que con un profiler tradicional no fue posible.
|
37 |
Diseño e Implementación de una Herramienta de Representación del Conocimiento para Apoyar la Gestión de Requisitos en un Proceso de Desarrollo de SoftwareAcosta Palacio, Carlos Enrique January 2010 (has links)
La principal medida de éxito o aceptación de un nuevo sistema de software es el
grado de cumplimiento de los objetivos y necesidades para las cuales fue concebido. La
Ingeniería de Requisitos (IR) de sistemas de software es, precisamente, una de las
disciplinas que estudia los procesos y técnicas para lograr un alto grado de
cumplimiento de estos objetivos y necesidades con respecto a los requisitos planteados.
Dentro de la Ingeniería de Requisitos el proceso de captura y análisis de
requisitos funcionales se enfrenta a numerosos riesgos, como los conflictos y
ambigüedades presentes en el conocimiento de los stakeholders, entre otros. En este
contexto, el informe “Chaos Report”, presentado por el Standish Group en 1999 a 2004
y realizado en Corporaciones del hemisferio norte, resume que dentro de las principales
causas de fracaso de proyectos de desarrollo de software, se encuentran, los requisitos
incompletos, la falta de participación de los usuarios, la presencia de conflictos en la
definición de requisitos, desconocimiento de las expectativas de los usuarios, entre
otras.
En los últimos años, se ha dado especial atención a las características
colaborativas presentes dentro del desarrollo de software, como es el caso de la
programación colaborativa en la metodología Extreme Programming (XP). Estas
características han impactado positivamente las actividades de proceso de desarrollo
de software, como por ejemplo la construcción de software y testing.
El objetivo general de este trabajo de investigación ha sido: diseñar, implementar
y probar una herramienta colaborativa para apoyar la captura de requisitos funcionales
en un proceso de desarrollo de software, con el propósito de evaluar las ventajas que
se pueden obtener al introducir esquemas de trabajo colaborativo dentro de
procedimientos propios de la Ingeniería de de Requisitos.
Por medio de la búsqueda de trabajos de investigaciones realizados en el ámbito
de herramientas colaborativas de apoyo al proceso de desarrollo de software se
identificaron las líneas base del diseño e implementación de la herramienta de esta
propuesta de tesis para finalmente realizar la experimentación y evaluación de las
ventajas de la propuesta de tesis.
Como resultado de las actividades de experimentación se puede concluir que la
herramienta y técnica propuesta permite resultados comparables con otros procesos de
Ingeniería de Requisitos, mostrando así que los aspectos positivos de incluir esquemas
de trabajo colaborativo pueden resultar en la disminución de errores en las
especificaciones funcionales y aumento en la participación activa de los ingenieros de
software y en la consolidación y disminución de ambigüedades y conflictos en el
entendimiento común.
|
38 |
Integración y evolución de sistemas de información del DCCMadrid Cabezas, Francisco Javier January 2017 (has links)
Ingeniero Civil en Computación / Desde hace varios años, el Departamento de Ciencias de la Computación (DCC) de la Universidad de Chile ha venido desarrollando sus sistemas de información como si fueran islas. Estos sistemas apoyan principalmente la gestión de actividades académicas, docentes y económico-financieras del DCC. Aunque esta infraestructura de software ha funcionado relativamente bien, la estrategia de desarrollo de sistemas desacoplados limita el crecimiento de dicha infraestructura de cara al futuro. Por esa razón el DCC ha decidido integrar estas islas, tanto a nivel de datos como de servicios, para permitir un desarrollo más armónico y controlado de sus sistemas de información. Se espera que esta integración facilite especialmente el reuso de información, manteniendo una única fuente de verdad para las distintas áreas de negocio (pregrado, postgrado, educación continua, investigación, etc.).
Este trabajo de memoria realizó una prueba de concepto que abordó no sólo la integración de dos sistemas de información del DCC, sino también la reingeniería de uno de ellos y el desarrollo completo del otro. Las aplicaciones en cuestión son el Sistema Administrador de Recursos (SAR) y el Sistema Administrador de Noticias y Eventos (SANE).
Para llevar a cabo la integración de estos sistemas se diseñó e implementó una arquitectura de microservicios que es capaz de contener a las aplicaciones críticas del Departamento. Apoyándose en dicha arquitectura se modificó y extendió el sistema SAR, agregándole por ejemplo funcionalidad para permitir la administración de puestos de trabajos de alumnos de postgrado y profesores visitantes. Por otra parte, el proceso de reservas de recursos (por ejemplo, salas de reuniones) se independizó de las secretarias, permitiendo que académicos y funcionarios puedan hacer reservas según su rol. La nueva versión del sistema SAR está actualmente en producción.
Por otra parte, se diseñó e implementó un nuevo sistema de software, el cual permite mantener y gestionar las noticias y eventos del Departamento (por ejemplo, charlas, defensas de tesis, etc.). Éste permite además alimentar automáticamente otros recursos de entrega de información del Departamento; por ejemplo, su página Web oficial. El sistema SANE también adhiere a la arquitectura de microservicios definida, y permite la interacción con el SAR a través de una API (Application Programming Interface).
El proyecto piloto que buscaba la integración de ambos sistemas a través de una arquitectura de microservicios resultó exitoso, pues no sólo se alcanzaron los objetivos iniciales, sino que además los usuarios finales se mostraron muy satisfechos con las soluciones obtenidas. Este piloto muestra un camino para que en adelante se integren otros sistemas a la nueva infraestructura de software del DCC, independientemente de que estas aplicaciones sean nuevas o legadas. Las nuevas aplicaciones deberán contemplar la intercomunicación con la infraestructura creada, utilizando mecanismos de autenticación adecuados para garantizar la seguridad de sus operaciones.
En resumen, más allá de las ventajas propias de contar con más y mejores servicios de software para apoyar las operaciones del Departamento, este trabajo de memoria buscó determinar la factibilidad y el esfuerzo requerido para integrar los sistemas del DCC a través de una arquitectura de microservicios; y el resultado obtenido fue altamente positivo.
|
39 |
Visualización para documentos en producciónPérez Messina, Ignacio Baltazar January 2017 (has links)
Ingeniero Civil en Computación / Gracias a los avances tecnológicos, hoy es posible preservar los diferentes borradores y etapas por los que transita el proceso de escritura de un documento. Un buen ejemplo de ello es el servicio de almacenamiento web Google Drive y su procesador de texto Docs, que permite almacenar diferentes datos del proceso de escritura que están siendo generados masivamente por los mismos usuarios mientras escriben. Un documento en Docs es más que un texto versionado, es un fino registro de cada cambio ocurrido, al cual se ha llamado documento-en-producción para distinguirlo del primero.
A pesar de que hoy contamos con ese material invaluable para la investigación del proceso de escritura, para los investigadores de la escritura eso no es suficiente pues exige avanzados conocimientos computacionales. Por ello aparece la necesidad de presentar esa valiosa información de manera más amigable para el usuario.
En esta Memoria se diseña una visualización para documentos-en-producción y se implementa un prototipo funcional para los datos que se pueden obtener de Google Drive. Fue necesario desarrollar una nueva estructura de datos para su preprocesamiento. La efectividad de la visualización se muestra por medio de casos de estudio de documentos en un dataset que fue obtenido del proceso de escritura de tareas de estudiantes de la Facultad de Ciencias Físicas y Matemáticas. El análisis de estos casos sugiere que la visualización se muestra adecuada para estudiar el proceso de escritura de textos expositivos, permitiendo observar la estructura jerárquica y/o tópica del texto final, y diferentes características de su proceso de producción. La visualización sigue un paradigma de diseño orgánico, contiene elementos de interactividad y basa su efectividad principalmente en las microdecisiones del usuario a nivel de movimientos del puntero.
Se generó un marco de evaluación teórico que arrojó luz sobre las funcionalidades faltantes y las tensiones en el diseño, que muestra, entre otras cosas, que aún no se ha explotado por completo la información disponible y señala el camino para nuevas visualizaciones y futuras exploraciones del documento-en-producción.
|
40 |
Mejoras de un proceso de desarrollo usando prácticas ágilesEspinoza Zúñiga, Germán Mario January 2017 (has links)
Magíster en Tecnologías de la información / El presente trabajo se trata de la incorporaron de prácticas ágiles en una compañía proveedora de soluciones de software. Esta compañía se llama Telefónica MAking Solutions (TMAS), la cual es encargada de ser un colaborador en los negocios de Telefónica en Latinoamérica.
Hay requerimientos que llegan desde los clientes, de menor magnitud para la compañía que resultan ineficientes si se abordan por el actual proceso de desarrollo.
El equipo de Soporte Mejoras, que es donde se desarrolla este trabajo, es un equipo del área de Soporte encargado de realizar Gestión de Problemas. Ha estado incorporando prácticas ágiles en su trabajo, lo que ha hecho que áreas encargadas de la Gestión de los Clientes, vean a este equipo como posible apoyo para implementar los requerimientos medianos y pequeños, ya que las estimaciones resultan más acordes al tamaño de la solicitud, y hace que los clientes acepten estas implementaciones.
Por lo tanto, el objetivo de este trabajo es incorporar prácticas ágiles de las metodologías XP y Scrum al proceso de desarrollo de la compañía y evaluar si estas logran un efecto positivo o negativo. Por lo que el alcance del trabajo es establecer un proceso de desarrollo utilizando prácticas ágiles acorde a la realidad de la compañía, el cual sirva como soporte de las actividades del equipo.
La principal medida del resultado del trabajo es la Tasa de Rechazo, que es el porcentaje de rechazo por errores de las entregas que se liberan al cliente, la medición se realizó semestral. La compañía definió que un porcentaje semestral mayor al 20% se considera que las soluciones entregadas al cliente son de mala calidad. El primer semestre donde se aplico el trabajo se tuvo un resultado de 26,2% de rechazo y el ultimo semestre en donde se aplico la medición para este trabajo fue de un 8,3 % lo cual mejoro la calidad de los entregables.
Los primeros cálculos el resultado fue de mala calidad, según lo que definió la compañía que una Tasa de Rechazo mayor a 15% es considerado un servicio de mala calidad, lo cual fue mejorando con el tiempo.
|
Page generated in 0.103 seconds