Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Richard N. Taylor

dblp:t/RichardNTaylor · also Richard Taylor 0001 · DBLP profile ↗
← Back
66ranked-venue papers
14as first author
1since 2021 · last 2025
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 58 · 12 first-author · 1 since 2021Artificial intelligence and machine learning · 4 · 1 first-authorHuman-computer interaction and ubiquitous computing · 3 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 3 · 2 first-authorDatabases, data management, data science and information retrieval · 2Systems, architecture and hardware · 1Computer networks · 1Theory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
41 papers
Requirements engineering and software design · 84% Software maintenance and evolution · 11% Empirical software engineering · 2%
Human-computer interaction and pervasive computing
10 papers
Collaborative and social computing · 72% User interface design and tools · 27% Usability and user experience research · 1%

Topics — the 30 heaviest of 70, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Requirements engineering and software design
software architecture
2.7222025
Software Architecture Description Revisited · IEEE Trans. Software Eng. 2025
Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development · ACM Trans. Softw. Eng. Methodol. 2018
Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award) · ESEC/SIGSOFT FSE 2017
Requirements engineering and software design › software architecture › architecture description
architecture description language
1.062025
Software Architecture Description Revisited · IEEE Trans. Software Eng. 2025
A comprehensive approach for the development of modular software architecture description languages · ACM Trans. Softw. Eng. Methodol. 2005
An infrastructure for the rapid development of XML-based architecture description languages · ICSE 2002
Requirements engineering and software design › software architecture
architecture-implementation conformance
0.532018
Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development · ACM Trans. Softw. Eng. Methodol. 2018
Enhancing architecture-implementation conformance with change management and support for behavioral mapping · ICSE 2012
Taming changes With 1.x-Way architecture-implementation mapping · ASE 2011
Requirements engineering and software design › software architecture
architectural style
0.462017
Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award) · ESEC/SIGSOFT FSE 2017
Software architecture: many faces, many places, yet a central discipline · ESEC/SIGSOFT FSE 2009
Reuse of Off-the-Shelf Components in C2-Style Architectures · ICSE 1997
Requirements engineering and software design › software architecture › reusable architecture
product line architecture
0.312018
Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development · ACM Trans. Softw. Eng. Methodol. 2018
Software maintenance and evolution
software evolution
0.312018
Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development · ACM Trans. Softw. Eng. Methodol. 2018
Requirements engineering and software design › software architecture
architecture-implementation mapping
0.332012
xMapper: An architecture-implementation mapping tool · ICSE 2012
Taming changes With 1.x-Way architecture-implementation mapping · ASE 2011
A Language and Environment for Architecture-Based Software Development and Evolution · ICSE 1999
Requirements engineering and software design › software architecture
self-adaptive systems
0.222010
Fifth Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010) · ICSE (2) 2010
Software engineering for adaptive and self-managing systems · ICSE 2006
Requirements engineering and software design › software architecture › self-adaptive systems
architecture-based adaptation
0.212013
Coupling software architecture and human architecture for collaboration-aware system adaptation · ICSE 2013
Software maintenance and evolution › traceability
automated traceability
0.112010
Software traceability with topic modeling · ICSE (1) 2010
Empirical software engineering
mining software repositories
0.112010
Software traceability with topic modeling · ICSE (1) 2010
Requirements engineering and software design
software product lines
0.112010
Software architecture: foundations, theory, and practice · ICSE (2) 2010
Software maintenance and evolution
traceability
0.112010
Software traceability with topic modeling · ICSE (1) 2010
Requirements engineering and software design › software architecture
domain-specific software architecture
0.112009
Software architecture: many faces, many places, yet a central discipline · ESEC/SIGSOFT FSE 2009
Internet architecture and protocols › web services
REST
0.112007
From representations to computations: the evolution of web architectures · ESEC/SIGSOFT FSE 2007
Requirements engineering and software design
requirements traceability
0.112007
An end-to-end industrial software traceability tool · ESEC/SIGSOFT FSE 2007
Distributed systems › distributed system security
trust management
0.112006
Architectural support for trust models in decentralized applications · ICSE 2006
Software maintenance and evolution
autonomic computing
0.122010
Fifth Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010) · ICSE (2) 2010
Software engineering for adaptive and self-managing systems · ICSE 2006
Collaborative and social computing
socio-technical systems
0.012013
Coupling software architecture and human architecture for collaboration-aware system adaptation · ICSE 2013
Software maintenance and evolution
program comprehension
0.012003
An Approach for Tracing and Understanding Asynchronous Architectures · ASE 2003
Software maintenance and evolution › software reuse
component reuse
0.021997
Reuse of Off-the-Shelf Components in C2-Style Architectures · ICSE 1997
A Component- and Message-Based Architectural Style for GUI Software · ICSE 1995
Requirements engineering and software design › software architecture
software connectors
0.021999
Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures · ICSE 1999
Architecture-Based Runtime Software Evolution · ICSE 1998
Internet architecture and protocols
protocol design
0.012000
Principled design of the modern Web architecture · ICSE 2000
Concurrent programming
concurrency analysis
0.021995
A Concurrency Analysis Tool Suite for Ada Programs: Rational, Design, and Preliminary Experience · ACM Trans. Softw. Eng. Methodol. 1995
Metric-Driven Reengineering for Static Concurrency Analysis · ISSTA 1993
Software maintenance and evolution
runtime evolution
0.011998
Architecture-Based Runtime Software Evolution · ICSE 1998
Authentication and access control › trust management
trust models
0.012006
Architectural support for trust models in decentralized applications · ICSE 2006
Requirements engineering and software design › software architecture › component-based software engineering
component-based development
0.011997
Reuse of Off-the-Shelf Components in C2-Style Architectures · ICSE 1997
Requirements engineering and software design
software process
0.011997
Endeavors: A Process System Infrastructure · ICSE 1997
Software maintenance and evolution
software reuse
0.012005
A comprehensive approach for the development of modular software architecture description languages · ACM Trans. Softw. Eng. Methodol. 2005
Distributed systems
consensus
0.012004
Extending the Representational State Transfer (REST) Architectural Style for Decentralized Systems · ICSE 2004

Methods — techniques the papers use, named apart from their topics

