978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer...

10

Transcript of 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer...

Page 1: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht
Page 2: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Andre Weinand

Objektorientierte Architektur fiir grafische BenutzungsobedGachen Realisierung der portablen Fenstersystemschnittstelle von ET ++

Mit 10 1 Abbildungen

Springer-Verlag Berlin Heidelberg New York London Paris Tokyo Hong Kong Barcelona Budapest

Page 3: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Dr. Andre Weinand RothstraBe 48 CH-8057 ZUrich

Dieses Buch ist ein Abdruck einer Dissertation der philosophischen Fakultiit II der Universitiit ZUrich.

Text, Abbildungen und Programme wurden mit groBter Sorgfalt erarbeitet. Verlag und Autor konnen jedoch fiir eventuell verbliebene fehlerhafte Angaben und deren Folgen weder eine juristische Verantwortung noch irgendeine Haftung iibemehmen.

Eingetragene Warenzeichen: PostScript, Display PostScript: Adobe Systems, Inc .. Macintosh, QuickDraw, LaserWriter, MacApp: Apple Computer, Inc .. UNIX, OPEN LOOK: AT&T Information Systems· Andrew: Carnegie Mellon University· MicroVax, VaxStation: Digital Equipment Corporation· Interpress: Imagen· X Window System: Massachusetts Institute of Technology· MS-Windows, MSIDOS: Microsoft Corporation' OSFlMotif: Open Software Foundation· 01 Toolkit: Solbourne Computer, Inc .. NeWS, NDE, XII , NeWS, Sun View, Sun Windows, SunOS: Sun Microsystems; Inc .. Smalltalk, Alto, Dorado, DLisp, Star, Cedar, Tajo: Xerox Corporation· XVT: Advanced Programming Institute, Ltd.

ISBN-13:978-3-540-56010-4 DOl: 10.1007/978-3-642-77839-1

e-ISBN-\3 :978-3-642-77839-1

Dieses Werk ist urheberrechtlich geschiitzt. Die dadurch begrundeten Rechte, insbesondere die der Obersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der Funksendung, der Mikroverfil­mung oder der Vervielfliltigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfliltigung dieses Werkes oder von Teilen die­ses Werkes ist auch im Einzelfall nur in den Grenzen der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9. September 1965 in der jeweils geltenden Fassung zulassig. Sie ist grundslitzlich vergUtungsptlichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsge­setzes.

© Springer-Verlag Berlin Heidelberg 1992

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, daB solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wlire und daher von jederrnann benutzt werden dUrften.

3313140 - 5 4 3 2 1 0 - Gedruckt auf siiurefreiem Papier

Page 4: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Vorwort

Seit der Einfiihrung und weiten Verbreitung leistungsfahiger Personalcomputer und Arbeitsplatz­rechner erfreuen sich graflSChe Benutzungsoberfliichen sowohl bei Endbenutzem als auch bei Softwareentwicklem einer stark wachsenden Beliebtheit Der Endbenutzer schiitzt die einfache und intuitive Bedienung; der Entwickler fmdet ein reiches Betiitigungsfeld fUr die kreative Umsetzung neuer Ideen, mu8 allerdings gleichzeitig einen relativen hohen Entwicklungsaufwand in Kauf nehmen.

Fenstersysteme und darauf aufbauende Bibliotheken (Toolkits) bilden die softwaretechnische Grundlage graflSCher Benutzungsoberfliichen. Obwohl viele der in diesem Bereich entstandenen Systeme bereits eine deutliche Entwicklungsvereinfachnung bewirken k6nnen, zeigt sich immer mehr, daB Anforderungen nach Erweiterbarkeit, Wiederverwendbarkeit und Wartbarkeit nur durch die Anwendung objektorientierter Klassenbibliotheken und Application-Frameworks erfUllt werden kannen.

