scispace - formally typeset
Search or ask a question

Showing papers on "Static program analysis published in 1989"


Patent
12 Jul 1989
TL;DR: In this paper, differences between both the code and documentation of a revised generation of software and a previous generation are compared by a digital computer with the intended revisions stored in a release file, and actual impacts in the form of the locations in the program where one routine is called by another and where common statements and public variables are used, are identified.
Abstract: In a method of software verification, differences between both the code and documentation of a revised generation of software and a previous generation are compared by a digital computer with the intended revisions stored in a release file. When all discrepancies have been eliminated, and for the original generation of the software, actual impacts in the form of the locations in the program where one routine is called by another and where common statements and public variables are used, are identified; then, the revised software, or the original version in the case of newly created software, is stored in a library with the code and documentation paired, and with each revision of each unit identified for later retrieval and reconstruction of any software generation. The latest generation of the software is then simultaneously verified, preferably by an automated process in a programmed computer, and validated through testing of the auto-linked program in PROMs inserted in the actual hardware.

15 citations


Proceedings ArticleDOI
27 Feb 1989
TL;DR: An object-oriented model of software that is derived semiautomatically from the actual code is introduced that provides an approximation to the functionality (specification) of the software as well as a two-way map between the functionality and the code structures.
Abstract: The authors introduce an object-oriented model of software that is derived semiautomatically from the actual code. The model and its associated object methods are used to support basic tasks required during software maintenance. The object-oriented model provides a series of successively more abstract views of the code structure. Object methods provide an approximation to the functionality (specification) of the software as well as a two-way map between the functionality and the code structures. Object methods also provide the means of detailed connectivity analysis associated with the ripple effect and program-slicing types of activities during maintenance. >

15 citations


Proceedings ArticleDOI
16 Oct 1989
TL;DR: EDSA (expert data flow and static analysis tool) which uses static analysis of source code to help gain an understanding of existing code, is described.
Abstract: EDSA (expert data flow and static analysis tool) which uses static analysis of source code to help gain an understanding of existing code, is described. This may be for the purpose of tracking down a bug or to determine in advance whether an intended change will have any undesirable side effects. In either case, the phase of the development life cycle that is most likely to benefit from a tool like EDSA is the maintenance phase. EDSA provides three kinds of facilities. It helps to browse through code, following either the control flow or data flow, rather than the order in which the code happens to be written. It displays code with unimportant source lines eluded, so that the user can get a more global view of the program. Finally, it provides search management to make it easier to examine all possibilities when browsing. The mechanism used to create and display various views of programs is described and the approach to the user interface is discussed. The state of the current implementation is described. >

14 citations


Proceedings ArticleDOI
16 Oct 1989
TL;DR: The use of program decomposition to assist maintenance programmers in all three phases of maintenance, namely, comprehension, modification and debugging, is discussed and visibility flow graphs are introduced to represent the information about the static semantics of a program.
Abstract: The use of program decomposition to assist maintenance programmers in all three phases of maintenance, namely, comprehension, modification and debugging, is discussed. Visibility flow graphs are introduced to represent the information about the static semantics of a program. Using static analysis of programs, it is possible to approximate their dynamic behavior. More precise analysis is possible if the program is monitored during its execution. For dynamic semantics, dependence relations are used that reflect the dependency of statements on the input value of variables and of the output value of variables on the statements. These relations are generated both at static analysis time and during program execution. Some sample sessions with a prototype program analyzer for a subset of Ada are included. >

12 citations


Dissertation
01 Jan 1989
TL;DR: A set of graph operations are developed that allow a maintenance programmer to combine graphs to create a bigger graph, and to extract subgraphs from a given graph that satisfy specified constraints, to help make the code of a system easier to understand.
Abstract: The research described in this thesis addresses itself to the problem of maintaining large, undocumented systems written in languages that contain a module construct. Emphasis is placed on developing techniques for analysing the code of these systems, thereby helping a maintenance programmer to understand a system. Techniques for improving the structure of a system are presented. These techniques help make the code of a system easier to understand. All the code analysis techniques described in this thesis involve reasoning with, and manipulating, graphical representations of a system. To help with these graph manipulations, a set of graph operations are developed that allow a maintenance programmer to combine graphs to create a bigger graph, and to extract subgraphs from a given graph that satisfy specified constraints. A relational database schema is developed to represent the information needed for inter-module code analysis. Pointers are given as to how this database can be used for inter-module code analysis.

10 citations


Journal ArticleDOI
TL;DR: In this article, the authors used static analysis techniques for the independent assessment of safety critical software and revealed critical errors during such assessments using the tool MALPAS, which has successfully verified software.

8 citations


