Large-Scale Complex IT Systems. Development, Operation and Management

Volume 7539 of the series Lecture Notes in Computer Science pp 157-182

Foundations and Tools for End-User Architecting

  • David GarlanAffiliated withSchool of Computer Science, Carnegie Mellon University
  • , Vishal DwivediAffiliated withSchool of Computer Science, Carnegie Mellon University
  • , Ivan RuchkinAffiliated withSchool of Computer Science, Carnegie Mellon University
  • , Bradley SchmerlAffiliated withSchool of Computer Science, Carnegie Mellon University

* Final gross prices may vary according to local VAT.

Get Access


Within an increasing number of domains an important emerging need is the ability for technically naïve users to compose computational elements into novel configurations. Examples include astronomers who create new analysis pipelines to process telescopic data, intelligence analysts who must process diverse sources of unstructured text to discover socio-technical trends, and medical researchers who have to process brain image data in new ways to understand disease pathways. Creating such compositions today typically requires low-level technical expertise, limiting the use of computational methods and increasing the cost of using them. In this paper we describe an approach — which we term end-user architecting — that exploits the similarity between such compositional activities and those of software architects. Drawing on the rich heritage of software architecture languages, methods, and tools, we show how those techniques can be adapted to support end users in composing rich computational systems through domain-specific compositional paradigms and component repositories, without requiring that they have knowledge of the low-level implementation details of the components or the compositional infrastructure. Further, we outline a set of open research challenges that the area of end-user architecting raises.


end-user architecture end-user architecting software architecture end-user programming software composition software development tools