Das vorliegende Buch gibt einen Dberblick fiber die Architektur der yom Autor mitentwickelten Klassenbibliothek ET ++ und beschreibt in seinem zentralen Kapitel ausflihrlich die Entwurfs­fiberlegungen, die zur Realisierung einer portablen und effizienten Schnittstelle zum Fenster­system fiihrten. Au8erdem wird nachgewiesen, daB viele der bisher in Fenstersystemen reali­sierten Mechanismen ohne Mehraufwand in objektorientierte Toolkits verlagert werden kannen und damit sehr viel flexibler erweiterbar werden. Dies bestiitigt die im Buch aufgestellte These, daB bei der bisherigen Entwicklung von Fenstersystemen und Toolkits die darauf aufbauenden objektorientierten Softwareschichten zu wenig berucksichtigt wurden und deshalb die in vielen existierenden Fenstersystemen vorgefundene Funktionalitiit zu gro8, das Fenstersystem zu kom­plex und hiiufig zu ineffizient ist

Page 5: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

VI Vorwort

Aufbau und Lesehinweise Das vorliegende Buch ist in sechs Kapitel gegliedert: Nach einer Einf"dhrung werden im zweiten Kapitel sowohl die Grundlagen als auch der aktuelle Stand der Technik in von konkreten Systemen abstrahierender Weise dargestellt.

1m 3. Kapitel wird anhand einiger weniger, aber reprlisentativer Fensterumgebungen gezeigt, wie die abstrakt dargestellten Konzepte in konkreten Systemen umgesetzt werden. Hierdurch wird eine Diskussions- und Vergleichsgrundlage fi.ir die spiiteren Ausfuhrungen zu ET ++ geschaffen.

Das 4. Kapitel beschreibt die Struktur und die fiir das Thema relevanten Konzepte des Applica­tion-Frameworks ET ++.

Entwurf und Implementierung der fenstersystemrelevanten Aspekte von ET ++ werden im 5. Kapitel dargestellt und diskutiert. Ieweils ausgehend von einer einfiihrenden Darstellung eines Teilaspekts wird die in ET ++ verwendete Implementierung gezeigt und mit den in Kapitel 3 eingefiihrten Ansiitzen verglichen und bewertet.

Das Kapitel 6 faBt in kritischer Weise die wichtigsten Ergebnisse zusammen und nennt Konse­quenzen fUr die Entwicklung von Fenstersystemen und Klassenbibliotheken.

Wie in jeder Arbeit im Bereich Informatik stellt sich auch hier wieder das Problem, ob aus dem Englischen stammende Fachbegriffe grundsiitzlich ins Deutsche ubersetzt werden sollen. Es wird hier ein gemiiBigter Ansatz gewiihlt, d.h. es werden nur solche Begriffe ins Deutsche ubersetzt, die eine natiirliche und unmittelbar eingangige Entsprechung besitzen. Bei ihrer ersten Verwen­dung wird jeweils der englische Originalbegriff in Klammem angefiihrt. Englische Begriffe ohne eine etablierte deutsche Entsprechung werden nicht ubersetzt, sondem stattdessen als solche ubemommen und nach der deutschen Regel groB geschrieben (z.B. Application-Framework).

Kliirung bedarf auch die Verwendung des Begriffs "Benutzer". 1m Rahmen dieses Buches wird unter ,,Benutzer" immer die Endbenutzerin bzw. der Endbenutzer einer interaktiven grafischen Applikation verstanden. Die Benutzerin bzw. der Benutzer eines Toolkits oder Application­Frameworks wird hingegen Entwickler genannt.

Yom Text isolierte Programmfragmente sowie im Text benutzte Namen von konkreten Varia­bIen, Prozeduren und Klassen werden ausschlieBlich im englischen Original benutzt und durch einen serifenlosen Zeichensatz hervorgehoben (Optima). Fur Kommentare innerhalb von Programmteilen oder fUr "Pseudocode" wird der kursive Schnitt von Optima verwendet. Begriffe, die im Index aufgenommen wurden, werden kursiv hervorgehoben.

VerfUgbarkeit von ET ++ Die jeweils aktuelle Version von ET++ kann als Public-Domain-Software durch "Anonymous­File-Transfer" lftp) von der Adresse iam.unibe.ch (130.92.64.10) bezogen werden.

