Systematic population, utilization, and maintenance of a repository for comprehensive reuse [chapter]

Klaus-Dieter Althoff, Andreas Birk, Susanne Hartkopf, Wolfgang Müller, Markus Nick, Dagmar Surmann, Carsten Tautz
2000 Lecture Notes in Computer Science  
Today's software developments are faced with steadily increasing expectations: software has to be developed faster, better, and cheaper. At the same time, application complexity increases. Meeting these demands requires fast, continuous learning and the reuse of experience on the part of the project teams. Thus, learning and reuse should be supported by well-defined processes applicable to all kinds of experience which are stored in an organizational memory. In this paper, we introduce a tool
more » ... chitecture supporting continuous learning and reuse of all kinds of experience from the software engineering domain and present the underlying methodology. usage context (e.g., size of project, business domain, experience of project team). Ideally, an artifact is characterized using both kinds of characteristics. Characteristics of an artifact's application context can be expected to be most effective for finding relevant reuse candidates. However, finding an appropriate set of characteristics is not trivial. It requires special techniques known as domain analysis [10, 37, 43] . Most domain analysis work has focused on the reuse of software components only. Domain analysis for other kinds of software engineering artifacts has been addressed by quite a few authors yet (such as [18, 30] ). If more than one kind of experience is to be reused, either several retrieval systems may be used (one for each kind of experience) [44] or one generic retrieval system. The latter can take advantage of the semantic relationships among the experience items for retrieval, but requires that all kinds of experience are characterized using the same formalism. Examples include specialized knowledge-based systems [22, 39] . In addition to semantic relationships, Ostertag et al. consider similarity-based retrieval [40] . A framework for representation and retrieval techniques can be found in [24] . When choosing a representation, one cannot only consider the benefits on the retrieval side, but must also consider the cost involved in creating and maintaining the EB or "computer-supported learning" in general [24] . However, in contrast to reuse processes, learning processes have not received that much attention in the software engineering community. Research on detailed learning processes focuses primarily on identifying reusable components (e.g., [20, 21, 52] ) and on building software component repositories for a given application domain (e.g., [33, 50] ). But these approaches are not able to transfer experience (e.g., as lessons learned) across domains [29] . A community that focuses on such learning processes is the case-based reasoning community. It has its roots in Schank´s work on scripts [48] and dynamic memory [49] . An evaluation of current case-based reasoning technology is given in [3] . In software engineering it has been mainly used for similarity-based retrieval and estimation tasks (an overview is given in [4] ). [30] and [9] recognized that case-based reasoning can be used for implementing continuous learning in an EF-like organization. [53, 54] showed that case-based reasoning and EF are complementary, combinable concepts. A first architecture for the integration of these concepts has been presented in [4, 6] . Architecture of a Software Engineering Experience Environment (SEEE) Our tool architecture is a generic, scalable environment for learning and reuse of all kinds of software engineering experience. It uses the semantic relationships among experience items to ensure the consistency of the EB, to allow context-sensitive retrieval, and to facilitate the understanding of artifacts retrieved. The environment is not restricted to retrieval and storage, but supports the complete reuse (adaptation) and learning processes as defined by our methodology in Sect. 4 and Sect. 5.
doi:10.1007/bfb0101412 fatcat:bewcl6646zgxto3y42pqqywmz4