Browse Prior Art Database

A Layered Approach to Software Design

IP.com Disclosure Number: IPCOM000128909D
Original Publication Date: 1980-Jun-01
Included in the Prior Art Database: 2005-Sep-20
Document File: 23 page(s) / 76K

Publishing Venue

Software Patent Institute

Related People

Goldstein, I.P., D.G. Bobrow: AUTHOR [+3]

Abstract

Most computing environments use files to express alternative designs. Users record significant alternatives in files of different names; the evolution of a given alternative is recorded in files of the same name with different version numbers. In this paper, we argue that this use of files provides an inadequate structure for representing alternatives. We propose a notion of layered networks as a more suitable structure for representing an evolving design (and as an improvement over existing version control systems such as SCCS Rochkind75 ] that represent software development in terms of changes to lines of source code). Our proposal is based on experience with an experimental system and our analysis of the deficiencies of present source code control systems,

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 5% of the total text.

Page 1 of 23

THIS DOCUMENT IS AN APPROXIMATE REPRESENTATION OF THE ORIGINAL.

©; Xerox Palo Alto Research Center, June, 1980

A Layered Approach to Software Design

by Ira P. Goldstein and Daniel G. Bobrow

CSL 80-5 December 1980
Xerox Corporation 1980

Abstract: Software engineers create alternative designs for their programs, develop these designs to various degrees, compare their properties, then choose among them. Yet most software environments do not allot alternative definitions of procedures to exist simultaneously. It is our hypothesis that an explicit representation for alternative designs can substantially improve a programmer's ability to develop software. To support this hypothesis, we have implemented an experimental Personal Information Environment (PIE) that has been employed to create alternative software designs, examine their properties, then choose one as the production version. PIE is based on the use of layered networks. Software systems are described in networks; alternatives are separated by being described in different layers. We also demonstrate that this approach has additional benefits as a data structure for supporting cooperative design among team members and as a basis for integrating the development of code with its associated documentation.

CR Categories: 4.04.433.73

Key words and phrases: Design environments, source code control, program maintenance

XEROX

PALO ALTO RESEARCH CENTER 3333 Coyote Hill Road / Palo Alto / California 94304 Contents

1. Introduction.....1
1.1 The inadequacies of files
1.2 Source code control systems
1.3 Layered networks
1.4 Previous research in Artificial Intelligence
2. A design scenario.....5
2.1 Smalltalk's implementation of class Set
2.2 A layered redesign of class Set
2.3 Redesigning the l/O behavior of Sets
2.4 Representing contexts
2.5 Composite contexts
2.6 Communicating contexts
2.7 Combining contexts
2.8 Integrating software and documentation
2.9 Complex designs
3. The user interface.....19
3.1 The Smalltalk browser
3.2 The PIE browser
3.3 Alternative interfaces
3.4 Self-description
4. Remote storage.....24
4.1 Identifying existing nodes during the loading process

Xerox Corporation Page 1 Jun 01, 1980

Page 2 of 23

A Layered Approach to Software Design

4.2 Layer immutability
4.3 Retrieving public contexts
5. Implementation.....27
5.1 Class structure
5.2 Performance
5.3 Memory management
6. Conclusions.....30
7. Bibliography.....31

1 . Introduction

Most computing environments use files to express alternative designs. Users record significant alternatives in files of different names; the evolution of a given alternative is recorded in files of the same name with different version numbers. In this paper, we argue that this use of files provides an inadequate structure for representing alternatives. We propose a notion of layered networks as a more suitable structure for representing an evolving design (and as an improvement over existing version control systems such as SCCS Rochkind75...