Font Size: a A A

Semantics-enabled program understanding and knowledge reuse

Posted on:2011-02-16Degree:Ph.DType:Dissertation
University:The University of Wisconsin - MilwaukeeCandidate:Alnusair, Awny MFull Text:PDF
GTID:1448390002956970Subject:Computer Science
Abstract/Summary:PDF Full Text Request
Program understanding is vital for enhancing and maintaining existing software systems as well as building new systems from libraries of reusable program code. Unfortunately, the process of understanding is often time consuming, especially in legacy and open source software libraries. While some exceptional pieces of software may be documented well, it is often the case that libraries lack informative API documentation and reliable design information. Thus, leaving the source-code itself as the only form of reference for most program understanding activities.;This dissertation contributes solutions that leverage program understanding and knowledge reuse. Firstly, in order to recover the lost design decisions, we developed an approach for reverse engineering design patterns from source-code. Secondly, we present an approach for automatic realization and retrieval of software components in large reuse libraries. In order to further maximize the reuse potential, we have also developed a source-code recommendation approach that automatically constructs and delivers relevant source-code snippets that can be used to complete particular programming tasks. In arriving at such solutions, we utilized ontological modeling to provide formal, explicit, and semantic representation of the conceptual source-code knowledge. This representation is the basis for computing entailments and enabling enhanced semantic reasoning support.;The work presented in this dissertation has been implemented and validated by applying our program understanding tools to several large-scale software libraries. Our experimental evaluations show evidence that ontology formalisms combined with rule restrictions can effectively detect pattern instances without relying on hard-coded heuristics. It also show evidence that such ontology formalisms combined with context-sensitive techniques enhance precision when retrieving reusable code even without mining an existing corpus of sample code.
Keywords/Search Tags:Program understanding, Software, Libraries, Reuse
PDF Full Text Request
Related items