A software architecture for a mature design automation system
by R. L. Taylor
Design automation systems are groups of programs used to aid the design of the electronic portions of computers. IBM has used such systems for over twenty-five years, and has a large number of experienced users who place severe requirements upon their design automation system. The essential requirement is that design programs must be easy to use in the way that a particular development location wishes to use them. Design programs which cannot be changed to meet local requirements are not acceptable. The software structure portion of an architecture for a design automation system which meets these requirements is described; interactive and foreground design applications are stressed. The structure involves a uniform set of services, such as command languages and terminal access methods, needed to support the design application, and a formal, two-part partitioning of the design application itself. Modularity and good interfaces are important parts of the software structure which permit a development laboratory to change the application enough for it to be easily used. These changes are the rule, not the exception. Examples of such changes are given, based upon early user experience. The applicability of this architecture to future system needs such as distributed data and distributed processing is discussed.