Presentation is loading. Please wait.

Presentation is loading. Please wait.

Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces.

Similar presentations


Presentation on theme: "Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces."— Presentation transcript:

1 Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces

2 Overview Programming tools provide levels of services for programmers Programming tools provide levels of services for programmers Windowing systems as core support for separate and simultaneous user-system threads Windowing systems as core support for separate and simultaneous user-system threads Programming the application and control of dialogue Programming the application and control of dialogue Interaction toolkits bring programming closer to level of user perception Interaction toolkits bring programming closer to level of user perception User interface management systems help to control relationship between presentation and functionality of objects User interface management systems help to control relationship between presentation and functionality of objects

3 Introduction Up to now, our concern has been slanted away from concerns of the actual programmer. Up to now, our concern has been slanted away from concerns of the actual programmer. Advances in coding have elevated programming from hardware-specific to interaction technique-specific. Advances in coding have elevated programming from hardware-specific to interaction technique-specific. Layers of development tools Layers of development tools windowing systems windowing systems interaction toolkits interaction toolkits user interface management systems user interface management systems

4 Elements of windowing systems Device independence Device independence programming the abstract terminal programming the abstract terminal device drivers device drivers image models for output and (partially) input image models for output and (partially) input pixels pixels Graphical Kernel System (GKS) Graphical Kernel System (GKS) Programmers' Hierarchical Interface to Graphics (PHIGS) Programmers' Hierarchical Interface to Graphics (PHIGS) PostScript PostScript

5 Elements of windowing systems Resource sharing Resource sharing achieving simultaneity of user tasks achieving simultaneity of user tasks window system supports independent processes window system supports independent processes isolation of individual applications isolation of individual applications

6 The roles of a windowing system

7 Architectures of windowing systems 3 possible software architectures 3 possible software architectures all assume device driver is separate differ in how multiple application management is implemented all assume device driver is separate differ in how multiple application management is implemented 1. each application manages all processes everyone worries about synchronization reduces portability of applications 2. management role within kernel of operating system applications tied to operating system 3. management role as separate application maximum portability the client-server architecture

8 The client-server architecture

9 The X Window System architecture pixel imaging model with some pointing mechanism pixel imaging model with some pointing mechanism X protocol defines server-client communication X protocol defines server-client communication separate window manager client enforces policies for input/output: separate window manager client enforces policies for input/output: how to change input focus how to change input focus tiled vs. overlapping windows tiled vs. overlapping windows inter-client data transfer inter-client data transfer

10 Programming the application 2 programming paradigms 2 programming paradigms 1. read-evaluation loop 1. read-evaluation loop repeat repeat read-event(myevent) read-event(myevent) case myevent.type case myevent.type type_1: type_1: do type_1 processing do type_1 processing type_2: type_2: do type_2 processing do type_2 processing...... type_n: type_n: do type_n processing do type_n processing end case end case end repeat end repeat

11 Programming the application 2. notification-based 2. notification-based

12 Using toolkits Interaction objects Interaction objects input and output intrinsically linked input and output intrinsically linked toolkits provide this level of abstraction toolkits provide this level of abstraction programming with interaction objects (or techniques, widgets, gadgets) programming with interaction objects (or techniques, widgets, gadgets) promote consistency and generalisability through similar look and feel promote consistency and generalisability through similar look and feel amenable to object-oriented programming amenable to object-oriented programming

13 User Interface Management Systems UIMS add another level above toolkits UIMS add another level above toolkits toolkits too difficult for non-programmers toolkits too difficult for non-programmers alternatively: alternatively: UI development system (UIDS) UI development system (UIDS) UI development environment (UIDE) UI development environment (UIDE)

14 User Interface Management Systems As a conceptual architecture As a conceptual architecture provides separation between application provides separation between application semantics and presentation, improving: semantics and presentation, improving: portability portability reusability reusability multiple interfaces multiple interfaces customisability customisability identifies roles (e.g., Seeheim) identifies roles (e.g., Seeheim) presentation component presentation component dialogue control dialogue control application interface model application interface model

15 Implementation of UIMS Techniques for dialogue controller Techniques for dialogue controller menu networks menu networks grammar notations grammar notations state transition diagrams state transition diagrams event languages event languages declarative languages declarative languages constraints constraints graphical specification graphical specification

16 Implementation of UIMS The drift of dialogue control The drift of dialogue control internal control (e.g., read-evaluation loop) internal control (e.g., read-evaluation loop) external control (independent of application semantics or presentation) external control (independent of application semantics or presentation) presentation control (e.g., graphical specification) presentation control (e.g., graphical specification)

17 Summary Levels of programming support tools Levels of programming support tools Windowing systems Windowing systems device independence device independence multiple tasks multiple tasks

18 Summary Paradigms for programming the application Paradigms for programming the application read-evaluation loop read-evaluation loop notification-based notification-based Toolkits Toolkits programming interaction objects programming interaction objects UIMS UIMS conceptual architectures for separation conceptual architectures for separation techniques for expressing dialogue techniques for expressing dialogue


Download ppt "Implementation support CSCI324, IACT403, IACT 931, MCS9324 Human Computer Interfaces."

Similar presentations


Ads by Google