Capsule oriented reverse engineering for software reuse
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 Termssoftware reuse reverse engineering object-oriented programming Reuse Engineering module interconnection reusable components capsules
Unable to display preview. Download preview PDF.
- G.F. Arango. Domain Engineering for Software Reuse. PhD thesis, University of California, Irvine, 1988.Google Scholar
- V.R. Basili. Viewing maintenance as reuse-oriented software development. IEEE Software, 7(1):19–25, September 1990.Google Scholar
- E. Bertino and L. Martino. Object-oriented database management systems: Concepts and issues. IEEE Computer, 24(4):33–47, April 1991.Google Scholar
- G. Booch. Object-oriented development. IEEE Transactions on Software Engineering, 12(2):211–221, February 1986.Google Scholar
- P.T. Breuer and K. Lano. From Programs to Z Specifications. Z User's Meeting, 1989.Google Scholar
- 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
- E.J. Chikofsky and J.H. Cross. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7(1):13–17, January 1990.Google Scholar
- P. Coad and E. Yourdon. Object Oriented Analysis. Yourdon Press Computing Series. Prentice Hall, Inc., Englewood Cliffs, 1991.Google Scholar
- D. Embley, K. Kurtz, and W. Woodfield. Object-Oriented Systems Analysis. Prentice Hall, Inc., Englewood Cliffs, 1992.Google Scholar
- 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
- 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
- J.A. Goguen. Reusing and interconnecting software components. IEEE Computer, 19(2):16–28, February 1986.Google Scholar
- H.P. Haughton and K. Lano. Objects revisited. IEEE Conf. on Software Maintenance, Sorento, Italy, pages 152–161, October 1991.Google Scholar
- 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
- G.E. Kaiser and D. Garlan. Melding software systems from reusable building blocks. IEEE Software, 4(4):17–24, July 1987.Google Scholar
- 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
- 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
- R. Prieto-Diaz. Domain analysis for reusability. Proceedings of COMPSAC '87, pages 23–29, October 1987.Google Scholar
- R. Prieto-Diaz. Classification of reusable modules. ACM Press Software Reusability, 1:99–122, 1989.Google Scholar
- R. Prieto-Diaz. Implementing faceted classification for software reuse. Communications of the ACM, 34(5):88–97, May 1991.Google Scholar
- R. Prieto-Diaz and J.M. Neighbors. Module interconnection languages. The Journal of Systems and Software, 11(6):307–334, June 1986.Google Scholar
- J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Inc., Englewood Cliffs, 1991.Google Scholar
- H.M. Sneed and G. Jandrasics. Inverse transformation of software from code to specification. Conf. on Software Maintenance, pages 102–109, 1988.Google Scholar
- H.J. van Zuylen, editor. The REDO Compendium — Reverse Engineering for Software Maintenance. John Wiley & Sons, Ltd., Chicester, 1993.Google Scholar
- M. Ward. Transforming a program into a specification. Computer Science Technical Report 88/1, University of Durham, 1988.Google Scholar
- 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
- 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