CADES was a software engineering repository system produced to support the development of the VME/BOperating System for the ICLNew Range - subsequently 2900 - computers. From its earliest days, VME/B was developed with the aid of CADES, which was built for the purpose using an underlying IDMS database. CADES was not merely a version control system for code modules: it was intended to manage all aspects of the software lifecycle from requirements capture through to field maintenance. It was the design of CADES that paved the way for the Alvey Project in IPSE and Process Control Engines. Because CADES was used for more than 20 years throughout the development of a large software engineering project, the data collected has been used as input to a number of studies of software evolution.
Early history
CADES was conceived in 1970 by David Pearson and Brian Warboys when working for ICL's New Range Operating System Technology Centre, OSTECH, in Kidsgrove. Pearson, a theoretical physicist by training, had become a computer simulation specialist and joined ICL in 1968 after working in finite-element modelling at Cambridge and simulation research at Imperial College. Warboys had been chief architect for the ICL System 4 multi-access operating system, Multijob. ICL's commitment to large scalesoftware development for the 2900 Series of computers provided the basis for the Pearson and Warboys early work on a new software development environment which would address the issues of designer/programmer productivity, design integrity, evaluation and testing, version control and systems regression. In designing the initial architecture of the CADES environment, Pearson in particular looked to parallels with the leading hardware computer-aided design systems of the time, even attempting the use of graphics in the design process. The CADES design approach, called Structural Modelling, was rigidly data-driven and hierarchical, and expressed in a formal design language, SDL. Design specifications written in SDL were processed by the Design Analyser, before being input to the CADES Product Database, a design and implementation database supporting its own query language and forming the kernel of the Product Information System. The intention was that these designs could be evaluated/simulated using the Animator, and S3 implementation code automatically generated from them using the Environment Processor. Build generation and version control was also based on the Product Database, resulting in a highly disciplined approach to new system builds. System Regression was therefore controlled from a very early stage in the software life-cycle.
Fundamentals
In order to control the development of VME/B, each development was sub-divided for easier management. The structure was hierarchic, with each significant components of VME divided into sub-systems. Development activity on each sub-system created a sequence of versions. These divisions and sub-divisions of VME/B were reflected in the hierarchical structure of the CADES database. This enabled the reuse of code within VME/B. This, coupled with a suite of tools, and the use of SDL as the development language, version history and the concept of source code improved development time whilst providing satisfactory audit trails and QA processes. CADES adopted the term "holon" to refer to modules of code. The word came from the Greek meaning whole, and was lifted from Arthur Koestler's book 'Ghost in the Machine'. Pearson always claimed that he formulated the architecture of CADES while studying Koestler's book on a beach in Tunisia. Arranged in a hierarchy, holons provide a 'family tree', utilising parent/child relationships. Holons also maintained attributes of interaction, enabling one Holon to interact with other Holons, thus enabling more modular development and facilitating reuse. In a similar fashion CADES also retained information with regard to constant values, user-defined types and user-defined structures.
Development using CADES
Development under CADES was achieved using a suite of tools known as MODPRO which acted as an interface between developer and CADES. These tools enabled the developer to focus more on development that administrative, QA or SCM tasks. It was not necessary to know to manipulate data within CADES, the application generated the required DNL to achieve the required results. Development using MODPRO did not require specific knowledge of either S3 nor SCL, but SDL, the Software Design Language: an abstraction above the former two. Which when coupled with the enhance-editor EDSDL interacted with CADES to manage development, or re-work. Then, again with information from CADES, when used with MODPRO tool EPETC enabled the resultant file to be correctly targeted for S3 or SCL compilation. Subsequent tools within the suite facilitated various steps within development, such as:
Detailed Holon information using CHED,
Interaction with CADES using DIL,
Report production, using CRP,
Transfer valid files/code in to or extract out of the secure repository, namely CADES, using XFER.
The following illustrates the typical MODPRO development route.