Safety analysis of software product lines using state-based modeling

The difficulty of managing variations and their potential interactions across an entire product line currently hinders safety analysis in safety-critical, software product lines. The work described here contributes to a solution by integrating product-line safety analysis with model-based development. This approach provides a structured way to construct state-based models of a product line having significant, safety-related variations and to systematically explore the relationships between behavioral variations and potential hazardous states through scenario-guided executions of the state model over the variations. The paper uses a product line of safety-critical medical devices to demonstrate and evaluate the technique and results.

[1]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[2]  Karsten Loer,et al.  An integrated framework for the analysis of dependable interactive systems (IFADIS): Its tool support and evaluation , 2006, Automated Software Engineering.

[3]  John Hatcliff,et al.  CALM and Cadena: metamodeling for component-based product-line development , 2006, Computer.

[4]  Stephen J. Mellor,et al.  Executable UML - A Foundation for Model-Driven Architecture , 2002, Addison Wesley object technology series.

[5]  Qian Feng,et al.  Bi-directional safety analysis of product lines , 2005, J. Syst. Softw..

[6]  A Holt Formal verification with natural language specifications: guidelines, experiments and lessons so far , 1999 .

[7]  Josh Dehlinger,et al.  PLFaultCAT: A Product-Line Software Fault Tree Analysis Tool , 2006, Automated Software Engineering.

[8]  Hassan Gomaa Designing Software Product Lines with UML 2.0: From Use Cases to Pattern-Based Software Architectures , 2006, ICSR.

[9]  Peter A. Lindsay,et al.  An Automated Failure Mode and Effect Analysis Based on High-Level Design Specification with Behavior Trees , 2005, IFM.

[10]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[11]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[12]  Sérgio Vale Aguiar Campos,et al.  Symbolic Model Checking , 1993, CAV.

[13]  Ann Q. Gates,et al.  Prospec: Support for Elicitation and Formal Specification of Software Properties , 2003, Electron. Notes Theor. Comput. Sci..

[14]  M. Clauß,et al.  Modeling variability with UML , 2001 .

[15]  Robert P. Kurshan Evolution of Model Checking into the EDA Industry , 2004, ATVA.

[16]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[17]  Robyn R. Lutz,et al.  Tool-Supported Verification of Product Line Requirements , 2005, Automated Software Engineering.

[18]  Jing,et al.  The Role of Aspects in Modeling Product Line Variabilities , 2006 .

[19]  Tomoji Kishi,et al.  Formal verification and software product lines , 2006, CACM.

[20]  Robert W. Schwanke,et al.  Experience with the architectural design of a modest product family , 2004, Softw. Pract. Exp..

[21]  Robyn R. Lutz Bi-directional Analysis for Certification of Safety-Critical Software , 1999 .

[22]  George S. Avrunin,et al.  Patterns in property specifications for finite-state verification , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[23]  Martin Verlage,et al.  The Economic Impact of Product Line Adoption and Evolution , 2002, IEEE Softw..

[24]  Valentin Goranko,et al.  Logic in Computer Science: Modelling and Reasoning About Systems , 2007, J. Log. Lang. Inf..

[25]  Roope Kaivola,et al.  Formal Verification of Pentium® 4 Components with Symbolic Simulation and Inductive Invariants , 2005, CAV.

[26]  Peter Neumann,et al.  Safeware: System Safety and Computers , 1995, SOEN.

[27]  Mark A. Wood,et al.  Cardiac Pacing and ICDs , 1996 .

[28]  Birgit Geppert,et al.  Enabling Verifiable Conformance for Product Lines , 2008, 2008 12th International Software Product Line Conference.

[29]  Kenneth L. McMillan,et al.  The SMV System , 1993 .

[30]  Albert Hoogewijs,et al.  Integrating Cadence SMV in the Verification of UML Software , 2004 .

