Mining Architectural Responsibilities and Components from Textual Specifications Written in Natural Language
Given the enormous growth and complexity of modern software systems, architectural design has become an essential concern for almost every software development project. One of the most challenging steps for designing the best 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 Use Case Map (UCM) notation can be used to map requirements into proper design concerns, usually known as responsibilities. In this paper, we introduce an approach
for mining candidate architectural responsibilities and components from textual descriptions of requirements using natural language processing (NLP) techniques, in order to relieve software designers of this complex and time-consuming task. High accuracy and precision rates achieved by applying part-of-speech (POS) tagging with domain rules and semantic clustering to textual requirement documents, suggest a great potential for providing assistance to software designers during early stages of development.