Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where P. David Stotts is active.

Publication


Featured researches published by P. David Stotts.


ACM Transactions on Information Systems | 1989

Petri-net-based hypertext: document structure with browsing semantics

P. David Stotts; Richard Furuta

We present a formal definition of the Trellis model of hypertext and describe an authoring and browsing prototype called αTrellis that is based on the model. The Trellis model not only represents the relationships that tie individual pieces of information together into a document (i.e., the adjacencies), but specifies the browsing semantics to be associated with the hypertext as well (i.e., the manner in which the information is to be visited and presented). The model is based on Petri nets, and is a generalization of existing directed graph-based forms of hypertext. The Petri net basis permits more powerful specification of what is to be displayed when a hypertext is browsed and permits application of previously developed Petri net analysis techniques to verify properties of the hypertext. A number of useful hypertext constructs, easily described in the Trellis model, are presented. These include the synchronization of simultaneous traversals of separate paths through a hypertext, the incorporation of access controls into a hypertext (i.e., specifying nodes that can be proven to be accessible only to certain classes of browsers), and construction of multiple specialized (tailored) versions from a single hypertext.


automated software engineering | 2003

SPQR: flexible automated design pattern extraction from source code

Jason McC. Smith; P. David Stotts

Previous automated approaches to discovering design patterns in source code have suffered from a need to enumerate static descriptions of structural and behavioral relationships, resulting in a finite library of variations on pattern implementation. Our approach, system for pattern query and recognition, or SPQR, differs in that we do not seek statically to encode each variant of the patterns that we wish to find. Our system finds pattern variants that were not explicitly defined, but instead are inferred dynamically during code analysis by a theorem prover, providing practical tool support for software construction, comprehension, maintenance, and refactoring. We use a logical inference system to reveal large numbers of patterns and their variations from a small number of definitions by encoding in a formal denotational semantics a small number of fundamental OO concepts (elemental design patterns), encode the rules by which these concepts are combined to form patterns (reliance operators), and encode the structural/behavioral relationships among components of objects and classes (rho-calculus). A chain of fully automated tools provides a path from source code to revealed patterns. We describe our approach in this paper with a concrete example to drive the discussion, accompanied by formal treatment of the foundational topics.


ACM Transactions on Information Systems | 1998

Hyperdocuments as automata: verification of trace-based browsing properties by model checking

P. David Stotts; Richard Furuta; Cyrano Ruiz Cabarrus

We present a view of hyperdocuments in which each document encodes its own browsing semantics in its links. This requires a mental shift in how a hyperdocument is thought of abstractly. Instead of treating the links of a document as defining a static directed graph, they are thought of as defining an abstract program, termed the links-automaton of the document. A branching temporal logic notation, termed HTL*, is introduced for specifying properties a document should exhibit during browsing. An automated program verification technique called model checking is used to verify that browsing specifications in a subset of HTL* are met by the behavior defined in the links-automation. We illustrate the generality of these techniques by applying them first to several Trellis documents and then to a Hyperties document.


Lecture Notes in Computer Science | 2002

Exploring the Efficacy of Distributed Pair Programming

Prashant Baheti; Edward F. Gehringer; P. David Stotts

Pair programming is one of the twelve practices of Extreme Programming (XP). Pair programming is usually performed by programmers that are collocated - working in front of the same monitor. But the inevitability of distributed development of software gives rise to important questions: How effective is pair programming if the pairs are not physically next to each other? What if the programmers are geographically distributed? An experiment was conducted at North Carolina State University to compare different working arrangements of student teams developing object-oriented software. Teams were both collocated and in distributed environments; some teams practiced pair programming while others did not. In particular, we compared the software developed by virtual teams using distributed pair programming against collocated teams using pair programming and against virtual teams that did not employ distributed pair programming. The results of the experiment indicate that it is feasible to develop software using distributed pair programming, and that the resulting software is comparable to software developed in collocated or virtual teams (without pair programming) in productivity and quality.


acm conference on hypertext | 1991

Dynamic adaptation of hypertext structure

P. David Stotts; Richard Furuta

A technique is described for adapting the apparent structure of a hypertext to the behavior and preferences exhibited by its users while browsing. Examples are given an implementation of this technique using the timing mechanism in Trellis. In the technique, event durations in a document are altered without actually changing the links in the underlying Petri net. The two extrema of instantaneous events and infinite delays can be used to create apparent node and link deletions and additions, as well as to insert new tokens (loci of activity) into a document. Adaptation of these times is accomplished using a simple data state in which the event timings (and other document properties) are variables, called attributes. As a reader traverses hypertext links, author-supplied aulzptation agents are invoked to collect information and possibly change the values of the attributes. Agents encapsulate and effect the criteria for deciding when, and specifically how, a structure should be adapted. Several practical examples illustrate the conclusion of this repofi sophisticated alterations do not require a complicated adaptation mechanism, that changing document constants into document variables provides flexibility to this mechanism, and that using a limited simple mechanism is the only hope for retaining analysis of the static and dynamic net properties.


international symposium on software testing and analysis | 1996

Daistish: systematic algebraic testing for OO programs in the presence of side-effects

Merlin Hughes; P. David Stotts

