next up previous
Next: 2.2 Why Non-Functionality is Up: 2 Position Previous: 2 Position

2.1 Dealing with Non-Functional Aspects of Software

Software systems are characterised both by their functionality (what the system does) and by their non-functionality or quality[*] (how does the system behave with respect to some observable attributes like performance, reusability, reliability, etc.). Both aspects are relevant to software development. However, non-functional issues have received little attention compared to functional ones: there are a lot of formal specification languages and formal methods to deal with functionality of systems, but non-functionality is addressed by just a few approaches, often semi-formal or informal and limited in scope.

These approaches can be classified as process-oriented or product-oriented . Process-oriented approaches [MCN92, LS95] use non-functional information to guide the development of software systems. On the other hand, product-oriented approaches deal with non-functional issues by means of stating non-functional characteristics in the components themselves, being then possible to examine software products to check if they fall within the constraints of non-functionality. In this position paper we are going to focus in the product-oriented side; however, it is important to remark that product-oriented and process-oriented techniques should be seen not as alternative but as complementary, both contributing to a comprehensive framework for dealing with non-functionality.


next up previous
Next: 2.2 Why Non-Functionality is Up: 2 Position Previous: 2 Position

Xavier Franch
Sept. 2, 1997