Using Assurance Cases in Requirements Engineering for Safety-Critical Systems
Resumo
Context: Certification of safety-critical systems (SCS) demands thorough documentation that demonstrates why a system shall be considered safe. Assurance Case Development (ACD) is an approach for discussing, analyzing and assessing the safety properties of systems. Software requirements of a SCS are an essential information included in assurance cases, alongside system design and safety analysis information. Lack of integrated analysis of requirements and safety concerns may lead to safety issues in the development of critical systems. One of the challenges for the agile development of SCS is to address both Requirements Engineering (RE) and ACD in an integrated way throughout the development life cycle. Objective: This research proposes a framework to integrate the Assurance Case Development and Agile RE in the development of SCS. Method: This research is organized in three main phases. First, a systematic mapping study is performed to understand how incremental ACD is addressed by current approaches, and a survey with experts is carried out to understand the development of ACs during Agile RE activities in practice. Second, the framework and its supporting tools and documentation will be designed and developed. Finally, a series of empirical studies will evaluate aspects of the framework in a multi-perspective manner and as long as it is developed. Conclusions: We expect that this approach contributes to leverage the development of ACs earlier and integrated with RE activities in agile development of SCS.
Referências
Bloomfield, R. and Bishop, P. (2010). Safety and assurance cases: Past, present and possible future – an adelard perspective. In Dale, C. and Anderson, T., editors, Making Systems Safer. Springer.
Burge, J. E., Carroll, J. M., McCall, R., and Mistrik, I. (2008). Rationale and Requirements Engineering, pages 139–153. Springer Berlin Heidelberg, Berlin, Heidelberg.
Cheng, J., Metoyer, R., Cleland-huang, J., Dame, N., and Dame, N. (2018). How Do Practitioners Perceive Assurance Cases in Safety-Critical Software Systems ? In Proceedings of the 11th International Workshop on Cooperative and Human Aspects of Software Engineering, pages 5–8. ACM.
Cleland-Huang, J. and Vierhauser, M. (2018). Discovering , Analyzing , and Managing Safety Stories in Agile Projects. IEEE 26th International Requirements Engineering Conference.
de la Vara, J. L., Ruiz, A., and Espinoza, H. (2018). Recent Advances towards the Industrial Application of Model-Driven Engineering for Assurance of Safety-Critical Systems. In 6th International Conference on Model-Driven Engineering and Software Development., pages 632–641.
Doss, O. and Kelly, T. P. (2016). Challenges and opportunities in agile development in safety critical systems: A survey. SIGSOFT Softw. Eng. Notes, 41(2):30–31.
Ebert, C. (2015). Implementing functional safety. IEEE Software, 32(5):84–89.
Ge, X., Paige, R. F., and McDermid, J. A. (2010). An Iterative Approach for Development of Safety-Critical
Software and Safety Arguments. In Agile Conference, pages 35–43.
Hall, J. G. and Rapanotti, L. (2008). Assurance-Driven Design. In 2008 The Third International Conference on Software Engineering Advances, pages 379–388.
Hatcliff, J., Wassyng, A., Kelly, T., Comar, C., and Jones, P. (2014). Certifiably safe software-dependent systems: Challenges and directions. In Proceedings of the on Future of Software Engineering, FOSE 2014, pages 182–200, New York, NY, USA. ACM.
Heeager, L. T. and Nielsen, P. A. (2018). A conceptual model of agile software development in a safetycritical context: A systematic literature review. Information and Software Technology, 103(July):22–39. Kelly, T. P. (1999).
Arguing safety: a systematic approach to managing safety cases. PhD thesis, University of York.
Kotonya, G. and Sommerville, I. (1998). Requirements Engineering: Processes and Techniques. Wiley Publishing, 1st edition.
Leffingwell, D. (2010). Agile software requirements: lean requirements practices for teams, programs, and the enterprise. Addison-Wesley Professional.
Lutz, R. R. (2000). Software engineering for safety: a roadmap. In Proceedings of the Conference on The Future of Software Engineering, pages 213–226. ACM.
Myklebust, T., Hanssen, G. K., and Lyngby, N. (2017). A survey of the software and safety case development practice in the railway signalling sector. In European Safety and Reliability Conference (ESREL). Scho ̈n, E.-M., Thomaschewski, J., and Escalona, M. J. (2017). Agile requirements engineering: A systematic literature review. Computer Standards & Interfaces, 49:79–91.
Stålhane, T. and Myklebust, T. (2016). The agile safety case. Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics).
Vilela, J., Castro, J., Martins, L. E. G., and Gorschek, T. (2017). Integration between requirements engineering and safety analysis: A systematic literature review. Journal of Systems and Software, 125:68 – 92.