scispace - formally typeset
Search or ask a question

Showing papers on "Software published in 1980"


01 Aug 1980
TL;DR: A pack of FORTRAN subprograms for the numerical solution of nonlinear equations and nonlinear least-squares problems and this report provides an overview of the algorithms and software in the package.
Abstract: MINPACK-1 is a pack of FORTRAN subprograms for the numerical solution of nonlinear equations and nonlinear least-squares problems. This report provides an overview of the algorithms and software in the package, and includes the documentation and program listings.

774 citations


Journal ArticleDOI
TL;DR: In this paper, the A-7 document is described as a model of a disciplined approach to requirements specification; the document is available to anyone who wishes to see a fully worked-out example of the approach.
Abstract: This paper concerns new techniques for making requirements specifications precise, concise, unambiguous, and easy to check for completeness and consistency. The techniques are well-suited for complex real-time software systems; they were developed to document the requirements of existing flight software for the Navy's A-7 aircraft. The paper outlines the information that belongs in a requirements document and discusses the objectives behind the techniques. Each technique is described and illustrated with examples from the A-7 document. The purpose of the paper is to introduce the A-7 document as a model of a disciplined approach to requirements specification; the document is available to anyone who wishes to see a fully worked-out example of the approach.

542 citations


ReportDOI
01 Aug 1980
TL;DR: A pack of FORTRAN subprograms for the numerical solution of nonlinear equations and nonlinear least-squares problems and this report provides an overview of the algorithms and software in the package.
Abstract: MINPACK-1 is a pack of FORTRAN subprograms for the numerical solution of nonlinear equations and nonlinear least-squares problems. This report provides an overview of the algorithms and software in the package, and includes the documentation and program listings.

415 citations


01 Aug 1980
TL;DR: This paper describes the design schema of experienced software designers and illustrates its operation by considering thinking-aloud protocols collected from both expert and novice designers.
Abstract: : A design task involves a complex set of processes. Starting from a global statement of the problem, a designer must develop a precise plan for a solution that can be realized in some concrete way. Software design, which is investigated in this paper, is the process of translating a set of task requirements into a structural description of a computer program that will perform the task. Through experience, designers acquire knowledge concerning the overall structure of a good design and of the processes of generating one. Using this knowledge, they direct their actions to insure that their designs will satisfy these constraints. We call this abstract knowledge about designs and design processes, along with a set of procedures which implement these processes, a 'design schema'. This paper describes the design schema of experienced software designers and illustrates its operation by considering thinking-aloud protocols collected from both expert and novice designers. (Author)

396 citations



Journal ArticleDOI
TL;DR: In this paper, measures for estimating the stability of a program and the modules of which the program is composed are presented, and an algorithm for computing these stability measures is given.
Abstract: Software maintenance is the dominant factor contributing to the high cost of software. In this paper, the software maintenance process and the important software quality attributes that affect the maintenance effort are discussed. One of the most important quality attributes of software maintainability is the stability of a program, which indicates the resistance to the potential ripple effect that the program would have when it is modified. Measures for estimating the stability of a program and the modules of which the program is composed are presented, and an algorithm for computing these stability measures is given. An algorithm for normalizing these measures is also given. Applications of these measures during the maintenance phase are discussed along with an example. An indirect validation of these stability measures is also given. Future research efforts involving application of these measures during the design phase, program restructuring based on these measures, and the development of an overall maintainability measure are also discussed.

203 citations


Journal ArticleDOI
TL;DR: The Pilot operating system provides a single-user, single language environment for higher level software on a powerful personal computer, whose features include virtual memory, a large “flat” file system, streams, network communication facilities, and concurrent programming support.
Abstract: The Pilot operating system provides a single-user, single language environment for higher level software on a powerful personal computer. Its features include virtual memory, a large “flat” file system, streams, network communication facilities, and concurrent programming support. Pilot thus provides rather more powerful facilities than are normally associated with personal computers. The exact facilities provided display interesting similarities to and differences from corresponding facilities provided in large multi-user systems. Pilot is implemented entirely in Mesa, a high-level system programming language. The modularization of the implementation displays some interesting aspects in terms of both the static structure and dynamic interactions of the various components.

