Advertisement

Formal Aspects of Computing

, Volume 25, Issue 4, pp 543–572 | Cite as

Threaded behavior protocols

  • Tomáš Poch
  • Ondřej Šerý
  • František Plášil
  • Jan Kofroň
Original Article

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.

Keywords

Behavior modeling Verification Model checking Refinement Composition Component systems 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. ABC10.
    Aldini A, Bernardo M, Corradini F (2010) A process algebraic approach to software architecture design. Springer, BerlinMATHCrossRefGoogle Scholar
  2. ABJ+06.
    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
  3. AH01a.
    de Alfaro L, Henzinger TA (2001) Interface automata. SIGSOFT Softw Eng Notes 26(5): 109–120CrossRefGoogle Scholar
  4. AH01b.
    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–165Google Scholar
  5. All97.
    Allen RJ (1997) A formal approach to software architecture. PhD thesis, CMUGoogle Scholar
  6. AP03.
    Adamek J, Plasil F (2003) Behavior protocols capturing errors and updates. In: Proceedings of the 2nd international workshop on unanticipated software evolutionGoogle Scholar
  7. AP04.
    Adamek J, Plasil F (2004) Component composition errors and update atomicity: Static analysis. J Softw Maint Evol Res Pract 17(5): 102Google Scholar
  8. BBS06.
    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–12Google Scholar
  9. BDH+08.
    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–417Google Scholar
  10. BGR.
    Badger—Verification of component behavior specification. http://d3s.mff.cuni.cz/~sery/badger
  11. BRJ05.
    Booch G, Rumbaugh J, Jacobson I (2005) Unified modeling language user guide, 2nd edn. Addison-Wesley Object Technology Series. Addison-Wesley ProfessionalGoogle Scholar
  12. CoC.
    Modelling Contest: Common Component Modelling Example. http://agrausch.informatik.uni-kl.de/CoCoME
  13. CSS05.
    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–258Google Scholar
  14. Cˇ VZ07.
    Č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 2007Google Scholar
  15. FHRR04a.
    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–254Google Scholar
  16. FHRR04b.
    Fournet C, Hoare T, Rajamani SK, Rehof J (2004) Stuck-free conformance theory for ccs. Technical report, Microsoft Research, July 2004Google Scholar
  17. GG97.
    Grimes R, Grimes R Dr (1997) Professional Dcom programming. Wrox Press Ltd., BirminghamGoogle Scholar
  18. Hoa85.
    Hoare CAR (1985) Communicating sequential processes. Prentice Hall International (UK) LtdGoogle Scholar
  19. HP00.
    Havelund K, Pressburger T (2000) Model checking JAVA programs using JAVA pathfinder. Int J Softw Tools Technol Transf 2(4): 366–381MATHCrossRefGoogle Scholar
  20. Kof07.
    Kofron J (2007) Checking software component behavior using behavior protocols and spin. In: Proceedings of applied computing 2007, Seoul, Korea, pp 1513–1517Google Scholar
  21. LNW07.
    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–79Google Scholar
  22. LS00.
    Leavens, GT, Sitaraman, M (eds) (2000) Foundations of component-based systems. Cambridge University Press, New YorkMATHGoogle Scholar
  23. MDEK95.
    Magee J, Dulay N, Eisenbach S, Kramer J (1995) Specifying distributed software architectures. In: Fifth European software engineering conference, ESEC ’95, BarcelonaGoogle Scholar
  24. Mil95.
    Milner R (1995) Communication and concurrency. Prentice Hall International (UK) Ltd., HertfordshireGoogle Scholar
  25. MSD03.
    Matena V, Stearns B, Demichiel L (2003) Applying enterprise JavaBeans: component-based development for the J2EE platform. Pearson EducationGoogle Scholar
  26. OLKM00.
    van Ommering R, van der Linden F, Kramer J, Magee J (2000) The Koala component model for consumer electronics software. Computer 33(3): 78–85CrossRefGoogle Scholar
  27. OMG06.
    OMG Group (2006) CORBA component model specification. Technical report, OMG GroupGoogle Scholar
  28. Poc10.
    Poch T (2010) Towards thread aware component behavior specifications. PhD thesis, Charles University, PragueGoogle Scholar
  29. PV02.
    Plasil F, Visnovsky S (2002) Behavior protocols for software components. IEEE Trans Softw Eng 28(9)Google Scholar
  30. Ros98.
    Roscoe AW (1998) The theory and practice of concurrency. Prentice HallGoogle Scholar
  31. RRMP08.
    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, BerlinGoogle Scholar

Copyright information

© British Computer Society 2011

Authors and Affiliations

  • Tomáš Poch
    • 1
  • Ondřej Šerý
    • 1
  • František Plášil
    • 1
  • Jan Kofroň
    • 1
  1. 1.Faculty of Mathematics and PhysicsCharles University PraguePrague 1Czech Republic

Personalised recommendations