Abstract
With the increase in the complexity of safety-critical embedded applications, the reliability analysis of such systems have also become increasingly difficult. For such complex system specifications, if the reliability provisions are declared upfront in the design flow then the overall system level reliability can be easily inferred given that the system components satisfy their individual reliability requirements. Moreover, such an early-stage specification and analysis paves newer and scalable ways for synthesis of reliable systems. This paper develops a reliability specification and analysis framework, RELSPEC, which enables system level reliability analysis at an early-stage of design by leveraging automatically constructed intermediate probabilistic models of the system. In addition to this, we provide a mechanized method of system synthesis with the objective of satisfying a target reliability value for the overall system. To this end, we explore the application of existing optimization methods and also provide domain specific techniques which outperform such existing methods. Experiments over a few automotive case-studies show the efficacy of this methodology.
Similar content being viewed by others
Notes
In such cases, the actual implementation of the function may not be available. However, if the values returned by the function effect downstream computation, then we assume that the functional specification is known. That is definitely required for carrying out a “whole-program” analysis.
In that way, one may model any distribution as piecewise uniform discrete distribution.
This restriction is required for source level static analysis as will be revealed later.
The value of an input variable is bounded by the number of bits used by the data type in the worst case.
f defines the data flow relationship between iterator value and number of loop iterations.
The largeness is presently defined by a threshold parameter in our implementation.
We do not provide any specific statement class for assertions and model their semantics using that of if-else.
A child region can be generated in many shapes but following [56], we also restrict ourselves to regions that are hypercuboid in shape.
\({\varGamma }_B\) and \({\varGamma }_M\) are the base and max configurations of the system respectively.
It may be noted that the reduction in execution time for the reliability target 0.995 happens for all the MSA algorithm variants since the binary nature of the search is always able to quickly detect any reliability target being unreachable (as is the case with 0.995).
References
Baier C, Katoen JP et al (2008) Principles of model checking, vol 26202649. MIT Press, Cambridge
Ball T, Majumdar R, Millstein T, Rajamani SK (2001) Automatic predicate abstraction of c programs. In: Programming language design and implementation. ACM, pp 203–213
Bonami P, Kilinç M, Linderoth J (2012) Algorithms and software for convex mixed integer nonlinear programs. In: Mixed integer nonlinear programming. Springer, Berlin, pp 1–39
Booch G, Rumbaugh J, Jacobson I (1996) The unified modeling language. Unix Rev 14(13):5
Carbin M, Misailovic S, Rinard MC (2013) Verifying quantitative reliability for programs that execute on unreliable hardware. ACM SIGPLAN Not 48(10):33–52
Cheng Y, Sun X, Yin YL (2008) Searching monotone multi-dimensional arrays. Discrete Math 308(11):2213–2221
Cheung RC (1980) A user-oriented software reliability model. IEEE Trans Softw Eng 6(2):118–125
Cuoq P, Kirchner F, Kosmatov N, Prevosto V, Signoles J, Yakobowski B (2012) Frama-c. In: Software engineering and formal methods. Springer, Berlin, pp 233–247
Day TD, Roberts SG (2002) A simulation model for vehicle braking systems fitted with abs. Tech. rep, SAE Technical Paper
De Loera JA, Hemmecke R, Tauzer J, Yoshida R (2004) Effective lattice point counting in rational convex polytopes. J Symb Comput 38(4):1273–1302
Dijkstra EW (1975) Guarded commands, nondeterminacy and formal derivation of programs. Commun ACM 18(8):453–457
Farr WH, Smith OD (1988) A tool for statistical modeling and estimation of reliability functions for software: Smerfs. J Syst Softw 8(1):47–55
Flanagan C, Saxe JB (2001) Avoiding exponential explosion: generating compact verification conditions. ACM SIGPLAN Not 36(3):193–205
Ghosh SK, Hazra A, Dey S (2015) Relspec: a framework for early reliability refinement of embedded applications. In: International conference on VLSI design. IEEE, pp 41–46
Gokhale S, Trivedi KS (1997) Structure-based software reliability prediction. In: International conference on advanced computing. Citeseer
Gokhale SS (2007) Architecture-based software reliability analysis: overview and limitations. IEEE Trans Dependable Secure Comput 4(1):32–40
Gokhale SS, Trivedi KS (2002) Reliability prediction and sensitivity analysis based on software architecture. In: International symposium on software reliability engineering. IEEE, pp 64–75
Gokhale SS, Wong WE, Trivedi KS, Horgan J (1998) An analytical approach to architecture-based software reliability prediction. In: International computer performance and dependability symposium. IEEE, pp 13–22
Goseva-Popstojanova K, Mathur AP, Trivedi KS (2001) Comparison of architecture-based software reliability models. In: International symposium on software reliability engineering. IEEE, pp 22–31
Goševa-Popstojanova K, Trivedi KS (2001) Architecture-based approach to reliability assessment of software systems. Perform Eval 45(2):179–204
Gupta A, Rybalchenko A (2009) Invgen: An efficient invariant generator. In: Computer aided verification. Springer, Berlin, pp 634–640
Gustafsson J, Ermedahl A, Sandberg C, Lisper B (2006) Automatic derivation of loop bounds and infeasible paths for WCET analysis using abstract execution. In: International real-time systems symposium. IEEE, pp 57–66
Hazra A, Ghosh P, Vadlamudi SG, Chakrabarti PP, Dasgupta P (2013) Formal methods for early analysis of functional reliability in component-based embedded applications. Embed Syst Lett 5(1):8–11
Hsu CJ, Huang CY (2011) An adaptive reliability analysis using path testing for complex component-based software systems. IEEE Trans Reliab 60(1):158–170
Immonen A, Niemelä E (2008) Survey of reliability and availability prediction methods from the viewpoint of software architecture. Softw Syst Model 7(1):49–65
Jifeng H, Seidel K, McIver A (1997) Probabilistic models for the guarded command language. Sci Comput Program 28(2):171–192
Karsai G, Sztipanovits J, Ledeczi A, Bapty T (2003) Model-integrated development of embedded software. Proc IEEE 91(1):145–164
Koren I, Krishna CM (2010) Fault-tolerant systems. Morgan Kaufmann, Los Altos
Krishnamurthy S, Mathur AP (1997) On the estimation of reliability of a software system using reliabilities of its components. In: International symposium on software reliability engineering. IEEE, pp 146–155
Kubat P (1989) Assessing reliability of modular software. Oper Res Lett 8(1):35–41
Kwiatkowska M, Norman G, Parker D (2011) Prism 4.0: Verification of probabilistic real-time systems. In: Computer aided verification. Springer, Berlin, pp 585–591
Labuhn PI, Chundrlik Jr WJ (1995) Adaptive cruise control. US Patent 5,454,442
Laprie JC (1984) Dependability evaluation of software systems in operation. IEEE Trans Softw Eng 10(6):701–714
Ledoux J (1999) Availability modeling of modular software. IEEE Trans Reliab 48(2):159–168
Leino KRM (2005) Efficient weakest preconditions. Inf Process Lett 93(6):281–288
Li C, Zhou X, Wang Y, Dong Y (2009) An improved path-based reliability prediction model for component-based embedded software. In: International conference on frontier of computer science and technology. IEEE, pp 301–307
Littlewood B (1975) A reliability model for systems with markov structure. Appl Stat 24(2):172–177
Littlewood B (1979) Software reliability model for modular program structure. IEEE Trans Reliab 28(3):241–246
Littlewood B, Verrall J (1973) A bayesian reliability growth model for computer software. Appl Stat 22(3):332–346
Lohar D, Dey S (2015) Integrating formal methods with testing for reliability estimation of component based systems. In: International symposium on software reliability engineering, p. to appear. IEEE
Lyu MR, Nikora A (1992) Casre: a computer-aided software reliability estimation tool. In: International workshop on computer-aided software engineering. IEEE, pp 264–275
Lyu MR, et al (1996) Handbook of software reliability engineering, vol 222. IEEE Computer Society Press, CA
Malaiya YK, Li MN, Bieman JM, Karcich R (2002) Software reliability growth with test coverage. IEEE Trans Reliab 51(4):420–426
Malakova M, Dimov A, Dimov D (2012) Soregene: a software reliability modelling tool. In: International conference on computer systems and technologies. ACM, pp 179–186
MathWorks: Model-Based Design. www.mathworks.in/model-based-design/
MathWorks: Simulink. www.mathworks.in/products/simulink/
MathWorks: Stateflow. www.mathworks.in/products/stateflow/
Musa JD, Iannino A, Okumoto K (1987) Software reliability: measurement, prediction, application. McGraw-Hill, Inc., NY
Nielson F, Nielson HR, Hankin C (1999) Principles of program analysis. Springer, Berlin
Oldenkamp H (2007) Probabilistic model checking: a comparison of tools. Master’s thesis, University of Twente, Enschede, Netherlands
Pratt VR (1979) Models of program logics. In: Foundations of computer science. IEEE, pp 115–122
ReliaSoft Corporation: BlockSim. http://www.reliasoft.com/BlockSim/index.html
Roychoudhury A (2009) Embedded systems and software validation. Morgan Kaufmann, Los Altos
Sahner RA, Trivedi KS (1987) Reliability modeling using sharpe. IEEE Trans Reliab 36(2):186–193
Shooman ML (1976) Structural models for software reliability prediction. In: International conference on software engineering. IEEE Computer Society Press, pp 268–280
Vadlamudi SG, Chakrabarti PP (2014) Robustness analysis of embedded control systems with respect to signal perturbations: finding minimal counterexamples using fault injection. IEEE Trans Dependable Secure Comput 11(1):45–58
Wang WL, Pan D, Chen MH (2006) Architecture-based software reliability modeling. J Syst Softw 79(1):132–146
Xie M (1991) Software reliability modelling, vol 1. World Scientific, Singapore
Yacoub SM, Cukic B, Ammar HH (1999) Scenario-based reliability analysis of component-based software. In: International symposium on software reliability engineering. IEEE, pp 22–31
Author information
Authors and Affiliations
Corresponding author
Additional information
This work was supported by a TCS Research Fellowship.
Rights and permissions
About this article
Cite this article
Ghosh, S.K., Vishnuvardhan, P., Vadlamudi, S.G. et al. RELSPEC: a framework for reliability aware design of component based embedded systems. Des Autom Embed Syst 21, 37–87 (2017). https://doi.org/10.1007/s10617-017-9183-y
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10617-017-9183-y