Intelligent support for retrieval and synthesis of patterns for object-oriented design

  • Sandeep Purao
  • Veda C. Storey
Session 2a: Automated Design
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1331)


Several decades of software engineering research confirm that effective reuse is the only realistic approach to meeting the ever-increasing demands on the software industry. Over the last few years, object-oriented paradigm has emerged as the natural foundational technology for reuse approaches, leading to the development of a number of reusable artifacts at different levels of abstraction and granularity. This research focuses on artifacts at one level: ‘patterns’. Patterns are groups of objects with stereotypical properties and responsibilities that can be applied by analogy to different domains. In this paper, we present a methodology for automating design of object-oriented systems based on intelligent retrieval and synthesis of reusable patterns. The methodology itself has an object-oriented flavor. It uses a set of techniques and rules aided by heuristics from natural language processing, automated reasoning and learning that are activated, as needed. Effectiveness of the methodology is evaluated using measures such as recall, precision, coverage and spuriousness.


Natural Language Processing Automate Reasoning Pattern Graph Convenience Store Software Reuse 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Adler, R. 1995. Emerging Standards for Component Software. In IEEE Computer. March. Pp. 68–77.Google Scholar
  2. 2.
    Barnes, B. and T. Bollinger. 1991. Making Reuse Cost-Effective. In IEEE Software. January. Pp. 13–24.Google Scholar
  3. 3.
    Boehm, B. 1987. Improving Software Poductivity. In IEEE Software. Sept. Pp. 43–57.Google Scholar
  4. 4.
    Booch, G. 1995. Object-Oriented Analysis and Design. Benjamin-Cummings.Google Scholar
  5. 5.
    Coad, P. et al. 1995. Strategies and Patterns Handbook: Hypertext Edition Version 2.0a. Object International, Inc. Available at http://www.oi.comGoogle Scholar
  6. 6.
    Coplien, J. 1996. Patterns. SIGS White Paper Series. ACM Press.Google Scholar
  7. 7.
    Cox, B. 1990. Planning the Software Industrial Revolution. In IEEE Software. November. Pp. 25–33.Google Scholar
  8. 8.
    Curtis, B. 1989. Cognitive Issues in Reusing Software Artifacts. In Software Reusability, V II. ed. T. Biggerstaff and A. Perlis, Addison Wesley 1989, pp. 269–287.Google Scholar
  9. 9.
    DEC 1991. VAX VMS Software Source Book. Digital Equipment Corp., Maynard, Mass.Google Scholar
  10. 10.
    Frakes, W. B. and B. A. Nejmeh. 1990. An Information System for Software Reuse. In Software Reuse: Emerging Technology. IEEE CS Press. Pp. 142–151.Google Scholar
  11. 11.
    Gamma, E. et al. 1995. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Reading, MA.Google Scholar
  12. 12.
    Garey, M. and D. Johnson. 1979. Computers and Intractabilty. Freeman. SanFrancisco, CA.Google Scholar
  13. 13.
    Glass, R., and 1. Vessey. 1996. Contemporary Application-Domain Taxonomies. In IEEE Software. July. Pp. 63–76.Google Scholar
  14. 14.
    Karlsson, E. et al 1995. Editor. Software Reuse. A Holistic Approach. John Wiley & Sons, Inc.Google Scholar
  15. 15.
    Krueger, C. 1993. Software Reuse. In ACM Computing Surveys. Vol. 24. No. 2. June. Pp. 131–184.Google Scholar
  16. 16.
    Lea, D. 1994. Christopher Alexander: An introduction for 00 Designers. In Software Engineering Notes. Vol. 19. no. 1. Jan. Pp. 39–46.Google Scholar
  17. 17.
    Lenat, D. et al. 1990, CYC: Toward programs with common sense. In Communications of the ACM. Special Issue on Natural Language Processing. Vol. 33. No. 8. Aug. Pp. 30–49Google Scholar
  18. 18.
    Lowry, M., and R. McCartney. 1991. eds. Automating Software Design. AAAI Press/MIT Press.Google Scholar
  19. 19.
    Merriam-Webster. 1987. The Merriam-Webster Thesaurus. Pocket Books. 1978.Google Scholar
  20. 20.
    Mili, H. et al. 1994. Practitioner and Softclass: A Comparative Study of Two Software Reuse Research Projects. In Journal of Systems and Software. Vol. 27. May.Google Scholar
  21. 21.
    Mili, H. et al. 1995. Reusing Software: Issues and Research Directions. In IEEE Transactions on Software Engineering. June. Pp. 528–562.Google Scholar
  22. 22.
    MIL 1997. List of StopWords. Available at Scholar
  23. 23.
    MIT 1996. The DaVinci Initiative. Available at Scholar
  24. 24.
    Pree, W. 1995. Design Patterns for Object-Oriented Software Development. Addison-Wesley.Google Scholar
  25. 25.
    Prieto-Diaz, R. and P. Freeman. 1987. Classifying Software for Reusability. In IEEE Software. Jan. Pp. 6–16.Google Scholar
  26. 26.
    Reifer Consultants 1990. Productivity and Quality Survey. El Segundo, CA.Google Scholar
  27. 27.
    Setliff, D. et al. 1993. Practical Software Synthesis. In IEEE Software. May. Pp. 6–10.Google Scholar
  28. 28.
    Shicheng, P., R. Hennicker, M. Jarke. 1993. On the Retrieval of Reusable Components. In Selected Papers from Second International Workshop on Software, Reusability Advances in Software. Italy, March 24–26.Google Scholar
  29. 29.
    SIC 1987. Standard Industrial Classification Manual. Office of Management and Budget.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Sandeep Purao
    • 1
  • Veda C. Storey
    • 1
  1. 1.Department of CISGeorgia State UniversityAtlanta

Personalised recommendations