Formal Software Requirement Elicitation based on Semantic Algebra and Cognitive Computing
James Y. Xu, Yingxu Wang · 2020
Autonomous software requirement analysis and generation are a persistent challenge to theories and technologies of software engineering. A cognitive system is demanded to automatically elicit and rigorously refine informal software requirements in natural language descriptions into formal specifications. This paper presents a novel software requirements elicitation methodology based on latest advances in software science and denotational mathematics such as semantic algebra and concept algebra. It is found that user requirements for a software system in natural language may be either expressed in to-be sentences for software structures or to-do sentences for software behaviors. Thus, formal software requirements may be elicited by two sets of structural and functional models. This approach is implemented by a tool for Formal Requirement Elicitation and Analysis (FREA). Experimental results demonstrate that the FREA tool may rigorously elicit and generate formal requirements for arbitrary software systems specified in real-time process algebra (RTPA) or equivalent notations. This technology paves a way towards autonomous code generation in software engineering.