Abstract
A system requirements specification is a technical document extensively used during the respective system life cycle. It gathers the concerns and needs of various stakeholders, describes the common vision of that system, and therefore supports its development and operation processes. The popular form to write requirements specifications is with natural languages that, however, exhibit characteristics that often introduce quality problems, such as inconsistency, incompleteness, and vagueness, which shall be mitigated or avoided to some extent. This paper is part of a series of papers that have discussed linguistic patterns and linguistic styles to produce technical documentation more systematically and consistently. Specifically, this paper proposes a cohesive set of patterns and styles to better write use cases and scenarios. It also presents 38 practical guidelines and supports the discussion with concrete pedagogical examples represented with different styles, namely: visual use cases diagram (UML), a rigorous requirements specification language (RSL), and two informal controlled natural languages, one with a compact (CNL-A) and another with a more complete and verbose writing style (CNL-B). We conducted a pilot evaluation session with 24 subjects who provided encouraging feedback, with positive scores in all the analyzed dimensions. Based on this feedback, we may conclude that the adoption of these patterns, styles, and guidelines would help to produce better requirements specifications, written more systematically and consistently.
Highlights
Requirements engineering (RE) is a discipline that defines a common vision and understanding of socio-technical systems among the involved stakeholders and throughout their life cycle [1], [2]
It is usually recommended that a requirements specification shall be defined as a predefined template as well as a set of recommendations on how to customize and use it
These templates recommend the use of various views and constructs that might be considered "modular artifacts" in the sense of their definition and reuse
Summary
Requirements engineering (RE) is a discipline that defines a common vision and understanding of socio-technical systems among the involved stakeholders and throughout their life cycle [1], [2]. Wirfs-Brock discusses several pragmatic recommendations for writing use cases and introduces the conversational (two-columns) form of use cases [16], popularized by Constantine [17] Some of these recommendations are still general or difficult to apply in practice and need to be further elaborated and exemplified considering specific constructs as supported by controlled natural languages. In this scope, we introduce linguistic patterns as grammatical rules that allow their users to write correctly in a common language.
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.