88,476 research outputs found

    Incorporating Object-Oriented Metrics Into A Reverse Engineering Tool

    Get PDF
    This work explains the use of object-oriented software product metrics with their thresholds and how they could be incorporated into a reverse engineering tool that visualizes the architectural components of a software system. Visualizing. Object-Oriented C++ ( VOO++), reverse engineering tool that visualizes C++ objectoriented source code, is enhanced and reproduced to become a Visualizing and Measuring C++ ( VMCPP) tool that visualizes and measures object-oriented C++ files. VMCPP assists the software developer in extracting and interpreting the components of a software system. Unified Modeling Language (UML) class diagrams are produced to graphically represent the classes involved in implementing a software system. Thresholds are used within VMCPP to separate the extracted metrics values into normal values and critical values

    Evolution Of Object-Oriented Methods From The Reverse Engineering Of Programming Code

    Get PDF
    Many software development projects fail because of their inability to deliver the product in a timely and cost-effective manner, i.e. the software crisis. In a commercial airline company, a safety-critical system for preventing a “single-point of failure” needs to be developed and certified. To meet the project deadline an Agile approach was used in developing the first portion of the system. An appropriate software development methodology, i.e. reverse-engineering was then applied to the software system to develop method that would be used in system maintenance and evaluation. The goals of this research study were to develop a segment of one of the UML activity diagrams as a purposeful and systematic methodology for conducting reverse-engineering on complete safety critical systems of the airline system. This was done to capture very high and very low-level designs of software engineering and to verify and validate the source code. The UML activity diagram was developed from a source code of an aircraft-gate assignment system. This was done in order to capture very low-level details of the program code, from which the model was reversed engineered. The diagram was made to represent the entire source code, by going through and analyzing the source code line-by-line. Whenever there is a condition in the source code, the diagram branches out and interacts with other activities. To directly see the flow of the program, the directional arrows in the diagram were assigned. With the data flow of the source code being represented in the visual format of the UML activity diagram, the interaction of each component can be easily understood and identified. The user can see the information that goes into each method, and what each method required. Once the user understands the flow of data within the program, the user can validate and verify that the software was developed with correct methods. As the UML activity diagram represented the pseudo code of the program in a graphic way, it should be a good candidate to be used as a tool to help in reverse-engineering safety critical systems of an airline system. The UML activity diagram should be able to represent all aspects required in the deconstruction phrase of the reverse-engineering methodology. With the source code in the graphic diagram form, it should be much easier to identify the structure, functions and determine how each aspect of the program interact with each other so that the activity diagram can be used in a formal methodology for reverse-engineering

    An Approach for Displaying the Relations among Main Elements of Object-Oriented Programs

    Get PDF
    An appropriate understanding of the source code is one of the necessary steps for resolving errors and improving code and design. Two fundamental aspects in Object-Oriented Programs are program elements including classes and packages, and the relations among them. In this paper, a multi-step approach has been presented and implemented for recovering and displaying main elements of an Object-Oriented Program including classes, packages, and the relations among them. This approach has been done through three steps; first, the set of classes, packages, and the relations among them are obtained automatically from the program source code. Second, a code is injected to the program source code to register the information needed during runtime. Finally, the information obtained from previous steps is displayed. The results of this approach can be used for automatic documentation, teaching programming, better understanding and evaluating Object-Oriented Programs, reverse engineering methods for detecting program strengths and weaknesses.DOI:http://dx.doi.org/10.11591/ijece.v3i5.403

    Recovering Sequence Diagrams from Object-oriented Code

    Get PDF
    Software modernization is a current research area in the software industry intended to transform an existing software system to a new one satisfying new demands. The initiative Architecture-Driven Modernization (ADM) helps software developers in tackling reverse engineering, software evolution and, software modernization in general. To support modernization problems, the ADM Task Force has defined a set of metamodels such as KDM (Knowledge Discovery Metamodel), being the Eclipse-MDT MoDisco project the official support for software modernization. We propose the application of ADM principles to provide relevant model-based views on legacy systems. We describe a framework to reverse engineering models from object-oriented code. In this context, we show how to recover UML sequence diagrams from Java code. We validate our approach by using ADM standards and MoDisco platform. Our research can be considered a contribution to the MoDisco community; MoDisco does not support reverse engineering of sequence diagrams and, on the other hand, the MoDisco KDM Discover was used and enriched to obtain the required information for recovering interaction diagrams

    Extracting Object Oriented Software Architecture from C++ Source Code

    Get PDF
    Software architecture strongly influences the ability to satisfy quality attributes such as modifiability, performance, and security. It is important to be able to analyse and extract information about that architecture. However, architectural documentation frequently does not exist, and when it does, it is often out of sync with the implemented system. In addition, it is not all that software development begins with a clean slate; systems are almost always constrained by the existing legacy code. As a consequence, there is a need to extract information from existing system implementations and reason architecturally about this information. This research presents a reverse engineering tool VOO++ that will read an Object- Oriented C++ source code using UML notation in order to visualise its Class structure and the various relationships that may exist including, inheritance, aggregation, and dependency relationships based on the modified Cohen-Sutherland clipping algorithm. The idea of clipping is reversed, instead of clipping inside the rectangle, the clipping is done out side the rectangle in terms of four directions (left, right, top, and bottom) and two points represent the centre point for each rectangle. An Object-Oriented approach is used to design and implement the tool. Reverse engineering, design pattern, and graphics are the underlying techniques supplied. VOO++ aids an analyst in extracting, manipulating and interpreting the Object-Oriented static model information. By assisting in the reconstruction of static architectures from extracted information, VOO++ helps an analyst to redocument and understand architectures and discover the relationship between "as-implemented" and "asdesigned" architectures

    GRASP/Ada: Graphical Representations of Algorithms, Structures, and Processes for Ada. The development of a program analysis environment for Ada: Reverse engineering tools for Ada, task 2, phase 3

    Get PDF
    The main objective is the investigation, formulation, and generation of graphical representations of algorithms, structures, and processes for Ada (GRASP/Ada). The presented task, in which various graphical representations that can be extracted or generated from source code are described and categorized, is focused on reverse engineering. The following subject areas are covered: the system model; control structure diagram generator; object oriented design diagram generator; user interface; and the GRASP library

    Interactive scalable condensation of reverse engineered UML class diagrams for software comprehension

    Get PDF
    Software design documentation is a valuable aid in software comprehension. However, keeping the software design up-to-date with evolving source code is challenging and time-consuming. Reverse engineering is one of the options for recovering software architecture from the implementation code. However, reverse engineering techniques suffer from several problems; one of them is that the resultant diagrams offer too detailed information. Therefore, this thesis aims to provide an automated framework to simplify reverse engineered diagrams (specifically class diagram) for assisting software comprehension. This thesis presents a study to elicit software developer’s views on simplifying class diagrams. It also explores the suitability of object-oriented metrics as features for the class diagram simplification. This thesis introduces a novel approach for classifying class inclusion/exclusion by using object-oriented design metrics as features. In addition, a set of text metrics based on class names is invented to enhance the performance prediction by combining these text-based features with object-oriented design metrics. Based on this approach, an automated tool is developed to support software comprehension by providing interactive explorations of various design abstraction levels. Finally, the proposed framework and tool are validated through a user study.Algorithms and the Foundations of Software technolog
    corecore