Abstract
Component-based development is a well-established methodology of software development. Nevertheless, some of the benefits that the component based development offers are often neglected. One of them is modeling and subsequent analysis of component behavior, which can help establish correctness guarantees, such as absence of composition errors and safety of component updates. We believe that application of component behavior modeling in practice is limited due to huge differences between the behavior modeling languages (e.g., process algebras) and the common implementation languages (e.g., Java). As a result, many concepts of the implementation languages are either very different or completely missing in the behavior modeling languages. As an example, even though behavior modeling languages are practical for modeling and analysis of various message-based protocols, they are not well suited for modeling current component applications, where thread-based parallelism, lock-based synchronization, and nested method calls are the essential building blocks. With this in mind, we propose a new behavior modeling language for software components, Threaded Behavior Protocols (TBP). At the model level, TBP provides developers with the concepts known from the implementation languages and essential to most component applications. In addition, the theoretical framework of TBP provides a notion of correctness based on absence of communication errors and a refinement relation to verify correctness of hierarchical components. The main asset of TBP formalism is that it links together the notion of threads as used in imperative object oriented languages and the notion of refinement. For instance, this allows reasoning about hierarchical components composed of primitive components implemented in Java without the need of bridging abstractions and simplifications enforced by the modeling languages.
Similar content being viewed by others
References
Aldini A, Bernardo M, Corradini F (2010) A process algebraic approach to software architecture design. Springer, Berlin
Adamek J, Bures T, Jezek P, Kofron J, Mencl V, Parizek P, Plasil F (2006) Component reliability extensions for fractal component model. http://kraken.cs.cas.cz/ft/public/public_index.phtml
de Alfaro L, Henzinger TA (2001) Interface automata. SIGSOFT Softw Eng Notes 26(5): 109–120
de Alfaro L, Henzinger TA (2001) Interface theories for component-based design. In: EMSOFT ’01: Proceedings of the first international workshop on embedded software. London UK, Springer, Berlin, pp 148–165
Allen RJ (1997) A formal approach to software architecture. PhD thesis, CMU
Adamek J, Plasil F (2003) Behavior protocols capturing errors and updates. In: Proceedings of the 2nd international workshop on unanticipated software evolution
Adamek J, Plasil F (2004) Component composition errors and update atomicity: Static analysis. J Softw Maint Evol Res Pract 17(5): 102
Basu A, Bozga M, Sifakis J (2006) Modeling heterogeneous real-time components in bip. In: Proceedings of the fourth IEEE international conference on software engineering and formal methods, Washington, DC, USA. IEEE Computer Society, pp 3–12
Bureš T, Děcký M, Hnětynka P, Kofroň J, Parízek P, Plášil F, Poch T, Šerý O, Tůma P (2008) CoCoME in SOFA. In: The common component modeling example: comparing software component models. Springer, Berlin, pp 388–417
Badger—Verification of component behavior specification. http://d3s.mff.cuni.cz/~sery/badger
Booch G, Rumbaugh J, Jacobson I (2005) Unified modeling language user guide, 2nd edn. Addison-Wesley Object Technology Series. Addison-Wesley Professional
Modelling Contest: Common Component Modelling Example. http://agrausch.informatik.uni-kl.de/CoCoME
Clarke EM, Sharygina N, Sinha N (2005) Program compatibility approaches. In: Boer FS, Bonsangue MM, Graf S, Roever WP (eds) Lecture notes in computer science, vol 4111. Springer, Berlin, pp 243–258
Černá I, Vařeková P, Zimmerova B (2007) Component substitutability via equivalencies of component-interaction automata. In: Proceedings of the workshop on formal aspects of component software (FACS’06). ENTCS, vol 182. Elsevier Science Publishers, pp 39–55, June 2007
Fournet C, Hoare CAR, Rajamani SK, Rehof J (2004) Stuck-free conformance. In: Alur R, Peled D (eds) Proceedings of 16th international conference on computer aided verification (CAV 2004), Boston, MA, USA, July 13–17, 2004 Lecture notes in computer science, vol 3114. Springer, Berlin, pp 242–254
Fournet C, Hoare T, Rajamani SK, Rehof J (2004) Stuck-free conformance theory for ccs. Technical report, Microsoft Research, July 2004
Grimes R, Grimes R Dr (1997) Professional Dcom programming. Wrox Press Ltd., Birmingham
Hoare CAR (1985) Communicating sequential processes. Prentice Hall International (UK) Ltd
Havelund K, Pressburger T (2000) Model checking JAVA programs using JAVA pathfinder. Int J Softw Tools Technol Transf 2(4): 366–381
Kofron J (2007) Checking software component behavior using behavior protocols and spin. In: Proceedings of applied computing 2007, Seoul, Korea, pp 1513–1517
Larsen KG, Nyman U, Wasowski A (2007) Modal I/O automata for interface and product line theories. In: De Nicola R (eds) ESOP. Lecture notes in computer science, vol 4421. Springer, Berlin, pp 64–79
Leavens, GT, Sitaraman, M (eds) (2000) Foundations of component-based systems. Cambridge University Press, New York
Magee J, Dulay N, Eisenbach S, Kramer J (1995) Specifying distributed software architectures. In: Fifth European software engineering conference, ESEC ’95, Barcelona
Milner R (1995) Communication and concurrency. Prentice Hall International (UK) Ltd., Hertfordshire
Matena V, Stearns B, Demichiel L (2003) Applying enterprise JavaBeans: component-based development for the J2EE platform. Pearson Education
van Ommering R, van der Linden F, Kramer J, Magee J (2000) The Koala component model for consumer electronics software. Computer 33(3): 78–85
OMG Group (2006) CORBA component model specification. Technical report, OMG Group
Poch T (2010) Towards thread aware component behavior specifications. PhD thesis, Charles University, Prague
Plasil F, Visnovsky S (2002) Behavior protocols for software components. IEEE Trans Softw Eng 28(9)
Roscoe AW (1998) The theory and practice of concurrency. Prentice Hall
Rausch A, Reussner R, Mirandola R, Plasil F (eds) (2008) The common component modeling example: comparing software component models. In: Lecture notes in computer science, vol 5153. Springer, Berlin
Author information
Authors and Affiliations
Corresponding author
Additional information
by M. Broy
This work was partially supported by the Grant Agency of the Czech Republic project P202/11/0312 and by the grant SVV-2011-263312.
Rights and permissions
About this article
Cite this article
Poch, T., Šerý, O., Plášil, F. et al. Threaded behavior protocols. Form Asp Comp 25, 543–572 (2013). https://doi.org/10.1007/s00165-011-0194-3
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00165-011-0194-3