case study · 0.3runtime software architecture mapping · 0.3human collaboration topology modeling · 0.3architectural design principles · 0.3code regeneration · 0.3state diagrams · 0.1architecture change notification · 0.1UML sequence diagrams · 0.1code separation · 0.1architecture change model · 0.1architectural constraints · 0.0message-based communication · 0.0asynchronous notification · 0.0n-ary links · 0.0hypermedia data modeling · 0.0architectural style analysis · 0.0anchor · 0.0software architecture · 0.0
YearPublicationVenuePosition
2025 Software Architecture Description Revisited
abstract
Many languages for modeling various aspects of software systems’ architectures have been proposed over the past three decades. In the late 1990s, we provided the first systematic foundation for understanding, classifying, and comparing the quickly emerging architecture description languages (ADLs). This culminated in a 2000 IEEE TSE publication, which has subsequently been referenced widely. In this paper, we revisit the 2000 framework, consider how it influenced a foundational study of the suitability of the Unified Modeling Language (UML) as an ADL and influenced the development of an extensible ADL (xADL) with a set of highly innovative features. We show how further work with modeling efforts led to a new and deeper understanding of software architecture itself. We conclude by analyzing a series of recent developments that have reshaped the software architecture landscape, posing new questions about the nature of architecture description.
Nenad Medvidovic, Richard N. Taylor, Eric M. Dashofy
IEEE Trans. Software Eng.2
2018 Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development
abstract
Architecture-centric development addresses the increasing complexity and variability of software systems by focusing on architectural models, which are generally easier to understand and manipulate than source code. It requires a mechanism that can maintain architecture-implementation conformance during architectural development and evolution. The challenge is twofold. There is an abstraction gap between software architecture and implementation, and both may evolve. Existing approaches are deficient in support for both change mapping and product line architecture. This article presents a novel approach named 1.x-way mapping and its extension, 1.x-line mapping to support architecture-implementation mapping in single system development and in product line development, respectively. They specifically address mapping architecture changes to code, maintaining variability conformance between product line architecture and code, and tracing architectural implementation. We built software tools named xMapper and xLineMapper to realize the two approaches, and conducted case studies with two existing open-source systems to evaluate the approaches. The result shows that our approaches are applicable to the implementation of a real software system and are capable of maintaining architecture-implementation conformance during system evolution.
Cuong Cu, Richard N. Taylor
ACM Trans. Softw. Eng. Methodol.3
2017 Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award)
abstract
Seventeen years after its initial publication at ICSE 2000, the Representational State Transfer (REST) architectural style continues to hold significance as both a guide for understanding how the World Wide Web is designed to work and an example of how principled design, through the application of architectural styles, can impact the development and understanding of large-scale software architecture. However, REST has also become an industry buzzword: frequently abused to suit a particular argument, confused with the general notion of using HTTP, and denigrated for not being more like a programming methodology or implementation framework.
Roy T. Fielding, Richard N. Taylor, Justin R. Erenkrantz, Michael Martin Gorlick, E. James Whitehead Jr., Rohit Khare, Peyman Oreizy
ESEC/SIGSOFT FSE2
2015 Analyzing runtime adaptability of collaboration patterns
abstract
Summary The recent two decades have witnessed the emergence of large‐scale, interaction‐intensive systems. A system's provided user‐centric communication and coordination mechanisms have a significant impact on its runtime management. Beyond a certain size, manual monitoring and management are no longer feasible. Hence, it is highly important for a system designer to becoming aware of the most suitable interaction mechanisms and their implications on system adaptability. Specifically, a system designer requires knowledge on what adaptation primitives are available, whether these are system‐driven or user‐driven, how long they will take, what impact do they have on collaboration state, and under what conditions they can be enacted. These aspects vary considerably across collaboration patterns. In this paper, we investigate a collaboration structure's adaptability based on behavior, asynchrony, state, and execution context. We subsequently discuss seven distinctively different collaboration patterns in terms of those aspects. Based on a motivating scenario, we ultimately demonstrate how these patterns and insights into their inherent adaptability may guide design decision impact and trade‐off analysis. Copyright © 2014 John Wiley & Sons, Ltd.
Christoph Mayr-Dorn, Richard N. Taylor
Concurr. Comput. Pract. Exp.2
2013 Coupling software architecture and human architecture for collaboration-aware system adaptation
abstract
The emergence of socio-technical systems characterized by significant user collaboration poses a new challenge for system adaptation. People are no longer just the “users” of a system but an integral part. Traditional self-adaptation mechanisms, however, consider only the software system and remain unaware of the ramifications arising from collaboration interdependencies. By neglecting collective user behavior, an adaptation mechanism is unfit to appropriately adapt to evolution of user activities, consider side-effects on collaborations during the adaptation process, or anticipate negative consequence upon reconfiguration completion. Inspired by existing architecture-centric system adaptation approaches, we propose linking the runtime software architecture to the human collaboration topology. We introduce a mapping mechanism and corresponding framework that enables a system adaptation manager to reason upon the effect of software-level changes on human interactions and vice versa. We outline the integration of the human architecture in the adaptation process and demonstrate the benefit of our approach in a case study.
Christoph Mayr-Dorn, Richard N. Taylor
ICSE2
2013 The role of architectural styles in successful software ecosystems
abstract
Software ecosystems are complex systems composed of multiple independent elements interacting with the system as a whole and with each other. "Success" for an ecosystem may be judged primarily in economic terms, but may alternatively be assessed with regard to other qualities, such as reduced time-to-market, widespread use, or adaptability. Example successful ecosystems include iOS apps, Photoshop Lightroom plug-ins, RESTful web services, and numerous e-commerce systems. This talk will examine the critical role that architectural styles play in making and sustaining successful ecosystems. Architectural styles are sets of design decisions applicable to a particular context, constraining development within that context, and yielding beneficial qualities. Styles carry lessons learned through experience, aid communication, provide vocabulary, and speed design. Most importantly, they can be key elements in maintaining conceptual integrity. After examining the role of styles in several ecosystems, the talk will focus on the particular problems of ecosystems in which some participants may be malicious, or where high degrees of customization or adaptability are required.
Richard N. Taylor
SPLC1
2013 A classification and rationalization of model-based software development
Richard N. Taylor
Softw. Syst. Model.2
2012 Co-adapting human collaborations and software architectures
abstract
Human collaboration has become an integral part of large-scale systems for massive online knowledge sharing, content distribution, and social networking. Maintenance of these complex systems, however, still relies on adaptation mechanisms that remain unaware of the prevailing user collaboration patterns. Consequently, a system cannot react to changes in the interaction behavior thereby impeding the collaboration's evolution. In this paper, we make the case for a human architecture model and its mapping onto software architecture elements as fundamental building blocks for system adaptation.
Christoph Mayr-Dorn, Richard N. Taylor
ICSE2
2012 Enhancing architecture-implementation conformance with change management and support for behavioral mapping
abstract
It is essential for software architecture to be consistent with implementation during software development. Existing architecture-implementation mapping approaches are not sufficient due to a variety of reasons, including lack of support for change management and mapping of behavioral architecture specification. A new approach called 1.x-way architecture-implementation mapping is presented in this paper to address these issues. Its contribution includes deep separation of generated and non-generated code, an architecture change model, architecture-based code regeneration, and architecture change notification. The approach is implemented in ArchStudio 4, an Eclipse-based architecture development environment. To evaluate its utility, we refactored the code of ArchStudio, and replayed changes that had been made to ArchStudio in two research projects by redoing them with the developed tool.
Richard N. Taylor
ICSE2
2012 xMapper: An architecture-implementation mapping tool
abstract
xMapper is an Eclipse-based tool that implements a new architecture-implementation mapping approach called 1.x-way mapping. xMapper is able to record various architecture changes during software development, and automatically map specific kinds of architecture changes to code in specific ways. In addition, xMapper supports the mapping of behavioral architecture specifications modeled as UML-like sequence diagrams and state diagrams.
Richard N. Taylor
ICSE2
2012 A Holistic Approach to Software Traceability
Hazeline U. Asuncion, Richard N. Taylor
SEKE2
2012 Architecture-Driven Modeling of Adaptive Collaboration Structures in Large-Scale Social Web Applications
Christoph Mayr-Dorn, Richard N. Taylor
WISE2
2011 Taming changes With 1.x-Way architecture-implementation mapping
abstract
A new approach is presented to maintain the conformance between software architecture and code in the presence of changes to both artifacts. Its novel features include suppression of mistaken changes of architecture-prescribed code, explicit recording of architecture changes, and automatic mapping of specific kinds of architecture changes to code in specific ways. In particular, a new code separation mechanism is presented to decouple architecture-prescribed code from user-defined details. It is supported by three important technologies developed in this study to manage architecture changes, including an architecture change model, architecture-based code regeneration, and architecture change notification. The approach is implemented and integrated in ArchStudio, an Eclipse-based architecture development environment.
Richard N. Taylor
ASE2
2010 Software traceability with topic modeling
abstract
Software traceability is a fundamentally important task in software engineering. The need for automated traceability increases as projects become more complex and as the number of artifacts increases. We propose an automated technique that combines traceability with a machine learning technique known as topic modeling. Our approach automatically records traceability links during the software development process and learns a probabilistic topic model over artifacts. The learned model allows for the semantic categorization of artifacts and the topical visualization of the software system. To test our approach, we have implemented several tools: an artifact search tool combining keyword-based search and topic modeling, a recording tool that performs prospective traceability, and a visualization tool that allows one to navigate the software architecture and view semantic topics associated with relevant artifacts and architectural components. We apply our approach to several data sets and discuss how topic modeling enhances software traceability, and vice versa. Categories and Subject Descriptors
Hazeline U. Asuncion, Arthur U. Asuncion, Richard N. Taylor
ICSE (1)3
2010 Fifth Workshop on Software Engineering for Adaptive and Self-Managing Systems (SEAMS 2010)
abstract
The Software Engineering for Adaptive and Self-managing Systems (SEAMS) workshop has consolidated the interest in the software engineering community on self-adaptive and self-managing systems. SEAMS provides a forum for researchers and practitioners to share new results, discuss challenging issues, raise awareness, and promote collaboration within the community. The SEAMS 2010 workshop aims to continue the success of previous ICSE SEAMS workshops: in Shanghai in 2006, in Minneapolis in 2007, in Leipzig in 2008, and in Vancouver in 2009.
Betty H. C. Cheng, Rogério de Lemos, David Garlan, Holger Giese, Marin Litoiu, Jeff Magee, Hausi A. Müller, Mauro Pezzè, Richard N. Taylor
ICSE (2)9
2010 Software architecture: foundations, theory, and practice
abstract
Software architecture has become a centerpiece subject for software engineers, both researchers and practitioners alike. At the heart of every software system is its software architecture, i.e., "the set of principal design decisions about the system". Architecture permeates all major facets of a software system, for principal design decisions may potentially be made at any time during a system's lifetime, and potentially by any stakeholder. Such decisions encompass structural concerns, such as the system's high-level building blocks---components, connectors, and configurations; the system's deployment; the system's non-functional properties; and the system's evolution patterns, including runtime adaptation. Software architectures found particularly useful for families of systems---product lines---are often codified into architectural patterns, architectural styles, and reusable, parameterized reference architectures. This tutorial affords the participant an extensive treatment of the field of software architecture, its foundation, principles, and elements, including those mentioned above. Additionally, the tutorial introduces the participants to the state-of-the-art as well as the state-of-the-practice in software architecture, and looks at emerging and likely future trends in this field. The discussion is illustrated with numerous real-world examples. One example given prominent treatment is the architecture of the World Wide Web and its underlying architectural style, REpresentational State Transfer (REST).
Nenad Medvidovic, Richard N. Taylor
ICSE (2)2
2009 Software architecture: many faces, many places, yet a central discipline
abstract
Software architecture is the set of principal design decisions about a system. As such, it has been around since the design of the very first computer programs. Nonetheless, as a discipline and body of knowledge, it has greatly changed and matured over the years, emerging as a critical component of our field. This talk will examine a few of the many faces of software architecture, particularly since it emerged as a named field of study in the late 80's and early 90's. From an early focus on components, connectors, and configurations of systems, the focus of work is shifting to encompass a broader range of critical design decisions. A particular emphasis of this talk will be the articulation of fundamental principles of architectural styles and consideration of how they can dominate system design. From some early examples consideration will proceed to REST and hence to some emerging styles and the novel features they support. Along the way we will also consider notations and tools for supporting architecture-based design, and the perhaps most important winning proposition for the discipline: domain-specific software architectures.
Richard N. Taylor
ESEC/SIGSOFT FSE1
2009 Modeling PLA variation of privacy-enhancing personalized systems
Scott A. Hendrickson, Yang Wang 0005, André van der Hoek, Richard N. Taylor, Alfred Kobsa
SPLC4
2007 An end-to-end industrial software traceability tool
abstract
Traceability is an important aspect of software development that is often required by various professional standards and government agencies. Yet current industrial approaches do not typically address end-to-end traceability. Moreover, many industry projects become entangled in process overhead and fail to derive much benefit from current traceability solutions. This paper presents a successful end-to-end software traceability tool developed at Wonderware, a software development company and a business unit of Invensys Systems, Inc. This process-oriented approach achieves comprehensive traceability and supports the entire software development life cycle by focusing on both requirements traceability and process traceability. We offer new perspectives in analyzing the problem as well as general traceability guidelines. These guidelines have emerged from the experience of implementing and deploying the traceability tool within actual company constraints. We discuss encouraging results and point to the advantages gained in using our approach.
Hazeline U. Asuncion, Frédéric François, Richard N. Taylor
ESEC/SIGSOFT FSE3
2007 From representations to computations: the evolution of web architectures
abstract
REpresentational State Transfer (REST) guided the creation and expansion of the modern web. What began as an internet-scale distributed hypermedia system is now a vast sea of shared and interdependent services. However, despite the expressive power of REST, not all of its benefits are consistently realized by working systems. To resolve the dissonance between the promise of REST and the reality of fielded systems, we critically examine numerous web architectures. Our investigation yields a set of extensions to REST, an architectural style called Computational REST (CREST), that not only offers additional design guidance, but pinpoints, in many cases, the root cause of the apparent dissonance between style and implementation. Furthermore, CREST explains emerging web architectures (such as mashups) and points to novel computational structures.
Justin R. Erenkrantz, Michael Martin Gorlick, Girish Suryanarayana, Richard N. Taylor
ESEC/SIGSOFT FSE4
2007 Moving architectural description from under the technology lamppost
Nenad Medvidovic, Eric M. Dashofy, Richard N. Taylor
Inf. Softw. Technol.3
2006 Software engineering for adaptive and self-managing systems
abstract
The objective of this workshop is to consolidate the interest in the software engineering community on autonomic, self-managing, self-healing, self-optimizing, self-configuring, and self-adaptive systems. The workshop will provide a forum for researchers to share new results, raise awareness of new adaptive concerns, and promote collaboration among the community. This workshop will be the first of several to assess progress and identify challenges in this important area.
Betty H. C. Cheng, David Garlan, Rogério de Lemos, Jeff Magee, Richard N. Taylor, Stephen Fickas, Hausi A. Müller
ICSE5
2006 Architectural support for trust models in decentralized applications
abstract
Decentralized applications are composed of distributed entities that directly interact with each other and make local autonomous decisions in the absence of a centralized coordinating authority. Such decentralized applications, where entities can join and leave the system at any time, are particularly susceptible to the attacks of malicious entities. Each entity therefore requires protective measures to safeguard itself against these entities. Trust management solutions serve to provide effective protective measures against such malicious attacks. Trust relationships help an entity model and evaluate its confidence in other entities towards securing itself. Trust management is, thus, both an essential and intrinsic ingredient of decentralized applications. However, research in trust management has not focused on how trust models can be composed into a decentralized architecture. The PACE architectural style, described previously [21], provides structured and detailed guidance on the assimilation of trust models into a decentralized entity's architecture. In this paper, we describe our experiments with incorporating four different reputation-based trust models into a decentralized application using the PACE architectural style. Our observations lead us to conclude that PACE not only provides an effective and easy way to integrate trust management into decentralized applications, but also facilitates reuse while supporting different types of trust models. Additionally, PACE serves as a suitable platform to aid the evaluation and comparison of trust models in a fixed setting towards providing a way to choose an appropriate model for the setting.
Girish Suryanarayana, Mamadou H. Diallo, Justin R. Erenkrantz, Richard N. Taylor
ICSE4
2005 A comprehensive approach for the development of modular software architecture description languages
abstract
Research over the past decade has revealed that modeling software architecture at the level of components and connectors is useful in a growing variety of contexts. This has led to the development of a plethora of notations for representing software architectures, each focusing on different aspects of the systems being modeled. In general, these notations have been developed without regard to reuse or extension. This makes the effort in adapting an existing notation to a new purpose commensurate with developing a new notation from scratch. To address this problem, we have developed an approach that allows for the rapid construction of new architecture description languages (ADLs). Our approach is unique because it encapsulates ADL features in modules that are composed to form ADLs. We achieve this by leveraging the extension mechanisms provided by XML and XML schemas. We have defined a set of generic, reusable ADL modules called xADL 2.0, useful as an ADL by itself, but also extensible to support new applications and domains. To support this extensibility, we have developed a set of reflective syntax-based tools that adapt to language changes automatically, as well as several semantically-aware tools that provide support for advanced features of xADL 2.0. We demonstrate the effectiveness, scalability, and flexibility of our approach through a diverse set of experiences. First, our approach has been applied in industrial contexts, modeling software architectures for aircraft software and spacecraft systems. Second, we show how xADL 2.0 can be extended to support the modeling features found in two different representations for modeling product-line architectures. Finally, we show how our infrastructure has been used to support its own development. The technical contribution of our infrastructure is augmented by several research contributions: the first decomposition of an architecture description language into modules, insights about how to develop new language modules and a process for integrating them, and insights about the roles of different kinds of tools in a modular ADL-based infrastructure.
Eric M. Dashofy, André van der Hoek, Richard N. Taylor
ACM Trans. Softw. Eng. Methodol.3
2004 Extending the Representational State Transfer (REST) Architectural Style for Decentralized Systems
abstract
Because it takes time and trust to establish agreement, traditional consensus-based architectural styles cannot safely accommodate resources that change faster than it takes to transmit notification of that change, nor resources that must be shared across independent agencies. The alternative is decentralization: permitting independent agencies to make their own decisions. Our definition contrasts with that of distribution, in which several agents share control of a single decision. Ultimately, the physical limits of network latency and the social limits of independent agency call for solutions that can accommodate multiple values for the same variable. Our approach to this challenge is architectural: proposing constraints on the configuration of components and connectors to induce particular desired properties of the whole application. Specifically, we present, implement, and evaluate variations of the World Wide Web's Representational State Transfer (REST) architectural style that support distributed and decentralized systems.
Rohit Khare, Richard N. Taylor
ICSE2
2004 PACE: An Architectural Style for Trust Management in Decentralized Applications
abstract
Distributed applications that lack a central, trustworthy authority for control and validation are properly termed decentralized. Multiple, independent agencies, or "partners", cooperate to achieve their separate goals. Issues of trust are paramount for designers of such partners. While the research literature has produced a variety of trust technology building blocks, few have attempted to articulate how these various technologies can regularly be composed to meet trust goals. This paper presents a particular, event-based, architectural style, PACE, that shows where and how to incorporate various types of trust-related technologies within a partner, positions the technologies with respect to the rest of the application, allows variation in the underlying network model, and works in a dynamic setting. Initial experiments with variants of two sample decentralized applications developed in the PACE style reveal the virtues of dealing with all aspects of application structure and trust in a comprehensive fashion.
Girish Suryanarayana, Justin R. Erenkrantz, Scott A. Hendrickson, Richard N. Taylor
WICSA4
2003 An Approach for Tracing and Understanding Asynchronous Architectures
abstract
Applications built in a strongly decoupled, event-based interaction style have many commendable characteristics, including ease of dynamic configuration, accommodation of platform heterogeneity, and ease of distribution over a network. It is not always easy to humanly grasp the dynamic behavior of such applications, since many threads are active and events are asynchronously (and profusely) transmitted. We present a set of requirements for an aid to assist in the human understanding and exploration of the behavior of such applications through the incremental refinement of rules for determining causality relationships between messages sent among components. A prototype tool is presented, indicating one viable approach to meeting these requirements. Experience with the tool reinforces some of the requirements and indicates others.
Scott A. Hendrickson, Eric M. Dashofy, Richard N. Taylor
ASE3
2003 Visualizing Software Architecture with Off-The-Shelf Components
Jie Ren 0001, Richard N. Taylor
SEKE2
2003 The Role of Middleware in Architecture-Based Software Development
abstract
Software architectures promote development focused on modular functional building blocks (components), their interconnections (configurations), and their interactions (connectors). Since architecture-level components often contain complex functionality, it is reasonable to expect that their interactions will be complex as well. Middleware technologies such as CORBA, COM, and RMI provide a set of predefined services for enabling component composition and interaction. However, the potential role of such services in the implementations of software architectures is not well understood. In practice, middleware can resolve various types of component heterogeneity — across platform and language boundaries, for instance — but also can induce unwanted architectural constraints on application development. We present an approach in which components communicate through architecture-level software connectors that are implemented using middleware. This approach preserves the properties of the architecture-level connectors while leveraging the beneficial capabilities of the underlying middleware. We have implemented this approach in the context of a component- and message-based architectural style called C2 and demonstrated its utility in the context of several diverse applications. We argue that our approach provides a systematic and reasonable way to bridge the gap between architecture-level connectors and implementation-level middleware packages.
Nenad Medvidovic, Eric M. Dashofy, Richard N. Taylor
Int. J. Softw. Eng. Knowl. Eng.3
2002 An infrastructure for the rapid development of XML-based architecture description languages
abstract
Research and experimentation in software architectures over the past decade have yielded a plethora of software architecture description languages (ADLs). Continuing innovation indicates that it is reasonable to expect more new ADLs, or at least ADL features. This research process is impeded by the difficulty and cost associated with developing new notations. An architect in need of a unique set of modeling features must either develop a new architecture description language from scratch or undertake the daunting task of modifying an existing language. In either case, it is unavoidable that a significant effort will be expended in building or adapting tools to support the language. To remedy this situation, we have developed an infrastructure for the rapid development of new architecture description languages. Key aspects of the infrastructure are its XML-based modular extension mechanism, its base set of reusable and customizable architectural modeling constructs, and its equally important set of flexible support tools. This paper introduces the infrastructure and demonstrates its value in the context of several real-world applications.
Eric M. Dashofy, André van der Hoek, Richard N. Taylor
ICSE3
2002 Principled design of the modern Web architecture
abstract
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia application. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. In this article we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture and used to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.
Roy T. Fielding, Richard N. Taylor
ACM Trans. Internet Techn.2
2001 A Highly-Extensible, XML-Based Architecture Description Language
abstract
Software architecture research focuses on models of software architectures as specified in architecture description languages (ADLs). As research progresses in specific areas of software architectures, more and more architectural information is created. Ideally, this information can be stored in the model. An extensible modeling language is crucial to experimenting with and building tools for novel modeling constructs that arise from evolving research. Traditional ADLs typically support a small set of modeling constructs very well, but adapt to others poorly. XML provides an ideal platform upon which to develop an extensible modeling language for software architectures. Previous XML-based ADLs successfully leveraged XML's large base of off-the-shelf tool support, but did not take advantage of its extensibility. To give software architecture researchers more freedom to explore new possibilities and modeling techniques, while maximizing reuse of tools and modeling constructs, we have developed xADL 2.0, a highly extensible XML-based ADL. xADL 2.0 supports run-time and design time modeling, architecture configuration management and model-based system instantiation. Additionally, xADL 2.0 has a set of extensible infrastructure tools that support the creation, manipulation, and sharing of xADL 2.0 documents.
Eric M. Dashofy, André van der Hoek, Richard N. Taylor
WICSA3
2000 Principled design of the modern Web architecture
abstract
The World Wide Web has succeeded in large part because its software architecture has been designed to meet the needs of an Internet-scale distributed hypermedia system. The modern Web architecture emphasizes scalability of component interactions, generality of interfaces, independent deployment of components, and intermediary components to reduce interaction latency, enforce security, and encapsulate legacy systems. In this paper, we introduce the Representational State Transfer (REST) architectural style, developed as an abstract model of the Web architecture to guide our redesign and definition of the Hypertext Transfer Protocol and Uniform Resource Identifiers. We describe the software engineering principles guiding REST and the interaction constraints chosen to retain those principles, contrasting them to the constraints of other architectural styles. We then compare the abstract model to the currently deployed Web architecture in order to elicit mismatches between the existing protocols and the applications they are intended to support.
Roy T. Fielding, Richard N. Taylor
ICSE2
2000 Techniques for Supporting Dynamic and Adaptive Workflow
Peter J. Kammer, Gregory Alan Bolcer, Richard N. Taylor, Arthur S. Hitomi, Mark Bergman
Comput. Support. Cooperative Work.3
2000 Test Process Improvement, Tim Koomen and Martin Pol, Addison-Wesley, 1999 (Book Review)
Richard N. Taylor
Softw. Test. Verification Reliab.1
2000 Chimera: hypermedia for heterogeneous software development enviroments
abstract
Emerging software development environments are characterized by heterogeneity: they are composed of diverse object stores, user interfaces, and tools. This paper presents an approach for providing hypermedia services in this heterogeneous setting. Central notions of the approach include the following: anchors are established with respect to interactiveviewsof objects, rather than the objects themselves; composable,n-ary links can be established between anchors on different views of objects which may be stored in distinct object bases; viewers may be implemented in different programming languages; and, hypermedia services are provided to multiple, concurrently active, viewers. The paper describes the approach, supporting architecture, and lessons learned. Related work in the areas of supporing heterogeneity and hypermedia data modeling is discussed. The system has been employed in a variety of contexts including research, development, and education.
Kenneth M. Anderson, Richard N. Taylor, E. James Whitehead Jr.
ACM Trans. Inf. Syst.2
2000 A Classification and Comparison Framework for Software Architecture Description Languages
abstract
Software architectures shift the focus of developers from lines-of-code to coarser-grained architectural elements and their overall interconnection structure. Architecture description languages (ADLs) have been proposed as modeling notations to support architecture-based development. There is, however, little consensus in the research community on what is an ADL, what aspects of an architecture should be modeled in an ADL, and which of several possible ADLs is best suited for a particular problem. Furthermore, the distinction is rarely made between ADLs on one hand and formal specification, module interconnection, simulation and programming languages on the other. This paper attempts to provide an answer to these questions. It motivates and presents a definition and a classification framework for ADLs. The utility of the definition is demonstrated by using it to differentiate ADLs from other modeling notations. The framework is used to classify and compare several existing ADLs, enabling us, in the process, to identify key properties of ADLs. The comparison highlights areas where existing ADLs provide extensive support and those in which they are deficient, suggesting a research agenda for the future.
Nenad Medvidovic, Richard N. Taylor
IEEE Trans. Software Eng.2
1999 Using Off-the-Shelf Middleware to Implement Connectors in Distributed Software Architectures
abstract
Software architectures promote development focused on modular building blocks and their interconnections. Since architecture-level components often contain complex functionality, it is reasonable to expect that their interactions will also be complex. Modeling and implementing software connectors thus becomes a key aspect of architecture-based development. Software interconnection and middleware technologies such as RMI, CORBA, ILU, and ActiveX provide a valuable service in building applications from components. The relation of such services to software connectors in the context of software architectures, however, is not well understood. To understand the tradeoffs among these technologies with respect to architectures, we have evaluated several off-the-shelf middleware technologies and identified key techniques for utilizing them in implementing software connectors. Our platform for investigation was C2, a component- and message-based architectural style. By encapsulating middleware functionality within software connectors, we have coupled C2's existing benefits such as component interchangeability, substrate independence and structural guidance with new capabilities of multi-lingual, multi-process and distributed application development in a manner that is transparent to architects.
Eric M. Dashofy, Nenad Medvidovic, Richard N. Taylor
ICSE3
1999 A Language and Environment for Architecture-Based Software Development and Evolution
abstract
Software architectures have the potential to substantially improve the development and evolution of large, complex, multi-lingual, multi-platform, long-running systems.However, in order to achieve this potential, specific techniques for architecture-based modeling, analysis, and evolution must be provided.Furthermore, one cannot fully benefit from such techniques unless support for mapping an architecture to an implementation also exists.This paper motivates and presents one such approach, which is an outgrowth of our experience with systems developed and evolved according to the C2 architectural style.We describe an architecture description language (ADL) specifically designed to support architecturebased evolution and discuss the kinds of evolution the language supports.We then describe a component-based environment that enables modeling, analysis, and evolution of architectures expressed in the ADL, as well as mapping of architectural models to an implementation infrastructure.The architecture of the environment itself can be evolved easily to support multiple ADLs, kinds of analyses, architectural styles, and implementation platforms.Our approach is fully reflexive: the environment can be used to describe, analyze, evolve, and (partially) implement itself, using the very ADL it supports.An existing architecture is used throughout the paper to provide illustrations and examples.
Nenad Medvidovic, David S. Rosenblum, Richard N. Taylor
ICSE3
1999 Toward locales: Supporting collaboration with Orbit
Tim Mansfield, Simon M. Kaplan, Geraldine Fitzpatrick, Ted Phelps, Mark Fitzpatrick, Richard N. Taylor
Inf. Softw. Technol.6
1998 Architecture-Based Runtime Software Evolution
abstract
Continuous availability is a critical requirement for an important class of software systems. For these systems, runtime system evolution can mitigate the costs and risks associated with shutting down and restarting the system for an update. We present an architecture-based approach to runtime software evolution and highlight the role of software connectors in supporting runtime change. An initial implementation of a tool suite for supporting the runtime modification of software architectures, called ArchStudio, is presented.
Peyman Oreizy, Nenad Medvidovic, Richard N. Taylor
ICSE3
1997 Evolving Orbit: a process report on building locales
abstract
Article Free Access Share on Evolving Orbit: a process report on building locales Authors: Tim Mansfield Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD Australia Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD AustraliaView Profile , Simon Kaplan Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD Australia Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD AustraliaView Profile , Geraldine Fitzpatrick Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD Australia Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD AustraliaView Profile , Ted Phelps View Profile , Mark Fitzpatrick View Profile , Richard Taylor Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD Australia Cooperative Research Centre for Distributed Systems Technology and School of Information Technology, The University of Queensland, St. Lucia 4072, QLD AustraliaView Profile Authors Info & Claims GROUP '97: Proceedings of the international ACM SIGGROUP conference on Supporting group work: the integration challengeNovember 1997 Pages 241–250https://doi.org/10.1145/266838.266919Online:16 November 1997Publication History 42citation399DownloadsMetricsTotal Citations42Total Downloads399Last 12 Months0Last 6 weeks0 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
Tim Mansfield, Simon M. Kaplan, Geraldine Fitzpatrick, Ted Phelps, Mark Fitzpatrick, Richard N. Taylor
GROUP6
1997 Endeavors: A Process System Infrastructure
abstract
No abstract available.
Arthur S. Hitomi, Gregory Alan Bolcer, Richard N. Taylor
ICSE3
1997 Reuse of Off-the-Shelf Components in C2-Style Architectures
abstract
Reuse of large-grain software components offers the potential for significant savings in application development cost and time.Successful comuonent reuse and substitutability depends both on qualities of the &mponents reused as well as the sofiware context in which the reuse is attempted.Disciplined approaches to the structure and design of software applications offers the potential of providing a hospitable setting for such reuse+ We present the results of a series of exercises designed to determine how well "offthe-shelf" components could be reused in applications designed in accordance with the C2 software architectural style.The exercises involved the reuse of two user-interface constraint solvers, two graphics toolkits, a World Wide Web browser, and a persistent object manager.A subset of these components was used to construct numemus variations of a single application (thus an application family).The exercises also included construction of a simple development environment for locating and downloading a component off the Web and incorporating it into an application.The paper summarizes the style rules that facilitate reuse and presents the results from the exercises.The exercises were successful in a variety of dimensions; one conclusion is that the C2 style offers significant reuse potential to application developers.At the same time, wider trials and additional tool support are needed' Index Terms -software reuse, architectural styles, messagebased architectures, component-based development, graphical user interfaces (GUI).
Nenad Medvidovic, Peyman Oreizy, Richard N. Taylor
ICSE3
1996 Using Object-Oriented Typing to Support Architectural Design in the C2 Style
abstract
Software architectures enable large-scale software development. Component reuse and substitutability, two key aspects of large-scale development, must be planned for during software design. Object-oriented (OO) type theory supports reuse by structuring inter-component relationships and verifying those relationships through type checking in an architecture definition language (ADL). In this paper, we identify the issues and discuss the ramifications of applying OO type theory to the C2 architectural style. This work stems from a series of experiments that were conducted to investigate component reuse and substitutability in C2. We also discuss the limits of applicability of OO typing to C2 and how we addressed them in the C2 ADL.
Nenad Medvidovic, Peyman Oreizy, Jason E. Robbins, Richard N. Taylor
SIGSOFT FSE4
1996 A Component- and Message-Based Architectural Style for GUI Software
abstract
While a large fraction of application code is devoted to graphical user interface (GUI) functions, support for reuse in this domain has largely been confined to the creation of GUI toolkits ("widgets"). We present a novel architectural style directed at supporting larger grain reuse and flexible system composition. Moreover, the style supports design of distributed, concurrent applications. Asynchronous notification messages and asynchronous request messages are the sole basis for intercomponent communication. A key aspect of the style is that components are not built with any dependencies on what typically would be considered lower-level components, such as user interface toolkits. Indeed, all components are oblivious to the existence of any components to which notification messages are sent. While our focus has been on applications involving graphical user interfaces, the style has the potential for broader applicability. Several trial applications using the style are described.
Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead Jr., Jason E. Robbins, Kari A. Nies, Peyman Oreizy, Deborah L. Dubrow
IEEE Trans. Software Eng.1
1995 A Component- and Message-Based Architectural Style for GUI Software
abstract
While a large j7action of application system code is devoted to user interface (U[)fi.mctions,support for reuse in this domain has largely been conjined to creation of UI toolkits ("widgets").We present a novel architectural style directed at supporting larger grain reuse andjexible system composition.Moreoveq the style supports design of distributed, concurrent, applications.A key aspect of the style is that components are not built with any dependencies on what typically would be considered lower-level components, such as user interface toolkits.Indeed, all components are oblivious to the existence of any components to which notijcation messages are sent.Asynchronous notification messages and asynchronous request messages are the sole basis for inter-component communication.While our focus has been on applications involving graphical user interfaces, the style has the potential for broader applicability.Several trial applications using the style are described~.
Richard N. Taylor, Nenad Medvidovic, Kenneth M. Anderson, E. James Whitehead Jr., Jason E. Robbins
ICSE1
1995 Chiron-1: A Software Architecture for User Interface Development, Maintenance, and Run-Time Support
abstract
The Chiron-1 user interface system demonstrates key techniques that enable a strict separation of an application from its user interface. These techniques include separating the control-flow aspects of the application and user interface: they are concurrent and may contain many threads. Chiron also separates windowing and look-and-feel issues from dialogue and abstract presentation decisions via mechanisms employing a client-server architecture. To separate application code from user interface code, user interface agents called artists are attached to instances of application abstract data types (ADTs). Operations on ADTs within the application implicitly trigger user interface activities within the artists. Multiple artists can be attached to ADTs, providing multiple views and alternative forms of access and manipulation by either a single user or by multiple users. Each artist and the application run in separate threads of control. Artists maintain the user interface by making remote calls to an abstract depiction hierarchy in the Chiron server, insulting the user interface code from the specifics of particular windowing systems and toolkits. The Chiron server and clients execute in separate processes. The client-server architecture also supports multilingual systems: mechanisms are demonstrated that support clients written in programming languages other than that of the server while nevertheless supporting object-oriented server concepts. The system has been used in several universities and research and development projects. It is available by anonymous ftp.
Richard N. Taylor, Kari A. Nies, Gregory Alan Bolcer, Craig A. MacFarlane, Kenneth M. Anderson, Gregory F. Johnson
ACM Trans. Comput. Hum. Interact.1
1995 Graph Models for Reachability of Concurrent Programs
abstract
The problem of analyzing concurrent systems has been investigated by many researchers, and several solutions have been proposed. Among the proposed techniques, reachability analysis—systematic enumeration of reachable states in a finite-state model—is attractive because it is conceptually simple and relatively straightforward to automate and can be used in conjunction with model-checking procedures to check for application-specific as well as general properties. This article shows that the nature of the translation from source code to a modeling formalism is of greater practical importance than the underlying formalism. Features identified as pragmatically important are the representation of internal choice, selection of a dynamic or static matching rule, and the ease of applying reductions. Since combinatorial explosion is the primary impediment to application of reachability analysis, a particular concern in choosing a model is facilitating divide-and-conquer analysis of large programs. Recently, much interest in finite-state verification systems has centered on algebraic theories of concurrency. Algebraic structure can be used to decompose reachability analysis based on a flowgraph model. The semantic equivalence of graph and Petri net-based models suggests that one ought to be able to apply a similar strategy for decomposing Petri nets. We describe how category-theoretic treatments of Petri nets provide a basis for decomposition of Petri net reachability analysis.
Mauro Pezzè, Richard N. Taylor, Michal Young
ACM Trans. Softw. Eng. Methodol.2
1995 A Concurrency Analysis Tool Suite for Ada Programs: Rational, Design, and Preliminary Experience
abstract
Cats (Concurrency Analysis Tool Suite) is designed to satisfy several criteria: it must analyze implementation-level Ada source code and check user-specified conditions associated with program source code; it must be modularized in a fashion that supports flexible composition with other tool components, including integration with a variety of testing and analysis techniques; and its performance and capacity must be sufficient for analysis of real application programs. Meeting these objectives together is significantly more difficult than meeting any of them alone. We describe the design and rationale of Cats and report experience with an implementation. The issues addressed here are primarily practical concerns for modularizing and integrating tools for analysis of actual source programs. We also report successful application of Cats to major subsystems of a (nontoy) highly concurrent user interface system.
Michal Young, Richard N. Taylor, David L. Levine, Kari A. Nies, Debra Brodbeck
ACM Trans. Softw. Eng. Methodol.2
1994 Workshop on Software Engineering and computer-Human Interaction: Joint Research Issues
Richard N. Taylor, Joëlle Coutaz
ICSE1
1993 Metric-Driven Reengineering for Static Concurrency Analysis
abstract
An approach to statically analyzing a concurrent program not suited for analysis is described. The program is reengineered to reduce the complexity of concurrency-related activities, thereby reducing the size of the concurrency state space. The key to the reengineering process is a metric set that characterizes program task interaction complexity and provides guidance for restructuring. An initial version of a metric set is proposed and applied to two examples to demonstrate the utility of the reengineering-for-analysis process. The reengineering has potential benefits apart from supporting analyzability, following the dictum that if it is hard to analyze, it is hard to understand and maintain.
David L. Levine, Richard N. Taylor
ISSTA2
1993 Comments on "Temporal Logic-Based Deadlock Analysis for Ada''
abstract
The commenters discuss several flaws they found in the above-titled paper by G.M. Koran and R.J.A. Burh (see ibid., vol.17, no.10, p.109-1125, (1991)). The commenters argue that the characterization of operational and axiomatic proof method is modified and inaccurate; the classification of modeling techniques for concurrent systems confuses the distinction between state-based and event-based models with the essential distinction between explicit enumeration of behaviors and symbolic manipulation of properties; the statements about the limitations of linear-time temporal logic in relation to nondeterminism are inaccurate; and the characterization of the computational complexity of the analysis technique is overly optimistic.>
David L. Levine, Richard N. Taylor
IEEE Trans. Software Eng.3
1992 Structural Testing of Concurrent Programs
abstract
Although structural testing techniques are among the weakest available with regard to developing confidence in sequential programs, they are not without merit. The authors extend the notion of structural testing criteria to concurrent programs and propose a hierarchy of supporting structural testing techniques. Coverage criteria described include concurrency state coverage, state transition coverage and synchronization coverage. Requisite support tools include a static concurrency analyzer and either a program transformation system or a powerful run-time monitor. Also helpful is a controllable run-time scheduler. The techniques proposed are suitable for Ada or CSP-like languages. Best results are obtained for programs having only static naming of tasking objects.>
Richard N. Taylor, David L. Levine, Cheryl D. Kelly
IEEE Trans. Software Eng.1
1991 User Interface Development and Software Environments: The Chiron-1 System
Rudolf K. Keller, Mary Cameron, Richard N. Taylor, Dennis B. Troup
ICSE3
1989 Rethinking the Taxonomy of Fault Detection Techniques
abstract
The conventional classification of software fault detection techniques as static or dynamic analysis is inadequate as a basis for identifying useful relationships between techniques. A more useful distinction is between techniques that sample the space of possible executions, and techniques that fold the space. The new distinction provides better insight into the ways different techniques can interact, and is a basis for considering hybrid fault detection techniques including combinations of testing and formal verification. Keywords: Fault detection, hybrid analysis techniques, static analysis, dynamic analysis. An earlier version of this paper appeared in Proceedings of the 11th International Conference on Software Engineering, Pittsburgh, May 1989. Address correspondence to the first author at Department of Computer Sciences, Purdue University, West Lafayette, IN 47907. Email: [email protected]. Phone: (317) 494-6023. This work was supported in part by the National Science Foundat...
Michal Young, Richard N. Taylor
ICSE2
1989 A Debugger for Ada Tasking
abstract
The capabilities needed in an Ada debugger are discussed in light of the language's tasking constructs, and the design for a debugger is presented which operates in concert with a single-processor Ada interpreter. This debugger design demonstrates the extensions to sequential debugging techniques that are necessary to handle concurrency, and shows that significant debugging functionality can be provided even without the inclusion of automatic error diagnosis methods. The issues considered include isolation of effects and display of the full dynamic execution status, both of which are essential to diagnosis of concurrent programs.>
Anne F. Brindle, Richard N. Taylor, David F. Martin
IEEE Trans. Software Eng.2
1988 Design Principles behind Chiron: A UIMS for Software Environments
Michal Young, Richard N. Taylor, Dennis B. Troup, Cheryl D. Kelly
ICSE2
1988 Combining Static Concurrency Analysis with Symbolic Execution
abstract
Static concurrency analysis detects anomalous synchronization patterns in concurrent programs, but may also report spurious errors involving infeasible execution paths. Integrated application of static concurrency analysis and symbolic execution sharpens the results of the former without incurring the full costs of the latter when applied in isolation. Concurrency analysis acts as a path selection mechanism for symbolic execution, while symbolic execution acts as a pruning mechanism for concurrency analysis. Methods of combining the techniques follow naturally from explicit characterization and comparison of the state spaces explored by each, suggesting a general approach for integrating state-based program analysis techniques in a software development environment.>
Michal Young, Richard N. Taylor
IEEE Trans. Software Eng.2
1988 Software Environment Architectures and User Interface Facilities
abstract
The authors discuss the demands and constraints on a user interface management system for a software environment, and the relation between the architecture of the environment and the user interface management system. A model for designing user interface management systems for large extensible environments is presented. This model synthesizes several recent advances in user interfaces and specializes them to the domain of software environments. The model can be applied to a wide variety of environment contexts. A prototype implementation is described.>
Michal Young, Richard N. Taylor, Dennis B. Troup
IEEE Trans. Software Eng.2
1985 Steps to an Advanced Ada^1 Programming Environment
abstract
Conceptual simplicity, tight coupling of tools, and effective support of host-target software development will characterize advanced Ada programming support environments. Several important principles have been demonstrated in the Arcturus system, including template-assisted Ada editing, command completion using Ada as a command language, and combining the advantages of interpretation and compilation. Other principles, relating to analysis, testing, and debugging of concurrent Ada programs, have appeared in other contexts. This paper discusses several of these topics, considers how they can be integrated, and argues for their inclusion in an environment appropriate for software development in the late 1980's.
Richard N. Taylor, Thomas A. Standish
IEEE Trans. Software Eng.1
1984 Steps to an Advanced Ada Programming Environment
Richard N. Taylor, Thomas A. Standish
ICSE1
1983 Complexity of Analyzing the Synchronization Structure of Concurrent Programs
Richard N. Taylor
Acta Informatica1
1983 An Integrated Verification and Testing Environment
abstract
Abstract A verification and testing environment that includes static analysis, symbolic execution, and dynamic analysis capabilities is presented. Tool integration and co‐operation are promoted through use of an intermediate program representation and a system data manager. A substantial user interface aids application of the tools. Their use is guided by a verification and testing methodology on which the system's design is based. The environment has been engineered to support the production of flight control software written in HAL/S. The environment itself is written in Pascal and is designed to be portable. Several development experiences are described. The environment demonstrates that a strong, unified verification and testing environment can be built; it serves as a basis for future investigations.
Richard N. Taylor
Softw. Pract. Exp.1
1980 Anomaly Detection in Concurrent Software by Static Data Flow Analysis
abstract
Algorithms are presented for detecting errors and anomalies in programs which use synchronization constructs to implement concurrency. The algorithms employ data flow analysis techniques. First used in compiler object code optimization, the techniques have more recently been used in the detection of variable usage errors in dngle process programs. By adapting these existing algorithms, the sane classes of variable usage errors can be detected in concurrent process programs. Important classes of errors unique to concurrent process programs are also described, and algorithms for their detection are presented.
Richard N. Taylor, Leon J. Osterweil
IEEE Trans. Software Eng.1
1978 A facility for verification, testing and documentation of concurrent process software
abstract
This paper describes the overall design of some modular capabilities for error detection testing, verification, and documentation of concurrent process HAL/S programs. The work described draws upon many ideas first advanced in building tools for single process software. In this paper, these ideas are significantly extended and adapted to realize the power of these tools for concurrent software. Particular attention is paid to the design of static data flow analysis capabilities for concurrent software.
Richard N. Taylor, Leon J. Osterweil
COMPSAC1