280 likes | 299 Views
Component-Based Tailorability - Concepts and Experiences. Volker Wulf Fraunhofer Institute for Applied Information Technology (FhG-FIT) and University of Siegen Markus Won ProSEC, Institute for Computer Science III, University of Bonn. Overview. Tailorability
E N D
Component-Based Tailorability - Concepts and Experiences Volker Wulf Fraunhofer Institute for Applied Information Technology (FhG-FIT) and University of Siegen Markus Won ProSEC, Institute for Computer Science III, University of Bonn
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
Tailorability • Fields of application are differentiated and dynamically changing • Current tasks • Individual qualifications • Organizational context • Tailorability is defined • Changing aspects of an application‘s functionality • in a persistent way (by means of tailored artifacts) • during the use of an application (at runtime) • by users or local experts. • Technical flexibility beyond • Modifications of parameters • (Re-)programming
Components in Software Engineering • Definition (according to C. Szyperski 2002, p. 41) “A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.” • Important Features • Stateless • Independent of each other • Interaction via a well defined interface • Blackboxing of implementation details
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
My App‘ My App‘ My App My App Changing Parameters Changing the set of components within a composition Changing the connections between components Adding new components to the existing set Re-programming a component‘s functionality Component-Based Architecture for Tailoring • Properties of component-based tailorability • Independently developed parts of software • Composition via graphical user interface • Component model to prevent mistaken compositions • Hierarchical structure: simple and compound components • Component-based tailoring
The FLEXIBEANS Component Model • Starting point: JAVABEANS component model • Extensions • Named ports: Differentiation among connections of the same type • Shared objects: Extension of existing interaction techniques • Remote interaction: Allows for designing distributed applications • Composition Language • Selection of components and compound components • Bindings between components (=Composition) • Creation of compound components • Parameterization of Components
Server Client CAT-File Names =Applications InstantiateComponents Run-Time (Server) Run-Time (Client) CAT-File = Plan for Application CAT-Files Component Repository Rdsdkj Sdds Sd gghgh Dsds Dsd Sdhjhjhjk hgh The FREEVOLVE Platform: An architectural overview (1) List of Applications
The FREEVOLVE Platform: An architectural overview (2) Server Client • Tailor one application on the Client‘s or the Server‘s side • Client: Direct impact • Server: Next start • Save changes for next use Run-Time (Server) Run-Time (Client) Client Run-Time (Client)
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
2D Tailoring Environment (1) • Example: Search tool for groupware • Tailoring mode very similar to the run-time mode • Visible components: same place • Invisible components: presentation in 2 D screen space • Abstract (compound) components prevent from too much complexity • Problems in handling invisible components run-time Design
3D Tailoring Environment • „Doom-like“ navigation through the application • Third dimension • Invisible components • Distributed character • Projection of visible components • Problems (especially for inexperienced users) • High level of abstraction • 3D navigation
2D Tailoring Environment (2) • 2D handling • Multiple views: For different concerns • Synchronization between views • Problem: Multiple views enhance complexity Managing connections Nested composition and parameters Arranging visual components
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
Integrity Checking: Prevention of Errors and Ease of Learning • Additional Information (in XML) for • Components • Set of Components • Groups of Applications • Check on • Event Flows • Are all needed events produced and bound? • Constraints • Are there dependencies between components’ parameters? • Possible Results • Warnings • Help Texts and Suggestions for Improvement • Semi-automatic correction of failures (future work)
Producer Consumer Input Output must Integrity Checking: Event Flow Integrity Differentiation between required and optional bindings • Some Events (Tokens) have to be created or used (Producer vs. Consumer) • Transitivity of connections • Typed components • Tokens can be transformed (re-typing) within a component • Token types can be orthogonal to the existing class hierarchy • Petri-Net-based analysis Taking intoaccount the Transitivity of Connections Petri-Net-based analysis
Integrity Checking: Dependent Parameters and Application Templates • Parameters can be directly or functionally dependent (within one component as well as between components) • Same Look‘n Feel (c.f. Java Swing) • Same input scale of serialized audio filter • In single components this can be done by typing (sub-typing) or in the source code (complex dependencies) • But explicit descriptions • Allow for changing constraints in changing domain contexts • ease tailoring (the constraints) and understanding • Templates are • Helpful if designing a special kind of application • Partly pre-defined components and their parameters • Existence of particular Components (Boolean logic, according to class hierarchy) • Some connections are pre-defined Constraints and Triggers
Integrity Checking: Using the Tailor Client • Easy tailoring and support by interactive integrity check • Visual pointers indicate violated constraints • Descriptions of failures (violated constraints) • Automatically generated recommendations • Semi-automatic correction of failures
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
Exploration Environments • Motivation in distributed environments: • Tailoring actions may not be visible to the user • Changes may affect other users environment or work • Key concepts • Simulation of the system behavior • Switch between different users interfaces • Tailoring is done in a “save” environment • Simulation data helps to explore effects of tailoring Search tool in exploration mode
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
Direct Activation • Problem • Users do not know about tailoring functions • Users do not find tailoring functions • Access point of the tailoring function should be related to the one of the function to be tailored • Visual proximity: e.g.: in the same window • Consistent mode of activation: e.g.: by pressing <alt> t
Overview • Tailorability • FLEXIBEANS Component Model • The FREEVOLVE Tailoring Environment • Visual Tailoring Languages • Supporting Techniques • Integrity Checking • Exploration Environments • Direct Activation • Cooperative Tailoring
Cooperative Tailoring • Precondition: extractable code • Constraint: non-experienced programmers • Technical infrastructure to exchange tailored artifacts • Mailing function • Shared repositories • Designing shared repositories • Finding tailored artifacts: Naming and classifying • Localizing tailored artifacts: Access rights and views • Quality insurance of tailored artifacts: Identifying creators, (Collective) histories of use
Naming and classifyingtailored artifacts • Problems in a field study • Names of the elementary components hardly indicated their meaning Appropriate components difficult to identify • Design Approach • More meaningful names for the elementary components • Consistent metaphors • Additional icons visualizing elementary components in the menu • Classification schemes for elementary and compound components
Describing Tailored Artifacts • Problems within the initial workshop • Naming and classifying not sufficient • Design Approach • hypertext-based help-menu for elementary components • annotation window for compound components • Annotation window • „creator“: has task-relation, hints to the quality, chance to contact, organizational recognition • „origin“: record of the tailoring history • „description“ and „remark“: often filled in, essential for understanding, but lacking conventions for the description
Actors involved • FLEXIBEANS Component Model (Stiemerling) • The FREEVOLVE Tailoring Environment (Hinken, Stiemerling, Stevens, Won) • Visual Tailoring Languages (Hallenberger, Krüger, Won, Wulf) • Supporting Techniques • Integrity Checking (Won, Krings, Wulf) • Exploration Environments (Engelskirchen, Golombek, Wulf) • Direct Activation (Golombek, Wulf) • Cooperative Tailoring (Kahler, Engelskirchen, Höpfner, Wulf) • DeEvolve • P2P Extension of FREEVOLVE(Alda)
Conclusion • FREEVOLVE: Distributed platform for component-based tailorability • Platform: Research prototype, available under GPL • Applications: search tool, access control, shared to-do-list, chat tool, … • Research challenges • Decomposition into „understandable“ components • Manipulation of complex compositions • Recommender for tailored artifacts • Peer-to-peer architecture • … • Development of new applications with industry