Richard N. Taylor’s research while affiliated with University of California, Irvine and other places

What is this page?


This page lists works of an author who doesn't have a ResearchGate profile or hasn't added the works to their profile yet. It is automatically generated from public (personal) data to further our legitimate goal of comprehensive and accurate scientific recordkeeping. If you are this author and want this page removed, please let us know.

Publications (183)


Software Architecture Description Revisited
  • Article

January 2025

·

11 Reads

IEEE Transactions on Software Engineering

·

Richard N. Taylor

·

Eric M. Dashofy

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.


Handbook of Software Engineering

January 2019

·

112 Reads

·

16 Citations

This handbook provides a unique and in-depth survey of the current state-of-the-art in software engineering, covering its major topics, the conceptual genealogy of each subfield, and discussing future research directions. Subjects include foundational areas of software engineering (e.g. software processes, requirements engineering, software architecture, software testing, formal methods, software maintenance) as well as emerging areas (e.g., self-adaptive systems, software engineering in the cloud, coordination technology). Each chapter includes an introduction to central concepts and principles, a guided tour of seminal papers and key contributions, and promising future research directions. The authors of the individual chapters are all acknowledged experts in their field and include many who have pioneered the techniques and technologies discussed. Readers will find an authoritative and concise review of each subject, and will also learn how software engineering technologies have evolved and are likely to develop in the years to come. This book will be especially useful for researchers who are new to software engineering, and for practitioners seeking to enhance their skills and knowledge.


Peer-to-Peer_Architectures_and_the_Magi_Open-Sourc.pdf
  • Data
  • File available

November 2018

·

62 Reads

·

Michael Gorlick

·

Arthur S. Hitomi

·

[...]

·

Richard N. Taylor
Download

Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development

June 2018

·

108 Reads

·

9 Citations

ACM Transactions on Software Engineering and Methodology

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.


Only the Architecture You Need

June 2018

·

74 Reads

·

2 Citations

Arguably the prime focal point of a software system’s engineering is its architecture. A system’s architecture is the set of principal design decisions made during its development and evolution. All too often, however, the architecture—and every system has an architecture—is left latent. Such disregard arises from many factors; some would go so far as to say that an explicit focus on architecture is unnecessary. This chapter explores different contexts in which software development occurs and, with respect to those contexts, discusses what kind of attention to architecture is needed, why it is needed, how it may be approached, and benefits that may be achieved through such attention. The objective is to highlight the degrees of architectural rigor and effort that are commensurate with the needs of diverse projects.


Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award)

August 2017

·

263 Reads

·

67 Citations

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. In this paper, we chart the history, evolution, and shortcomings of REST, as well as several related architectural styles that it inspired, from the perspective of a chain of doctoral dissertations produced by the University of California's Institute for Software Research at UC Irvine. These successive theses share a common theme: extending the insights of REST to new domains and, in their own way, exploring the boundary of software engineering as it applies to decentralized software architectures and architectural design. We conclude with discussion of the circumstances, environment, and organizational characteristics that gave rise to this body of work.


Secure and Customizable EHR Management Services with COASTmed

July 2017

·

15 Reads

Lecture Notes in Computer Science

The exchange of electronic health records (EHR) among multiple parties and for multiple purposes raises nontrivial concerns. Unfortunately, privacy and operational policies granting individual access privileges to parties are often artifacts foreign to healthcare systems, thus EHR security is all the more frail. Moreover, current web service technologies that constitute many EHR systems treat users uniformly, making it more difficult for information consumers to use this data for specific purposes. Therefore, there is a need for EHR systems that offer secure, policy compliant access to data services and enable users to obtain the required information according to their individual authority. We present COASTmed, a notional EHR system that simultaneously offers provider-controlled differential service access and user-controlled customization. Our prototype is founded on the architectural principles of the COAST style and leverages the Rei policy language.


Communication and Capability URLs in COAST-based Decentralized Services

November 2014

·

13 Reads

·

1 Citation

Decentralized systems are systems-of-systems whose services are governed by two or more separate organizations under distinct spheres of authority. Coordinated evolution of the various elements of a decentralized system may be difficult, if not impossible, as individual organizations evolve their service offerings in response to organization- and service-specific pressures, including market demand, technology, competitive and cooperative interests, and funding. Consequently, decentralized services offer unique challenges for evolution and adaptation that reach well beyond any one single organizational boundary. Client-driven service customization and tailoring is a powerful tool for meeting conflicting, independent client demands in an environment where disorderly and uneven service evolution predominates. COmputAtional State Transfer (COAST) relies on capability security to minimize the risks of client-driven customization, for which fine-grain management of communication capability is critical. We introduce the Capability URL (CURL) as the unit of communication capability and show how two distinct mechanisms, communication capability and mobile code, can be combined to express and enforce constraints on the communications among decentralized computations.


Automated Techniques for Capturing Custom Traceability Links Across Heterogeneous Artifacts

October 2013

·

37 Reads

·

14 Citations

Software traceability is becoming an increasingly important facet of software engineering, especially as development projects become more distributed, decentralized, and dependent on third-party software. This chapter illustrates how traceability links can be automatically captured in situ, while software engineers perform their development tasks, through the use of specialized open hypermedia adapters and custom rules. Focusing on the mobile phone case study, we demonstrate how users can integrate their custom filters, heuristics, and relationship types, as well as their existing development tools, into our traceability system. We also show how our traceability link-capture technique can be incorporated with search tools and how traceability links can be effectively maintained. We provide practical usage scenarios and brief technical discussions for each of these capabilities.


