Generating User Interfaces From Formal Specifications of the





![UI Design Decision Classes [Larson 92] • the structural and functional decision class determine UI Design Decision Classes [Larson 92] • the structural and functional decision class determine](https://slidetodoc.com/presentation_image_h2/9ce8534aaba9ba5df8f3e3aec123da1f/image-6.jpg)
























- Slides: 30
Generating User Interfaces From Formal Specifications of the Application Bernhard Bauer Institut für Informatik Technische Universität München Germany Bernhard Bauer, TU München 1 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Overview • Introduction • UI Development: – Layers of a system with a UI – Possible Starting Points for Generation Process • Generation Steps • Example: An Intuitive Access to the Generation of Dynamics Specification • Conclusions Bernhard Bauer, TU München 2 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Introduction • user interface construction is a – time consuming – error prone and therefore – expensive task • but – individual software should be cheap – secure, since the whole interaction is via the UI • necessary – generation of UIs – " I tell you what, you work it out " Bernhard Bauer, TU München 3 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Three Layers of Systems with a UI • application interface (functional core) appointed functionality supported by the UI • dialogues (dynamics) all possible dialogues (layout-independent way) • presentation (layout) user is interacting with we start with the application Bernhard Bauer, TU München 4 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Possible Starting Points for UI Generation • informal specification of application – no machine support • implementation of application – to low level – to many design decisions • formal specification of application – computer supported analysation of the specifications – elucidating the problem and – consideration of correctness aspects of the obtained software. Bernhard Bauer, TU München 5 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
UI Design Decision Classes [Larson 92] • the structural and functional decision class determine the end users’ conceptual model (abstract data type), • the dialogue decision class determines the dialogue style (to be automated) and • the presentation and pragmatic decision class determines the refinement of the end users’ conceptual model and dialogue style (BOSS). Bernhard Bauer, TU München 6 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Architecture Formal Specification of Application Formal Specification of Dialogue-Styles FLUID Formal Specification of UI Dynamics BOSS Bernhard Bauer, TU München 7 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Architecture Formal Specification of Dialogue-Styles Formal Specification of Application FLUID Formal Specification of UI Dynamics BOSS Bernhard Bauer, TU München 8 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Algebraic Specifications An algebraic specification consists of • a signature = (S, C, F) with – a set of sort symbols S, – a set of constructor symbols C and – a set of function symbols F with parameter restrictions. • a set of axioms of the form t = r with terms t and r. add: • interface functions - to be supported by the UI • observable sorts - visible to the end-user Bernhard Bauer, TU München 9 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Example: ISDN-Telephone Application: usual IDSN-telephone Restrictions: • each telephone call is realized • telephone number is modelled by natural number • no switching between two participants Bernhard Bauer, TU München 10 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
spec ISDN-Application = enrich NAT by sorts Connection, CState, State obs-sorts Nat cons mk. State: Connection, Connection -> State, mt. Con: -> Connection, mk. Con: Nat, CState -> Connection, waiting, telephoning: -> CState opns call: Nat, x 1: State. pre. empty. Connections(x 1) = true -> State, second. Call: Nat, x 2: State. pre. single. Connections(x 2) = true -> State, conference: x 3: State. pre. double. Connections(x 3) = true -> State, end. Calls: State -> State, empty. Connections: State -> Bool, single. Connections: State -> Bool, double. Connections: State -> Bool interface functions call, second. Call, conference, end. Calls Bernhard Bauer, TU München 11 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
axioms empty. Connections(mk. State(mt. Con, mt. Con)) = true, empty. Connections(mk. State(mk. Con(nr, cs), c)) = false, single. Connections(mk. State(mk. Con(nr, cs), mt. Con)) = true, single. Connections(mk. State(mt. Con, c)) = false, single. Connections(mk. State(mk. Con(nr, cs), mk. Con(nr, cs))) = false, double. Connections(mk. State(mk. Con(nr, cs), mk. Con(nr, cs))) = true, double. Connections(mk. State(c, mt. Con)) = false, call(nr, s) = mk. State(mk. Con(nr, telephoning), mt. Con), second. Call(nr, call(nr 2, s)) = mk. State(mk. Con(nr 2, waiting), mk. Con(nr, telephoning)), conference(second. Call(nr, call(nr 2, s))) = mk. State(mk. Con(nr, telephoning), mk. Con(nr 2, telephoning)), end. Calls(s) = mk. State(mt. Con, mt. Con) endspec Bernhard Bauer, TU München 12 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
A Generation Process consists of • solving the parameter restrictions with theorem-provers, • constructing the dependency graphs, • instantiating the dependency graphs with the solutions of the parameter restrictions, • merging the instantiated dependency graphs, • converting the obtained graph into BOSS notation. Bernhard Bauer, TU München 13 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Solving the Parameter Restrictions To be solved: • call: empty. Connections(x 1) = true solution: x 1 = mk. State(mt. Con, mt. Con) • second. Call: single. Connections(x 2) = true solution: x 2 = mk. State(mk. Con(nr, telephoning), mt. Con) • conference: double. Connections(x 3) = true solution: x 2 = mk. State(mk. Con(nr, waiting), mk. Con(nr 2, telephoning)) Bernhard Bauer, TU München 14 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Construction of the Dependency Graph Bernhard Bauer, TU München 15 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Construction of the Dependency Graph Bernhard Bauer, TU München 16 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Construction of the Dependency Graph Bernhard Bauer, TU München 17 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Construction of the Dependency Graph Bernhard Bauer, TU München 18 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Instantiation of the Dependency Graph Bernhard Bauer, TU München 19 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Instantiation of the Dependency Graph Bernhard Bauer, TU München 20 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Instantiation of the Dependency Graph Bernhard Bauer, TU München 21 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Instantiation of the Dependency Graph Bernhard Bauer, TU München 22 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Derivation in the Dependency Graph Bernhard Bauer, TU München 23 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Derivation in the Dependency Graph Bernhard Bauer, TU München 24 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Merging the Dependency Graph Bernhard Bauer, TU München 25 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Converting in BOSS Notation Bernhard Bauer, TU München 26 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Part of FUSE System FUSE FLUID BOSS PLUG-IN Bernhard Bauer, TU München 27 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Conclusion • Advantages – – generation of the UI dynamics from the application UI and application development go hand in hand consideration of correctness aspects output for UI generator BOSS • Shortcomings – use of theorem provers – necessary: formal specification of the application – not yet implemented Bernhard Bauer, TU München 28 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Conclusion (continued) • Future research directions: – Embedding of the presented idea in OO-SE-Process (BON-approach, Java) – starting implementations – larger examples Bernhard Bauer, TU München 29 CADUI'96 - 5 -7 June 1996 - FUNDP Namur
Thank you for your attention! Bernhard Bauer, TU München 30 CADUI'96 - 5 -7 June 1996 - FUNDP Namur