Skip to main content
Erschienen in: International Journal on Software Tools for Technology Transfer 1/2016

01.02.2016 | Regular Paper

Model-driven generation of runtime checks for system properties

verfasst von: Mauro Pezzé, Jochen Wuttke

Erschienen in: International Journal on Software Tools for Technology Transfer | Ausgabe 1/2016

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Creating runtime monitors for interesting properties is an important research problem. Existing approaches to runtime verification require specifications that not only define the property to monitor, but also contain details of the implementation, sometimes even requiring the implementation to add special variables or methods for monitoring. Often intuitive properties such as “event X should only happen when objects A and B agree” have to be translated by developers into complex specifications, for example, pre- and post-conditions on several methods that only in concert express this simple property. In most specification languages, the result of this manual translation are specifications that are so strongly tailored to the program at hand and the objects involved that, even if the property occurs again in a similar program, the whole translation process has to be repeated to create a new specification. In this paper, we introduce the concept of property templates. Property templates are pre-defined constraints that can be easily reused in specifications. They are part of a model-driven framework that translates high-level specifications into runtime monitors specialized to the problem at hand. The framework is extensible: Developers can define property templates for constraints they often need and can specialize the code generation when the default implementation is not satisfactory. We demonstrate the use of the framework in some case studies using a set of functional and structural constraints that we developed through an extensive study of existing software specifications. The key innovations of the approach we present are three. First, the properties developed with this approach are reusable and apply to a wide range of software systems, rather than being ad hoc and tailored to one particular program. Second, the properties are defined at a relatively high level of abstraction, so that no detailed knowledge of the implementation is needed to decide whether a given property applies. Third, we separate the definition of precise assertions for properties, and the use of properties. That way, experts can determine which assertions are needed to assure properties, and other developers can easily use these definitions to annotate systems.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Anhänge
Nur mit Berechtigung zugänglich
Literatur
1.
Zurück zum Zitat Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: an overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) Proceedings of the International Workshop on the Construction and Analysis of Safe, Secure, and Interoperable Systems, CASSIS 2004, Series. Lecture Notes in Computer Science, vol. 3362, pp. 49–69. Springer, New York (2004) Barnett, M., Leino, K.R.M., Schulte, W.: The Spec# programming system: an overview. In: Barthe, G., Burdy, L., Huisman, M., Lanet, J.-L., Muntean, T. (eds.) Proceedings of the International Workshop on the Construction and Analysis of Safe, Secure, and Interoperable Systems, CASSIS 2004, Series. Lecture Notes in Computer Science, vol. 3362, pp. 49–69. Springer, New York (2004)
2.
Zurück zum Zitat de Caso, G., Braberman, V., Garbervetsky, D., Uchitel, S.: Validation of contracts using enabledness preserving finite state abstractions. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09. IEEE Computer Society, pp. 452–462 (2009) de Caso, G., Braberman, V., Garbervetsky, D., Uchitel, S.: Validation of contracts using enabledness preserving finite state abstractions. In: Proceedings of the 31st International Conference on Software Engineering, ICSE ’09. IEEE Computer Society, pp. 452–462 (2009)
3.
Zurück zum Zitat Leavens, G.T‘., Baker, A.L., Ruby, C.: JML: a notation for detailed design. In: Kiloc, H., Rumpe, B., Simmonds, I. (eds.) Behavioral Specifications of Businesses and Systems, Chapter 12, pp. 175–188. Kluwer, Boston (1999)CrossRef Leavens, G.T‘., Baker, A.L., Ruby, C.: JML: a notation for detailed design. In: Kiloc, H., Rumpe, B., Simmonds, I. (eds.) Behavioral Specifications of Businesses and Systems, Chapter 12, pp. 175–188. Kluwer, Boston (1999)CrossRef
4.
Zurück zum Zitat Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, London (1997)MATH Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice Hall, London (1997)MATH
5.
Zurück zum Zitat Rosenblum, D.S.: A practical approach to programming with assertions. IEEE Trans. Softw. Eng. 21(1), 19–31 (1995)CrossRef Rosenblum, D.S.: A practical approach to programming with assertions. IEEE Trans. Softw. Eng. 21(1), 19–31 (1995)CrossRef
6.
Zurück zum Zitat Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, pp. 345–364 (Online). doi:10.1145/1094811.1094839 (2005) Allan, C., Avgustinov, P., Christensen, A.S., Hendren, L., Kuzins, S., Lhoták, O., de Moor, O., Sereni, D., Sittampalam, G., Tibble, J.: Adding trace matching with free variables to AspectJ. In: Proceedings of the 20th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, pp. 345–364 (Online). doi:10.​1145/​1094811.​1094839 (2005)
7.
Zurück zum Zitat Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. In: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, Series OOPSLA ’07, pp. 589–608 (online). doi:10.1145/1297027.1297070 (2007) Avgustinov, P., Tibble, J., de Moor, O.: Making trace monitors feasible. In: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, Series OOPSLA ’07, pp. 589–608 (online). doi:10.​1145/​1297027.​1297070 (2007)
8.
Zurück zum Zitat Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Comput. 20(3), 675–706 (2010)CrossRefMathSciNetMATH Barringer, H., Rydeheard, D., Havelund, K.: Rule systems for run-time monitoring: from EAGLE to RULER. J. Logic Comput. 20(3), 675–706 (2010)CrossRefMathSciNetMATH
9.
Zurück zum Zitat Bodden, E., Lam, P., Hendren, L.: Clara: a framework for partially evaluating finite-state runtime monitors ahead of time. In: Proceedings of the First International Conference on Runtime Verification ’10. Springer, Berlin, pp. 183–197. doi:10.1007/978-3-642-16612-9_15 (2010) Bodden, E., Lam, P., Hendren, L.: Clara: a framework for partially evaluating finite-state runtime monitors ahead of time. In: Proceedings of the First International Conference on Runtime Verification ’10. Springer, Berlin, pp. 183–197. doi:10.​1007/​978-3-642-16612-9_​15 (2010)
10.
Zurück zum Zitat Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, OOPSLA ’07. ACM, pp. 569–588 (2007) Chen, F., Roşu, G.: MOP: an efficient and generic runtime verification framework. In: Proceedings of the 22nd ACM SIGPLAN Conference on Object-Oriented Programming Systems and Applications, OOPSLA ’07. ACM, pp. 569–588 (2007)
11.
Zurück zum Zitat Drusinsky, D., Shing, M.-T.: Using UML statecharts with knowledge logic guards. In: Schürr, A., Selic, B. (eds.) Model Driven Engineering Languages and Systems, Series Lecture Notes in Computer Science, vol. 5795, pp. 586–590. Springer, Berlin (2009). doi:10.1007/978-3-642-04425-0_45 CrossRef Drusinsky, D., Shing, M.-T.: Using UML statecharts with knowledge logic guards. In: Schürr, A., Selic, B. (eds.) Model Driven Engineering Languages and Systems, Series Lecture Notes in Computer Science, vol. 5795, pp. 586–590. Springer, Berlin (2009). doi:10.​1007/​978-3-642-04425-0_​45 CrossRef
12.
Zurück zum Zitat Havelund, K., Roşu, G.: Monitoring Java programs with Java PathExplorer. Electron. Notes Theor. Comput. Sci. 55(2), 200–217 (2001)CrossRef Havelund, K., Roşu, G.: Monitoring Java programs with Java PathExplorer. Electron. Notes Theor. Comput. Sci. 55(2), 200–217 (2001)CrossRef
13.
Zurück zum Zitat Meredith, P., Jin, D., Chen, F., Roşu, G.: Efficient monitoring of parametric context-free patterns. J Autom. Softw. Eng. 17(2), 149–180 (2010)CrossRef Meredith, P., Jin, D., Chen, F., Roşu, G.: Efficient monitoring of parametric context-free patterns. J Autom. Softw. Eng. 17(2), 149–180 (2010)CrossRef
14.
Zurück zum Zitat Dzidek, W.J., Briand, L.C., Labiche, Y.: Lessons learned from developing a dynamic OCL constraint enforcement tool for Java. In: Satellite Events at the MoDELS 2005 Conference, Series Lecture Notes in Computer Science, vol. 3844. Springer, Berlin, pp 10–19 (2005) Dzidek, W.J., Briand, L.C., Labiche, Y.: Lessons learned from developing a dynamic OCL constraint enforcement tool for Java. In: Satellite Events at the MoDELS 2005 Conference, Series Lecture Notes in Computer Science, vol. 3844. Springer, Berlin, pp 10–19 (2005)
15.
Zurück zum Zitat Luckham, D.C., Kerry, J.J., Augustin, L.M., Vare, J., Bryan, D., Mann, W.: Specification and analysis of system architecture using Rapide. IEEE Trans. Softw. Eng. 21(4), 336–355 (1995)CrossRef Luckham, D.C., Kerry, J.J., Augustin, L.M., Vare, J., Bryan, D., Mann, W.: Specification and analysis of system architecture using Rapide. IEEE Trans. Softw. Eng. 21(4), 336–355 (1995)CrossRef
16.
Zurück zum Zitat Stirewalt, K., Rugaber, S.: Automated invariant maintenance via OCL compilation. In: Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems, MODELS 2005. Springer, Berlin, pp. 616–632 (2005) Stirewalt, K., Rugaber, S.: Automated invariant maintenance via OCL compilation. In: Proceedings of the 8th International Conference on Model Driven Engineering Languages and Systems, MODELS 2005. Springer, Berlin, pp. 616–632 (2005)
17.
Zurück zum Zitat Wang, K., Shen, W.: Runtime checking of UML association-related constraints. In: Proceedings of the 5th International Workshop on Dynamic Analysis, WODA ’07. IEEE Computer Society (2007) Wang, K., Shen, W.: Runtime checking of UML association-related constraints. In: Proceedings of the 5th International Workshop on Dynamic Analysis, WODA ’07. IEEE Computer Society (2007)
18.
Zurück zum Zitat Ciupa, I., Meyer, B., Oriol, M., Pretschner, A.: Finding faults: manual testing vs. random testing + vs. user reports. In: Technical Report, vol. 595. Department of Computer Science, ETH Zurich (2008) Ciupa, I., Meyer, B., Oriol, M., Pretschner, A.: Finding faults: manual testing vs. random testing + vs. user reports. In: Technical Report, vol. 595. Department of Computer Science, ETH Zurich (2008)
19.
Zurück zum Zitat Voas, J.M., Miller, K.W.: Putting assertions in their place. In: Proceedings of the 5th International Symposium on Software Reliability Engineering, ISSRE’ 94, pp. 152–157 (1994) Voas, J.M., Miller, K.W.: Putting assertions in their place. In: Proceedings of the 5th International Symposium on Software Reliability Engineering, ISSRE’ 94, pp. 152–157 (1994)
20.
Zurück zum Zitat Pike, L., Niller, S., Wegmann, N.: Runtime verification for ultra-critical systems. In: Khurshid, S., Sen, K. (eds.) Runtime Verification, Series Lecture Notes in Computer Science, vol. 7186, pp. 310–324. Springer, Berlin (2012). doi:10.1007/978-3-642-29860-8_23 Pike, L., Niller, S., Wegmann, N.: Runtime verification for ultra-critical systems. In: Khurshid, S., Sen, K. (eds.) Runtime Verification, Series Lecture Notes in Computer Science, vol. 7186, pp. 310–324. Springer, Berlin (2012). doi:10.​1007/​978-3-642-29860-8_​23
21.
Zurück zum Zitat Wu, G., Wei, J., Ye, C., Shao, X., Zhong, H., Huang, T.: Runtime verification of data-centric properties in service based systems. In: Khurshid, S., Sen, K. (eds.) Runtime Verification, Series Lecture Notes in Computer Science, vol. 7186, pp. 325–341. Springer, Berlin (2012). doi:10.1007/978-3-642-29860-8_24 Wu, G., Wei, J., Ye, C., Shao, X., Zhong, H., Huang, T.: Runtime verification of data-centric properties in service based systems. In: Khurshid, S., Sen, K. (eds.) Runtime Verification, Series Lecture Notes in Computer Science, vol. 7186, pp. 325–341. Springer, Berlin (2012). doi:10.​1007/​978-3-642-29860-8_​24
22.
Zurück zum Zitat Goldsmith, S.F., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, pp. 385–402 (online). doi:10.1145/1094811.1094841 (2005) Goldsmith, S.F., O’Callahan, R., Aiken, A.: Relational queries over program traces. In: Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, pp. 385–402 (online). doi:10.​1145/​1094811.​1094841 (2005)
23.
Zurück zum Zitat Martin, M., Livshits, B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, ACM, New York, pp. 365–383 (online). doi:10.1145/1094811.1094840 (2005) Martin, M., Livshits, B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: Proceedings of the 20th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Series OOPSLA ’05, ACM, New York, pp. 365–383 (online). doi:10.​1145/​1094811.​1094840 (2005)
25.
Zurück zum Zitat Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance approach for Java programs. Formal Methods Syst. Des. 24, 129–155 (2004)CrossRefMATH Kim, M., Viswanathan, M., Kannan, S., Lee, I., Sokolsky, O.: Java-MaC: a run-time assurance approach for Java programs. Formal Methods Syst. Des. 24, 129–155 (2004)CrossRefMATH
26.
Zurück zum Zitat The Object Management Group: OMG Unified Modeling Language Superstructure. (adopted specification formal/2007-11-02, http://www.omg.org). Accessed 02 Jan 2008 (2007) The Object Management Group: OMG Unified Modeling Language Superstructure. (adopted specification formal/2007-11-02, http://​www.​omg.​org). Accessed 02 Jan 2008 (2007)
27.
Zurück zum Zitat The Object Management Group: Object Constraint Language (available specification formal/06-05-01, http://www.omg.org). Accessed 11 Dec 2006 (2005) The Object Management Group: Object Constraint Language (available specification formal/06-05-01, http://​www.​omg.​org). Accessed 11 Dec 2006 (2005)
28.
Zurück zum Zitat Hein, C., Ritter, T., Wagner, M.: System monitoring using constraint checking as part of model based system management. In: 2nd International Workshop on Models@run.time (2007) Hein, C., Ritter, T., Wagner, M.: System monitoring using constraint checking as part of model based system management. In: 2nd International Workshop on Models@run.time (2007)
29.
Zurück zum Zitat Richters, M., Gogolla, M.: Aspect-oriented monitoring of UML and OCL constraints. In: AOSD Modeling with UML Workshop at the 6th International Conference on the Unified Modeling Language (UML) (2003) Richters, M., Gogolla, M.: Aspect-oriented monitoring of UML and OCL constraints. In: AOSD Modeling with UML Workshop at the 6th International Conference on the Unified Modeling Language (UML) (2003)
30.
Zurück zum Zitat Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering, ICSE ’02. ACM, pp. 187–197 (2002) Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: Proceedings of the 24th International Conference on Software Engineering, ICSE ’02. ACM, pp. 187–197 (2002)
31.
Zurück zum Zitat Taylor, R.N., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, New York (2009)CrossRef Taylor, R.N., Medvidovic, N., Dashofy, E.: Software Architecture: Foundations, Theory, and Practice. Wiley, New York (2009)CrossRef
32.
Zurück zum Zitat Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, New York (1994) Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, New York (1994)
33.
Zurück zum Zitat Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: ICSE 1999: Proceedings of the 1999 International Conference on Software Engineering, pp. 411–420 (1999) Dwyer, M.B., Avrunin, G.S., Corbett, J.C.: Patterns in property specifications for finite-state verification. In: ICSE 1999: Proceedings of the 1999 International Conference on Software Engineering, pp. 411–420 (1999)
34.
Zurück zum Zitat Cobleigh, R.L., Avrunin, G.S., Clarke, L.A.: User guidance for creating precise and accessible property specifications. In: FSE-14: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 208–218 (2006) Cobleigh, R.L., Avrunin, G.S., Clarke, L.A.: User guidance for creating precise and accessible property specifications. In: FSE-14: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 208–218 (2006)
35.
Zurück zum Zitat Wuttke, J.: Property templates and assertions supporting runtime failure detection. In: Technical Report, University of Lugano, Switzerland, 04 Aug 2008 (2008) Wuttke, J.: Property templates and assertions supporting runtime failure detection. In: Technical Report, University of Lugano, Switzerland, 04 Aug 2008 (2008)
36.
Zurück zum Zitat Wuttke, J.: Automatically generated runtime checks for design-level properties. Ph.D. dissertation, University of Lugano, Lugano (2010) Wuttke, J.: Automatically generated runtime checks for design-level properties. Ph.D. dissertation, University of Lugano, Lugano (2010)
37.
Zurück zum Zitat Laddad, R.: AspectJ in Action: Enterprise AOP with Spring, 2nd edn. Manning Publications, New York (2009) Laddad, R.: AspectJ in Action: Enterprise AOP with Spring, 2nd edn. Manning Publications, New York (2009)
38.
Zurück zum Zitat Gorla, A., Pezzé, M., Wuttke, J., Mariani, L., Pastore, F.: Achieving cost-effective software reliability through self-healing. Comput. Inform. 2(1), 1001–1022 (2010) Gorla, A., Pezzé, M., Wuttke, J., Mariani, L., Pastore, F.: Achieving cost-effective software reliability through self-healing. Comput. Inform. 2(1), 1001–1022 (2010)
39.
Zurück zum Zitat Denaro, G., Gorla, A., Pezzè, M.: Datec: dataflow testing of Java classes. In: 31st International Conference on Software Engineering, ICSE’09—Companion Volume. IEEE Computer Society, pp. 421–422 (tool demonstration) (2009) Denaro, G., Gorla, A., Pezzè, M.: Datec: dataflow testing of Java classes. In: 31st International Conference on Software Engineering, ICSE’09—Companion Volume. IEEE Computer Society, pp. 421–422 (tool demonstration) (2009)
42.
Zurück zum Zitat Unkel, C., Lam, M.S.: Automatic inference of stationary fields: a generalization of Java’s final fields. In: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’08. ACM, pp. 183–195 (2008) Unkel, C., Lam, M.S.: Automatic inference of stationary fields: a generalization of Java’s final fields. In: Proceedings of the 35th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’08. ACM, pp. 183–195 (2008)
43.
Zurück zum Zitat The Objective-C 2.0 Programming Language. Apple Inc., Cupertino (2008) The Objective-C 2.0 Programming Language. Apple Inc., Cupertino (2008)
44.
Zurück zum Zitat König, D.: Groovy in Action. Manning Publications, New York (2007) König, D.: Groovy in Action. Manning Publications, New York (2007)
Metadaten
Titel
Model-driven generation of runtime checks for system properties
verfasst von
Mauro Pezzé
Jochen Wuttke
Publikationsdatum
01.02.2016
Verlag
Springer Berlin Heidelberg
Erschienen in
International Journal on Software Tools for Technology Transfer / Ausgabe 1/2016
Print ISSN: 1433-2779
Elektronische ISSN: 1433-2787
DOI
https://doi.org/10.1007/s10009-014-0325-2

Weitere Artikel der Ausgabe 1/2016

International Journal on Software Tools for Technology Transfer 1/2016 Zur Ausgabe

Premium Partner