Scielo RSS <![CDATA[CLEI Electronic Journal]]> http://www.scielo.edu.uy/rss.php?pid=0717-500020150002&lang=pt vol. 18 num. 2 lang. pt <![CDATA[SciELO Logo]]> http://www.scielo.edu.uy/img/en/fbpelogp.gif http://www.scielo.edu.uy <![CDATA[Preface to the Best Papers from CLEI 2014 Special Issue]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200001&lng=pt&nrm=iso&tlng=pt <![CDATA[Capataz: a framework for distributing algorithms via the World Wide Web]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200002&lng=pt&nrm=iso&tlng=pt In recent years, some scientists have embraced the distributed computing paradigm. As experiments and simulations demand ever more computing power, coordinating the efforts of many different processors is often the only reasonable resort. We developed an open-source distributed computing framework based on web technologies, and named it Capataz. Acting as an HTTP server, web browsers running on many different devices can connect to it to contribute in the execution of distributed algorithms written in Javascript. Capataz takes advantage of architectures with many cores using web workers. This paper presents an improvement in Capataz’ usability and why it was needed. In previous experiments the total time of distributed algorithms proved to be susceptible to changes in the execution time of the jobs. The system now adapts by bundling jobs together if they are too simple. The computational experiment to test the solution is a brute force estimation of pi. The benchmark results show that by bundling jobs, the overall perfomance is greatly increased.<hr/>En los últimos años, algunos científicos han adoptado el paradigma de la computación distribuida. A medida que los experimentos y simulaciones demandan cada vez más poder computacional, coordinar varios procesadores es a menudo la única alternativa razonable. Hemos desarrollado una herramienta de computación distribuida de código abierto, basado en tecnologías web, que llamamos Capataz. Funcionando como un servidor HTTP, los navegadores que corren en diferentes dispositivos pueden conectarse para contribuir con la ejecución de algoritmos distribuidos escritos en Javascript. Capataz aprovecha las arquitecturas de múltiples núcleos mediante el uso de web workers. Este paper presenta una mejora a la usabilidad de Capataz y por qué es necesaria. En experimentos previos, el tiempo total de ejecución demostró ser susceptible a los cambios en el tiempo de ejecución de cada trabajo. El sistema ahora se adapta, empaquetando varios trabajos si éstos son demasiado simples. El experimento computacional para probar la solución es una estimación de fuerza bruta de pi. Los resultados prueban que al empaquetar los trabajos, el rendimiento se incrementa significativamente. <![CDATA[Applying Information Retrieval Techniques to Detect Duplicates and to Rank References in the Preliminary Phases of Systematic: Literature Reviews]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200003&lng=pt&nrm=iso&tlng=pt Systematic Literature Review (SLR) is a means to synthesize relevant and high quality studies related to a specific topic or research questions. In the Primary Selection stage of an SLR, the selection of studies is usually performed manually by reading title, abstract, and keywords of each study. In the last years, the number of published scientific studies has grown increasing the effort to perform this sort of reviews. In this paper, we proposed strategies to detect non-papers and duplicated references in results exported by search engines, and strategies to rank the references in decreasing order of importance for an SLR, regarding the terms in the search string. These strategies are based on Information Retrieval techniques. We implemented the strategies and carried out an experimental evaluation of their applicability using two real datasets. As results, the strategy to detect non-papers presented 100 of precision and 50 of recall; the strategy to detect duplicates detected more duplicates than the manual inspection; and one of the strategies to rank relevant references presented 50 of precision and 80 of recall. Therefore, the results show that the proposed strategies can minimize the effort in the Primary Selection stage of an SLR.<hr/>Revisão Sistemática de Literatura (RSL) é um meio para sintetizar estudos relevantes e de alta qualidade relacionados a um tópico especifico ou a questões de pesquisa. No estágio de Seleção Primária de uma RSL, os estudos são selecionados, geralmente, de forma manual pela leitura do título, do resumo e das palavras-chave. Nos últimos anos, o número de estudos científicos publicados tem crescido aumentando o esforço na realização desse tipo revisão. Neste trabalho, foram propostas estratégias para detectar não-artigos e referências duplicadas em resultados exportados por máquinas de busca, e estratégias para ranquear referências em ordem decrescente de importância para uma RSL considerando os termos da string de busca. Essas estratégias são baseadas em técnicas de Recuperação de Informação. As estratégias propostas foram implementadas e foram conduzidas avaliações experimentais para verificar suas aplicabilidades utilizando dois conjuntos de dados reais. Como resultados, a estratégia de detecção de não-artigos apresentou uma precisão de 100 e uma revocação de 50 ; a estratégia de detecção de duplicatas apontou mais duplicatas que a inspeção manual; e uma das estratégias para ranqueamento de referências relevantes apresentou precisão de 50 e 80 de revocação. Portanto, os resultados mostram que as estratégias propostas podem minizar o esforço no estágio da Seleção Primária de uma RSL. <![CDATA[Towards an automatic model transformation mechanism from UML state machines to DEVS models]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200004&lng=pt&nrm=iso&tlng=pt The development of complex event-driven systems requires studies and analysis prior to deployment with the goal of detecting unwanted behavior. UML is a language widely used by the software engineering community for modeling these systems through state machines, among other mechanisms. Currently, these models do not have appropriate execution and simulation tools to analyze the real behavior of systems. Existing tools do not provide appropriate libraries (sampling from a probability distribution, plotting, etc.) both to build and to analyze models. Modeling and simulation for design and prototyping of systems are widely used techniques to predict, investigate and compare the performance of systems. In particular, the Discrete Event System Specification (DEVS) formalism separates the modeling and simulation; there are several tools available on the market that run and collect information from DEVS models. This paper proposes a model transformation mechanism from UML state machines to DEVS models in the Model-Driven Development (MDD) context, through the declarative QVT Relations language, in order to perform simulations using tools, such as PowerDEVS. A mechanism to validate the transformation is proposed. Moreover, examples of application to analyze the behavior of an automatic banking machine and a control system of an elevator are presented.<hr/>El desarrollo de complejos sistemas guiados por modelos requiere de estudios y análisis previos a la implementación, con el objetivo de detectar comportamientos no deseados. UML es un lenguaje ampliamente usado por la comunidad de ingeniería de software para modelar estos sistemas a través de las máquinas de estados, entre otros mecanismos. En la actualidad, estos modelos no disponen de adecuadas herramientas de simulación y ejecución para analizar el comportamiento real de los sistemas. Las herramientas existentes no proveen librerías apropiadas (para el muestreo de distribuciones de probabilidad, ploteo, etc.) para construir y analizar modelos. El modelado y la simulación para el diseño y prototipado de sistemas son técnicas ampliamente usadas para predecir, investigar y comparar la performance de los sistemas. En particular, el formalismo Especificación de Sistemas de Eventos Discretos (Discrete Event System Specification - DEVS) separa el modelado de la simulación. Existen varias herramientas disponibles en el mercado que ejecutan y recopilan información de modelos DEVS. Este artículo propone un mecanismo de transformación de modelos de máquinas de estados UML a modelos DEVS en el contexto del desarrollo dirigido por modelos (Model-Driven Development - MDD) mediante el lenguaje declarativo QVT-Relations, a fin de realizar simulaciones utilizando herramientas tales como PowerDevs. Asimismo, se describe una propuesta para validar la transformación desarrollada. Finalmente, se presentan dos ejemplos de aplicación. El primero analiza el comportamiento de un cajero automático de un banco y el segundo analiza un sistema de control de ascensores. <![CDATA[A Knowledge-based Environment for Software Process Performance Analysis]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200005&lng=pt&nrm=iso&tlng=pt Background: Process performance analysis is a key step for implementing continuous improvement in software organizations. However, the knowledge to execute such analysis is not trivial and the person responsible to executing it must be provided with appropriate support. Aim: This paper presents a knowledge-based environment, named SPEAKER, proposed for supporting software organizations during the execution of process performance analysis. SPEAKER comprises a body of knowledge and a set of activities and tasks for software process performance analysis along with supporting tools to executing these activities and tasks. Method: We conducted an informal literature reviews and a systematic mapping study, which provided basic requirements for the proposed environment. We implemented the SPEAKER environment by integrating supporting tools for the execution of activities and tasks of performance analysis and the knowledge necessary to execute them, in order to meet the variability presented by the characteristics of these activities. Results: In this paper, we describe each SPEAKER module and the individual evaluations of these modules, and also present an example of use comprising how the environment can guide the user through a specific performance analysis activity. Conclusion: Although we only conducted individual evaluations of SPEAKER’s modules, the example of use indicates the feasibility of the proposed environment. Therefore, the environment as a whole will be further evaluated to verify if it attains its goal of assisting in the execution of process performance analysis by non-specialist people.<hr/>Contexto: A análise de desempenho de processo é um passo essencial para a implementação da melhoria contínua de processos em organizações de desenvolvimento de software. No entanto, o conhecimento necessário para executar esta análise não é trivial e a pessoa responsável por executá-la deve ser apoiada adequadamente para que a organização obtenha os reais benefícios advindos desta prática. Objetivo: Este artigo apresenta um ambiente baseado em conhecimento, denominado SPEAKER, proposto para apoiar as organizações de desenvolvimento de software durante a execução da análise de desempenho de processo. O ambiente SPEAKER é composto por um corpo de conhecimento e um conjunto de atividades e tarefas para a análise de desempenho de processo de software, além de prover ferramentas que auxiliam a execução destas atividades e tarefas. Método: A partir de revisões informais da literatura e da realização de um mapeamento sistemático, foram derivados os requisitos básicos do ambiente proposto. O ambiente SPEAKER foi desenvolvido integrando as ferramentas de apoio para a execução das atividades e tarefas da análise de desempenho e o conhecimento necessário para executá-las, a fim de garantir que a variabilidade presente nestas atividades seja atendida. Resultados: Neste artigo, cada módulo do ambiente SPEAKER é descrito, as avaliações individuais destes módulos são apresentadas e um exemplo de uso do ambiente como um todo é descrito, a fim de ilustrar como o ambiente guia o usuário em uma atividade específica da análise de desempenho. Conclusão: Embora somente avaliações individuais dos módulos do ambiente SPEAKER tenham sido realizadas, o exemplo de uso indica a viabilidade do ambiente proposto. No entanto, o ambiente como um todo será avaliado posteriormente visando verificar se, de fato, atende ao seu objetivo de guiar pessoas não especialistas durante a execução da análise de desempenho de processo. <![CDATA[Towards a Requirements Specification Multi-View Framework for Self-Adaptive Systems]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200006&lng=pt&nrm=iso&tlng=pt The analysis of self-adaptive systems (SAS) requirements involves addressing uncertainty from several sources. Despite advances in requirements for SAS, uncertainty remains an extremely difficult challenge. In this paper, we propose REFAS, a framework to model the requirements of self-adaptive software systems. Our aim with REFAS is to address and reduce uncertainty and to provide a language with sufficient power of expression to specify the different aspects of self-adaptive systems, relative to functional and non-functional requirements. The REFAS modeling language includes concepts closely related to these kind of requirements and their fulfillment, such as context variables, claims, and soft dependencies. Specifically, the paper’s contribution is twofold. First, REFAS supports different viewpoints and concerns related to requirements modeling, with key associations between them. Moreover, the modeler can define additional models and views by exploiting the REFAS meta-modeling capability, in order to capture additional aspects contributing to reduce uncertainty. Second, REFAS promotes in-depth analysis of all of the modeled concerns with aggregation and association capabilities, especially with context variables. Furthermore, we also define a process that enforces modeling requirements, considering different aspects of uncertainty. We demonstrate the applicability of REFAS by using the VariaMos software tool, which implements the REFAS meta-model, views, and process.<hr/>El análisis de requerimientos en sistemas auto-adaptativos (SAA) involucra atacar la incertidumbre generada por diversas fuentes. Pese a los avances en los requerimientos para SAA, la incertidumbre continúa siendo un reto extremadamente difícil. En este artículo, nosotros proponemos REFAS, un marco de trabajo para modelar los requerimientos de sistemas de software auto-adaptativos. Nuestro propósito con REFAS es atacar y reducir la incertidumbre y proveer un lenguaje con el suficiente poder de expresión para especificar los diferentes aspectos de los sistemas auto-adaptativos, relacionados con los requerimientos funcionales y no funcionales. El lenguaje de modelado en REFAS incluye conceptos muy relacionados con esta clase de requerimientos y su satisfacción, tales como variables de contexto, afirmaciones de expertos y dependencias no funcionales. Específicamente, la contribución de este artículo es doble. Primero, REFAS soporta diferentes vistas y problemas relacionados con el modelado de requerimientos, con asociaciones claves entre ellas. Además, el modelador puede definir modelos y vistas explotando la capacidad que provee el meta-modelamiento en REFAS, para capturar aspectos adicionales que contribuyan a reducir la incertidumbre. Segundo, REFAS promueve el análisis en profundidad de todos los problemas del modelo brindando la posibilidad de agregar y asociar los conceptos, en especial las variables de contexto. Además, nosotros también definimos un proceso que permite modelar los requerimientos, considerando diferentes aspectos de la incertidumbre. Nosotros demostramos la aplicabilidad de REFAS usando la herramienta de software Variamos, que implementa el meta-modelo de REFAS, sus vistas y proceso. <![CDATA[A middleware-based platform for the integration of bioinformatic services]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200007&lng=pt&nrm=iso&tlng=pt Performing Bioinformatic&rsquo;s experiments involve an intensive access to distributed services and information resources through Internet. Although existing tools facilitate the implementation of workflow-oriented applications, they lack of capabilities to integrate services beyond low-scale applications, particularly integrating services with heterogeneous interaction patterns and in a larger scale. This is particularly required to enable a large-scale distributed processing of biological data generated by massive sequencing technologies. On the other hand, such integration mechanisms are provided by middleware products like Enterprise Service Buses (ESB), which enable to integrate distributed systems following a Service Oriented Architecture. This paper proposes an integration platform, based on enterprise middleware, to integrate Bioinformatics services. It presents a multi-level reference architecture and focuses on ESB-based mechanisms to provide asynchronous communications, event-based interactions and data transformation capabilities. The paper presents a formal specification of the platform using the Event-B model.<hr/>La ejecución de los experimentos bioinformáticos involucra el uso intensivo de servicios y recursos de información distribuidos a través de Internet. Las herramientas existentes facilitan su implementación siguiendo una orientación a flujos de trabajo (workflows), pero carecen de capacidades de integración de servicios con patrones de interacción heterogéneos y a gran escala. Esta integración es especialmente necesaria para permitir a un procesamiento distribuido a gran escala de los datos biológicos generados por las tecnologías de secuenciación masiva. Por otro lado, estos mecanismos de integración ya son proporcionados por productos de middleware como los Enterprise Service Bus (ESB), que permiten integrar sistemas distribuidos siguiendo el paradigma promovido por las Arquitectura Orientada a Servicios (SOA). Este trabajo propone una plataforma de integración basada en middleware empresarial para integrar servicios bioinformáticos. En él se presenta una arquitectura de referencia con varios niveles de abstracción y se describen con mayor detalle los mecanismos basados en ESB para proporcionar comunicaciones asíncronas, interacciones basadas en eventos y capacidades de transformación de datos. En el artículo presenta una especificación formal de la plataforma utilizando el modelo de eventos-B. <![CDATA[Let’s go to the cinema!: A movie recommender system for ephemeral groups of users]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200008&lng=pt&nrm=iso&tlng=pt Going to the cinema or watching television are social activities that generally take place in groups. In these cases, a recommender system for ephemeral groups of users is more suitable than (well-studied) recommender systems for individuals. In this paper we present a recommendation system for groups of users that go to the cinema. The system uses the Slope One algorithm for computing individual predictions and the Multiplicative Utilitarian Strategy as a model to make a recommendation to an entire group. We show how we solved all practical aspects of the system; including its architecture and a mobile application for the service, the lack of user data (ramp-up and cold-start problems), the scaling fit of the group model strategy, and other improvements in order to reduce the response time. Finally, we validate the performance of the system with a set of experiments with 57 ephemeral groups.<hr/>Ir al cine, o ver la televisión, son actividades sociales que por lo general se llevan a cabo en grupos. En estos casos, un sistema de recomendaciones para grupos efímeros de usuarios es más adecuado que los (bien estudiados) sistemas de recomendaciones para individuos. En este trabajo se presenta un sistema de recomendaciones para grupos de usuarios que van al cine. El sistema utiliza el algoritmo ”Slope One” para calcular predicciones individuales y una estrategia utilitaria multiplicativa para unificar esas predicciones en una recomendacion grupal. Mostramos cómo solucionamos todos los aspectos prácticos del sistema; incluyendo su arquitectura y una aplicación móvil para el servicio, los problemas que surgen de la falta de datos de usuarios, los problemas de escalamiento, y otras mejoras con el fin de reducir el tiempo de respuesta. Finalmente, validamos el rendimiento del sistema con un conjunto de experimentos con 57 grupos efímeros. <![CDATA[Generalization of the MOACS algorithm for Many Objectives: An application to motorcycle distribution]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200009&lng=pt&nrm=iso&tlng=pt To solve many-objective routing problems, this paper generalizes the Multi-Objective Ant Colony System (MOACS) algorithm, a well-known Multi-Objective Ant Colony Optimization (MOACO) metaheuristic proposed in 2003. This Generalized MOACS algorithm is used to solve a Split-Delivery/Mixed-Fleet Vehicle Routing Problem (SD/MF-VRP) under different constraints, resulting from the mathematical modeling of a logistic problem: the distribution of motorcycles by a Paraguayan factory, considering several objective functions as: (1) total distribution cost, (2) total traveled distance, (3) total traveled time, and (4) unsatisfied demand. Experimental results using the proposed algorithm in weekly operations of the motorcycle factory prove the advantages of using the proposed algorithm, facilitating the work of the logistic planner, reducing the distribution cost and minimizing the time needed to satisfy customers.<hr/>Para resolver problemas de enrutamiento con muchos objetivo simultáneos, este trabajo generaliza un algoritmo multi-objetivo por Colonia de Hormigas (MOACS), propuesto en 2003. Este algoritmo “MOACS Generalizado” se utiliza para resolver el Problema de Ruteo con Entregas Parciales utilizando una flota heterogénea de vehículos, considerando restricciones no habituales que resultan del modelado matemático de un problema logístico: la distribución de motocicletas por parte de una fábrica en Paraguay, considerando varias funciones objetivo como: (1) el costo total de distribución, (2) la distancia total recorrida, (3) el tiempo total requerido, y (4) la demanda insatisfecha. Resultados experimentales utilizando el algoritmo propuesto en las operaciones semanales de la fábrica de motocicletas demuestran las ventajas de utilizar el algoritmo propuesto, lo que facilita el trabajo del planificador de logística de la fábrica, reduciendo el costo de distribución y el tiempo necesario para satisfacer a los clientes. <![CDATA[Green Metascheduler Architecture to Provide QoS in Cloud Computing]]> http://www.scielo.edu.uy/scielo.php?script=sci_arttext&pid=S0717-50002015000200010&lng=pt&nrm=iso&tlng=pt The aim of this paper is to propose and evaluate GreenMACC (Green Metascheduler Architecture to Provide QoS in Cloud Computing), an extension of the MACC architecture (Metascheduler Architecture to provide QoS in Cloud Computing) which uses greenIT techniques to provide Quality of Service. The paper provides an evaluation of the performance of the policies in the four stages of scheduling focused on energy consumption and average response time. The results presented confirm the consistency of the proposal as it controls energy consumption and the quality of services requested by different users of a large-scale private cloud.<hr/>O objetivo principal deste artigo é propor e avaliar o GreenMACC (Arquitetura Verde de um Metaescalonador para prover Qualidade de Serviço na Computação em Nuvem), uma extensão da arquitetura MACC (Arquitetura de um Metaescalonador para prover Qualidade de Serviço na Computação em Nuvem) utilizando-se de técnicas de computação verde para prover Qualidade de Serviço. O artigo apresenta uma avaliação de desempenho das políticas nos quatro estágios de escalonamento tendo seu foco no consumo de energia e no tempo médio de resposta. Os resultados apresentados confirmam a consistência da proposta uma vez que controla o consumo de energia e a qualidade dos serviços requisitados por diferentes usuários de uma nuvem privada de grande escala.