Journal article

Threaded behavior protocols
T. Poch, O. Šerý, F. Plášil, J. Kofroň
Formal Aspects of Computing 25 (4)

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.

    title = {{Threaded behavior protocols}},
    author = {Poch, Tomáš and Šerý, Ondřej and Plášil, František and Kofroň, Jan},
    year = {2013},
    journal = {{Formal Aspects of Computing}},
    number = {4},
    doi = {10.1007/s00165-011-0194-3},
    issn = {0934-5043, 1433-299X},
    pages = {543--572},
    url = {},
    volume = {25},