Journal ArticleDOI
TL;DR: Anyone who has attempted to typeset computer program code manually and maintain consistency between sourc e code and typeset documentation for succesive versions of a program will readily appreciate these virtues of the Web system.
Abstract: The chief virtues of the Web system are that it encourages consistency between code and documentatio n and it supports the production of high-quality typeset documentation in a uniform style . With Web th e source code and documentation of a program are combined in a single file . There are two programs, Weav e and Tangle, which produce Tl typesetting commands and compilable source code, respectively, from the Web file . Since Tangle automatically organizes the code fragments into a compilable order as it extract s them from the Web file, the author is freed of syntactic constraints imposed by the programming language , and can structure the Web file in a way that makes the final typeset documentation most readable . Anyon e who has attempted to typeset computer program code manually and maintain consistency between sourc e code and typeset documentation for succesive versions of a program will readily appreciate these virtues .

7 citations


Proceedings ArticleDOI
16 Oct 1989
TL;DR: A knowledge-based technique is described for understanding programs (the program design language, PDL and the corresponding code) in terms of their plans and has been used successfully to enhance PDL's role in maintaining and modifying code.
Abstract: A knowledge-based technique is described for understanding programs (the program design language, PDL and the corresponding code) in terms of their plans. The technique has been used successfully to enhance PDL's role in maintaining and modifying code. This success is illustrated by an example. The methodology from which this technique evolved was derived from an earlier approach used in developing a knowledge-based prototype that inspects and quality assures software components (B. Das, 1989). The prototype model offers a unified representation of the components that have been used to represent PDL and code segments. Recent approaches to program analysis and understanding for use in software maintenance are discussed. It is argued that, unlike other research advances in this area, this approach is more realistic and takes advantages of a structured environment (standards for PDL, for example) commonly practiced in a software community. Yet the methodology is fairly general and immediately applicable in other software activities. Directions for future work are also outlined. >

4 citations


Proceedings ArticleDOI
Stanley Letovsky1
03 Jan 1989
TL;DR: A description is given of CPU, a program analysis tool that converts programs into formal specifications by using a technique called transformational analysis to replace plans that are recognized in the code with descriptions of their goals.
Abstract: A description is given of CPU, a program analysis tool that converts programs into formal specifications. CPU takes as input a program plus a knowledge base of programming plans and finds instances of plans in the code. A technique called transformational analysis is used in which plans that are recognized in the code are replaced by descriptions of their goals. Both procedural plans and data-structuring plans can be recognized. The result of a transformational analysis is a hierarchical derivation of the program, where the topmost layer constitutes a formal specification for the input program, the bottommost layer is the original code, and the intermediate layers denote plans that were recognized in the program. This derivation can be used to generate summaries of the code and to answer questions about it. >

4 citations


Journal ArticleDOI
TL;DR: This OR Software section of ORSEP is reviewed, and the restriction of a one page limit for the code descriptions in cases where this seemed to be justified is dropped.

4 citations


ReportDOI
01 Nov 1989
TL;DR: This first program use of the incremental, demonstration based process model with related software metrics has been totally successful and the technology now is being transferred to other projects within the company.
Abstract: : The paper captures the project management experience of using process metrics to measure the development of a large software system for the U.S. government. The Command Center Processing and Display System-Replacement (CCPDS- R) program is a development effort consisting of three subsystems and over 6000, 000 lines of Ada source code executing in a distributed Digital Equipment Corporation VAX VMS environment. The initial subsystem called the Command Subsystem, consists of over 3000,000 lines of Ada source code and is 2 years into development with a successful Critical Design Review (CDR) held at month 25 of the contract. Utilizing the new Ada process model, over 280,000 lines of Ada source code have been developed and integrated into a working demonstration on the operational hardware. This approach has permitted the validation of the software design, allowed early analysis and resolution of the software performance issues, and provided extensive insight into the usability and flexibility of the system for the user community. This first program use of the incremental, demonstration based process model with related software metrics has been totally successful. The technology now is being transferred to other projects within the company. The U.S. Government acquisition agency has designated CCPDS-R as its flagship program and is basing new acquisitions on the approach utilized by the CCPDS-R program.

Journal ArticleDOI
TL;DR: The entity relationship approach can be used to address the problem of library management for design, code, and program management libraries and is capable of supporting object oriented and convential operator/operand system designs and implementations.
Abstract: Large commercial and research establishments who attempt to reuse software to construct operable systems confront the problem of code management. The increasing availability and usage of Computer Aided Software Engineering, CASE, tools coupled with the production of highly reusable code modules induces the need for more sophisticated and versatile library management facilities. This paper describes how the entity relationship approach can be used to address the problem of library management for design, code, and program management libraries. This approach to library management is independent of software development methodologies, hence is capable of supporting object oriented and convential operator/operand system designs and implementations.

