Slicing of Component Behavior Specification with Respect to Their Composition

  • Ondřej Šerý
  • František Plášil
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4608)


Being an important means of reducing development costs, behavior specification of software components facilitates reuse of a component and even reuse of a component’s architecture (assembly). However, since typically only a part of the components’ functionality is actually used in the new context, a significant part of the behavior specification may be superfluous. As a result, it may be hard to see (and filter out) the actual interplay among the components in their behavior specification. This paper targets the problem in the scope of behavior protocols. It presents a technique for slicing behavior protocols with respect to a given context (composition), designed to remove the unused behavior from a behavior specification. The technique is based on a formal foundation, generic enough to support slicing with respect to a property expressed as a predicate. To demonstrate viability of the proposed approach, a positive experience with behavior specification slicing applied in real-life case study is shared with the reader (along with a short description of a prototype).


Components-based software engineering Behavior specification Software architecture reuse 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adamek, J., Plasil, F.: Component Composition Errors and Update Atomicity: Static Analysis. Journal of Software Maintenance and Evolution: Research and Practice 17(5), 363–377 (2005)CrossRefGoogle Scholar
  2. 2.
    Allen, R., Garlan, D.: A Formal Basis for Architectural Connection. ACM Transactions on Software Engineering and Methodology 6(3), 213–249 (1997)CrossRefGoogle Scholar
  3. 3.
    Bergstra, J.A., Ponse, A., Smolka, S.A.: Handbook of Process Algebra. Elsevier, Amsterdam (2001)zbMATHGoogle Scholar
  4. 4.
    Bobeff, G., Noye, J.: Molding Components using Program Specialization Techniques. Eighth International Workshop on Component-Oriented Programming (2003)Google Scholar
  5. 5.
    Chueng, S.C., Kramer, J.: Compositional Reachability Analysis of Finite-State Distributed Systems with User-Specified Constraints. In: Proceedings of the 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering, pp. 140–150. ACM Press, New York (1995)CrossRefGoogle Scholar
  6. 6.
    Cheung, S.C., Kramer, J.: Enhancing Compositional Reachability Analysis with Context Constraints. In: Proceedings of ACM SIGSOFT 1993 Symposium on Foundations of Software Engineering, pp. 115–125. ACM Press, New York (1993)CrossRefGoogle Scholar
  7. 7.
    The CRE project (Component Reliability Extensions for Fractal Component Model),
  8. 8.
  9. 9.
    Gramlich, G., Schnitger, G.: Minimizing NFA’s and Regular Expressions. In: Diekert, V., Durand, B. (eds.) STACS 2005. LNCS, vol. 3404, pp. 399–411. Springer, Heidelberg (2005)Google Scholar
  10. 10.
    Hassine, J., Dssouli, R., Rilling, J.: Applying Reduction Techniques to Software Functional Requirement Specifications. In: Amyot, D., Williams, A.W. (eds.) SAM 2004. LNCS, vol. 3319, pp. 138–153. Springer, Heidelberg (2005)Google Scholar
  11. 11.
    JavaCC (Java Compiler Compiler),
  12. 12.
    Jiang, T., Ravikumar, B.: Minimal NFA problems are hard. SIAM Journal on Computing 22(1), 1117–1141 (1993)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Luckham, D.C., Kenney, J.J., Augustin, L.M., Vera, J., Bryan, D., Mann, W.: Specification and Analysis of System Architecture Using Rapide. IEEE Transactions on Software Engineering 21(4), 336–355 (1995)CrossRefGoogle Scholar
  14. 14.
    Meyer, A.R., Stockmeyer, L.J.: The Equivalence Problem for Regular Expressions with Squaring Requires Exponential Space. In: Proceedings of the 13th Annual Symposium on Switching and Automata Theory, FOCS, pp. 125–129 (1972)Google Scholar
  15. 15.
    van Ommering, R., van der Linden, F., Kramer, J., Magee, J.: The Koala Component Model for Consumer Electronics Software. IEEE Computer 33(3), 78–85 (2000)Google Scholar
  16. 16.
    Parizek, P., Plasil, F.: Modeling Environment for Component Model Checking from Hierarchical Architecture. In: FACS 2006. Proceedings of Formal Aspects of Component Software, Prague, Czech Republic. ENTCS (2006)Google Scholar
  17. 17.
    Plasil, F., Visnovsky, S.: Behavior Protocols for Software Components. IEEE Transactions on Software Engineering 28(11), 1056–1076 (2002)CrossRefGoogle Scholar
  18. 18.
    Reussner, R.H.: Automatic component protocol adaptation with the CoConut/J tool suite, Tools for program development and analysis, vol. 19(5), pp. 627–639. Elsevier Science Publishers, Amsterdam (2003)Google Scholar
  19. 19.
    Sery, O.: Model Checking and Reduction of Behavior Protocols, Master thesis at Charles University in Prague (2006), available at:
  20. 20.
    Sloane, A.M., Holdsworth, J.: Beyond Traditional Program Slicing. In: ISSTA 1996. Proceedings of the 1996 ACM SIGSOFT International Symposium on Software Testing and Analysis, pp. 180–186. ACM Press, New York (1996)CrossRefGoogle Scholar
  21. 21.
    Stafford, J.A., Richardson, D.J., Wolf, A.L.: Architecture-level Dependence Analysis for Software Systems. International Journal of Software Engineering and Knowledge Engineering 11(4), 431–451 (2001)CrossRefGoogle Scholar
  22. 22.
    Zhao, J.: A Slicing-Based Approach to Extracting Reusable Software Architectures. In: Proceedings of the Conference on Software Maintenance and Reengineering, pp. 215–223. IEEE Computer Society Press, Los Alamitos (2000)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2007

Authors and Affiliations

  • Ondřej Šerý
    • 1
  • František Plášil
    • 1
    • 2
  1. 1.Charles University in Prague, Faculty of Mathematics and Physics, Department of Software Engineering, Malostranske namesti 25, 118 00 Prague 1Czech Republic
  2. 2.Academy of Sciences of the Czech Republic, Institute of Computer Science 

Personalised recommendations