Design Pattern Representation for Safety-Critical Embedded Systems

Design Patterns, which give abstract solutions to commonly recurring design problems, have been widely used in the software and hardware domain. As non-functional requirements are an important aspect in the design of safety-critical embedded systems, this work focuses on the integration of non-functional implications in an existing design pattern concept. We propose a pattern representation for safety-critical embedded application design methods by including fields for the implications and side effects of the represented design pattern on the non-functional requirements of the overall systems. The considered requirements include safety, reliability, modifiability, cost, and execution time.

[1]  Michael R. Lyu,et al.  An empirical study on reliability modeling for diverse software systems , 2004, 15th International Symposium on Software Reliability Engineering.

[2]  Depaul,et al.  Dynamically Tracing Non-Functional Requirements through Design Pattern Invariants , 2003 .

[3]  Stefan Kowalewski,et al.  Achieving Highly Reliable Embedded Software: An Empirical Evaluation of Different Approaches , 2007, SAFECOMP.

[4]  Algirdas A. Avi The Methodology of N-Version Programming , 1995 .

[5]  Betty H. C. Cheng,et al.  Object analysis patterns for embedded systems , 2004, IEEE Transactions on Software Engineering.

[6]  B. J. Ferro Castro,et al.  Pattern-Oriented Software Architecture: A System of Patterns , 2009 .

[7]  Stuart Bennett,et al.  A taxonomy for software voting algorithms used in safety-critical systems , 2004, IEEE Transactions on Reliability.

[8]  B. Parhami Voting algorithms , 1994 .

[9]  Stefan Kowalewski,et al.  Effective Pattern Representation for Safety Critical Embedded Systems , 2008, 2008 International Conference on Computer Science and Software Engineering.

[10]  Rudolf K. Keller,et al.  Design and Reuse in Object-Oriented Frameworks: Patterns, Contracts, and Motifs in Concert , 1994, COODBSE.

[11]  Behrooz Parhami Design of reliable software via general combination of N-version programming and acceptance testing , 1996, Proceedings of ISSRE '96: 7th International Symposium on Software Reliability Engineering.

[12]  Michael R. Lyu,et al.  Handbook of software reliability engineering , 1996 .

[13]  Peter Coad,et al.  Object-oriented patterns , 1992, CACM.

[14]  David F. McAllister,et al.  Reliability of voting in fault-tolerant software systems for small output-spaces , 1990 .

[15]  Algirdas Avizienis,et al.  The N-Version Approach to Fault-Tolerant Software , 1985, IEEE Transactions on Software Engineering.

[16]  Bev Littlewood,et al.  A note on reliability estimation of functionally diverse systems , 1999 .

[17]  C Haythornwaite,et al.  Gamma, E., Helm, R., Johnson, R. & Vlissides, J. Design Patterns: Elements of Reusable Object Oriented Software. New York: Addison-Wesley, 1995. , 2002 .

[18]  Bev Littlewood,et al.  Conceptual Modeling of Coincident Failures in Multiversion Software , 1989, IEEE Trans. Software Eng..

[19]  Neil R. Storey,et al.  Safety-critical computer systems , 1996 .

[20]  Sam S. Adams Functionality ala carte , 1995 .

[21]  Chamond Liu,et al.  New clients with old servers: a pattern language for client/server frameworks , 1995 .

[22]  A. Singh,et al.  Fault-tolerant systems , 1990, Computer.

[23]  Daniel Gross,et al.  From Non-Functional Requirements to Design through Patterns , 2001, Requirements Engineering.

[24]  James Coplien,et al.  Idioms And Patterns As Architectural Literature , 1997, IEEE Softw..

[25]  Dirk Riehle,et al.  A pattern language for tool construction and integration based on the tools and materials metaphor , 1995 .

[26]  Max Jacobson,et al.  A Pattern Language: Towns, Buildings, Construction , 1981 .

[27]  Jean Arlat,et al.  Reliability growth of fault-tolerant software , 1993 .

[28]  Nancy G. Leveson,et al.  An experimental evaluation of the assumption of independence in multiversion programming , 1986, IEEE Transactions on Software Engineering.

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

[30]  Yiu-Wing Leung,et al.  Maximum likelihood voting for fault-tolerant software with finite output-space , 1995 .

[31]  B. F. Castro Buschmann, Frank; Meunier, Regine; Rohnert, Hans; Sommerlad, Peter; Stal, Michael. Pattern-oriented software architecture: a system of patterns, John Wiley & Sons Ltd, 1996 , 1997 .

[32]  D. Richardson,et al.  An architectural pattern for non-functional dependability requirements , 2005, WADS@ICSE.

[33]  Betty H. C. Cheng,et al.  Requirements patterns for embedded systems , 2002, Proceedings IEEE Joint International Conference on Requirements Engineering.

[34]  Bonnie Lee Appleton Patterns and Software: Essential Concepts and Terminology , 1997 .

[35]  Bruce Powel Douglass Real-Time Design Patterns , 1999 .

[36]  Mladen A. Vouk,et al.  The Reliable Hybrid Pattern A Generalized Software Fault Tolerant Design Pattern , 1997 .

[37]  Peter G. Bishop,et al.  An Empirical Exploration of the Difficulty Function , 2004, SAFECOMP.

[38]  Jane Cleland-Huang,et al.  Softgoal Traceability Patterns , 2006, 2006 17th International Symposium on Software Reliability Engineering.