Bradley R. Schmerl

dblp:15/3453 · DBLP profile ↗
← Back
55ranked-venue papers
8as first author
14since 2021 · last 2025
0000-0001-7828-622XORCID · verified

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

Software engineering, systems software and programming languages · 43 · 6 first-author · 10 since 2021Systems, architecture and hardware · 7 · 2 first-author · 1 since 2021Artificial intelligence and machine learning · 3 · 1 first-authorHuman-computer interaction and ubiquitous computing · 2Security and privacy · 1 · 1 since 2021Theory of computation · 1Applied, interdisciplinary, general and emerging computing · 1 · 1 since 2021
YearPublicationVenuePosition
2025 Resilience of Systems Under Maximum Component Deviations
Abigail Hammer, Vick Dini, Ryan Wagner, Bradley R. Schmerl, Eunsuk Kang, David Garlan
SEFM5
2025 ROSpec: A Domain-Specific Language for ROS-Based Robot Software
abstract
Component-based robot software frameworks, such as the Robot Operating System (ROS), allow developers to quickly compose and execute systems by focusing on configuring and integrating reusable, off-the-shelf components. However, these components often lack documentation on how to configure and integrate them correctly. Even when documentation exists, its natural language specifications are not enforced, resulting in misconfigurations that lead to unpredictable and potentially dangerous robot behaviors. In this work, we introduce ROSpec, a ROS-tailored domain-specific language designed to specify and verify component configurations and their integration. ROSpec’s design is grounded in ROS domain concepts and informed by a prior empirical study on misconfigurations, allowing the language to provide a usable and expressive way of specifying and detecting misconfigurations. At a high level, ROSpec verifies the correctness of argument and component configurations, ensures the correct integration of components by checking their communication properties, and checks if configurations respect the assumptions and constraints of their deployment context. We demonstrate ROSpec’s ability to specify and verify components by modeling a medium-sized warehouse robot with 19 components, and by manually analyzing, categorizing, and implementing partial specifications for components from a dataset of 182 misconfiguration questions extracted from a robotics Q&A platform.
Paulo Canelas, Bradley R. Schmerl, Alcides Fonseca, Christopher Steven Timperley
Proc. ACM Program. Lang.2
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. Robotics4
2024 Understanding Misconfigurations in ROS: An Empirical Study and Current Approaches
abstract
The Robot Operating System (ROS) is a popular framework and ecosystem that allows developers to build robot software systems from reusable, off-the-shelf components. Systems are often built by customizing and connecting components via configuration files. While reusable components theoretically allow rapid prototyping, ensuring proper configuration and connection is challenging, as evidenced by numerous questions on developer forums. Developers must abide to the often unchecked and unstated assumptions of individual components. Failure to do so can result in misconfigurations that are only discovered during field deployment, at which point errors may lead to unpredictable and dangerous behavior. Despite misconfigurations having been studied in the broader context of software engineering, robotics software (and ROS in particular) poses domain-specific challenges with potentially disastrous consequences. To understand and improve the reliability of ROS projects, it is critical to identify the types of misconfigurations faced by developers. To that end, we perform a study of ROS Answers, a Q&A platform, to identify and categorize misconfigurations that occur during ROS development. We then conduct a literature review to assess the coverage of these misconfigurations by existing detection techniques. In total, we find 12 high-level categories and 50 sub-categories of misconfigurations. Of these categories, 27 are not covered by existing techniques. To conclude, we discuss how to tackle those misconfigurations in future work.
Paulo Canelas, Bradley R. Schmerl, Alcides Fonseca, Christopher Steven Timperley
ISSTA2
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.6
2024 Foreword: SEAMS 2022 Special Issue
abstract
The Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) provides a forum for researchers that propose software engineering methods, techniques, processes, and tools to support the construction of safe, performant, and cost-effective self-adaptive and autonomous systems that provide self-* properties such as self-configuration, self-healing, selfoptimization, and self-protection.The objective of SEAMS is to bring together researchers and practitioners from academia, industry, and government to investigate, discuss, examine, and advance the fundamental principles, state of the art, and the solutions addressing critical challenges of engineering self-adaptive and self-managing systems.SEAMS 2022 was co-located with the 44th International Conference on Software Engineering, in Pittsburgh, USA, in May 2022.The symposium took place toward the end of the COVID-19 pandemic and marked the first chance for an in-person meeting after 2 years of purely digital contacts.Due to uncertainty and a global reluctance to travel, we held the main technical program remotely, while a smaller group met in Pittsburgh and discussed better ways to transfer our community research into practice.We received 49 high-quality submissions belonging to several paper types: Twenty-five submissions were full research papers (eight of them were accepted, with an acceptance rate of 31%, in line with the acceptance rate of prior SEAMS editions).We selected six papers and invited their authors to extend the paper contribution for this special issue.The papers were chosen based on reviewer scores, potential for impact, and stimulating discussions during the conference.The papers for this special issue fall into two broad categories: (1) papers that advance the research of self-adaptation into new domains, such as UAVs teaming with humans, software-defined networks, and edge computing and (2) those that advance the software engineering of self-adaptive systems in the upcoming areas of learning model drift, testing, and proactive prediction of
Bradley R. Schmerl, Javier Cámara 0001, Martina Maggio
ACM Trans. Auton. Adapt. Syst.1
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
IC2E3
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.4
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.4
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
ICSA3
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
MoDELS5
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.8
2021 Explaining Architectural Design Tradeoff Spaces: A Machine Learning Approach
Javier Cámara 0001, Mariana Silva, David Garlan, Bradley R. Schmerl
ECSA4
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.3
2020 REACT-ION: A Model-based Runtime Environment for Situation-aware Adaptations
abstract
Trends such as the Internet of Things lead to a growing number of networked devices and to a variety of communication systems. Adding self-adaptive capabilities to these communication systems is one approach to reducing administrative effort and coping with changing execution contexts. Existing frameworks can help reducing development effort but are neither tailored toward the use in communication systems nor easily usable without knowledge in self-adaptive systems development. Accordingly, in previous work, we proposed REACT, a reusable, model-based runtime environment to complement communication systems with adaptive behavior. REACT addresses heterogeneity and distribution aspects of such systems and reduces development effort. In this article, we propose REACT-ION—an extension of REACT for situation awareness. REACT-ION offers a context management module that is able to acquire, store, disseminate, and reason on context data. The context management module is the basis for (i) proactive adaptation with REACT-ION and (ii) self-improvement of the underlying feedback loop. REACT-ION can be used to optimize adaptation decisions at runtime based on the current situation. Therefore, it can cope with uncertainty and situations that were not foreseeable at design time. We show and evaluate in two case studies how REACT-ION’s situation awareness enables proactive adaptation and self-improvement.
Martin Pfannemüller, Martin Breitbach, Markus Weckesser, Christian Becker 0001, Bradley R. Schmerl, Andy Schürr, Christian Krupitzer
ACM Trans. Auton. Adapt. Syst.5
2019 Synthesizing tradeoff spaces with quantitative guarantees for families of software systems
Javier Cámara 0001, David Garlan, Bradley R. Schmerl
J. Syst. Softw.3
2018 IPL: An Integration Property Language for Multi-model Cyber-physical Systems
Ivan Ruchkin, Joshua Sunshine, Grant Iraci, Bradley R. Schmerl, David Garlan
FM4
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.2
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.4
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.4
2017 Synthesis and Quantitative Verification of Tradeoff Spaces for Families of Software Systems
Javier Cámara 0001, David Garlan, Bradley R. Schmerl
ECSA3
2017 Introduction to the Special Section on Best Papers from SEAMS 2015
abstract
No abstract available.
Bradley R. Schmerl, Paola Inverardi
ACM Trans. Auton. Adapt. Syst.1
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
ECSA1
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.6
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.5
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.4
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.4
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 FSE4
2014 Evolution styles: foundations and models for software architecture evolution
Jeffrey M. Barnes, David Garlan, Bradley R. Schmerl
Softw. Syst. Model.3
2012 Introduction to the special issue on state of the art in engineering self-adaptive systems
Danny Weyns, Sam Malek, Jesper Andersson, Bradley R. Schmerl
J. Syst. Softw.4
2011 Architecture-Based Run-Time Fault Diagnosis
Paulo Casanova, Bradley R. Schmerl, David Garlan, Rui Abreu 0001
ECSA2
2011 An Architectural Approach to End User Orchestrations
Vishal Dwivedi, Perla Velasco-Elizondo, José Maria Fernandes, David Garlan, Bradley R. Schmerl
ECSA5
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
ICSE1
2010 Agent-assisted task management that reduces email overload
abstract
RADAR is a multiagent system with a mixed-initiative user interface designed to help office workers cope with email overload. RADAR agents observe experts to learn models of their strategies and then use the models to assist other people who are working on similar tasks. The agents' assistance helps a person to transition from the normal email-centric workflow to a more efficient task-centric workflow. The Email Classifier learns to identify tasks contained within emails and then inspects new emails for similar tasks. A novel task-management user interface displays the found tasks in a to-do list, which has integrated support for performing the tasks. The Multitask Coordination Assistant learns a model of the order in which experts perform tasks and then suggests a schedule to other people who are working on similar tasks. A novel Progress Bar displays the suggested schedule of incomplete tasks as well as the completed tasks. A large evaluation demonstrated that novice users confronted with an email overload test performed significantly better (a 37% better overall score with a factor of four fewer errors) when assisted by the RADAR agents.
Andrew Faulring, Brad A. Myers, Ken Mohnkern, Bradley R. Schmerl, Aaron Steinfeld, John Zimmerman, Asim Smailagic, Jeffery P. Hansen, Daniel P. Siewiorek
IUI4
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
ICSE2
2009 Using Service-oriented Architectures for Socio-Cultural Analysis
David Garlan, Kathleen M. Carley, Bradley R. Schmerl, Michael W. Bigrigg, Orieta Celiku
SEKE3
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
IPDPS4
2008 uDesign: End-User Design Applied to Monitoring and Control Applications for Smart Spaces
abstract
This paper introduces an architectural style for enabling end-users to quickly design and deploy software systems in domains characterized by highly personalized and dynamic requirements. The style offers an intuitive metaphor based on boxes, pipes, and wires, but retains enough preciseness that systems can be automatically assembled and dynamically reconfigured based on uDesign descriptions. uDesign was primarily motivated and validated within monitoring and control applications for smart spaces, but we envision possible extensions to other domains. Our contribution differs from early attempts at end- user programming by dealing with higher level software architectural abstractions rather than programming, and by addressing run-time descriptions rather than code structures. The paper presents validation of uDesign along the following aspects: (a) expressiveness, by means of two case studies, one in health care, and one in home security, (b) soundness, by providing uDesign's formal semantics, and (c) implementability, by describing a mapping of uDesign to an existing software infrastructure: the Aura infrastructure.
João Pedro Sousa, Bradley R. Schmerl, Vahe Poladian, Alexander Brodsky 0001
WICSA2
2008 Differencing and merging of architectural views
Marwan Abi-Antoun, Jonathan Aldrich, Nagi H. Nahas, Bradley R. Schmerl, David Garlan
Autom. Softw. Eng.4
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.2
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
ASE4
2006 An Architecture for Personal Cognitive Assistance
David Garlan, Bradley R. Schmerl
SEKE2
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.1
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.4
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
ICSE4
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
SEW3
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 FSE1
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
WICSA4
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
ICSE1
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
ICSE3
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
WICSA4
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
WICSA2
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
HPDC3
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
SEKE1
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
WICSA3