154 citations


Journal ArticleDOI
30 Apr 1980
TL;DR: It is argued that many advances in software engineering will be related to improvements in the measurement and experimental evaluation of software techniques and practices.
Abstract: The contributions of measurement and experimentation to the state of the art in software engineering are reviewed. The role of measurement in developing theoretical models is discussed, and concerns for reliability and validity are stressed. Current approaches to measuring software characteristics are presented as examples. In particular, software complexity metrics related to control flow, module interconnectedness, and Halstead's Software Science are discussed. The use of experimental methods in evaluating cause-effect relationships is also discussed. Example programs of experimental research which investigated conditional statements and control flow are reviewed. The conclusion argues that many advances in software engineering will be related to improvements in the measurement and experimental evaluation of software techniques and practices.

153 citations


Journal Article
TL;DR: A new measuring system based on an APPLE microcomputer is presented, which uses diskettes for data storage and completely eliminates both paper tape and key punch cards from the measuring process.
Abstract: A brief discussion is presented on a new measuring system based on an APPLE microcomputer. Aspects of both hardware and software are considered, with emphasis on the software that provides operator interaction. The system uses diskettes for data storage and completely eliminates both paper tape and key punch cards from the measuring process.

128 citations


Journal ArticleDOI
F.N. Parr1
TL;DR: A new model of the software development process is presented and used to derive the form of the resource consumption curve of a project over its life cycle, which relates the rate of progress which can be achieved in developing software to the structure of the system being developed.
Abstract: A new model of the software development process is presented and used to derive the form of the resource consumption curve of a project over its life cycle. The function obtained differs in detail from the Rayleigh curve previously used in fitting actual project data. The main advantage of the new model is that it relates the rate of progress which can be achieved in developing software to the structure of the system being developed. This leads to a more testable theory, and it also becomes possible to predict how the use of structured programming methods may alter pattems of life cycle resource consumption.

91 citations


Journal ArticleDOI
TL;DR: Real-time debug and test is still a “lost world” compared to the “civilization” developed in other areas of software, says Robert L. Glass.
Abstract: Real-time debug and test is still a “lost world” compared to the “civilization” developed in other areas of software, says Robert L. Glass. From a survey of current practice across several projects and companies, he defines a state of the art for this problem area and suggests improvements which will ease the practitioner's task.

Journal ArticleDOI
TL;DR: Algorithms are presented for detecting errors and anomalies in programs which use synchronization constructs to implement concurrency, and these algorithms employ data flow analysis techniques.
Abstract: Algorithms are presented for detecting errors and anomalies in programs which use synchronization constructs to implement concurrency. The algorithms employ data flow analysis techniques. First used in compiler object code optimization, the techniques have more recently been used in the detection of variable usage errors in dngle process programs. By adapting these existing algorithms, the sane classes of variable usage errors can be detected in concurrent process programs. Important classes of errors unique to concurrent process programs are also described, and algorithms for their detection are presented.

Journal ArticleDOI
TL;DR: Software engineering may be defined as the systematic design and development of software products and the management of the software process.
Abstract: Software engineering may be defined as the systematic design and development of software products and the management of the software process. Software engineering has as one of its primary objectiv...

