Abstract:
Software Engineering (SE) is one of the youngest engineering domains emerging and developing
within past four decades or so. Still, a massive amount of research work has gone into shaping it
the way we see it functioning today. As a result, we have an impressive knowledge repository to
work with in the form of software development models, software engineering theories and
practices etc. The aim of SE is to create software products, services or their artifacts in order to
meet the requirements posed by stakeholders while meeting quality constraints imposed on them.
In order to meet both these objectives, any software development derives its purpose and
meaning from the requirements posed by various stakeholders. Requirement Prioritization is a
very critical but often neglected area of requirement engineering. Experience has shown that
without proper prioritization of requirements presented by various stakeholders, the end product
usually fails to meet its objectives optimally. In fact in many instances, the product is considered
a failure because it fails to meet its core objectives. Several requirement prioritization techniques
have been presented by various researchers over the past years. Working with these techniques
has exposed several limitations when applied in software projects. In this thesis, we have
presented a novel multi-level value based intelligent requirement prioritization technique using
fuzzy logic and as a facilitating process, we have redefined the “value” of software to better meet
its objectives. We have introduced and applied the concept of requirement value to prioritize
requirements. We have performed extensive experimentation using our proposed technique along
with existing techniques. Results have shown that both our proposed definition and proposed
technique have achieved superior prioritization results and consistency. The experiments have
also shown that proposed technique is capable of delivering impressive prioritization under
varying and often conflicting circumstances.