|M.Sc Student||Asaf Strassberg|
|Subject||Design and Implementation of a Universal User Interface|
|Department||Department of Electrical Engineering||Supervisor||Professor Emeritus Rom Raphael|
|Full Thesis text|
Human beings are interacting with Internet services through multiple user interfaces, driving developers to build different applications for a single service for different platforms. In the past decade, many new platforms (e.g. Smartphones) and new user interfaces (e.g. Touch screens) were introduced.
This richness creates some problems for programmers and application designers, because they must learn different programming languages and maintain multiple source code families to deploy interfaces to one information system on multiple platforms.
There is a need for a Universal User Interface that can translate any service to a different programming language (an Abstract Language) that every user on any platform can understand and interact with. One known abstract language is HTML; however HTML doesn’t provide a solution to all platforms, specifically non-graphical platforms.
Recently, Freedman et al. described a new abstract language for Human-Computer Interaction. They focused on a user interface application for textual dataflow, namely Web forms. The language they developed provides user interface developers with an efficient way to generate cheaper and better user interface products. The main idea is to translate an internet service to the defined language on a backend component (i.e. a Translator) and then to translate it again to native code on the client platforms using existing user interface programming frameworks. However, their research focused on the language uniqueness and platform types, not on the whole system architecture or implementation. In this work, we used their language and described a complete universal user interface system, with design patterns and implementation examples. The work focuses on:
- High-level System design and Low-level architecture of the system (definition of the main modules, protocols and data structures).
- Modularization across user interfaces - some guidelines are needed for the front end building blocks, while using user interface view abstractions and correct design patterns, e.g. parsing the abstract language representation, displaying the text to the user, receiving the results.
- Implementation examples - implementing the above architecture on a few popular UIs with different characteristics, such as Web user interface, Command Line interface and Email user interface. These interfaces differ in their graphical capabilities, programing language and the location of the implementation (local native implementation vs server side implementation).
This work is a starting point to building a complete universal user interface system based on the language described above.