122 research outputs found

    RePLEX: A Model-Based Reengineering Tool for PLEX Telecommunication Systems

    Get PDF
    Maintenance of complex legacy software systems is a challenging task. In the first place, maintenance requires understanding the system. Reverse engineering and reengineering tools, which make the design of the current system available on-line and which support planning and performing changes to the system, are urgently needed. We present a new tool for reengineering telecommunication systems, recovering the current architecture, and extracting state machines reflecting the system behavior. The tool is based on a structure graph of the architecture and allows architectural modifications with according code changes. The modifications are specified as graph transformations using FUJABA enabling the generation of a Java prototype, which is accessible via a GUI based on the Graphical Editor Framework (GEF) plug-in for the Eclipse workbench

    CAViT: a Consistency Maintenance Framework based on Transformation Contracts

    Get PDF
    Design by contract is a software correctness methodology for procedural and object-oriented software. It relies on logical assertions to detect implementation mistakes at run-time or to proof the absence thereof at compile-time. Design by contract has found a new application in model driven engineering, a methodology that aims to manage the complexity of frameworks by relying on models and transformations. A ``transformation contract\u27\u27 is a pair of constraints that together describe the effect of a transformation rule on the set of models contained in its transformation definition: the postcondition describes the model consistency state that the rule can establish provided that its precondition is satisfied. A transformation contract of a rule can be maintained automatically by calling the rule (1) as soon as the invariant corresponding to its postcondition is violated and (2) provided that its precondition is satisfied. Domain specific visual languages can facilitate the implementation of the actual transformation rules since they hide the complexity of graph transformation algorithms and standards for tool interoperability. In this talk, we describe CAViT: a framework that integrates a visual model transformation tool with a design by contract tool by relying on OMG standards such as UML, OCL and MOF

    A heuristic-based approach to code-smell detection

    Get PDF
    Encapsulation and data hiding are central tenets of the object oriented paradigm. Deciding what data and behaviour to form into a class and where to draw the line between its public and private details can make the difference between a class that is an understandable, flexible and reusable abstraction and one which is not. This decision is a difficult one and may easily result in poor encapsulation which can then have serious implications for a number of system qualities. It is often hard to identify such encapsulation problems within large software systems until they cause a maintenance problem (which is usually too late) and attempting to perform such analysis manually can also be tedious and error prone. Two of the common encapsulation problems that can arise as a consequence of this decomposition process are data classes and god classes. Typically, these two problems occur together – data classes are lacking in functionality that has typically been sucked into an over-complicated and domineering god class. This paper describes the architecture of a tool which automatically detects data and god classes that has been developed as a plug-in for the Eclipse IDE. The technique has been evaluated in a controlled study on two large open source systems which compare the tool results to similar work by Marinescu, who employs a metrics-based approach to detecting such features. The study provides some valuable insights into the strengths and weaknesses of the two approache

    A Refactoring-Based Approach to Support Binary Backward-Compatible Framework Upgrades

    Get PDF
    Evolutionary changes applied to a framework API may invalidate existing framework-based applications. While manually adapting applications is expensive and error-prone, automatic adaptation demands cumbersome specifications, which the developers are reluctant to write and maintain. Considering structural changes (so-called refactorings) of framework APIs, our adaptation technology supports backward-compatible framework upgrade. The technology is rigorous defining precisely the structure and automatic derivation of compensating adapters. It is also practical compensating for most application-breaking API changes automatically, while requiring neither manual adaptation nor recompilation of existing application code

    A model transformation approach to perform refactoring on software architecture using refactoring patterns based on stakeholder requirements

    Get PDF
    Software Architecture (SA) generally has a considerable influence on software quality attributes. Coordination of software architecture to the requirements of the stakeholders and avoiding common mistakes and faults in designing SA increases the chance of success of the project and satisfaction of the stakeholders. Making the wrong decisions at the architectural design phase usually proves very costly later on. Refactoring is a method which helps in detecting and avoiding complications, improving the internal characteristics of software, while keeping the external behavior intact. Various problems can undermine the architecture refactoring process. The existence of different requirements in different domains, the diversity of architecture description languages, and the difficulty of describing refactoring patterns lead to the difficulty of performing automatic and semi-automatic refactoring on the SA. In this study, we use model transformation as a way to overcome the above mentioned difficulties. In this regard, the first step is converting the SA to a pivot-model. Then, based on the refactoring patterns, the refactoring process is performed on the pivotmodel. And finally, the pivot-model is converted back to the original (source) model. In this paper, the requirements of the stakeholders are taken into account in the refactoring process by modeling them as refactoring goals. These goals show the importance of the quality attributes in the project and the process of refactoring. The applicability of the framework is demonstrated using a case study

    17th Edition of ECOOP Doctoral Symposium and PhD Workshop : Proceedings

    Get PDF
    • …
    corecore