Automated assistance for software requirements definition

Donaldine E. Samson, James Dean Palmer · 1989

The relationship of complete, correct and consistent software requirements to a successful software development project has been receiving much attention in software productivity research. The impact of poorly defined and volatile requirements, as well as the higher cost of fixing requirements late in the life cycle, justifies this intensified focus. Numerous research contributions center on improving and formalizing software requirements specification, which is derived from informal requirements definition provided by the user. However formalizing the specification without first analyzing the requirements definition for potential problems may be premature. It is important to identify and manage problems as early as possible to avoid making possibly erroneous assumptions or inserting false precision. Therefore, the focus of this research is on improving the software requirements definition by analysing it for potential problems. This research examines two main contributors to poor requirements, including the inherently unstructured and ill-defined nature of software requirements, and a lack of critical thinking skills held by analysts and users. The outcome of identifying these sources has resulted in the design and development of a knowledge-based requirements system (KBRS) to analyze the substance of a requirements definition, identifying problems in four areas: imprecision, conflict, quality goal clarification and domain knowledge. Each requirement submitted for analysis is manually classified according to a requirements taxonomy developed as part of this research and loaded into the KBRS. The outcome of an analysis session is the identification of requirements with continuing problems, which should be clarified as early as possible to reduce requirements volatility. A demonstration of concept is provided with two sets of software requirements. The first is for a hypothetical project, and was developed to exercise all features of the KBRS. The second set was extracted from a larger set of requirements which define the software for an actual, mature system. The problems in the actual system which were identified by the KBRS are real problems which management could have avoided by having them identified earlier in the development life cycle. The objective of this research, which was to provide automated assistance to identifying potential problems with software requirements early in the development life cycle, was achieved.

Read the paper · More papers on PaperTik