Software process improvement : an assessment of requirement engineering process for improving software development in selected South Africa development firms
Abstract
Requirement engineering (RE) is a crucial step towards software process improvement. It is the first and critical phase in software development projects, and the main aim of RE process is the gathering of requirements, in order to meet system owners and system users specifications. More also, It involves a set of activities like system feasibility study, elicitation, analysis, negotiation, verification, validation, documentation and management of the requirements. RE process uses several methods and techniques to establish user and systems requirements. These techniques and methods are the tools that requirement engineers apply to gather the requirements. Furthermore, RE engineers face numerous problems in gathering these requirements. These limitations are due to the lack of knowledge and awareness of the results that can be obtained by
using these techniques, as well as the ability of RE engineers to select appropriate techniques during RE process. Furthermore, this inability greatly affects the quality of software, and increases the production cost of software projects. In this thesis, we looked at the use of RE processes during software development projects, and focused on software development firms in South Africa. We made use of experimental case survey, whereby we used questionnaires in the gathering of our, data and further presented our results with the aid of bar and pie charts. More also, we embarked on the analysis and comparism of different techniques, and tools used during for RE process. This provided the platform for requirements engineers to know the characteristics of these techniques, the effectiveness of every technique and also, the popularity of specific techniques. Furthermore, it is important to know that selecting a particular technique depends on the type of application to develop, the years of experience of RE engineers as well as educational background of RE engineers. Based on our findings, we can also deduce that the analysis made in this thesis, can be used for the future development of new techniques in RE and subsequently, improving the level of software development process in South Africa and the world at large.