Matthew J Mattia CSC 8570 Cumbersome Code Consistent/Predictable design (GUEPs #5, CD’s #10) Display “proper” amount of information Including IUI Aspects Trace user behavior to determine expertise Maintaining user knowledge base Handling dynamic GUI changes Use CLIPS AI system rules Knowledge Representation -- Tool for handling 3 programming paradigms: rulebased, object-oriented and procedural Rule-based programming allows knowledge to be represented as heuristics, or "rules of thumb," which specify a set of actions to be performed for a given situation Should expose a lot of intelligence & dynamic behavior because: Complex (financial, health, industrial) interfaces need dynamic control to mitigate testing overhead Users do not read documentation – interface should be intuitive Users have different skill sets Presentation layer must be separated from remaining application Why? Run-time adaptation depends on the ability to collect information about user activities Deduce user competency, preferences, goals Automatically reshape GUI to better communicate w/user Solve common user issues (e.g. - extend acceptance area of button) Tasks – performed in two-layered sets of rules, represented as facts, which are loaded into clips engine Semi-Automatic Approach for GUI generation; facts invoke rules, which modify the GUI Adaptation of UI Based on Collected Info About User Activities Maximum Flexibility Maximum Simplicity Flawless Integration (into business layer code) of rule-based mechanism Rule–Based Language (clausal logic) Declarative Language Binds logic with rules Form: H B where H is rule head and B is rule body GUI exists in specially designed table set in DB Converts descriptions into hierarchical structure of objects, which define graphical element appearance Objects consist of Forms, Groups, Controls Rules modify GUI definition facts, leading to new GUI Web Server Application in Java Financial Application Hierarchical Object Structure defines GUI layout Modified facts converted back to the internal Java class objects and are delivered to the renderer for building the GUI 3 INPUTS: Interface Specification Device Model User Model (user traces) User determined during login process Place frequently desired widgets in convenient locations for users to access them Rarely used features should be removed from the common workspace The term trail refers to “coherent” sequences of elements manipulated by the user (set) A trail ends when the user switches to another frame or selects another instrument When application accumulates enough trace info, it can be used in adaption rules RBUI requires greater up front time investment for long term dividends and flexibility. Rule-based approach is an easily extendable framework – just add new rules. Component reuse w/single add – changes reflect in all hierarchies. Testing is easier and less time consuming IUI features – handles user responses Must work with empty Knowledge Base Automatically Generating UI (Gajos, Weld) - Interface design assumptions about user’s environment. “In contrast to these approaches, we argue that interfaces should instead be personalized to better suit the particular contexts of individual users. We argue that automatic personalized interface generation is a feasible and scalable solution to this challenge. We present our Supple system, which can automatically generate interfaces adapted to a person's devices, tasks, preferences, and abilities.” Poorly written sections (bad grammar) Bounces from topic to topic CLIPS not defined CLIPS Definition Did not define “standard-approach version of application” – too vague. Advantages of proposed technique are “classified”