CADES

Last updated

CADES (Computer Aided Design and Evaluation System) was a software engineering system produced to support the design and development of the VME/B Operating System for the ICL New Range - subsequently 2900 - computers.

Contents

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.

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. [1] [2] 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 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. [3] [4]

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. [5] [6] [7]

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. [8] [9]

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 (kernel, file store, etc.)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 (one of the goals of software engineering). This, coupled with a suite of tools, and the use of SDL (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" to refer to modules of code (such as procedures and macros). The word came from the Greek holo meaning whole, and was lifted from Arthur Koestler's book The 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' (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 using 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:

The following illustrates the typical MODPRO development route.

VME/B development using MODPRO tools CADES-ModPro.jpg
VME/B development using MODPRO tools

Related Research Articles

In computer science, static program analysis is the analysis of computer programs performed without executing them, in contrast with dynamic program analysis, which is performed on programs during their execution.

<span class="mw-page-title-main">Computer-aided design</span> Constructing a product by means of computer

Computer-aided design (CAD) is the use of computers to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve communications through documentation, and to create a database for manufacturing. Designs made through CAD software help protect products and inventions when used in patent applications. CAD output is often in the form of electronic files for print, machining, or other manufacturing operations. The terms computer-aided drafting (CAD) and computer-aided design and drafting (CADD) are also used.

VME is a mainframe operating system developed by the UK company International Computers Limited. Originally developed in the 1970s to drive ICL's then new 2900 Series mainframes, the operating system is now known as OpenVME incorporating a Unix subsystem, and runs on ICL Series 39 and Trimetra mainframe computers, as well as industry-standard x64 servers.

<span class="mw-page-title-main">Computer-aided manufacturing</span> Use of software to control industrial processes

Computer-aided manufacturing (CAM) also known as computer-aided modeling or computer-aided machining is the use of software to control machine tools in the manufacturing of work pieces. This is not the only definition for CAM, but it is the most common. It may also refer to the use of a computer to assist in all operations of a manufacturing plant, including planning, management, transportation and storage. Its primary purpose is to create a faster production process and components and tooling with more precise dimensions and material consistency, which in some cases, uses only the required amount of raw material, while simultaneously reducing energy consumption. CAM is now a system used in schools and lower educational purposes. CAM is a subsequent computer-aided process after computer-aided design (CAD) and sometimes computer-aided engineering (CAE), as the model generated in CAD and verified in CAE can be input into CAM software, which then controls the machine tool. CAM is used in many schools alongside CAD to create objects.

Software development is the process used to conceive, specify, design, program, document, test, and bug fix in order to create and maintain applications, frameworks, or other software components. Software development involves writing and maintaining the source code, but in a broader sense, it includes all processes from the conception of the desired software through the final manifestation, typically in a planned and structured process often overlapping with software engineering. Software development also includes research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

The following outline is provided as an overview of and topical guide to software engineering:

<span class="mw-page-title-main">IDEF</span> Family of modeling languages

IDEF, initially an abbreviation of ICAM Definition and renamed in 1999 as Integration Definition, is a family of modeling languages in the field of systems and software engineering. They cover a wide range of uses from functional modeling to data, simulation, object-oriented analysis and design, and knowledge acquisition. These definition languages were developed under funding from U.S. Air Force and, although still most commonly used by them and other military and United States Department of Defense (DoD) agencies, are in the public domain.

<span class="mw-page-title-main">International Computers Limited</span> British computer company (1968-2002)

International Computers Limited (ICL) was a British computer hardware, computer software and computer services company that operated from 1968 until 2002. It was formed through a merger of International Computers and Tabulators (ICT), English Electric Computers (EEC) and Elliott Automation in 1968. The company's most successful product line was the ICL 2900 Series range of mainframe computers.

<span class="mw-page-title-main">Computer-aided software engineering</span> Software Quality Engineering Practices

Computer-aided software engineering (CASE) was a domain of software tools used to design and implement applications. CASE tools were similar to and were partly inspired by Computer-Aided Design (CAD) tools used for designing hardware products. CASE tools were intended to help develop high-quality, defect-free, and maintainable software. CASE software was often associated with methods for the development of information systems together with automated tools that could be used in the software development process.

<span class="mw-page-title-main">Computervision</span> Early company in Computer Aided Design and Manufacturing

Computervision, Inc. (CV) was an early pioneer in Computer Aided Design and Manufacturing (CAD/CAM). Computervision was founded in 1969 by Marty Allen and Philippe Villers, and headquartered in Bedford, Massachusetts, United States. Its early products were built on a Data General Nova platform. Starting around 1975, Computervision built its own "CGP" Nova-compatible 16-bit computers with added instructions optimized for graphics applications and using its own operating system known as Computervision Graphic Operating System (CGOS). In the 1980s, Computervision rewrote their code to operate on Unix-based platforms.

The Integrated Project Support Environment (IPSE) is a set of management and technical tools to support software development, usually integrated in a coherent framework, equivalent to a Software Engineering Environment.

<span class="mw-page-title-main">BRL-CAD</span> Computer-aided design software

BRL-CAD is a constructive solid geometry (CSG) solid modeling computer-aided design (CAD) system. It includes an interactive geometry editor, ray tracing support for graphics rendering and geometric analysis, computer network distributed framebuffer support, scripting, image-processing and signal-processing tools. The entire package is distributed in source code and binary form.

Direct Machine Environment, abbreviated DME, was a mainframe environment for the ICL 2900 Series of computing systems from International Computers Limited that was developed in the 1970s. DME was more-or-less an ICL 1900 order code processor in microcode, which permitted the ICL 1900 series executive, operating systems and program libraries to operate on the ICL 2900 series.

This is an alphabetical list of articles pertaining specifically to software engineering.

<span class="mw-page-title-main">ICL 2900 Series</span> UK mainframe computer systems

The ICL 2900 Series was a range of mainframe computer systems announced by the British manufacturer ICL on 9 October 1974. The company had started development under the name "New Range" immediately on its formation in 1968. The range was not designed to be compatible with any previous machines produced by the company, nor for compatibility with any competitor's machines: rather, it was conceived as a synthetic option, combining the best ideas available from a variety of sources.

Knowledge-based engineering (KBE) is the application of knowledge-based systems technology to the domain of manufacturing design and production. The design process is inherently a knowledge-intensive activity, so a great deal of the emphasis for KBE is on the use of knowledge-based technology to support computer-aided design (CAD) however knowledge-based techniques can be applied to the entire product lifecycle.

The ICL Series 39 was a range of mainframe and minicomputer computer systems released by the UK manufacturer ICL in 1985. The original Series 39 introduced the "S3L" processors and microcodes, and a nodal architecture, which is a form of Non-Uniform Memory Access.

<span class="mw-page-title-main">Brian Warboys</span> British computer scientist

Brian Warboys, was a British 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 computer manufacturer. During the 1970s he had been the chief designer of ICL's VME operating system. He is also the author of several non-fiction books.

PragmaDev Studio is a modeling and testing software tool introduced by PragmaDev in 2002 dedicated to the specification of communicating systems. It was initially called Real Time Developer Studio or RTDS. Its primary objective was to support SDL-RT modeling technology. Since V5.0 launched on October 7, 2015 RTDS is called PragmaDev Studio, and it is organized in four independent modules: Specifier, Developer, Tester and Tracer. V5.1 launched on November 29, 2016 introduces a freemium licensing model.

The ICL Fellows scheme celebrated the highest levels of pioneering achievement in the field of computing at International Computers Limited, a British IT company.

References

  1. 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
  2. Martin Campbell-Kelly "ICL: A business and technical history" Clarendon Press, Oxford 1989
  3. D.J.Pearson "CADES - Computer-aided development and evaluation system" Computer Weekly, 1973
  4. D.J.Pearson and B.C.Warboys "Structural Modelling - A Philosophy" OSTC/IN/40 July 1970
  5. G.D.Pratten and R.A.Snowden "CADES, support for the development of complex software" EUROCOMP,1976
  6. M.A.Firth and Others "Improving a software development environment using object-oriented technology" TOOLS (8), 1992
  7. B.W.Chatters, M.M.Lehman and Others "Modelling a software evolution process" Software Process: Improvement and Practice, September 2000
  8. D.J.Pearson "The use and abuse of a software engineering system" National Computer Conference, New York 1979
  9. Don Leavitt "Development method review held useful" Computerworld June 1979

Further reading