01 Jan 1980
TL;DR: A generalized framework for dialogue design is presented and the implementation of customized programming environments, supporting computer utilization for specific applications is discussed.
Abstract: This thesis consists of five research reports dealing with different aspects of the design of interactive application oriented software. A generalized framework for dialogue design is presented and the implementation of customized programming environments, supporting computer utilization for specific applications is discussed. Highlights of our presentation are:Uniform treatment of different kinds of end-user dialogues, especially with respect to irregular or unexpected terminal inputsEmphasis on programming environments instead of language design, promoting (he view of programming as a specification process performed with a data editor.Introduction of an intermediate system level, where a general-purpose programming system is specialized for a given class of applications, through the support of specialized conceptual frameworks and default mechanisms.Promotion of control independence in the sense that the specification of program execution particulars, such as end-user interactions etc., is postponed as long as possible and liable to subsequent change without reprogramming.

Journal ArticleDOI
TL;DR: This work proposes a complexity measure based on the number of crossings, or "knots," of arcs in a linearization of the flowgraph based on McCabe's cyclomatic complexity and Halstead's software effort.
Abstract: In attempting to describe the quality of computer software, one of the more frequently mentioned measurable attributes is complexity of the flow of control. During the past several years, there have been many attempts to quantify this aspect of computer programs, approaching the problem from such diverse points of view as graph theory and software science. Most notable measures in these areas are McCabe's cyclomatic complexity and Halstead's software effort. More recently, Woodward et al. proposed a complexity measure based on the number of crossings, or "knots," of arcs in a linearization of the flowgraph.

Journal ArticleDOI
TL;DR: In this paper, computer based information system performance can be conceptualized as being a function of computer hardware and software, behavioral, structural, and environmental variables, which can be expressed as follows:
Abstract: Computer based information system performance can be conceptualized as being a function of computer hardware and software, behavioral, structural, and environmental variables. To explore this conce...


Journal ArticleDOI
TL;DR: The concept of abstract data types is extended to associate performance information with each abstract data type representation, and methods for determining the necessary information to specify the performance part of the representation are discussed.
Abstract: The concept of abstract data types is extended to associate performance information with each abstract data type representation. The resulting performance abstract data type contains a functional part which describes the functional properties of the data type and a performance part which describes the performance characteristics of the data type. The performance part depends upon 1) the algorithms and data representation selected to represent the data type, 2) the particular machine on which the software realization of the data type is realized, and 3) the statistical properties of the actual data represented by the data objects involved in the data type. Methods for determining the necessary information to specify the performance part of the representation are discussed.

Journal ArticleDOI
TL;DR: This paper contains a survey of the past and current software developments in the field of partial differential equatmns, and the main emphasis is laid on two important classes of partial differentml equatmn software, that is, program packages with a high-level programmmg language interface and programs with a special language interface.
Abstract: This paper contains a survey of the past and current software developments in the field of partial differential equatmns. Software tools alined at reducing the task of solving partial differential equations are subdivided mto five classes Though attempting to give a broad overview of the field, the survey is biased toward general-purpose software, and the main emphasis is laid on two important classes of partial differentml equatmn software, that is, program packages with a high-level programmmg language interface and program packages with a special language interface.

ReportDOI
01 Jun 1980
TL;DR: This interim report presents the status of the DACS after the initial 18 months of development and descriptions of the software engineering computer database and the technology information base are provided.
Abstract: : The Data and Analysis Center for Software (DACS) is being established to serve as a central source for information and data on software technology. This interim report presents the status of the DACS after the initial 18 months of development. Descriptions of the software engineering computer database and the technology information base are provided. This report also contains information on the types of products developed during this reporting period and the technical inquiries received relating to software technology. (Author)

Book ChapterDOI
01 Jan 1980
TL;DR: This paper describes construction and applications of Software for automatic differentiation and examples from actual experience are cited to illustrate the theory.
Abstract: This paper describes construction and applications of Software for automatic differentiation. Examples from actual experience are cited to illustrate the theory.

