Inadequate requirement understanding is often the reason for failure, delay or excessive costs of many software projects. Requirements typically derive not only from user needs, but also from organizational, government and industry rules and standards. More generally, requirements derive from different stakeholder needs and are often prioritized upon a negotiation process among those stakeholders. This motivates the research on adequate modelling methods and on techniques at support of the decision-rich activities that characterize requirements engineering. Moreover, requirements are often incomplete in the early phases of software development and tend to evolve. This calls for approaches that support requirements engineering across the entire software development lifecycle.
On the other hand, the delivery of software systems occurs often under equally strong pressure, which results in underestimating the role of testing and delivering a product having quality features often below those requested by the customer. Frequently, test cases are not structured and executed in a systematic way. Their adequacy is not evaluated. The reliability of the system is not estimated and it is eventually the final user who actually validates the product, with the risk of compromising its effective usage, if not even the entire business logic supported by the software system.