SReYantra: Automated Software Requirement Inter-dependencies Elicitation, Analysis and Learning
Requirements elicitation is a cognitively difficult task. Moreover, rich semantics in natural language based requirements imposes challenges in elicitation, analysis and maintenance of requirement inter-dependencies. The challenge intensifies further when dependency types and strengths are considered. Ignoring inter-dependencies can adversely impact the design, development, and testing of software products. These findings were affirmed by the 70 participants of a survey, of which 86% belonged to the industry. More than 80% of participants agreed or strongly agreed that requirements interdependencies have a high impact and its management is highly important. This PhD research proposal addresses three main challenges extracted from the analysis of literature and validated by the survey on the state-of-the-practice in requirements dependencies. First, Natural Language Processing is studied to automatically extract dependencies from textual documents. Further verb classifiers are utilized to automate elicitation and analysis of different types of dependencies (e.g., coupling, precedence). The strength of the dependency is also considered to overcome the simplifying assumption of just the Boolean relationships between requirements. Second, representation and maintenance of changing requirement dependencies from designing graph-theoretic algorithms will be explored. Third, as a form of learning across similar projects, the process of providing recommendations of dependencies will be studied. The results are aimed at assisting project managers to evaluate the impact of inter-dependencies and make effective decisions in release planning, development, and testing.