Abstract
Requirements engineering is a systematic and disciplined approach for the specification and management of software requirements; one of its objectives is to transform the requirements of the stakeholders into formal spec-ifications in order to analyze and implement a system. These requirements are usually expressed and articulated in natural language, this due to the universality and facility that natural language presents for communicating them. To facilitate the transformation processes and to improve the quality of the resulting requirements, several authors have proposed templates for writing requirements in structured natural language. However, these templates do not allow writing certain functional requirements, non-functional requirements and constraints, and they do not adapt correctly to certain types of systems such as self-adaptive, product line-based and embedded systems. This paper (i) presents evidence of the weaknesses of the template recommended by the IREB® (International Requirements Engineering Institute), and (ii) lays the foundations, through a new template, for facilitating the work of the re-quirements engineers and therefore improving the quality of the products specified with the new template. This new template was built and evaluated through two active research cycles. In each cycle we identified the problems specifying the requirements of the corresponding industrial case with the corresponding base-line template, pro-pose some improvements to address these problems and analyze the results of using the new template to specify the requirements of each case. Thus, the resulting template was able to correctly write all requirements of both industrial cases. Despite the promising results of this new template, it is still preliminary work regarding its cov-erage and the quality level of the requirements that can be written with it.
Highlights
The requirements are perhaps the most important basis in the construction of software products because, through them, the stakeholders of the system that is going to be implemented can achieve a common understanding of it
To ensure that the improved template produced in the second cycle remained consistent with the considered templates, we planned and executed the following strategy: At the beginning of each cycle of requirements writing, the templates found in the literature were used as inspiration artifacts to incorporate their relevant elements in the new template produced at each cycle
The improvement made to the Mazo & Jaramillo template is inspired by concepts from other related works found in the literature, e.g. the EARS template (Mavin et al 2009), which establishes a set of syntactic rules for the specification of requirements through the use of conditional clauses that trigger functional behaviors and described in the RELAX requirements language (Whittle et al 2009), which incorporates various types of operators to address the uncertainty in the behavior of a self-adaptive system
Summary
The requirements are perhaps the most important basis in the construction of software products because, through them, the stakeholders of the system that is going to be implemented can achieve a common understanding of it. According to Wiegers and Beatty (Wiegers and Beatty 2013), the two most important objectives in specifying a requirement are that (i) when several people read the requirement they reach the same interpretation; and (ii) the interpretation of each reader coincides with what the author of the requirement was trying to communicate In this sense, Pohl (Pohl 2010) states that NL (Natural Language) is the most common way to communicate and document the requirements of a system since NL is universal and available to any individual in any field; besides, it does not require any kind of special training in the interpretation of notations or symbols as occurs when using an engineering language such as UML (Unified Modeling Language).
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
More From: Journal of Software Engineering Research and Development
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.