end user architecting

Download End User Architecting

Post on 24-Feb-2016




0 download

Embed Size (px)


End User Architecting. Vishal Dwivedi Institute for Software Research Carnegie Mellon University vdwivedi@cs.cmu.edu Advanced User Interface Software. If you build it, they will come…. - PowerPoint PPT Presentation


End User Architecting

End User ArchitectingVishal DwivediInstitute for Software ResearchCarnegie Mellon University


Advanced User Interface Software

1Carnegie Mellon University, School of Computer Science1If you build it, they will come2Hundreds of end user programming tools have been created in this hope. Not every tool succeeds. Many of them are built at a high cost, and are impoverished

Life may have been much better if everyone did not start from scratchCarnegie Mellon University, School of Computer ScienceAgendaMotivation/DefinitionsEnd User ArchitectingExamplesAbstractions for dataflow, pub-sub, Style and the user interface elementsAnalysesComposition of user interfaces (and why it is a hard problem)A framework for End User Architecting

3Carnegie Mellon University, School of Computer ScienceDefinitionsSoftware ArchitectureThe software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them and properties of both. Garlan and Shaw4

High level of design abstractions and analysisEmergent propertiesReuse of design styles, patterns, and frameworks

Carnegie Mellon University, School of Computer Science4DefinitionsArchitecture StyleA style defines the computation model, vocabulary consisting of elements such as components and connectors, their interfaces, and the constraints that they must obey.Examples: dataflow, pub-sub, client-server, pipe and filter

5Gregory R. Abowd, Robert Allen, David Garlan, Using Style to Understand Descriptions of Software Architecture, SIGSOFT 94:

Carnegie Mellon University, School of Computer Science56Architecture StyleFactors out common infrastructure.Allows configuration with additional details.Captures the domain elements and constraints on their usage.Are translated into required technology-specific vocabulary.

DefinitionsCarnegie Mellon University, School of Computer ScienceRecalling Brads LectureLayers of UI software

7ApplicationHigher Level ToolsToolkitWindowing SystemOperating SystemCarnegie Mellon University, School of Computer Science7Recalling Brads LectureFor example: SUITs architecture


Pausch, R., Conway, M., & DeLine, R. (1992). Lesson Learned from SUIT, the Simple User Interface Toolkit. ACM Transactions on Information Systems, 10(4), 320-344.Carnegie Mellon University, School of Computer Science8Architectural LayerAdding an additional architecture Layer9Execution PlatformArchitectural LayerUser interfaceVisual LanguageDomain-specific architectural stylesPlatforms like SOA, SCA etcGuidanceTranslationMonitoringAdaptationAnalysisCode GenerationCarnegie Mellon University, School of Computer ScienceEnd User ArchitectingSimilar to end-user programming, it recognizes up front that the key issue for end user programming is bridging the gap between available computational resources and the skill set of the users who must harness them [Nardi,93]

But unlike end-user programming, it seeks to find higher-level abstractions that leverage architectural techniques for defining the domain, supporting compositions, and aiding in tradeoffs and analyses.

Three key elements to the approachAn architecture layer between the user interface and execution environment supports explicit representation of enduser compositionsA reusable style that can be specialized for specific domainsA graphical front end for composition and for analyzing and executing compositions

10Carnegie Mellon University, School of Computer ScienceArchitecture layer between user interface and execution environmentRaises level of abstraction, making it easier for users to understand the vocabularyProvides a basis for architectural analysis, guidance, composition

Architectural styles help domain specializationStyles define the vocabulary for compositions in a domain.Domain-specific specializations for each domain further refine vocabulary, rules, and concerns11End User Architecture ApproachCarnegie Mellon University, School of Computer ScienceExamplePub-Sub Style (Ozone Widgets)12

https://www.owfgoss.orgCarnegie Mellon University, School of Computer Science12ExamplePub-Sub Style (Ozone Widgets)13Ozone provides a framework for creation and integration of HTML widgetsWidgets can publish and subscribe to channels to communicate messages.End users can specify which pairs of widgets can send/receive messages

Widget AWidget CWidget B

PublishSubscribeSubscribeCarnegie Mellon University, School of Computer Science13ExamplePub-Sub Style (Ozone Widgets)14Key features of End User Architecting:Architectural Style: Compositions are defined using a variant of a publish-subscribe style that takes into account the idea of restrictions.Architecture Representation: Ozone widget configurations are represented as explicit architectural models, that indicate which widgets are involved in a composition and the communication topology.Analysis: such as which widgets are communicating, whether there are data mismatches over publish-subscribe channels, how to restrict communication to minimize event messagingReuse: Component based reuseUser interface: Additional widgets to inform the user about restrictions, widget communications and other analyses.

