Roles of Natural Language Generation for Requirements Engineering
摘要
Context: In Requirements Engineering, communication problems are ubiquitous. Many users and user organizations cannot fully understand the artefacts which developers produce (such as domain models, (conceptual) schemas, data models, class diagrams, (system) sequence diagrams, other UML diagrams, etc.). We try to solve challenges that customers and practitioners face when dealing with requirements that are not expressed in Natural Language (NL). Research questions: How could such artefacts be explained to and validated by the user organization in a systematic and user-understandable way? Main idea: Well, users are of course supposed to understand their own native natural language. So, you might try to translate those artefacts to their own natural language in a systematic way. But under which conditions and what are the general mechanisms behind this, both for static and for dynamic aspects? With a clear and complete set of construction rules or even a grammar for your artefacts, you can (try to) construct practical translations to the target NL by systematically following those construction rules. This is independent of a particular development lifecycle within which the artefacts were produced. Contribution: In the paper, we make these general mechanisms behind such NL generation explicit and mention the conditions under which these ideas can be applied. We illustrate the applicability and feasibility of the general theory for Conceptual Data Models (statics-based), using construction rules, and for System Sequence Descriptions (dynamics-based), using syntax-directed translations. We also establish the (easy) readability of the results.