SMARTRe requirements: writing reusable requirements

Systems analysis, or as it is increasingly known as today, requirements engineering, is a time-consuming, expensive, but critical phase in software (and system) development. At the same time, demand for software continues to exceed supply, and software reuse is now high on the agenda of the computing industry. The higher up the software development lifecycle that reuse takes place, the greater the payoff, but early reuse has proved difficult. This is relieved in part if intra-domain reuse is mastered before attempting inter-domain reuse. This paper proposes a classification of reusable intra-domain requirements components. The paper then offers suggestions for the writing of a requirements 'component' and describes some practical techniques for writing reusable requirements. Examples and case studies are taken from the domain of spacecraft mission planning systems. In specifying software requirements, we define SMARTRe to be: Specific, Measurable, Attainable, Realisable, Traceable and Reusable.