Dewayne E. Perry

Dewayne E. Perry
University of Texas at Austin | UT · Center for Advanced Research in Software Engineering (ARiSE)

PhD

About

301
Publications
39,624
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
9,710
Citations
Additional affiliations
January 2000 - present
University of Texas at Austin
Position
  • Professor & Motorola Regents Chair in Software Engineering
Description
  • All my papers can be found at http://users.ece.utexas.edu/~perry/work/papers.html

Publications

Publications (301)
Article
Full-text available
The volume at hand presents the special issue of the 9th International Conference on Software and Systems Process (ICSSP) 2016, which was held in Austin, Texas from May 14–15, 2016. ICSSP is the premier venue for research related to software and system development processes and has become an important mediator for industry and academia. To answer q...
Article
Developers participating in an open source software (OSS) project make contributions to the project in different levels and aspects. Their underlying technical interests, expertize, and working habits are indirectly delineated by their personal contributions. This paper is to discover the individualized contribution features of developers by latent...
Article
Full-text available
The International Conference on Software and Systems Process (ICSSP), continuing the success of Software Process Workshop (SPW), the Software Process Modeling and Simulation Workshop (ProSim) and the International Conference on Software Process (ICSP) conference series, has become the established premier event in the field of software and systems e...
Conference Paper
Predicting inventory shipments can be useful for lean inventory management such as inventory planning. In this paper, we propose approaches to predict inventory shipments based on the data extracted from the inventory management module of Oracle EBS systems of a GPS-manufacturing company. First, we introduce the process to extract the inventory shi...
Conference Paper
A general theory of software engineering has that there are two logical parts: design and evaluation, D and E, each of which as a theory T. The interesting question is "what is the relationship between these two theories in D and E". I first delineate a rich variety of theories related to D and E and consider these to be sub-theories critical to un...
Article
Full-text available
The four GTSE (General Theory of Software Engineering) Workshops have brought awareness to, more or less mature, differing approaches, candidate theories for SE (Software Engineering). But one asks how to appraise the generality of these theories? And in case they are specialized sub-theories, are they amenable to combination into more general theo...
Conference Paper
Full-text available
Research in business process optimization is valuable in improving business process models. However, it is difficult to find real datasets of business processes to evaluate process improvement techniques and tools.. In this paper, a symbolic process generator, namely G-DCBP, is introduced to stochastically generate symbolic data-centric business pr...
Conference Paper
Managing complexity is a fundamental goal of software engineering. One of the core techniques that has been successful in practice is that which separate concerns, especially variants of architectural abstractions called components and connectors. We present and illustrate a theory about the general structure of General Theories of Software Enginee...
Article
One of the reasons for the lack of rigor in software engineering compared to physical and behavioral sciences is that the theories that underpin our work, both as software engineers and as software engineering researchers, have not been given enough attention. To provide a step forward towards greater rigor, a framework has been created with which...
Article
Context Bug fixing is an integral part of software development and maintenance. A large number of bugs often indicate poor software quality, since buggy behavior not only causes failures that may be costly but also has a detrimental effect on the user’s overall experience with the software product. The impact of long lived bugs can be even more cri...
Conference Paper
Full-text available
Business process optimization can provide direct benefits to achieve business goals by improving predetermined objectives. In this paper, we study the properties of time performance and develop approaches to optimize it in workflow-based business processes. By applying our data-centric business process modeling techniques, we explore the possibilit...
Article
Even as the use of sensor networks to support mobile applications grows, our ability to seamlessly and efficiently incorporate sensor network capabilities into our mobile applications remains astoundingly difficult. Today, accessing remote sensing data and integrating this data into the adaptive behavior of a dynamic user-facing mobile application...
Conference Paper
Developing and deploying CPS applications involves a large amount of low-level programming that requires interacting with different (often proprietary) data formats, languages, and operating systems. In practice, applications are built for specific sensor network platforms with little potential for portability to other platforms or integration with...
Conference Paper
Managing architectural design decisions (ADDs) in software development process is an essential task for architectural knowledge management. As software ecosystems become a new software development paradigm in software engineering processes, it is important and necessary to capture and represent ADDs in open software development, and to evolve archi...
Conference Paper
Full-text available
The modeling techniques for business process are mostly graphics-based, that is argued to be simplified when the processes become too complex or expanded to provide full details. In this paper we propose a technique for modeling composite activities by including components of data, human actors and atomic activities. Furthermore, we represent busin...
Conference Paper
Bug fixing is a crucial part of software development and maintenance. A large number of bugs often indicate poor software quality since buggy behavior not only causes failures that may be costly but also has a detrimental effect on the user's overall experience with the software product. The impact of long lived bugs can be even more critical since...
Conference Paper
Locating bugs is important, difficult, and expensive, particularly for large-scale systems. To address this, natural language information retrieval techniques are increasingly being used to suggest potential faulty source files given bug reports. While these techniques are very scalable, in practice their effectiveness remains low in accurately loc...
Article
Full-text available
Software evolution is an increasingly challenging and compelling concern for every developed software system because of the changes in the requirements, the technology, etc. When software evolution is carried out, software architecture emerges as one of the cornerstones that should be considered from two different points of view: as an artifact for...
Conference Paper
Stack Overflow is a highly successful question-answering website in the programming community, which not only provide quick solutions to programmers’ questions but also is considered as a large repository of valuable software engineering knowledge. However, despite having a very engaged and active user community, Stack Overflow currently has more t...
Article
Full-text available
Recent research on Software Architecture has recovered its original emphasis on keeping track of design decisions and their rationales during software development, compiling them under the name of Architectural Knowledge (AK). This knowledge is composed of decision assets, which relate to each other creating a decision network structure. We argue t...
Conference Paper
We present a lightweight tool for coordinating tool usage in a structured and unobtrusive manner allowing for the formal description and implementation of development cycles with minimal human intervention. This tool, here and after referred to as “Path*” seeks to provide a minimal yet powerful framework for tool coordination by scripting actions t...
Conference Paper
Software engineering researchers have paid a good deal of attention to fault cause, discovery, and repair in software systems developed by software professionals. Yet, not all software is developed by software professionals, and consequently, not as much research has been conducted that explores fault cause, discovery, and repair in software system...
Conference Paper
Full-text available
Understanding the evolution of clones is important both for understanding the maintenance implications of clones and building a robust clone management system. To this end, researchers have already conducted a number of studies to analyze the evolution of clones, mostly focusing on Type-1 and Type-2 clones. However, although there are a significant...
Conference Paper
Theory is a critical and undervalued part of software engineering and software engineering research. While empirical evaluation is important in both software engineering and software engineering research, there is still a lack of maturity and deep understanding of this critical aspect of both enterprises. The purpose of my unifying theoretical foun...
Article
Global software development (GSD) is an increasing trend in the field of software engineering. It can be considered as coordinated activities of software development that are geographically and temporally distributed. The management of architectural knowledge, specifically, architectural design decisions (ADDs), becomes important in GSD due to the...
Article
Software engineering needs a general theory, i.e., a theory that applies across the field and unifies existing empirical and theoret- ical work. General theories are common in other domains, such as physics. While many software engineering theories exist, no general theory of software engineering is evident. Consequently, this report reviews the em...
Conference Paper
Alloy is a declarative modeling language based on first-order logic with sets and relations. Alloy problems are analyzed fully automatically by the Alloy Analyzer. The analyzer translates a problem for given bounds to a propositional formula for which it searches a satisfying assignment via an off-the-shelf propositional satisfiability (SAT) solver...
Conference Paper
The release and deployment phase of the software development process is often overlooked as part of broader software engineering research. In this paper, we discuss early results from a set of multiple semi-structured interviews with practicing release engineers. Subjects for the interviews are drawn from a number of different commercial software d...
Conference Paper
Software architecture is considered as a set of architectural design decisions. Managing the evolution of architectural design decisions helps to maintain consistency between requirements and the deployed system, and is also necessary for reducing architectural knowledge evaporation. In this paper, we propose a UML metamodel based on the Triple Vie...
Conference Paper
Alloy is a declarative modelling language based on first-order logic with sets and relations. Alloy formulas are checked for satisfiability by the fully automatic Alloy Analyzer. The analyzer, given an Alloy formula and a scope, i.e. a bound on the universe of discourse, searches for an instance i.e. a valuation to the sets and relations in the for...
Conference Paper
Full-text available
Software Architecture is a key artifact in the software development process, as it provides a bridge between the requirements of the system-tobe and its final design. Architectural description is therefore a critical step, which can be assisted by the use of Architectural Styles. Styles make it possible to reuse architectural knowledge by providing...
Conference Paper
Software architecture is considered as a set of architectural design decisions. Capturing and representing architectural design decisions during the architecting process is necessary for reducing architectural knowledge evaporation. Moreover, managing the evolution of architectural design decisions helps to maintain consistency between requirements...
Conference Paper
Software releases form a critical part of the life cycle of a software project. Typically, each project produces releases in its own way, using various methods of versioning, archiving, announcing and publishing the release. Understanding the release history of a software project can shed light on the project history, as well as the release process...
Article
Using Commercial Off-The-Shelf (COTS) products to build software systems requires the evaluation of existing COTS products, the selection of the COTS that best fit system requirements, and the integration of the selected COTS into the system. During ...
Conference Paper
The goal of this keynote paper is to argue for a unifying theoretical foundation for software engineering. I believe that one of the reasons for our lack of rigor compared to physical and behavioral sciences is that we have not given enough attention to the theories that underpin our work, both as software engineers and as software engineering rese...
Conference Paper
We present a novel approach to optimize incremental scope-bounded checking of programs using a relational constraint solver. Given a program and its correctness specification, scope-bounded checking encodes control-flow and data-flow of bounded code segments into declarative formulas and uses constraint solvers to search for correctness violations....
Conference Paper
Empirical studies that use software repository artifacts have become popular in the last decade due to the ready availability of open source project archives. In this paper, we survey empirical studies in the last three years of ICSE and FSE proceedings, and categorize these studies in terms of open source projects vs. proprietary source projects a...
Conference Paper
Given a program and its correctness specification, scope-bounded checking encodes control-flow and data-flow of bounded code segments into declarative formulas and uses constraint solvers to search for correctness violations. For non-trivial programs, the formulas are often complex and represent a heavy workload that can choke the solvers. To scale...
Conference Paper
Full-text available
There are a variety of contexts where dynamic architecture evolution is needed. The context we have been working in is that of providing architecture models of NASA training simulations for manned space exploration. In this context, as in many others, we do not need unrestricted dynamic evolution, but only a limited form of dynamic evolution where...
Conference Paper
Graphical User Interfaces (GUIs) are composed of virtual objects, widgets, which respond to events triggered by user actions. Therefore, test inputs for GUIs are event sequences that mimic user interaction. The nature of these sequences and the values for certain widgets, such as textboxes, causes a two-dimensional combinatorial explosion. In this...
Conference Paper
We present a novel approach to optimize scope-bounded checking programs using a relational constraint solver. Given a program and its correctness specification, the traditional approach translates a bounded code segment of the entire program into a declarative formula and uses a constraint solver to search for any correctness violations. Scalabilit...
Conference Paper
Full-text available
Recent research in software architecture has reasserted an emphasis on keeping track of design decisions and their rationales during the development process, that is, on maintaining architectural knowledge (AK). This knowledge takes the form of explicit assets, interrelated in decision networks. We argue that the relationships structuring these net...
Conference Paper
Parallel changes are becoming increasingly prevalent in the development of large scale software system. To further study the relationship between parallel changes and faults, we have designed and implemented a semantic conflict analyzer (SCA) to detect semantic interference between parallel changes. SCA combines data dependency analysis and program...
Article
Since source code is the ultimate definition of the behavior of a software product, changes to source code become the critical factor in understanding behavioral changes and predicting faults. In studies on source code changes, text or syntactic approaches have been widely used. Textual analysis focuses on changed text fragments while syntactic ana...
Article
Full-text available
While Graphical User Interfaces (GUIs) have become ubiquitous, testing them remains largely ad-hoc. Since the state of a GUI is modified by events on the GUI widgets, a useful approach is to consider test input for a GUI as an event sequence. Due to the combinatorial nature of these sequences, testing a GUI thoroughly is problematic and time-consum...
Article
Full-text available
In many software projects, mistakes are often repeated due to knowledge that has been forgotten from past practice. In order to capture such knowledge, recording, visualizing and identifying underlying contexts and process phenomena in project data is very important. However, directly inferring such contexts from software documents or formal report...
Conference Paper
To a user, unreleased software is nonexistent software, even in open source projects which make the source code readily accessible. Every project requires regular software releases to encourage adoption and attract developers. Different projects approach the task of releasing software in variousways [2], and many experience breakdowns in their rele...
Article
In June 2008, the Subversion development team released Subversion 1.5.0. This release contained a number of new features, but arrived only after a long and difficult development, test and release cycle. This protracted process confused and frustrated both users and developers. In this paper, we discuss the events which led to this breakdown, how th...
Article
Dewayne E. Perry Software and Systems Research Center AT&T Bell Laboratories Murray Hill, NJ 07974 1. Introduction Among the various issues that must be addressed in the building of software systems, there are two issues that fall within the province of version and configuration management: component derivation and component consistency --- that is...
Article
] Dewayne E. Perry AT&T Bell Laboratories, 3D-454 600 Mountain Ave. Murray Hill, New Jersey 07974 (201) 582-2529 The problems of Building Large Software Systems Our research focuses on the problems of building a software development environment within which developers can construct and evolve large software systems. There are a number of fundamenta...
Article
Full-text available
When mining software archives, we want to learn from the past to shape the future. But what does the research so far tell us about the future of the field itself? For this special issue, we invited and collected statements from nine research leaders in the field. These statements show opportunities for data collection and exploitation (Michael Godf...
Conference Paper
Changes to source code have become a critical factor in fault predictions. Text or syntactic approaches have been widely used. Textual analysis focuses on changed text fragments while syntactic analysis focuses on changed syntactic entities. Although both of them have demonstrated their advantages in experimental results, they only study code fragm...
Conference Paper
Issues in Architecture Evolution: 1) Using design intent in maintenance & 2) Controlling dynamic evolution In this keynote talk I will address two issues in software architecture evolution. In Alex Wolf’s and my original architecture model, we proposed rationale as one of the major components. Over the years very little has been explored about this...
Conference Paper
Full-text available
While Graphical User Interfaces (GUIs) have become ubiquitous, testing them remains largely ad-hoc. Since the state of a GUI is defined by a sequence of events on the GUI's widgets, a test input for a GUI is such an event sequence. Due to the combinatorial nature of the sequences, testing a GUI thoroughly is problematic and time-consuming. Moreover...
Article
Abstraction is one of the primary intellectual tools we have for managing complexity in software systems. When we think of abstractions we usually think about "small" abstractions, such as data abstraction (parameterization), type abstraction (polymorphism) and procedural or functional abstraction. These are the everyday kinds of things we work wit...
Article
Full-text available
In mobile and pervasive computing systems, the ability of an application to adapt its behavior in response to a changing environment is essential. In this paper we propose a new class of context-aware architectural connectors that enable software designers to incorporate context-aware aspects into a software architecture design. These context-aware...
Conference Paper
Conventional data networks are based on layered architectures. The introduction of wireless networks has created a need to violate this layering discipline to create cross- layer designs or adaptations. Ad-hoc implementations of such cross-layer adaptations reduce the level of modularity and abstraction in the network's implementation, giving rise...
Article
Global software developments intensify parallel changes. Although parallel changes can improve performance, their interferences contribute to faults. Current Software Configuration Management (SCM) systems can detect the interference between changes at textual level. However, our empirical study shows that, compared with textual interference, seman...
Article
Full-text available
Building systems from existing applications and data sources is common practice. Semi-structured data sources (such as XML, HTML, and databases) and program- ming languages (such as C# and Java) conform to well- defined, albeit different, type systems, each with their own unique underlying representations. As a consequence, reverse engineering of p...
Conference Paper
Parallel developments are becoming increasingly prevalent in the building and evolution of large-scale software systems. Our previous studies of a large industrial project showed that there was a linear correlation between the degree of parallelism and the likelihood of defects in the changes. To further study the relationship between parallel chan...
Article
We present a novel framework, Whispec, for white-box testing of methods that manipulate structurally complex data, such as those that pervade library classes. Given method preconditions as declarative constraints, our framework systematically generates test inputs for the methods to maximize their code coverage. The constraints are written in Alloy...
Conference Paper
Full-text available
A Graphical User Interface (GUI) consists of virtual objects (widgets) that are more intuitive to use, for example buttons, edit boxes, etc. While GUIs have become ubiquitous, testing them remains largely ad- hoc. In contrast with console applications where there is only one point of interaction (the command line), GUIs provide multiple points each...
Conference Paper
Software testing, the most commonly used technique for validating the quality of software, is a labor intensive process, and typically accounts for about half the total cost of software development and maintenance. Automating testing not only reduces the cost of producing software but also increases the reliability of modern software. White-box tes...
Conference Paper
Full-text available
Multi-agent systems provide an increasingly popular solution in problem domains that require management of uncertainty and a high degree of adaptability. Robustness is a key design criterion in building multi-agent systems. We present a novel approach for the design of robust multi-agent systems. Our approach constructs a model of the design of a m...
Conference Paper
Full-text available
Use case diagrams (UCDs) are widely used to describe requirements and desired functionality of software products. However, UCDs are loosely linked to programs source code, and maintaining traces between the source code and ele- ments of UCDs is a manual, tedious, and laborious process. We offer a novel approach for automating a part of this process...
Article
Full-text available
The second workshop on Sharing and Reusing Architectural Knowledge (SHARK) and Architecture rationale and Design intent (ADI) was held jointly with ICSE 2007 in Minneapolis. This report presents the themes of the workshop, summarizes the results of the discussions held, and suggests some topics for future research.
Conference Paper
This workshop explored innovative ways of integrating commercial off-the-shelf software products into software systems for purposes often unimagined by their creators. It investigated the challenges and risks faced as well as the benefits gained in building COTS-based software systems. The papers accepted to this workshop described tools and techni...
Conference Paper
Full-text available
The shift of the software architecture community towards architectural knowledge has brought along some promising research directions. In this workshop we discuss the issues that lead to the application of architectural knowledge in research and industrial practice as well as presenting ongoing research and new ideas to advance the field. We expect...
Conference Paper
As part of a graduate course on software architecture and design intent, we designed a class project in which teams of students performed software engineering tasks that required them to understand the design of an open source project and evolve the architectural design in response to a set of additional functional requirements. The students used i...
Conference Paper
The need for architectural rationale has long been recognized, but unfortunately it has remained a relatively unexplored area of research in software architecture. However, there is growing interest in methods for capturing the rationale behind software architectures. We summarize two of these methods (CBSP and Archium), present an exploratory case...
Conference Paper
Software product lines (SPL), component based software engineering (CBSE) and commercial off the shelf (COTS) components provide a rich supporting base for creating software architectures. Further, they promise significant improvements in the quality of software configurations that can be composed from pre-built components. Software architectural s...
Conference Paper
Even though there has been some research on system evolution, there is no well defined vocabulary to indicate deviation of a system from desired goals. Further, there are no objective measures to indicate whether changes incorporated into a system as part of its evolution violates the integrity of the architectural design. Also, little research has...
Article
In the software tools studies, most of the evaluations were done within artificial contexts at labs. Although this approach can give instant feedback with low cost, the mock contexts are quite different from the real context and industrial developers are still confused with the experiment results. Our study provides a significant and low cost metho...
Article
Full-text available
Design intent is a collection of decision-making factors that explain a design. Annotating software architecture models with design knowledge such as design intent may benefit maintenance activities. Unfortunately, researchers do not understand how software maintainers conduct design activities and use design documentation. This position paper pres...
Chapter
Software evolution is usually considered in terms of corrections, improvements and enhancements. While helpful, this approach does not take into account the fundamental dimensions of well- engineered software systems (the domains, experience, and process) and how they themselves evolve and affect the evolution of systems for which they are the cont...
Chapter
Early data on the phenomenology of software system evolution suggest that such evolution involves and is, to some extent, governed by feedback. This feedback may take the form of information fed back to individuals or groups as a form of learning from experience or may take the form of observation and data that are used to control some aspect of th...
Article
Evolution of software has long been recognized as one of the most problematic and challenging areas in the field of software engineering, as evidenced by the high, often up to 60-80%, life-cycle costs attributed to this activity over the life of a software system. Studies of software evolution are central to the understanding and practice of softwa...
Article
Full-text available
This paper presents an experience report on teaching Data Engineering as a graduate-level class using a real-world project domain. Traditional computer science database courses focus on relational database theory and typically offer a background in SQL and database implementation. Our course presented databases within the context of Systems and Inf...
Chapter
Much of the work in configuration management has addressed the problems of version history and derivation. Little has been done to address the problems of reasoning about the consistency of composed components or the effects of substituting one version for another. In my paper, Version Control in the Inscape Environment [13], I defined a number of...
Chapter
The effectiveness of any tool, whether workflow or not depends on the how well it co-exists with the processes it supports. If it is congruent with those processes, then there's a chance that it enhance them. If not then it may be a severe hindrance. HyperCode automates several aspects of the current manual process and so is prima facae consistent...
Conference Paper
Full-text available
Security, scalability, and performance are critical for large-scale component-based applications. Weaving security solutions into the fabric of component-based architectures often worsens the scalability and performance of the resulting system. In this paper, we analyze the sources of nonscalability and conduct an empirical study that shows that cl...
Conference Paper
Architecture and design intent are critical elements in the development and evolution of software systems. They are critical in two ways. First, there must be a shared understanding of them to adequately and effectively build and evolve our systems. Second, this shared understanding is needed to coordinate the various developers and teams of develo...
Conference Paper
Full-text available
Software architecture can be a critical factor in software development. Understanding what soft- ware architects do in practice is necessary to the enterprise of providing techniques, methods, process, tools and technologies to support the development and use of software architecture. In this paper, we present the results of how architects handle r...
Conference Paper
Full-text available
We present highlights of an process improvement project at a software center in preparation for CMM Level 3, with applicable examples given that relate to CMM level 2, level 3, and the effort needed in transitioning between level 2 and 3. For the efforts taken at this particular software center, the work documented is divided into three parts: the...

Network

Cited By