The ABS tool suite: modelling, executing and analysing distributed adaptable object-oriented systems

  • Peter Y. H. WongEmail author
  • Elvira Albert
  • Radu Muschevici
  • José Proença
  • Jan Schäfer
  • Rudolf Schlatte


Modern software systems must support a high degree of variability to accommodate a wide range of requirements and operating conditions. This paper introduces the Abstract Behavioural Specification (ABS) language and tool suite, a comprehensive platform for developing and analysing highly adaptable distributed concurrent software systems. The ABS language has a hybrid functional and object- oriented core, and comes with extensions that support the development of systems that are adaptable to diversified requirements, yet capable to maintain a high level of trustworthiness. Using ABS, system variability is consistently traceable from the level of requirements engineering down to object behaviour. This facilitates temporal evolution, as changes to the required set of features of a system are automatically reflected by functional adaptation of the system’s behaviour. The analysis capabilities of ABS stretch from debugging, observing and simulating to resource analysis of ABS models and help ensure that a system will remain dependable throughout its evolutionary lifetime. We report on the experience of using the ABS language and the ABS tool suite in an industrial case study.


Formal modelling and analysis Concurrency Tool support Variability Software product line Feature modelling 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Albert, E., Arenas, P., Genaim, S., Puebla, G.n, Zanardini, D.: COSTA: Design and Implementation of a Cost and Termination Analyzer for Java Bytecode. In: Proceedings of FMCO’07, vol. 5382 LNCS, pp. 113–133. Springer, Berlin (2008)Google Scholar
  2. 2.
    Albert, E., Arenas, P., Genaim, S., Gómez-Zamalloa, M., Puebla, G.: Cost Analysis of Concurrent OO programs. In: The 9th Asian Symposium on Programming Languages and Systems (APLAS’11). Springer, Berlin, December (2011) (to appear)Google Scholar
  3. 3.
    Apel, S., Batory, D.: When to use features and Aspects? A case study. In: International Conference on Generative Programming and Component Engineering, GPCE ’06, pp. 59–68. ACM Press (2006)Google Scholar
  4. 4.
    Albert, E., Bubel, R., Genaim, S., Hähnle, R., Puebla, G., Román-Díez, G.: Verified resource guarantees using COSTA and KeY. In: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation (PEPM’11). ACM Press (2011)Google Scholar
  5. 5.
    Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development: The KobrA approach. In: SPLC (2000)Google Scholar
  6. 6.
    Abrial J.-R.: The B-Book—Assigning programs to meanings. Cambridge University Press, Cambridge (2005)Google Scholar
  7. 7.
    The ABS language specification. (2011)
  8. 8.
    Albert, E., Correas, J., Puebla, G., Román-Díez, G.: Incremental resource usage Analysis. In: ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation (PEPM 2012), pp. 25–34. ACM Press, January 2012Google Scholar
  9. 9.
    Ahrendt, W., Dylla, M.: A verification system for distributed objects with asynchronous method calls. In: Breitman, K., Cavalcanti, A. (eds.) Formal methods and software engineering, international conference on formal engineering methods (ICFEM’09), vol. 5885, Lecture Notes in Computer Science, pp. 387–406. Springer, Berlin (2009)Google Scholar
  10. 10.
    Ahrendt, W., Dylla, M.: A system for compositional verification of asynchronous objects. Sci. Comput. Program. (2011)Google Scholar
  11. 11.
    Albert, E., Flores-Montoya, A., Genaim, S.: Analysis of May-Happen-in-parallel in Concurrent objects. In: 14th IFIP WG 6.1 International Conference FMOODS 2012 and 32nd IFIP WG 6.1 International Conference FORTE 2012, Stockholm, Sweden, pp. 13–16 June, 2012, Proceedings, IFIP-LNCS. Springer, June 2012Google Scholar
  12. 12.
    Albert, E., Genaim, S., Gómez-Zamalloa, S., Johnsen, E.B., Schlatte, R., Tapia Tarifa, S.L.: Simulating concurrent behaviors with worst-case cost bounds. In: Butler, M., Schulte, W. (eds.) Proceedings of 17th International Symposium on Formal Methods (FM 2011), vol. 6664, Lecture Notes in Computer Science, pp. 353–368. Springer, Berlin (2011)Google Scholar
  13. 13.
    Apel, S., Lengauer, C.: Superimposition: A language-independent approach to software composition. In: Software Composition, vol. 4954, Lecture Notes in Computer Science, pp. 20–35. Springer, Berlin (2008)Google Scholar
  14. 14.
    Apel S., Lengauer C., Möller B., Kästner C.: An algebraic foundation for automatic feature-based program synthesis. Sci. Comput. Program. (SCP) 75(11), 1022–1047 (2010)zbMATHCrossRefGoogle Scholar
  15. 15.
    Apel, S., Leich, T., Rosenmüller, M., Saake, G.: FeatureC++: On the symbiosis of feature-oriented and aspect-oriented programming. In: GPCE, vol. 3676, Lecture Notes in Computer Science, pp. 125–140. Springer, Berlin (2005)Google Scholar
  16. 16.
    Armstrong J.: Erlang. Commun. ACM 53(9), 68–75 (2010)CrossRefGoogle Scholar
  17. 17.
    Apel, S., Scholz, W., Lengauer, C., Kästner, C.: Detecting Dependences and interactions in feature-oriented design. In: IEEE International Symposium on Software Reliability Engineering (ISSRE) (2010)Google Scholar
  18. 18.
    Bekic H., Bjørner D., Henhapl W., Jones C.B., Lucas P.: On the formal definition of a PL/I subset (selected parts). In: Jones, C.B. (ed.) Programming Languages and Their Definition, vol. 177, Lecture Notes in Computer Science, pp. 107–155. Springer, Berlin (1984)CrossRefGoogle Scholar
  19. 19.
    Batory D., Benavides D., Ruiz-Cortes A.: Automated analysis of feature models: challenges ahead. Commun. ACM 49(12), 45–47 (2006)CrossRefGoogle Scholar
  20. 20.
    Boucher, Q., Classen, A., Faber, P., Heymans, P.: Introducing TVL, a text-based feature modelling language. In: Proceedings of the Fourth International Workshop on Variability Modelling of Software-intensive Systems (VaMoS’10), Linz, Austria, January 27–29, pp. 159–162. University of Duisburg-Essen, January 2010Google Scholar
  21. 21.
    Beck, K.: Simple smalltalk testing: with patterns. Smalltalk Report, 4(3), October 1994Google Scholar
  22. 22.
    Bjørner, D., Jones, C.B. (eds.) The Vienna Development Method: The Meta- Language, vol. 61, Lecture Notes in Computer Science, Springer, Berlin (1978)Google Scholar
  23. 23.
    Batory, D.S., Sarvela, J.N., Rauschmayer, Axel.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6) (2004)Google Scholar
  24. 24.
    Clavel, M., Durán, F., Eker, S., Lincoln, P., Martí-Oliet, N., Meseguer, J., Talcott, C.L. (eds): All About Maude—A high-performance logical framework, how to specify, program and verify systems in rewriting logic, vol. 4350, Lecture Notes in Computer Science. Springer, Berlin (2007)Google Scholar
  25. 25.
    Clarke, D., Diakov, N., HÄhnle, R., Johnsen, E.B., Puebla, G., Weitzel, B., Wong P.Y.H.: HATS: A Formal software product line engineering methodology. In: Proceedings of International Workshop on Formal Methods in Software Product Line Engineering, September 2010Google Scholar
  26. 26.
    Clarke D., Diakov N., HÄhnle R., Johnsen E.B., Schaefer I., SchÄfer J., Schlatte R., Wong P.Y.H.: Modeling Spatial and Temporal Variability with the HATS Abstract Behavioral Modeling Language. In: Bernardo, M., Issarny, V. (eds) Formal methods for eternal networked software systems, vol. 6659, Lecture Notes in Computer Science, pp. 417–457. Springer, Berlin (2011)CrossRefGoogle Scholar
  27. 27.
    Czarnecki K., Helsen S., Eisenecker U.: Formalizing cardinality-based feature models and their specialization. Softw. Process Improv. Pract. 10(1), 7–29 (2005)CrossRefGoogle Scholar
  28. 28.
    Clarke, D., Muschevici, R., Proença, J., Schaefer, I., Schlatte, R.: Variability modelling in the ABS language. In: Formal Methods for Components and Objects, vol. 6957 of LNCS. Springer, Berlin (2011)Google Scholar
  29. 29.
    Din, C.C., Dovland, J., Johnsen, E.B., Owe, O.: Observable behavior of distributed systems: Component reasoning for concurrent objects. J. Logic Algebr. Program. (2012) (to appear)Google Scholar
  30. 30.
    Requirement Elicitation, August (2009) Deliverable 5.1 of project FP7-231620 (HATS).
  31. 31.
    Dovland J., Johnsen E.B., Owe O.: Observable behavior of dynamic systems: Component reasoning for concurrent objects. In: Goldin, D., Arbab, F. (eds) Proceedings of Workshop on the Foundations of Interactive Computation (FInCo’07) vol. 203 of Electronic Notes in Theoretical Computer Science., pp. 19–34. Elsevier, Amsterdam (2008)Google Scholar
  32. 32.
    Gomaa Hassan: Designing Software Product Lines with UML. Addison Wesley, Boston (2004)Google Scholar
  33. 33.
    Hewitt, C., Bishop, P., Steiger, R.: A universal modular actor formalism for artificial intelligence. In: IJCAI, pp. 235–245 (1973)Google Scholar
  34. 34.
    Helvensteijn M., Muschevici R., Wong P.Y.H.: Delta modeling in practice: a Fredhopper case study. In: Eisenecker, U.W., Apel, S., Gnesi, S. (eds) International Workshop on Variability Modelling of Software-Intensive Systems (VaMoS)., pp. 139–148. ACM Press, New York (2012)CrossRefGoogle Scholar
  35. 35.
    Hoare C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)zbMATHGoogle Scholar
  36. 36.
    Hooman J., Verhoef M.: Formal semantics of a vdm extension for distributed embedded systems. In: Dams, D., Hannemann, U., Steffen, M. (eds) Concurrency, Compositionality, and Correctness, vol. 5930, Lecture Notes in Computer Science, pp. 142–161. Springer, BErlin (2010)CrossRefGoogle Scholar
  37. 37.
    Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (AOPLE’07) (2007)Google Scholar
  38. 38.
    Johnsen, E.B., Hähnle, R., Schäfer, J., Schlatte, R., Steffen, M.: ABS: A core language for abstract behavioral specification. In: Aichernig B., de Boer F.S., Bonsangue M.M. (eds.) Proceedings of 9th International Symposium on Formal Methods for Components and Objects (FMCO 2010), vol. 6957 of LNCS, pp. 142–164. Springer, Berlin (2011)Google Scholar
  39. 39.
    Johnsen, E. B., Lanese, I., Zavattaro, G.: Fault in the future. In: Meuter W.D., Roman G.-C. (eds.) Proceedings of 13th International Conference on Coordination Models and Languages (COORDINATION 2011), vol. 6721, Lecture Notes in Computer Science, pp. 1–15. Springer, Berlin (2011)Google Scholar
  40. 40.
    Johnsen E.B., Owe O.: An asynchronous communication model for distributed concurrent objects. Softw. Syst. Model. 6(1), 35–58 (2007)CrossRefGoogle Scholar
  41. 41.
    Johnsen, E.B., Owe, O., Schlatte, R., Tapia Tarifa, S.L.: Validating timed models of deployment components with parametric concurrency. In: Beckert, B., Marché, C. (eds.) Proceedings of International Conference on Formal Verification of Object-Oriented Software (FoVeOOS’10), vol. 6528 Lecture Notes in Computer Science, pp. 46–60. Springer, Berlin (2011)Google Scholar
  42. 42.
    Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: ICSE pp. 311–320 (2008)Google Scholar
  43. 43.
    Kang, K.C., Cohen, S., Hess, J., Nowak, W., Peterson, S.: Feature-oriented domain analysis (FODA) feasibility study. Technical Report CMU/SEI-90-TR-021, Carnegie Mellon University Software Engineering Institute (1990)Google Scholar
  44. 44.
    Larsen P.G., Battle N., Ferreira M.A., Fitzgerald J.S., Lausdahl K., Verhoef M.: The Overture initiative integrating tools for VDM. ACM SIGSOFT Softw. Eng. Notes. 35(1), 1–6 (2010)CrossRefGoogle Scholar
  45. 45.
    Milner R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)Google Scholar
  46. 46.
    Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, pp. 127–136. ACM, New York (2004)Google Scholar
  47. 47.
    Noda, N., Kishi, T.: Aspect-Oriented Modeling for Variability Management. In: SPLC (2008)Google Scholar
  48. 48.
    Pohl K., Böckle G., Van Der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)zbMATHGoogle Scholar
  49. 49.
    Prehofer, C.: Feature-oriented programming: A fresh look at objects. In: European Conference on Object-Oriented Programming (ECOOP’97), vol. 1241, Lecture Notes in Computer Science, pp. 419–443. Springer, Berlin (1997)Google Scholar
  50. 50.
    Reiser, M.-O., Kolagari, R.T., Weber, M.: Compositional variability—concepts and patterns. In: HICSS, pp. 1–10. IEEE Computer Society (2009)Google Scholar
  51. 51.
    Schaefer, I., Bettini, L., Bono, V., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Proceedings of 14th Software Product Line Conference (SPLC 2010), September 2010Google Scholar
  52. 52.
    Schaefer, I., Bettini, L., Damiani, F., Tanzarella, N.: Delta-oriented programming of software product lines. In: Proceedings of the 14th International Conference on Software Product Lines: Going Beyond, SPLC’10, pp. 77–91. Springer, Berlin (2010)Google Scholar
  53. 53.
    Schaefer I., HÄhnle R.: Formal methods in software product line engineering. IEEE Comput. 44(2), 82–85 (2011)CrossRefGoogle Scholar
  54. 54.
    Spivey J.M.: The Z notation—a reference manual. Prentice Hall, Englewood Cliffs (1989)zbMATHGoogle Scholar
  55. 55.
    Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)Google Scholar
  56. 56.
    Verhoef M., Larsen P.G., Hooman J.: Modeling and validating distributed embedded real-time systems with VDM++. In: Misra, J., Nipkow, T., Sekerinski, E. (eds) FM, vol. 4085, Lecture Notes in Computer Science, pp. 147–162. Springer, Berlin (2006)Google Scholar
  57. 57.
    Wong, P.Y.H., Diakov, N., Schaefer, I.: Modelling distributed adaptable object-oriented systems using hats approach: A fredhopper case study. In: Beckert, B., Damiani, F., Gurov, D. (eds.) 2nd International Conference on Formal Verification of Object-Oriented Software, vol. 7421 of LNCS. Springer, Berlin (2012)Google Scholar
  58. 58.
    Wegbreit, B.: Mechanical program analysis. Commun. ACM 18(9) (1975)Google Scholar
  59. 59.
    Welsch, Y., Schäfer, J.: Location types for safe distributed object-oriented programming. In: 49th International Conference on Objects, Models, Components and Patterns (TOOLS Europe 2011), LNCS, pp. 194–210. Springer, June 2011Google Scholar
  60. 60.
    Waldo J., Wyant G., Wollrath A., Kendall S.C.: A note on distributed computing. In: Vitek, J., Tschudin, C.F. (eds) Mobile Object Systems, vol. 1222, Lecture Notes in Computer Science, pp. 49–64. Springer, Berlin (1996)Google Scholar

Copyright information

© Springer-Verlag 2012

Authors and Affiliations

  • Peter Y. H. Wong
    • 1
    Email author
  • Elvira Albert
    • 2
  • Radu Muschevici
    • 3
  • José Proença
    • 3
  • Jan Schäfer
    • 4
  • Rudolf Schlatte
    • 5
  1. 1.Fredhopper B.V.AmsterdamThe Netherlands
  2. 2.Complutense University of MadridMadridSpain
  3. 3.Katholieke Universiteit LeuvenLeuvenBelgium
  4. 4.University of KaiserslauternKaiserslauternGermany
  5. 5.University of OsloOsloNorway

Personalised recommendations