They must be resilient, reliable, maintainable and usable, by all 25.2.2 Specification classes of people. This stage answers the question "What must the system do in order What all of this means is that there are few software and software to satisfy the users' real needs?", and is normally carried out by a engineering technologies which do not apply to the telecommunica- relatively small number of people in close consultation with the tions world. requirements specifiers. In general, implementation considerations are ignored unless they are part of the user's requirements (for example, the user may insist Stages in the software lifecycle that the software must run on a particular chip). The main aims of this stage are to provide a modular, clear, There are a number of generally recognised stages in software correct, complete, and usually implementation free, definition of developments, known as the software lifecycle, as follows: what the software must do. This then forms the basis for subsequent design and implementation by the complete software team, many of 1. Requirements capture and analysis. whom will not have (or need) a full understanding of all of the users' 2. Specification. system requirements. 3. Design. To ensure conformance to the user's requirements there should be 4. Code and unit test. frequent discussions, walk throughs and reviews with the user. 5. Integration. Where appropriate, prototyping, modelling and simulation tech- 6. System testing. niques should be used to ensure that the resultant software provides 7. Delivery and installation. appropriate and effective facilities for the end user. It is also import- 8. Acceptance testing. ant that requirements traceability is provided via cross referencing 9. Maintenance and enhancements back to labelled requirements wherever possible. The name of the stage and its importance will vary according to 25.2.3 Design the methods and techniques used to develop the software, as ex- plained later. This stage answers the question "How will the system be im- 