Pattern-based refinement of unbounded requirements
Summary
There are several requirement types that have been recognized by requirements engineering. We propose a new type of requirements - unbounded requirements. Unbounded requirements are a special type of functional requirements, which can only be partially satisfied. We have provided vast evidence of their existence; We illustrated the notion on examples retrieved from various applications such as Spotify, PopcornTime, Nimble, Salesforce, OneDrive for Business, Firefox, Skype and PicCollage. This notion has been further evaluated by interviewing field experts and their existence has been confirmed. While there is a small amount of awareness about unbounded requirements in practice, these interviews uncovered that unbounded requirements are hard to implement and address as they are considered to be standard requirements. By addressing unbounded requirements we can uncover further criteria for their satisfaction that might otherwise have been neglected. Unbounded requirements are hard to be satisfied fully. Therefore, we present a model-driven method for unbounded requirements. The modeling technique introduces a source construct that allows to feed a software system with necessary expertise or data. The modeling approach allows for multisourcing - composing various sources together. Opinions on the applicability of this model-driven method have been gathered from potential future users. The modeling technique was found to be useful, however, can remain unadopted amid the coexistence with other more known techniques. We demonstrate the applicability and capabilities of the modeling technique by modeling context and solution in the patterns for refinement of unbounded requirements. Refinement patterns facilitate the refinement process of unbounded requirements and reuse the knowledge in regards to the refinement the complex requirements like the unbounded. We defined atomic patterns - alternative and complementary source composition, and crowdsourcer. The three patterns are basic building blocks when modeling source compositions. We also defined aspect patterns that address a unique functionality of an unbounded requirement. We applied these aspect patterns on a testing sample of 36 requirements to test their applicability and effectiveness. We were able to model 80% of cases by using the patterns.