Proceedings ArticleDOI
14 May 1980
TL;DR: The performance of multiprocessor nested-loops and sort-merge join algorithms is analyzed and it is shown that the nested-Loops algorithm is generally superior and the third level of granularity, a page of a relation, is shown to be the best choice from both hardware and software viewpoints.
Abstract: This paper presents a discussion of the application of data-flow machine concepts to the design and implementation of database machines which execute relational algebra queries. We analyze the performance of multiprocessor nested-loops and sort-merge join algorithms and show that the nested-loops algorithm is generally superior. Three levels of operand granularity for data-flow database machines are introduced and compared using the nested-loops join algorithm. We demonstrate, that relation-level granularity is too coarse and that tuple-level granularity is too fine. The third level of granularity, a page of a relation, is shown to be the best choice from both hardware and software viewpoints. Finally, a preliminary design for a data-flow database machine which utilizes page-level granularity and supports distributed control of instruction execution is presented.



Proceedings ArticleDOI
01 Jan 1980
TL;DR: Star trackers employing several novel techniques for maximizing the efficiency with which information can be extracted as well as corrected for electronic and opto/ mechanical distortions are described.
Abstract: Recent star tracker developments at JPL which utilize microprocessor-controlled large area imaging CCD arrays have included several novel techniques for maximizing the efficiency with which information can be extracted as well as corrected for electronic and opto/ mechanical distortions. Scanning algorithms which maximize the rate of obtaining target information, coupled with autonomous control of CCD and signal chain parameters, result from efficient task allocations between electronic hardware elements and operating software. Trade-offs between optical system and image processing software complexity allow sub-pixel star and image tracking using badly aberrated point spread functions by means of power series correction equations which define ideal image centroids from the aberrated image centroids. Star trackers employing these techniques currently under development at JPL are described.

Journal ArticleDOI
TL;DR: The performance of the computerized system reported is illustrated by comparing the selectivities of two established voltammetric stripping techniques with the selectivity of a new potentiometric technique developed on the system.

20 Nov 1980
TL;DR: This report contains interface specifications for all the device interface modules in the A-7 software and is intended to serve as a model for the other people interested in applying the abstract interface approach on other software projects.
Abstract: : As part of the experimental redesign of the flight software for the Navy's A-7 aircraft, software modules were designed to encapsulate the characteristics of hardware devices connected to the computer. The purpose of these device interface modules is to allow the remainder of the software to remain unchanged when devices are changed or replaced. To achieve this purpose, the modules were designed according to the abstract interface principle, documented according to a standard organization and reviewed by a systematic procedure based on the properties expected of abstract interfaces. This report contains: (a) an explanation of the abstract interface approach, (b) a description of the standard organization for interface specifications, (c) a description of the review procedure, and (d) interface specifications for all the device interface modules in the A-7 software. As well as serving as development and maintenance documentation for the A-7 redesign, this document is intended to serve as a model for the other people interested in applying the abstract interface approach on other software projects. (Author)

Journal ArticleDOI
28 May 1980
TL;DR: The mapping of these execution graphs upon queueing network models of the host computing environment to yield performance metric estimates for more complex and realistic processing environments is discussed.
Abstract: This paper extends previous work on development of a methodology for the prediction of the performance of computer software systems from design level specifications and continuing through implementation. The effects of synchronized behavior, such as results from data reservation in multi-thread executions of data base systems, and competition for host system resources are incorporated. The previous methodology uses hierarchical graphs to represent the execution of software on some host computer system (or on some abstract machine). Performance metrics such as response time were obtained from analysis of these graphs assuming execution of a single copy on a dedicated host. This paper discusses the mapping of these execution graphs upon queueing network models of the host computing environment to yield performance metric estimates for more complex and realistic processing environments.


Journal Article
TL;DR: The hardware configuration of the Leyden Television Analysis System and the software program, TAL, which has been developed to allow a flexible and interactive control of all the hardwired options are described.
Abstract: The Leyden Television Analysis System, LETYAS, consists of a number of hardwired modules for the processing of images at television speed. Incorporating a high degree of flexibility, LEYTAS is well suited to various fields of biomedical research. This paper described the hardware configuration of the system and the software program, TAL, which has been developed to allow a flexible and interactive control of all the hardwired options. Some examples are given to illustrate the possibilities of LEYTAS.