FREPA: an automated and formal approach to requirement modeling and analysis in aircraft control domain

Formal methods are promising for modeling and analyzing system requirements. However, applying formal methods to large-scale industrial projects is a remaining challenge. The industrial engineers are suffering from the lack of automated engineering methodologies to effectively conduct precise requirement models, and rigorously validate and verify (V&V) the generated models. To tackle this challenge, in this paper, we present a systematic engineering approach, named Formal Requirement Engineering Platform in Aircraft (FREPA), for formal requirement modeling and V&V in the aerospace and aviation control domains. FREPA is an outcome of the seamless collaboration between the academy and industry over the last eight years. The main contributions of this paper include 1) an automated and systematic engineering approach FREPA to construct requirement models, validate and verify systems in the aerospace and aviation control domain, 2) a domain-specific modeling language AASRDL to describe the formal specification, and 3) a practical FREPA-based tool AeroReq which has been used by our industry partners. We have successfully adopted FREPA to seven real aerospace gesture control and two aviation engine control systems. The experimental results show that FREPA and the corresponding tool AeroReq significantly facilitate formal modeling and V&V in the industry. Moreover, we also discuss the experiences and lessons gained from using FREPA in aerospace and aviation projects.

[1]  Laurie A. Williams,et al.  NANE: Identifying Misuse Cases Using Temporal Norm Enactments , 2016, 2016 IEEE 24th International Requirements Engineering Conference (RE).

[2]  John C. Kelly,et al.  Formal Methods Specification and Analysis Guidebook for the Verification of Software and Computer Systems Volume II: A Practitioner's Companion , 1997 .

[3]  Jean-Raymond Abrial On B and Event-B: Principles, Success and Challenges , 2018, ABZ.

[4]  Fan Zhang,et al.  Use of Formal Methods at Amazon Web Services , 2014 .

[5]  J Hayhurst Kelly,et al.  A Practical Tutorial on Modified Condition/Decision Coverage , 2001 .

[6]  Shaoying Liu SOFL: a formal engineering methodology for industrial applications , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[7]  Russell W. Quong,et al.  ANTLR: A predicated‐LL(k) parser generator , 1995, Softw. Pract. Exp..

[8]  Paul Pettersson,et al.  ABV - A Verifier for the Architecture Analysis and Design Language (AADL) , 2011, 2011 16th IEEE International Conference on Engineering of Complex Computer Systems.

[9]  Jian Zhang,et al.  Constraint Solving and Symbolic Execution , 2005, VSTTE.

[10]  Gernot Heiser,et al.  A Formal Approach to Constructing Secure Air Vehicle Software , 2018, Computer.

[11]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[12]  Nancy G. Leveson,et al.  A new accident model for engineering safer systems , 2004 .

[13]  Steve Vestal,et al.  The SAE Architecture Analysis & Design Language (AADL) a standard for engineering performance critical systems , 2006, 2006 IEEE Conference on Computer Aided Control System Design, 2006 IEEE International Conference on Control Applications, 2006 IEEE International Symposium on Intelligent Control.

[14]  Brian Huffman,et al.  Continuous Formal Verification of Amazon s2n , 2018, CAV.

[15]  Jean-Raymond Abrial,et al.  The B-book - assigning programs to meanings , 1996 .

[16]  Geguang Pu,et al.  Prema: A Tool for Precise Requirements Editing, Modeling and Analysis , 2019, 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[17]  Axel Legay,et al.  Statistical Model Checking: An Overview , 2010, RV.

[18]  Marsha Chechik,et al.  Automatic Analysis of Consistency between Requirements and Designs , 2001, IEEE Trans. Software Eng..

[19]  Yang Liu,et al.  Automated Requirements Validation for ATP Software via Specification Review and Testing , 2016, ICFEM.

[20]  Michael D. Ernst,et al.  Verification games: making verification fun , 2012, FTfJP@ECOOP.

