is case the cost of and the customer. maintenance will be high and the software will degrade rapidly, 2. As an additional set of tests to exercise the complete system quickly needing replacement. from the viewpoint of the customer. 25.2.4 Code and unit test 25.2.7 Delivery and installation Although tools are appearing on the market which will allow limited The system will be reviewed and signed off by the software team code generation from design specifications, currently coding and before delivery. At this stage, the system must be baselined to ensure testing is still a relatively major part of a software lifecycle. The aim that: of the code and unit test phase is to provide clean, modular, correct pieces of code, with a complete set of associated tests. The code 1. All specification and design documentation is up to date. pieces will then be assembled as necessary to provide the function- The software and hardware comprising the delivered system is ality required of the complete system. The following are some documented, and that version of the system may be rebuilt if general guidelines which should be observed during this phase: necessary. All user documentation is up to date. Ensure that a detailed design is available; many potential bugs will have been corrected, and hence the coding and testing time A release of a system typically will consist of: will be reduced. 2. Ensure that coding conventions are available; any code pro- 1. A delivery schedule. duced may have a lifetime of several years, and therefore must 2. The hardware component, if applicable. be maintainable. 3. A set of tapes containing the software. Ensure that code is simple, easy to read, well commented, and Installation instructions, which will include the version number does not use clever tricks (e.g. self modifications) as this will for any external hardware of software required. enhance the resilience of the code to change. 5. Installation test and verification procedures, if applicable. Do not rely on special idiosyncrasies of a particu