CADES (Computer Aided Design and Evaluation System) was a software engineering repository system produced to support the development of the VME/B Operating System for the ICL New 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 (latterly upgraded to IDMS(X)). 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.
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 of CADES
CADES was conceived in 1970 by David Pearson, Computer Scientist 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 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 scale software 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 of CADES
In trying to control all the concurrent the developments of VME/B, each development was sub-divided for easier management. This is analogous to a book, where chapters represent significant components within VME (kernel, file store, etc.). Within each chapter the paragraphs then represented sub-systems within. Development activity of each sub-system created specific versions to manage.
These divisions and sub-divisions of VME/B were reflected in the hierarchical structure of the CADES database. In many respects this enabled the reuse of code within VME/B (attaining at least one of Software Engineering's goals). This, coupled with a suite of tools, and the use of SDL, the Software Design Language, as the development language, version history and the concept of trusted source code (that is code that has passed QA and subsequently resides within CADES filestore) improved development time whilst providing satisfactory audit trails and QA processes.
CADES adopted the term 'holon' (taken from the Greek holo mean whole, and 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!) when referring to modules of code (be they procedures, macros etc.). Arranged in the hierarchical fashion they provide a 'family tree' (for each sub-system), 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 (aka literals), user-defined types and user-defined structures.
Development using CADES
Development under CADES was achieved used a suite of tools known as MODPRO (Module Processing) which acted as an interface (or broker) 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 how to manipulate data within CADES, the application generated the required DNL (Data Navigation Language) to achieve the required results.
Development using MODPRO did not require specific knowledge of either S3 nor SCL (target language for subsequent compilation), but SDL, the Software Design Language: an abstraction above the former two. Which when coupled with the enhance-editor EDSDL (Edit SDL) interacted with CADES to manage development, or re-work. Then, again with information from CADES, when used with MODPRO tool EPETC (aka Environmental Processor or EP etc.) 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 (CADES Holon Environment Details),
- Interaction with CADES using DIL (Database Interface Language, used to produce DNL),
- Report production, using CRP (CADES Report Producer),
- 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.
- B.C.Warboys "The IPSE 2.5 Project: Process Modelling as a basis for a support environment" International Conference on System Development Environments and Factories, May 1989, Berlin
- Martin Campbell-Kelly "ICL: A business and technical history" Clarendon Press, Oxford 1989
- D.J.Pearson "CADES - Computer-aided development and evaluation system" Computer Weekly, 1973
- D.J.Pearson and B.C.Warboys "Structural Modelling - A Philosophy" OSTC/IN/40 July 1970
- G.D.Pratten and R.A.Snowden "CADES, support for the development of complex software" EUROCOMP,1976
- M.A.Firth and Others "Improving a software development environment using object-oriented technology" TOOLS (8), 1992
- B.W.Chatters, M.M.Lehman and Others "Modelling a software evolution process" Software Process: Improvement and Practice, September 2000
- D.J.Pearson "The use and abuse of a software engineering system" National Computer Conference, New York 1979
- Don Leavitt "Development method review held useful" Computerworld June 1979
- B.C. Warboys (25 January 1988). "Extrapolation of lessons from CADES to the present day". IEE Colloquium on Industrial Impact of Software Engineering: 3.
- R. W. McGuffin, A.E. Elliston, B.R. Tranter, P.N. Westmacott (September 1979). "CADES - software engineering in practice". IEEE Proceedings 4th International Conference on Software Engineering, Munich, Germany.
- B. Kitchenham (May 1982). "System Evolution Dynamics of VME/B". ICL Technical Journal: 42–57.
- B. W. Chatters, M. M. Lehman, J. F. Ramil, P. Wernick (2000). "Modelling a software evolution process: a long-term case study". Software Process: Improvement and Practice 5 (2-3): 91–102. doi:10.1002/1099-1670(200006/09)5:2/3<91::AID-SPIP123>3.0.CO;2-L.
- R.A Snowden (May 1990). "An Introduction To The IPSE 2.5 Project". ICL Technical Journal 6 (3).
- B.C. Warboys, P.Veasey (May 1990). "Twenty Years With Support Environments". ICL Technical Journal 6 (3).