2,847 papers · page 124 of 143
Chao Liu, Jiawei Han
Recent software systems usually feature an automated failure reporting system, with which a huge number of failing traces are collected every day. In order to prioritize fault diagnosis, failing traces due to the same fault are expected to be grouped together. Previous methods, b…
David Lo, Siau-Cheng Khoo
Improper management of software evolution, compounded by imprecise, and changing requirements, along with the "short time to market" requirement, commonly leads to a lack of up-to-date specifications. This can result in software that is characterized by bugs, anomalies and even s…
Heng Lu, W. K. Chan, T. H. Tse
Pervasive context-aware software is an emerging kind of application. Many of these systems register parts of their context-aware logic in the middleware. On the other hand, most conventional testing techniques do not consider such kind of application logic. This paper proposes a …
Shahar Maoz, David Harel
We exploit the main similarity between the aspect-oriented programming paradigm and the inter-object, scenario-based approach to specification in order to construct a new way of executing systems based on the latter. Specifically, we show how to compile multi-modal scenario-based…
T. H. Ng, Shing-Chi Cheung, W. K. Chan, Yuen-Tak Yu
Program refactoring using design patterns is an attractive approach for facilitating anticipated changes. Its benefit depends on at least two factors, namely the effort involved in the refactoring and how effective it is. For example, the benefit would be small if too much effort…
Matthew J. Rutherford, Antonio Carzaniga, Alexander L. Wolf
Developers of distributed systems routinely construct discrete-event simulations to help understand and evaluate the behavior of inter-component protocols. Simulations are abstract models of systems and their environments, capturing basic algorithmic functionality at the same tim…
Jonathan Sillito, Gail C. Murphy, Kris De Volder
Though many tools are available to help programmers working on change tasks, and several studies have been conducted to understand how programmers comprehend systems, little is known about the specific kinds of questions programmers ask when evolving a code base. To fill this gap…
Maximilian Störzer, Barbara G. Ryder, Xiaoxia Ren, Frank Tip
Testing and code editing are interleaved activities during program development. When tests fail unexpectedly, the changes that caused the failure(s) are not always easy to find. We explore how change classification can focus programmer attention on failure-inducing changes by aut…
Mana Taghdiri, Robert Seater, Daniel Jackson
A method for extracting syntactic specifications from heapmanipulating code is described. The state of the heap is represented as an environment mapping each variable or field to a relational expression. A procedure is executed symbolically, obtaining an environment for the post-…
Chunyang Ye, Shing-Chi Cheung, W. K. Chan, Chang Xu
Atomicity is a desirable property for business processes to conduct transactions in Business-to-Business (B2B) collaboration. Although it is possible to reason about atomicity of B2B collaboration using the public views, yet such reasoning requires the presence of a trustworthy p…
Xiangyu Zhang, Sriraman Tallam, Rajiv Gupta
Fixing runtime bugs in long running programs using trace based analyses such as dynamic slicing was believed to be prohibitively expensive. In this paper, we present a novel execution fast forwarding technique that makes this feasible. While a naive solution is to divide the enti…
Jorge Aranda, Steve M. Easterbrook
Anchoring and adjustment is a form of cognitive bias that affects judgments under uncertainty. If given an initial answer, the respondent seems to use this as an 'anchor', adjusting it to reach a more plausible answer, even if the anchor is obviously incorrect. The adjustment is …
Paul Baker, Paul Bristow, Clive Jervis, David J. King, Robert Thomson, Bill Mitchell, Simon Burton
Scenario based requirements specifications are the industry norm for defining communicating systems. These scenarios are often captured in the form of UML/MSC sequence diagrams. Errors are often introduced at this stage of the development process, which are costly to resolve if t…
Marco Antonio Barbosa
The complexity and ubiquity achieved by software in the present world makes it imperative, more than ever, the availability of both technologies and sound methods to drive its development. Programming 'in--the--large', component--based programming and software architecture are po…
Aline Lúcia Baroni
In this work we plan to provide a suite of measures to address mainly two problem areas within contemporary object-oriented software measurement: (i) the lack of measures for the early stages of system development, like conceptual modeling and (ii) the lack of measures for dynami…
Hamid Abdul Basit, Stan Jarzabek
Cloning in software systems is known to create problems during software maintenance. Several techniques have been proposed to detect the same or similar code fragments in software, so-called simple clones. While the knowledge of simple clones is useful, detecting design-level sim…
Jennifer Bevan, E. James Whitehead Jr., Sunghun Kim, Michael W. Godfrey
Software evolution research inherently has several resource-intensive logistical constraints. Archived project artifacts, such as those found in source code repositories and bug tracking systems, are the principal source of input data. Analysis-specific facts, such as commit meta…
Kevin Bierhoff, Jonathan Aldrich
Previous work has proven typestates to be useful for modeling protocols in object-oriented languages. We build on this work by addressing substitutability of subtypes as well as improving precision and conciseness of specifications. We propose a specification technique for object…
António S. Câmara
Pervasive computing is a broad term that may have different meanings. In this talk, we will focus on its ubiquitous and persistent dimensions. Fundamental methods and conventional applications of pervasive computing are briefly reviewed considering the most common technologies (h…
Robert Chatley, Thomas Timbul
A fundamental part of a Computer Science degree is learning to program. Rather than starting students on a full commercial language, we favour using a dedicated "teaching language" to introduce programming concepts.At the same time, we want to introduce students to popular tools …