CMU-S3D-22-110
Software and Societal Systems Department
School of Computer Science, Carnegie Mellon University



CMU-S3D-22-110

Halo: A Framework for End-User Architecting

Vishal Dwivedi

December 2022

Ph.D. Thesis
Software Engineering

CMU-S3D-22-110.pdf


Keywords: Programming environments, software frameworks, software environments for composition, end-user software engineering, end-user architecture, HALO

A large number of domains today require end users to compose various heterogeneous computational entities to perform their professional activities. However, writing such end-user compositions is hard and error-prone. Compared to the capabilities of modern programming environments, end users have relatively few tools for things like composition analysis, compilation into efficient deployments, interactive testing and debugging (e.g., setting breakpoints, monitoring intermediate results, etc.), history tracking, and graceful handling of run-time errorsA large number of domains today require end users to compose various heterogeneous computational entities to perform their professional activities. However, writing such end-user compositions is hard and error-prone. Compared to the capabilities of modern programming environments, end users have relatively few tools for things like composition analysis, compilation into efficient deployments, interactive testing and debugging (e.g., setting breakpoints, monitoring intermediate results, etc.), history tracking, and graceful handling of run-time errors.

To overcome these limitations, we pose this thesis: "It is possible to build an end-user composition framework that can be instantiated to provide high-quality composition environments at relatively low cost compared to existing hand-crafted environments for a broad class of composition domains."

As a solution to this problem, we have designed a new technique called "end-user architecting" that associates end-user specifications in a particular domain as instances of architectural styles. This allows cross-domain analyses, systematic support for reuse and adaptation, powerful auxiliary services (e.g., mismatch repair), and support for execution, testing, and debugging.

To allow a wider adoption of this technique, we have designed the "Halo framework" that can be instantiated across a large number of domains, with composition models varying from data flows, publish-subscribe, and workflows. The Halo framework supports most of the common compositions tasks such as Search, Reuse, Construction, Analysis, Execution, and Debugging support and provides general and reusable infrastructures with well-defined customization points to build composition environments with these common features. Halo also provides adapters that can be customized for different user interfaces, runtime environments, and various analyses based on domain-specific constraints. This allows developers to systematically customize Halo and develop composition environments by using Halo's building blocks.

This approach can reduce the cost of development of end-user composition platforms (compared to developing them from scratch) and improve the quality of end-user compositions.

137 pages

Thesis Committee:
David Garlan (Chair)
James D. Herbsleb
Christian Kästner
Ian Gorton (Northeastern University)

James D. Herbsleb, Head, Software and Societal Systems Department
Martial Hebert, Dean, School of Computer Science


Return to: SCS Technical Report Collection
School of Computer Science

This page maintained by reports@cs.cmu.edu