A Method to the Specification of Safety Requirements in Agile Contexts - Leite, Ana Isabella Muniz (2023)
Context: Safety-critical software systems are increasingly being used in new application areas, such as the medical domain, in which health professionals are now relying more on softwarebased medical devices for diagnosing and treating patients more accurately and in a shorter time frame. These devices software is becoming more and more complex due to disruptive technological improvements. Implementing larger parts of safety systems in software has led to a growing interest in adopting agile methods and practices to improve performance with respect to development efficiency, system quality, safety integrity, and effective assessment and certification. At the same time, recent accidents and recalls have shown that several failures have been caused by errors or faults introduced during development and resulted from the misunderstandings of safety requirements by agile development teams. Moreover, there is still a lack of techniques to ensure that safety requirements are properly addressed by both software architecture and implementation. Objective: This PhD thesis proposes a method to specify software safety requirements and support architectural design decisions that address them in agile contexts. Method: We systematically developed and evaluated the SCA3DA method proposed through a design science methodology. Two controlled experiments were conducted (with students and practitioners) to demonstrate the suitability and effectiveness of the SCA3DA method in safety-critical system development in agile contexts. Results: Our work provides an overview of safety-critical systems development in agile contexts. Although agile methods have been applied in all phases of the safety lifecycle, safety system requirements, and safety validation have received the most attention. This is due to the critical nature of this system. We also provide evidence that agile teams are more likely to fail to account for the real intention of safety requirements due to misunderstanding them in the safety-critical system development. Furthermore, the findings have shown that the application of the SAC3DA method is promising in terms of providing positive support to better understand the software safety requirements specification and that safety-centered architectural solutions derived led to a reduction in the time taken for their analysis, with no loss of requirements understandability. Conclusion: Our work represents a starting point toward developing effective communication in agile contexts. The solutions derived from the SCA3DA method serve as a guide for communicating safety-related needs to the agile team, thereby promoting cooperation in conflict resolution and decision-making. A major challenge encountered in defining the method is to make the real need (intention) of the safety requirement explicit in the agile context. While existing approaches have focused on \"what should be done,\" this work seeks to introduce the concept of \"how and why it should be done\". By doing so, understanding becomes clearer, and incorrect assumptions are avoided. We believe that this work provides valuable insights into the importance of improving the understanding of safety requirements specification. Therefore, agile teams can realize more accurate software safety specifications, use these solutions to improve team communication, and ensure a unique understanding of system criticality and a more accurate interpretation of safety requirements.