Font Size: a A A

An assistant framework for procuring components and code samples

Posted on:2007-06-27Degree:Sc.DType:Dissertation
University:University of Massachusetts LowellCandidate:Tansalarak, NaiyanaFull Text:PDF
GTID:1448390005476902Subject:Computer Science
Abstract/Summary:
Software reuse has been targeted as a panacea for reducing software costs and for improving both software quality and programmer productivity. Today, it is accepted practice for software developers to reuse software units, that range from ascii units such as code fragments, to binary units such as functions, modules and even entire application systems, to both guide and reduce their development efforts. These software units are typically bundled with library or framework packages, are available as in-house and off-the-shelf components, or are accessible via books, manuals, web sites, live application code and code that the developer has written previously. Software unit procurement is the first key step of the reuse process at the software implementation stage, and is often broken down into component procurement and code sample procurement based on the two popular types of software units. While tools exist to assist developers in this procurement process, the tools are limited in their capabilities by the type of queries they provide, the efficient matching/mining techniques that underlie the procurement process and the effective ranking techniques used to evaluate the procured units. We broadly classify these limitations as quality of procured units and the effective ranking of the same.; This dissertation contributes solutions that address the quality and ranking of retrieved software units. As part of this dissertation, we have developed two assistant frameworks, the XML-based Component Discovery and Evaluation (XCoDE) framework and the XML-based Code Snippet Mining and Ranking (XSnippet) framework for procuring components and code samples, respectively.; The XCoDE framework allows developers to query for components based on the component information. Our approach is based on a unique Quality of Match (QoM) metric that qualitatively and quantitatively evaluates the match of two given components. The QoM metric forms the basis for a disciplined application of different matching techniques to all aspects of a component, thereby exploiting the diversity of syntactic and semantic information inherent in a component. Our experiments have shown that XCoDE has significant potential to provide higher accuracy than individual matching techniques and other combination techniques.; The XSnippet framework allows developers to query for code samples based on the context of code under development. Our approach is based on a novel graph-based code mining algorithm that supports the range of object instantiation-specific queries, and an innovative context-sensitive ranking heuristic that has been experimentally proven to provide better ranking of best-fit code samples than context-independent heuristics. Our experimental evaluation has shown that XSnippet has significant potential to assist developers, and provides better coverage of tasks and better rankings for best-fit code samples than other code assistant systems.
Keywords/Search Tags:Code, Assistant, Software, Framework, Component, Ranking, Developers, Quality
Related items