MARION WELLS Chelmer Institute of Higher Education
Experience with a pilot Computer-Aided Software Design
The paper describes the development of an interactive System is also described. Computer-Aided Software Design System. The system checks entered software design decisions for DEFINITION OF REQUIREMENTS correctness and provides fast visual feedback for software designers. It also generates all software Requirements for a Computer-Aided Software Design design documentation. System were defined following a thorough analysis of Kingdom software design methodology. Several major features of the methodology were singled INTRODUCTION out as the most relevant. (1) The methodology imposes certain constraints on A methodology for systematic design of engineering the software design process. The aims of these software was described at the 1st International constraints are: Conference on Engineering software in Southampton. -tO control the complexity of software design tasks, The benefits which have been obtained by the use ofthis and methodology in an industrial environment are -to control the complexity of software modules. numerous 2. The major benefits are summarised below. (2) Within these constraints considerable freedom is left (1) The occurrence of human errors which cause to software designers to exercise their ingenuity. No software faults is minimized. This cuts dramatically attempt is made to reduce software design to the time normally required for the removal of unskilled work. software bugs and thus reduces software (3) The control of the complexity of tasks is achieved by development costs. the following means: (2) The time required for understanding, testing or -software design process is decomposed into a modifying software by a person other than the one number of simple steps, who has written the program is considerably -each step is defined in terms of its input reduced. This reduces software maintenance costs. documentation, the set of activities which are to be (3) The reliability of software is much higher. For performed and its output documentation, example 3, one can find evidence that by the -a desirable sequence of design steps is determined, strict application of systematic methods the number -the transition from one step to the next is allowed of residual software faults can be reduced from 1 only after the completed work is checked in fault per 100 lines of statements to 1 fault in 10,000 accordance with predetermined criteria and lines of statements. established to be correct. (4) The scheduling of software development tasks, (4) The control of the complexity ofsoftware modules is estimation of resources required for the software achieved as follows: development and progress control are greatly -each module performs a clearly defined function; facilitated. Thus the costs of software development the independence of one module from all others is management are cut. maximised, (5) The time required to train and to introduce a new -the interface of each module is limited to a certain member into a software development team is much number of variables, shorter. This reduces personnel training costs. -the number of constituent modules (or statements) (6) Finally, organizations which apply similar methods in each module is kept within prescribed bounds, have built, over a period of years, a useful library of -the choice of control structures is limited, standard software modules. The use of such -the format of design documentation is such that modules in new projects further reduces the cost of the independence of one page from other pages is software development. maximised. This paper describes how such a systematic software A careful analysis of these features showed that design methodology has been used as a basis for the software could be designed by an interactive man- development of computer aids for software development. machine system. In such a system the man would make the design decisions whilst the machine would * Paper taken from the proceedings of the 2nd International Conferenceand Exhibitionon EngineeringSoftware,April 24th-26th (1) provide the required'design information in a proper 1981. format whenever requested, 0141-1195/82/040032-0252.00 ~) 1982 CML Publications 32 ,Ado. Eng. Software, 1982, Vol. 4, No. 1 (2) ensure that design tasks were performed correctly command-driven. Its design is based on the dialogue and in a correct order, described in the previous section of this paper. (3) ensure that the complexity of software modules was Correctness checking facilities are at present limited. within specified limits, The system checks, for example, that: (1) all input (4) produce all required design documentation. variables to constituent modules are either inputs to the In order to depict as clearly as possible how a computer parent module or outputs from another constituent would be used as an aid to software designers, typical module (i.e. internal variables); (2) all output variables man-machine dialogues were devised. One such dialogue, from constituent modules are either outputs from the which describes the design of a software module, is shown parent module or inputs to other constituent modules (i.e. below: internal variables); (3) only permissible control structures are used; (4) no module has more than 10 constituent Man Machine modules. Design guidelines are displayed for the user 1 displays format for module whenever requested. Error messages are comprehensive. specification Since the format of design documentation is displayed on 2 enters module specification 3 displays and checks entered the screen before each design step, design is carried out by data means of a "form filling" process. 4 displays either an error The pilot system has been implemented in BASIC on a message of format for data P E T microcomputer and is currently used for structure design (1) design of simple programs in BASIC, 5 enters data structure details 6 displays and checks data (2) teaching of systematic design methods to beginners structure and experienced programmers. 7 displays either an error Although the facilities implemented at present are message or format for module rather modest, the response of users has been very decomposition diagram 8 enters module decomposition positive. Students are particularly delighted that the diagram system has eliminated the need to produce manually a 9 displays and checks diagram rather extensive design documentation. Teachers, on the 10 displays either an error other hand, are now free from the tedious task of checking message or format for module students' work for correctness. control structure 11 enters module control However, a systematic evaluation of the pilot system structure has yet to be undertaken and, hence, the fmal judgment of 12 displays and checks control its success must wait until this has been completed. structure (e.g. as a flow chart) 13 displays an error message or 14 prints module specification, data structures, decomposition F U T U R E RESEARCH diagram and control structure. Resources have been obtained to continue with this research with a view to developing a full-scale computer- At any time software designers can interrupt the design aided software design system on the DEC 20 machine. and return to a previously designed module and make any A raster-scan graphics terminal will be used as a m a n - modifications. Designers are not, however, allowed to machine interface. Other features of the new system will miss a prescribed design step, e.g. to design a flow chart include: command language driven dialogue, before a module specification is satisfactorily completed. comprehensive correctness checking facilities and a code generator. A PILOT SCHEME Based on the requirements definition a formal specification for the Computer-Aided Software Design REFERENCES System was formulated. 1 Rzevski, G., (1979), On the Design of Engineering Software, in R. A. However, before a proper design began the decision Adey (ed.), Engineering Software, pp. 428-440, Penteeh Press. was made to develop a simple pilot system which would 2 Rzevski, G., Woolman, D. and Trafford, D. B., (1980), Validation of Design Methodology, Design Studies, 1, 4. test the feasibility of the project. 3 Yourdon, E. and Constantine, L. L., (1979), Structured Design: For reasons of simplicity the pilot system has a Fundamentals of a Discipline of Computer Program and Systems conversational man-machine interface rather than Design, Prentice-Hall.