What are you looking for?
51 Résultats pour : « Portes ouvertes »

L'ÉTS vous donne rendez-vous à sa journée portes ouvertes qui aura lieu sur son campus à l'automne et à l'hiver : Samedi 18 novembre 2023 Samedi 17 février 2024 Le dépôt de votre demande d'admission à un programme de baccalauréat ou au cheminement universitaire en technologie sera gratuit si vous étudiez ou détenez un diplôme collégial d'un établissement québécois.

Software Engineering Research and Innovation Software Systems, Multimedia and Cybersecurity Imaginlab - Laboratoire d'innovation et d'ingénierie des systèmes pour l'automatisation et la numérisation

A Template and Model-Based Approach to Requirements Specification

airplane cockpit

The primary goal of software development is to deliver a product that meets customer needs and expectations. These needs are formally expressed as requirements. Requirements define software functionalities, i.e., what the software should do. Developers rely on these requirements to implement the functionalities, while testers use them as a reference to validate the final product.

Limitations of Existing Approaches to Requirements Specification

One of the initial steps in software development is identification and specification of the requirements. Typically, requirements are specified in a natural language, such as English. However, natural language can introduce ambiguity, which might lead to misunderstandings. This can result in software that does not conform to customer needs, and thus necessitates additional time and effort to correct. These issues are especially critical when developing software for safety-critical systems, such as aircrafts and cars, where errors are not tolerated as they can jeopardize user safety. In our research project, we are collaborating with an avionics company that shares these concerns.

To tackle the issues related to natural language, several approaches proposed the use of templates for the semi-formal specification of requirements. Templates are text fragments with fixed parts—they remain the same—and others with variable parts (i.e., placeholders). The placeholders are then filled in by the user to create the requirements. Using templates ensures that (1) the requirements have a consistent structure, (2) the user is forced to specify requirements according to best practices in requirements specification, and (3) automated analysis of requirements is enabled, since all requirements have the same structure. This automated analysis is important as it supports the automatic generation of certain artifacts (e.g., tests) directly from the requirements. However, the majority of existing approaches do not propose a systematic process for creating and evolving the templates. Furthermore, most of these approaches address specific types of requirements.

The Proposed Approach

To address these issues, we propose an approach that uses templates to specify requirements and models to represent these templates [1]. By using models to represent the templates, we leverage the benefits of model-driven engineering, such as easy management and evolution of templates, as well as the automated generation of code supporting the templates. Our approach includes multiple steps mainly: (1) analyzing, reformulating and categorizing requirements, (2) defining templates for each category, and (3) modeling the created templates. We applied our approach to specify the requirements of a standard used by our industrial partner, ARINC-653 [2]. To do so, we went through the ARINC documents and manually extracted requirements. We then reformulated poorly written requirements. After reformulation, we classified requirements into multiple categories according to the information they provided—a functionality of the system, or the definition of a parameter. For each category, we created a template by identifying common text among the requirements as fixed parts of the template, and designating the varying text as variable parts. By the end of this process, we created a total of seven templates and their corresponding models, covering two types of requirements. These are (1) functional requirements presenting the software behavior, and (2) data requirements defining software elements such as parameters and types.

Created templates to identify requirements
Les gabarits créés

The MD-RSuT Tool

To ensure the availability of our approach to industry, we recognized the importance of providing a support tool. To this end, we developed a tool called MD-RSuT (Model-Driven Requirements Specification using Template). MD-RSuT is a requirement editor that allows specifying requirements using templates. The tool supports managing requirements and organizing them into documents, which can be exported in PDF format for manual analysis, and in XML format for automated analysis. The tool also enables the update and evolution of the templates using their models.

MD-RSuT tool
L’outil MD-RSuT

To evaluate our approach, we first assessed its applicability to requirements from different domains. We conducted three case studies where we applied our approach to requirements from avionics, automotive, and general-purpose non-critical systems. We covered over a thousand requirements across the three case studies. We successfully specified all these requirements using the set of templates we created. Second, we evaluated whether our approach enhances the quality of the requirements. To do so, we evaluated the quality of the requirements resulting from the use of the templates against a set of characteristics from the IEEE requirements engineering standard [3]. According to the standard, a requirement must be necessary, unambiguous, complete, singular and verifiable. After applying our approach, requirements quality improved for approximately 70% of the requirements in the avionics case study, 40% in the automotive case study, and 80% in the general-purpose case study.

In summary, we present an approach that supports the specification of requirements using templates tailored to the user’s needs. Our approach uses models to represent the templates, which eases the evolution, maintenance, and implementation of templates. We applied our approach on the ARINC-653 standard from the avionics domain, resulting in a set of seven templates for both functional and data requirements. We developed a tool called MD-RSuT that supports the specification and management of requirements using the created templates. Finally, we evaluated our approach through three case studies. This evaluation confirms that our approach is applicable across domains, and that it enhances the quality of requirements.

References

[1] I. Darif, C. Politowski, G. El Boussaidi, I. Benzarti and S. Kpodjedo, "A Model-driven and Template-based Approach for Requirements Specification," 2023 ACM/IEEE 26th International Conference on Model Driven Engineering Languages and Systems (MODELS), Västerås, Sweden, 2023, doi: 10.1109/MODELS58315.2023.00018.

[2] SAE, “ARINC specification653p1-4. avionics application software standard interface,” p. 285, 2015.

[3] “ISO/IEC/IEEE international standard—systems and software engineering — life cycle processes — requirements engineering,” ISO/IEC/IEEE 29148:2018(E),pp.1–104, 2018.