Software requirements analysis and writing are sciences practiced by many, mastered by surprisingly few. And yet, the payoff from achieving excellence in these areas is large. The two aspects, software requirements analysis (capture and validation) and software requirements writing, producing a Software Requirements Specification in some form, are treated as separate but related topics.
The requirements analysis content addresses the techniques used to capture, validate and gain a complete understanding of software requirements communicated at all stages of the software life cycle, regardless of development strategy, for example, Agile, Team Software Process (TSP), Rational Unified Process (RUP), Incremental or Waterfall. The specification writing content addresses in detail the conversion of individual requirements information into effective requirements specifications. This content focuses on the language and structure of requirements specification.
The requirements analysis content provides highly effective tools for both the capture of software requirements, and for validation of those requirements, in any scenario involving the receipt of software requirements from one or more stakeholders who have a need. A workshop approach is used extensively in this module, to maximize learning and practical application. Effectiveness of the techniques, collectively comprising a complete methodology, is independent of the domain of application, and independent of the specifics of the need. These techniques have been widely used with great success.
The requirements writing content provides detailed instructions on the conversion of requirements into highly effective Software Requirements Specifications, in database or document form. Issues of structure (organization of information) and the use of language (English) throughout a requirements specification are examined in considerable detail. Public domain software specification standards are overviewed and compared. High quality templates/guides, with examples, are provided for the specification of systems, software, interfaces and services, respectively. The course is strongly activity-oriented throughout. The techniques of requirements writing that are taught have been used to great effect in scenarios that include software acquisition, supply, software product definition, business analysis, software development and embedded software in diverse engineering projects, large and small.