Functional grouping of natural language requirements for assistance in architectural software design
Modern software systems are becoming larger and more complex every day. One of the most challenging steps for designing a good architecture for a certain piece of software is the analysis of requirements, usually written in natural language by engineers not familiar with specific design formalisms. The main problem related to this task is the conceptual gap existing between low-level requirements and higher views of the system decomposing its functionality. In this paper, we introduce an approach for mining and grouping functionality from textual descriptions of requirements using text mining techniques aiming at helping software designers with this complex and time-consuming task. The knowledge discovered starting from informally written requirements using a combination of natural language processing (NLP) and text clustering algorithms can be then easily mapped into design concerns of a possible architecture for the system. Experimental validation in three case studies suggests a great potential of the proposed approach for providing assistance to software designers during early stages of the software development process.
software design text mining natural language processing requirements engineering functional grouping of requirements