Mazhar Sadiq MSE-2007-14, pp. 68. TEK/avd. för programvaruteknik, 2007.
Requirement engineering is the most significant part of the software development life cycle. Until now great emphasis has been put on the maturity of the functional requirements. But with the passage of time it reveals that the success of software development does not only pertain to the functional requirements rather non-functional requirements should also be taken into consideration. Among the non-functional requirements usability, performance, safety and security are considered important. Further it reveals that there exist so many modeling and testing techniques for functional requirements but the area of non-functional requirements is still deprived off. This is mainly due to difficulty, diversity in nature and hard to express for being domain-specific. Hence emphasis is put to the development of these models or testing techniques. While developing these models or testing techniques it is found that all the four areas of usability, performance, safety and security are not only closely related but rather depend on one another up to some extent. This meant that they all should be tackled while keeping into consideration of the related from among them. For the purpose it seemed necessary to collect in one artefact all the available modeling and testing techniques related to the four core areas of non-functional requirements may be collected and compared. This work at first provides an understanding of the problem domain while describing aspects of the non-functional requirements. Then possibly the available related models or testing techniques are collected and discussed. Finally in the last they are compared with respect to diversified aspects.