A formal approach to adaptive software: continuous assurance of non-functional requirements
Tóm tắt
Modern software systems are increasingly requested to be adaptive to changes in the environment in which they are embedded. Moreover, adaptation often needs to be performed automatically, through self-managed reactions enacted by the application at run time. Off-line, human-driven changes should be requested only if self-adaptation cannot be achieved successfully. To support this kind of autonomic behavior, software systems must be empowered by a rich run-time support that can monitor the relevant phenomena of the surrounding environment to detect changes, analyze the data collected to understand the possible consequences of changes, reason about the ability of the application to continue to provide the required service, and finally react if an adaptation is needed. This paper focuses on non-functional requirements, which constitute an essential component of the quality that modern software systems need to exhibit. Although the proposed approach is quite general, it is mainly exemplified in the paper in the context of service-oriented systems, where the quality of service (QoS) is regulated by contractual obligations between the application provider and its clients. We analyze the case where an application, exported as a service, is built as a composition of other services. Non-functional requirements—such as reliability and performance—heavily depend on the environment in which the application is embedded. Thus changes in the environment may ultimately adversely affect QoS satisfaction. We illustrate an approach and support tools that enable a holistic view of the design and run-time management of adaptive software systems. The approach is based on formal (probabilistic) models that are used at design time to reason about dependability of the application in quantitative terms. Models continue to exist at run time to enable continuous verification and detection of changes that require adaptation.
Từ khóa
Tài liệu tham khảo
Alves A Arkin A Askary S Bloch B Curbera F Goland Y Kartha N Sterling König D Mehta V Thatte S van der Rijn D Yendluri P Yiu A (2006) Web services business process execution language version 2.0. OASIS Committee Draft May 2006
Abreu J Mazzanti F Fiadeiro JL Gnesi S (2009) A model-checking approach for service component architectures. In: FMOODS/FORTE pp 219–224
Barnett M DeLine R Fähndrich M Jacobs B Rustan K Leino M Schulte W Venter H (2005) The spec# programming system: challenges and directions. In: VSTTE pp 144–152
Bertolino A Emmerich W Inverardi P Issarny V Liotopoulos FK Plaza P (2008) Plastic: providing lightweight & adaptable service technology for pervasive information & communication. In: ASE Workshops pp 65–70
Bézivin J (2006) Model driven engineering: an emerging technical space. In: Generative and Transformational Techniques in Software Engineering (GTTSE). LNCS vol 4143. Springer Berlin pp 36–64
Baier C, 2008, Principles of Model Checking
BPEL. http://www.oasis-open.org/
Calinescu R (2009) General-purpose autonomic computing. In: Zhang Y Yang LT Denko MK (eds) Autonomic computing and networking. Springer US pp 3–30
Cheng BHC de Lemos R Giese H Inverardi P Magee J (eds) (2009) Software Engineering for Self-Adaptive Systems [outcome of a Dagstuhl Seminar] Lecture Notes in Computer Science. vol 5525. Springer Berlin
Cavallaro L Di Nitto E Pelliccione P Pradella M Tivoli M (2010) Synthesizing adapters for conversational web-services from their wsdl interface. In: Proceedings of the 2010 ICSE Workshop on Software Engineering for Adaptive and Self-Managing Systems SEAMS ’10. ACM New York pp 104–113
Calinescu R Grunske L Kwiatkowska M Mirandola R Tamburrelli G Dynamic qos management and optimisation in service-based systems. IEEE Trans Softw Eng (to appear)
Calinescu R Kwiatkowska M (2009) Using quantitative analysis to implement autonomic it systems. In: Proceedings of the 31st International Conference on Software Engineering (ICSE 2009) pp 100–110
Epifani I Ghezzi C Mirandola R Tamburrelli G (2009) Model evolution by run-time adaptation. In: Proceedings of the 31st International Conference on Software Engineering IEEE Computer Society pp 111–121
Epifani I Ghezzi C Tamburrelli G (2010) Change-point detection for black-box services. In: Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering FSE ’10. ACM New York pp 227–236
Filieri A Ghezzi C Tamburrelli G (2011) Run-time efficient probabilistic model checking. In: Proceedings of the 33rd International Conference on Software Engineering (to appear)
Gelman A, 2004, Bayesian data analysis
Gallotti S Ghezzi C Mirandola R Tamburrelli G (2008) Quality prediction of service compositions through probabilistic model checking. In: QoSA ’08: Proceedings of the 4th International Conference on the Quality of Software Architectures Karlsruhe Germany
Ghezzi C Motta A Panzica La Manna V Tamburrelli G (2010) Qos driven dynamic binding in-the-many. In: Sixth International Conference on the Quality of Software Architectures QoSA 2010
Grunske L (2008) Specification patterns for probabilistic quality properties. In: Robby (ed) ICSE. ACM pp 31–40
Ghezzi C Tamburrelli G (2009) Reasoning on Non-Functional Requirements for Integrated Services. In: Proceedings of the 17th International Requirements Engineering Conference. IEEE Computer Society pp 69–78
Ghezzi C Tamburrelli G (2009) Predicting performance properties for open systems with KAMI. In: QoSA ’09: Proceedings of the 5th International Conference on the Quality of Software Architectures. Springer-Verlag Berlin pp 70–85
Guide MU (1998) The mathworks. Inc. Natick MA 5
Hellerstein JL (2004) Self-managing systems: a control theory foundation. In: Local Computer Networks vol 0. Annual IEEE Conference pp 708–708
Hahn E Hermanns H Zhang L (2009) Probabilistic reachability for parametric markov models. In: Model Checking Software pp 88–106
Hinton A Kwiatkowska M Norman G Parker D (2006) Prism: A tool for automatic verification of probabilistic systems. In: Proc. 12th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS+06) vol 3920 pp 441–444
Huebscher MC McCann JA (2008) A survey of autonomic computing—degrees models and applications. ACM Comput Surv 40(3):1–28. http://dl.acm.org/citation.cfm?id=1380585
Jackson M Zave P (1995) Deriving specifications from requirements: an example. In: ICSE ’95: Proceedings of the 17th international conference on Software engineering. ACM New York pp 15–24
Katoen J-P Kwiatkowska M Norman G Parker D (2001) Faster and symbolic ctmc model checking. In: de Alfaro L Gilmore S (eds) Process Algebra and Probabilistic Methods. Performance Modelling and Verification vol 2165. Lecture Notes in Computer Science. Springer Berlin pp 23–38
Kramer J Magee J (2007) Self-managed systems: an architectural challenge. In: Future of Software Engineering pp 259–268
Kwiatkowska M Norman G Parker D (2004) Prism 2.0: a tool for probabilistic model checking. In: Quantitative Evaluation of Systems 2004. QEST 2004. Proceedings. First International Conference pp 322–323
Kwiatkowska M Parker D Qu H (2011) Incremental quantitative verificat ion for markov decision processes. (unpublished—submitted for publication)
Kihl M, 2007, Control-theoretic analysis of admission control mechanisms for web server systems, World Wide Web J Springer, 11, 93, 10.1007/s11280-007-0030-0
Katoen J-P Zapreev IS Hahn EM Hermanns H Jansen DN (2010) The ins and outs of the probabilistic model checker mrmc. In: Performance Evaluation Corrected Proof:–2010 (in Press)
Lehman MM Belady LA (eds) (1985) Program evolution: processes of software change. Academic Press London
Meyer B (2007) Contract-driven development. In: FASE
Maggio M Hoffmann H Santambrogio MD Agarwal A Leva A (2010) Controlling software applications via resource allocation within the heartbeats framework. In: CDC pp 3736–3741
Ng KW Tian GL Tang ML (2011) Dirichlet and Related Distributions: Theory Methods and Applications. Wiley Series in Probability and Statistics. Wiley New York
OpenID. http://www.openid.com
Pezze M, 2005, Software testing and analysis: process, principles and techniques
Ross SM, 1996, Stochastic processes
Skene J Lamanna DD Emmerich W (2004) Precise service level agreements. In: Proc. of 26th Intl. Conference on Software Engineering (ICSE). IEEE Press USA pp 179–188
ter Beek MH Fantechi A Gnesi S Mazzanti F (2007) An action/state-based model-checking approach for the analysis of communication protocols for service-oriented applications. In: FMICS pp 133–148
van Lamsweerde A, 2009, Requirements engineering: from System goals to UML models to software specifications
WSDL. http://www.w3.org/2002/ws/desc
Zhang J Cheng BHC (2006) Model-based development of dynamically adaptive software. In: ICSE ACM New York pp 371–380