BSc., MSc., DipEd, PhD.
balani[at]ics[dot]uci[dot]edu
Requirements Engineering Projects
The increase in software complexity led to the realisation that individuals cannot develop software in isolation and hence introduced the need for software development groups. Requirements engineering (RE) is one of many processes within the software development cycle and is concerned with developing and managing software specification. It is generally accepted that the ultimate quality of the delivered software depends on the requirements upon which the system has been built. For example, the Standish group (1999) found that establishing requirements is one of the key project success factors.
Qualitative Systematic Approach to Requirement Analysis (QSARA)
Stakeholders’ understanding of what is expected of a system evolves with the continuous review and revision of the requirements document. Problems arise when no record is kept of their understanding over long periods of time and when an attempt is made to share that understanding. This paper presents the steps of a Qualitative Systematic Approach to Requirements Analysis (QSARA). The approach has been designed to assist in the analysis of unstructured requirements documents expressed in a combination of natural language text, tables and diagrams. Applying the proposed approach will produce a graphical representation of system features. QSARA’s contributions include assisting stakeholders in capturing, modifying and sharing their understanding of documented requirements. It also facilitates the detection of errors and inter-dependency of features. Three seperate studies were conducted to validate the approach. The first was conducted by myself to identify possible chalenges that users can face when applying the approach to a real requirements document. The second study was conducted in collaboration with Keith Edwards (University of Western Ontario, Canada). Evidence collected from seventy individuals, who participated in this experiment, supports research hypotheses that QSARA assists analysts to construct a more comprehensive description of a system feature and identify interdependencies. The third and final experiment was conducted in the University of Technology, Sydney. The experiment was repeated over a period of three days to invertsgate whether results were repeatable. The data gathered from this expriment is currently being analysed.
Research Artefacts’ Validation (RAV) Framework
Practitioners often resist the diverse assortment of research artefacts that are put forward to overcome the problems they face when developing requirements. This resistance often leads to the under-utilisation of artefacts despite their ability to reduce cost through software process improvement. There is a waste of resources (e.g. time and money) during development either as a consequence of practitioners’ resistance or the inability of these artefacts to demonstrably meet practitioners’ needs. I propose a three-layered evaluation framework consisting of several sets of criteria, standards and guidelines. The purpose of the framework is to provide a means to validate the diverse research artefacts produced thereby increasing the likelihood of its uptake by practitioners and academics alike. The proposed framework is presented in the context of work within the field of benchmarking. It is currently made up of a combination of existing criteria, categorised into steps and grouped within one of three layers. The purpose of the framework is to assist researchers establish that a method, for example, accomplishes what practitioners really require. The framework also provides a means to formalise an artefact’s validation process.
Research is ongoing to further develop the framework and I welcome collaboration with interested parties.
A Framework for the Detection and Evaluation of Incompleteness in User Requirements Documents
I explored the problem of incompleteness within the User Requirement Document (URD) during my PhD study. The URD is based on user needs and consists of descriptions expressed through natural language statements, diagrams and other informal notations. It is incomplete when captured information is found lacking. Findings derived from the review of literature and survey of current practices relating to the problem of incompleteness of the URD led to the research hypothesis. The hypothesis states that the level of completeness can be improved by decomposing the URD into descriptions and analysing these descriptions to detect exclusion. The thesis proposes that a description can fall into one of three categories, namely: complete (totally included), totally excluded, or partially excluded from the URD. Category definitions are presented and can be used to help identify incompleteness by defining what should be looked for by the requirement engineer.
Further investigation of existing literature led to the conclusion that the problem of partially excluded descriptions is not well defined. As such, research focussed on this category of incompleteness and examples were extracted from a URD (referred to as URD-0). Partially excluded (partially complete) descriptions are classified as desired, undesired, or non-essential based on the desirability of the excluded requirements. Classifying excluded requirements can assist the requirement engineer to decide on the best course of action to take.
A detection scheme (to detect partial exclusion) and evaluation scheme (to evaluate the desirability of excluded requirements) are proposed in this thesis. The schemes are used to analyse URD-0 that describes an existing system. A semi-automated prototype of these schemes is also presented and used to document the analysis of three URDs (referred to as URD-0, URD-1 and URD-2) used as case studies.
The proposed approach to the problem provides a means to achieve a higher level of completeness at an early stage of requirement engineering. Using the proposed schemes can mean that less iteration is necessary to refine requirements. The schemes can reduce the amount of time, effort and money spent correcting requirement-related faults at later stages of systems development.