Carnegie Mellon University, School of Computer Science14ExampleDataflow based compositions15SequenceReceiveAssignAssignInvokeAssignAssignWaitAssignAssign0AssignInvokeWaitInvokeSequenceWhileSequenceAssignCatchAssignInvokeReplyThrowSequenceXXAssignAssignWaitAssignAssign0AssignInvokeWaitInvokeSequenceWhileSequenceAssignCatchAssignInvokeReplyThrowSequenceXXAssignAssignWaitAssignAssign0AssignInvokeWaitInvokeSequenceWhileSequenceAssignCatchAssignInvokeReplyThrowSequenceXXAssignAssignWaitAssignAssign0AssignInvokeWaitInvokeSequenceWhileSequenceAssignCatchAssignInvokeReplyThrowSequenceXXAssignInvokeReply

Carnegie Mellon University, School of Computer Science1516

Root StyleSpecialization for NeuroscienceSpecialization for Intelligence AnalysisExampleDataflow style vocabulary (created by refinement)Vishal Dwivedi et al. An Architectural Approach to End User Orchestrations. ECSA 2011: 370-378Carnegie Mellon University, School of Computer ScienceExampleDataflow UI elements17Workflow EditorYUI LayoutPerspective (Compose, Execute, Analyze)YUI LayoutPaletteModuleCanvasService(Container)DataServiceMulti Port ServiceYUI framework defines the GUI widgets, events and controls, utilitiesA style maps these compositions to an architectural representationThis is analyzed for various quality attributes.Carnegie Mellon University, School of Computer ScienceExampleDataflow analyses18

Architectural specification allows domain-specific analyses, such as:Data mismatchSecurity OrderingDomain-specific constraints (e.g. above diagram before a brain image is visualized it should be registered and converted in a specific format.)Resolving Data Mismatches in End-User Compositions, ISEUD 2013Carnegie Mellon University, School of Computer Science18ExampleDataflow Style (Widgets)19Key features of End User Architecting:Architectural Style: Compositions are defined using a variant of a dataflow style that is specialized for a domainArchitecture Representation: Workflows are instances of the style.Analysis: custom analyses for data-mismatch, security/privacy violations, ordering analyses, etc.Reuse: Reuse of component vocabularies, compositions, etc.User interface: A dataflow based interface having element vocabulary defined in a domain-specific style.

Carnegie Mellon University, School of Computer Science19The Bigger Problem20Creating compositions today is difficult for end users due to:

Complexity due to low-level detailsFor example, parameters, file systems, paths, operating systems, etc

Lack of support for error resolutionFor example, Analyses for quality attributes such as security and privacy and other syntactic and semantic problems.

Conceptual mismatchFor example, Remove Image Noise as opposed to calling the specific program(s) to perform this function.

Composing UI components is even harder!Carnegie Mellon University, School of Computer ScienceComposing User interfaces with Interviews21The premise:Object oriented User interface codeSeparate interactorsIconic interfacesTradeoff at the level of GUI consistency.Mark A. Linton, John M. Vlissides, Paul R. Calder: Composing User Interfaces with InterViews. IEEE Computer 22(2): 8-22 (1989)

But what if GUI objects have semantic meanings?Carnegie Mellon University, School of Computer Science21Building blocks for reusability22Anders I. Mrch: Application Units: Basic Building Blocks of Tailorable Applications. EWHCI 1995: 45-62

Tailoring by:Extension and refinementSpecialization of components and virtual binding

But who does that?Carnegie Mellon University, School of Computer Science23But certain communities have handled this wellE-sciences (e.g. LONI pipeline, Taverna)

Things they did well:Componentization of functionalities as servicesPluggable visual components, with search and discoveryAnd most importantly, creating an ecosystem with different developer roles.Loni Pipeline demoCarnegie Mellon University, School of Computer ScienceHALO: a framework for End User Architecting24

Carnegie Mellon University, School of Computer ScienceCurrent workHALO SDK (and plugins) for: Architectural representation, Packaging and reuseData reference Multiple analyses Component registryExecution-support

Hypotheses: Associating architectural specifications with user interfaces will allow a greater level of analysis and reuse.Many tool capabilities will be p


View more >