Product-Line Models to Address Requirements Uncertainty, Volatility and Risk
in: Relating Software Requirements and Architectures, Ivan Mistrik, John Grundy, Patricia Lago, Jon Hall, Paris Avgeriou, eds. Springer, 2011
Requirements uncertainty refers to changes that occur to requirements during the development of software. In complex projects, this leads to task uncertainty, with engineers either under- or over-engineering the design. We present a proposed commitment uncertainty approach in which linguistic and domain-specific indicators are used to prompt for the documentation of perceived uncertainty. We provide structure and advice on the development process so that engineers have a clear concept of progress that can be made at reduced technical risk. Our contribution is in the evaluation of a proposed technique of this form in the engine control domain, showing that the technique is able to suggest design approaches and that the suggested flexibility does accommodate subsequent changes to the requirements. The aim is not to replace the process of creating a suitable architecture, but instead to provide a framework that emphasises constructive design action.