2,847 papers · page 142 of 143
Richard G. Hamlet
Testing is potentially the best grounded part of software engineering, since it deals with the well defined situation of a fixed program and a test (a finite collection of input values). However, the fundamental theory of program testing is in disarray. Part of the reason is a co…
Mary Jean Harrold, Gregg Rothermel
The basic unit of testing in an object-oriented program is a class. Although there has been much recent research on testing of classes, most of this work has focused on black-box approaches. However, since black-box testing techniques may not provide sufficient code coverage, the…
Daniel Jackson, Eugene J. Rollins
A dependence model for reverse engineering should treat procedures in a modular fashion and should be fine-grained, distinguishing dependences that are due to different variables. The program dependence graph (PDG) satisfies neither of these criteria. We present a new form of dep…
Nicole Lévy, G. Smith
An interactive specification development environment is presented in which a number of development methodologies and specification languages can be supported. Within the environment, design concepts and strategies are captured by the application of development operators, i.e. ope…
Vahid Mashayekhi, Chris Feulner, John Riedl
Many software engineering tasks have a synchronous component that requires the participants to assemble together at the same time and place. This approach is expensive in terms of traveling, scheduling and human resources. Existing computer tools mitigate these constraints by add…
Mark Moriconi, Xiaolei Qian
The design of a large system typically involves the development of a hierarchy of different but related architectures. A criterion for the relative correctness of an architecture is presented, and conditions for architecture composition are defined which ensure that the correctne…
Thomas W. Reps, Susan Horwitz, Shmuel Sagiv, Genevieve Rosay
Program slicing is a fundamental operation for many software engineering tools. Currently, the most efficient algorithm for interprocedural slicing is one that uses a program representation called the system dependence graph. This paper defines a new algorithm for slicing with sy…
Mark T. Vandevoorde, John V. Guttag
Managing tradeoffs between program structure and program efficiency is one of the most difficult problems facing software engineers. Decomposing programs into abstractions simplifies the construction and maintenance of software and results in fewer errors. However, the introducti…
Gregory D. Abowd, Robert Allen, David Garlan
The software architecture of most systems is described informally and diagrammatically. In order for these descriptions to be meaningful at all, figures are understood by interpreting the boxes and lines in specific, conventionalized ways[5]. The imprecision of these interpretati…
Jean Paul Bahsoun, Stephan Merz, Corinne Servieres
Robert Balzer, K. Narayanaswamy
As more and more programming environments incorporate explicit process descriptions, generic process capabilities will become crucial to the convenient instantiation and maintenance of process description. However, partly because process modeling languages have followed the examp…
Don S. Batory, Vivek Singhal, Marty Sirkin, Jeff Thomas
Many software libraries (e.g., the Booch C++ Components, libg++, NIHCL, COOL) provide components (classes) that implement data structures. Each component is written by hand and represents a unique combination of features (e.g. concurrency, data structure, memory allocation algori…
Francesco Bergadano
Given a program P and a set of alternative programs P, we generate a sequence of test cases that are adequate, in the sense that they distinguish the given program from all alternatives. The method is related to fault-based approaches to program testing, but programs in P need no…
Jiazhen Cai, Robert Paige
This paper reports experimental results that support the feasibility of a new transformational approach developed by the authors for implementing complex algorithms correctly and efficiently. The class of algorithms amenable to our methods includes nonnumerical graph algorithms. …
David A. Carrington, David J. Duke, Ian J. Hayes, Jim Welsh
Shing-Chi Cheung, Jeff Kramer
Compositional techniques have been proposed for traditional reachability analysis in order to introduce modularity and to control the state explosion problem. While modularity has been achived, state explosion is still a problem. Indeed, this problem may even be exacerbated as a …
William G. Griswold
Automated assistance for meaning-preserving global restructuring is an approach for helping software engineers improve the structure of programs, thus lowering the costs of maintenance. The consturction of a restructuing tool encounters many conflicting goals---such as simplicity…
David A. Gustafson, Joo T. Tan, Perla Weaver
This paper introduces the model-order-mapping (MOM) approach for specifying software/document measures. A MOM specification requires that the important attributes of the document be identified, a model that captures the attributes be chosen, and a mapping from the document to the…
C. A. R. Hoare
Science makes progress by constructing mathematical models, deducing their observable consequences, and testing them by experiment. Successful theoretical models are later taken as the basis for engineering methods and codes of practice for design of reliable and useful products.…
Robyn R. Lutz
This paper provides a Safety Checklist for use during the analysis of software requirements for spacecraft and others safety-critical, embedded systems. The checklist specifically targets the two most common causes of safety-related software errors: (1) inadequate interface requi…