David Garlan

dblp:01/2201 · DBLP profile ↗
← Back
121ranked-venue papers
21as first author
30since 2021 · last 2025
0000-0002-6735-8301ORCID · verified

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

Software engineering, systems software and programming languages · 100 · 20 first-author · 21 since 2021Systems, architecture and hardware · 10 · 3 since 2021Artificial intelligence and machine learning · 7 · 2 first-author · 3 since 2021Theory of computation · 5 · 2 since 2021Applied, interdisciplinary, general and emerging computing · 4 · 1 since 2021Graphics, computer vision, multimedia, augmented reality and games · 2 · 2 since 2021Human-computer interaction and ubiquitous computing · 2Security and privacy · 1 · 1 since 2021
YearPublicationVenuePosition
2025 Data-Driven Understanding of Design Decisions in Pattern-Based Microservices Architecture
Jorge Andrés Díaz Pace, Catia Trubiani, David Garlan
ECSA3
2025 Constrained LTL Specification Learning from Examples
abstract
Temporal logic specifications play an important role in a wide range of software analysis tasks, such as model checking, automated synthesis, program comprehension, and runtime monitoring. Given a set of positive and negative examples, specified as traces, LTL learning is the problem of synthesizing a specification, in linear temporal logic (LTL), that evaluates to true over the positive traces and false over the negative ones. In this paper, we propose a new type of LTL learning problem called constrained LTL learning, where the user, in addition to positive and negative examples, is given an option to specify one or more constraints over the properties of the LTL formula to be learned. We demonstrate that the ability to specify these additional constraints significantly increases the range of applications for LTL learning, and also allows efficient generation of LTL formulas that satisfy certain desirable properties (such as minimality). We propose an approach for solving the constrained LTL learning problem through an encoding in first-order relational logic and reduction to an instance of the maximal satisfiability (MaxSAT) problem. An experimental evaluation demonstrates that ATLAS, an implementation of our proposed approach, is able to solve new types of learning problems while performing better than or competitively with the state-of-the-art tools in LTL learning.
Parv Kapoor, Ian Dardik, Leyi Cui 0001, Romulo Meira Goes, David Garlan, Eunsuk Kang
ICSE6
2025 Uncertainty Estimation by Human Perception versus Neural Models
Paolo Romano 0002, David Garlan
PRICAI (4)3
2025 Resilience of Systems Under Maximum Component Deviations
Abigail Hammer, Vick Dini, Ryan Wagner, Bradley R. Schmerl, Eunsuk Kang, David Garlan
SEFM7
2025 A declarative approach and benchmark tool for controlled evaluation of microservice resiliency patterns
abstract
Abstract Microservice developers increasingly use resiliency patterns such as Retry and Circuit Breaker to cope with remote services that are likely to fail. However, there is still little research on how the invocation delays typically introduced by those resiliency patterns may impact application performance under varying workloads and failure scenarios. This article presents a novel approach and benchmark tool for experimentally evaluating the performance impact of existing resiliency patterns in a controlled setting. The main novelty of this approach resides in the ability to declaratively specify and automatically generate multiple testing scenarios involving different resiliency patterns, which one can implement using any programming language and resilience library. The article illustrates the benefits of the proposed approach and tool by reporting on an experimental study of the performance impact of the Retry and Circuit Breaker resiliency patterns in two mainstream programming languages (C# and Java) using two popular resilience libraries (Polly and Resilience4j), under multiple service workloads and failure rates. Our results show that, under low to moderate failure rates, both resiliency patterns effectively reduce the load over the application's target service with barely any impact on the application's performance. However, as the failure rate increases, both patterns significantly degrade the application's performance, with their effect varying depending on the service's workload and the patterns' programming language and resilience library.
Carlos M. Aderaldo, Thiago M. Costa, Davi M. Vasconcelos, Nabor das Chagas Mendonça, Javier Cámara 0001, David Garlan
Softw. Pract. Exp.6
2025 CURE: Simulation-Augmented Autotuning in Robotics
abstract
Robotic systems are typically composed of various subsystems, such as localization and navigation, each encompassing numerous configurable components (e.g., selecting different planning algorithms). Once an algorithm has been selected for a component, its associated configuration options must be set to the appropriate values. Configuration options across the system stack interact nontrivially. Finding optimal configurations for highly configurable robots to achieve desired performance poses a significant challenge due to the interactions between configuration options across software and hardware that result in an exponentially large and complex configuration space. These challenges are further compounded by the need for transferability between different environments and robotic platforms. Data efficient optimization algorithms (e.g., Bayesian optimization) have been increasingly employed to automate the tuning of configurable parameters in cyber-physical systems. However, such optimization algorithms converge at later stages, often after exhausting the allocated budget (e.g., optimization steps, allotted time) and lacking transferability. This article proposes causal understanding and remediation for enhancing robot performance (CURE)—a method that identifies causally relevant configuration options, enabling the optimization process to operate in a reduced search space, thereby enabling faster optimization of robot performance.CUREabstracts the causal relationships between various configuration options and the robot performance objectives by learning a causal model in the source (a low-cost environment such as the Gazebo simulator) and applying the learned knowledge to perform optimization in the target (e.g.,Turtlebot 3physical robot). We demonstrate the effectiveness and transferability ofCUREby conducting experiments that involve varying degrees of deployment changes in both physical robots and simulation.
Md. Abir Hossen, Sonam Kharade, Jason M. O'Kane, Bradley R. Schmerl, David Garlan, Pooyan Jamshidi
IEEE Trans. Robotics5
2024 Error-Driven Uncertainty Aware Training
abstract
Neural networks are often overconfident about their predictions, which undermines their reliability and trustworthiness. In this work, we present a novel technique, named Error-Driven Uncertainty Aware Training (EUAT), which aims to enhance the ability of neural classifiers to estimate their uncertainty correctly, namely to be highly uncertain when they output inaccurate predictions and low uncertain when their output is accurate. The EUAT approach operates during the model’s training phase by selectively employing two loss functions depending on whether the training examples are correctly or incorrectly predicted by the model. This allows for pursuing the twofold goal of i) minimizing model uncertainty for correctly predicted inputs and ii) maximizing uncertainty for mispredicted inputs, while preserving the model’s misprediction rate. We evaluate EUAT using diverse neural models and datasets in the image recognition domains considering both non-adversarial and adversarial settings. The results show that EUAT outperforms existing approaches for uncertainty estimation (including other uncertainty-aware training techniques, calibration, ensembles, and DEUP) by providing uncertainty estimates that not only have higher quality when evaluated via statistical metrics (e.g., correlation with residuals) but also when employed to build binary classifiers that decide whether the model’s output can be trusted or not and under distributional data shifts.
Paolo Romano 0002, David Garlan
ECAI3
2024 Tolerance of Reinforcement Learning Controllers Against Deviations in Cyber Physical Systems
abstract
Abstract Cyber-physical systems (CPS) with reinforcement learning (RL)-based controllers are increasingly being deployed in complex physical environments such as autonomous vehicles, the Internet-of-Things (IoT), and smart cities. An important property of a CPS is tolerance; i.e., its ability to function safely under possible disturbances and uncertainties in the actual operation. In this paper, we introduce a new, expressive notion of tolerance that describes how well a controller is capable of satisfying a desired system requirement, specified using Signal Temporal Logic (STL), under possible deviations in the system. Based on this definition, we propose a novel analysis problem, called the tolerance falsification problem, which involves finding small deviations that result in a violation of the given requirement. We present a novel, two-layer simulation-based analysis framework and a novel search heuristic for finding small tolerance violations. To evaluate our approach, we construct a set of benchmark problems where system parameters can be configured to represent different types of uncertainties and disturbances in the system. Our evaluation shows that our falsification approach and heuristic can effectively find small tolerance violations.
Parv Kapoor, Romulo Meira Goes, David Garlan, Eunsuk Kang, Akila Ganlath, Shatadal Mishra, Nejib Ammar
FM (2)4
2024 ROSInfer: Statically Inferring Behavioral Component Models for ROS-based Robotics Systems
abstract
Robotics systems are complex, safety-critical systems that can consist of hundreds of software components that interact with each other dynamically during run time. Software components of robotics systems often exhibit reactive, periodic, and state-dependent behavior. Incorrect component composition can lead to unexpected behavior, such as components passively waiting for initiation messages that never arrive. Model-based software analysis is a common technique to identify incorrect behavioral composition by checking desired properties of given behavioral models that are based on component state machines. However, writing state machine models for hundreds of software components manually is a labor-intensive process. This motivates work on automated model inference. In this paper, we present an approach to infer behavioral models for systems based on the Robot Operating System (ROS) using static analysis by exploiting assumptions about the usage of the ROS API and ecosystem. Our approach is based on searching for common behavioral patterns that ROS developers use for implementing reactive, periodic, and state-dependent behavior using the ROS framework API. We evaluate our approach and our tool ROSInfer on five complex real-world ROS systems with a total of 534 components. For this purpose we manually created 155 models of components from the source code to be used as a ground truth and available data set for other researchers. ROSInfer can infer causal triggers for 87% of component architectural behaviors in the 534 components.
Tobias Dürschmid, Christopher Steven Timperley, David Garlan, Claire Le Goues
ICSE3
2024 MONDEO-Tactics5G: Multistage botnet detection and tactics for 5G/6G networks
abstract
Mobile malware is a malicious code specifically designed to target mobile devices to perform multiple types of fraud. The number of attacks reported each day is increasing constantly and is causing an impact not only at the end-user level but also at the network operator level. Malware like FluBot contributes to identity theft and data loss but also enables remote Command & Control (C2) operations, which can instrument infected devices to conduct Distributed Denial of Service (DDoS) attacks. Current mobile device-installed solutions are not effective, as the end user can ignore security warnings or install malicious software. This article designs and evaluates MONDEO-Tactics5G - a multistage botnet detection mechanism that does not require software installation on end-user devices, together with tactics for 5G network operators to manage infected devices. We conducted an evaluation that demonstrates high accuracy in detecting FluBot malware, and in the different adaptation strategies to reduce the risk of DDoS while minimising the impact on the clients' satisfaction by avoiding disrupting established sessions.
Bruno Sousa, Nuno Antunes, Javier Cámara 0001, Ryan Wagner, Bradley R. Schmerl, David Garlan, Pedro Fidalgo
Comput. Secur.7
2024 Self-adapting Machine Learning-based Systems via a Probabilistic Model Checking Framework
abstract
This article focuses on the problem of optimizing the system utility of Machine Learning (ML)-based systems in the presence of ML mispredictions. This is achieved via the use of self-adaptive systems and through the execution of adaptation tactics, such as model retraining , which operate at the level of individual ML components. To address this problem, we propose a probabilistic modeling framework that reasons about the cost/benefit tradeoffs associated with adapting ML components. The key idea of the proposed approach is to decouple the problems of estimating (1) the expected performance improvement after adaptation and (2) the impact of ML adaptation on overall system utility. We apply the proposed framework to engineer a self-adaptive ML-based fraud detection system, which we evaluate using a publicly available, real fraud detection dataset. We initially consider a scenario in which information on the model’s quality is immediately available. Next, we relax this assumption by integrating (and extending) state-of-the-art techniques for estimating the model’s quality in the proposed framework. We show that by predicting the system utility stemming from retraining an ML component, the probabilistic model checker can generate adaptation strategies that are significantly closer to the optimal, as compared against baselines such as periodic or reactive retraining.
Maria Casimiro, Diogo Soares, David Garlan, Luís E. T. Rodrigues, Paolo Romano 0002
ACM Trans. Auton. Adapt. Syst.3
2023 HyperJump: Accelerating HyperBand via Risk Modelling
abstract
In the literature on hyper-parameter tuning, a number of recent solutions rely on low-fidelity observations (e.g., training with sub-sampled datasets) to identify promising configurations to be tested via high-fidelity observations (e.g., using the full dataset). Among these, HyperBand is arguably one of the most popular solutions, due to its efficiency and theoretically provable robustness. In this work, we introduce HyperJump, a new approach that builds on HyperBand’s robust search strategy and complements it with novel model-based risk analysis techniques that accelerate the search by skipping the evaluation of low risk configurations, i.e., configurations that are likely to be eventually discarded by HyperBand. We evaluate HyperJump on a suite of hyper-parameter optimization problems and show that it provides over one-order of magnitude speed-ups, both in sequential and parallel deployments, on a variety of deep-learning, kernel-based learning and neural architectural search problems when compared to HyperBand and to several state-of-the-art optimizers.
Maria Casimiro, Paolo Romano 0002, David Garlan
AAAI4
2023 Supporting the Exploration of Quality Attribute Tradeoffs in Large Design Spaces
Jorge Andrés Díaz Pace, Rebekka Wohlrab, David Garlan
ECSA3
2023 Fortis: A Tool for Analysis and Repair of Robust Software Systems
Ian Dardik, Romulo Meira Goes, David Garlan, Eunsuk Kang
FMCAD4
2023 Breaking the Vicious Circle: Self-Adaptive Microservice Circuit Breaking and Retry
abstract
Microservice-based architectures consist of numerous, loosely coupled services with multiple instances. Service meshes aim to simplify traffic management and prevent microservice overload through circuit breaking and request retry mechanisms. Previous studies have demonstrated that the static configuration of these mechanisms is unfit for the dynamic environment of microservices. We conduct a sensitivity analysis to understand the impact of retrying across a wide range of scenarios. Based on the findings, we propose a retry controller that can also work with dynamically configured circuit breakers. We have empirically assessed our proposed controller in various scenarios, including transient overload and noisy neighbors while enforcing adaptive circuit breaking. The results show that our proposed controller does not deviate from a well-tuned configuration while maintaining carried response time and adapting to the changes. In comparison to the default static retry configuration that is mostly used in practice, our approach improves the carried throughput up to 12x and 32x respectively in the cases of transient overload and noisy neighbors.
Mohammad Reza Saleh Sedghpour, David Garlan, Bradley R. Schmerl, Cristian Klein, Johan Tordsson
IC2E2
2023 Robustification of Behavioral Designs against Environmental Deviations
abstract
Modern software systems are deployed in a highly dynamic, uncertain environment. Ideally, a system that is robust should be capable of establishing its most critical requirements even in the presence of possible deviations in the environment. We propose a technique called behavioral robustification, which involves systematically and rigorously improving the robustness of a design against potential deviations. Given behavioral models of a system and its environment, along with a set of user-specified deviations, our robustification method produces a redesign that is capable of satisfying a desired property even when the environment exhibits those deviations. In particular, we describe how the robustification problem can be formulated as a multi-objective optimization problem, where the goal is to restrict the deviating environment from causing a violation of a desired property, while maximizing the amount of existing functionality and minimizing the cost of changes to the original design. We demonstrate the effectiveness of our approach on case studies involving the robustness of an electronic voting machine and safety-critical interfaces.
Tarang Saluja, Romulo Meira Goes, Matthew L. Bolton, David Garlan, Eunsuk Kang
ICSE5
2023 Runtime Resolution of Feature Interactions through Adaptive Requirement Weakening
abstract
The feature interaction problem occurs when two or more independently developed components interact with each other in unanticipated ways, resulting in undesirable system behaviors. Feature interaction problems remain a challenge for emerging domains in cyber-physical systems (CPS), such as the Internet of Things and autonomous drones. Existing techniques for resolving feature interactions take a “winner-takes-all” approach, where one out of the conflicting features is selected as the most desirable one, and the rest are disabled. However, when multiple of the conflicting features fulfill important system requirements, being forced to select one of them can result in an undesirable system outcome. In this paper, we propose a new resolution approach that allows all of the conflicting features to continue to partially fulfill their requirements during the resolution process. In particular, our approach leverages the idea of adaptive requirement weakening, which involves one or more features temporarily weakening their level of performance in order to co-exist with the other features in a consistent manner. Given feature requirements specified in Signal Temporal Logic (STL), we propose an automated method and a runtime architecture for automatically weakening the requirements to resolve a conflict. We demonstrate our approach through case studies on feature interactions in autonomous drones
Simon Chu, Emma Shedden, Romulo Meira Goes, Gabriel A. Moreno, David Garlan, Eunsuk Kang
SEAMS6
2023 ExTrA: Explaining architectural design tradeoff spaces via dimensionality reduction
abstract
In software design, guaranteeing the correctness of run-time system behavior while achieving an acceptable balance among multiple quality attributes remains a challenging problem. Moreover, providing guarantees about the satisfaction of those requirements when systems are subject to uncertain environments is even more challenging. While recent developments in architectural analysis techniques can assist architects in exploring the satisfaction of quantitative guarantees across the design space, existing approaches are still limited because they do not explicitly link design decisions to satisfaction of quality requirements. Furthermore, the amount of information they yield can be overwhelming to a human designer, making it difficult to see the forest for the trees. In this paper we present ExTrA (Explaining Tradeoffs of software Architecture design spaces), an approach to analyzing architectural design spaces that addresses these limitations and provides a basis for explaining design tradeoffs. Our approach employs dimensionality reduction techniques employed in machine learning pipelines like Principal Component Analysis (PCA) and Decision Tree Learning (DTL) to enable architects to understand how design decisions contribute to the satisfaction of extra-functional properties across the design space. Our results show feasibility of the approach in two case studies and evidence that combining complementary techniques like PCA and DTL is a viable approach to facilitate comprehension of tradeoffs in poorly-understood design spaces.
Javier Cámara 0001, Rebekka Wohlrab, David Garlan, Bradley R. Schmerl
J. Syst. Softw.3
2023 Explaining quality attribute tradeoffs in automated planning for self-adaptive systems
abstract
Self-adaptive systems commonly operate in heterogeneous contexts and need to consider multiple quality attributes. Human stakeholders often express their quality preferences by defining utility functions, which are used by self-adaptive systems to automatically generate adaptation plans. However, the adaptation space of realistic systems is large and it is obscure how utility functions impact the generated adaptation behavior, as well as structural, behavioral, and quality constraints. Moreover, human stakeholders are often not aware of the underlying tradeoffs between quality attributes. To address this issue, we present an approach that uses machine learning techniques (dimensionality reduction, clustering, and decision tree learning) to explain the reasoning behind automated planning. Our approach focuses on the tradeoffs between quality attributes and how the choice of weights in utility functions results in different plans being generated. We help humans understand quality attribute tradeoffs, identify key decisions in adaptation behavior, and explore how differences in utility functions result in different adaptation alternatives. We present two systems to demonstrate the approach’s applicability and consider its potential application to 24 exemplar self-adaptive systems. Moreover, we describe our assessment of the tradeoff between the information reduction and the amount of explained variance retained by the results obtained with our approach.
Rebekka Wohlrab, Javier Cámara 0001, David Garlan, Bradley R. Schmerl
J. Syst. Softw.3
2023 A negotiation support system for defining utility functions for multi-stakeholder self-adaptive systems
Rebekka Wohlrab, David Garlan
Requir. Eng.2
2022 ROSDiscover: Statically Detecting Run-Time Architecture Misconfigurations in Robotics Systems
abstract
Robot systems are growing in importance and complexity. Ecosystems for robot software, such as the Robot Operating System (ROS), provide libraries of reusable software components that can be configured and composed into larger systems. To support compositionality, ROS uses late binding and architecture configuration via “launch files” that describe how to initialize the components in a system. However, late binding often leads to systems failing silently due to misconfiguration, for example by misrouting or dropping messages entirely.In this paper we present ROSDiscover, which statically recovers the run-time architecture of ROS systems to find such architecture misconfiguration bugs. First, ROSDiscover constructs component level architectural models (ports, parameters) from source code. Second, architecture configuration files are analyzed to compose the system from these component models and derive the connections in the system. Finally, the reconstructed architecture is checked against architectural rules described in first-order logic to identify potential misconfigurations.We present an evaluation of ROSDiscover on real world, off-the-shelf robotic systems, measuring the accuracy, effectiveness, and practicality of our approach. To that end, we collected the first data set of architecture configuration bugs in ROS from popular open-source systems and measure how effective our approach is for detecting configuration bugs in that set.
Christopher Steven Timperley, Tobias Dürschmid, Bradley R. Schmerl, David Garlan, Claire Le Goues
ICSA4
2022 Addressing the uncertainty interaction problem in software-intensive systems: challenges and desiderata
abstract
Software-intensive systems are increasingly used to support tasks that are typically characterized by high degrees of uncertainty. The modeling notations employed to design, verify, and operate such systems have increasingly started to capture different types of uncertainty, so that they can be explicitly considered when systems are developed and deployed. While these modeling paradigms consider different sources of uncertainty individually, these sources are rarely independent, and their interactions affect the achievement of system goals in subtle and often unpredictable ways. This vision paper describes the problem of uncertainty interaction in software-intensive systems, illustrating it on examples from relevant application domains. We then identify key open challenges and define desiderata that future modeling notations and model-driven engineering research should consider to address these challenges.
Javier Cámara 0001, Radu Calinescu, Betty H. C. Cheng, David Garlan, Bradley R. Schmerl, Javier Troya, Antonio Vallecillo
MoDELS4
2022 The uncertainty interaction problem in self-adaptive systems
Javier Cámara 0001, Javier Troya, Antonio Vallecillo, Nelly Bencomo, Radu Calinescu, Betty H. C. Cheng, David Garlan, Bradley R. Schmerl
Softw. Syst. Model.7
2022 Modeling and Analysis of Explanation for Secure Industrial Control Systems
abstract
Many self-adaptive systems benefit from human involvement and oversight, where a human operator can provide expertise not available to the system and detect problems that the system is unaware of. One way of achieving this synergy is by placing the human operator on the loop —i.e., providing supervisory oversight and intervening in the case of questionable adaptation decisions. To make such interaction effective, an explanation can play an important role in allowing the human operator to understand why the system is making certain decisions and improve the level of knowledge that the operator has about the system. This, in turn, may improve the operator’s capability to intervene and, if necessary, override the decisions being made by the system. However, explanations may incur costs, in terms of delay in actions and the possibility that a human may make a bad judgment. Hence, it is not always obvious whether an explanation will improve overall utility and, if so, then what kind of explanation should be provided to the operator. In this work, we define a formal framework for reasoning about explanations of adaptive system behaviors and the conditions under which they are warranted. Specifically, we characterize explanations in terms of explanation content , effect , and cost . We then present a dynamic system adaptation approach that leverages a probabilistic reasoning technique to determine when an explanation should be used to improve overall system utility. We evaluate our explanation framework in the context of a realistic industrial control system with adaptive behaviors.
Sridhar Adepu, Nianyu Li, Eunsuk Kang, David Garlan
ACM Trans. Auton. Adapt. Syst.4
2021 Explaining Architectural Design Tradeoff Spaces: A Machine Learning Approach
Javier Cámara 0001, Mariana Silva, David Garlan, Bradley R. Schmerl
ECSA3
2021 Engineering Secure Self-Adaptive Systems with Bayesian Games
abstract
Abstract Security attacks present unique challenges to self-adaptive system design due to the adversarial nature of the environment. Game theory approaches have been explored in security to model malicious behaviors and design reliable defense for the system in a mathematically grounded manner. However, modeling the system as a single player, as done in prior works, is insufficient for the system under partial compromise and for the design of fine-grained defensive strategies where the rest of the system with autonomy can cooperate to mitigate the impact of attacks. To deal with such issues, we propose a new self-adaptive framework incorporating Bayesian game theory and model the defender (i.e., the system) at the granularity ofcomponents. Under security attacks, the architecture model of the system is translated into aBayesian multi-player game, where each component is explicitly modeled as an independent player while security attacks are encoded as variant types for the components. The optimal defensive strategy for the system is dynamically computed by solving the pure equilibrium (i.e., adaptation response) to achieve the best possible system utility, improving the resiliency of the system against security attacks. We illustrate our approach using an example involving load balancing and a case study on inter-domain routing.
Nianyu Li, Mingyue Zhang 0002, Eunsuk Kang, David Garlan
FASE4
2021 Defining Utility Functions for Multi-stakeholder Self-adaptive Systems
Rebekka Wohlrab, David Garlan
REFSQ2
2021 AlloyMax: bringing maximum satisfaction to relational specifications
abstract
Alloy is a declarative modeling language based on a first-order relational logic. Its constraint-based analysis has enabled a wide range of applications in software engineering, including configuration synthesis, bug finding, test-case generation, and security analysis. Certain types of analysis tasks in these domains involve finding an optimal solution. For example, in a network configuration problem, instead of finding any valid configuration, it may be desirable to find one that is most permissive (i.e., it permits a maximum number of packets). Due to its dependence on SAT, however, Alloy cannot be used to specify and analyze these types of problems.
Ryan Wagner, Pedro Orvalho, David Garlan, Vasco Manquinho, Ruben Martins, Eunsuk Kang
ESEC/SIGSOFT FSE4
2021 Mining guidelines for architecting robotics software
abstract
The Robot Operating System (ROS) is the de-facto standard for robotics software. However, ROS-based systems are getting larger and more complex and could benefit from good software architecture practices. We aim at (i) unveiling the state-of-the-practice in terms of targeted quality attributes and architecture documentation in ROS-based systems, and (ii) providing empirically-grounded guidance to roboticists about how to properly architect ROS-based systems. We designed and conducted an observational study where we (i) built a dataset of 335 GitHub repositories containing real open-source ROS-based systems, and (ii) mined the repositories to extract and synthesize quantitative and qualitative findings about how roboticists are architecting ROS-based systems. First, we extracted an empirically-grounded overview of the state of the practice for architecting and documenting ROS-based systems. Second, we synthesized a catalog of 47 architecting guidelines for ROS-based systems. Third, the extracted guidelines were validated by 119 roboticists working on real-world open-source ROS-based systems. Roboticists can use our architecting guidelines for applying good design principles to develop robots that meet quality requirements, and researchers can use our results as evidence-based indications about how real-world ROS systems are architected today, thus inspiring future research contributions.
Ivano Malavolta, Grace A. Lewis, Bradley R. Schmerl, Patricia Lago, David Garlan
J. Syst. Softw.5
2021 Information Reuse and Stochastic Search: Managing Uncertainty in Self-* Systems
abstract
Many software systems operate in environments of change and uncertainty. Techniques for self-adaptation allow these systems to automatically respond to environmental changes, yet they do not handle changes to the adaptive system itself, such as the addition or removal of adaptation tactics. Instead, changes in a self-adaptive system often require a human planner to redo an expensive planning process to allow the system to continue satisfying its quality requirements under different conditions; automated techniques must replan from scratch. We propose to address this problem by reusing prior planning knowledge to adapt to unexpected situations. We present a planner based on genetic programming that reuses existing plans and evaluate this planner on two case-study systems: a cloud-based web server and a team of autonomous aircraft. While reusing material in genetic algorithms has been recently applied successfully in the area of automated program repair, we find that naively reusing existing plans for self- * planning can actually result in a utility loss. Furthermore, we propose a series of techniques to lower the costs of reuse, allowing genetic techniques to leverage existing information to improve utility when replanning for unexpected changes, and we find that coarsely shaped search-spaces present profitable opportunities for reuse.
Cody Kinneer, David Garlan, Claire Le Goues
ACM Trans. Auton. Adapt. Syst.2
2020 Lynceus: Cost-efficient Tuning and Provisioning of Data Analytic Jobs
abstract
Modern data analytic and machine learning jobs find in the cloud a natural deployment platform to satisfy their notoriously large resource requirements. Yet, to achieve cost efficiency, it is crucial to identify a deployment configuration that satisfies user-defined QoS constraints (e.g., on execution time), while avoiding unnecessary over-provisioning.This paper introduces Lynceus, a new approach for the optimization of cloud-based data analytic jobs that improves over state-of-the-art approaches by enabling significant cost savings both in terms of the final recommended configuration and of the optimization process used to recommend configurations.Unlike existing solutions, Lynceus optimizes in a joint fashion both the cloud-related (i.e., which and how many machines to provision) and the application-level (e.g. the hyper-parameters of a machine learning algorithm) parameters. This allows for a reduction of the cost of recommended configurations by up to 3.7× at the 90-th percentile with respect to existing approaches, which treat the optimization of cloud-related and application- level parameters as two independent problems.Further, Lynceus reduces the cost of the optimization process (i.e., the cloud cost incurred for testing configurations) by up to 11×. Such an improvement is achieved thanks to two mechanisms: i) a timeout approach which allows to abort the exploration of configurations that are deemed suboptimal, while still extracting useful information to guide future explorations and to improve its predictive model - differently from recent works, which either incur the full cost for testing suboptimal configurations or are unable to extract any knowledge from aborted runs; ii) a long-sighted and budget-aware technique that determines which configurations to test by predicting the long-term impact of each exploration - unlike state-of-the-art approaches for the optimization of cloud jobs, which adopt greedy optimization methods.
Maria Casimiro, Diego Didona, Paolo Romano 0002, Luís E. T. Rodrigues, Willy Zwaenepoel, David Garlan
ICDCS6
2020 Model-Based Analysis of Microservice Resiliency Patterns
abstract
Microservice application developers try to mitigate the impact of partial outages typically by implementing service-to-service interactions that use well-known resiliency patterns, such as Retry, Fail Fast, and Circuit Breaker. However, those resiliency patterns-as well as their available open-source implementations-are often documented informally, leaving it up to application developers to figure out when and how to use those patterns in the context of a particular microservice application. In this paper, we take a first step towards improving on this situation by introducing a model checking-based approach in which we use the PRISM probabilistic model checker to analyze the behavior of the Retry and Circuit Breaker resiliency patterns as continuous-time Markov chains (CTMC). This approach has enabled us to quantify the impact of applying each resiliency pattern on multiple quality attributes, as well as to determine how to best tune their parameters to deal with varying service availability conditions, in the context of a simple client-service interaction scenario.
Nabor das Chagas Mendonça, Carlos M. Aderaldo, Javier Cámara 0001, David Garlan
ICSA4
2020 TrimTuner: Efficient Optimization of Machine Learning Jobs in the Cloud via Sub-Sampling
abstract
This work introduces TrimTuner, the first system for optimizing machine learning jobs in the cloud to exploit sub-sampling techniques to reduce the cost of the optimization process, while keeping into account user-specified constraints. TrimTuner jointly optimizes the cloud and application-specific parameters and, unlike state of the art works for cloud optimization, eschews the need to train the model with the full training set every time a new configuration is sampled. Indeed, by leveraging sub-sampling techniques and data-sets that are up to 60 x smaller than the original one, we show that TrimTuner can reduce the cost of the optimization process by up to 50 x. Further, TrimTuner speeds-up the recommendation process by 65 x with respect to state of the art techniques for hyperparameter optimization that use sub-sampling techniques. The reasons for this improvement are twofold: i) a novel domain specific heuristic that reduces the number of configurations for which the acquisition function has to be evaluated; ii) the adoption of an ensemble of decision trees that enables boosting the speed of the recommendation process by one additional order of magnitude.
Maria Casimiro, Paolo Romano 0002, David Garlan
MASCOTS4
2020 Tradeoff-Focused Contrastive Explanation for MDP Planning
abstract
End-users' trust in automated agents is important as automated decision-making and planning is increasingly used in many aspects of people's lives. In real-world applications of planning, multiple optimization objectives are often involved. Thus, planning agents' decisions can involve complex tradeoffs among competing objectives. It can be difficult for the end-users to understand why an agent decides on a particular planning solution on the basis of its objective values. As a result, the users may not know whether the agent is making the right decisions, and may lack trust in it. In this work, we contribute an approach, based on contrastive explanation, that enables a multi-objective MDP planning agent to explain its decisions in a way that communicates its tradeoff rationale in terms of the domain-level concepts. We conduct a human subjects experiment to evaluate the effectiveness of our explanation approach in a mobile robot navigation domain. The results show that our approach significantly improves the users' understanding, and confidence in their understanding, of the tradeoff rationale of the planning agent.
Roykrong Sukkerd, Reid G. Simmons, David Garlan
RO-MAN3
2020 A behavioral notion of robustness for software systems
abstract
Software systems are designed and implemented with assumptions about the environment. However, once the system is deployed, the actual environment may deviate from its expected behavior, possibly undermining desired properties of the system. To enable systematic design of systems that are robust against potential environmental deviations, we propose a rigorous notion of robustness for software systems. In particular, the robustness of a system is defined as the largest set of deviating environmental behaviors under which the system is capable of guaranteeing a desired property. We describe a new set of design analysis problems based on our notion of robustness, and a technique for automatically computing robustness of a system given its behavior description. We demonstrate potential applications of our robustness notion on two case studies involving network protocols and safety-critical interfaces.
David Garlan, Eunsuk Kang
ESEC/SIGSOFT FSE2
2019 Modeling observability in adaptive systems to defend against advanced persistent threats
abstract
Advanced persistent threats (APTs) are a particularly troubling challenge for software systems. The adversarial nature of the security domain, and APTs in particular, poses unresolved challenges to the design of self-* systems, such as how to defend against multiple types of attackers with different goals and capabilities. In this interaction, the observability of each side is an important and under-investigated issue in the self-* domain. We propose a model of APT defense that elevates observability as a first-class concern. We evaluate this model by showing how an informed approach that uses observability improves the defender's utility compared to a uniform random strategy, can enable robust planning through sensitivity analysis, and can inform observability-related architectural design decisions.
Cody Kinneer, Ryan Wagner, Fei Fang 0001, Claire Le Goues, David Garlan
MEMOCODE5
2019 Managing safety and mission completion via collective run-time adaptation
Darko Bozhinoski, David Garlan, Ivano Malavolta, Patrizio Pelliccione
J. Syst. Archit.2
2019 Synthesizing tradeoff spaces with quantitative guarantees for families of software systems
Javier Cámara 0001, David Garlan, Bradley R. Schmerl
J. Syst. Softw.2
2018 IPL: An Integration Property Language for Multi-model Cyber-physical Systems
Ivan Ruchkin, Joshua Sunshine, Grant Iraci, Bradley R. Schmerl, David Garlan
FM5
2018 MOSAICO: offline synthesis of adaptation strategy repertoires with flexible trade-offs
Javier Cámara 0001, Bradley R. Schmerl, Gabriel A. Moreno, David Garlan
Autom. Softw. Eng.4
2018 Reasoning about sensing uncertainty and its reduction in decision-making for self-adaptation
Javier Cámara 0001, Wenxin Peng, David Garlan, Bradley R. Schmerl
Sci. Comput. Program.3
2018 Flexible and Efficient Decision-Making for Proactive Latency-Aware Self-Adaptation
abstract
Proactive latency-aware adaptation is an approach for self-adaptive systems that considers both the current and anticipated adaptation needs when making adaptation decisions, taking into account the latency of the available adaptation tactics. Since this is a problem of selecting adaptation actions in the context of the probabilistic behavior of the environment, Markov decision processes (MDPs) are a suitable approach. However, given all the possible interactions between the different and possibly concurrent adaptation tactics, the system, and the environment, constructing the MDP is a complex task. Probabilistic model checking has been used to deal with this problem, but it requires constructing the MDP every time an adaptation decision is made to incorporate the latest predictions of the environment behavior. In this article, we describe PLA-SDP, an approach that eliminates that runtime overhead by constructing most of the MDP offline. At runtime, the adaptation decision is made by solving the MDP through stochastic dynamic programming, weaving in the environment model as the solution is computed. We also present extensions that support different notions of utility, such as maximizing reward gain subject to the satisfaction of a probabilistic constraint, making PLA-SDP applicable to systems with different kinds of adaptation goals.
Gabriel A. Moreno, Javier Cámara 0001, David Garlan, Bradley R. Schmerl
ACM Trans. Auton. Adapt. Syst.3
2017 Synthesis and Quantitative Verification of Tradeoff Spaces for Families of Software Systems
Javier Cámara 0001, David Garlan, Bradley R. Schmerl
ECSA2
2016 Architecture Modeling and Analysis of Security in Android Systems
Bradley R. Schmerl, Jeffrey Gennari, Hamid Bagheri, Sam Malek, Javier Cámara 0001, David Garlan
ECSA7
2016 Incorporating architecture-based self-adaptation into an adaptive industrial software system
Javier Cámara 0001, Pedro Correia, Rogério de Lemos, David Garlan, Bradley R. Schmerl, Rafael Ventura
J. Syst. Softw.4
2016 Improving self-adaptation planning through software architecture-based stochastic modeling
João Miguel Franco, Francisco Correia, Raul Barbosa, Mário Zenha Rela, Bradley R. Schmerl, David Garlan
J. Syst. Softw.6
2016 Adaptation impact and environment models for architecture-based self-adaptive systems
Javier Cámara 0001, Antónia Lopes, David Garlan, Bradley R. Schmerl
Sci. Comput. Program.3
2016 Analyzing Latency-Aware Self-Adaptation Using Stochastic Games and Simulations
abstract
Self-adaptive systems must decide which adaptations to apply and when. In reactive approaches, adaptations are chosen and executed after some issue in the system has been detected (e.g., unforeseen attacks or failures). In proactive approaches, predictions are used to prepare the system for some future event (e.g., traffic spikes during holidays). In both cases, the choice of adaptation is based on the estimated impact it will have on the system. Current decision-making approaches assume that the impact will be instantaneous, whereas it is common that adaptations take time to produce their impact. Ignoring this latency is problematic because adaptations may not achieve their effect in time for a predicted event. Furthermore, lower impact but quicker adaptations may be ignored altogether, even if over time the accrued impact is actually higher. In this article, we introduce a novel approach to choosing adaptations that considers these latencies. To show how this improves adaptation decisions, we use a two-pronged approach: (i) model checking of Stochastic Multiplayer Games (SMGs) enables us to understand best- and worst-case scenarios of optimal latency-aware and non-latency-aware adaptation without the need to develop specific adaptation algorithms. However, since SMGs do not provide an algorithm to make choices at runtime, we propose a (ii) latency-aware adaptation algorithm to make decisions at runtime. Simulations are used to explore more detailed adaptation behavior and to check if the performance of the algorithm falls within the bounds predicted by SMGs. Our results show that latency awareness improves adaptation outcomes and also allows a larger set of adaptations to be exploited.
Javier Cámara 0001, Gabriel A. Moreno, David Garlan, Bradley R. Schmerl
ACM Trans. Auton. Adapt. Syst.3
2015 Task Planning of Cyber-Human Systems
Roykrong Sukkerd, David Garlan, Reid G. Simmons
SEFM2
2015 Proactive self-adaptation under uncertainty: a probabilistic model checking approach
abstract
Self-adaptive systems tend to be reactive and myopic, adapting in response to changes without anticipating what the subsequent adaptation needs will be. Adapting reactively can result in inefficiencies due to the system performing a suboptimal sequence of adaptations. Furthermore, when adaptations have latency, and take some time to produce their effect, they have to be started with sufficient lead time so that they complete by the time their effect is needed. Proactive latency-aware adaptation addresses these issues by making adaptation decisions with a look-ahead horizon and taking adaptation latency into account. In this paper we present an approach for proactive latency-aware adaptation under uncertainty that uses probabilistic model checking for adaptation decisions. The key idea is to use a formal model of the adaptive system in which the adaptation decision is left underspecified through nondeterminism, and have the model checker resolve the nondeterministic choices so that the accumulated utility over the horizon is maximized. The adaptation decision is optimal over the horizon, and takes into account the inherent uncertainty of the environment predictions needed for looking ahead. Our results show that the decision based on a look-ahead horizon, and the factoring of both tactic latency and environment uncertainty, considerably improve the effectiveness of adaptation decisions.
Gabriel A. Moreno, Javier Cámara 0001, David Garlan, Bradley R. Schmerl
ESEC/SIGSOFT FSE3
2014 Contract-based integration of cyber-physical analyses
abstract
Developing cyber-physical systems involves multiple engineering domains, e.g., timing, logical correctness, thermal resilience, and mechanical stress. In today's industrial practice, these domains rely on multiple analyses to obtain and verify critical system properties. Domain differences make the analyses abstract away interactions among themselves, potentially invalidating the results. Specifically, one challenge is to ensure that an analysis is never applied to a model that violates the assumptions of the analysis. Since such violation can originate from the updating of the model by another analysis, analyses must be executed in the correct order. Another challenge is to apply diverse analyses soundly and scalably over models of realistic complexity. To address these challenges, we develop an analysis integration approach that uses contracts to specify dependencies between analyses, determine their correct orders of application, and specify and verify applicability conditions in multiple domains. We implement our approach and demonstrate its effectiveness, scalability, and extensibility through a verification case study for thread and battery cell scheduling.
Ivan Ruchkin, Dionisio de Niz, Sagar Chaki, David Garlan
EMSOFT4
2014 Architecture-Based Planning of Software Evolution
abstract
Software architecture allows us to make many decisions about a software system and analyze it even before it has been implemented, so as to make planned development possible. Similarly, architecture-based software evolution planning makes planned evolution possible by allowing us to make many decisions about the evolution of a software system and to analyze its evolution at the level of architecture design before software evolution is realized. In this paper, we develop a framework for architecture-based software evolution planning. It is done by defining various foundational terms and concepts, providing a taxonomy of software evolution plans, and then showing how to calculate values for various types of plans. By identifying and defining constituent foundational concepts, this conceptual framework makes precise the notion of "architecture-based software planning". By developing a value-calculation framework for software evolution plans, it also provides a basis for concrete methods for designing and evaluating evolution plans.
Sungwon Kang, David Garlan
Int. J. Softw. Eng. Knowl. Eng.2
2014 Evolution styles: foundations and models for software architecture evolution
Jeffrey M. Barnes, David Garlan, Bradley R. Schmerl
Softw. Syst. Model.2
2013 Automated planning for software architecture evolution
abstract
In previous research, we have developed a theoretical framework to help software architects make better decisions when planning software evolution. Our approach is based on representation and analysis of candidate evolution paths-sequences of transitional architectures leading from the current system to a desired target architecture. One problem with this kind of approach is that it imposes a heavy burden on the software architect, who must explicitly define and model these candidate paths. In this paper, we show how automated planning techniques can be used to support automatic generation of evolution paths, relieving this burden on the architect. We illustrate our approach by applying it to a data migration scenario, showing how this architecture evolution problem can be translated into a planning problem and solved using existing automated planning tools.
Jeffrey M. Barnes, Ashutosh Pandey 0002, David Garlan
ASE3
2012 Stitch: A language for architecture-based self-adaptation
Shang-Wen Cheng, David Garlan
J. Syst. Softw.2
2011 Architecture-Based Run-Time Fault Diagnosis
Paulo Casanova, Bradley R. Schmerl, David Garlan, Rui Abreu 0001
ECSA3
2011 An Architectural Approach to End User Orchestrations
Vishal Dwivedi, Perla Velasco-Elizondo, José Maria Fernandes, David Garlan, Bradley R. Schmerl
ECSA4
2011 SORASCS: a case study in soa-based platform design for socio-cultural analysis
abstract
An increasingly important class of software-based systems is platforms that permit integration of third-party components, services, and tools. Service-Oriented Architecture (SOA) is one such platform that has been successful in providing integration and distribution in the business domain, and could be effective in other domains (e.g., scientific computing, healthcare, and complex decision making). In this paper, we discuss our application of SOA to provide an integration platform for socio-cultural analysis, a domain that, through models, tries to understand, analyze and predict relationships in large complex social systems. In developing this platform, called SORASCS, we had to overcome issues we believe are generally applicable to any application of SOA within a domain that involves technically naïve users and seeks to establish a sustainable software ecosystem based on a common integration platform. We discuss these issues, the lessons learned about the kinds of problems that occur, and pathways toward a solution.
Bradley R. Schmerl, David Garlan, Vishal Dwivedi, Michael W. Bigrigg, Kathleen M. Carley
ICSE2
2011 Software architecture: reflections on an evolving discipline
abstract
Software Architecture emerged in the 1990's as an important sub-field of software engineering. While good architectural design had long been recognized as critical to the success of any complex software system, before then the practice of architecting had relied largely on ad hoc, uncodified, and idiosyncratic techniques and knowledge. By the 2000's the field had matured to the point where there were widely-recognized taxonomies of architectural patterns, techniques for formally representing and analyzing architectures, methods for reviewing an architectural design, widespread adoption of architectural product lines and composition frameworks, and techniques for ensuring conformance between an architecture and an implementation of it. In this talk we reflect on the key enablers of a discipline of software architecture that led to these advances, the central ideas that form its core, and its enduring principles that continue to shape the field of software engineering. We consider both the important concepts on which it builds, as well as those that have built on top of it. Finally, we examine some of the important new trends and challenges that are likely to have an impact on how software architecture will evolve in the future.
David Garlan, Mary Shaw
SIGSOFT FSE1
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)3
2010 Analyzing architectural styles
Jung Soo Kim, David Garlan
J. Syst. Softw.2
2009 Towards engineered architecture evolution
abstract
Architecture evolution, a key aspect of software evolution, is typically done in an ad hoc manner, guided only by the competence of the architect performing it. This process lacks the rigor of an engineering discipline. In this paper, we argue that architecture evolution must be engineered - based on rational decisions that are supported by formal models and objective analyses. We believe that evolutions of a restricted form - close-ended evolution, where the starting and ending design points are known a priori - are amenable to being engineered. We discuss some of the key challenges in engineering close-ended evolution. We present a conceptual framework in which an architecture evolutionary trajectory is modeled as a sequence of steps, each captured by an operator. The goal of our framework is to support exploration and objective evaluation of different evolutionary trajectories. We conclude with open research questions in developing this framework.
Sagar Chaki, Jorge Andrés Díaz Pace, David Garlan, Arie Gurfinkel, Ipek Ozkaya
MiSE@ICSE3
2009 Ævol: A tool for defining and planning architecture evolution
abstract
Architecture evolution is a key feature of most software systems. There are few tools that help architects plan and execute these evolutionary paths. We demonstrate a tool to enable architects to describe evolution paths, associate properties with elements of the paths, and perform tradeoff analysis over these paths.
David Garlan, Bradley R. Schmerl
ICSE1
2009 Using Service-oriented Architectures for Socio-Cultural Analysis
David Garlan, Kathleen M. Carley, Bradley R. Schmerl, Michael W. Bigrigg, Orieta Celiku
SEKE1
2008 Steps toward activity-oriented computing
abstract
Most pervasive computing technologies focus on helping users with computer-oriented tasks. In this NSF-funded project, we instead focus on using computers to support user-centered "activities" that normally do not involve the use of computers. Examples may include everyday tasks around such as answering the doorbell or doing laundry. A focus on activity-based computing brings to the foreground a number of unique challenges. These include activity definition and representation, system design, interfaces for managing activities, and ensuring robust operation. Our project focuses on the first two challenges.
João Pedro Sousa, Vahe Poladian, David Garlan, Bradley R. Schmerl, Peter Steenkiste
IPDPS3
2008 Differencing and merging of architectural views
Marwan Abi-Antoun, Jonathan Aldrich, Nagi H. Nahas, Bradley R. Schmerl, David Garlan
Autom. Softw. Eng.5
2007 Software Architectures for Task-Oriented Computing
David Garlan
ECSA1
2007 Program comprehension as fact finding
abstract
Little is known about how developers think about design during code modification tasks or how experienced developers' design knowledge helps them work more effectively. We performed a lab study in which thirteen developers worked for 3 hours under-standing the design of a 54 KLOC open source application. Par-ticipants had from 0 to 10.5 years of industry experience and were grouped into three "experts" and ten "novices." We observed that participants spent their time seeking, learning, critiquing, explain-ing, proposing, and implementing facts about the code such as "getFoldLevel has effects". These facts served numerous roles, such as suggesting changes, constraining changes, and predicting the amount of additional investigation necessary to make a change. Differences between experts and novices included that the experts explained the root cause of the design problem and made changes to address it, while novice changes addressed only the symptoms. Experts did not read more methods but also did not visit some methods novices wasted time understanding. Experts talked about code in terms of abstractions such as "caching" while novices more often described code statement by statement. Ex-perts were able to implement a change faster than novices. Experts perceived problems novices did not and were able to explain facts novices could not. These findings have interesting implications for future tools.
Thomas D. LaToza, David Garlan, James D. Herbsleb, Brad A. Myers
ESEC/SIGSOFT FSE2
2007 The Radar Architecture for Personal Cognitive Assistance
abstract
Current desktop environments provide weak support for carrying out complex user-oriented tasks. Although individual applications are becoming increasingly sophisticated and feature-rich, users must map their high-level goals to the low-level operational vocabulary of applications, and deal with a myriad of routine tasks (such as keeping up with email, keeping calendars and websites up-to-date, etc.). An alternative vision is that of a personal cognitive assistant. Like a good secretary, such an assistant would help users accomplish their high-level goals, coordinating the use of multiple applications, automatically handling routine tasks, and, most importantly, adapting to the individual needs of a user over time. In this paper we describe the architecture and its implementation for a personal cognitive assistant called RADAR. Key features include. (a) extensibility through the use of a plug-in agent architecture. (b) transparent integration with legacy applications and data of today's desktop environments, and. (c) extensive use of learning so that the environment adapts to the individual user over time.
David Garlan, Bradley R. Schmerl
Int. J. Softw. Eng. Knowl. Eng.1
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
ICSE2
2006 Differencing and Merging of Architectural Views
abstract
Existing approaches to differencing and merging architectural views are based on restrictive assumptions such as requiring view elements to have unique identifiers or exactly matching types. We propose an approach based on structural information by generalizing a published polynomial-time tree-to-tree correction algorithm (that detects inserts, renames and deletes) into a novel algorithm to additionally detect restricted moves and support forcing and preventing matches between view elements. We incorporate the algorithm into tools to compare and merge component-and-connector (C&C) architectural views. Finally, we provide an empirical evaluation of the algorithm on case studies to find and reconcile interesting divergences between architectural views
Marwan Abi-Antoun, Jonathan Aldrich, Nagi H. Nahas, Bradley R. Schmerl, David Garlan
ASE5
2006 Design fragments make using frameworks easier
abstract
Object oriented frameworks impose additional burdens on programmers that libraries did not, such as requiring the programmer to understand the method callback sequence, respecting behavior constraints within these methods, and devising solutions within a constrained solution space. To overcome these burdens, we express the repeated patterns of engagement with the framework as a design fragment. We analyzed the 20 demo applets provided by Sun and created a representative catalog of design fragments of conventional best practice. By evaluating 36 applets pulled from the internet we show that these design fragments are common, many applets copied the structure of the Sun demos, and that creation of a catalog of design fragments is practical. Design fragments give programmers immediate benefit through tool-based conformance assurance and long-term benefit through expression of design intent.
George Fairbanks, David Garlan, William L. Scherlis
OOPSLA2
2006 An Architecture for Personal Cognitive Assistance
David Garlan, Bradley R. Schmerl
SEKE1
2006 Developing adaptive systems with synchronized architectures
Tiberiu Seceleanu, David Garlan
J. Syst. Softw.2
2006 Discovering Architectures from Running Systems
abstract
One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper, we describe a technique that uses runtime observations about an executing system to construct an architectural view of the system. In this technique, we develop mappings that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations and are formally defined using Colored Petri Nets. In this paper, we describe a system, called DiscoTect, that uses these mappings and we introduce the DiscoSTEP mapping language and its formal definition. Two case studies showing the application of DiscoTect suggest that the tool is practical to apply to legacy systems and can dynamically verify conformance to a preexisting architectural specification.
Bradley R. Schmerl, Jonathan Aldrich, David Garlan, Rick Kazman, Hong Yan 0002
IEEE Trans. Software Eng.3
2006 Task-based adaptation for ubiquitous computing
abstract
An important domain for autonomic systems is the area of ubiquitous computing: users are increasingly surrounded by technology that is heterogeneous, pervasive, and variable. In this paper we describe our work in developing self-adapting computing infrastructure that automates the configuration and reconfiguration of such environments. Focusing on the engineering issues of self-adaptation in the presence of heterogeneous platforms, legacy applications, mobile users, and resource variable environments, we describe a new approach based on the following key ideas: 1) explicit representation of user tasks allows us to determine what service qualities are required of a given configuration; 2) decoupling task and preference specification from the lower level mechanisms that carry out those preferences provides a clean engineering separation of concerns between what is needed and how it is carried out; and 3) efficient algorithms allow us to calculate in real time near-optimal resource allocations and reallocations for a given task
João Pedro Sousa, Vahe Poladian, David Garlan, Bradley R. Schmerl, Mary Shaw
IEEE Trans. Syst. Man Cybern. Syst.3
2005 Synchronized Architectures for Adaptive Systems
abstract
In this paper we demonstrate how to use action systems to specify and refine self-adaptive systems. Focusing on the special case in which there is a fixed set of possible configurations, we use a recently-introduced synchronization operator to achieve separation of concerns between adaptation policy and steady-state system execution. The use of action systems permits the application of standard techniques for refinement to construct correct implementations from higher-level models. We illustrate the application of this idea to the problem of coping with dynamically-varying user requirements.
Tiberiu Seceleanu, David Garlan
COMPSAC (2)2
2005 Modeling and implementing software architecture with acme and archJava
abstract
We demonstrate a tool to incrementally synchronize an Acme architectural model described in the Acme Architectural Description Language (ADL) with an implementation in ArchJava, an extension of the Java programming language that includes explicit architectural modeling constructs.
Marwan Abi-Antoun, Jonathan Aldrich, David Garlan, Bradley R. Schmerl, Nagi H. Nahas, Tony Tseng
ICSE3
2005 DEAS 2005: workshop on the design and evolution of autonomic application software
abstract
Understanding software engineering issues for autonomic computing systems is critical for the software and information technology sectors, which are continually challenged to reduce the complexity of their systems. To be autonomic, a system must know itself as well as its boundaries and its environment, configure and reconfigure itself, continually optimize itself, recover or heal from malfunction, protect itself, and function in a heterogeneous world-while keeping its complexity hidden from the user. The goal of this workshop is to bring together researchers and practitioners, who investigate concepts, methodologies, techniques, technologies, and tools to design and evolve autonomic software.
David Garlan, John Mylopoulos, Marin Litoiu, Dennis B. Smith, Hausi A. Müller, Kenny Wong
ICSE1
2005 Bridging the Gap between Systems Design
abstract
A challenging problem for software engineering practitioners is moving from high-level system architectures produced by system engineers to deployable software produced by software engineers. In this paper we describe our experience working with NASA engineers to develop an approach and toolset for automating the generation of space systems software from architectural specifications. Our experience shows that it is possible to leverage the space systems domain, formal architectural specifications, and component technology to provide retargetable code generators for this class of software.
David Garlan, William K. Reinholtz, Bradley R. Schmerl, Nicholas D. Sherman, Tony Tseng
SEW1
2005 Dynamically discovering architectures with DiscoTect
abstract
One of the challenges for software architects is ensuring that an implemented system faithfully represents its architecture. We describe and demonstrate a tool, called DiscoTect, that addresses this challenge by dynamically monitoring a running system and deriving the software architecture as that system runs. The derivation process is based on mappings that relate low level system-level events to higher-level architectural events. The resulting architecture is then fed into existing architectural design tools so that comparisons can be conducted with the design time architecture and architectural analyses can be re-run to ensure that they are still valid. In addition to the demonstration, we briefly describe the mapping language and formal definition of the language in terms of Colored Petri Nets.
Bradley R. Schmerl, David Garlan, Hong Yan 0002
ESEC/SIGSOFT FSE2
2005 Semi-Automated Incremental Synchronization between Conceptual and Implementation Level Architectures
abstract
In practice, there are many differences between an implementation-level architecture (such as one derived using architectural recovery techniques) and a more conceptual architecture used at design time. We present a lightweight, scalable, semi-automated, incremental approach for synchronizing a Componentand- Connector (C&C) view retrieved from an implementation with a conceptual C&C view described in an Architectural Description Language. Our approach can automatically detect corresponding elements in the presence of insertions, deletions, renames, and moves, and incrementally synchronize the two views.
Marwan Abi-Antoun, Jonathan Aldrich, David Garlan, Bradley R. Schmerl, Nagi H. Nahas
WICSA3
2005 Software Architecture Evaluation and Analysis Session Report
abstract
We began by considering the broad vision for analysis and evaluation of architectures: to provide an engineering discipline that allows architects to make principled architectural decisions, evaluate the impact of those decisions, determine the conformance between architectures and other artifacts (code, requirements, etc.), and extract architectural representations from implementations.
David Garlan
WICSA1
2005 Adaptor Synthesis for Protocol-Enhanced Component Based Architectures
abstract
Correct assembly of software components is an important issue in Component Based Software Engineering. Composing a system from reusable components often introduces a set of problems related to communication and compatibility. In particular, one of the main problems in component assembly is that components may have incompatible interaction behavior. In this paper, we address this problem using an architecture-based approach that can detect integration mismatches, and semi-automatically synthesize a suitable adaptor, or glue code, to bridge them.
Massimo Tivoli, David Garlan
WICSA2
2004 Dynamic Configuration of Resource-Aware Services
abstract
An important emerging requirement for computing systems is the ability to adapt at run time, taking advantage of local computing devices, and coping with dynamically changing resources. Three specific technical challenges in satisfying this requirement are to (1) select an appropriate set of applications or services to carry out a user's task, (2) allocate (possibly scarce) resources among those applications, and (3) reconfigure the applications or resource assignments if the situation changes. In this paper, we show how to provide a shared infrastructure that automates configuration decisions given a specification of the user's task. The heart of the approach is an analytical model and an efficient algorithm that can be used at run time to make near-optimal (re)configuration decisions. We validate this approach both analytically and by applying it to a representative scenario.
Vahe Poladian, João Pedro Sousa, David Garlan, Mary Shaw
ICSE3
2004 AcmeStudio: Supporting Style-Centered Architecture Development
abstract
Software architectural modeling is crucial to the development of high-quality software. Tool support is required for this activity, so that models can be developed, viewed, analyzed, and refined to implementations. This support needs to be provided in a flexible and extensible manner so that the tools can fit into a company's process and can use particular, perhaps company-defined, domain-specific architectural styles. In this research demonstration, we describe AcmeStudio, a style-neutral architecture development environment that can be easily specialized for architectural design in different domains.
Bradley R. Schmerl, David Garlan
ICSE2
2004 DiscoTect: A System for Discovering Architectures from Running Systems
abstract
One of the challenging problems for software developers is guaranteeing that a system as built is consistent with its architectural design. In this paper, we describe a technique that uses run time observations about an executing system to construct an architectural view of the system. With this technique, we develop mappings that exploit regularities in system implementation and architectural style. These mappings describe how low-level system events can be interpreted as more abstract architectural operations. We describe the current implementation of a tool that uses these mappings, and show that it can highlight inconsistencies between implementation and architecture.
Hong Yan 0002, David Garlan, Bradley R. Schmerl, Jonathan Aldrich, Rick Kazman
ICSE2
2004 An Architecture for Coordinating Multiple Self-Management Systems
abstract
A common approach to adding self-management capabilities to a system is to provide one or more external control modules, whose responsibility is to monitor system behavior, and adapt the system at run time to achieve various goals (configure the system, improve performance, recover from faults, etc.). An important problem arises when there is more than one such self-management module: how can one make sure that they are composed to provide consistent and complementary benefits? In this paper we describe a solution that introduces a self-management coordination architecture and infrastructure to support such composition. We focus on the problem of coordinating self-configuring and self-healing capabilities, particularly with respect to global configuration and incremental repair. We illustrate the approach in the context of a self-managing video teleconference system that composes two preexisting adaptation modules to achieve synergistic benefits of both.
Shang-Wen Cheng, An-Cheng Huang, David Garlan, Bradley R. Schmerl, Peter Steenkiste
WICSA3
2004 Understanding Tradeoffs among Different Architectural Modeling Approaches
abstract
Over the past decade, a number of architecture description languages (ADLs) have been proposed to facilitate modeling and analysis of software architecture. While each claims to have various benefits, to date, there have been few studies to assess the relative merits of these approaches. In this paper, we describe our experience using two ADLs to model a system initially described in UML, and compare their effectiveness in identifying system design flaws. We also describe the techniques we used for extracting architectural models from a UML system description.
Roshanak Roshandel, Bradley R. Schmerl, Nenad Medvidovic, David Garlan, Dehua Zhang
WICSA4
2003 Documenting Software Architectures: Views and Beyond
abstract
This lecture maps the concepts and templates explored in this tutorial with well-known architectural prescriptions, including the 4+1 approach of the Rational Unified Process, the Siemens Four Views approach, and the ANSI/IEEE-1471-2000 recommended best practice for documenting architectures for software-intensive systems. The lecture concludes by re-capping the highlights of the tutorial, and asking for feedback.
Paul C. Clements, David Garlan, Reed Little, Robert L. Nord, Judith A. Stafford
ICSE2
2003 A Compositional Formalization of Connector Wrappers
abstract
Increasingly systems are composed of parts: software components, and the interaction mechanisms (connectors) that enable them to communicate. When assembling systems front independently developed and potentially mismatched parts, wrappers may be used to overcome mismatch as well as to remedy extra-functional deficiencies. Unfortunately the current practice of wrapper creation and use is ad hoc, resulting in artifacts that are often hard to reuse or compose, and whose impact is difficult to analyze. What is needed is a more principled basis for creating, understanding, and applying wrappers. Focusing on the class of connector wrappers (wrappers that address issues related to communication and compatibility), we present a means of characterizing connector wrappers as protocol transformations, modularizing them, and reasoning about their properties. Examples are drawn from commonly practiced dependability enhancing techniques.
Bridget Spitznagel, David Garlan
ICSE2
2002 Software Architecture-Based Adaptation for Grid Computing
abstract
Grid applications must increasingly self-adapt dynamically to changing environments. In most cases, adaptation has been implemented in an ad hoc fashion, on a per-application basis. This paper describes work which generalizes adaptation so that it can be used across applications by providing an adaptation framework. This framework uses a software architectural model of the system to analyze whether the application requires adaptation, and allows repairs to be written in the context of the architectural model and propagated to the running system. In this paper, we exemplify our framework by applying it to the domain of load-balancing a client-server system. We report on an experiment conducted using our framework, which illustrates that this approach maintains architectural requirements.
Shang-Wen Cheng, David Garlan, Bradley R. Schmerl, Peter Steenkiste, Ningning Hu
HPDC2
2002 Exploiting architectural design knowledge to support self-repairing systems
abstract
In an increasing number of domains software is now required to be self-adapting and self-healing. While in the past such abilities were incorporated into software on a per system basis, proliferation of such systems calls for more generalized mechanisms to manage dynamic adaptation. General mechanisms have the advantage that they can be reused in numerous systems, analyzed separately from the system being adapted, and easily changed to incorporate new adaptations. Moreover, they provide a natural home for encoding the expertise of system designers and implementers about adaptation strategies and policies. In this paper, we show how current software architecture tools can be extended to provide such generalized dynamic adaptation mechanisms.
Bradley R. Schmerl, David Garlan
SEKE2
2002 Using Architectural Style as a Basis for System Self-repair
Shang-Wen Cheng, David Garlan, Bradley R. Schmerl, João Pedro Sousa, Bridget Spitznagel, Peter Steenkiste
WICSA2
2002 Aura: an Architectural Framework for User Mobility in Ubiquitous Computing Environments
João Pedro Sousa, David Garlan
WICSA2
2002 Reconciling the needs of architectural description with object-modeling notations
David Garlan, Shang-Wen Cheng, Andrew Kompanek
Sci. Comput. Program.1
2001 A Compositional Approach for Constructing Connectors
abstract
Increasingly, systems are composed from independently developed parts, and mechanisms that allow those parts to interact (connectors). In many situations, specialized forms of interaction are needed to bridge component mismatches or to achieve extra-functional properties (e.g., security, performance, reliability), making the design and implementation of these interaction mechanisms a critical issue. Unfortunately, system developers have few options: they must live with available, but often inadequate, generic support for interaction (such as RPC), or they must handcraft specialized mechanisms at great cost. The authors describe a partial solution to this problem, whereby interaction mechanisms are constructed compositionally. Specifically, we describe a set of operators that can transform generic communication mechanisms (such as RPC and publish-subscribe) to incrementally add new capabilities. We show how these transformations can be used to realize complex interactions (such as Kerberized RPC) and to generate implementations of the new connector types at relatively low cost.
Bridget Spitznagel, David Garlan
WICSA2
2001 Formal modeling of the Enterprise JavaBeans(TM) component integration framework
João Pedro Sousa, David Garlan
Inf. Softw. Technol.2
2001 Guest Editors' Introduction: 1999 International Conference on Software Engineering
Jeff Kramer, David Garlan, David S. Rosenblum
IEEE Trans. Software Eng.2
1999 Acme-Based Software Architecture Interchange
David Garlan
COORDINATION1
1998 Specifying and Analyzing Dynamic Software Architectures
Rémi Douence, David Garlan
FASE3
1998 Formal Modeling and Analysis of the HLA Component Integration Standard
abstract
An increasingly important trend in the engineering of complex systems is the design of component integration standards. Such standards define rules of interaction and shared communication infrastructure that permit composition of systems out of independently-developed parts. A problem with these standards is that it is often difficult to understand exactly what they require and provide, and to analyze them in order to understand their deeper properties. In this paper we use our experience in modeling the High Level Architecture (HLA) for Distributed Simulation to show how one can capture the structured protocol inherent in an integration standard as a formal architectural model that can be analyzed to detect anomalies, race conditions, and deadlocks.
Robert J. Allen, David Garlan
SIGSOFT FSE2
1998 Reasoning about Implicit Invocation
abstract
Implicit invocation [SN92, GN91] has become an important architectural style for large-scale system design and evolution. This paper addresses the lack of specification and verification formalisms for such systems. Based on standard notions from process algebra and trace semantics, we define a formal computational model for implicit invocation. A verification methodology is presented that supports linear time temporal logic and compositional reasoning. First, the entire system is partioned into groups of components (methods) that behave independently. Then, local properties are proved for each of the groups. A precise description of the cause and the effect of an event supports this step. Using local correctness, independence of groups, and properties of the delivery of events, we infer the desired property of the overall system. Two detailed examples illustrate the use of our framework.
David Garlan, Somesh Jha, David Notkin
SIGSOFT FSE1
1998 Towards a Formal Treatment of Implicit Invocation Using Rely/Guarantee Reasoning
abstract
Abstract. Implicit invocation [SuN92, GaN91] has become an important architectural style for large-scale system design and evolution. This paper addresses the lack of specification and verification formalisms for such systems. A formal computational model for implicit invocation is presented. We develop a verification framework for implicit invocation that is based on Jones' rely/guarantee reasoning for concurrent systems [Jon83, Stø91]. The application of the framework is illustrated with several examples. The merits and limitations of the rely/guarantee paradigm in the context of implicit invocation systems are also discussed.
Jürgen Dingel, David Garlan, Somesh Jha, David Notkin
Formal Aspects Comput.2
1998 Errata: A Formal Basis for Architectural Connection
abstract
We present corrections to a previously published article which appeared in ACM Transaction on Software Engineering and Methodology 6, 3 (July 1997), pp. 213–249
David Garlan
ACM Trans. Softw. Eng. Methodol.2
1997 A Formal Basis for Architectural Connection
abstract
As software systems become more complex, the overall system structure—or software architecture—becomes a central design problem. An important step toward an engineering discipline of software is a formal basis for describing and analyzing these designs. In the article we present a formal approach to one aspect of architectural design: the interactions among components. The key idea is to define architectural connectors as explicit semantic entities. These are specified as a collection of protocols that characterize each of the participant roles in an interaction and how these roles interact. We illustrate how this scheme can be used to define a variety of common architectural connectors. We further provide a formal semantics and show how this leads to a system in which architectural compatibility can be checked in a way analogous to type-checking in programming languages.
David Garlan
ACM Trans. Softw. Eng. Methodol.2
1996 Style-based reuse for software architectures
abstract
Although numerous mechanisms for promoting software reuse have been proposed and implemented over the years, most have focused on the reuse of implementation code. There is much conjecture and some empirical evidence, however, that the most effective forms of reuse are generally found at more abstract levels of software design. We discuss software reuse at the architectural level of design. Specifically, we argue that the concept of "architectural style" is useful for supporting the classification, storage, and retrieval of reusable architectural design elements. We briefly describe the Aesop system's Software Shelf (D. Garlan et al., 1994), a tool that assists designers in selecting appropriate design elements and patterns based on stylistic information and design constraints.
Robert T. Monroe, David Garlan
ICSR2
1995 Architectural Mismatch or Why It's Hard to Build Systems Out Of Existing Parts
abstract
Many would argue that future breakthroughs in software productivity will depend on our ability to combine existing pieces of software to produce new applications.An important step towards this goal is the development of new techniques to detect and cope with mismatches in the assembled parts.Some problems of composition are due to low-level issues of interoperability, such as mismatches in programming languages or database schemas.However, in this paper we highlight a different, and in many ways more pervasive, class of problem: architectural mismatch.Specifically, we use our experience in building a family of software design environments from existing parts to illustrate a variety of types of mismatch that center around the assumptions a reusable part makes about the structure of the application in which is to appear.Based on this experience we show how an architectural view of the mismatch problem exposes some fundamental, thorny problems for software composition and suggests possible research avenues needed to solve them.
David Garlan, John Ockerbloom
ICSE1
1995 Software Architecture: Next Steps Towards an Engineering Discipline for Software Systems Design (Panel)
abstract
No abstract available.
David Garlan
SIGSOFT FSE1
1995 Making formal methods education effective for professional software engineers
David Garlan
Inf. Softw. Technol.1
1995 Formalizing Style to Understand Descriptions of Software Architecture
abstract
The software architecture of most systems is usually described informally and diagrammatically by means of boxes and lines. In order for these descriptions to be meaningful, the diagrams are understood by interpreting the boxes and lines in specific, conventionalized ways. The informal, imprecise nature of these interpretations has a number of limitations. In this article we consider these conventionalized interpretations as architectural styles and provide a formal framework for their uniform definition. In addition to providing a template for precisely defining new architectural styles, this framework allows for analysis within and between different architectural styles.
Gregory D. Abowd, David Garlan
ACM Trans. Softw. Eng. Methodol.3
1995 Introduction to the Special Issue on Software Architecture
David Garlan, Dewayne E. Perry
IEEE Trans. Software Eng.1
1994 Formalizing Architectural Connection
David Garlan
ICSE2
1994 Software Architecture: Practice, Potential, and Pitfalls
David Garlan, Dewayne E. Perry
ICSE1
1994 Nico Habermann's Research: A Brief Retrospective
David Garlan, J. Frits Habermann, David Notkin
ICSE1
1994 Exploiting Style in Architectural Design Environments
abstract
As the design of software architectures emerges as a discipline within software engineering, it will become increasingly important to support architectural description and analysis with tools and environments. In this paper we describe a system for developing architectural design environments that exploit architectural styles to guide software architects in producing specific systems. The primary contributions of this research are: (a) a generic object model for representing architectural designs; (b) the characterization of architectural styles as specializations of this object model; and (c) a toolkit for creating an open architectural design environment from a description of a specific architectural style. We use our experience in implementing these concepts to illustrate how style-oriented architectural design raises new challenges for software support environments.
David Garlan, John Ockerbloom
SIGSOFT FSE1
1994 TransformGen: Automating the Maintenance of Structure-Oriented Environments
abstract
A serious problem for programs that use persistent data is that information created and maintained by the program becomes invalid if the persistent types used in the program are modified in a new release. Unfortunately, there has been little systematic treatment of the problem; current approaches are manual, ad hoc, and time consuming both for programmers and users. In this article we present a new approach. Focusing on the special case of managing abstract syntax trees in structure-oriented environments, we show how automatic transformers can be generated in terms of an implementor's changes to the grammar of these environments.
David Garlan, Charles W. Krueger, Barbara Lerner
ACM Trans. Program. Lang. Syst.1
1993 Adding Implicit Invocation to Rraditional Programming Languages
David Garlan, Curtis M. Scott
ICSE1
1993 Should we specify systems or domain?
abstract
The question of specifying systems or domains is addressed. Among the issues discussed are: the requirements of first-class connectors for domain specifications; the use of application frameworks as domain specifications; the role of connectors in domain specifications; domain model specification; the question of what precisely is meant by a domain of the question of reuse; and the difficulty in producing sound domain specifications.>
D. Partridge, David Garlan, David R. Barstow, Jeff Kramer
RE2
1993 Using Style to Understand Descriptions of Software Architecture
abstract
The software architecture of most systems is described informally and diagrammatically. In order for these descriptions to be meaningful at all, figures are understood by interpreting the boxes and lines in specific, conventionalized ways[5]. The imprecision of these interpretations has a number of limitations. In this paper we consider these conventionalized interpretations as architectural styles and provide a formal framework for their uniform definition. In addition to providing a template for precisely defining new architectural styles, this framework allows for the proof that the notational constraints on a style are sufficient to guarantee the meanings of all described systems and provides a unified semantic base through which different stylistic interpretations can be compared.
Gregory D. Abowd, David Garlan
SIGSOFT FSE3
1987 MELDing Data Flow and Object-Oriented Programming
abstract
MELD combines concepts from data flow and object-oriented programming languages in a unique approach to tool reusability. MELD provides three units of abstraction — equations, classes and features — that together allow sufficient options for granularity and encapsulation to support the implementation of reusable tools and the composition of existing tools in parallel (i.e., interleaved) as well as in series.
Gail E. Kaiser, David Garlan
OOPSLA2