Case-Based Knowledge Management Tools for Software Development

Modern software development is a knowledge-intensive activity. The proliferation of development tools, rapidly changing technology, and increasing complexity and diversity of application domains all increase the cognitive burden placed on software developers. General purpose programming languages and CASE tools offer little relief from these problems. Knowledge management tools are needed that can effectively capture and disseminate software development knowledge that applies to the domain-specific needs of an organization. This knowledge is not static, but evolves with technology and the changing needs of the organization‘s development practices, customer base, and business milieu. This paper presents an infrastructure that supports evolving knowledge through case-based techniques and domain analysis methods that capture emerging knowledge and synthesize it into generally applicable forms. The approach is less concerned with the veracity of knowledge in its repository than evolving the knowledge toward answers to problems that fit the organization‘s technical and business context. Implications of this approach go beyond supporting software development to other knowledge-intensive professions where knowledge management tools can be used to support an organizational memory.

[1]  Scott Henninger,et al.  Supporting the Domain Lifecycle , 1995 .

[2]  Colin Potts,et al.  Software-engineering research revisited , 1993, IEEE Software.

[3]  Joyce J. Elam,et al.  Inside a software design team: knowledge acquisition, sharing, and integration , 1993, CACM.

[4]  G TerveenLoren,et al.  Living design memory , 1995 .

[5]  Stephen Slade,et al.  Case-Based Reasoning: A Research Paradigm , 1991, AI Mag..

[6]  Loren G. Terveen,et al.  Living Design Memory: Framework, Implementation, Lessons Learned , 1995, Hum. Comput. Interact..

[7]  E. Jeffrey Conklin,et al.  A process-oriented approach to design rationale , 1991 .

[8]  Ashok K. Goel,et al.  Case-based design support: a case study in architectural design , 1992, IEEE Expert.

[9]  Jonathan Grudin,et al.  Why CSCW Applications Fail: Problems in the Design and Evaluation of Organization of Organizational Interfaces. , 1988 .

[10]  Gerhard Fischer,et al.  Intertwining knowledge delivery and elicitation: a process model for human-computer collaboration in design , 1995, Knowl. Based Syst..

[11]  Scott Henninger,et al.  Accelerating the successful reuse of problem solving knowledge through the domain lifecycle , 1996, Proceedings of Fourth IEEE International Conference on Software Reuse.

[12]  Donald A. Norman,et al.  Things that make us smart , 1979 .

[13]  Bill Curtis,et al.  A field study of the software design process for large systems , 1988, CACM.

[14]  Donald A. Norman,et al.  Things That Make Us Smart: Defending Human Attributes In The Age Of The Machine , 1993 .

[15]  R. Prieto-Diaz,et al.  Implementing faceted classification for software reuse , 1990, [1990] Proceedings. 12th International Conference on Software Engineering.

[16]  J. Brown,et al.  Organizational Learning and Communities-of-Practice: Toward a Unified View of Working, Learning, and Innovation , 1991 .

[17]  C SchankRoger,et al.  Dynamic Memory: A Theory of Reminding and Learning in Computers and People , 1983 .

[18]  Henry Petroski,et al.  To Engineer Is Human: The Role of Failure in Successful Design , 1986 .

[19]  Loren G. Terveen,et al.  From “folklore” to “living design memory” , 1993, INTERCHI.

[20]  Scott Henninger,et al.  Building an organization-specific infrastructure to support CASE tools , 1996, Automated Software Engineering.

[21]  Janet L. Kolodner,et al.  Case-Based Reasoning , 1989, IJCAI 1989.

[22]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[23]  Scott Henninger Building an Organization-Specific Infrastructure to Support CASE Tools , 1996 .

[24]  Scott Henninger,et al.  An Organizational Learning Approach to Domain Analysis , 1995, 1995 17th International Conference on Software Engineering.

[25]  John Rieman,et al.  The diary study: a workplace-oriented research tool to guide laboratory efforts , 1993, INTERCHI.

[26]  John M. Carroll,et al.  The Minimal Manual , 1987, SGCH.

[27]  Gerhard Fischer,et al.  Design environments for high-functionality computer systems , 1989 .

[28]  Raymond McCall,et al.  Making argumentation serve design , 1991 .

[29]  Gerhard Fischer Domain-oriented design environments , 2004, Automated Software Engineering.

[30]  Brian R. Gaines Social and cognitive processes in knowledge acquisition , 1989 .

[31]  Dewayne E. Perry,et al.  People, organizations, and process improvement , 1994, IEEE Software.

[32]  Scott Henninger,et al.  Information access tools for software reuse , 1995, J. Syst. Softw..

[33]  Janet L. Kolodner,et al.  Improving Human Decision Making through Case-Based Decision Aiding , 1991, AI Mag..

[34]  M. S. Ackerman,et al.  Answer Garden: a tool for growing organizational memory , 2015, COCS '90.