[21]  Simin Nadjm-Tehrani,et al.  A STAMP-based ontology approach to support safety and security analyses , 2019, J. Inf. Secur. Appl..

[22]  Alan J. Hu,et al.  Reachability Analysis for AWS-Based Networks , 2019, CAV.

[23]  Fred Kröger,et al.  Temporal Logic of Programs , 1987, EATCS Monographs on Theoretical Computer Science.

[24]  Roel Wieringa,et al.  Status Quo in Requirements Engineering: A Theory and a Global Family of Surveys , 2021, Software Engineering.

[25]  Guilherme Horta Travassos,et al.  Reporting guidelines for simulation-based studies in software engineering , 2012, EASE.

[26]  Shengchao Qin,et al.  The stochastic semantics and verification for periodic control systems , 2012, Science China Information Sciences.

[27]  Edmund M. Clarke,et al.  Formal Methods: State of the Art and Future Directions Working Group Members , 1996 .

[28]  Stephen Fickas,et al.  Goal-Directed Requirements Acquisition , 1993, Sci. Comput. Program..

[29]  Ting Su,et al.  SmartUnit: Empirical Evaluations for Automated Unit Testing of Embedded Software in Industry , 2017, 2018 IEEE/ACM 40th International Conference on Software Engineering: Software Engineering in Practice Track (ICSE-SEIP).

[30]  Peter H. Feiler,et al.  The SAE AADL Standard: an Architecture Analysis & Design Language for Embedded Real-time Systems, Part 2 , 2004 .

[31]  Jun Yan,et al.  Automatic Test Data Generation for Unit Testing to Achieve MC/DC Criterion , 2014, 2014 Eighth International Conference on Software Security and Reliability.

[32]  Steven P. Miller,et al.  Flight Guidance System Requirements Specification , 2003 .

[33]  Eric S. K. Yu,et al.  Towards modelling and reasoning support for early-phase requirements engineering , 1997, Proceedings of ISRE '97: 3rd IEEE International Symposium on Requirements Engineering.

[34]  Gregory Tassey,et al.  Prepared for what , 2007 .

[35]  Nikolaj Bjørner,et al.  Checking Cloud Contracts in Microsoft Azure , 2015, ICDCIT.

[36]  Jonathan Jacky,et al.  The Way of Z: Practical Programming with Formal Methods , 1996 .

[37]  M. Morisio,et al.  Extending UML to support domain analysis , 2000, Proceedings ASE 2000. Fifteenth IEEE International Conference on Automated Software Engineering.

[38]  Julien Delange,et al.  Validate, simulate, and implement ARINC653 systems using the AADL , 2009, SIGAda '09.

[39]  Shaoying Liu,et al.  A Formal Engineering Framework for Service-Based Software Modeling , 2013, IEEE Transactions on Services Computing.

[40]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[41]  Egon Börger,et al.  Abstract State Machines. A Method for High-Level System Design and Analysis , 2003 .

[42]  Carlo Ghezzi,et al.  On Early Statistical Requirements Validation of Cyber-Physical Space Systems , 2018, 2018 IEEE/ACM 4th International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS).

[43]  Shaoying Liu,et al.  Integrating Animation-Based Inspection Into Formal Design Specification Construction for Reliable Software Systems , 2016, IEEE Transactions on Reliability.

[44]  Donald W. Loveland,et al.  A machine program for theorem-proving , 2011, CACM.

[45]  A. Jefferson Offutt,et al.  SOFL: A Formal Engineering Methodology for Industrial Applications , 1998, IEEE Trans. Software Eng..

[46]  John Thomas,et al.  Modeling and Hazard Analysis Using Stpa , 2010 .

[47]  Shaoying Liu Formal Engineering for Industrial Software Development: Using the SOFL Method , 2004 .

[48]  Ursula Faber,et al.  Requirements Engineering A Good Practice Guide , 2016 .