952 research outputs found

    Benefits of reverse engineering technologies in software development makerspace

    Full text link

    MDA-Based Reverse Engineering

    Get PDF

    Assistance in Model Driven Development: Toward an Automated Transformation Design Process

    Get PDF
    Model driven engineering aims to shorten the development cycle by focusing on abstractions and partially automating code generation. We long lived in the myth of automatic Model Driven Development (MDD) with promising approaches, techniques, and tools. Describing models should be a main concern in software development as well as model verification and model transformation to get running applications from high level models. We revisit the subject of MDD through the prism of experimentation and open mindness. In this article, we explore assistance for the stepwise transition from the model to the code to reduce the time between the analysis model and implementation. The current state of practice requires methods and tools. We provide a general process and detailed transformation specifications where reverse-engineering may play its part. We advocate a model transformation approach in which transformations remain simple, the complexity lies in the process of transformation that is adaptable and configurable. We demonstrate the usefulness, and scalability of our proposed MDD process by conducting experiments. We conduct experiments within a simple case study in software automation systems. It is both representative and scalable. The models are written in UML; the transformations are implemented mainly using ATL, and the programs are deployed on Android and Lego EV3. Last we report the lessons learned from experimentation for future community work

    A Model-Driven Architecture based Evolution Method and Its Application in An Electronic Learning System

    Get PDF
    Software products have been racing against aging problem for most of their lifecycles, and evolution is the most effective and efficient solution to this problem. Model-Driven Architecture (MDA) is a new technique for software product for evolving development and reengineering methods. The main steps for MDA are to establish models in different levels and phases, therefore to solve the challenges of requirement and technology change. However, there is only a standard established by Object Management Group (OMG) but without a formal method and approach. Presently, MDA is widely researched in both industrial and research areas, however, there is still without a smooth approach to realise it especially in electronic learning (e-learning) system due to the following reasons: (1) models’ transformations are hard to realise because of lack of tools, (2) most of existing mature research results are working for business and government services but not education area, and (3) most of existing model-driven researches are based on Model-Driven Development (MDD) but not MDA because of OMG standard’s preciseness. Hence, it is worth to investigate an MDA-based method and approach to improve the existing software development approach for e-learning system. Due to the features of MDA actuality, a MDA-based evolution method and approach is proposed in this thesis. The fundamental theories of this research are OMG’s MDA standard and education pedagogical knowledge. Unified Modelling Language (UML) and Unified Modelling Language Profile are hired to represent the information of software system from different aspects. This study can be divided into three main parts: MDA-based evolution method and approach research, Platform-Independent Model (PIM) to Platform-Specific Model (PSM) transformation development, and MDA-based electronic learning system evolution. Top-down approach is explored to develop models for e-learning system. A transformation approach is developed to generate Computation Independent Model (CIM), Platform-Independent Model (PIM), and Platform-Specific Model (PSM); while a set of transformation rules are defined following MDA standard to support PSM’ s generation. In addition, proposed method is applied in an e-learning system as a case study with the prototype rules support. In the end, conclusions are drawn based on analysis and further research directions are discussed as well. The kernel contributions are the proposed transformation rules and its application in electronic learning system

    Software Evolution for Industrial Automation Systems. Literature Overview

    Get PDF

    Security-Driven Software Evolution Using A Model Driven Approach

    Get PDF
    High security level must be guaranteed in applications in order to mitigate risks during the deployment of information systems in open network environments. However, a significant number of legacy systems remain in use which poses security risks to the enterprise’ assets due to the poor technologies used and lack of security concerns when they were in design. Software reengineering is a way out to improve their security levels in a systematic way. Model driven is an approach in which model as defined by its type directs the execution of the process. The aim of this research is to explore how model driven approach can facilitate the software reengineering driven by security demand. The research in this thesis involves the following three phases. Firstly, legacy system understanding is performed using reverse engineering techniques. Task of this phase is to reverse engineer legacy system into UML models, partition the legacy system into subsystems with the help of model slicing technique and detect existing security mechanisms to determine whether or not the provided security in the legacy system satisfies the user’s security objectives. Secondly, security requirements are elicited using risk analysis method. It is the process of analysing key aspects of the legacy systems in terms of security. A new risk assessment method, taking consideration of asset, threat and vulnerability, is proposed and used to elicit the security requirements which will generate the detailed security requirements in the specific format to direct the subsequent security enhancement. Finally, security enhancement for the system is performed using the proposed ontology based security pattern approach. It is the stage that security patterns derived from security expertise and fulfilling the elicited security requirements are selected and integrated in the legacy system models with the help of the proposed security ontology. The proposed approach is evaluated by the selected case study. Based on the analysis, conclusions are drawn and future research is discussed at the end of this thesis. The results show this thesis contributes an effective, reusable and suitable evolution approach for software security

    Assisted Specification of Code Using Search

    Full text link
    We describe an intelligent assistant based on mining existing software repositories to help the developer interactively create checkable specifications of code. To be most useful we apply this at the subsystem level, that is chunks of code of 1000-10000 lines that can be standalone or integrated into an existing application to provide additional functionality or capabilities. The resultant specifications include both a syntactic description of what should be written and a semantic specification of what it should do, initially in the form of test cases. The generated specification is designed to be used for automatic code generation using various technologies that have been proposed including machine learning, code search, and program synthesis. Our research goal is to enable these technologies to be used effectively for creating subsystems without requiring the developer to write detailed specifications from scratch

    Synthesis of Model Transformations from Metamodels and Examples

    Get PDF
    Model transformations are central elements of model-driven engineering (MDE). However, model transformation development requires a high level of expertise in particular model transformation languages, and model transformation specifications are often difficult to manually construct, due to the lack of tool support, and the dependencies involved in transformation rules.In this thesis, we describe techniques for automatically or semi-automatically synthesising transformations from metamodels and examples, in order to reduce model transformation development costs and time, and improve model transformation quality.We proposed two approaches for synthesising transformations from metamodels. The first approach is the Data Structure Similarity Approach, an exhaustive metamodel matching approach, which extracts correspondences between metamodels by only focusing on the type of features. The other approach is the Search-based Optimisation Approach, which uses an optimisation algorithm to extract correspondences from metamodels by data structure similarity, name syntax similarity, and name semantic similarity. The correspondence patterns between the classes and features of two metamodels are extracted by either of these two methods. To enable the production of specifications in multiple model transformation languages from correspondences, we introduced an intermediate language which uses a simplified transformation notation to express transformation specifications in a language-independent manner, and defined the mapping rules from this intermediate language to different transformation languages.We also investigated Model Transformation by Examples Approach. We used machine learning techniques to learn model transformation rules from datasets of examples, so that the trained model could generate target model from source model directly.We evaluated our approaches on a range of cases of different kinds of transformation, and compared the model transformation accuracy and quality of our versions to the previously-developed manual versions of these cases.Key words: model transformation, model-driven engineering, transformation syn-thesis, metamodel matching, model transformation by example

    A methodology of automatic class diagrams generation from source code using Model-Driven Architecture and Machine Learning to achieve Energy Efficiency

    Get PDF
    The automated generation of class diagrams is a crucial task in software engineering, facilitating the understanding, analysis, and documentation of complex software systems. Traditional manual approaches are time and energy consuming, error-prone, and lack consistency. To address these challenges, this research presents an automated proposed approach that utilizes Graph Neural Networks (GNNs), a machine learning algorithm, to generate class diagrams from source code within the context of Model Driven Architecture (MDA) and reverse engineering. A comprehensive case study is conducted to compare the results obtained from the automated approach with manually created class diagrams. The GNN model demonstrates high accuracy in capturing the system’s structure, associations, and relationships. Notably, the automated approach significantly reduces the time required for class diagram generation, leading to substantial time and energy savings. By advancing automated software documentation, this research contributes to more efficient software engineering practices. It promotes consistency, eliminates human errors, and enables software engineers to focus on higher-value tasks. Overall, the proposed approach showcases the potential of GNNs in automating class diagram generation and its practical benefits for software development and documentation
    • …
    corecore