Non-functional requirements contribute to the overall quality of software, and should therefore be a part of any development effort. However, in practice they are often considered to be too difficult to handle.
The purpose of this thesis is to gain understanding of where the nature and origin of these difficulties may lie. The focus is on a specific type of non-functional requirements: usability requirements. The basis for the thesis is two case studies, the results of which are presented herein:
The first case study describes the work environment of radio network optimizers by presenting needs regarding task performance and the use of knowledge, qualities of current tools, and the expected qualities of new technology. The original purpose of this study was to investigate how a higher level of automation in the software tools used for managing the radio network would impact the optimizers work. As a result of the ethnographical method used, the first study revealed that there was a body of user requirements that were not addressed in the tool development.
This led to the second case study, specifically examining the difficulties of managing usability requirements. The study took place over the course of two years, at a company that is a large supplier of systems for radio network control. The purpose was to seek knowledge about the requirements engineering process at the studied company, in order to better understand the environment, people and tasks involved in controlling this process. The motivation for this was to find an answer to the question of why some requirements are not addressed in the tool development, even though they are important to the tool users. It was also the ambition to identify and describe areas in the requirements engineering process that might be improved. The requirements engineering process was analyzed from a cognitive systems engineering perspective, which is suitable for analysis and design of complex, high variety systems, such as the system that controls the requirements management process.
The result from the second case study is a description of the difficulties of handling requirements, specifically usability requirements. The impacts of the process, the organization, and the culture are discussed, as is the overall task of controlling the requirements engineering process.
The study concludes that:
- The engineering production culture impacts the way non-functional (especially usability-) requirements are addressed in software development.
- Lack of knowledge of potential problems with usability requirements can be a state which is maintained by a self-reinforcing process.
- A discrepancy between where responsibility for managing requirements is, and where resources are, can cause problems where usability requirements are concerned.
It was also empirically verified that:
- A cognitive systems engineering approach can be successfully applied to this type of system, and easily incorporates cultural aspects in the analysis.