Font Size: a A A

An exploratory approach to software reuse

Posted on:2001-01-06Degree:Ph.DType:Dissertation
University:University of WashingtonCandidate:Michail, AmirFull Text:PDF
GTID:1468390014959111Subject:Computer Science
Abstract/Summary:
While popular commercial libraries, such as MFC, are usually well-documented, open source or internally developed libraries are often not. In either case—and particularly in the latter—developers today learn reuse experience not just from library documentation but also from existing real-life application code (e.g., by using grep or looking at browse information).; In this dissertation, we take this simple idea further by a deeper analysis of a large collection of applications to see what characteristic usage of the library is like. Specifically, we develop methods to discover “reuse opportunities” and “reuse patterns” among a set of software systems (e.g., libraries and/or applications).; Reuse opportunities identify code in one software system that has been reused, or is similar to, code in another software system. Reuse opportunities can be used to locate code for reuse or salvaging purposes. Our methods for discovering reuse opportunities involve simple statistics as well as more involved information retrieval techniques.; Reuse patterns show characteristic ways in which code in one software system (e.g., a library) is reused in other software systems (e.g., applications that use that library). Reuse patterns can be used to guide and check code reuse. We discover reuse patterns by data mining so-called generalized association rules.; Our tool-based approach alleviates problems with learning characteristic library usage in the following ways: (1) by using many real-life applications instead of a few toy programs, we can demonstrate reuse of many library classes in more numerous and deeper ways; (2) by using automated techniques, reuse opportunities and patterns can always be kept up to date with respect to the most recent version of the library and applications; and (3) by leveraging existing applications and using data mining technology, we complement manually constructed tutorials and toy programs if they are available and provide an alternative source of information if they are not.; We demonstrate our approach by showing how the KDE core libraries are used in 76 real-life KDE applications.
Keywords/Search Tags:Reuse, Software, Approach, Libraries, Applications
Related items