Das vollstiindige ET ++-System umfaBt neben Klassenbibliothek und Application-Framework ca. 20 mit ET++ entwickelte Werkzeuge und Beispielapplikationen und eine umfangreiche Doku­mentation. ET++ liiuft zur Zeit unter UNIX auf Sun-3- und Sun-4-Architekturen (Sparc), IBM RS6000, DECstation, DEC Microvax, Sony-NEWS und Apollo. Die nichtgrafischen Teile der Klassenbibliothek stehen auch unter MS/DOS zur Verfdgung.

Page 6: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Vorwort VII

Danksagung Die vorliegende Arheit entstand unter der Leitung von Prof. Dr. L. Richter und Prof. Dr. K. Bau­knecht wiihrend meiner Tatigkeit am Institut fUr Informatik der Universitat Ziirich. Ich machte heiden Referenten fiir ihre Unterstiitzung und konstruktive Kritik danken. Prof. Dr. R. Marty danke ich dafiir, daB er mir die Maglichkeit gegeben hat, ET ++ am Informatics Laboratory der Schweizerischen Bankgesellschaft (UBILAB) weiterentwickeln und praktisch einsetzen zu kannen.

Besonderer Dank gebiihrt Erich Gamma, ohne dessen Mitwirkung nnd stiindige Diskussions­bereitschaft ET ++ nicht moglich gewesen ware. Ferner danke ich meinen Kollegen Walter Bischofberger, Bruno Schaffer, Duri Schmidt und Peter Schnorf fiir ihre Hinweise und kritischen Bemerkungen.

Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht und Korrektur der Arheit iibernahm, sondern deren Verstandnis und Unterstiitzung mich motivieren konnte, auch die letzte Hiirde zu nehmen.

Ziirich, im J uli 1992 Andre Weinand

Page 7: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Inhaltsverzeichnis

1 Einfuhrung 1 1.1 Interaktive grafische Benutzungsoberfl~chen

1.2 Das Projekt ET ++ 3 1.3 Zielsetzung 4

2 Grundlagen und Konzepte der Fenstertechnik 7 2.1 Komponenten von Fensterumgebungen 7

2.2 Hardware 9 2.3 Das Basisfenstersystem 10

2.3.1 Koordinatensysteme und Fenster 10 2.3.2 Fensteranordnung 11 2.3.3 Fensterverwaltung 12 2.3.4 Fensterrekonstruktion 14 2.3.5 Verwaltung der Farbtabelle 16 2.3.6 Eingabe 17

2.4 Grafikbibliothek und Darstellungsmodell 18 2.4.1 Die BitBIT-Operation 18 2.4.2 Die Stencil-Operation 20 2.4.3 Das Stencil/Paint-Modell 21 2.4.4 Zeichendarstellung 22

2.5 Fenstermanager 23 2.6 Desktop-Manager 24 2.7 Architektur von Fenstersystemen 25

2.7.1 Kernbasierte Systeme 26 2.7.2 Klientenbasierte Systeme 26 2.7.3 Serverbasierte Systeme 27

2.8 Toolkits und Programmierschnittstellen 29 2.8.1 Eingabemodelle 31 2.8.2 Subroutinen- und Modulbibliotheken 34 2.8.3 Programmgeriiste 35 2.8.4 Invertierte Programmierung 35 2.8.5 User-Interface-Management-Systeme (UIMS) 37 2.8.6 Objektorientierte Toolkit-Ansatze 38 2.8.7 Frameworks 40

Page 8: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

X Inhaltsverzeichnis

3 Beispiele existierender Fensterumgebungen 43 3.1 Smalltalk 43

3.2 Dlisp 45 3.3 Macintosh 46

3.3.1 Struktur der Macintosh-Fensterumgebung 47 3.3.2 Das DarstelJungsmodelJ QuickDraw 47 3.3.3 Fenstersystem und Fenstermanager 48 3.3.4 Ereignisbehandlung 48 3.3.5 ProgrammierschnittstelJen 49

3.4 SunWindows 50 3.4.1 Der Sun View-Toolkit 52 3.4.2 Bewertung 54

3.5 Andrew 55 3.6 X-Windows 56

3.6.1 Obersicht 57 3.6.2 Komponenten 58 3.6.3 Interne Struktur des Xll-Servers 61 3.6.4 X-Displays 62 3.6.5 X-Toolkits 63

