12 research outputs found

    Reverseorc:Reverse engineering of resizable user interface layouts with or-constraints

    Get PDF
    Reverse engineering (RE) of user interfaces (UIs) plays an important role in software evolution. However, the large diversity of UI technologies and the need for UIs to be resizable make this challenging. We propose ReverseORC, a novel RE approach able to discover diverse layout types and their dynamic resizing behaviours independently of their implementation, and to specify them by using OR constraints. Unlike previous RE approaches, ReverseORC infers flexible layout constraint specifications by sampling UIs at different sizes and analyzing the differences between them. It can create specifications that replicate even some non-standard layout managers with complex dynamic layout behaviours. We demonstrate that ReverseORC works across different platforms with very different layout approaches, e.g., for GUIs as well as for the Web. Furthermore, it can be used to detect and fix problems in legacy UIs, extend UIs with enhanced layout behaviours, and support the creation of flexible UI layouts.Comment: CHI2021 Full Pape

    GUI Migration using MDE from GWT to Angular 6: An Industrial Case

    Get PDF
    International audienceDuring the evolution of an application, it happens that developers must change the programming language. In the context of a collaboration with Berger-Levrault, a major IT company, we are working on the migration of a GWT application to Angular. We focus on the GUI aspect of this migration which, even if both frameworks are web Graphical User Interface (GUI) frameworks, is made difficult because they use different programming languages and different organization schema. Such migration is complicated by the fact that the new application must be able to mimic closely the visual aspect of the old one so that the users of the application are not disrupted. We propose an approach in four steps that uses a meta-model to represent the GUI at a high abstraction level. We evaluated this approach on an application comprising 470 Java (GWT) classes representing 56 pages. We are able to model all the web pages of the application and 93% of the widgets they contain, and we successfully migrated 26 out of 39 pages (66%). We give examples of the migrated pages, both successful and not

    An Architecture to infer Business Rules from Event Condition Action Rules implemented in the Persistence Layer

    Get PDF
    The business rules that govern the behaviour of a business process can be hardcoded in different ways in a software application. The modernization or improvement of these applications to a process-oriented perspective implies typically the modification of the business rules. Frequently, legacy systems are not well-documented, and almost always, the documentation they have is not updated. As a consequence many times is necessary the analysis of source code and databases structures to be transformed into a business language more understandable by the business experts involved in the modernization process. Database triggers are one of the artefacts in which business rules are hardcoded. We focus on this kind of artefacts, having in mind to avoid the manual analysis of the triggers by a database expert, and bringing it closer to business experts. To get this aim we need to discover business rules that are hardcoded in triggers, and translate it into vocabularies that are commonly used by business experts. In this paper we propose an ADM-based architecture to discover business rules and rewrite then into a language that can be understood by the business experts.Ministerio de Ciencia y Tecnología TIN2009-13714Ministerio de Ciencia y Tecnología TIN2010-20057-C03-02Ministerio de Ciencia y Tecnología TIN2010-21744-C02-

    Challenges for Layout Validation: Lessons Learned

    Get PDF
    International audienceCompanies are migrating their software systems. The migration process contemplates many steps, UI migration is one of them. To validate the UI migration, most existing approaches rely on visual structure (DOM) comparison. However, in previous work, we experimented such validation and reported that it is not sufficient to ensure a result that is equivalent or even identical to the visual structure of the interface to be migrated. Indeed, two similar DOM may be rendered completely differently. So, we decide to focus on the layout migration validation. We propose a first visual comparison approach for migrated layout validation and experiment it on an industrial case. Hence, from this first experiment and already existing studies on image comparison field, we highlight challenges for layout comparison. For each challenge, we propose possible solutions, and we detail the three main features we need to create a good layout validation approach

    Analysing Microsoft Access Projects: Building a model in a Partially Observable Domain

    Get PDF
    International audienceDue to the technology evolution, every IT Company migrates their software systems at least once. Reengineering tools build system models which are used for running software analysis. These models are traditionally built from source code analysis and information accessible by data extractors (that we call such information observable). In this article we present the case of Microsoft Access projects and how this kind of project is partially observable due to proprietary storing formats. We propose a novel approach for building models that allows us to overcome this problem by reverse engineering the development environment runtime through the usage of Microsoft COM interface. We validate our approach and implementation by fully replicating 10 projects, 8 of them industrial, based only on our model information. We measure the repli-cation performance by measuring the errors during the process and completeness of the product. We measure the replication error, by tracking replication operations. We used the scope and completeness measure to enact this error. Completeness is measured by the instrumentation of a simple and scoped diff based on a third source of information. We present extensive results and interpretations. We discuss the threats to validity, the possibility of other approaches and the technological restrictions of our solution

    Inference and Regeneration of Programs that Store and Retrieve Data

    Get PDF
    As modern computation platforms become increasingly complex, their programming interfaces are increasingly difficult to use. This complexity is especially inappropriate given the relatively simple core functionality that many of the computations implement. We present a new approach for obtaining so ware that executes on modern computing platforms with complex programming interfaces. Our approach starts with a simple seed program, written in the language of the developer's choice, that implements the desired core functionality. It then systematically generates inputs and observes the resulting outputs to learn the core functionality. It finally automatically regenerates new code that implements the learned core functionality on the target computing platform. This regenerated code contains both (a) boilerplate code for the complex programming interfaces that the target computing platform presents and (b) systematic error and vulnerability checking code that makes the new implementations robust and secure. By providing a productive new mechanism for capturing and encapsulating knowledge about how to use modern complex interfaces, this new approach promises to greatly reduce the developer effort required to obtain secure, robust so ware that executes on modern computing platforms

    model driven reverse engineering approaches a systematic literature review

    Get PDF
    This paper explores and describes the state of the art for what concerns the model-driven approaches proposed in the literature to support reverse engineering. We conducted a systematic literature review on this topic with the aim to answer three research questions. We focus on various solutions developed for model-driven reverse engineering, outlining in particular the models they use and the transformations applied to the models. We also consider the tools used for model definition, extraction, and transformation and the level of automation reached by the available tools. The model-driven reverse engineering approaches are also analyzed based on various features such as genericity, extensibility, automation of the reverse engineering process, and coverage of the full or partial source artifacts. We describe in detail and compare fifteen approaches applying model-driven reverse engineering. Based on this analysis, we identify and indicate some hints on choosing a model-driven reverse engineering approach from the available ones, and we outline open issues concerning the model-driven reverse engineering approaches

    Model-driven reverse engineering of legacy graphical user interfaces

    No full text
    © Springer Science+Business Media New York 2013. This document is the Published version of a Published Work that appeared in final form inAutomated Software Engineering. To access the final edited and published work see https://doi.org/10.1007/s10515-013-0130-2Businesses are increasingly beginning to modernise those of their legacy systems that were originally developed with Rapid Application Development (RAD) or Fourth Generation Language (4GL) environments, in order to benefit from new platforms and technologies. In these systems, the Graphical User Interface (GUI) layout is implicitly provided by the position of the GUI elements (i.e. coordinates). However, taking advantage of current features of GUI technologies often requires an explicit, high-level layout model. We propose a Model-Driven Engineering process with which to perform the automatic reverse engineering of RAD-built GUIs, which is focused on discovering the implicit layout, and produces a GUI model in which the layout is explicit. As an example of the approach, we apply an automatic reengineering process to this model in order to generate a Java Swing user interface

    Una propuesta basada en el paradigma dirigido por modelos para la extracción de procesos del software desde sistemas heredados utilizando la perspectiva temporal

    Get PDF
    Falta palabras claveBusiness Process Management (BPM) es un factor estratégico en el sector de las tecnologías de la información (TI), así como en otros sectores productivos. Las TI utilizan sistemas heredados (legacy systems) para gestionar su negocio, donde sus bases de datos (legacy databases) almacenan estados históricos de la ejecución de todo tipo de procesos, razón por la cual pueden considerarse como una fuente para extraer perspectivas o dimensiones de estos procesos: i) el tiempo, ii) los recursos, iii) la información y iv) los casos. Algunos estándares para representar procesos del software como UML AD, BPMN, SPEM e Iso/Iec 24744 están sustentados por robustos Meta-modelos. El paradigma Model Driven Engineering (MDE) es cada vez más aceptado al ofrecer modelos y Meta-modelos de diversos niveles de abstracción así como mecanismos para realizar transformaciones entre ellos. MDE puede emplearse para tanto para extraer modelos mediante ingeniería inversa como para generar modelos desde una especificación de alto nivel. Esta tesis define una propuesta general basada en MDE para hacer ingeniería inversa de legacy databases extrayendo la perspectiva temporal de procesos de TI. Se ha analizado la definición de dimensiones BPM sobre distintas categorías de legacy systems de uso frecuente en TI, concluyendo que casi toda TI organiza su actividad bajo proyectos que tiene que planificar y controlar. Un estudio sistemático de la literatura realizado sobre la especificación de la dimensión temporal de los procesos nos ha llevado a aportar una taxonomía de reglas que cubre la tipología que aparecen en las TI y también en otros sectores. Esta taxonomía nos ha permitido evaluar carencias de lenguajes de procesos de uso frecuentemente en TI y proponer Meta-modelos UML y OCL que permiten formalizar dichas reglas para resolver estas debilidades, además de facilitar la extracción de procesos desde legacy databases. MS Project (como legacy system) y BPMN (como estándar de modelación e intercambio de procesos serializados) son usados frecuentemente en el sector TI, razón por la que consideramos estos sistemas como piloto de la solución. La arquitectura general se especializa con este caso piloto, definiendo: i) un Meta-modelo de tareas para MS Project, ii) la extensión del Meta-modelo de BPMN con la dimensión temporal y iii) transformaciones MDE que extraen automáticamente procesos BPMN desde proyectos definidos en MS Project. La solución se ha contrastado en el proyecto de transferencia tecnológica AQUA-WS entre el grupo PAIDI TIC021 IWT2 y EMASESA, verificando la utilidad de los resultados obtenidos, que podrían extrapolarse a otros casos y sectores productivos. Por otro lado, como trabajo futuro, se podría: i) incorporar otras perspectivas BPM como: recursos y casos; ii) generar log de eventos para utilizarse en el campo de la minería de procesos
    corecore