CADES
Encyclopedia
CADES 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.
It was the design of CADES that paved the way for the Alvey
Project in IPSE (Integrated Project Support Environments) 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.
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.
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
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.
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
: 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:
The following illustrates the typical MODPRO development route.
From its earliest days, VME/B was developed with the aid of CADES, which was built for the purpose using an underlying IDMS
IDMS
IDMS is primarily a network database management system for mainframes. It was first developed at B.F. Goodrich and later marketed by Cullinane Database Systems...
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.
It was the design of CADES that paved the way for the Alvey
Alvey
The Alvey Programme was a British government sponsored research program in information technology that ran from 1983 to 1987. The program was a reaction to the Japanese Fifth generation computer project.Focus areas for the Alvey Programme included:...
Project in IPSE (Integrated Project Support Environments) 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 of CADES
CADES was conceived in 1970 by David PearsonDavid Pearson
David Gene Pearson is a former American stock car racer from Spartanburg, South Carolina. Pearson began his NASCAR career in 1960 and ended his first season by winning the 1960 NASCAR Rookie of the Year award. He won three championships every year he ran the full schedule in NASCAR's Grand...
and Brian Warboys
Brian Warboys
Brian Warboys , was Professor of Software Engineering at the University of Manchester from 1985 until he retired in September 2007. He was subsequently appointed as Professor Emeritus and continues to undertake research. Before joining the university he had worked for ICL, then the UK's largest...
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
SDL
SDL may refer to:In computing:* Simple Declarative Language, a simple universal language for describing typed data in lists, maps and trees* Specification and Description Language, an ITU-specified system description 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
Holo
Holo may refer to:* Holo-, a root of Greek origin meaning "whole", "all" or "total" in English* Hoklo people , a Han ethnic group found throughout Asia whose traditional homeland are in Fujian, China...
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 SCMSoftware configuration management
In software engineering, software configuration management is the task of tracking and controlling changes in the software. Configuration management practices include revision control and the establishment of baselines....
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
S3 (programming language)
S3 is a structured, imperative high-level computer programming language. It was developed by the UK company International Computers Limited for its 2900 Series mainframes. It is a system programming language based on ALGOL 68 but with data types and operators aligned to those offered by the 2900...
nor SCL (target language for subsequent compilation), but SDL
SDL
SDL may refer to:In computing:* Simple Declarative Language, a simple universal language for describing typed data in lists, maps and trees* Specification and Description Language, an ITU-specified system description 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
S3 (programming language)
S3 is a structured, imperative high-level computer programming language. It was developed by the UK company International Computers Limited for its 2900 Series mainframes. It is a system programming language based on ALGOL 68 but with data types and operators aligned to those offered by the 2900...
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.
Further reading
- D.J. Pearson and B.C. Warboys "Stuctural Modelling - A Philosophy" OSTC/IN/40, 31 July 1970
- D.J.Pearson "CADES - Computer-aided development and evaluation system" Computer Weekly, 1973
- D.J.Pearson "The use and abuse of a software engineering system" National Computer Conference, 1979