Abstract
Dependability is an important quality attribute for today’s software systems, and the decisions made at the architectural design stage play a key role in the dependability of software products. Architecture-level dependability evaluation techniques are effective only if they support a practical architecture modelling notation and consider the impact of execution environment, error propagation and usage profile on dependability. Regarding these factors, the objective of this paper is to introduce a new method for evaluating the dependability of software architectures. UML is the de facto standard for modelling software architectures, and DAM is the most comprehensive UML profile supporting dependability annotations. In this paper, UML–DAM models are transformed into a hierarchical and coloured extension of stochastic activity networks and the dependability measures are quantified using the activity-marking oriented reward structures. The transformation and evaluation processes are detailed and implemented in a software tool. Also, to validate the applicability of the method, a case study is presented.
Similar content being viewed by others
References
Bass L, Clements P, Kazman R (2012) Software architecture in practice. Pearson Education, London
Mustafiz S, Sun X, Kienzle J, Vangheluwe H (2008) Model-driven assessment of system dependability. J Softw Syst Model 7:487–502
Bernardi S, Merseguer J, Petriu DC (2012) Dependability modelling and analysis of software systems specified with UML. ACM Comput Surv 45:1–48
Immonen A, Niemelä E (2008) Survey of reliability and availability prediction methods from the viewpoint of software architecture. J Softw Syst Model 7:49–65
Becker S, Koziolek H, Reussner R (2009) The Palladio component model for model-driven performance prediction. J Syst Softw 82:3–22
Feiler PH, Lewis BA, Vestal S (2007) The SAE architecture analysis and design language (AADL) a standard for engineering performance critical systems. In: Proceedings of CACSD-CCA-ISIC, Munich, Germany, 4–6. IEEE, pp 1206–1211
Sharma VS, Trivedi KS (2007) Quantifying software performance, reliability and security: an architecture-based approach. J Syst Softw 80:493–509
Cheung L, Roshandel R, Medvidovic N, Golubchik L (2008) Early prediction of software component reliability. In: Proceedings of ICSE 08, Austin, TX, 15–21 May. ACM, pp 111–120
Sharma V, Trivedi KS (2006) Reliability and performance of component based software systems with restarts, retries, reboots and repairs. In: Proceedings of ISSRE 06, Raleigh, NC, 7–10 Nov. IEEE, pp 299–310
Franco JM, Barbosa R, Zenha-Rela M (2012) Automated reliability prediction from formal architectural descriptions. In: Proceedings of WICSA-ECSA, Helsinki, Finland, 20–24 Aug. IEEE, pp 302–309
Pham T-T, Défago X (2013) Reliability prediction for component-based software systems with architectural-level fault tolerance mechanisms. In: Proceedings of ARES 13, Regensburg, Germany, 2–6 Sept. IEEE, pp 11–20
Pham T-T, Défago X, Huynh Q-T (2014) Reliability prediction for component-based software systems: dealing with concurrent and propagating errors. Sci Comput Program 97:426–457
Brosch F, Koziolek H, Buhnova B, Reussner R (2010) Parameterized reliability prediction for component-based software architectures. In: Heineman GT, Kofron J, Plasil F (eds) Research into practice-reality and gaps. Springer, Berlin
Reussner RH, Schmidt HW, Poernomo IH (2003) Reliability prediction for component-based software architectures. J Syst Softw 66:241–252
Majzik I, Pataricza A, Bondavalli A (2003) Stochastic dependability analysis of system architecture based on UML models. In: Lemos R, Gacek C, Romanovsky A (eds) Architecting dependable systems. Springer, Berlin
Pai GJ, Dugan JB (2002) Automatic synthesis of dynamic fault trees from UML system models. In: Proceedings of ISSRE’02. IEEE, pp 243–254
Rodrigues G, Rosenblum D, Uchitel S (2005) Reliability prediction in model-driven development. In: Briand L, Williams C (eds) Model driven engineering languages and systems. Springer, Berlin, pp 339–354
Bernardi S, Merseguer J, Petriu DC (2011) A dependability profile within MARTE. J Softw Syst Model 10:313–336
Abdollahi Azgomi M, Movaghar A (2003) Coloured stochastic activity networks: preliminary definitions and properties. In: Proceedings of ICALP’03 satellite workshop on stochastic Petri nets and related formalisms, Eindhoven, Netherlands, 28–29 June. pp 154–169
Abdollahi Azgomi M (2005) High-level extensions for stochastic activity networks: theories, tools and applications. Ph.D. Thesis, Sharif University of Technology (in Persian)
Sedaghatbaf A, Abdollahi Azgomi M (2014) Attack modelling and security evaluation based on stochastic activity networks. Secur Commun Netw 7:714–737
Meyer JF, Movaghar A, Sanders WH (1985) Stochastic activity networks: structure, behaviour, and application. In: Proceedings of IWTPN 85. IEEE, pp 106–115
Movaghar A (2001) Stochastic activity networks: a new definition and some properties. Sci Iran 8:303–311
Sedaghatbaf A, Abdollahi Azgomi M (2015) Software architecture modelling and evaluation based on stochastic activity networks. Lect Notes Comput Sci (LNCS) 9392:46–53
Ajmone Marsan M, Balbo G, Conte G, Donatelli S, Franceschinis G (1998) Modelling with generalized stochastic Petri nets. Wiley, New York
Distefano S, Scarpa M, Puliafito A (2011) From UML to Petri nets: the PCM-based methodology. IEEE Trans Softw Eng 37:65–79
Garlan D, Monroe R, Wile D (2010) Acme: an architecture description interchange language. In: Proceedings of CASCON’10, Toronto, CA, 1–4 Nov. IBM Corp, pp 159–173
Brosch F, Koziolek H, Buhnova B, Reussner R (2012) Architecture-based reliability prediction with the Palladio component model. IEEE Trans Softw Eng 38:1319–1339
Bernardi S, Flammini F, Marrone S, Merseguer J, Papa C, Vittorini V (2011) Model-driven availability evaluation of railway control systems. In: Flamini F, Bologna S, Vittorini V (eds) Computer safety, reliability, and security. Springer, Berlin
Bernardi S, Flammini F, Marrone S, Mazzocca N, Merseguer J, Nardone R, Vittorini V (2013) Enabling the usage of UML in the verification of railway systems: the DAM-rail approach. Reliab Eng Syst Saf 120:112–126
Merseguer J, Bernardi S (2011) Dependability analysis of DES based on MARTE and UML state machine models. Discrete Event Dyn Syst 22:163–178
Berardinelli L, Bernardi S, Cortellessa V (2009) UML profiles for non-functional properties at work: analyzing reliability, availability and performance. NFPinDSML@ MoDELS
Filieri A, Ghezzi C, Grassi V, Mirandola R (2010) Reliability analysis of component-based systems with multiple failure modes. In: Grunse L, Reussner R, Plasil L (eds) Component-based software engineering. Springer, Berlin
Pham T-T, Defago X (2012) Reliability prediction for component-based systems: incorporating error propagation analysis and different execution models. In: Proceedings of QSIC 12, X’ian, Shaanxi, 27–29 Aug. IEEE, pp 106–115
2011-06-02 (2011) A UML Profile for MARTE: modelling and analysis of real-time embedded systems. Object Management Group
Westland JC, Suma V, Nair TRG, Sullivan M, Chillarege R, Kumaresh S, Engineering S, Practices B (1991) Handbook of software reliability engineering. IEEE Computer Society Press, Washington, DC
Research Report No. 722 (1999) Numerical analysis of generalized semi-Markov processes. Dept. of CS, University of Dortmund, Dortmund
Nilsen FB (1998) GMSim: a tool for compositional GSMP modelling. In: Proceedings of WSC 98, Washington, DC, 13–16 Dec. IEEE, pp 555–562
SQME Tool Web Page (2015) [Online] http://twcl.iust.ac.ir/projects/sqme.html
Gérard S, Dumoulin C, Tessier P, Selic B (2010) 19 Papyrus: a UML2 tool for domain-specific language modelling. In: Giese H, Karsai G, Lee E, Rumpe B, Schatz B (eds) Model-based engineering of embedded real-time systems. Springer, Berlin
DICE Profiles (2016) [Online] http://dice-project.github.io/DICE-Profiles/
Howell F, McNab R (1998) SimJava: a discrete event simulation library for java. In: Proceedings of SPIE 98, San Diego, CA, 11–14 Jan. pp 51–56
Musa JD, Iannino A, Okumoto K (1987) Software reliability: measurement, prediction, application. McGraw-Hill, New York
Goševa-Popstojanova K, Trivedi KS (2001) Architecture-based approach to reliability assessment of software systems. Perform Eval 45:179–204
Goševa-Popstojanova K, Kamavaram S (2003) Assessing uncertainty in reliability of component-based software systems. In: Proceedings of ISSRE 03, 17–20 Nov. IEEE, pp 307–320
Rodríguez RJ, Merseguer J, Bernardi S (2010) Modelling and analysing resilience as a security issue within UML. In: Proceedings of the 2nd international workshop on software engineering for resilient systems, Luxembourg, 15–18 Apr. ACM, pp 42–51
Avizienis A, Laprie J-C, Randell B, Landwehr C (2004) Basic concepts and taxonomy of dependable and secure computing. IEEE Trans Dependable Secure Comput 1(1):11–33
Author information
Authors and Affiliations
Corresponding author
Electronic supplementary material
Below is the link to the electronic supplementary material.
Rights and permissions
About this article
Cite this article
Sedaghatbaf, A., Abdollahi Azgomi, M. A method for dependability evaluation of software architectures. Computing 100, 119–150 (2018). https://doi.org/10.1007/s00607-017-0568-3
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00607-017-0568-3
Keywords
- Software architecture
- Dependability evaluation
- Stochastic activity networks (SANs)
- Activity-marking oriented reward structures