[31]  Matthew B. Dwyer,et al.  Bogor: A Flexible Framework for Creating Software Model Checkers , 2006, Testing: Academic & Industrial Conference - Practice And Research Techniques (TAIC PART'06).

[32]  Hany H. Ammar,et al.  Architectural-Level Risk Analysis Using UML , 2003, IEEE Trans. Software Eng..

[33]  A. Joshi Automatic Generation of Static Fault Trees from AADL Models , 2007 .

[34]  Klaus Pohl,et al.  Towards automated consistency checks of product line requirements specifications , 2007, ASE.

[35]  Jan Bosch,et al.  Characterizing Evolution in Product Line Architectures , 1999, ICSE 1999.

[36]  Robyn R. Lutz,et al.  Fault contribution trees for product families , 2002, 13th International Symposium on Software Reliability Engineering, 2002. Proceedings..

[37]  Fei Xie,et al.  Verified systems by composition from verified components , 2003, ESEC/FSE-11.

[38]  Corina S. Pasareanu,et al.  Refining Interface Alphabets for Compositional Verification , 2007, TACAS.

[39]  Lars Grunske,et al.  Specification and Evaluation of Safety Properties in a Component-Based Software Engineering Process , 2005, Component-Based Software Development for Embedded Systems.

[40]  Antonio Ruiz Cortés,et al.  Automated analysis of feature models: challenges ahead , 2006, CACM.

[41]  Audris Mockus,et al.  Refactoring for changeability: a way to go? , 2005, 11th IEEE International Software Metrics Symposium (METRICS'05).

[42]  Rance Cleaveland,et al.  Tableau-based model checking in the propositional mu-calculus , 1990, Acta Informatica.

[43]  Ben L. Di Vito High-automation proofs for properties of requirements models , 2000, International Journal on Software Tools for Technology Transfer.

[44]  Jan Bosch,et al.  A taxonomy of variability realization techniques: Research Articles , 2005 .

[45]  Jing Liu,et al.  State-Based Modeling to Support the Evolution and Maintenance of Safety-Critical Software Product Lines , 2007, 14th Annual IEEE International Conference and Workshops on the Engineering of Computer-Based Systems (ECBS'07).

[46]  Hassan Gomaa,et al.  Modeling variability in software product lines with the variation point model , 2004, Sci. Comput. Program..

[47]  David M. Weiss,et al.  Defining Families: The Commonality Analysis , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[48]  John Rushby,et al.  Formal Methods and their Role in the Certification of Critical Systems , 1997 .

[49]  Josh Dehlinger,et al.  A product-line requirements approach to safe reuse in multi-agent systems , 2005, SELMAS.

[50]  Robyn R. Lutz,et al.  Engineering for Safety : A Roadmap , 2001 .

[51]  Bruce P. Douglass,et al.  Doing hard time: developing real-time systems with uml , 1999 .

[52]  Harold Ossher,et al.  Multi-dimensional Separation of Concerns in Hyperspace Multi-dimensional Separation of Concerns in Hyperspace , 1999 .

[53]  Betty H. C. Cheng,et al.  Automatically Detecting and Visualising Errors in UML Diagrams , 2002, Requirements Engineering.

[54]  Christian Prehofer Plug-and-play composition of features and feature interactions with statechart diagrams , 2003, Software & Systems Modeling.

[55]  Birgit Geppert,et al.  Effects of refactoring legacy protocol implementations: a case study , 2004, 10th International Symposium on Software Metrics, 2004. Proceedings..

[56]  Jaejoon Lee,et al.  FORM: A feature-;oriented reuse method with domain-;specific reference architectures , 1998, Ann. Softw. Eng..

[57]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[58]  Kousha Etessami,et al.  Events and constraints: a graphical editor for capturing logic requirements of programs , 2001, Proceedings Fifth IEEE International Symposium on Requirements Engineering.

[59]  Bev Littlewood,et al.  Validation of ultrahigh dependability for software-based systems , 1993, CACM.

[60]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[61]  Orna Grumberg,et al.  Enhanced Vacuity Detection in Linear Temporal Logic , 2003, CAV.

[62]  Jing Liu,et al.  Safety analysis of software product lines using state-based modeling , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

[63]  Gan Deng Addressing Domain Evolution Challenges in Model-Driven Software Product-line Architectures , 2005 .

[64]  Mats Per Erik Heimdahl,et al.  Automated integrative analysis of state-based requirements , 1998, Proceedings 13th IEEE International Conference on Automated Software Engineering (Cat. No.98EX239).

[65]  Betty H. C. Cheng,et al.  Facilitating the construction of specification pattern-based properties , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[66]  Robyn R. Lutz,et al.  Extending the product family approach to support safe reuse , 2000, J. Syst. Softw..

[67]  David M. Weiss,et al.  Software Product-Line Engineering: A Family-Based Software Development Process , 1999 .

[68]  Sebastián Uchitel,et al.  A foundation for behavioural conformance in software product line architectures , 2006, ROSATEA '06.

[69]  C. R. Ramakrishnan,et al.  Compositional Analysis for Verification of Parameterized Systems , 2003, TACAS.

[70]  Xiaoning Wang,et al.  A Modular Model Checking Algorithm for Cyclic Feature Compositions , 2005 .

[71]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[72]  Pamela Zave,et al.  Feature interactions and formal specifications in telecommunications , 1993, Computer.

[73]  Barbara Paech,et al.  Component-based product line engineering with UML , 2001, Addison Wesley object technology series.

[74]  Mark A. Ardis,et al.  Defining families - Commonality analysis , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[75]  Michael R. Lowry,et al.  Formal Analysis of a Space-Craft Controller Using SPIN , 2001, IEEE Trans. Software Eng..

[76]  Howard Barringer,et al.  Assumption generation for software component verification , 2002, Proceedings 17th IEEE International Conference on Automated Software Engineering,.

[77]  Martín Abadi,et al.  Conjoining specifications , 1995, TOPL.

[78]  Kathi Fisler,et al.  Modular Verification of Open Features Using Three-Valued Model Checking , 2005, Automated Software Engineering.

[79]  Keith H. Bennett,et al.  Software maintenance and evolution: a roadmap , 2000, ICSE '00.

[80]  Kimberly S. Hanks,et al.  The Role of Natural Language in Accident Investigation and Reporting Guidelines , 2002 .

[81]  Josh Dehlinger,et al.  Software fault tree analysis for product lines , 2004, Eighth IEEE International Symposium on High Assurance Systems Engineering, 2004. Proceedings..

[82]  Jan Bosch Software variability management , 2004, Proceedings. 26th International Conference on Software Engineering.

[83]  Tiziana Margaria,et al.  FormulaBuilder: a tool for graph-based modelling and generation of formulae , 2006, ICSE.

[84]  Ivar Jacobson,et al.  Software Reuse: Architecture, Process And Organization For Business Success , 1998, Proceedings. Technology of Object-Oriented Languages. TOOLS 26 (Cat. No.98EX176).

[85]  David Harel,et al.  Come, let's play - scenario-based programming using LSCs and the play-engine , 2003 .

[86]  Paola Inverardi,et al.  A scenario based notation for specifying temporal properties , 2006, SCESM '06.

[87]  Lars Harms-Ringdahl,et al.  Safety Analysis: Principles and Practice in Occupational Safety , 2001 .

[88]  Brian Detlor,et al.  Intelligent mobile crisis response systems , 2005, CACM.

[89]  Jing Liu Handling Safety-Related Feature Interaction in Safety-Critical Product Lines , 2007, 29th International Conference on Software Engineering (ICSE'07 Companion).

[90]  George S. Avrunin,et al.  PROPEL: an approach supporting property elucidation , 2002, ICSE '02.

[91]  Stephan Merz,et al.  Model Checking , 2000 .

[92]  Stefania Gnesi,et al.  A behavioural model for product families , 2007, ESEC/SIGSOFT FSE.

[93]  Pascal Van Hentenryck,et al.  Parameterized interfaces for open system verification of product lines , 2004, Proceedings. 19th International Conference on Automated Software Engineering, 2004..

[94]  R. Lutz,et al.  Mapping concern space to software architecture: a connector-based approach , 2005, MACS@ICSE.

[95]  Samik Basu,et al.  Generating Variation-point Obligations for Compositional Model Checking of Software Product Lines , 2008 .

[96]  Birgit Geppert,et al.  A Tool-supported Technique for Specification & Management of Model-checking Properties for Software Product Lines , 2007 .

[97]  Truong Thang Nguyen,et al.  Incremental verification of consistency in feature-oriented software , 2005 .