40 research outputs found
Improving efficiency in XML interoperability
"The problem of interoperability among XML data sources is one studied by Laks V. S. Lakshmanan and Fereidoon Sadri, and expression their research findings and ideas appear in the paper [7]. Their research presents a lightweight framework that enriches local sources with semantic declarations to enable interoperability. In their framework, there are issues which reduce the scalability of the architecture, and this thesis identifies those issues and present techniques to overcome boundaries currently placed on their work. The research included in this thesis focuses, first on a methods of obtaining optimal data transmission schemes. Those efforts are followed by developing a new technique to eliminate the costly approach involving inter-source subqueries in [7]."--Abstract from author supplied metadata
Sketch-n-Sketch: Output-Directed Programming for SVG
For creative tasks, programmers face a choice: Use a GUI and sacrifice
flexibility, or write code and sacrifice ergonomics?
To obtain both flexibility and ease of use, a number of systems have explored
a workflow that we call output-directed programming. In this paradigm, direct
manipulation of the program's graphical output corresponds to writing code in a
general-purpose programming language, and edits not possible with the mouse can
still be enacted through ordinary text edits to the program. Such capabilities
provide hope for integrating graphical user interfaces into what are currently
text-centric programming environments.
To further advance this vision, we present a variety of new output-directed
techniques that extend the expressive power of Sketch-n-Sketch, an
output-directed programming system for creating programs that generate vector
graphics. To enable output-directed interaction at more stages of program
construction, we expose intermediate execution products for manipulation and we
present a mechanism for contextual drawing. Looking forward to output-directed
programming beyond vector graphics, we also offer generic refactorings through
the GUI, and our techniques employ a domain-agnostic provenance tracing scheme.
To demonstrate the improved expressiveness, we implement a dozen new
parametric designs in Sketch-n-Sketch without text-based edits. Among these is
the first demonstration of building a recursive function in an output-directed
programming setting.Comment: UIST 2019 Paper + Appendi
Improving software modularization via automated analysis of latent topics and dependencies
Information Integration for Software Maintenance and Evolution.
Software maintenance and evolution is a particularly complex phenomenon in the case of long-lived, large-scale systems. It is not uncommon for such systems to progress through years of development history, a number of developers, and a multitude of software artifacts including millions of lines of code. Therefore, realizing even the slightest change may not always be straightforward. Clearly, changes are the central force driving software evolution. Therefore, it is not surprising that a significant effort has been (and should be) devoted in the software engineering community to systematically understanding, estimating, and managing changes to software artifacts. This effort includes the three core change related tasks of (1) expert developer recommendations - identifying who are the most experienced developers to implement needed changes, (2) traceability link recovery recovering dependencies (traceability links) between different types of software artifacts, and (3) software change impact analysis - which other software entities should be changed given a starting point.;This dissertation defines a framework for an integrated approach to support three core software maintenance and evolution tasks: expert developer recommendation, traceability link recovery, and software change impact analysis. The framework is centered on the use of conceptual and evolutionary relationships latent in structured and unstructured software artifacts. Information Retrieval (IR) and Mining Software Repositories (MSR) based techniques are used for analyzing and deriving these relationships. All the three tasks are supported under the framework by providing systematic combinations of MSR and IR analyses on single and multiple versions of a software system. Our approach to the integration of information is what sets it apart from previously reported relevant solutions in the literature. Evaluation on a number of open source systems suggests that such combinations do offer improvements over individual approaches
Concept location using formal concept analysis and information retrieval
The article addresses the problem of concept location in source code by proposing an approach that combines Formal Concept Analysis and Information Retrieval. In the proposed approach, Latent Semantic Indexing, an advanced Information Retrieval approach, is used to map textual descriptions of software features or bug reports to relevant parts of the source code, presented as a ranked list of source code elements. Given the ranked list, the approach selects the most relevant attributes from the best ranked documents, clusters the results, and presents them as a concept lattice, generated using Formal Concept Analysis.
The approach is evaluated through a large case study on concept location in the source code on six open-source systems, using several hundred features and bugs. The empirical study focuses on the analysis of various configurations of the generated concept lattices and the results indicate that our approach is effective in organizing different concepts and their relationships present in the subset of the search results. In consequence, the proposed concept location method has been shown to outperform a standalone Information Retrieval based concept location technique by reducing the number of irrelevant search results across all the systems and lattice configurations evaluated, potentially reducing the programmers' effort during software maintenance tasks involving concept location.</jats:p
Integrating conceptual and logical couplings for change impact analysis in software
Click on the DOI link to access the article (may not be free).The paper presents an approach that combines conceptual and evolutionary techniques to support change impact analysis in source code. Conceptual couplings capture the extent to which domain concepts and software artifacts are related to each other. This information is derived using Information Retrieval based analysis of textual software artifacts that are found in a single version of software (e.g., comments and identifiers in a single snapshot of source code). Evolutionary couplings capture the extent to which software artifacts were co-changed. This information is derived from analyzing patterns, relationships, and relevant information of source code changes mined from multiple versions in software repositories. The premise is that such combined methods provide improvements to the accuracy of impact sets compared to the two individual approaches. A rigorous empirical assessment on the changes of the open source systems Apache httpd, ArgoUML, iBatis, KOffice, and jEdit is also reported. The impact sets are evaluated at the file and method levels of granularity for all the software systems considered in the empirical evaluation. The results show that a combination of conceptual and evolutionary techniques, across several cut-off points and periods of history, provides statistically significant improvements in accuracy over either of the two techniques used independently. Improvements in F-measure values of up to 14% (from 3% to 17%) over the conceptual technique in ArgoUML at the method granularity, and up to 21% over the evolutionary technique in iBatis (from 9% to 30%) at the file granularity were reported.United States NSF CCF-1016868, NSF CCF-0916260, NSF CCF-1156401, and NSF CCF-1218129 grants.Peer reviewe
