Skip to main content

Pattern-Based Design Recovery with SPOOL

  • Chapter
Book cover Advances in Software Engineering

Abstract

Automated tool support is crucial for the comprehension of large-scale, object-oriented software and involves compressing and clustering the vast amount of information that is contained in the source code. However, software comprehension demands more than the mere understanding of the static structure of the source code. The clear representation of the system’s physical and logical structure is still insufficient for a developer to fully comprehend the purpose of a given piece of software (Beck and Johnson, 1994). Underlining this statement, Booch estimates that “it takes a professional programmer about 6–9 months to become really proficient with a larger framework,” and he adds that “this rate increases rather exponentially to the complexity of software” (Booch, 1996). We agree with Beck and Johnson that one reason for this gigantic effort for software comprehension and evolution is that “existing design notations focus on communicating the what of designs, but almost completely ignore the why.” They argue that comprehension of the rationale behind the design decisions is equally as much important as understanding of the software’s structural and logical constituents. Yet, for the most part, current reverse engineering tools completely neglect recovery of the design rationale.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 59.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 79.95
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Antoniol, G., Fiutem, R., and Cristoforetti, L. (1998). Design pattern recovery in object-oriented software. In Proceedings of the Sixth International Workshop on Program Comprehension, Ischia, Italy, June 1998, pp. 153–160.

    Google Scholar 

  • Appleton, B. (1998). Patterns and software: Essential concepts and terminology. On-line at http://www.enteract.com/—bradapp/docs/.

  • Baniassad, E. L. A. and Murphy, G. (1998). Conceptual module querying for software reengineering. In Proceedings of the 20th International Conference on Software Engineering, Kyoto, Japan, April 1998, pp. 64–73.

    Chapter  Google Scholar 

  • Beck, K. and Johnson, R. (1994). Patterns generate architectures. In Proceedings of the 13th European Conference on Object-Oriented Programming,Springer-Verlag, LNCS 821, pp. 139–149..

    Chapter  Google Scholar 

  • Biggerstaff, T. J. (1989). Design recovery for maintenance and reuse. IEEE Computer, 22 (7): 36–49, July 1989.

    Article  Google Scholar 

  • Booch, G. (1996). Object Solutions: Managing the Object-Oriented Project, Reading, MA: Addison-Wesley.

    Google Scholar 

  • Brown, K. (1997). Design reverse-engineering and automated design pattern detection in Smalltalk. On-line at http://hillside.net/patterns/papers/.

    Google Scholar 

  • Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., and Stal, M. (1996). Pattern-Oriented Software Architecture: A System of Patterns, New York, John Wiley and Sons.

    Google Scholar 

  • Butler, G., Keller, R. K., and Mili, H. (2000). A framework for framework documentation. ACM Computing Surveys, 32(1), Symposium on Object-Oriented Application Frameworks.

    Google Scholar 

  • Datrix (2000). Datrix omepage,http://www.iro.umontreal.ca/labs/gelo/datrix/.

  • Fayad, M., and Schmidt, D. C. (1997). Object-oriented application frameworks. Communications of the ACM, 40 (10): 32–40.

    Article  Google Scholar 

  • Gamma, E., Helm, R., Johnson, R., and Vlissides, J. (1995). Design Patterns: Elements of Reusable Object-Oriented Software, Reading, MA: Addison-Wesley.

    Google Scholar 

  • IBM (1999). IBM—alphaWorks, http://www.alphaworks.ibm.com/tech/xml/.

  • ICESoft (2000). ICESoft A/S, Bergen, Norway. ICEBrowser. Online documentation at http://www.icesoft.no/.

    Google Scholar 

  • Instantiations (2000). jKit/GO online documentation. Instantiations, Tualatin, OR. On-line at http://www.instantiations.com/.

    Google Scholar 

  • Johnson, R. (1992). Documenting frameworks using patterns. In Proceedings of the Conference on Object-Oriented Programming: Systems, Languages and Applications, Vancouver, B.C., October 1992, pp. 63–76.

    Google Scholar 

  • Keller, R. K., and Schauer, R.. (1998). Design components: towards software composition at the design level. In Proceedings of the 20th International Conference on Software Engineering, Kyoto, Japan, April 1998, pp. 302–310.

    Chapter  Google Scholar 

  • Keller, R. K., Schauer, R., Robitaille, S., and Pagé, P. (1999). Pattern-based reverse engineering of design components. In Proceedings. of the 21st International Conference on Software Engineering, Los Angeles, May 1999, pp. 226–235.

    Chapter  Google Scholar 

  • Keller, R. K., and Schauer R. (2000). Towards a quantitative assessment of method replacement. In Proceedings of the Fourth Euromicro Working Conference on Software Maintenance and Reengineering, Zurich, Switzerland, February 2000, pp. 141–150.

    Chapter  Google Scholar 

  • Kontsofios, E., and North S. C. (2000). Drawing graphs with Dot. ATandT Bell Laboratories, Murray Hill, NJ. Available on-line at http://www.reasearch.att.com/sw/tools/graphviz

  • Kraemer, C., and Prechelt, L. (1996). Design recovery by automated search for structural design patterns in object-oriented software. In Proceedings of the Working Conference on Reverse Engineering, Monterey, CA, November 1996, pp. 208–215.

    Google Scholar 

  • Martin, R. (1995). Discovering design patterns in existing applications. In J. Coplien and D. C. Schmidt, Eds., Pattern Languages of Program Design, Addison-Wesley, pp. 365–393.

    Google Scholar 

  • North S. C. (2000). NEATO User’s Manual. ATandT Bell Laboratories, Murray Hill, NJ. On-line at http://www.research.att.com/sw/tools/graphviz/.

    Google Scholar 

  • Odenthal, G., and Quibeldey-Cirkel, K. (1997). Using patterns for design and documentation. In Proceedings of the 11th European Conference on Object-Oriented Programming, Jyvaskyla, Finland, June 1997, pp. 511–529.

    Google Scholar 

  • OMG (1998). Object Management Group (OMG). XML Metadata Interchange (XMI). Document ad/98–10–05, October 1998. Available on–line at ftp://ftp.omg.org/pub/docs/ad/98–10–05.pdf/.

    Google Scholar 

  • Rich, C., and Waters R. (1988). The programmer’s apprentice: A research overview. IEEE Computer 21 (11): 11–24.

    Article  Google Scholar 

  • Robitaille, S., Schauer, R., and Keller, R. K. (2000). Bridging program comprehension tools by design navigation. In Proceedings of the International Conference on Software Maintenance (ICSM’2000), San Jose, CA, October 2000, pp. 135–141.

    Google Scholar 

  • Saint-Denis, G., Schauer, R., and Keller, R. K. (2000). Selecting a model interchange format. The SPOOL case study. In Proceedings of the Thirty-Third Annual Hawaii International Conference on System Sciences, Maui, HI, January 2000.

    Google Scholar 

  • Sax (2000). Sax 1.0: The simple API for XML.http://www.megginson.com/SAX/.

  • Schauer, R., Robitaille, S., Martel, F., and Keller, R. K. (1999). Hot spot recovery in object-oriented software with inheritance and composition template methods. In Proceedings of the International Conference on Software Maintenance (ICSM’99), Oxford, Britain, August 1999, pp. 220–229.

    Google Scholar 

  • Sun (2000). Sun Microsystems, Inc. Java Foundation Classes (JFC) documentation. http://www.javasoft.com/products/jfc/index.html.

    Google Scholar 

  • TakeFive (2000). TakeFive Software. SNiFF+ dcumentation set. On-line at http://www.takefive.com/.

    Google Scholar 

  • UML (1997). Documentation set version 1. 1. http://www.rational.com.

    Google Scholar 

  • W3C (1998). World Wide Web Consortium (W3C). Extensible Markup Language (XML) 1. 0. W3C recommendation, February 1998, http://www.w3.org/TR/1998/REC-xml-19980210.

  • W3C (1999). World Wide Web Consortium (W3C). Document Object Model (DOM). W3C recommendation, June 1999. http://www.w3.org/TR/PRDOM-Level-1.

  • Weinand, A., Gamma, A., and Marty, R.. (1989). Design and implementation of ET++, a seamless object-oriented application framework. Structured Programming, 10(2):63–87.

    Google Scholar 

Download references

Authors

Editor information

Hakan Erdogmus Oryal Tanir

Rights and permissions

Reprints and permissions

Copyright information

© 2002 Springer Science+Business Media New York

About this chapter

Cite this chapter

Keller, R.K., Schauer, R., Robitaille, S., Laguë, B. (2002). Pattern-Based Design Recovery with SPOOL. In: Erdogmus, H., Tanir, O. (eds) Advances in Software Engineering. Springer, New York, NY. https://doi.org/10.1007/978-0-387-21599-0_6

Download citation

  • DOI: https://doi.org/10.1007/978-0-387-21599-0_6

  • Publisher Name: Springer, New York, NY

  • Print ISBN: 978-1-4419-2878-8

  • Online ISBN: 978-0-387-21599-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics