Browse Prior Art Database

Observations on the Evolution of a Software System Disclosure Number: IPCOM000131499D
Original Publication Date: 1982-Jun-01
Included in the Prior Art Database: 2005-Nov-11
Document File: 10 page(s) / 38K

Publishing Venue

Software Patent Institute

Related People

Eric Allman: AUTHOR [+4]


University of California, Berkeley

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

Page 1 of 10


This record contains textual material that is copyright ©; 1982 by the Institute of Electrical and Electronics Engineers, Inc. All rights reserved. Contact the IEEE Computer Society (714-821-8380) for copies of the complete work that was the source of this textual material and for all use beyond that as a record from the SPI Database.

Observations on the Evolution of a Software System

Eric Allman and Michael Stonebraker,

University of California, Berkeley

A 75, 000-line program that evolved over several years into a functional prototype has reached a level of complexity that taxes the university environment to its limit.

The Ingres data base systems 2 encompasses about 75,000 lines of code in the programming language "C"2 and runs on top of the Unix operating system. Over the past six years, Ingres has evolved into a functionally come plete and usable prototype. Development required 25 to 30 programmer- years by a total of 19 people, and the system is now in use at over 125 sites around the world.

In this article we will attempt to answer a question that we are often asked: "How did you manage to get a large software system to work in a university environment?" A chronology of the project and the major technical mistakes have been reported elsewhere,2 so we will concentrate on the software engineering process and what we have learned about it. Although our experience is in a research environment, we believe that many of these lessons can be applied to most software development efforts.


The Ingres experience can be divided into three periods that can be examined individually.

Initial design and implementation

(1974-1976). The initial goal was to build a functional relational data teas, system. During this period we wrote about 60,000 lines of code. The attitude of the design team was to "make the system work" regardless of the methods used.

The project developed out of a graduate seminar; hence, the initial programmers were all graduate students. They were organized as a chief programmer team of four programmers plus a lead programmer. The project directors, Michael Stonebraker and Eugene Wong, acted largely as "creative consultants. " Their role was to define the major structure of the system and determine general strategy. Although they were the final arbitrators on

3 technical matters, most problems were handled by the chief programmer.

The role of the chief programmer was first to write code and second to arbitrate conflicts and supervise global design. Since the PDP-I I computer on which implementation began had a 64K-byte address space limitation, Inares clearly had to run as several Unix processes. The division of the implementation effort among the programmers followed process boundaries. Hence, for the most

IEEE Computer Society, Jun 01, 1982 Page 1 IEEE Computer Volume 15 Number 6, Pages 27-32

Page 2 of 10

Observations on...