 to assist with the provision of highly resilient systems (as described In 1990 an Esprit project called RAISE (Rigorous Approach to later), however in general some level of maintenance will be re- Industrial Software Engineering) was completed, providing an ex- quired. tremely rich formal language called RSL (RAISE Specification Maintenance activities will usually start when a fault is reported language) together with a method for using RSL to complete an via a Fault Report form; the maintenance team will, in general, not initial specification, refine it and eventually produce code. RAISE consist of the staff in the development team and therefore they will is currently undergoing user trials and is beginning to gain usage be heavily dependent on good documentation in the form of speci- within the industry. There is a comprehensive set of tools provided fication and design documents, comments within the code, and as part of RAISE, including editors, simplifiers and proof related clear, comprehensive, well documented test definitions. tools. The graphics front end and built in library facilities for RSL Equally, it is very important for the maintenance team to ensure modules provides the user with a high level of support during that all documentation is kept up to date. development. Normally, a group of bug fixes will form a maintenance release. Formal methods are particularly applicable for highly resilient However if the bug is sufficiently serious then a special release may safety critical software. They are not always the natural choice for be made for that bug fix; this is generally undesirable as before any other software domains as the development team must have a release the integration testing system testing and release procedures mathematics background, and the learning time can be high. must be performed, which can require significant effort. To aid subsequent fault findings, the code corresponding to a fault 25.3.2 Structured methods report fix should be labelled as being part of that fault report fix.