Vorwort | 6 |
Inhaltsverzeichnis | 7 |
1 Rechnerarchitektur | 11 |
1.1 Rechneraufbau: die Hardware | 11 |
1.1.1 Die Eingabe | 12 |
1.1.1 Die Ausgabe: Rastergrafik und Skalierung | 16 |
1.1.2 Beispiel UNIX | 36 |
1.1.3 Beispiel Windows NT | 38 |
1.2 Die Architektur eines Rechners | 18 |
1.2.1 Busse | 18 |
1.2.2 Buskontrolle | 20 |
1.2.3 PC-Architektur | 22 |
1.3 Maschinensprache und Prozessorstruktur | 23 |
1.3.1 Ein einfaches Befehlsmodell | 23 |
1.3.2 Eine Prozessorgrundstruktur | 25 |
1.4 Prozessoren mit komplexem Befehlssatz (CISC) | 26 |
1.4.1 Charakteristik von CISC | 28 |
1.4.2 Prozessoren mit reduziertem Befehlssatz (RISC) | 29 |
1.5 Rechnerbetrieb: Die Software | 31 |
1.5.1 Das Betriebssystem | 34 |
1.5.2 Schnittstellen und virtuelle Maschinen | 40 |
1.5.3 Software-Hardware-Migration | 43 |
1.6 Ein- und Ausgabegeräte | 44 |
1.6.1 Beispiel UNIX: I/O-Verarbeitungsschichten | 46 |
1.6.2 Beispiel Windows NT: I/O-Verarbeitungsschichten | 48 |
1.6.3 Der Zugriff auf Ein- und Ausgabe | 49 |
1.6.4 Wahlfreier Zugriff: Plattenspeicher | 51 |
1.6.5 Serielle Geräte | 54 |
1.6.6 Multiple Plattenspeicher: RAIDs | 55 |
1.6.7 Interleaving | 61 |
1.6.8 Pufferung | 63 |
1.6.9 Synchrone und asynchrone Ein- und Ausgabe | 65 |
1.7 Die Energieverwaltung | 65 |
2 Netzwerkarchitektur | 69 |
2.1 Das Schichtenmodell für Netzwerkprotokolle | 71 |
2.1.1 Beispiel UNIX Kommunikationsschichten | 74 |
2.1.2 Beispiel Windows NT | 75 |
2.1.3 Erweiterungen | 76 |
2.2 Namensgebung im Netz | 77 |
2.2.1 Namen im weltweiten Netz | 78 |
2.2.2 Namen im regionalen Netz | 80 |
2.2.3 Namen im lokalen Netz | 81 |
2.3 Kommunikationsanschlüsse | 84 |
2.3.1 Ports | 84 |
2.3.2 Sockets | 86 |
2.3.3 Named Pipes | 87 |
2.3.4 Mailboxdienste | 88 |
2.3.5 Remote Procedure Calls | 89 |
2.4 Telefonieren über Internet: Voice over IP | 93 |
2.4.1 Technische Konzepte von VoiceOverIP | 94 |
2.4.2 Nutzungskonzepte von VoiceOverIP | 97 |
2.4.3 Sicherheitsaspekte | 99 |
3 Internet Architekturen, Web-Services und Sicherheit | 101 |
3.1 Funktionsarchitekturen | 101 |
3.1.1 Client-Server Systeme | 101 |
3.1.2 Verteilte Betriebssysteme | 102 |
3.2 Dateisysteme im Netz | 104 |
3.2.1 Zugriffssemantik | 104 |
3.2.2 Zustandsbehaftete und zustandslose Server | 106 |
3.2.3 Die Cacheproblematik | 107 |
3.2.4 Implementationskonzepte | 110 |
3.2.5 Sicherheitskonzepte | 113 |
3.3 Massenspeicher im Netz | 115 |
3.4 Arbeitsmodelle im Netz | 118 |
3.4.1 Jobmanagement | 118 |
3.4.2 Netzcomputer | 119 |
3.4.3 Schattenserver | 122 |
3.5 Standard-Dienste im Netz | 126 |
3.6 Middleware | 128 |
3.6.1 Transparenz und IT-Konsolidierung durch Middleware | 129 |
3.6.2 Vermittelnde Dienste | 130 |
3.6.3 Universal Plug-and-Play | 133 |
3.7 Sicherheitsmechanismen und Konzepte im Netz | 133 |
3.7.1 Vorgeschichte | 134 |
3.7.2 Eindringen über das Netz | 134 |
3.7.3 Übernahme der Kontrolle auf einem Rechner | 138 |
3.7.4 Fire-wall-Konfigurationen | 145 |
3.7.5 Zugriffslisten und Fähigkeiten | 146 |
3.7.6 Die Kerberos-Authentifizierung | 147 |
4 Datenbanksysteme | 153 |
4.1 Wozu Datenbanken? | 154 |
4.2 Übersicht Datenbanksysteme | 156 |
4.3 Datenabstraktion (Data Abstraction) | 158 |
4.4 Die Architektur eines DBMS | 159 |
4.5 Data Warehouse | 162 |
5 Programmiersprachen und Paradigmen | 165 |
5.1 Natürliche Sprachen | 167 |
5.2 Imperative Sprachen | 169 |
5.3 Objektorientierte Sprachen | 171 |
5.3.1 Das Kapseln von Programmteilen | 171 |
5.3.2 Objekte und Vererbung | 173 |
5.3.3 Die Philosophie objektorientierter Klassen | 175 |
5.3.4 Objektorientierte Programmentwicklung | 176 |
5.4 Funktionale Sprachen | 181 |
5.4.1 Nebenwirkungsfreie Funktionen | 181 |
5.4.2 Sprachkonstrukte | 184 |
5.4.3 Sprachenübersicht | 186 |
5.5 Datenflusssprachen | 189 |
5.5.1 Das Kontrollflussprinzip | 189 |
5.5.2 Das Datenflussprinzip | 190 |
5.5.3 Datenflussrechner und Datenflusssprachen | 191 |
5.6 Logische Sprachen | 196 |
5.6.1 Aussagenlogik | 196 |
5.6.2 Hornformeln | 198 |
5.6.3 Klauseln | 199 |
5.6.4 Resolution | 200 |
5.6.5 Prädikatenlogik | 201 |
5.6.6 Beispiel: Affe-Banane-Problem | 202 |
5.6.7 Logikprogramme | 204 |
5.7 Visuelle Sprachen | 205 |
5.7.1 Visualisierung von Daten | 206 |
5.7.2 Visualisierung von Programmen | 206 |
5.7.3 Visuelle Spezifikation | 207 |
5.7.4 Visuelle Programmierung | 208 |
5.7.5 Visuelles Training | 211 |
5.7.6 Diskussion | 212 |
5.8 Grundbegriffe zur Übersetzung von Programmiersprachen | 214 |
6 Softwareentwicklung | 217 |
6.1 Das klassische Phasenmodell | 217 |
6.1.1 Der Zeitplan | 219 |
6.1.2 Phasen und Netzplantechnik | 220 |
6.1.3 Randbedingungen | 223 |
6.1.4 Das Pflichtenheft | 224 |
6.1.5 Der Programmentwurf | 225 |
6.1.6 Der Systemtest | 232 |
6.1.7 Die Einführung der Software | 234 |
6.1.8 Dokumentation | 235 |
6.1.9 Qualitätsmanagement | 236 |
6.1.10 Der menschliche Faktor | 239 |
6.2 Modifizierte Phasenmodelle | 241 |
6.2.1 Das Wasserfallmodell | 241 |
6.2.2 Objektorientierte Entwicklung | 242 |
6.2.3 Rapid Prototyping und Spiralenmodell | 244 |
6.3 Das V-Modell | 247 |
6.3.1 Die drei Schichten der Standardisierung | 248 |
6.3.2 Anwendung des V-Modells | 249 |
6.3.3 Vorteile des V-Modells | 250 |
6.4 Selbstorganisierende Projektentwicklung | 252 |
6.4.1 Gruppenstrukturen | 252 |
6.4.2 Projektentwicklung im Plenum | 254 |
6.5 CASE Werkzeuge zur Projektentwicklung | 256 |
6.5.1 CASE Grundtechniken | 257 |
6.5.2 CASE Architektur | 258 |
6.6 Risikomanagement | 260 |
Abbildungsverzeichnis | 263 |
Index | 267 |