skip to main content
10.1145/581339.581382acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Towards pattern-based design recovery

Authors Info & Claims
Published:19 May 2002Publication History

ABSTRACT

A method and a corresponding tool is described which assist design recovery and program understanding by recognising instances of design patterns semi-automatically. The approach taken is specifically designed to overcome the existing scalability problems caused by many design and implementation variants of design pattern instances. Our approach is based on a new recognition algorithm which works incrementally rather than trying to analyse a possibly large software system in one pass without any human intervention. The new algorithm exploits domain and context knowledge given by a reverse engineer and by a special underlying data structure, namely a special form of an annotated abstract syntax graph. A comparative and quantitative evaluation of applying the approach to the Java AWT and JGL libraries is also given.

References

  1. {AGG} Technical University of Berlin. AGG, the Attributed Graph Grammar system. Online at http://www.tfs.cs.tu-berlin/agg.]]Google ScholarGoogle Scholar
  2. {AWT} SUN Microsystems. AWT, the SUN Java Abstract Window Toolkit. Online at http://java.sun.com/products/jdk/awt.]]Google ScholarGoogle Scholar
  3. {CFM93} A. Cimitile, A.R. Fasolino, and P. Marascea. Reuse Reengineering and Validation via Concept Assignment. In Proc. of the 3rd International Conference on Software Maintenance (ICSM), pages 216-225. IEEE Computer Society Press, September 1993.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. {ELW98} R. Eckstein, M. Loy, and D. Wood, editors. Java Swing. O'Reilly, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. {FNTZ98} T. Fischer, J. Niere, L. Torunski, and A. Zündorf. Story Diagrams: A new Graph Rewrite Language based on the Unified Modeling Language. In G. Engels and G. Rozenberg, editors, Proc. of the 6th International Workshop on Theory and Application of Graph Transformation (TAGT), Paderborn, Germany, LNCS 1764. Springer Verlag, 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. {GHJV95} E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object Oriented Software. Addison-Wesley, Reading, MA, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. {HN90} M. T. Hanrandi and J. Q. Ning. Knowledge Based Program Analysis. IEEE Transactions on Software Engineering, 7(1):74-81, IEEE Computer Society Press, 1990.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. {JCC} SUN Microsystems. JavaCC, the SUN Java Compiler Compiler. Online at http://www.suntest.com/JavaCC.]]Google ScholarGoogle Scholar
  9. {JGL} ObjectSpace, Inc. JGL, the ObjectSpace (Voyager) Java Generic Library. Online at http://www.objectspace.com/products/voyager/libraries.asp.]]Google ScholarGoogle Scholar
  10. {KNNZ99} H.J. Köhler, U. Nickel, J. Niere, and A. Zündorf. Using UML as a visual programming language. Technical Report tr-ri-99-205, University of Paderborn, Paderborn, Germany, August 1999.]]Google ScholarGoogle Scholar
  11. {KNNZ00} H.J. Köhler, U. Nickel, J. Niere, and A. Zündorf. Integrating UML Diagrams for Production Control Systems. In Proc. of the 22th International Conference on Software Engineering (ICSE), Limerick, Irland, pages 241-251. ACM Press, 2000.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. {KP96} C. Krämer and L. Prechelt. Design recovery by automated search for structural design patterns in object-oriented software. In Proc. of the 3rd Working Conference on Reverse Engineering (WCRE), Monterey, CA, pages 208-215. IEEE Computer Society Press, November 1996.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. {KSRP99} R.K. Keller, R. Schauer, S. Robitaille, and P. Page. Pattern-Based Reverse-Engineering of Design Components. In Proc. of the 21th International Conference on Software Engineering, Los Angeles, USA, pages 226-235. IEEE Computer Society Press, May 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. {Meh84} K. Mehlhorn. Graph Algorithms and NP-Completeness. Springer Verlag, 1st edition, 1984.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. {MOTU93} H.A. Müller, M.A. Orgun, S.R. Tilley, and J.S. Uhl. A Reverse Engineering Approach To Subsystem Structure Identification. Journal of Software Maintenance, 5(4):181-204, John Wiley and Sons, Inc., December 1993.]]Google ScholarGoogle ScholarCross RefCross Ref
  16. {PP94} S. Paul and A. Prakash. A Framework for Source Code Search Using Program Patterns. IEEE Transactions on Software Engineering, 20(6):463-475, IEEE Computer Society Press, June 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. {Qui94} A. Quilici. A Memory-Based Approach to Recognizing Programming Plans. Communications of the ACM, 37(5):84-93, ACM Press, May 1994.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. {Rad99} A. Radermacher. Support for Design Patterns through Graph Transformation Tools. In Proc. of International Workshop and Symposium on Applications Of Graph Transformations With Industrial Relevance (AGTIVE), Kerkrade, The Netherlands, LNCS 1779. Springer Verlag, 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. {SS00} P. Selonen and T. Systä. Scenario-Based Syntesis of Annotated Class Diagrams in UML. In Proc. of the Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), Minneapolis, Minnesota USA. IEEE Computer Society Press, October 2000.]]Google ScholarGoogle Scholar
  20. {SvG98} J. Seemann and J.W. von Gudenberg. Pattern-Based Design Recovery of Java Software. ACM SIGSOFT Software Engineering Notes, 23(6), ACM Press, November 1998.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. {SWZ95} A. Schürr, A.J. Winter, and A. Zündorf. Graph Grammar Engineering with PROGRES. In W. Schäfer, editor, Proc. of European Software Engineering Conference (ESEC/FSE), LNCS 989. Springer Verlag, 1995.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. {TA99} P. Tonella and G. Antoniol. Object Oriented Design Pattern Inference. In Proc. of the 5th Symposium on Software Development Environments (SDE5), pages 230-238. IEEE Computer Society Press, September 1999.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. {Wil96} L.M. Wills. Using Attributed Flow Graph Parsing to Recognize Programs. In Proc. of International Workshop on Graph Grammars and Their Application to Computer Science, LNCS 1073, Williamsburg, Virginia, 1994, November 1996. Springer Verlag.]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. {Zün96} A. Zündorf. Graph Pattern Matching in PROGRES. In Proc. of the 5th International Workshop on Graph-Grammars and their Application to Computer Science, LNCS 1073. Springer Verlag, 1996.]]Google ScholarGoogle Scholar

Index Terms

  1. Towards pattern-based design recovery

            Recommendations

            Comments

            Login options

            Check if you have access through your login credentials or your institution to get full access on this article.

            Sign in
            • Published in

              cover image ACM Conferences
              ICSE '02: Proceedings of the 24th International Conference on Software Engineering
              May 2002
              797 pages
              ISBN:158113472X
              DOI:10.1145/581339

              Copyright © 2002 ACM

              Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

              Publisher

              Association for Computing Machinery

              New York, NY, United States

              Publication History

              • Published: 19 May 2002

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • Article

              Acceptance Rates

              ICSE '02 Paper Acceptance Rate45of303submissions,15%Overall Acceptance Rate276of1,856submissions,15%

              Upcoming Conference

              ICSE 2025

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader