3 research outputs found

    REX: general-purpose CNL with code generation support

    Get PDF
    Controlled natural languages (CNLs) have been proposed to address some of the issues of natural language when it is used to express requirements. CNLs, however, are based on formal grammar, which can easily become complex, hard to read, and especially hard to write, and the implementation of support tools can also demand a significant effort. Moreover, unanticipated constructions cannot be handled or have to be handled in unexpected and cumbersome ways. In this article, we present REX, a CNL with a simple grammar that is, thus, easy to understand and easy to support, but still general purpose. To accomplish this, instead of trying to support every conceivable construction and imposing a language on the users, through a small but comprehensive set of rules and through patterns, users specify their own language and how natural it is. Another of the benefits of CNLs is the possibility to automate the transformation of a text or specification into something useful, thereby reducing manual labor and transformation errors. In this article, we also present the support tools that were used to transform a REX text into code and a complete application. It is also shown that this CNL and its support tools can be easily adapted to suit different needs

    Applicability and usability of predefined natural language boilerplates in documenting requirements

    Get PDF
    Natural language is frequently applied to document the stakeholders’ statements during requirement elicitation activities. Nevertheless, the use of generic natural language has potential for the issues of unclear and inconsistent requirements. These issues may result from the diverse interpretations by the stakeholders or other various sources of documents and artefacts. The main objective of this paper was to discuss the definition and application of predefined boilerplates to specify the requirements in the form of natural language statements. The proposed boilerplates were defined and classified based on two main types of requirements, namely functional and non-functional (performance, constraints, and specific quality). Two methods have been applied to evaluate the research results; the applicability of the predefined boilerplates was demonstrated using two different case studies, and the usability aspect is evaluated through synthetic environment experimentation using human respondents. As a summary, the predefined boilerplates were found helpful, especially among novice requirement engineers to express and specify their requirements in a consistent manner and a standardized way, relatively able to improve the quality of the natural language statements
    corecore