Abstract
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.
Similar content being viewed by others
References
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)
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)
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)
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)
Atkinson, C., Bayer, J., Muthig, D.: Component-based product line development: The KobrA approach. In: SPLC (2000)
Abrial J.-R.: The B-Book—Assigning programs to meanings. Cambridge University Press, Cambridge (2005)
The ABS language specification. (2011) http://tools.hats-project.eu/download/absrefmanual.pdf
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 2012
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)
Ahrendt, W., Dylla, M.: A system for compositional verification of asynchronous objects. Sci. Comput. Program. (2011)
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 2012
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)
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)
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)
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)
Armstrong J.: Erlang. Commun. ACM 53(9), 68–75 (2010)
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)
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)
Batory D., Benavides D., Ruiz-Cortes A.: Automated analysis of feature models: challenges ahead. Commun. ACM 49(12), 45–47 (2006)
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 2010
Beck, K.: Simple smalltalk testing: with patterns. Smalltalk Report, 4(3), October 1994
Bjørner, D., Jones, C.B. (eds.) The Vienna Development Method: The Meta- Language, vol. 61, Lecture Notes in Computer Science, Springer, Berlin (1978)
Batory, D.S., Sarvela, J.N., Rauschmayer, Axel.: Scaling step-wise refinement. IEEE Trans. Softw. Eng. 30(6) (2004)
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)
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 2010
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)
Czarnecki K., Helsen S., Eisenecker U.: Formalizing cardinality-based feature models and their specialization. Softw. Process Improv. Pract. 10(1), 7–29 (2005)
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)
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)
Requirement Elicitation, August (2009) Deliverable 5.1 of project FP7-231620 (HATS). http://www.hats-project.eu
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)
Gomaa Hassan: Designing Software Product Lines with UML. Addison Wesley, Boston (2004)
Hewitt, C., Bishop, P., Steiger, R.: A universal modular actor formalism for artificial intelligence. In: IJCAI, pp. 235–245 (1973)
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)
Hoare C.A.R.: Communicating Sequential Processes. Prentice-Hall, Englewood Cliffs (1985)
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)
Heidenreich, F., Wende, C.: Bridging the gap between features and models. In: Aspect-Oriented Product Line Engineering (AOPLE’07) (2007)
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)
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)
Johnsen E.B., Owe O.: An asynchronous communication model for distributed concurrent objects. Softw. Syst. Model. 6(1), 35–58 (2007)
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)
Kästner, C., Apel, S., Kuhlemann, M.: Granularity in software product lines. In: ICSE pp. 311–320 (2008)
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)
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)
Milner R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)
Mezini, M., Ostermann, K.: Variability management with feature-oriented programming and aspects. In: SIGSOFT FSE, pp. 127–136. ACM, New York (2004)
Noda, N., Kishi, T.: Aspect-Oriented Modeling for Variability Management. In: SPLC (2008)
Pohl K., Böckle G., Van Der Linden F.: Software Product Line Engineering: Foundations, Principles, and Techniques. Springer, Berlin (2005)
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)
Reiser, M.-O., Kolagari, R.T., Weber, M.: Compositional variability—concepts and patterns. In: HICSS, pp. 1–10. IEEE Computer Society (2009)
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 2010
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)
Schaefer I., HÄhnle R.: Formal methods in software product line engineering. IEEE Comput. 44(2), 82–85 (2011)
Spivey J.M.: The Z notation—a reference manual. Prentice Hall, Englewood Cliffs (1989)
Völter, M., Groher, I.: Product line implementation using aspect-oriented and model-driven software development. In: SPLC, pp. 233–242 (2007)
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)
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)
Wegbreit, B.: Mechanical program analysis. Commun. ACM 18(9) (1975)
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 2011
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)
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Wong, P.Y.H., Albert, E., Muschevici, R. et al. The ABS tool suite: modelling, executing and analysing distributed adaptable object-oriented systems. Int J Softw Tools Technol Transfer 14, 567–588 (2012). https://doi.org/10.1007/s10009-012-0250-1
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-012-0250-1