Abstract
Use case diagramming and class diagramming are important requirements engineering techniques that play an essential role in modeling software specifications and facilitating the software development process. Software requirements are often expressed in natural language, which can be ambiguous, noisy, unmeasurable, and open to interpretation. This research overcomes this problem by extracting the required elements to generate use cases and class diagrams automatically from software requirements documents written in a common natural language. Therefore, an automated framework is proposed based on natural language processing techniques, such as tokenization and part-of-speed tagging, to parse the software requirements syntactically using a set of heuristic rules to facilitate the extracting actors, use cases, entities, relationships, and attributes used in the background to generate the use cases and class diagrams. Furthermore, to improve the performance of the proposed framework, the k-nearest neighbor algorithm is employed by predicting the pre-processed requirements. The proposed framework is evaluated using two performance measurements: recall and precision. The experiment results show that the proposed framework can achieve an average recall of 96% and an average precision of 92%.