Many software projects fail due to instable requirements and lack of managing the requirements changes efficiently. Software Requirements Stability Index Metric (RSI) helps to evaluate the overall stability of requirements and also keep track of the project status. Higher the stability, less changes tends to propagate. The existing system use Function Point modeling for measuring the Requirements Stability. However, the main drawback of the existing modeling is that the complexity of non-functional requirements has not been measured for Requirements
KEYWORDS: Multi-Criteria Fuzzy Based Approach, Functional Requirement Complexity, Non-Functional Requirement Complexity, Input Output Complexity, Interface Complexity, File Complexity, Software Complexity Point Measurement, Requirements Stability Index.
INTRODUCTIONRequirements Elicitation is the most important stage in the Software Development Life Cycle Process. If the requirements have not been captured correctly during the Elicitation process, then the whole development process will fail which results in time and monetary costs [18]. Software developers often start with unclear, ambiguous, and incomplete requirements with inaccurate understanding of the user needs or insufficient requirements. Therefore, requirements development and management are the start point of the software development process. Software system needs to evolve. In particular, changes in the requirements may be related to the addition of new functionalities, modification to the existing ones, deleting the functionalities which are International Journal of Software Engineering & Applications (IJSEA), Vol.3, No.6, November 2012 102 obsolete or to the improvement in the quality of service offered [10]. Requirements changes not only cause software defects but also cause in delay of delivery of the software project. Requirements changes at the later stage can cause uncertainty in the software development. Sometimes, these requirement changes will affect the quality of the software. For requirements engineering, the challenging issue is not the requirements change. It is how to deal with the change and how to measure them. For measuring the change, measure the software complexity. IEEE defines software complexity as "the degree to which a system or component has a design or implementation that is difficult to understand or verify" [1].Software Complexity Measurement can be classified into three categories: Size, Structure and Quality Measurement [17]. In present, there are many algorithmic models and non-algorithmic models have been developed to measure the complexity of the software [20]. Some of the famous algorithmic models are Function Point Modeling, Constructive Cost Model (COCOMO), Software Life Cycle Management model (SLIM). Non-algorithmic techniques include Price-toWin, Expert Judgment and Machine learning approaches. Machine Learning is used to group together a set of techniques that embody some of the facets of human mind. For example, fuzzy systems, analogy, regressi...