A classification and rationalization of model-based software development

October 2013

·

47 Reads

·

15 Citations

Software and Systems Modeling

The use of model-based software development is increasingly popular due to recent advancements in modeling technology. Numerous approaches exist; this paper seeks to organize and characterize them. In particular, important terminological confusion, challenges, and recurring techniques of model-based software development are identified and rationalized. New perspectives are provided on some fundamental issues, such as the distinctions between model-driven development and architecture-centric development, code generation, and metamodeling. On the basis of this discussion, we opine that architecture-centric development and domain-specific model-driven development are the two most promising branches of model-based software development. Achieving a positive future will require, however, specific advances in software modeling, code generation, and model-code consistency management.


Citations (63)


... Software processes play a vital role in software development, as they heavily influence the quality of the final product, ensure delivery within specified requirements, and meet customers' needs within the given deadlines. A software process model is a simplified representation of a software process, typically classified as plandriven (traditional, planned, or rich) or agile [2]. In a plan-driven process, such as the waterfall model, activities are pre-planned, and progress is measured by comparing actual progress with the initial plan. ...

Reference:

Hybrid Software Development with Scrum: Perceptions of Brazilian Software Practitioners
Handbook of Software Engineering
  • Citing Book
  • January 2019

... Software traceability is defined as "the ability to interrelate any uniquely identifiable software engineering artifact to any other, maintain required links over time, and use the resulting network to answer questions of both the software product and its development process" [1]. It can support a wide range of software engineering (SE) activities, including facilitating the system comprehension [19,34], accelerating the maintenance tasks [12,32], managing the change process [24,38], and supporting daily development [40,47]. Unfortunately, despite its demonstrated benefits across many SE domains, recovering and maintaining traceability is time-consuming and challenging in practice [17]. ...

Maintaining Architecture-Implementation Conformance to Support Architecture Centrality: From Single System to Product Line Development
  • Citing Article
  • June 2018

ACM Transactions on Software Engineering and Methodology

... The Django server acts as a queue requests producer for image inference and also processes the final results. The results are consumed from a separate process that receives results from a dedicated results queue and sends the data to the Django web server via REST application interface endpoint [7]. The web server then saves the results to a PostgreSQL database server [22]. ...

Reflections on the REST architectural style and "principled design of the modern web architecture" (impact paper award)
  • Citing Conference Paper
  • August 2017

... Concerning the architectural completeness, before any self-healing system can occur, a significant infrastructure must be put in place to support fault detection and repair [7]. Specifically, the system must be built using a framework that provides: runtime adaptation, a language to express the repair plan, and an agent to execute the repair. ...

Towards architecture-based self-healing systems
  • Citing Conference Paper
  • January 2002

... The most prevalent automated tracing techniques include the Vector Space Model (VSM) [22], Latent Dirichlet Allocation (LDA) [8], Latent Semantic Indexing (LSI) [5], and deep-learning techniques [20]. Automated approaches typically analyze the textual content of each artifact, compute their syntactic and semantic similarity, and assign a relatedness score between each pair of artifacts that depicts the likelihood that the artifacts are associated. ...

Automated Techniques for Capturing Custom Traceability Links Across Heterogeneous Artifacts
  • Citing Article
  • October 2013

... Analyzing and evaluating software architecture during the design phase has been proved to be an effective way to find potential problems in the early stages of software life cycle, reduce costs and assure software quality [12]. Guided by this idea, some researchers have conducted research on architecture-level security analysis and design [13][14][15][16][17][18][19]. These methods can be used for verifying whether the design of software architecture has met the security requirements, or assuring the security of software architecture by designing security policies that constrain the components, connectors and configurations. ...

Towards an architectural treatment of software security
  • Citing Conference Paper
  • July 2005

ACM SIGSOFT Software Engineering Notes

... Hence, a software ecosystem exists around a central technology that is often referred to as a software platform (Manikas and Hansen 2013;Bosch 2009;Bosch and Bosch-Sijtsema 2010). Within software ecosystems, the platform is a key technological resource (Manikas and Hansen 2013;Taylor 2013). The platform may be, for example, an end-user application, an operating system, a standard system architecture, or a communications protocol (Bosch 2009;Taylor 2013). ...

The role of architectural styles in successful software ecosystems
  • Citing Article
  • August 2013

... Particularly, Dorn et al. (2014) proposed the joint usage of two human-centric specification languages to model interaction-intensive processes. These languages are Little-JIL (Cass et al. 2000), that is a process-centric language, and hADL (human Architecture Description Language) (Dorn and Taylor 2012), that is a structure-centric human interaction language. Although the authors claim that this proposal has important advantages over BPMN extensions, the joint usage of these design languages increases the complexity of the modeling process (and therefore the usability decreases). ...

Architecture-Driven Modeling of Adaptive Collaboration Structures in Large-Scale Social Web Applications
  • Citing Conference Paper
  • November 2012

Lecture Notes in Computer Science

... Here, the traditional process modeling primitives (i.e., elements for tasks, control flow, data flow, etc) are often no longer suitable [32,14]. Other interaction dependency management patterns [16] such as Shared Artifact, Social Network, Secretary/Principal, Master/Worker, or Publish/-Subscribe become increasingly relevant. Collaboration patterns allow modeling how multiple humans interact through messages, artifacts, requests, etc, rather than having to express all work efforts by means of assigning a single task to a single process participant. ...

Analyzing runtime adaptability of collaboration patterns
  • Citing Conference Paper
  • May 2012

Concurrency and Computation Practice and Experience