Search For:

Displaying 1-33 out of 33 total
A Comprehensive Approach to Naming and Accessibility in Refactoring Java Programs
Found in: IEEE Transactions on Software Engineering
By Max Schäfer,Andreas Thies,Friedrich Steimann,Frank Tip
Issue Date:November 2012
pp. 1233-1257
Automated tool support for refactoring is now widely available for mainstream programming languages such as Java. However, current refactoring tools are still quite fragile in practice and often fail to preserve program behavior or compilability. This is m...
 
Fault Localization for Dynamic Web Applications
Found in: IEEE Transactions on Software Engineering
By Shay Artzi,Julian Dolby,Frank Tip,Marco Pistoia
Issue Date:March 2012
pp. 314-335
In recent years, there has been significant interest in fault-localization techniques that are based on statistical analysis of program constructs executed by passing and failing executions. This paper shows how the Tarantula, Ochiai, and Jaccard fault-loc...
 
Practical fault localization for dynamic web applications
Found in: Software Engineering, International Conference on
By Shay Artzi,Julian Dolby,Frank Tip,Marco Pistoia
Issue Date:May 2010
pp. 265-274
We leverage combined concrete and symbolic execution and several fault-localization techniques to create a uniquely powerful tool for localizing faults in PHP applications. The tool automatically generates tests that expose failures, and then automatically...
 
Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit-State Model Checking
Found in: IEEE Transactions on Software Engineering
By Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, Michael D. Ernst
Issue Date:July 2010
pp. 474-494
Web script crashes and malformed dynamically generated webpages are common errors, and they seriously impact the usability of Web applications. Current tools for webpage validation cannot handle the dynamically generated pages that are ubiquitous on today'...
 
JUnitMX - A change-aware unit testing tool
Found in: Software Engineering, International Conference on
By Jan Wloka, Barbara G. Ryder, Frank Tip
Issue Date:May 2009
pp. 567-570
Developers use unit testing to improve the quality of software systems. Current development tools for unit testing help with automating test execution, with reporting results, and with generating test stubs. However, they offer no aid for designing tests a...
 
Safe-commit analysis to facilitate team software development
Found in: Software Engineering, International Conference on
By Jan Wloka, Barbara Ryder, Frank Tip, Xiaoxia Ren
Issue Date:May 2009
pp. 507-517
Software development teams exchange source code in shared repositories. These repositories are kept consistent by having developers follow a commit policy, such as “Program edits can be committed only if all available tests succeed.” Such policies may resu...
 
Dynamic detection of atomic-set-serializability violations
Found in: Software Engineering, International Conference on
By Christian Hammer, Julian Dolby, Mandana Vaziri, Frank Tip
Issue Date:May 2008
pp. 231-240
Previously we presented atomic sets, memory locations that share some consistency property, and units of work, code fragments that preserve consistency of atomic sets on which they are declared. We also proposed atomic-set serializability as a correctness ...
 
Crisp--A Fault Localization Tool for Java Programs
Found in: Software Engineering, International Conference on
By Ophelia C. Chesley, Xiaoxia Ren, Barbara G. Ryder, Frank Tip
Issue Date:May 2007
pp. 775-779
Crisp is an Eclipse plug-in tool for constructing intermediate versions of a Java program that is being edited. After a long editing session, a programmer will run regression tests to make sure she has not invalidated previously tested functionality. If a ...
 
Refactoring for Parameterizing Java Classes
Found in: Software Engineering, International Conference on
By Adam Kiezun, Michael D. Ernst, Frank Tip, Robert M. Fuhrer
Issue Date:May 2007
pp. 437-446
Type safety and expressiveness of many existing Java libraries and their client applications would improve, if the libraries were upgraded to define generic classes. Ef- ficient and accurate tools exist to assist client applications to use generic librarie...
 