Patent
22 Sep 1989
TL;DR: In this paper, the authors present an approach to perform inspection capable of eliminating erroneous interface between programs by performing the judgement of the normal/defective condition of the interface between the programs having reference relation at the preceding process of a test process.
Abstract: PURPOSE:To perform inspection capable of eliminating erroneous interface between programs by performing the judgement of the normal/defective condition of the interface between the programs having reference relation at the preceding process of a test process. CONSTITUTION:An input means 1 inputs the storage medium name of a storage medium 2 in which a source program group is stored and a source program name, and delivers information to a source program readout means 3. The readout means 3 reads out a source program from the storage medium 2. The code analysis means 41 of an information inspection means 4 takes out one step from a read out program, and when it is not the completion of the program, the code analysis means 41 decides whether or not a taken out one step is interface information declaring the argument of the program. When it is the interface information, the program name and data definition information are preserved in a working area.

01 May 1989
TL;DR: The FRAME51 program as discussed by the authors performs nonlinear analysis of statically loaded plane frames using a discrete element model using currently available hardware and software, and includes panel-oriented input and extensive use of graphics.
Abstract: Computer program FRAME51 performs a nonlinear analysis of statically loaded plane frames using a discrete element model. Enhancements are made to an existing FORTRAN code using currently available hardware and software. The original code runs on a minicomputer with alphanumeric terminals, while the enhanced version runs on a microcomputer with an improved user interface that includes panel-oriented input and extensive use of graphics. Low level assembly language routines are written to provide functions for manipulating screens, and calls to a commercial software package provide functions for graphical capabilities. The existing code is integrated with the new program as subroutines, but no other modifications are made to facilitate avoidance of new error sources. Panel-oriented input eases the user's burden of creating and editing problems. Graphical representation of input data allows error-checking before execution of the code. In addition to the conventional numerical presentation, output data from analysis is also displayed graphically. A menu structure controls access to various capabilities of the software package. FORTRAN 77 is used as the primary language for new code development (A).

Proceedings ArticleDOI
14 Nov 1989
TL;DR: A software experimental analysis approach that unifies static and dynamic techniques is presented to develop practical means to obtain precise, in-depth, and relevant performance information, especially execution time, for guiding design decisions.
Abstract: A software experimental analysis approach that unifies static and dynamic techniques is presented. The goal was to develop practical means to obtain precise, in-depth, and relevant performance information, especially execution time, for guiding design decisions. First, computation cost functions of a program are derived. This is done by modeling the program using the computation structure model and then applying a flow analysis technique to derive the program's cost function. In addition, program instrumentation techniques are employed to measure control flows and to trace program variables. Finally, precise execution-time information is computed by evaluating the cost function against the measured control flows. The three classes of parameters (execution time, control flow and program variables) can be analyzed selectively and interactively; this gives much insight about an individual design alternative's actual behavior. To cope with tedious and frequent analyses of large and complex software, a tool COPES, was built that automates the static and dynamic techniques required. The implementation and usage of this tool are illustrated. >

01 May 1989
TL;DR: The FRAME11 program as mentioned in this paper performs a linear elastic analysis of plane frames subjected to complex loading conditions using the FORTRAN 77 language and includes a user interface that includes panel-oriented input and extensive use of graphics.
Abstract: Computer program FRAME11 performs a linear elastic analysis of plane frames subjected to complex loading conditions. Enhancements are made to an existing FORTRAN code using currently available hardware and software. The original code runs on a minicomputer with alphanumeric terminals, while the enhanced version runs on a microcomputer with an improved user interface that includes panel-oriented input and extensive use of graphics. Low level assembly language routines are written to provide functions for manipulating screens, and calls to a commercial software package provide functions for graphical capabilities. The existing code is integrated with the new program as subroutines, but no other modifications are made to facilitate avoidance of new error sources. Panel-oriented input eases the user's burden of creating and editing problems. Graphical representation of input data allows error-checking before execution of the code. In addition to the conventional numerical presentation, output data from analysis is also displayed graphically. A menu structure controls access to various capabilities of the software package. FORTRAN 77 is used as the primary language for new code development.

01 May 1989
TL;DR: Computer program FRAME11 performs a linear elastic analysis of plane frames subjected to complex loading conditions using FORTRAN 77, which is used as the primary language for new code development.
Abstract: Computer program FRAME11 performs a linear elastic analysis of plane frames subjected to complex loading conditions Enhancements are made to an existing FORTRAN code using currently available hardware and software The original code runs on a minicomputer with alphanumeric terminals, while the enhanced version runs on a microcomputer with an improved user interface that includes panel-oriented input and extensive use of graphics Low level assembly language routines are written to provide functions for manipulating screens, and calls to a commercial software package provide functions for graphical capabilities The existing code is integrated with the new program as subroutines, but no other modifications are made to facilitate avoidance of new error sources Panel-oriented input eases the user's burden of creating and editing problems Graphical representation of input data allows error-checking before execution of the code In addition to the conventional numerical presentation, output data from analysis is also displayed graphically A menu structure controls access to various capabilities of the software package FORTRAN 77 is used as the primary language for new code development (A)