6,835 research outputs found

    Extracting Models from Source Code in Software Modernization

    Get PDF
    International audienceModel-driven software modernization is a discipline in which model-driven development (MDD) techniques are used in the modernization of legacy systems. When existing software artifacts are evolved, they must be transformed into models to apply MDD techniques such as model transformations. Since most modernization scenarios (e.g., application migration) involve dealing with code in general-purpose programming languages (GPL), the extraction of models from GPL code is an essential task in a model-based modernization process. This activity could be performed by tools to bridge grammarware and MDD technical spaces, which is normally carried out by dedicated parsers. Grammar-to-Model Transformation Language (Gra2MoL) is a domain-specific language (DSL) tailored to the extraction of models from GPL code. This DSL is actually a text-to-model transformation language which can be applied to any code conforming to a grammar. Gra2MoL aims to reduce the effort needed to implement grammarware-MDD bridges, since building dedicated parsers is a complex and time-consuming task. Like ATL and RubyTL languages, Gra2MoL incorporates the binding concept needed to write mappings between grammar elements and metamodel elements in a simple declarative style. The language also provides a powerful query language which eases the retrieval of scattered information in syntax trees. Moreover, it incorporates extensibility and grammar reuse mechanisms. This paper describes Gra2MoL in detail and includes a case study based on the application of the language in the extraction of models from Delphi code

    Towards maintainer script modernization in FOSS distributions

    Get PDF
    Free and Open Source Software (FOSS) distributions are complex software systems, made of thousands packages that evolve rapidly, independently, and without centralized coordination. During packages upgrades, corner case failures can be encountered and are hard to deal with, especially when they are due to misbehaving maintainer scripts: executable code snippets used to finalize package configuration. In this paper we report a software modernization experience, the process of representing existing legacy systems in terms of models, applied to FOSS distributions. We present a process to define meta-models that enable dealing with upgrade failures and help rolling back from them, taking into account maintainer scripts. The process has been applied to widely used FOSS distributions and we report about such experiences

    On the Effect of Semantically Enriched Context Models on Software Modularization

    Full text link
    Many of the existing approaches for program comprehension rely on the linguistic information found in source code, such as identifier names and comments. Semantic clustering is one such technique for modularization of the system that relies on the informal semantics of the program, encoded in the vocabulary used in the source code. Treating the source code as a collection of tokens loses the semantic information embedded within the identifiers. We try to overcome this problem by introducing context models for source code identifiers to obtain a semantic kernel, which can be used for both deriving the topics that run through the system as well as their clustering. In the first model, we abstract an identifier to its type representation and build on this notion of context to construct contextual vector representation of the source code. The second notion of context is defined based on the flow of data between identifiers to represent a module as a dependency graph where the nodes correspond to identifiers and the edges represent the data dependencies between pairs of identifiers. We have applied our approach to 10 medium-sized open source Java projects, and show that by introducing contexts for identifiers, the quality of the modularization of the software systems is improved. Both of the context models give results that are superior to the plain vector representation of documents. In some cases, the authoritativeness of decompositions is improved by 67%. Furthermore, a more detailed evaluation of our approach on JEdit, an open source editor, demonstrates that inferred topics through performing topic analysis on the contextual representations are more meaningful compared to the plain representation of the documents. The proposed approach in introducing a context model for source code identifiers paves the way for building tools that support developers in program comprehension tasks such as application and domain concept location, software modularization and topic analysis

    Science & engineering software migration: moving from desktop to mobile applications

    Get PDF
    The proliferation of mobile devices over the last years provides opportunities and challenges for solving problems in Science & Engineering. Among other novel features, mobile devices contain global positioning sensors, wireless connectivity, built-in web browsers and photo/video/voice capabilities that allow providing highly localized, context aware applications. Mobile phones have become as powerful as any desktop computer in terms of applications they can run. However, the software development in mobile computing is still not as mature as it is for desktop computer and the whole potential of mobile devices is wasted. A current problem in the engineering community is the adaptation of desktop applications for mobile technologies. To take advantage of new platform technologies, existing software must evolve. A number of solutions have been proposed to deal with this problem such as redevelopment, which rewrites existing applications, or migration, which moves the existing system to a more flexible environment while retaining the original system data and functionality. A good solution should be to restore the value of the existing software, extracting knowledge and exploiting investment in order to migrate to new software that incorporates the new technologies. On the one hand, traditional reverse engineering techniques can help in the software migration to mobile applications. They are related to the process of analyzing available software with the objective of extracting information and providing high-level views on the underlying code. On the other hand, to achieve interoperability with multiple platforms the migration needs of technical frameworks for information integration and tool interoperability such as the initiative of the Object Management Group (OMG) called Model Driven Architecture (MDA). The outstanding ideas behind MDA are separating the specification of the system functionality from its implementation on specific platforms and managing the software evolution from abstract models to implementations increasing the degree of automation. The objective of this paper is to describe a reengineering process that allow moving existing desktop applications for solving engineering problems of multidisciplinary character to mobile platforms. Our research aims to simplify the creation of applications for mobile platforms by integrating traditional reverse engineering techniques, such static and dynamic analysis, with MDA. We validated our approach by using the open source application platform Eclipse, EMF (Eclipse Modeling Framework), EMP (Eclipse Modeling Project) and the Android platform

    Benefits of reverse engineering technologies in software development makerspace

    Full text link

    Science & engineering software migration: moving from desktop to mobile applications

    Get PDF
    The proliferation of mobile devices over the last years provides opportunities and challenges for solving problems in science and engineering. Among other novel features, mobile devices contain global positioning sensors, wireless connectivity, built-in web browsers and photo/video/voice capabilities that allow providing highly localized, context aware applications. Mobile phones have become as powerful as any desktop computer in terms of applications they can run. However, the software development in mobile computing is still not as mature as it is for desktop computer and the whole potential of mobile devices is wasted [7, 8]

    Migrating Traditional Web Applications to CMS-based Web Applications

    Get PDF
    AbstractIn recent years, Content Management Systems (CMS) have proven to be the best platforms for maintaining the large amount of digital content managed by Web applications. Thus, many organizations have experienced the necessity to base its Web applications on these CMS platforms. To do this, they start a migration process which is complex and error prone. To support this process, we propose a method based on the principles of Architecture-Driven Modernization (ADM) which automates the migration of Web applications to CMS-based Web applications. This article focuses on the implementation of two artifacts of this method: 1) the DSL ASTM_PHP, a modeling language for defining a model from PHP code (ASTM_PHP model) and 2) the model-to-model transformation rules which generate automatically a KDM model from a ASTM_PHP model. To show the feasibility of this implementation, we use a case study based on a widget implemented in PHP which lists the online users of a Web application

    A Black-Box Computational Business Rules Extraction Approach through Test-Driven Development

    Get PDF
    Business rules extraction is an important activity in situations in which a software system becomes obsolete and needs to be replaced by a newer system, since the replacing system needs to satisfy the business rules embedded in the legacy software system. In this paper, we investigate an approach in which the computational business rules of a legacy software system can be extracted given previously generated output of the system and without requiring access to the system’s source code. Furthermore, extracted computational business rules are validated automatically with minimal involvement of domain experts through Test-Driven Development (TDD) such that test cases are constructed from historic output of the system. The proposed approach is applied to extract the computational business rules of a large-scale governmental payroll legacy software system. The study results demonstrate that the suggested approach extracted computational business rules van meet a substantial number of test cases. Thus, the efforts involving domain experts can be reduces to analyze such instances

    Discovering Business Models for Software Process Management - An Approach for Integrating Time and Resource Perspectives from Legacy Information Systems

    Get PDF
    Business Process Management (BPM) is becoming the modern core to support business in all type of organizations and software business is not an exception. Software companies are often involved in important and complex collaborative projects carried out by many stakeholders. Each actor (customers, suppliers or government instances, among others) works with individual and shared processes. Everyone needs dynamic and evolving approaches for managing their software projects lifecycle. Nevertheless, many companies still use systems that are out of the scope of BPM for planning and control projects and managing enterprise content (Enterprise Content Management, ECM) as well as all kinds of resources (ERP). Somehow systems include scattered artifacts that are related to BPM perspectives: control and data flow, time, resource and case, for example. It is aimed to get interoperable BPM models from these classical Legacy Information Systems (LIS). Model-Driven Engineering (MDE) allows going from application code to higher-level of abstraction models. Particularly, there are standards and proposals for reverse engineering LIS. This paper illustrates LIS cases for software project planning and ECM, looking at time and resource perspectives. To conclude, we will propose a MDE-based approach for taking out business models in the context of software process management.Ministerio de EconomĂ­a y Competitividad TIN2013-46928-C3-3-

    Deriving Event Logs from Legacy Software Systems

    Get PDF
    Abstract. The modernization of legacy software systems is one of the key challenges in software industry, which requires comprehensive system analysis. In this context, process mining has proven to be useful for understanding the (business) processes implemented by the legacy software system. However, process mining algorithms are highly dependent on both the quality and existence of suitable event logs. In many scenarios, existing software systems (e.g., legacy applications) do not leverage process engines capable of producing such high-quality event logs, which hampers the application of process mining algorithms. Deriving suitable event log data from legacy software systems, therefore, constitutes a relevant task that fosters data-driven analysis approaches, including process mining, data-based process documentation, and process-centric software migration. This paper presents an approach for deriving event logs from legacy software systems by combining knowledge from source code and corresponding database operations. The goal is to identify relevant business objects as well as to document user and software interactions with them in an event log suitable for process mining
    • …
    corecore