Daistish is a tool that performs systematic algebraic testing similar to Gannons DAISTS tool [2]. However, Daistish creates effective test drivers for programs in languages that use side effects to implement ADTs; this includes C++ and most other object-oriented languages. The functional approach of DAISTS does not apply directly in these cases. The approach in our work is most similar to the ASTOOT system of Doong and Frankl [1]; Daistish differs from ASTOOT by using Guttag-style algebraic specs (functional notation), by allowing aliasing of type names to tailor the application of parameters in test cases, and by retaining the abilities of DAISTS to compose new test points from existing ones. Daistish is a Perl script, and is compact and practical to apply. We describe the implementation and our experiments in both Eiffel and C++. Our work has concentrated on solving the semantics-specific issues of correctly duplicating objects for comparison; we have not worked on methods for selecting specific test cases.Daistish consists of a perl script and supporting documentation. The current distribution can be obtained via WWW at URLhttp://www.cs.unc.edu/~stotts/Daistish/


Journal of Visual Languages and Computing archive | 1990

Temporal hyperprogramming

P. David Stotts; Richard Furuta

The visual programming aspects of Trellis hypertext documents are described. A hypertext is a non-linearly organized, browsable information structure. The importance of browsing distinguishes hypertext from other network information systems. The possible experiences a user may have when interacting with a hypertext are as important as its form. Further, these browsing semantics should be an inherent characteristic of a document, not of the implementation that allows browsing. In essence, a hypertext is an active entity that has a visible behavior, not a static entity that is manipulated by external means. The Trellis model employs the dual nature of Petri nets to formally express both aspects of a hypertext in one structure. A Petri net is a bipartite graph, so it captures the linked structure of relationships among information elements. It is also an automaton, having an execution state and state transition rules, thereby formally capturing the interactions between reader and document. In this report, we define the temporal semantics of the Trellis model and illustrate them with a prototype hypertext system called @aTrellis. This environment joins timed events and active computing engines into a dynamic, parallel browsing structure. In @aTrellis, hypertext authoring is visual programming for a temporally-synchronized, visual outcome-temporal hyperprogramming.


Lecture Notes in Computer Science | 2003

Virtual Teaming: Experiments and Experiences with Distributed Pair Programming

P. David Stotts; Laurie Williams; Nachiappan Nagappan; Prashant Baheti; Dennis Jen; Anne Jackson

Pair programming is a practice in which two programmers work together at one computer, collaborating on the same design, algorithm, code or test. Previous studies have shown that pair programmers produce higher quality code in essentially the same amount of time as solo programmers. Additional benefits include increased job satisfaction, improved team communication, and efficient tacit knowledge sharing. However, it may not always be possible for all team members to be collocated due to the rise in teleworking and geographically distributed teams. This paper analyzes the results of two distributed pair programming case studies done at UNC Chapel Hill and at NC State University. Participants used readily available off-the-shelf applications for collaborative software development. The results indicate that software development collaboratively “over the wire” is feasible, effective, and pleasant for the participants; distributed development is better done as synchronous pairs than as individuals who integrate; and distributed pairs maintain many of the advantages of collocated pairs.


conference on computer supported cooperative work | 1994

Interpreted collaboration protocols and their use in groupware prototyping

Richard Furuta; P. David Stotts

The correct and timely creation of systems for coordination of group work depends on the ability to express, analyze, and experiment with protocols for managing multiple work threads. We present an evolution of the Trellis model that provides a formal basis for prototyping the coordination structure of a collaboration system. In Trellis, group interaction protocols are represented separately from the interface processes that use them for coordination. Protocols are interpreted (rather than compiled into applications) so group interactions can be changed as a collaborative task progresses. Changes can be made either by a person editing the protocol specification “on the fly” or by a silent “observation” process that participates in an application solely to perform behavioral adaptations. Trellis uniquely mixes hypermedia browsing with collaboration support. We term this combination a hyperprogram, and we say that a hyperprogram integrates the description of a collaborative task with the information required for that task. As illustration, we describe a protocol for a moderated meeting and show a Trellis prototype conference tool controlled by this protocol.


acm conference on hypertext | 2000

An orthogonal taxonomy for hyperlink anchor generation in video streams using OvalTine

Jason McC. Smith; P. David Stotts; Sang-Uok Kum

As dynamically linked content follows the progression of statically linked media into the realm of video, new opportunities for link creation become apparent. In this paper we describe a real-time video hypermedia system with user-definable linkage areas, in a distributed collaborative environment. We also investigate the extension of such a system to automated link creation in video streams. In the process, we identify and describe orthogonal issues of hypervideo anchor creation. An example system, OvalTine, has been produced to illustrate several potential uses through configuration of an extended video conferencing application on the SGI O2 platform.

Collaboration


Dive into the P. David Stotts's collaboration.

Top Co-Authors

Avatar

Michael V. Capps

Massachusetts Institute of Technology

View shared research outputs
Top Co-Authors

Avatar

Jason McC. Smith

University of North Carolina at Chapel Hill

View shared research outputs
Top Co-Authors

Avatar

Karl Gyllstrom

University of North Carolina at Chapel Hill

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Dorian Miller

University of North Carolina at Chapel Hill

View shared research outputs
Top Co-Authors

Avatar

James Culp

University of North Carolina at Chapel Hill

View shared research outputs
Top Co-Authors

Avatar

Edward F. Gehringer

North Carolina State University

View shared research outputs
Top Co-Authors

Avatar

John B. Smith

University of North Carolina at Chapel Hill

View shared research outputs
Top Co-Authors

Avatar

Laurie Williams

North Carolina State University

View shared research outputs
Researchain Logo
Decentralizing Knowledge