Extracting High-Level Functional Design from Software Requirements

Practitioners spend significant amounts of time creating high-level design from requirements. Though there exist methodologies to describe and manage requirements and design artifacts, there is not yet an automated way to faithfully translate a requirement into a high-level design. While it is extremely difficult to generate design elements from free-form natural language due to its inherent ambiguity, it is possible to significantly improve the accuracy of the design from relatively structured and constrained natural language. In this paper we propose a technique to generate high-level class diagrams from a set of requirements, using a set of requirement-specific heuristics. In this approach, we leverage work we had previously done to first process a requirement statement to classify it into a requirement type, and then break it into various constituents. Depending on the requirement type and its constituents, our heuristics then discover a functional design comprising of coarse-grained modules, their relationships and responsibilities. We express the design as a UML class diagram in IBM Rational Software Architect (RSA) format. Our preliminary investigation shows that the resulting class diagram is rich, and can be used by practitioners as a basis for further design.

[1]  Owen Rambow,et al.  Conceptual modeling through linguistic analysis using LIDA , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[2]  Dong Liu,et al.  Natural Language Requirements Analysis and Class Model Generation Using UCDA , 2004, IEA/AIE.

[3]  Raymond J. A. Buhr,et al.  Use Case Maps as Architectural Entities for Complex Systems , 1998, IEEE Trans. Software Eng..

[4]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[5]  Ivar Jacobson,et al.  The Unified Modeling Language User Guide , 1998, J. Database Manag..

[6]  Alex Kass,et al.  Requirements Analysis Tool: A Tool for Automatically Analyzing Software Requirements Documents , 2008, SEMWEB.

[7]  Dewayne E. Perry,et al.  Transforming Goal Oriented requirements specifications into Architectural Prescriptions , 2001 .

[8]  Nenad Medvidovic,et al.  Reconciling software requirements and architectures: the CBSP approach , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[9]  Olga Ormandjieva,et al.  Automatic Transition of Natural Language Software Requirements Specification into Formal Presentation , 2005, NLDB.

[10]  IEEE-SA Standards Board , 2000 .

[11]  Bashar Nuseibeh,et al.  Relating software requirements and architectures using problem frames , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[12]  Alex Kass,et al.  Automated review of natural language requirements documents: generating useful warnings with user-extensible glossaries driving a simple state machine , 2009, ISEC '09.

[13]  Philippe Kruchten,et al.  The 4+1 View Model of Architecture , 1995, IEEE Softw..

[14]  Ian Gorton Documenting a Software Architecture , 2011 .

[15]  J. M. Singer,et al.  IEEE Recommended Practice for Software Requirements SpeciÞcations , 1993 .