7719896
A study of evolution in the presence of source-derived partial design representations
When performing evolution tasks, software engineers focus on both the low-level changes required and the effects those changes will have on the system's design. The Design Snippets Tool generates partial design representations intended to help engineers address one design criterion: ease of change. We describe a study in which participants used the Design Snippets Tool and other aids to perform a restructuring task focused on ease of change. Our findings describe how participants proceeded through the restructuring task and how they used the Design Snippets Tool. The results show that participants used the Design Snippets Tool for high-level tasks such as discovery of design problems, identification of restructuring goals, and confirmation of design improvements.
8963340
Understanding and Aiding Code Evolution by Inferring Change Patterns
Evolution continues to play an ever-increasing role in software engineering. Although changing a program is the core of software evolution, program change patterns have not been considered as a first class entity in most classic studies of software evolution. Past empirical studies of software evolution primarily relied on quantitative and statistical analyses of a program over time, but did not focus on semantic and qualitative change patterns of a program. We hypothesize that by treating change patterns as first class entities we can better understand software evolution and also aid programmers in changing software. Our goal is to infer clone evolution patterns from a set of program versions stored in a source code repository. We defined a set of common clone evolution patterns based on our insights from the copy and paste study.
12348020
Using a clone genealogy extractor for understanding and supporting evolution of code clones
Programmers often create similar code snippets or reuse existing code snippets by copying and pasting. Code clones---syntactically and semantically similar code snippets---can cause problems during software maintenance because programmers may need to locate code clones and change them consistently. In this work, we investigate (1) how code clones evolve, (2) how many code clones impose maintenance challenges, and (3) what kind of tool or engineering process would be useful for maintaining code clones.Based on a formal definition of clone evolution, we built a clone genealogy tool that automatically extracts the history of code clones from a source code repository (CVS). Our clone genealogy tool enables several analyses that reveal evolutionary characteristics of code clones. Our initial results suggest that aggressive refactoring may not be the best solution for all code clones; thus, we propose alternative tool solutions that assist in maintaining code clones using clone genealogy information.
1475409
An ethnographic study of copy and paste programming practices in OOPL
Although programmers frequently copy and paste code when they develop software, implications of common copy and paste (C&P) usage patterns have not been studied previously. We have conducted an ethnographic study in order to understand programmers' C&P programming practices and discover opportunities to assist common C&P usage patterns. We observed programmers using an instrumented Eclipse IDE and then analyzed why and how they use C&P operations. Based on our analysis, we constructed a taxonomy of C&P usage patterns. This paper presents our taxonomy of C&P usage patterns and discusses our insights with examples drawn from our observations. From our insights, we propose a set of tools that both can reduce software maintenance problems incurred by C&P and can better support the intents of commonly used C&P scenarios.
5981940
SoftGUESS: Visualization and Exploration of Code Clones in Context
We introduce SoftGUESS, a code clone exploration system. SoftGUESS is built on the more general GUESS system which provides users with a mechanism to interactively explore graph structures both through direct manipulation as well as a domain-specific language. We demonstrate SoftGUESS through a number of mini-applications to analyze evolutionary code-clone behavior in software systems. The mini-applications of SoftGUESS represent a novel way of looking at code-clones in the context of many system features. It is our hope that SoftGUESS will form the basis for other analysis tools in the software- engineering domain.
18630917
Multimedia documents with elastic time
Time is an essential component in interactive multimedia documents (or systems). We present the elastic time model for multimedia documents. Using the metaphor of a spring system, it allows authors to associate with each multimedia object a minimum and a maximum length and a length at rest. Authors can connect the (elastic) objects by de ning temporal relationships among them. If the given specication is consistent, a document is produced which is also elastic, with a minimum, a maximum, and an optimal length. As such, our elastic model associates with a document a range of feasible solutions in addition to an optimal one. The author can then select from the acceptable range an alternative length for the document, and the system will compute a revised solution that takes the additional global constraint into e ect. The system can answer questions, such as: \Can I show this multimedia presentation in 10 minutes? If so, how should all the objects be scheduled?" Furthermore, the system also takes fairness into consideration and distributes any necessary stretching or shrinking across multimedia objects contained in a document. As such, the elastic time model provides expressive power and exibility in document auThe author's current address is: University of Maryland, College Park, MD 20742, JUNESONG @ CS.UMD.EDU thoring and browsing. The proposed approach has been implemented in Smalltalk/OS2.
6065142
On effective data clustering in bitemporal databases
Temporal databases provide built-in supports for efficient recording and querying of time-evolving data. In this paper, data clustering issues in temporal database environment are addressed. Data clustering is one of the most effective techniques that can improve performance of a database system. However, data clustering methods for conventional databases do not perform well in temporal databases because there exist crucial differences between their query patterns. We propose a data clustering measure, called Temporal Affinity, that can be used for the clustering of temporal data. The temporal affinity, which is based on the analysis of query patterns in temporal databases, reflects the closeness of temporal data objects in viewpoints of temporal query processing. We perform experiments to evaluate the proposed measure. The experimental results show that a data clustering method with the temporal affinity works better than other methods.
10136578
Tripodal schematic design of the control architecture for the Service Robot PSR
This paper describes a control architecture design and a system integration strategy for the autonomous service robot PSR (Public Service Robot). The PSR is under development at the KIST (Korea Institute of Science and Technology) for service tasks in public spaces such as office buildings and hospitals. The proposed control architecture is designed by tripodal frameworks, which are layered functionality diagram, class diagram, and configuration diagram. The tripodal schematic design clearly points out the way of integrating various hardware and software components. The developed strategy is implemented on the PSR and successfully tested.
241209
Transient behaviors of TCP-friendly congestion control protocols
We investigate the fairness, smoothness, responsiveness, and aggressiveness of TCP and three representative TCP-friendly congestion control protocols: GAIMD, TFRC, and TEAR. The properties are evaluated both analytically and via simulation by studying protocol responses to three network environment changes. The first environment change is the inherent fluctuations in a stationary network environment. Under this scenario, we consider three types of sending rate variations: smoothness, short-term fairness, and long-term fairness. For a stationary environment, we observe that smoothness and fairness are positively correlated. We derive an analytical expression for the sending rate coefficient of variation for each of the four protocols. These analytical results match well with experimental results. The other two environment changes we study are a step increase of network congestion and a step increase of available bandwidth. Protocol responses to these changes reflect their responsiveness and aggressiveness, respectively.
193488
Synchronized Disk Interleaving
A group of disks may be interleaved to speed up data transfers in a manner analogous to the speedup achieved by main memory interleaving. Conventional disks may be used for interleaving by spreading data across disks and by treating multiple disks as if they were a single one. Furthermore, the rotation of the interleaved disks may be synchronized to simplify control and also to optimize performance. In addition, check- sums may be placed on separate check-sum disks in order to improve reliability. In this paper, we study synchronized disk interleaving as a high-performance mass storage system architecture. The advantages and limitations of the proposed disk interleaving scheme are analyzed using the M/G/1 queueing model and compared to the conventional disk access mechanism.