Use constraint hierarchy for non-functional requirements analysis
Non-functional requirements are critical in web engineering applications, but often ignored. Usually, these are articulated as statements of objectives, as opposed to prepositional assertions. A key challenge in dealing with objectives is that there is no obvious means of deciding when they are satisfied. In effect, these objectives are never fully satisfied, but satisficed to varying degrees. Alternative design decisions need to trade-off varying degrees of satisfaction of potentially mutually contradictory non-functional requirements. The key contribution of this paper is the use of the hierarchical constraint logic programming framework [3, 6] in dealing with non-functional requirements. We show how NFRs can be formulated as soft constraints and how the machinery associated with constraint hierarchies can be used to evaluate the alternative trade-offs involved in seeking to satisfy a set of non-functional requirements that might pull in different directions.