16 research outputs found

    Product line architecture recovery with outlier filtering in software families: the Apo-Games case study

    Get PDF
    Software product line (SPL) approach has been widely adopted to achieve systematic reuse in families of software products. Despite its benefits, developing an SPL from scratch requires high up-front investment. Because of that, organizations commonly create product variants with opportunistic reuse approaches (e.g., copy-and-paste or clone-and-own). However, maintenance and evolution of a large number of product variants is a challenging task. In this context, a family of products developed opportunistically is a good starting point to adopt SPLs, known as extractive approach for SPL adoption. One of the initial phases of the extractive approach is the recovery and definition of a product line architecture (PLA) based on existing software variants, to support variant derivation and also to allow the customization according to customers’ needs. The problem of defining a PLA from existing system variants is that some variants can become highly unrelated to their predecessors, known as outlier variants. The inclusion of outlier variants in the PLA recovery leads to additional effort and noise in the common structure and complicates architectural decisions. In this work, we present an automatic approach to identify and filter outlier variants during the recovery and definition of PLAs. Our approach identifies the minimum subset of cross-product architectural information for an effective PLA recovery. To evaluate our approach, we focus on real-world variants of the Apo-Games family. We recover a PLA taking as input 34 Apo-Game variants developed by using opportunistic reuse. The results provided evidence that our automatic approach is able to identify and filter outlier variants, allowing to eliminate exclusive packages and classes without removing the whole variant. We consider that the recovered PLA can help domain experts to take informed decisions to support SPL adoption.This research was partially funded by INES 2.0; CNPq grants 465614/2014-0 and 408356/2018-9; and FAPESB grants JCB0060/2016 and BOL2443/201

    Some Initial Guidelines for Building Reusable Quantum Oracles

    Full text link
    The evolution of quantum hardware is highlighting the need for advances in quantum software engineering that help developers create quantum software with good quality attributes. Specifically, reusability has been traditionally considered an important quality attribute in terms of efficiency of cost and effort. Increasing the reusability of quantum software will help developers create more complex solutions, by reusing simpler components, with better quality attributes, as long as the reused components have also these attributes. This work focuses on the reusability of oracles, a well-known pattern of quantum algorithms that can be used to perform functions used as input by other algorithms. In particular, in this work, we present several guidelines for making reusable quantum oracles. These guidelines include three different levels for oracle reuse: the ideas inspiring the oracle, the function which creates the oracle, and the oracle itself. To demonstrate these guidelines, two different implementations of a range of integers oracle have been built by reusing simpler oracles. The quality of these implementations is evaluated in terms of functionality and quantum circuit depth. Then, we provide an example of documentation following the proposed guidelines for both implementations to foster reuse of the provided oracles. This work aims to be a first point of discussion towards quantum software reusability. Additional work is needed to establish more specific criteria for quantum software reusability.Comment: 10 page

    A Platform-based Design Approach for Flexible Software Components

    Get PDF
    We develop a design method that promotes flexible component design based on a common component platform with various plug-ins. The approach increases the flexibility and expandability of software components, which improves their reuse opportunities. We argue that such a flexible component design can expand reuse from relatively small infrastructure items, such as user interfaces, printing functionality, and data access modules, to the core of the application domain. Reusing such domain-specific items helps realize the true value of component-based software development. Following a design science research approach, we evaluated the component design method by assessing its correctness and its application to different scenarios. We also recruited a panel of experts to assess it

    An approach for clone detection in documentation reuse

    Get PDF
    The paper focuses on the searching method for repetitions in DocBook/DRL or plain text documents. An algorithm has been designed based on software clone detection. The algorithm supports filtering results: clones are rejected if clone length in the group is less than 5 symbols, intersection of clone groups is eliminated, meaningfulness clones are removed, the groups containing clones consisting only of XML are eliminated. Remaining search is supported: found clones are extracted from the documentation, and clone search is repeated. One step is proved to be enough. Adaptive reuse technique of Paul Bassett – Stan Jarzabek has been implemented. A software tool has been developed on the basis of the algorithm. The tool supports setting parameters for repetitions detection and visualization of the obtained results. The tool is integrated into DocLine document development environment, and provides refactoring of documents using found clones. The Clone Miner clone detection utility is used for clones search. The method has been evaluated for Linux Kernel Documentation (29 documents, 25000 lines). Five semantic kinds of clones have been selected: terms (abbreviations, one word and two word terms), hyperlinks, license agreements, functionality description, and code examples. 451 meaningful clone groups have been found, average clone length is 4.43 tokens, and average number of clones in a group is 3.56

    Koodikannan uudelleenkäytön haasteita

    Get PDF
    Viime vuosikymmeninä julkisesti saatavilla olevien koodikantojen määrä on kasvanut valtaisasti, ja niistä haaroittaminen on helppoa. Voidaan siis olettaa, että uusien ohjelmistojen luominen olemassa olevaa koodikantaa muokkaamalla tulee lisääntymään. Tässä työssä tutkitaan koodikannan uudelleenkäytön haasteita muuten tavanomaisen yrityksessä toteutetun ohjelmistoprojektin avulla. Tieteellisten julkaisujen perusteella päätetään kolme seurattavaa aihealuetta (suunnittelu, dokumentointi ja resursointi), joihin määritellään yhteensä yhdeksän seurattavaa haastetta. Haasteille määritellään selvityskriteerit sekä todennäköisimmät riskit, ja näiden ilmaantumista seurataan projektin ensimmäisen vaiheen ajan. Projektista selostetaan tausta, suunnittelu sekä toteuma, sekä kerrotaan, miten haasteet liittyvät kuhunkin näistä. Haasteiden toimivuus analysoidaan ja arvioidaan, miten hyvin ne kuvastivat projektin etenemistä ja lopputulosta. Lisäksi nostetaan esille, mitkä muut haasteet olisivat voineet olla hyödyllisiä seurattavia. Toiseksi näkökulmaksi koodikannan uudelleenkäyttöön otetaan ymmärrys koodikannasta. Luodaan luokittelu, jolla koitetaan seurata ymmärryksen kasvamista projektin edetessä ja katsotaan mihin ymmärryksen tasoon päästään projektin ensimmäisen vaiheen aikana. Lopuksi arvioidaan luokittelun toimivuutta. Esiin nostetaan myös etukäteen suunnittelemattomia koodikannan uudelleenkäyttöön liittyviä asioita, joita projektissa huomattiin. Työn yleisenä tuloksena voidaan todeta, että uudelleenkäyttö oli hyödyllistä, mutta seurattavien haasteiden valinta vaatii tarkkuutta. Muina huomioina painotetaan asiakastarpeiden tarkan selvittämisen merkitystä sekä tarvetta lisätyölle uudelleenkäyttöön liittyvvien luokittelujen luomiseksi

    F/OSS para el reuso: métricas, desarrollo de herramientas y marco para su evaluación

    Get PDF
    La disponibilidad de una creciente variedad de Software Libre y de Código Abierto (F/OSS por sus siglas en inglés) distribuidos bajo licencias que permiten explícitamente su modificación y el desarrollo de aplicaciones derivadas, abre nuevas posibilidades para el desarrollo con reutilización. Las características y la información disponible en relación a cada producto de F/OSS es muy heterogénea; no obstante, todas tienen en común la libre disponibilidad del código fuente. Esta tesis presenta nuevas formas de abordar el problema de evaluar y seleccionar productos de F/OSS, centrándose en dos aspectos: La utilización de métricas que pueden obtenerse del código fuente para la evaluación de F/OSS, de modo de caracterizar el diseño general de los productos de software que se consideren para la reutilización. La elaboración de un marco de trabajo para la selección y evaluación de software que sirva de base para una sistematización paulatina de la incorporación de la reutilización de F/OSS en diferentes procesos de desarrollo de software. A partir del estudio de una muestra de 560 versiones diferentes de aplicaciones de F/OSS, y en base al estudio de distribuciones de frecuencia, se proponen umbrales para métricas que reflejan aspectos generales del diseño de una aplicación. Específicamente, se consideran el promedio de la cantidad de métodos por clase y la proporción de referencias a métodos de otras clases respecto del total de métodos definidos en la aplicación. Estas dos medidas se refieren a la aplicación en su conjunto y no a clases o módulos particulares, lo que supone una utilidad diferente de estos valores respecto del papel que cumplen en otros aspectos de la gestión de proyectos de software. En relación al segundo aspecto, se presenta un marco de trabajo en tres etapas, a saber, la detección de oportunidades de reutilización, la búsqueda de recursos candidatos y la selección y evaluación. Este marco es de carácter general, pudiendo adaptarse a diferentes metodologías y contextos de desarrollo. La elaboración del marco parte de la realización de una experiencia de desarrollo con reutilización de F/OSS, la revisión de la literatura relacionada con las temáticas de selección de elementos reutilizables y la evaluación de éstos para su incorporación en nuevos desarrollos. Este marco se aplica posteriormente al desarrollo de una herramienta para computar un conjunto de métricas basadas en el código fuente para dar soporte al proceso de selección de F/OSS para la reutilización tomando en cuenta los umbrales propuestos previamente. De esta forma, se ofrece aquí una base para abordar la reutilización de F/OSS de manera de permitir la sistematización paulatina de esta práctica, brindando un criterio de valoración provisional basado en métricas obtenidas del código fuente.Facultad de Informátic

    Temporal meta-model framework for Enterprise Information Systems (EIS) development

    Get PDF
    This thesis has developed a Temporal Meta-Model Framework for semi-automated Enterprise System Development, which can help drastically reduce the time and cost to develop, deploy and maintain Enterprise Information Systems throughout their lifecycle. It proposes that the analysis and requirements gathering can also perform the bulk of the design phase, stored and available in a suitable model which would then be capable of automated execution with the availability of a set of specific runtime components

    Propuestas para la reutilizacion en el desarrollo de interfaces de usuario basado en modelos

    Get PDF
    Esta tesis versa sobre la reutilización en el desarrollo de interfaces de usuario basado en modelos. La baja reusabilidad de las especificaciones de modelos de la interfaz de usuario ha sido identificada como un posible obstáculo para la adopción del desarrollo de interfaces de usuario basado en modelos por parte de la industria. El objetivo de esta investigación es aportar conocimiento sobre la reutilización en este ámbito para mejorar la situación actual de esta tecnología. En este trabajo se propone el uso de ciertas técnicas de reutilización empleadas habitualmente en la ingeniería del software para aplicarlas al desarrollo de interfaces de usuario basado en modelos y éstas son implementadas sobre un entorno de desarrollo concreto. Este entorno de desarrollo de interfaces de usuario basado en modelos con características de reutilización potenciadas es utilizado para construir varias aplicaciones que poseen aspectos comunes. A través de este caso práctico y siguiendo un método empírico, se analiza el impacto que las técnicas de reutilización han tenido en el desarrollo de las interfaces de usuario. Los resultados son importantes: además del alto grado de reutilización general (entorno al 46,2%) se alcanzan picos de reutilización del 56,9% para algunos casos particulares y se obtiene un ahorro en el tamaño de las especificaciones del 71%. Aunque los resultados obtenidos están condicionados por el contexto (entorno de desarrollo, proyectos desarrollados, etc.) se extraen algunas conclusiones aplicables a la generalidad del desarrollo de interfaces de usuario basado en modelo
    corecore