Skip to Main Content
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.