A Tool for Managing Software Development Knowledge

  • Scott Henninger
  • Jason Schlabach
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2188)


Software development is a knowledge intensive activity involving the integration of diverse knowledge sources that undergo constant change. Most approaches to knowledge management assume that information exists and is readily sought by software developers, usually through a search tool. In this paper, an approach is presented that actively delivers information through a rule-based system that matches system requirements to experience-based knowledge embedded in work breakdown structures. A reuse-based methodology based on an organizational learning process is used to capture and organize knowledge as it is created. The combination of tool and methodology work together to capture characteristics of individual projects and tailor processes to meet diverse and emerging software development needs. The tool and methodology are demonstrated using two examples of how this technique can be applied.


Software Development Oracle Database Domain Case Work Breakdown Structure Automate Software Engineer 
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.
    V. R. Basili, G. Caldiera, and G. Cantone, “A Reference Architecture for the Component Factory”, ACM Transactions on Software Engineering and Methodology, vol. 1, pp. 53–80, 1992.CrossRefGoogle Scholar
  2. 2.
    V. R. Basili and H. D. Rombach, “Support for Comprehensive Reuse”, Software Engineering Journal, pp. 303–316, 1991.Google Scholar
  3. 3.
    V. R. Basili and H. D. Rombach, “The TAME Project: Towards Improvement-Oriented Software Environments”, IEEE Transactions on Software Engineering, vol. 14, pp. 758–773, 1988.CrossRefGoogle Scholar
  4. 4.
    D. Batory, G. Chen, E. Robertson, and T. Wang, “Design Wizards and Visual Programming Environments for GenVoca Generators”, Transactions on Software Engineering, vol. 26, pp. 441–452, 2000.CrossRefGoogle Scholar
  5. 5.
    N. Belkin, “Helping People Find What They Don’t Know”, Comm. of the ACM, vol. 43, pp. 58–61, 2000.CrossRefGoogle Scholar
  6. 6.
    F. P. Brooks, “No Silver Bullet: Essence and Accidents of Software Engineering”, Computer, vol. 20, pp. 10–19, 1987.CrossRefGoogle Scholar
  7. 7.
    E. J. Conklin and K. Yakemovic, “A Process-Oriented Approach to Design Rationale”, Human-Computer Interaction, vol. 6, pp. 357–391, 1991.CrossRefGoogle Scholar
  8. 8.
    G. Cugola, “Tolerating Deviations in Process Support Systems via Flexible Enactment of Process Models”, IEEE Transactions on Software Engineering, vol. 24, pp. 982–1000, 1998.CrossRefGoogle Scholar
  9. 9.
    B. Curtis, M. I. Kellner, and J. Over, “Process Modeling”, Communications of the ACM, vol. 35, pp. 75–90, 1992.CrossRefGoogle Scholar
  10. 10.
    B. Curtis, H. Krasner, and N. Iscoe, “A Field Study of the Software Design Process for Large Systems”, Communications of the ACM, vol. 31, pp. 1268–1287, 1988.CrossRefGoogle Scholar
  11. 11.
    P. Devanbu, R. J. Brachman, P. G. Selfridge, and B. W. Ballard, “LaSSIE: A Knowledge-Based Software Information System”, Communications of the ACM, vol. 34, pp. 34–49, 1991.CrossRefGoogle Scholar
  12. 12.
    S. Dunbar, S. Goddard, S. Henninger, and S. Elbaum, “Bootstrapping the Software Design Studio”, Fifth Annual National Collegiate Inventors and Innovators Alliance Naitonal Conference, Washington, DC, pp. 180–188, 2001.Google Scholar
  13. 13.
    G. Fischer, J. Grudin, A. Lemke, R. McCall, J. Ostwald, B. Reeves, and F. Shipman, “Supporting Indirect Collaborative Design With Integrated Knowledge-Based Design Environments”, Human-Computer Interaction, vol. 7, pp. 281–314, 1992.CrossRefGoogle Scholar
  14. 14.
    G. Fischer, R. McCall, J. Ostwald, B. Reeves, and F. Shipman, “Seeding, Evolutionary Growth and Reseeding: Supporting the Incremental Development of Design Environments”, Proc. Human Factors in Computing Systems (CHI’ 94), Boston, MA, pp. 292–298, 1994.Google Scholar
  15. 15.
    V. Gruhn and J. Urbainczyk, “Software Process Modeling and Enactmant: An Experience Report Related to Problem Tracking in an Industrial Project”, Proc. 20th International Conference on Software Engineering, pp. 13–21, 1998.Google Scholar
  16. 16.
    S. Henninger, “Capturing and Formalizing Best Practices in a Software Development Organization”, The Ninth International Conference on Software Engineering and Knowledge Engineering (SEKE’ 97), Madrid, Spain, 1997.Google Scholar
  17. 17.
    S. Henninger, “Case-Based Knowledge Management Tools for Software Development”, Journal of Automated Software Engineering, vol. 4, pp. 319–340, 1997.CrossRefGoogle Scholar
  18. 18.
    S. Henninger, “Software Process as a Means to Support Learning Software Organizations”, Twenty-fifth Annual NASA Software Engineering Workshop, Greenbelt, MD, 2000.Google Scholar
  19. 19.
    S. Henninger, “Supporting Software Development with Organizational Memory Tools”, International Journal of Applied Software Technology, vol. 2, pp. 61–84, 1996.Google Scholar
  20. 20.
    S. Henninger, “Tools Supporting the Creation and Evolution of Software Development Knowledge”, Proceedings of the Automated Software Engineering Conference, Lake Tahoe, NV, pp. 46–53, 1997.Google Scholar
  21. 21.
    S. Henninger, “Using Software Process to Support Learning Software Organizations”, 1st International Workshop on Learning Software Organizations (LSO 1999), Kaiserlautern, FRG, 1999.Google Scholar
  22. 22.
    S. Henninger, K. Lappala, and A. Raghavendran, “An Organizational Learning Approach to Domain Analysis”, 17th International Conference on Software Engineering, Seattle, WA, pp. 95–104, 1995.Google Scholar
  23. 23.
    C. C. Huff, “Elements of a Realistic CASE Tool Adoption Budget”, Communications of the ACM, vol. 35, pp. 45–54, 1992.CrossRefGoogle Scholar
  24. 24.
    J. L. Kolodner, Case-Based Reasoning: Morgan-Kaufman, San Mateo, CA, 1993.Google Scholar
  25. 25.
    J. L. Kolodner, “Improving Human Decision Making through Case-Based Decision Aiding”, AI Magazine, vol. 12, pp. 52–68, 1991.Google Scholar
  26. 26.
    J. Lee, “Design Rationale Capture and Use”, AI Magazine, vol. 14, pp. 24–26, 1993.Google Scholar
  27. 27.
    M. Lindvall and I. Rus, “Process Diversity in Software Development”, IEEE Software, vol. 17, pp. 14–18, 2000.CrossRefGoogle Scholar
  28. 28.
    A. Maclean, V. Bellotti, R. Young, and T. Moran, “Questions, Options, and Criteria: Elements of Design Space Analysis”, Human-Computer Interaction, vol. 6, pp. 201–251, 1991.CrossRefGoogle Scholar
  29. 29.
    T. Moran and J. Carroll, “Design Rationale: Concepts, Techniques, and Use”,. Hillsdale, NJ: Lawrence Erlbaum Associates, 1996.Google Scholar
  30. 30.
    L. Osterweil, “Software Processes are Software Too”, Ninth International Conference on Software Engineering, Monterey, CA, pp. 2–13, 1987.Google Scholar
  31. 31.
    M. C. Paulk, B. Curtis, M. Chrissis, and C. V. Weber, “Capability Maturity Model, Version 1.1”, IEEE Software, vol. 10, pp. 18–27, 1993.CrossRefGoogle Scholar
  32. 32.
    L. Terveen and D. Wroblewski, “A Collaborative Interface for Browsing and Editing Large Knowledge Bases”, National Conference of the American Association for AI, Boston, MA, pp. 491–496, 1990.Google Scholar
  33. 33.
    L. G. Terveen, P. G. Selfridge, and M. D. Long, “Living Design Memory’-Framework, Implementation, Lessons Learned”, Human-Computer Interaction, vol. 10, pp. 1–37, 1995.CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Scott Henninger
    • 1
  • Jason Schlabach
    • 1
  1. 1.Department of Computer Science & EngineeringUniversity of Nebraska-LincolnLincoln

Personalised recommendations