3.7 NeWS 64 3.7.1 Struktur des NeWS-Systems 65 3.7.2 PostScript-Erweitenmgen 66 3.7.3 Der NeWS-Toolkit 68 3.7.4 Der kombinierte Xll/NeWS-Server (Open Windows) 68

4 Das Application-Framework ET ++ 71 4.1 Einleitung 71

4.1.1 Beispiele fur ET ++-Applikationen 72 4.1.2 Die Implementierungssprache C++ 74 4.1.3 Architektur von ET ++ 75

4.2 Fundament 77 4.3 Systemschnittstelle 79

4.4 Nichtgrafische Grundbausteine 80 4.4.1 Container-Klassen 80 4.4.2 Textklassen 82

4.5 Grafisches Modell 82 4.5.1 Grafische Ausgabeoperationen 83 4.5.2 Das Ink-Konzept 84 4.5.3 Fonts 84

4.6 Interaktionselemente 85 4.6.1 Einfache Interaktionskomponenten 86 4.6.2 Zusammengesetzte Interaktionskomponenten 89 4.6.3 Komplexe Interaktionselemente 91

4.7 Application-Framework-Klassen 96 4.7.1 nHello WorldH 100

4.8 Programmierumgebung 102

Page 9: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

Inhaltsverzeichnis XI

5 Entwurfs- und Implementierungsaspekte 105 5.1 Portabil itatsaspekte 105

5.1.1 PortabilWit auf Stufe Toolkit 107 5.1.2 Portabilitat auf Stufe Hardware 108 5.1.3 Portabilitat auf Stufe Fenstersystem 108

5.2 EinfluB der Fenstersystemarchitektur 109 5.2.1 Offene Fenstersysteme 110 5.2.2 Abgeschlossene Fenstersysteme 110 5.2.3 Erweiterbare serverbasierte Fenstersysteme 111

5.3 Architektur der Portabilitiitsschicht 113 5.3. 1 Objektorientierte Modellierung 114 5.3.2 Schnittstellenaspekte der Portabilitatsklassen 116 5.3.3 Erweiterbarkeit durch Toolkit und Applikation 119

5.4 Grafikmodell 120 5.4.1 Das Stencil/Paint-Modell von ET ++ 122 5.4.2 Koordinaten und Koordinatensystem 129 5.4.3 Fonts 130 5.4.4 Textausgabe 132

5.5 Fenster in ET ++ 134 5.5.1 Probleme herkommlicher Fenstersysteme 134 5.5.2 ET++-LOsungsansatz 138

5.6 Layout-Behandlung 140 5.7 Bildschirmaufdatierung 143

5.7. 1 Zeichnen 144 5.7.2 Invalidieren 147 5.7.3 Ausscheiden iiberfliissiger Grafikoperationen 151 5.7.4 Double-Buffering 152 5.7.5 Animation 153

5.8 Ereignisbehandlung 157 5.8.1 Eingabeverarbeitung der VObject-Hierarchie 160 5.8.2 Probleme der invertierten Programmstruktur 165 5.8.3 Darstellung des Ereignisflusses im Objektstruktur-Browser 166 5.8.4 Mechanismen zum blockierenden Lesen 167

5.9 Der ET ++-Fenstermanager 171 5.10 Desktop-Manager-UnterstUtzung 173 5.11 Portierungserfahrungen 176

5.11.1 Sun Windows 176 5.11.2 Sun Windows-Server 176 5.11.3 X-Windows 178 5.11.4 NeWS 178

5.12 Problembereiche 180 5.12.1 Look-and-Feel-Unvertraglichkeiten 180 5.12.2 Fehlendes Ressourcenkonzept 180 5.12.3 Applikationsgrol5e 181

Page 10: 978-3-540-56010-4 Book PrintPDF - rd.springer.com978-3-642-77839-1/1.pdf · Mein ganz besonderer Dank geht an meine Partnerin Anna Schlosser, die nicht nur die kritische Durchsicht

XII Inhaltsverzeichnis

6 Zusammenfassung und Ausblick 185 6.1 Zusammenfassung 185 6.2 Konsequenzen 186 6.3 Ausblick 188

Literaturverzeichnis 189

Sachverzeichnis 199