Dynamic determinacy analysis
Found in: Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation (PLDI '13)
By Frank Tip, Julian Dolby, Manu Sridharan, Max Schäefer
Issue Date:June 2013
pp. 165-174
We present an analysis for identifying determinate variables and expressions that always have the same value at a given program point. This information can be exploited by client analyses and tools to, e.g., identify dead code or specialize uses of dynamic...
     
Directed test generation for effective fault localization
Found in: Proceedings of the 19th international symposium on Software testing and analysis (ISSTA '10)
By Frank Tip, Julian Dolby, Marco Pistoia, Shay Artzi
Issue Date:July 2010
pp. 49-60
Fault-localization techniques that apply statistical analyses to execution data gathered from multiple tests are quite effective when a large test suite is available. However, if no test suite is available, what is the best approach to generate one? This p...
     
Refactoring for reentrancy
Found in: Proceedings of the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering on European software engineering conference and foundations of software engineering symposium (ESEC/FSE '09)
By Frank Tip, Jan Wloka, Manu Sridharan
Issue Date:August 2009
pp. 171-172
A program is reentrant if distinct executions of that program on distinct inputs cannot affect each other. Reentrant programs have the desirable property that they can be deployed on parallel machines without additional concurrency control. Many existing J...
     
Relationships and associations in object-oriented languages
Found in: Companion to the 23rd ACM SIGPLAN conference on Object oriented programming systems languages and applications (OOPSLA Companion '08)
By David Pearce, Erik Meijer, Frank Tip, Gavin Bierman, James Noble, Jiri Soukup, Stephanie Balzer, Stephen Nelson
Issue Date:October 2008
pp. 186-189
There is a disconnect between modelling and implementation: relationships are prevalent in system models but implementation languages do not provide first-class support for them. For example, in Java (and other Object-Oriented Languages), relationships mus...
     
Finding bugs in dynamic web applications
Found in: Proceedings of the 2008 international symposium on Software testing and analysis (ISSTA '08)
By Adam Kiezun, Amit Paradkar, Danny Dig, Frank Tip, Julian Dolby, Michael D. Ernst, Shay Artzi
Issue Date:July 2008
pp. 119-120
Web script crashes and malformed dynamically-generated Web pages are common errors, and they seriously impact usability of Web applications. Current tools for Web-page validation cannot handle the dynamically-generated pages that are ubiquitous on today's ...
     
Dynamic detection of atomic-set-serializability violations
Found in: Proceedings of the 13th international conference on Software engineering (ICSE '08)
By Christian Hammer, Frank Tip, Julian Dolby, Mandana Vaziri
Issue Date:May 2008
pp. 1-1
Previously we presented atomic sets, memory locations that share some consistency property, and units of work, code fragments that preserve consistency of atomic sets on which they are declared. We also proposed atomic-set serializability as a correctness ...
     
Finding bugs efficiently with a SAT solver
Found in: Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering (ESEC-FSE '07)
By Frank Tip, Julian Dolby, Mandana Vaziri
Issue Date:September 2007
pp. 195-204
We present an approach for checking code against rich specifications, based on existing work that consists of encoding the program in a relational logic and using a constraint solver to find specification violations. We improve the efficiency of this appro...
     
An operational semantics and type safety prooffor multiple inheritance in C++
Found in: Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming languages, systems, and applications (OOPSLA '06)
By Daniel Wasserrab, Frank Tip, Gregor Snelting, Tobias Nipkow
Issue Date:October 2006
pp. 102-111
We present an operational semantics and type safety proof for multiple inheritance in C++. The semantics models the behaviour of method calls, field accesses, and two forms of casts in C++ class hierarchies exactly, and the type safety proof was formalized...
     
Associating synchronization constraints with data in an object-oriented language
Found in: Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL'06)
By Frank Tip, Julian Dolby, Mandana Vaziri
Issue Date:January 2006
pp. 334-345
Concurrency-related bugs may happen when multiple threads access shared data and interleave in ways that do not correspond to any sequential execution. Their absence is not guaranteed by the traditional notion of "data race" freedom. We present a new defin...
     
Chianti: a change impact analysis tool for java programs
Found in: Proceedings of the 27th international conference on Software engineering (ICSE '05)
By Barbara G. Ryder, Frank Tip, Maximilian Stoerzer, Xiaoxia Ren
Issue Date:May 2005
pp. 664-665
Chianti is a change impact analysis tool for Java that is implemented in the context of the Eclipse environment. Chianti analyzes two versions of a Java program, decomposes their difference into a set of atomic changes, and a partial order inter-dependence...
     
Chianti: a tool for change impact analysis of java programs
Found in: Proceedings of the 19th annual ACM SIGPLAN Conference on Object-oriented programming, systems, languages, and applications (OOPSLA '04)
By Barbara G. Ryder, Fenil Shah, Frank Tip, Ophelia Chesley, Xiaoxia Ren
Issue Date:October 2004
pp. 328-329
This paper reports on the design and implementation of Chianti, a change impact analysis tool for Java that is implemented in the context of the Eclipse environment. Chianti analyzes two versions of an application and decomposes their difference into a set...
     
Advanced refactorings in eclipse
Found in: Companion to the 19th annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications (OOPSLA '04)
By Adam Kiezun, Frank Tip, Robert Fuhrer
Issue Date:October 2004
pp. 8-8
We will demonstrate several advanced refactorings for Java that have been implemented in the context of the Eclipse development environment for Java (see <b>www.eclipse.org</b>). These refactorings are semantics-preserving program transformations t...
     
Change impact analysis for object-oriented programs
Found in: Proceedings of the 2001 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering (PASTE '01)
By Barbara G. Ryder, Frank Tip
Issue Date:June 2001
pp. 46-53
Small changes can have major and nonlocal effects in object-oriented languages, due to the use of subtyping and dynamic dispatch. This complicates life for maintenance programmers, who need to fix bugs or add enhancements to systems originally written by o...
     
Extracting library-based object-oriented applications
Found in: Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications (SIGSOFT '00/FSE-8)
By Frank Tip, Peter F. Sweeney
Issue Date:November 2000
pp. 163-166
In an increasingly popular model of software distribution, software is developed in one computing environment and deployed in other environments by transfer over the internet. Extraction tools perform a static whole-program analysis to determine unused fun...
     
Scalable propagation-based call graph construction algorithms
Found in: Proceedings of the conference on Object-oriented programming, systems, languages, and applications (OOPSLA '00)
By Frank Tip, Jens Palsberg
Issue Date:October 2000
pp. 150-151
Propagation-based call graph construction algorithms have been studied intensively in the 199Os, and differ primarily in the number of sets that are used to approximate run-time values of expressions. In practice, algorithms such as RTA that use a single s...
     
Practical experience with an application extractor for Java
Found in: Proceedings of the 1999 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA '99)
By Chris Laffra, David Streeter, Frank Tip, Peter F. Sweeney
Issue Date:November 1999
pp. 150-151
Java programs are routinely transmitted over low-bandwidth network connections as compressed class file archives (i.e., zip files and jar files). Since archive size is directly proportional to download time, it is desirable for applications to be as small ...
     
Aggregate structure identification and its application to program analysis
Found in: Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '99)
By Frank Tip, G. Ramalingam, John Field
Issue Date:January 1999
pp. 119-132
We describe a framework for flow analysis in higher-order languages. It is both a synthesis and extension of earlier work in this area, most notably [20, 22]The framework makes explicit use of flow graphs for modeling control and data flow properties of un...
     
Reengineering class hierarchies using concept analysis
Found in: Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering (SIGSOFT '98/FSE-6)
By Frank Tip, Gregor Snelting
Issue Date:November 1998
pp. 294-297
The design of a class hierarchy may be imperfect. For example, a class C may contain a member m not accessed in any C-instance, an indication that m could be eliminated, or moved into a derived class. Furthermore, different subsets of C's members may be ac...
     
A study of dead data members in C++ applications
Found in: Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation (PLDI '98)
By Frank Tip, Peter F. Sweeney
Issue Date:June 1998
pp. 329-338
Object-oriented applications may contain data members that can be removed from the application without affecting program behavior. Such "dead" data members may occur due to unused functionality in class libraries, or due to the programmer losing track of m...
     
Class hierarchy specialization
Found in: Proceedings of the 1997 ACM SIGPLAN conference on Object-oriented programming systems, languages and applications (OOPSLA '97)
By Frank Tip, Peter F. Sweeney
Issue Date:October 1997
pp. 99-107
Class libraries are generally designed with an emphasis on versatility and extensibility. Applications that use a library typically exercise only part of the library's functionality. As a result, objects created by the application may contain unused member...
     
Slicing class hierarchies in C++
Found in: Proceedings of the eleventh annual conference on Object-oriented programming systems, languages, and applications (OOPSLA '96)
By Frank Tip, G. Ramalingam, John Field, Jong-Deok Choi
Issue Date:October 1996
pp. 99-107
This paper describes an algorithm for slicing class hierarchies in C++ programs. Given a C++ class hierarchy (a collection of C++ classes and inheritance relations among them) and a program P that uses the hierarchy, the algorithm eliminates from the hiera...
     
Parametric program slicing
Found in: Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages (POPL '95)
By Frank Tip, G. Ramalingam, John Field
Issue Date:January 1995
pp. 379-392
Program slicing is a technique for isolating computational threads in programs. In this paper, we show how to mechanically extract a family of practical algorithms for computing slices directly from semantic specifications. These algorithms are based on co...
     
Practical extraction techniques for Java
Found in: ACM Transactions on Programming Languages and Systems (TOPLAS)
By Aldo Eisma, Chris Laffra, David Streeter, Frank Tip, Peter F. Sweeney
Issue Date:January 1988
pp. 625-666
Reducing application size is important for software that is distributed via the internet, in order to keep download times manageable, and in the domain of embedded systems, where applications are often stored in (Read-Only or Flash) memory. This paper expl...
     
Understanding class hierarchies using concept analysis
Found in: ACM Transactions on Programming Languages and Systems (TOPLAS)
By Frank Tip, Gregor Snelting
Issue Date:January 1988
pp. 540-582
A new method is presented for analyzing and reengineering class hierarchies. In our approach, a class hierarchy is processed along with a set of applications that use it, and a fine-grained analysis of the access and subtype relationships between objects, ...
     
 1