Higher Order Software—A Methodology for Defining Software

  title={Higher Order Software\&\#8212;A Methodology for Defining Software},
  author={M. Hamilton and S. Zeldin},
  journal={IEEE Transactions on Software Engineering},
The key to software reliability is to design, develop, and manage software with a formalized methodology which can be used by computer scientists and applications engineers to describe and communicate interfaces between systems. These interfaces include: software to software; software to other systems; software to management; as well as discipline to discipline within the complete software development process. The formal methodology of Higher Order Software (HOS), specifically aimed toward… Expand
Methods and tools for system design
A number of different methods and tools have been established to bring some order to the early processes of the software engineering cycle, but they arise from different areas of computing and seek to impose different degrees of discipline on the user. Expand
Verification of HOS Software Specification by a Hierarchical Software Understanding Approach
The formal functional specification mechanism based on the first-order prediate calculus is introduced, and semantic synthesis rules concerning HOS's primitive control structures OR, INCLUDE, and JOIN and cocontrol structures COOR, COJOIN, and COINCLUde are given. Expand
Special Feature A Survey of Methods of Achieving Reliable Software
As organizations become more dependent on computers, they become more sensitive to computer system failures and increasing emphasis is being placed by users and vendors on the reliability of the total system, and particularly the system software. Expand
SAM—a computer aided design tool for specifying and analyzing modular, heirarchical systems
This paper presents SAM, a computer aided design tool for specifying and analyzing modular, hierarchical systems. SAM is based on Discrete Event System Specification (DEVS) and it uses genericExpand
A Graphic Tool for Generating Ada Language Specifications.
This thesis is to present the current state of software specification techniques and to propose improvements in one component of these techniques, the user interface, with particular emphasis on their user interfaces. Expand
A Survey of Program Design Languages (PDLs)
The desired characteristics of such a design tool are discussed and a representative sample of existing program design languages are surveyed and a new POL Environmen~ is proposed for consideration. Expand
Design Methodology for Embedded Systems.
This contract has explored the multidimensional problem of the development of embedded software systems and identified problems as: Communication; Principles and practices; Technology, and Compiler (Ada) language structure and capability. Expand
The Software Development System
  • C. Davis, C. Vick
  • Engineering, Computer Science
  • IEEE Transactions on Software Engineering
  • 1977
The Software Development System (SDS) is a methodology addressing the problems involved in the development of software for ballistic missile defense systems, large real-time, automated systems with a requirement for high reliability. Expand
A Framework for Discipline in Programming
  • P. Hsia, F. Petry
  • Computer Science
  • IEEE Transactions on Software Engineering
  • 1980
The framework integrated in this work integrates the notions of top-down design, stepwise refinement, structured flowcharting, test case description, and analysis in the context of a framework for systematically developing and concurrently documenting programs. Expand
The evolution of specification techniques
The specifications for aSoftware system may be thought of as a description of what a software system does, as opposed to how it does it, and may contain information on how the system is to be integrated with other systems in an execution environment. Expand


BLISS: a language for systems programming
A language, BLISS, is described. This language is designed so as to be especially suitable for use in writing production software systems for a specific machine (the PDP-10): compilers, operatingExpand
A tool for enforcing system structure
Reliability considerations had little influence in the design of the first generation of computers. Notable exceptions being, on the hardware side, some circuitry incorporated into the UNIVAC I forExpand
Higher order software techniques applied to a space shuttle prototype program
HOS concepts are now being applied to a prototype Shuttle flight software system, providing software with its own meta-software and its own universal system that can also communicate these systems to others. Expand
The "single-assignment" approach to parallel processing
The system to be described here automatically detects opportunities for parallel processing in programs written in a specific, high-level language that consists of many independent, asynchronous processors, all active at once in processing a single program. Expand
A technique for software module specification with examples
This paper presents an approach to writing specifications for parts of software systems sufficiently precise and complete that other pieces of software can be written to interact with the piece specified without additional information. Expand
On the criteria to be used in decomposing systems into modules
This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of aExpand
On a 'Buzzword': Hierarchical Structure
This paper discusses the use of the term "hierarchically structured" to describe the design of operating systems and attempts to provide an understanding of the different meanings of this term. Expand
On Computable Numbers, with an Application to the Entscheidungsproblem
1. Computing machines. 2. Definitions. Automatic machines. Computing machines. Circle and circle-free numbers. Computable sequences and numbers. 3. Examples of computing machines. 4. AbbreviatedExpand
DAIS avionic software development techniques