Extracting Behavior Specification of Components in Legacy Applications

  • Tomáš Poch
  • František Plášil
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5582)


A challenge of componentizing legacy applications is to extract behavior specification of suggested components. It is desirable to preserve a relation between the original structure of the source code of a component and the extracted specification; in particular, this is important for both user comprehension and for interpretation of results of any further formal verification. Even though the reverse engineering techniques providing behavior specification have already been applied on object oriented software and components, none of them targets the interplay of both the externally and internally triggered activities on the component’s provided and required interfaces from a single perspective. This paper targets the problem in the scope of Behavior Protocols and components given as a set of Java classes accompanied with information on component boundaries. To demonstrate viability of the proposed approach, this technique has been partially applied in the JAbstractor tool for the SOFA component model.


Reverse engineering Component behavior specification 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Plasil, F., Visnovsky, S.: Behavior Protocols for Software Components. IEEE Transactions on Software Engineering 28(11) (November 2002)Google Scholar
  2. 2.
    Kofron, J.: Behavior Protocols Extensions, Ph.D. thesis, Charles University (September 2007),
  3. 3.
    Ammons, G., Bodík, R., Larus, J.R.: Mining specifications. In: Proc. of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, Portland, Oregon (2002)Google Scholar
  4. 4.
    Whaley, J., Martin, M.C., Lam, M.S.: Automatic extraction of object-oriented component interfaces. In: Proc. of the 2002 ACM SIGSOFT international symposium on Software testing and analysis, Roma, Italy (2002)Google Scholar
  5. 5.
    Shoham, S., Yahav, E.: Fink. S., Pistoia M.: Static specification mining using automata-based abstractions. In: Proc. of the 2007 Int. Symposium on SW testing and analysis, London, United Kingdom (2007)Google Scholar
  6. 6.
    Alur, R., Černý, P., Madhusudan, P., Nam, W.: Synthesis of interface specifications for Java Classes. In: Proc. of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (2005)Google Scholar
  7. 7.
    Chouambe, L., Klatt, B., Krogmann, K.: Reverse Engineering Software-Models of Component-Based Systems. In: Proc. of CSMR 2008 (2008)Google Scholar
  8. 8.
    Bowman, I.T., Godfrey, M.W., Holt, R.C.: Extracting source models from Java programs: Parse, disassemble, or profile? In: ACM SIGPLAN Workshop on Program Analysis for SW Tools and Engineering Toulouse, France (1999)Google Scholar
  9. 9.
  10. 10.
    Schwartzbach, M.I.: Lecture Notes on Static Analysis (2008)Google Scholar
  11. 11.
    Lhoták, O., Hendren, L.: Scaling Java Points-To Analysis using Spark. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 153–169. Springer, Heidelberg (2003)CrossRefGoogle Scholar
  12. 12.
    Hopcroft, J.E., Motwani, R., Ullman, J.D.: HUIntroduction to Automata Theory, Languages, and Computation. Addison-Wesley, Reading (2007)Google Scholar
  13. 13.
    Giannakopoulou, D., Păsăreanu, C.: Interface Generation and Compositional Verification in JavaPathfinder. In: Chechik, M., Wirsing, M. (eds.) FASE 2009. LNCS, vol. 5503, pp. 93–107. Springer, Heidelberg (2009)Google Scholar
  14. 14.
    Jezek, P., Kofron, J., Plasil, F.: Model Checking of Component Behavior Specification: A Real Life Experience. In: Electronic Notes in Theoretical Computer Science, vol. 160. Elsevier B.V., Amsterdam (2006)Google Scholar
  15. 15.
    Parizek, P., Plasil, F.: Modeling of Component Environment in Presence of Callbacks and Autonomous Activities. In: Paige, R.F., Meyer, B. (eds.) TOOLS EUROPE 2008. LNBIP, vol. 11, pp. 3–22. Springer, Heidelberg (2008)Google Scholar
  16. 16.
    Adamek, J.: Verification of Software Components: Addressing Unbounded Parallelism. Int. J. of Computer and Information Sci. 8(2) (2007)Google Scholar
  17. 17.
    Kappler, T., Koziolek, H., Krogmann, K., Reussner, R.: Towards Automatic Construction of Reusable Prediction Models for Component-Based Performance Engineering. In: Proc. of Software Engineering (2008)Google Scholar
  18. 18.
    Kofron, J., Poch, T., Sery, O.: TBP: Code-Oriented Component Behavior Specification. In: Proc. of SEW-32. IEEE, Los Alamitos (accepted for publication) (2009)Google Scholar
  19. 19.
    Bures, T., Hnetynka, P., Plasil, F.: SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model. In: Proc. of SERA 2006. IEEE CS, Los Alamitos (2006)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2009

Authors and Affiliations

  • Tomáš Poch
    • 1
  • František Plášil
    • 1
    • 2
  1. 1.Faculty of Mathematics and Physics Department of Software EngineeringCharles University in PraguePrague 1Czech Republic
  2. 2.Academy of Sciences of the Czech RepublicInstitute of Computer ScienceCzech Republic

Personalised recommendations