Results 1 -
5 of
5
Slicing spreadsheets: An integrated methodology for spreadsheet testing and debugging
- In Proceedings of the 2nd Conference on Domain Specific Languages
, 1999
"... Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein. ..."
Abstract
-
Cited by 27 (17 self)
- Add to MetaCart
Rights to individual papers remain with the author or the author's employer. Permission is granted for noncommercial reproduction of the work for educational or research purposes. This copyright notice must be included in the reproduced paper. USENIX acknowledges all trademarks herein.
An Approach To Analyzing and Testing Component-Based Systems
, 1999
"... Software testing and maintenance account for as much as two-thirds of the cost of software production. Program analysis techniques offer the potential to automate testing and maintenance tasks, and thereby reduce the cost of these tasks. An emerging paradigm of software development that promises to ..."
Abstract
-
Cited by 21 (0 self)
- Add to MetaCart
Software testing and maintenance account for as much as two-thirds of the cost of software production. Program analysis techniques offer the potential to automate testing and maintenance tasks, and thereby reduce the cost of these tasks. An emerging paradigm of software development that promises to enhance software productivity and quality composes software from independently-developed components. The nature of component-based software, however, introduces new problems for applying program analysis techniques to testing and maintenance of such software: the providers of software components develop and test the components independently of the applications that use the components; the users of software components analyze and test their applications without access to source code of the components used in those applications. This paper describes issues and challenges in applying analysis and testing techniques to component-based software and presents an approach to analyzing and testing co...
Incremental Slicing Based on Data-Dependences Types
- PROCEEDINGS OF THE INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE (ICSM ’01)
, 2001
"... Program slicing is useful for assisting with many software-maintenance tasks. The presence and frequent usage of pointers in languages such as C causes complex data dependences. To function effectively on such programs, slicing techniques must account for pointer-induced data dependences. Existing s ..."
Abstract
-
Cited by 15 (1 self)
- Add to MetaCart
Program slicing is useful for assisting with many software-maintenance tasks. The presence and frequent usage of pointers in languages such as C causes complex data dependences. To function effectively on such programs, slicing techniques must account for pointer-induced data dependences. Existing slicing techniques do not distinguish data dependences based on their types. This paper presents a new slicing technique, in which slices are computed based on types of data dependences. This new slicing technique offers several benefits and can be exploited in different ways, such as identifying subtle data dependences for debugging, computing reduced-size slices quickly for complex programs, and performing incremental slicing. This paper describes an algorithm for incremental slicing that increases the scope of a slice in steps, by incorporating different types of data dependences at each step. The paper also presents empirical results to illustrate the performance of the technique in practice. The results illustrate that incremental slices can be significantly smaller than complete slices. Finally, the paper presents a case study that explores the usefulness of incremental slicing for debugging. 1
Effects of Pointers on Data Dependences
- IN 9TH IEEE INTL. WORKSHOP PROGRAM COMPREHENSION
, 2001
"... This paper presents a technique for computing and classifying data dependences that takes into account the complexities introduced by specific language constructs, such as pointers, arrays, and structures. The classification is finergrained than previously proposed classifications. Moreover, unlike ..."
Abstract
-
Cited by 13 (2 self)
- Add to MetaCart
This paper presents a technique for computing and classifying data dependences that takes into account the complexities introduced by specific language constructs, such as pointers, arrays, and structures. The classification is finergrained than previously proposed classifications. Moreover, unlike previous work, the paper presents empirical results that illustrate the distribution of data dependences for a set of C subjects. The paper also presents a potential application for the proposed classification---program slicing---and a technique that computes slices based on data-dependence types. This technique facilitates the use of slicing for program understanding because a user can either augment a slice incrementally, by incorporating data dependences based on their relevance, or focus on specific kinds of dependences. Finally, the paper presents a case study that shows how the incremental addition of data dependences allows for growing the size of the slices in steps.
Trading Precision for Speed in Slicing
"... Slicing has been shown to be a useful program abstraction technique, with applications at many points in the software development life-cycle, particularly as a tool to assist software evolution. Unfortunately, slicing algorithms scale up rather poorly, diminishing the applicability of slicing in pra ..."
Abstract
- Add to MetaCart
Slicing has been shown to be a useful program abstraction technique, with applications at many points in the software development life-cycle, particularly as a tool to assist software evolution. Unfortunately, slicing algorithms scale up rather poorly, diminishing the applicability of slicing in practice. In applications where many slices are required from a largely unchanging system, incremental approaches to the construction of dependence information can be used, ensuring that slices are constructed speedily. However, for some applications, the only way to compute slices within eective time constraints will be to trade precision for speed. This approach has been successfully applied to a number of other computationally expensive source code analysis techniques, most notably points-to analysis. This paper introduces a theory for trading precision for speed in slicing based upon `blobbing together' several individual Control Flow Graph nodes. The theory de- nes the properties of co...

