Capsule oriented reverse engineering for software reuse

  • Harald Gall
  • René Klösch
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 717)


Much research effort concerning the reuse of software components has been invested on questions such as classification, attribution and organization of modules in software components libraries. Further problems like the obtaining of reusable components and their interconnection to form new software systems have been discovered. Reverse engineering can be used for different purposes, like maintenance effort reduction, documentation improvement, etc., but also for software reuse. In the process of software reuse, reverse engineering can be used to extract reusable components from existing software systems.

In this paper we provide insights into a reverse engineering method called capsule oriented reverse engineering method (COREM) that realizes the extraction of object similar capsules from existing systems implemented in a procedural language. For this, COREM transforms the original procedural system to an object based system (consisting of capsules). These capsules can then be used for further object-oriented system development. By using object-oriented system development methods the problem of module interconnection can be skillfully solved.

The paper points out the three main steps of the COREM process and describes the framework of COREM for the production of software from capsules.

Index Terms

software reuse reverse engineering object-oriented programming Reuse Engineering module interconnection reusable components capsules 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. [1]
    G.F. Arango. Domain Engineering for Software Reuse. PhD thesis, University of California, Irvine, 1988.Google Scholar
  2. [2]
    V.R. Basili. Viewing maintenance as reuse-oriented software development. IEEE Software, 7(1):19–25, September 1990.Google Scholar
  3. [3]
    E. Bertino and L. Martino. Object-oriented database management systems: Concepts and issues. IEEE Computer, 24(4):33–47, April 1991.Google Scholar
  4. [4]
    G. Booch. Object-oriented development. IEEE Transactions on Software Engineering, 12(2):211–221, February 1986.Google Scholar
  5. [5]
    P.T. Breuer and K. Lano. From Programs to Z Specifications. Z User's Meeting, 1989.Google Scholar
  6. [6]
    B.A. Burton, R.W. Aragon, S.A. Bailey, K.D. Koehler, and L.A. Mayes. The reusable software library. IEEE Software, 4(4):25–33, July 1987.Google Scholar
  7. [7]
    E.J. Chikofsky and J.H. Cross. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7(1):13–17, January 1990.Google Scholar
  8. [8]
    P. Coad and E. Yourdon. Object Oriented Analysis. Yourdon Press Computing Series. Prentice Hall, Inc., Englewood Cliffs, 1991.Google Scholar
  9. [9]
    D. Embley, K. Kurtz, and W. Woodfield. Object-Oriented Systems Analysis. Prentice Hall, Inc., Englewood Cliffs, 1992.Google Scholar
  10. [10]
    A. Frazer. Reverse engineering — hype, hope or here? In P.A.V. Hall, editor, Software Reuse and Reverse Engineering in Practice, volume 12 of UNICOM Applied Information Technology, pages 209–243. Chapman & Hall, 1992.Google Scholar
  11. [11]
    H. Gall and R. Klösch. Reuse engineering: Software construction from reusable components. Proceedings of COMPSAC '92, Chicago, USA, pages 79–86, Sept. 1992.Google Scholar
  12. [12]
    J.A. Goguen. Reusing and interconnecting software components. IEEE Computer, 19(2):16–28, February 1986.Google Scholar
  13. [13]
    H.P. Haughton and K. Lano. Objects revisited. IEEE Conf. on Software Maintenance, Sorento, Italy, pages 152–161, October 1991.Google Scholar
  14. [14]
    L. Hsian-Chou and W. Feng-Jian. Software reuse based on large object-oriented library. ACM SIGSOFT Software Engineering Notes, 18(1):74–80, January 1993.Google Scholar
  15. [15]
    G.E. Kaiser and D. Garlan. Melding software systems from reusable building blocks. IEEE Software, 4(4):17–24, July 1987.Google Scholar
  16. [16]
    Y.S. Maarek, D.M. Berry, and G.E. Kaiser. An information retrieval approach for automatically constructing software libraries. IEEE Trans. on Software Engineering, SE-17(8):800–813, August 1991.Google Scholar
  17. [17]
    R.T. Mittermeir and M. Oppitz. Software bases for the flexible composition of application systems. IEEE Trans. on Software Engineering, SE-13(4):440–460, April 1987.Google Scholar
  18. [18]
    R. Prieto-Diaz. Domain analysis for reusability. Proceedings of COMPSAC '87, pages 23–29, October 1987.Google Scholar
  19. [19]
    R. Prieto-Diaz. Classification of reusable modules. ACM Press Software Reusability, 1:99–122, 1989.Google Scholar
  20. [20]
    R. Prieto-Diaz. Implementing faceted classification for software reuse. Communications of the ACM, 34(5):88–97, May 1991.Google Scholar
  21. [21]
    R. Prieto-Diaz and J.M. Neighbors. Module interconnection languages. The Journal of Systems and Software, 11(6):307–334, June 1986.Google Scholar
  22. [22]
    J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Inc., Englewood Cliffs, 1991.Google Scholar
  23. [23]
    H.M. Sneed and G. Jandrasics. Inverse transformation of software from code to specification. Conf. on Software Maintenance, pages 102–109, 1988.Google Scholar
  24. [24]
    H.J. van Zuylen, editor. The REDO Compendium — Reverse Engineering for Software Maintenance. John Wiley & Sons, Ltd., Chicester, 1993.Google Scholar
  25. [25]
    M. Ward. Transforming a program into a specification. Computer Science Technical Report 88/1, University of Durham, 1988.Google Scholar
  26. [26]
    A.I. Wasserman, P.A. Pircher, and R.J. Muller. An object-oriented structured design method for code generation. ACM SIGSOFT Software Engineering Notes, 14(1):32–55, January 1989.Google Scholar
  27. [27]
    E. Yourdon and L.L. Constantine. Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design. Prentice Hall, Inc., Englewood Cliffs, 1979.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1993

Authors and Affiliations

  • Harald Gall
    • 1
  • René Klösch
    • 1
  1. 1.Institute of Information Systems, Department of Distributed SystemsVienna University of TechnologyViennaAustria, Europe

Personalised recommendations