18 research outputs found

    Deriving Abstractions from a Software Object Network

    Get PDF
    High level abstractions from programs can be obtained by extracting relational information from programs to form a software object network, and deriving high level abstractions from that network. The authors show how to obtain several interesting abstractions such as subsystems, ripple effects, logical layers and modules from a software object network represented by a C program database. These abstractions assist programmers in understanding the program structure and point out potential areas for improvement. This document then demonstrates how rule-based software restructing can be performed by accessing the relational information stored in the program database. Keywords: Computer programming; CIA(C Information Abstraction)

    Documentation for software maintenance and there documentation of existing systems

    Get PDF
    The importance of software documentation in maintenance work is widely acknowledged by those involved in the work. However, many new software projects axe still being produced with documentation that is inadequate for efficient support of the product following development. When a product enters the maintenance phase of its life-cycle, the need for quality documentation increases dramatically as it is common for the maintenance team to be composed of personnel who were not involved in the products development. This thesis surveys the tools available for supporting the production of software documentation and then proposes a tool, based on hypertext technology, that will enable maintenance programmers to efficiently create documentation about systems they are working on, where the existing documentation is unsatisfactory

    The use of non-formal information in reverse engineering and software reuse

    Get PDF
    This thesis was submitted for the degree of Doctor of Philosophy and awarded by Brunel University.Within the field of software maintenance, both reverse engineering and software reuse have been suggested as ways of salvaging some of the investment made in software that is now out of date. One goal that is shared by both reverse engineering and reuse is a desire to be able to redescribe source code, that is to produce higher level descriptions of existing code. The fundamental theme of this thesis is that from a maintenance perspective, source code should be considered primarily as a text. This emphasizes its role as a medium for communication between humans rather than as a medium for human-computer communication. Characteristic of this view is the need to incorporate the analysis of non-formal information, such as comments and identifier names, when developing tools to redescribe code. Many existing tools fail to do this. To justify this text-based view of source code, an investigation into the possible use of non-formal information to index pieces of source code was undertaken. This involved attempting to assign descriptors that represent the code's function to pieces of source code from IBM's CICS project. The results of this investigation support the view that the use of nonformal information can be of practical value in redescribing source code. However, the results fail to suggest that using non-formal information will overcome any of the major difficulties associated with developing tools to redescribe code. This is used to suggest future directions for research

    Software maintenance: redocumentation of existing Cobol systems using hypertext technology

    Get PDF
    One of the major problems associated with the maintenance of existing software systems is their lack of documentation. This can make very large, poorly structured programs very difficult to maintain. Nearly all traditional documentation tools are either designed for use in the development stage of the software lifecycle or are report generators such as cross reference generators. The problems of lack of documentation are compounded when applied to third party software maintenance as the staffs are often initially unfamiliar with the code they are maintaining. This thesis describes these problems in detail and evaluates the feasibility of a tool to help with redocumentation based on current hypertext technology

    Regression Test Selection by Exclusion

    Get PDF
    This thesis addresses the research in the area of regression testing. Software systems change and evolve over time. Each time a system is changed regression tests have to be run to validate these changes. An important issue in regression testing is how to minimise reuse the existing test cases of original program for modied program. One of the techniques to tackle this issue is called regression test selection technique. The aim of this research is to signicantly reduce the number of test cases that need to be run after changes have been made. Specically, this thesis focuses on developing a model for regression test selection using the decomposition slicing technique. Decomposition slicing provides a technique that is capable of identifying the unchanged parts of the system. The model of regression test selection based on decomposition slicing and exclusion of test cases was developed in this thesis. The model is called Regression Test Selection by Exclusion (ReTSE) and has four main phases. They are Program Analysis, Comparison, Exclusion and Optimisation phases. The validity of the ReTSE model is explored through the application of a number of case studies. The case studies tackle all types of modication such as change, delete and add statements. The case studies have covered a single and combination types of modication at a time. The application of the proposed model has shown that signicant reductions in the number of test cases can be achieved. The evaluation of the model based on an existing framework and comparison with another model also has shown promising results. The case studies have limited themselves to relatively small programs and the next step is to apply the model to larger systems with more complex changes to ascertain if it scales up. While some parts of the model have been automated tools will be required for the rest when carrying out the larger case studies
    corecore