Inhaltsverzeichnis

Werbung
Inhaltsverzeichnis
Modellunternehmen . . . . . . . . . . . . . . . . . . . . . . . .
1
1.1
1.2
1.2.1
1.2.2
1.2.3
1.2.4
1.2.5
1.3
1.3.1
1.3.2
1.3.3
1.3.4
1.4
1.4.1
1.4.2
1.5
2
2.1
2.1.1
2.1.2
2.1.3
2.1.3.1
2.1.3.2
2.1.3.3
2.1.4
2.1.4.1
2.1.4.2
2.2
2.2.1
2.2.2
8
Betriebswirtschaftliche Anwendungen
Geschäftsprozesse . . . . . . . . . . . . . . . . . .
Abbildung von Geschäftsprozessen in
Computersystemen . . . . . . . . . . . . . . . . .
Automatisierung einzelner
Prozessschritte . . . . . . . . . . . . . . . . . . . .
Integration als Forderung des
Managements . . . . . . . . . . . . . . . . . . . . .
Schaffung integrierter Anwendungssysteme . . . . . . . . . . . . . . . . . . . . . . . . . .
Integration von Anwendungssystemen . . . . . . . . . . . . . . . . . . . . . . . . .
Integration über Unternehmensgrenzen
hinweg . . . . . . . . . . . . . . . . . . . . . . . . . .
Softwaretechnische Realisierung . . . . . .
Business Objects . . . . . . . . . . . . . . . . . . .
Referenzmodelle oder Business
Frameworks . . . . . . . . . . . . . . . . . . . . . .
Ausgewählte betriebswirtschaftlichtechnische Standardanwendungen . . . . .
Softwarearchitektur . . . . . . . . . . . . . . . .
Softwaretools zur Modellierung
von Geschäftsprozessen . . . . . . . . . . . . .
ARIS -Modell . . . . . . . . . . . . . . . . . . . . .
SiSy-Tool . . . . . . . . . . . . . . . . . . . . . . . .
Konsequenzen für das Projekt
der Auszubildenden . . . . . . . . . . . . . . . .
18
21
22
23
25
27
30
31
31
33
33
34
36
36
38
39
2.2.2.1
2.2.2.2
2.2.2.3
2.2.2.4
2.2.2.5
2.2.3
2.2.3.1
2.2.3.2
2.2.3.3
2.2.3.4
2.2.4
2.2.4.1
2.2.4.2
2.2.4.3
2.2.4.4
2.2.4.5
2.2.4.6
2.3
2.3.1
2.3.1.1
2.3.1.2
2.3.1.3
2.3.1.4
2.3.1.5
2.3.2
2.3.2.1
2.3.2.2
2.3.2.3
2.3.2.4
2.3.2.5
Entwicklung von Anwendungssoftware
Software als Produkt . . . . . . . . . . . . . . . .
Was ist Software? . . . . . . . . . . . . . . . . . .
Software in der Hand des Anwenders . . .
Systematik der Software . . . . . . . . . . . . .
System- oder Anwendungssoftware . . . .
Standard- oder Individualsoftware . . . . .
Vergütung der Softwareentwicklungsleistungen . . . . . . . . . . . . . . . . . . . . . . . .
Softwarequalität . . . . . . . . . . . . . . . . . . .
Qualitätsmerkmale nach
ISO/IEC 9126 (DIN 66272) . . . . . . . . . .
Qualitätsmanagement . . . . . . . . . . . . . . .
Entwicklung von Softwareprodukten . . . . . . . . . . . . . . . . . . . . . . . .
Softwareklebenszyklus . . . . . . . . . . . . . .
Phasen der Softwareentwicklung . . . . . .
40
40
40
41
41
42
44
46
47
49
50
50
51
2.3.2.6
2.3.2.7
2.3.2.8
2.3.2.9
2.3.3
2.3.3.1
2.3.3.2
2.3.3.3
2.3.3.4
2.3.4
2.3.4.1
2.3.4.2
2.3.4.3
2.3.4.4
Analyse . . . . . . . . . . . . . . . . . . . . . . . . . .
Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . .
Implementierung . . . . . . . . . . . . . . . . . . .
Integration und Integrationstest . . . . . . .
Dokumentation . . . . . . . . . . . . . . . . . . . .
Softwaretechnologie . . . . . . . . . . . . . . . .
Prinzipien . . . . . . . . . . . . . . . . . . . . . . . .
Methoden . . . . . . . . . . . . . . . . . . . . . . . .
Verfahren . . . . . . . . . . . . . . . . . . . . . . . .
Werkzeuge . . . . . . . . . . . . . . . . . . . . . . .
Phasenmodelle . . . . . . . . . . . . . . . . . . . .
Trial and Errorr . . . . . . . . . . . . . . . . . . . . .
Wasserfallmodell . . . . . . . . . . . . . . . . . .
Prototyping . . . . . . . . . . . . . . . . . . . . . . .
Spiralmodell . . . . . . . . . . . . . . . . . . . . . .
V-Modell . . . . . . . . . . . . . . . . . . . . . . . . .
Extrem Programming (XP) . . . . . . . . . . .
Management von Softwareprojekten . . . . . . . . . . . . . . . . . . . . . . . . .
Grundbegriffe . . . . . . . . . . . . . . . . . . . . .
Projekt . . . . . . . . . . . . . . . . . . . . . . . . . . .
Vorgänge und Arbeitspakete . . . . . . . . . .
Vorgangsbeziehungen . . . . . . . . . . . . . . .
Ressourcen und Ressourcenplanung . . . . . . . . . . . . . . . . . . . . . . . . . .
Meilensteine . . . . . . . . . . . . . . . . . . . . . .
Team-Management . . . . . . . . . . . . . . . . .
Ziele und Zielkonflikte . . . . . . . . . . . . . .
Projektorganisation . . . . . . . . . . . . . . . . .
Team-Entwicklung . . . . . . . . . . . . . . . . .
Team-Konflikte . . . . . . . . . . . . . . . . . . . .
Aufwandsschätzung zu einzelnen
Vorgängen . . . . . . . . . . . . . . . . . . . . . . . .
Top-Down-Vorgehensweise . . . . . . . . . .
Bottom-Up-Vorgehensweise . . . . . . . . . .
Projektplanungssoftware . . . . . . . . . . . .
Netzpläne PERT/CPM . . . . . . . . . . . . . .
Projektdurchführung . . . . . . . . . . . . . . . .
Projektfortschrittskontrolle . . . . . . . . . . .
Basisplan und Planänderungen . . . . . . . .
Protokollierung des Aufwands . . . . . . . .
Auswertung und Berichte . . . . . . . . . . . .
Projektmanagement und
Prozessqualität . . . . . . . . . . . . . . . . . . . .
Reife der Organisation . . . . . . . . . . . . . .
Klassifikation nach CMMI . . . . . . . . . . .
Total Quality Management . . . . . . . . . . .
Zertifizierung nach ISO 9000 . . . . . . . . .
52
53
53
54
55
56
56
59
61
61
62
63
63
64
66
68
69
72
73
73
74
76
77
78
78
79
79
81
82
83
83
83
84
85
86
86
86
87
87
88
88
88
91
92
Inhaltsverzeichnis 3
3
3.1
3.1.1
3.1.2
3.1.3
3.2
3.2.1
3.2.1.1
3.2.1.2
3.2.2
3.2.3
3.2.3.1
3.2.3.2
3.2.4
3.2.4.1
3.2.4.2
3.2.5
3.3
3.3.1
3.3.2
3.3.2.1
3.3.2.2
3.3.2.3
3.3.3
3.4
3.4.1
3.4.1.1
3.4.1.2
3.4.1.3
3.4.1.4
3.4.1.5
3.4.2
3.4.3
4
4.1
4.1.1
4.1.2
4.1.3
4.1.4
4.2
4.2.1
4.2.2
4.2.3
Analyse und Entwurf
Projektvorbereitung . . . . . . . . . . . . . . . .
Kick-off-Meeting . . . . . . . . . . . . . . . . . .
Lastenheft . . . . . . . . . . . . . . . . . . . . . . . .
Projektplan . . . . . . . . . . . . . . . . . . . . . . .
Analyse . . . . . . . . . . . . . . . . . . . . . . . . . .
Systeme als Untersuchungsgegenstand
d ........................
Systembegriff . . . . . . . . . . . . . . . . . . . . .
Merkmale von Systemen . . . . . . . . . . . .
Systemanalyse . . . . . . . . . . . . . . . . . . . .
Vorbereitung der Systemanalyse . . . . . .
Vorgehensweise . . . . . . . . . . . . . . . . . . .
Qualitätsanforderungen . . . . . . . . . . . . .
Die Erfassung als erster Schritt
der Systemanalyse . . . . . . . . . . . . . . . . .
Gegenstand . . . . . . . . . . . . . . . . . . . . . . .
Erfassungstechniken . . . . . . . . . . . . . . . .
Die Analyse als zweiter Schritt
der Systemanalyse . . . . . . . . . . . . . . . . .
Entwurf . . . . . . . . . . . . . . . . . . . . . . . . . .
Modell . . . . . . . . . . . . . . . . . . . . . . . . . . .
Modellierung mit SiSy . . . . . . . . . . . . . .
Arbeitsweise mit SiSy . . . . . . . . . . . . . .
Entwurf von Prozess- und
Datenmodell . . . . . . . . . . . . . . . . . . . . . .
Funktionale Anforderungen . . . . . . . . . .
Testszenarien . . . . . . . . . . . . . . . . . . . . .
Pflichtenheft . . . . . . . . . . . . . . . . . . . . . .
Vorgehensweise nach dem
V-Modell XT . . . . . . . . . . . . . . . . . . . . .
Grundkonzept . . . . . . . . . . . . . . . . . . . . .
Vorgehensbausteine und Tailoring . . . . .
Projektdurchführungsstrategien . . . . . . .
Qualitätssicherung . . . . . . . . . . . . . . . . .
Zusammenfassung . . . . . . . . . . . . . . . . .
Pflichtenheft erstellen . . . . . . . . . . . . . . .
Abnahme des Pflichtenheftes durch
den Auftraggeber . . . . . . . . . . . . . . . . . .
94
94
96
100
102
103
103
105
106
107
107
108
109
109
110
112
114
114
114
115
116
116
116
117
118
119
121
123
124
124
125
135
Programmentwurf
Klassische Darstellungsmittel . . . . . . . .
Programmablaufplan (PAP) . . . . . . . . . .
Struktogramm . . . . . . . . . . . . . . . . . . . . .
Pseudocode . . . . . . . . . . . . . . . . . . . . . . .
Entscheidungstabellen . . . . . . . . . . . . . .
UML (Unified Modelling Language) . . .
Anwendungsfalldiagramm . . . . . . . . . . .
Klassendiagramm . . . . . . . . . . . . . . . . . .
Objektdiagramm . . . . . . . . . . . . . . . . . . .
4 Inhaltsverzeichnis
137
137
139
140
141
142
142
142
146
4.2.4
4.2.5
4.2.6
4.2.7
4.3
4.3.1
4.3.2
4.3.3
4.3.4
4.3.5
4.3.6
4.4
4.4.1
4.4.2
4.4.3
4.4.4
4.4.5
4.4.6
4.5
5
5.1
5.1.1
5.1.2
5.1.3
5.2
5.2.1
5.2.2
5.2.3
5.2.4
5.2.5
5.2.6
5.2.7
5.2.8
5.2.9
5.2.10
5.2.10.1
5.2.10.2
5.2.10.3
5.2.11
5.2.11.1
5.2.11.2
5.2.12
5.2.12.1
Sequenzdiagramm . . . . . . . . . . . . . . . . .
Kollaborationsdiagramm . . . . . . . . . . . .
Zustandsdiagramm . . . . . . . . . . . . . . . . .
Komponentendiagramm . . . . . . . . . . . . .
Programmiersprachen . . . . . . . . . . . . . . .
Einteilung der Programmiersprachen . . .
Erste Generation: Maschinensprachen . . . . . . . . . . . . . . . . . . . . . . . . .
Zweite Generation: Assemblersprachen . . . . . . . . . . . . . . . . . . . . . . . . .
Dritte Generation: Problemorientierte Sprachen . . . . . . . . . . . . . . . .
Vierte Generation: Deklarative
Sprachen . . . . . . . . . . . . . . . . . . . . . . . . .
Fünfte Generation: Künstliche
Intelligenz . . . . . . . . . . . . . . . . . . . . . . . .
Entwicklungswerkzeuge . . . . . . . . . . . . .
Editor . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interpreter . . . . . . . . . . . . . . . . . . . . . . . .
Compiler und Assembler . . . . . . . . . . . .
Debugger . . . . . . . . . . . . . . . . . . . . . . . .
Entwicklungsumgebung . . . . . . . . . . . . .
Standardbibliotheken . . . . . . . . . . . . . . .
Modellgetriebene
Softwareentwicklung (MDSD) . . . . . . . .
146
147
148
148
150
150
152
152
153
153
154
155
155
156
156
157
157
159
159
Programmierung in Java
Die Java-Idee . . . . . . . . . . . . . . . . . . . . .
Applikation . . . . . . . . . . . . . . . . . . . . . . .
Applet . . . . . . . . . . . . . . . . . . . . . . . . . . .
JavaScript . . . . . . . . . . . . . . . . . . . . . . . .
Grundlegende Sprachelemente
in Java . . . . . . . . . . . . . . . . . . . . . . . . . . .
Das erste Programm . . . . . . . . . . . . . . . .
Variablennamen oder Bezeichner . . . . . .
Reservierte Wörter . . . . . . . . . . . . . . . . .
Literale . . . . . . . . . . . . . . . . . . . . . . . . . .
Kommentare . . . . . . . . . . . . . . . . . . . . . .
Anweisungen und Anweisungsblöcke . .
Gültigkeitsbereich . . . . . . . . . . . . . . . . . .
Ausdrücke . . . . . . . . . . . . . . . . . . . . . . . .
Wertzuweisungen . . . . . . . . . . . . . . . . . .
Datentypen . . . . . . . . . . . . . . . . . . . . . . .
Numerische Datentypen . . . . . . . . . . . . .
Zeichen-Datentyp . . . . . . . . . . . . . . . . . .
Boolescher Datentyp . . . . . . . . . . . . . . .
Variablen . . . . . . . . . . . . . . . . . . . . . . . . .
Syntax der Variablendeklarationen . . . . .
Wertzuweisung an Variablen . . . . . . . . .
Operatoren . . . . . . . . . . . . . . . . . . . . . . .
Arithmetische Operatoren . . . . . . . . . . .
163
163
163
164
164
164
165
166
166
166
166
167
167
167
167
168
168
168
168
169
169
169
169
5.2.12.2
5.2.12.3
5.2.13
5.2.13.1
5.2.13.2
5.2.13.3
5.2.13.4
5.2.13.5
5.2.13.6
5.2.13.7
5.2.14
5.2.15
5.2.16
5.3
5.3.1
5.3.2
5.3.3
5.3.4
5.3.5
5.3.6
5.3.7
5.4
5.4.1
5.4.2
5.4.3
5.5
5.5.1
5.5.2
5.5.3
5.5.4
5.5.5
5.6.
5.6.1
5.6.2
5.6.3
5.6.4
5.6.5
6
6.1
6.1.1
6.1.1.1
6.1.1.2
6.1.1.3
Logische Operatoren . . . . . . . . . . . . . . .
Vergleichsoperatoren . . . . . . . . . . . . . . .
Kontrollstrukturen . . . . . . . . . . . . . . . . .
Folge (Sequenz) . . . . . . . . . . . . . . . . . . .
Bedingte Anweisung, einseitige
Auswahl . . . . . . . . . . . . . . . . . . . . . . . . .
Bedingte Anweisung, zweiseitige
Auswahl . . . . . . . . . . . . . . . . . . . . . . . . .
Bedingte Anweisung, mehrseitige
Auswahl . . . . . . . . . . . . . . . . . . . . . . . . .
Wiederholung mit vorausgehender
Bedingungsprüfung . . . . . . . . . . . . . . . .
Wiederholung mit nachfolgender
Bedingungsprüfung . . . . . . . . . . . . . . . .
Wiederholung mit Zähler . . . . . . . . . . . .
Ein- und Ausgabe an der Konsole . . . . .
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . .
Funktionen . . . . . . . . . . . . . . . . . . . . . . .
Objektorientierte Programmierung . . . . .
Von der Struktur zum Objekt . . . . . . . . .
Argumente für Objekte . . . . . . . . . . . . . .
Klassen . . . . . . . . . . . . . . . . . . . . . . . . . .
Konstruktoren . . . . . . . . . . . . . . . . . . . . .
Methoden . . . . . . . . . . . . . . . . . . . . . . . .
Klassenvariablen . . . . . . . . . . . . . . . . . . .
Vererbung . . . . . . . . . . . . . . . . . . . . . . . .
Programmierung mit Eclipse . . . . . . . . .
Terminologie . . . . . . . . . . . . . . . . . . . . . .
Arbeiten mit der Workbench . . . . . . . . . .
Erstes Projekt . . . . . . . . . . . . . . . . . . . . .
Auswahlmenü für den Webshop
(Azubi-Projekt) . . . . . . . . . . . . . . . . . . . .
Menüstruktur . . . . . . . . . . . . . . . . . . . . .
Visuelle Klasse mit Hauptmenü . . . . . . .
Startklasse . . . . . . . . . . . . . . . . . . . . . . . .
actionPerformed-Methoden . . . . . . . . . .
Visuelle Klassen mit Labels und
Buttons . . . . . . . . . . . . . . . . . . . . . . . . . .
Arbeiten mit dem UML-Editor . . . . . . . .
Anwendungsfalldiagramm . . . . . . . . . . .
Aktivitätsdiagramm . . . . . . . . . . . . . . . .
Klassendiagramm . . . . . . . . . . . . . . . . . .
Code-Generierung . . . . . . . . . . . . . . . . .
Reverse Engineering . . . . . . . . . . . . . . . .
170
170
170
171
171
6.1.2.1
6.1.2.2
6.1.2.3
6.2
172
6.2.1
172
6.2.2
6.2.2.1
6.2.2.2
6.2.2.3
6.2.2.4
173
174
174
175
176
176
177
177
178
179
179
180
180
181
181
181
182
184
186
186
186
187
188
189
190
191
194
197
200
202
Datenbankanwendung
Einführung . . . . . . . . . . . . . . . . . . . . . . .
Datenbanksysteme . . . . . . . . . . . . . . . . .
Konzeptionelles Schema . . . . . . . . . . . .
Internes Schema . . . . . . . . . . . . . . . . . . .
Externes Schema . . . . . . . . . . . . . . . . . .
6.1.2
203
203
204
204
205
6.2.3
6.2.3.1
6.2.3.2
6.2.3.3
6.2.3.4
6.2.3.5
6.2.4
6.2.4.1
6.2.4.2
6.2.4.3
6.2.4.4
6.2.4.5
6.2.4.6
6.2.4.7
6.2.4.8
6.3
6.3.1
6.3.1.1
6.3.1.2
6.3.1.3
6.3.1.4
6.3.2
6.3.3
6.4
6.4.1
6.4.2
6.4.3
6.4.4
6.4.4.1
6.4.4.2
6.4.5
6.4.5.1
Anwendungsformen von
Datenbanksystemen . . . . . . . . . . . . . . . .
Stand-alone-Datenbank . . . . . . . . . . . . .
File-Share-Datenbank . . . . . . . . . . . . . . .
Client-Server-Datenbank . . . . . . . . . . . .
Arbeiten mit einer relationalen
Datenbank . . . . . . . . . . . . . . . . . . . . . . . .
Relationale Datenbankmanagementsysteme . . . . . . . . . . . . . . . .
Normalisieren einer Tabelle . . . . . . . . . .
Erste Normalform (1NF) . . . . . . . . . . . .
Zweite Normalform (2NF) . . . . . . . . . . .
Dritte Normalform (3NF) . . . . . . . . . . . .
Nachteile einer extremen
Normalisierung . . . . . . . . . . . . . . . . . . . .
Begriffe der Datenmodellierung
und Datenbankmanipulation . . . . . . . . . .
Entität und Entitätstyp . . . . . . . . . . . . . .
Entitätsbeziehungen . . . . . . . . . . . . . . . .
Primärschlüssel . . . . . . . . . . . . . . . . . . . .
Redundanz, Mutation und Anomalie . . .
Referenzielle Integrität . . . . . . . . . . . . . .
Entity-Relationship-Diagramm
(ER-Diagramm) . . . . . . . . . . . . . . . . . . .
Entity (Objekt) . . . . . . . . . . . . . . . . . . . .
Attribute . . . . . . . . . . . . . . . . . . . . . . . . .
Abhängige (weak) Entitys . . . . . . . . . . .
Relation . . . . . . . . . . . . . . . . . . . . . . . . . .
Kardinalität . . . . . . . . . . . . . . . . . . . . . . .
Darstellung im vereinfachten
ER-Diagramm . . . . . . . . . . . . . . . . . . . . .
Fünf Schritte zum ER-Modell . . . . . . . .
Entity-Relationship-Diagramm
(ER-Diagramm) . . . . . . . . . . . . . . . . . . .
Arbeit mit MySQL . . . . . . . . . . . . . . . . .
Datentypen . . . . . . . . . . . . . . . . . . . . . . .
Zeichenketten . . . . . . . . . . . . . . . . . . . . .
Numerische Datentypen . . . . . . . . . . . . .
Datum und Zeit . . . . . . . . . . . . . . . . . . . .
Aufzählung . . . . . . . . . . . . . . . . . . . . . . .
Umsetzung vom ER-Diagramm
in Tabellen . . . . . . . . . . . . . . . . . . . . . . .
Zusammenfassung . . . . . . . . . . . . . . . . .
Datenbankzugriffe mit SQL . . . . . . . . . .
Kleine SQL-Geschichte . . . . . . . . . . . . .
SQL-Befehlsübersicht . . . . . . . . . . . . . .
Struktur von Tabellen erzeugen,
ändern und löschen . . . . . . . . . . . . . . . . .
Abfrageformulierung mit SQL . . . . . . . .
Projektion . . . . . . . . . . . . . . . . . . . . . . . .
Selektion . . . . . . . . . . . . . . . . . . . . . . . . .
Aggregatfunktionen und Gruppen . . . . .
Gruppenbildung in SQL-Anfragen . . . . .
205
206
206
207
207
207
210
214
214
215
216
216
216
216
216
216
217
217
217
217
219
219
220
221
221
222
222
222
222
223
223
224
225
226
228
228
228
229
231
231
232
233
234
Inhaltsverzeichnis 5
6.4.5.2
6.4.6
6.4.6.1
6.4.6.2
6.4.6.3
6.4.7
6.4.7.1
6.4.7.2
6.4.7.3
6.4.7.4
6.4.7.5
7
Auswahl von Gruppen . . . . . . . . . . . . . .
Unterabfragen (Subqueries) . . . . . . . . . .
Einzeilige Unterabfragen . . . . . . . . . . . .
Mehrzeilige Unterabfragen . . . . . . . . . . .
Unteranfragen mit dem IN-Operatorr . . . .
Verbund (JOIN) von Tabellen . . . . . . . . .
Einfacher EQUIJOIN mit zwei
Tabellen . . . . . . . . . . . . . . . . . . . . . . . . .
Einfacher EQUIJOIN über mehr als
zwei Tabellen . . . . . . . . . . . . . . . . . . . . .
Vereinigung und Durchschnitt mit
UNION . . . . . . . . . . . . . . . . . . . . . . . . . .
Verknüpfung aller Tabellen mit
INNER JOIN und OUTER JOIN . . . . . .
SELF JOIN . . . . . . . . . . . . . . . . . . . . . . .
234
235
235
235
236
236
7.3.2.2
7.3.2.3
7.3.2.4
7.4
7.4.1
7.4.1.1
236
236
236
237
237
7.4.1.2
7.4.1.3
7.4.1.4
7.4.1.5
7.4.1.6
7.4.2
7.4.2.1
7.4.2.2
Web-Anwendungen mit Java
7.4.2.3
7.1
7.1.1
7.1.2
7.1.3
7.2
7.2.1
7.2.1.1
7.2.1.2
7.2.1.3
7.2.1.4
7.2.1.5
7.2.1.6
7.2.1.7
7.2.1.8
7.2.1.9
7.2.2
7.2.2.1
7.2.2.2
7.2.2.3
7.2.2.4
7.2.2.5
7.2.2.6
7.2.2.7
7.3
7.3.1
7.3.1.1
7.3.1.2
7.3.2
7.3.2.1
6
Technische Kommunikation . . . . . . . . . .
Formen der Client-ServerKommunikation . . . . . . . . . . . . . . . . . . .
Realisierungsvarianten der
technischen Kommunikation . . . . . . . . .
Dokumente der Client-ServerKommunikation . . . . . . . . . . . . . . . . . . .
Statische Dokumente . . . . . . . . . . . . . . .
HTML . . . . . . . . . . . . . . . . . . . . . . . . . . .
Grundlagen . . . . . . . . . . . . . . . . . . . . . . .
Textformatierungen . . . . . . . . . . . . . . . .
Tabellen und Listen . . . . . . . . . . . . . . . .
Links . . . . . . . . . . . . . . . . . . . . . . . . . . . .
RGB-Farbmodell . . . . . . . . . . . . . . . . . .
What’s a deprecated tag/attribute? . . . . .
Frames . . . . . . . . . . . . . . . . . . . . . . . . . .
Formulare . . . . . . . . . . . . . . . . . . . . . . . .
Beispiel einer statischen Webseite . . . . .
XML . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ursprung der Sprache . . . . . . . . . . . . . . .
Aufbau eines XML-Dokuments . . . . . . .
Gültige und wohlgeformte
XML-Dokumente . . . . . . . . . . . . . . . . . .
Parser für XML-Dateien . . . . . . . . . . . . .
XML-Schemata . . . . . . . . . . . . . . . . . . .
XSL zur Formatangabe . . . . . . . . . . . . . .
Epilog zu XML . . . . . . . . . . . . . . . . . . . .
Clientseitige Programmierung . . . . . . . .
Scripte . . . . . . . . . . . . . . . . . . . . . . . . . . .
JavaScript zur Eingabekontrolle . . . . . . .
Eingabekontrolle mit Prüfziffernberechnung in JavaScript . . . . . . . . . . . .
Applets . . . . . . . . . . . . . . . . . . . . . . . . . .
Aufruf von Applets . . . . . . . . . . . . . . . . .
Inhaltsverzeichnis
239
240
240
240
241
241
241
242
244
246
247
248
249
251
254
257
257
257
258
259
259
259
260
261
261
261
262
265
265
7.4.3
7.4.3.1
7.4.3.2
7.4.3.3
7.4.3.4
7.4.4
7.5
7.5.1
7.5.2
7.5.3
7.5.4
7.5.5
7.5.6
7.5.7
7.5.8
7.5.9
7.6
7.6.1
7.6.2
8
8.1
8.2
8.3
Gefährdung durch Applets . . . . . . . . . . .
Applet zur EAN-Kontrolle mit Ereignisbehandlung . . . . . . . . . . . . . . . . . . . . . . .
Erstellen und Einbetten des Applets . . . .
Serverseitige Programmierung . . . . . . . .
Webserver . . . . . . . . . . . . . . . . . . . . . . . .
Arbeitsteilung zwischen HTTP-Server
und Webserver . . . . . . . . . . . . . . . . . . . .
Tomcat als Webserver . . . . . . . . . . . . . . .
Lokale Installation von Tomcat . . . . . . .
Lokaler Server und Firewall . . . . . . . . . .
Test und Administration des TomcatServers . . . . . . . . . . . . . . . . . . . . . . . . . .
Tomcat in Eclipse einbinden . . . . . . . . . .
Servlets . . . . . . . . . . . . . . . . . . . . . . . . . .
Das Konzept der Servlets . . . . . . . . . . . .
Einfaches Beispiel zur Abfrage von
Serverdaten . . . . . . . . . . . . . . . . . . . . . . .
Codieren und Compilieren des
Servlets . . . . . . . . . . . . . . . . . . . . . . . . . .
Deployment . . . . . . . . . . . . . . . . . . . . . .
Prinzip des Deployments . . . . . . . . . . . .
Werkzeug für das Deployment . . . . . . . .
Zusammenfassung in einem
Webarchiv . . . . . . . . . . . . . . . . . . . . . . . .
Übermittlung des Webarchivs
zum Server . . . . . . . . . . . . . . . . . . . . . . .
Verwendung des Servlets . . . . . . . . . . . .
ACI-Webshop: Servlet mit
Datenbankzugriff . . . . . . . . . . . . . . . . . .
Installationshinweise . . . . . . . . . . . . . . .
SQL-fähiges Datenbanksystem
verwenden . . . . . . . . . . . . . . . . . . . . . . . .
Dynamischer Methodenaufruf . . . . . . . .
Verbindung zur Datenbank herstellen . . .
Datenbankzugriff aus Java mit SQL . . . .
Datensicherung und Fehlerbehandlung
beim Datenbankzugriff . . . . . . . . . . . . . .
Antwort des Servlets . . . . . . . . . . . . . . . .
Servlet mit Datenbankabfrage . . . . . . . .
Deployment . . . . . . . . . . . . . . . . . . . . . .
ACI-Webshop: Zwischenbericht
zum Entwicklungsstand . . . . . . . . . . . . .
Offene und unbehandelte Probleme . . . .
Vergleich der Anforderungen mit
dem erreichten Stand . . . . . . . . . . . . . . .
265
266
269
270
270
270
271
271
273
273
275
277
277
278
278
281
281
282
282
284
286
287
287
289
290
291
292
293
294
296
297
299
299
302
Testverfahren
Zielstellung . . . . . . . . . . . . . . . . . . . . . . . 304
Überblick . . . . . . . . . . . . . . . . . . . . . . . . 305
Teststufen . . . . . . . . . . . . . . . . . . . . . . . . 305
8.4
8.4.1
8.4.2
8.4.3
8.4.3.1
8.4.3.2
8.4.3.3
8.5
8.6
9
9.1
9.1.1
9.1.2
9.1.3
9.2
9.2.1
9.2.1.1
9.2.1.2
9.2.2
9.2.2.1
9.2.2.2
9.2.2.3
9.2.2.4
9.3
Durchführung der Tests . . . . . . . . . . . . .
Manuelle Testverfahren . . . . . . . . . . . . .
White-Box-Verfahren . . . . . . . . . . . . . . .
Black-Box-Verfahren . . . . . . . . . . . . . . .
Äquivalenzklassenbildung . . . . . . . . . . .
Grenzwertanalyse . . . . . . . . . . . . . . . . . .
Testsequenzermittlung . . . . . . . . . . . . . .
Testszenarien . . . . . . . . . . . . . . . . . . . . .
Testdokumentation . . . . . . . . . . . . . . . . .
306
306
307
308
308
309
309
311
313
9.3.4
10
10.1
10.1.1
10.1.2
Dokumentation
Rolle der Dokumentation im
Softwarelebenszyklus . . . . . . . . . . . . . . .
Dokumentation als kollektives
Gedächtnis der Entwickler . . . . . . . . . . .
Dokumentation als Hilfe für
den Benutzer . . . . . . . . . . . . . . . . . . . . . .
Programm ohne Dokumentation . . . . . . .
Dokumentationsarten . . . . . . . . . . . . . . .
Entwickler-Dokumentation . . . . . . . . . .
Planungsdokumente . . . . . . . . . . . . . . . .
Dokumente für Entwurf und
Implementierung . . . . . . . . . . . . . . . . . . .
Anwender-Dokumentation . . . . . . . . . . .
Marketingunterlagen . . . . . . . . . . . . . . . .
Installationshinweise . . . . . . . . . . . . . . .
Benutzer-Dokumente . . . . . . . . . . . . . . .
Online-Hilfe . . . . . . . . . . . . . . . . . . . . . .
Erstellung der Dokumentation . . . . . . . .
9.3.1
9.3.2
9.3.3
315
316
317
320
321
322
322
324
325
327
327
327
328
328
10.1.3
10.1.4
10.1.5
10.2
10.2.1
10.2.2
10.2.3
10.2.4
10.3
Formulardokumentation . . . . . . . . . . . . .
Parallele Dokumentation . . . . . . . . . . . .
Werkzeuge zur Dokumentationserstellung . . . . . . . . . . . . . . . . . . . . . . . .
Dokumentation in der ACI GmbH . . . . .
328
328
328
332
Routinebetrieb von IT-Systemen
Informationsmanagement . . . . . . . . . . . .
Entwicklungsstufen . . . . . . . . . . . . . . . .
Strategische, taktische und operative
Aufgaben des Informationsmanagements . . . . . . . . . . . . . . . . . . . . .
Personalmanagement . . . . . . . . . . . . . . .
Organisationsmanagement . . . . . . . . . . .
Informationsinfrastrukturmanagement . .
IT Infrastructure Library (ITIL) . . . . . . .
Historische Entwicklung . . . . . . . . . . . .
Service Operation und
Service Transition . . . . . . . . . . . . . . . . . .
Service Desk . . . . . . . . . . . . . . . . . . . . . .
Service Design und Service Strategie . . .
Zusammenfassung . . . . . . . . . . . . . . . . .
333
333
334
336
338
339
340
340
341
342
344
347
Anhang
Richtlinien für die Softwaredokumentation . . . . . . 348
Sachwortverzeichnis . . . . . . . . . . . . . . . . . . . . . . . 352
Inhaltsverzeichnis 7
Lernfeld 6
W
den, das wie andere Produkte systematisch entwickelt
werden kann und durch feststellbare Eigenschaften
(Funktionalität, Qualität) gekennzeichnet ist. Software
weist aber einige besondere Merkmale auf, die beim
Umgang mit ihr beachtet werden müssen:
Die Entwicklung und Bereitstellung von Anwendungen der IT (Informations- und Telekommunikationstechnik) muss eine Verbindung zwischen dem
aktuell technisch Machbaren und den Anforderungen
der Kunden schaffen.
Besondere Eigenschaften von Software
■ Software ist immateriell, d. h. nur durch den Datenträger materiell und „fassbar“.
■ Software kann nicht ohne Weiteres betrachtet
werden, Computer und passende Betriebssysteme
sind notwendig.
■ Kopie und Original sind völlig gleich. Das Erstellen
von Kopien verursacht kaum Aufwand.
■ Software wird nicht gefertigt, sondern nur
entwickelt. Jede Softwareentwicklung ist eine
individuelle Leistung, je nach Umfang der Software
erbracht durch kleine oder große Teamarbeit.
■ Software verschleißt nicht, aber Software „altert“
in dem Maße, in dem sich ihre Umwelt ändert.
Das Systemhaus ACI GmbH nutzt die von ihm entwickelte
Software selbst als gewerblicher Kunde, also als ein Nutzer der IT , der unter Einsatz von IT -Anwendungen seine
gewerbliche Tätigkeit ausüben, ausweiten und rationeller
gestalten will.
ACI ist zugleich Auftraggeber und Anwender für ein zu
schaffendes Warenwirtschaftssystem mit eingebundenem
Webshop, das die Auszubildenden entwickeln sollen.
Diese Eigenentwicklung versetzt die Firma ACI GmbH damit
zugleich in die Rolle von Auftraggeber und Auftragnehmer.
2.1.3 Systematik der Software
Was wir als natürlich empfinden, verknüpft sich mit
materiellen Eigenschaften. An Software ist nichts natürlich. Erfahrungen aus der natürlichen Welt sind auf
die Software nicht übertragbar, werden aber dennoch
ständig übertragen. Zum Beispiel stellt die Wartung
nicht den alten Zustand wieder her, sondern schafft
einen neuen Zustand. Software unterliegt keinem Verschleiß, sie veraltet aber, da sich ihr Umfeld und ihre
Einsatzbedingungen verändern. Die Verwendung bei
vielen Anwendern erscheint bei Software extrem lukrativ, wenn der Aufwand für Anpassungen relativ gering ausfällt. Programmierer unterschätzen allerdings
meist das Problem der Anpassbarkeit.
2.1.3.1 System- oder Anwendungssoftware
Nach ihrer Bestimmung mit mehr Nähe zum Anwender oder zur Hardware hin wird zwischen Anwendungssoftware und Systemsoftware unterschieden.
Systemsoftware dient zum Betreiben (daher auch
Betriebssystem) der Hardware, Anwendungssoftware
wird hingegen zur Bearbeitung einer fachlich-inhaltlichen Aufgabenstellung beim Anwender benötigt.
Systemsoftware ist zum Betrieb und zur Steuerung
der Hardware erforderlich und umfasst außerdem
hardwarenahe, anwendungsneutrale Entwicklungsund Verwaltungsprogramme.
Systematik der Software
Software
Systemsoftware
S
Anwendungssoftware
Betriebssysteme
betriebswirtschaftliche Anwendungen
Softwareentwicklungswerkzeuge
Dienstprogramme
wissenschaftlich-technische
Anwendungen
Datenbankmanagementsysteme
Spiel-, Lern- und Unterhaltungssoftware
Präsentationssoftware
Büro- und Verwaltungssoftware
Netzwerksoftware
Branchensoftware
diverse Tools
Sicherheitssoftware
Software als Produkt 41
W
Lernfeld 6
3.2 Analyse
Kick-offMeeting
Vorlage des
Lastenheftes
vom Auftraggeber
Projektplan
erstellen
Analyse der
Anforderungen
und der Ausgangssituation
Im vorigen Kapitel wurde die Notwendigkeit der Aufgliederung der Softwareentwicklung in einzelne, im
Allgemeinen zeitlich nacheinander ablaufende Phasen
betont. Die sich daraus ergebende Festlegung von Tätigkeiten und Zwischenergebnissen ist eine Voraussetzung zur Sicherung einer arbeitsteiligen, planmäßigen
und wirtschaftlichen Softwareentwicklung, verbun-
W
Modellierung:
Prozessmodell,
Benutzeroberfläche,
Datenmodell
■
■
■
■
■
Entwurf
Abnahme des
Pflichtenheftes durch
den Auftraggeber
den mit einer wirksamen Qualitätssicherung. Dieser
Ausgangspunkt führte zur Definition von so genannten Phasenmodellen oder allgemeinen Vorgehensmodellen.
In Anlehnung an das Wasserfallmodell wird von
folgenden Phasen im Lebenszyklus eines Softwareproduktes ausgegangen:
Inhalt
Analyse
Pflichtenheft
erstellen
systemorientierte Betrachtung
Erfassung des Istzustands
Aufdecken von Schwachstellen
Analyse der Anforderungen
Prognose der Entwicklung
Beschreibung des zu schaffenden
Systems (fachlicher Entwurf)
Ergebnis
■
■
■
■
■
■
■
Programmentwurf (programmtechnischer Entwurf)
Abgrenzung
g des Einsatzgebiets
Modell des Istzustands
präzisierte Anforderungen
Systemarchitektur
Systemschnittstellen
Testszenarien
Pflichtenheft
(Anforderungsspezifikation aus
Sicht des Auftragnehmers)
■
Datenausgaben und -eingaben
Benutzerschnittstellen
Datenmodell
Entwurf der Algorithmen
■
■
■
Implementierung
■
Programmierung, Test
■
lauffähige Module
Integration
■
Integration, Test
■
lauffähiges Softwareprodukt
Einführung, Routinebetrieb
und Wartung
■
■
■
Dokumentation
Abnahmetest
Fehlerkorrektur
Anpassung
■
■
Beschreibung der Arbeitsschritte und
Protokollierung der Ergebnisse, auch
der Entscheidungen bezüglich der
weiteren Entwicklungsarbeiten
■
■
■
■
■
Dem Wasserfallmodell entsprechend sind die Ergebnisse einer Phase jeweils die Ausgangsbasis für die Arbeit in der nächsten Phase. Dabei läuft die Arbeit nicht
zwangsläufig linear hintereinander ab. Rücksprünge
sind notwendig, wenn die Ergebnisse einer Phase nicht
102
Analyse und Entwurf
freigegebenes Softwaresystem
Updates
Programmdokumentation
Problemdokumentation
Benutzerhandbuch
Installationshinweise
Betriebsanleitung
den Anforderungen entsprechen. Dann muss die gleiche
oder eine frühere Phase erneut durchlaufen werden.
Die weiteren Ergebnisse und zu erstellenden Dokumente verbinden Analyse und Entwurff eng miteinander.
Oft werden beide Phasen auch von einem Spezialisten
Lernfeld 6
Java-Quelltext:
*.java
Java-Compiler
Byte-Code
Entwicklungsumgebung (JDK)
portabler Code
VM
(virtual machine)
Anwendungsplattform
API-Bibliothek
Java Runtime Environment (JRE)
Entstehung einer Java-Applikation
5.1.3 JavaScript
JavaScript ist eine eigenständige Sprache und hat eigentlich mit der Java-Idee wenig zu tun. Ihre Hauptanwendung findet sie in Programmen, die innerhalb
eines Webbrowsers ausgeführt werden.
Der Quelltext dieser Programme wird dazu in die
HTML -Seite eingebettet. Es gibt aber auch in JavaScript
geschriebene Programme, die direkt auf einem Webserver ablaufen.
5.2 Grundlegende
Sprachelemente in Java
5.2.1 Das erste Programm
Eine Programmiersprache versteht man am besten
mithilfe einer Kombination aus Beispielen und theoretischen Erklärungen. Deshalb soll hier am Anfang ein
einfaches Beispiel stehen:
mport.java.io.*
public class ErstesBeispiel
{ public static void main (String[ ]
aufrufParameter)
{ int intZahl, intErgebnis;
intZahl=7;
164
Programmierung
intErgebnis=intZahl * 3;
System.out.print („Das Ergebnis
lautet: “);
System.out.print (intErgebnis);
System.out.println („.“)
}
}
Anhand dieses Beispiels können viele Eigenheiten der
Programmierung in Java erläutert werden:
1. Java unterscheidet zwischen Groß- und Kleinschreibung. Java ist „case sensitiv“.
2. Java-Programme bestehen aus Klassen. Die Klassendefinition wird mit dem Schlüsselwort class eingeleitet.
3. Damit aus der Klasse eine Anwendung, eine application wird, muss eine Funktion namens main vorhanden sein. main ist die Hauptfunktion, die beim Aufruf der application gestartet wird.
4. Die Attribute der Funktion main verkörpern folgende Sachverhalte:
void
static
public
Diese Funktion hat keinen Rückgabewert.
Der Datentyp der Funktion ist damit unbestimmt.
Diese Funktion gehört fest zu der Klasse.
Diese Funktion steht anderen Programmteilen zur Benutzung zur Verfügung.
5. Geschweifte Klammern markieren die Anweisungen. Das erste Klammernpaar fasst alles zusam-
Lernfeld 6
WEB-INF Verzeichnis
Servlet Container
(3.) Ausführung
classes
(2.) speziell
-web.xml
-sun-web.xml
build.xml
try{
........
Class.forName(dbDriver);
connection =
DriverManager.getConnection
(dbUrl, dbUser, dbPwd);
statement = connection.createStatement( );
........
<?xml Version....>
<! build.xml>
<property
name=„db..user“
value=„PBase“/>
........
include common.xml
........
</xml>
}
Catch (ClassNotFoundException ex){
........
}
D:\Sun\samples
(1.) allgemein für alle
-common.properties
-common.xml
-database.properties
pointbase.driver=com.pointbase.jdbc.jdbcUniversalDriver
........
Parameterquellen beim dynamischen Methodenaufruf
public Connection JDBCOpen(String url, String driverName,
String user, String passwd) {
Connection dbconn=null;
try {
// Class.forName(driverName).newInstance( );
// “new.Instance( )” zur Umgehung von abgebrochenen Zugriffen
Class.forName(driverName);
// dynamischer Methodenaufruf
dbconn = DriverManager.getConnection(url, user, passwd);
} // try
catch(SQLException ex) {
System.err.println(“SQL-Fehler beim Oeffnen der Daba: ” + url);
System.err.println(ex);
} // catch
catch (ClassNotFoundException ex) {
System.err.println(“Datenbank-Treiber nicht gefunden: ” + driverName);
System.err.println(ex);
} // catch
return dbconn;
};
7.5.5 Datenbankzugriff aus Java mit SQL
Der Zugriff auf die Datenbank erfolgt durch die Übermittlung von SQL -Anweisungen. Dazu wird zuerst ein
Statement-Objekt zu der bestehenden Datenbankverbindung erzeugt. Dieses Statement-Objekt kennt hier
die folgenden Methoden:
292 Web-Anwendungen mit Java
■
■
.executeQuery ( ) zum Ausführen einer Abfrage mit
SELECT (als Rückgabewert wird ein Objekt vom Typ
ResultSet geliefert)
.executeUpdate ( ) zum Ausführen einer Änderung
mit INSERT, UPDATE oder DELETE .
Lernfeld 6
9.1.3 Programm ohne
Dokumentation
Ein Programm ohne Dokumentation ist keine Software
und kann nicht an unbekannte Nutzer zur langfristigen erfolgreichen Verwendung übergeben werden. Dieser Satz ruft
viel Widerspruch hervor. Gegen eine Dokumentation werden meistens folgende Argumente genannt:
■
Dieses Argument wird sogar messbar gemacht, wenn
man von Programmen mit
maximal 500 Zeilen Quelltext oder maximal 10 Seiten Programmcode spricht.
Aber für wen ist dieses Programm gedacht? Versteht
der Kunde den Quelltext?
Der Kunde muss hier ebenfalls ein Entwickler sein,
der Bausteine für seine Programmierarbeiten braucht. Viele gute Programme
gehen so von Hand zu Hand. Dem Ziel dieses Lehrbuches, Anwendungssysteme zu entwickeln und bereitzustellen, können diese Programme jedoch nicht
entsprechen.
Formularantrag aus dem PAO-System der IHK
Die abzugebende Dokumentation als Gegenstand der
Prüfung muss im Wesentlichen als Projektbericht
verfasst sein, also als Projektablaufdokumentation,
aus der ersichtlich ist, dass der Prüfling „Arbeitsabläufe und Teilaufgaben zielorientiert unter Beachtung wirtschaftlicher, technischer, organisatorischer
und zeitlicher Vorgaben selbständig planen und kundengerecht umsetzen sowie Dokumentationen kundengerecht anfertigen kann.“ Die von den einzelnen
Kammern (IHK) vorgegebenen Begrenzungen für den
Umfang (maximal 10 bis 15 Seiten) orientieren praktisch auf eine Ablaufdokumentation. Die Ergebnisse
der Projektarbeit können in der Anlage dargestellt werden, aber nur in Art und Umfang der oben beschriebenen Marketingmaterialien zur schnellen Erfassung
von Leistung und Qualität der erstellten Produkte.
Das Programm ist klein, verständlich geschrieben und im
Quelltext gut kommentiert.
■
Das Programm wird nur einmal eingesetzt und ist generell nur für den internen Gebrauch gedacht. Derar-
tige „Wegwerf-Programme“ werden beispielsweise
zur Konvertierung von Daten für die Übernahme
in ein neues Softwaresystem benötigt. Befindet sich
die neue Software erfolgreich im Einsatz, sind alle
Daten im neuen System verfügbar, verliert das Konvertierungsprogramm seine Bedeutung und wird
nicht mehr gebraucht. Hier kann wirklich auf eine
aufwendige Dokumentation verzichtet werden. Allein für die Qualitätssicherung sollten jedoch die
Konvertierungsalgorithmen dokumentiert werden.
Tauchen später Fehler in den Daten auf, können hier
mögliche Ursachen aufgedeckt werden.
■
Interne Programme, oft Ergebnis von User-Development, werden kaum dokumentiert. Wenn ein Mitarbeiter sich selbst ein VBA -Makro zur Rationalisie-
rung seiner Office-Arbeit schreibt, dann verbleibt
das Wissen bei ihm. Vielleicht könnte man aber im
320
Dokumentation
Herunterladen