CD zum Lehrbuch der Softwaretechnik
CD zum Lehrbuch der Softwaretechnik
CD zum Lehrbuch der Softwaretechnik
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Bedienung<br />
Beachten Sie bitte folgende Bedienungshinweise:<br />
n Die Pfeile in <strong>der</strong> Acrobat-Werkzeugleiste ermöglichen ein seitenweises<br />
Vor- und Rückwärtsblättern.<br />
n Der Pfeil erlaubt ein Rückwärtsdurchlaufen <strong>der</strong> bisherigen Dialogschritte<br />
(Dialoghistorie).<br />
n Das Blattsymbol auf einer Seite steht für eine Notiz. Notizen enthalten<br />
wichtige Informationen, die nach Redaktionsschluß ergänzt wurden. Durch<br />
Doppelklick auf das Symbol können Sie die Notiz öffnen. Im Menu »Werkzeuge«<br />
können Sie mit <strong>der</strong> letzten Menüoption die »Nächste Notiz suchen«.<br />
n Auf den einzelnen Seiten blau geschriebene o<strong>der</strong> markierte Texte sind<br />
maussensitiv und können durch Mausklick aktiviert werden.<br />
n Umfassen Aufgaben/Lösungen mehr als eine Seite, dann ist dies durch einen<br />
blauen Pfeil an <strong>der</strong> unteren rechten Ecke gekennzeichnet. Durch Mausklick<br />
auf die Lasche Aufgabe bzw. Lösung (Achtung: <strong>der</strong> Pfeil selbst ist<br />
nicht maussensitiv!) wird die nächste Seite angezeigt. Von <strong>der</strong> letzten Seite<br />
wird dann wie<strong>der</strong> auf die erste Seite verzweigt (zyklischer Durchlauf).<br />
n Von einer Aufgabe zur nächsten Aufgabe gelangt man durch Drücken des<br />
Pfeiles in <strong>der</strong> Acrobat-Werkzeugleiste.<br />
n Alle im Buch beschriebenen Aufgabenstellungen sind nochmals aufgeführt.<br />
n Wenn Sie Werkzeuge von <strong>der</strong> <strong>CD</strong>-ROM auf die Festplatte kopieren, müssen<br />
Sie anschließend mit dem Explorer den Schreibschutz bei allen kopierten<br />
Dateien aufheben.<br />
n Wird von <strong>der</strong> <strong>CD</strong>-ROM eine weitere Acrobat-Datei (PDF) geöffnet, gelangen<br />
Sie durch die Menüoption »Schließen« wie<strong>der</strong> zurück.
Einführung und Überblick<br />
LE1<br />
1 Grundlagen LE 24 2 Objektorientierte Unternehmensmodellierung LE 25<br />
II SW-Management<br />
1 Grundlagen LE 1<br />
2 Planung LE 2<br />
3 Organisation LE 3-4<br />
4 Personal LE 5<br />
5 Leitung LE 6-7<br />
6 Kontrolle LE 8<br />
1 Prinzipien<br />
& Methoden<br />
LE 20<br />
8 LEs<br />
Copyright Helmut Balzert 1996<br />
2 Case<br />
I SW-Entwicklung<br />
1 Die Planungsphase<br />
V Information Engineering<br />
LE 2-3<br />
2 Die Definitionsphase LE 4-22<br />
3 Die Entwurfsphase LE 23-31<br />
4 Die Implementierungsphase LE 32<br />
5 Die Abnahme- & Einführungsphase LE 33<br />
6 Die Wartungs- & Pflegephase LE 33<br />
LE 21<br />
3 Wie<strong>der</strong>verwendung<br />
LE 22<br />
33 LEs<br />
4 Sanierung<br />
III SW-Qualitätssicherung<br />
1 Grundlagen LE 9<br />
2 Qualitätssicherung LE 10<br />
3 Man. Prüfmethoden LE 11<br />
4 Prozeßqualität LE 12 -13<br />
5 Produktqualität I LE 14-17<br />
6 Produktqualität II LE 18-19<br />
LE 23<br />
4 LEs<br />
Sonstiges<br />
auf dieser <strong>CD</strong><br />
11 LEs
Einführung und Überblick (LE 1)<br />
LE 1<br />
Einführung<br />
& Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
1 Die Planungsphase (LE 2 - LE 3)<br />
LE 2 LE 3<br />
Einführung Function-<br />
& Überblick Point<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
2 Die Definitionsphase (LE 4 - LE 22)<br />
LE 4 LE 5 LE 6 LE 7<br />
Einführung & Funktions- ER–Modell Klassen -<br />
Überblick baum, DD... Diagramm<br />
LE 8 LE 9 LE 10 LE 11<br />
Kontroll- Regeln Zustands- Petri-Netze<br />
strukturen automaten<br />
LE 12 LE 13 LE 14 LE 15<br />
OOA – OOA – SA SA/RT<br />
Konzepte Methodik<br />
LE 16 LE 17 LE 18 LE 19<br />
Arbeitsplatz- Dialog- Dialog- E/A -<br />
gestaltung gestaltung 1 Gestaltung 2 Gestaltung 1<br />
LE 20 LE 21 LE 22<br />
E/A - Benutzer- Benutzer-Unter-<br />
Gestaltung 2 Handbücher stützungsystem<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
3 Die Entwurfsphase (LE 23 - LE 31)<br />
LE 23 LE 24 LE 25 LE 26<br />
Einführung & Datenbanken Relationale Objektorientierte<br />
Überblick Einführung Datenbanken Datenbanken<br />
LE 27 LE 28 LE 29 LE 30<br />
Verteilte OO- SD MD OOD<br />
Anwendungen Grundlagen<br />
LE 31<br />
OOD<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
4 Implementierungsphase (LE 32)<br />
LE 32<br />
Einführung &<br />
Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
5 Abnahme- & Einführungsphase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
6 Wartungs- & Pflegephase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 1 Aufgabe 1<br />
1 Lernziel: Die Terminologie um die definierten Begriffe System und Software<br />
herum kennen und anwenden können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Im folgenden wird ein Szenario beschrieben. Ordnen Sie den beschriebenen<br />
Sachverhalten die in <strong>der</strong> Lehreinheit und im Glossar beschriebenen Begriffe<br />
zu.<br />
Szenario:<br />
Die Firma Teachware veranstaltet öffentliche und firmeninterne Seminare mit<br />
externen Dozenten. Sie besteht aus dem Geschäftsführer, <strong>der</strong> gleichzeitig für<br />
die Seminarplanung und -verwaltung zuständig ist, einer Kundensachbearbeiterin<br />
und einer Kundenbetreuerin.<br />
Vor kurzem wurde die Software SEMORG eingeführt. Der Geschäftsführer<br />
plant und verwaltet am PC die Seminare und Dozenten, die Kundensachbearbeiterin<br />
verwaltet am PC die Kunden und Buchungen.<br />
Die Kundenbetreuerin arbeitet nicht am PC, son<strong>der</strong>n betreut die Teilnehmer<br />
und Dozenten von Seminaren am Veranstaltungsort. Außerdem kümmert<br />
sie sich um die Vervielfältigung von Seminarunterlagen.<br />
Neben zwei miteinan<strong>der</strong> vernetzten PCs verfügt die Firma über Telefone,<br />
ein konventionelles Fax-Gerät sowie einen e-mail- und Fax-Anschluß am PC.<br />
Beispiel: Bei <strong>der</strong> Software SEMORG handelt es sich für die Frima Teachware<br />
um ein Softwareprodukt.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Bei <strong>der</strong> Software SEMORG handelt es sich für die Firma Teachware um ein<br />
Software-Produkt. Da die Mitarbeiter <strong>der</strong> Firma Teachware mit diesem Produkt<br />
ihre Aufgaben erledigen, handelt es sich um Anwendungssoftware.<br />
Die Anwendungssoftware zusammen mit dem Betriebssystem und <strong>der</strong> PC-<br />
Hardware bilden das Computersystem bzw. das DV-System <strong>der</strong> Firma<br />
Teachware.<br />
Der Geschäftsführer und die Kundensachbearbeiterin sind die Benutzer<br />
dieses DV-System, während die Kundenbetreuerin Anwen<strong>der</strong>in des DV-Systems<br />
ist. Sie benutzt die Teilnehmerlisten für das »check in« <strong>der</strong> Teilnehmer<br />
usw.<br />
Das DV-System zusammen mit <strong>der</strong> sonstigen technischen Einrichtung,<br />
hier Vernetzung, e-mail- und Faxanschluß, bilden das technische System<br />
<strong>der</strong> Firma Teachware. Alle Mitarbeiter <strong>der</strong> Firma Teachware bilden ein organisatorisches<br />
System. Dieses System zusammen mit den technischen Einrichtungen<br />
Telefon und Fax bildet ein Informationssystem.<br />
Das organisatorische System zusammen mit dem technischen System ergibt<br />
ein rechnergestütztes Informationssystem bzw. Anwendungssystem.<br />
Aufgabe<br />
Lösung
LE 1 Aufgabe 2<br />
2 Lernziel: Die Disziplin Software-Technik mit ihren Begriffen beschreiben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Im folgenden wird ein Szenario beschrieben. Ordnen Sie den beschriebenen<br />
Sachverhalten die in <strong>der</strong> Lehreinheit und im Glossar beschriebenen Begriffe<br />
zu.<br />
Szenario:<br />
Ein Ziel <strong>der</strong> objektorientierten Softwareentwicklung ist es, bereits vorhandene<br />
Systemkomponenten wie<strong>der</strong>zuverwenden. Viele Autoren geben daher an, wie<br />
Klassen für die Wie<strong>der</strong>verwendung identifiziert werden können. Dabei spielt<br />
es keine Rolle, ob eine Klasse als Diagramm o<strong>der</strong> als Text repräsentiert ist.<br />
Diagramme und Texte werden rechnerunterstützt erfaßt und verwaltet.<br />
Beispiel: Bei <strong>der</strong> Wie<strong>der</strong>verwendung handelt es sich um ein Prinzip.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Bei <strong>der</strong> Wie<strong>der</strong>verwendung handelt es sich um ein Prinzip, das man seinem<br />
Handeln, hier <strong>der</strong> objektorientierten Softwareentwicklung, zugrunde legt. Bei<br />
den Vorgehensweisen, die viele Autoren angeben, um die Wie<strong>der</strong>verwendung<br />
zu erreichen, handelt es sich um Methoden. Diese Methoden geben an, wie<br />
das Konzept Klasse wie<strong>der</strong>verwendet werden kann. Die Notation von Klassen<br />
kann in Form von Diagrammen o<strong>der</strong> Texten erfolgen. Diagramme und<br />
Texte werden mit CASE-Werkzeugen erfaßt und verwaltet.<br />
Aufgabe<br />
Lösung
LE 1 Aufgabe 3<br />
3 Lernziel: Die Terminologie um die definierten Begriffe System und<br />
Software herum kennen und anwenden können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Welche <strong>der</strong> vier Begriffe<br />
a Standardsoftware<br />
b Individualsoftware<br />
c Anwendungssoftware<br />
d Systemsoftware<br />
würden Sie den folgenden Software-Produkten zuordnen:<br />
1 MS-DOS<br />
2 Textverarbeitung<br />
3 Branchensoftware<br />
4 Unix<br />
5 Netzwerksoftware<br />
6 C++-Programmierumgebung<br />
7 Datenbanksystem<br />
8 Finanzbuchhaltung<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
1 (a) und (d)<br />
2 (a) und (c)<br />
3 (a) o<strong>der</strong> (b) und (c)<br />
4 (a) und (d)<br />
5 (a) und (d)<br />
6 (a) und (d)<br />
7 (a) und (d)<br />
8 (a) o<strong>der</strong> (b) und (c)<br />
Wie die Beispiele zeigen, handelt es sich bei Systemsoftware heute fast immer<br />
um Standardsoftware.<br />
Aufgabe<br />
Lösung
LE 2 Aufgabe 1<br />
1 Lernziel: Für vorgegebene Aufgabenstellungen ein Lastenheft entsprechend<br />
dem beschriebenen Lastenheft-Schema erstellen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Die Daten <strong>der</strong> an einem Lehrstuhl beschäftigten Hilfsassistenten sollen in einer<br />
Datei verwaltet werden. Über jeden Hilfsassistenten sind folgende Informationen<br />
aufzubewahren:<br />
Name, Vorname, Matrikelnummer, Geburtsdatum, Heimatadresse einschließlich<br />
Telefon-Nr., Studienadresse einschl. Telefon-Nr., Studienfach (es können<br />
auch mehrere sein), Semesterzahl, Vordiplom (Ja/Nein, wenn ja, dann Note<br />
und Datum), Beschäftigungszeiten (von, bis, Stundenzahl pro Woche,<br />
Tätigkeitsgebiete, benutzte Software-Systeme), Diplom (Ja/Nein, wenn ja, dann<br />
welche Note und Datum), Arbeitszeugnis ausgehändigt (Ja/Nein, wenn ja,<br />
dann Datum).<br />
Aus <strong>der</strong> Hilfsassistenten-Datei ist folgende Liste zu erstellen:<br />
Listenkopf:<br />
»Alphabetische Liste aller Hilfsassistenten«<br />
Listenrumpf:<br />
Name, Vorname, Matrikel-Nr., Studienadresse, Geburtsdatum.<br />
Außerdem müssen pro Hilfsassistent seine sämtlichen Daten ausgeben werden<br />
können.<br />
Erstellen Sie ein entsprechendes Lastenheft. Treffen Sie bei fehlenden Informationen<br />
Ihre Entscheidungen selbständig, so wie Sie sie einem Auftraggeber<br />
sinnvoll anbieten würden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
1 Zielbestimmung<br />
Das Programm HIWI-Verwaltung soll einen Lehrstuhl in die Lage versetzen, die beschäftigten<br />
Hilfsassistenten zu verwalten.<br />
2 Produkteinsatz<br />
Das Produkt wird im Sekretariat eines Lehrstuhls eingesetzt und von <strong>der</strong> Sekretärin bedient.<br />
3 Produktfunktionen<br />
/LF10/<br />
Ersterfassung, Än<strong>der</strong>ung und Löschung von Hilfsassistenten<br />
/LF20/<br />
Ausgabe einer alphabetischen Liste aller Hilfsassistenten mit folgenden Daten:<br />
Name, Vorname, Matrikel-Nr., Studienadresse, Geburtsdatum<br />
/LF30/<br />
Ausgabe sämtlicher Daten eines Hilfsassistenten<br />
/LF40/<br />
Gezielte Abfragen mit einer Endbenutzersprache<br />
4 Produktdaten<br />
/LD10/<br />
Folgende Daten sind über jeden Hilfsassistenten zu speichern: Name, Vorname,<br />
Matrikelnummer, Geburtsdatum, Heimatadresse einschließlich Telefon-Nr., Studienadresse<br />
einschließlich Telefon-Nr., Studienfach (können auch mehrere sein),<br />
Semesteranzahl, Vordiplom (Ja/Nein, wenn ja, dann Note und Datum),<br />
Beschäftigungszeiten (von, bis, Stundenzahl pro Woche, Tätigkeitsgebiete, benutzte<br />
Software-Systeme), Diplom (Ja/Nein, wenn ja, dann welche Note und Datum),<br />
Arbeitszeugnis ausgehändigt (Ja/Nein, wenn ja, dann Datum).<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
5 Produktleistungen<br />
/LL10/<br />
Die Funktionen /LF10 / und /LF40/ dürfen nicht mehr als 2 Sekunden Antwortzeit<br />
benötigen.<br />
/LL20/<br />
Es müssen max. 1000 Hilfsassistenten verwaltet werden können.<br />
6 Qualitätsanfor<strong>der</strong>ungen<br />
Produktqualität sehr gut gut normal nicht relevant<br />
Funktionalität x<br />
Zuverlässigkeit x<br />
Benutzbarkeit x<br />
Effizienz x<br />
Än<strong>der</strong>barkeit x<br />
Übertragbarkeit x<br />
Aufgabe<br />
Lösung
LE 2 Aufgabe 2<br />
2 Lernziel: Die gegenseitigen Wechselwirkungen <strong>der</strong> Faktorengruppen Quantität,<br />
Qualität, Entwicklungsdauer und Kosten anhand des »Teufelsquadrates«<br />
erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Nennen Sie die Einflußfaktoren für Aufwandsschätzungen und geben Sie an,<br />
wie die einzelnen Faktorengruppen quantifiziert werden können.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Quantität:<br />
– LOC (Lines of Code), Operation (Assembler)<br />
– Datenumfang (Lasten-, Pflichtenheft)<br />
– MM, MJ, PM<br />
– Komplexitätsmaße (z.B. Noten 1–6)<br />
Qualität:<br />
– verschiedene Qualitätsstufen bestimmter Qualitätsmerkmale (z.B. Benutzbarkeit,<br />
Effizienz usw.)<br />
Entwicklungsdauer:<br />
– Tage, Monate, Stunden, Jahre<br />
– optimale Entwicklungsdauer = 2.5 * (Aufwand in MM) s [Monate]<br />
(Stapel) 0.38 > s > 0.32 (Echtzeit)<br />
Kosten<br />
– Hauptanteil Personalkosten<br />
– Kosten für die CASE-Umgebung<br />
– Rest: laufende Kosten (Büro, Reisen usw.)<br />
Aufgabe<br />
Lösung
LE 2 Aufgabe 3<br />
3 Lernziel: Die aufgeführten »Faustregeln« wie<strong>der</strong>geben und auf Beispiele anwenden<br />
können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Die Firma Innotec stellt ihre Software-Entwicklung auf Objektorientierung um.<br />
Im ersten Projekt soll eine einfache Echtzeit-Anwendung erstellt werden. Für<br />
die Definition und den Entwurf dieses Produkts wurden 15 MM benötigt.<br />
a Auf wieviel MM kann man den Aufwand <strong>der</strong> gesamten Entwicklung schätzen,<br />
wenn man die von Hewlett-Packard ermittelten Daten zur Aufwandsverteilung<br />
zugrunde legt?<br />
b Wie lange dauert die Implementierungsphase, wenn man mit <strong>der</strong> größtmöglichen<br />
Produktivität jedes Mitarbeiters entwickeln möchte? Wie groß<br />
ist das dazu benötigte Team?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
HP Zahlen: Definition 18%<br />
Entwurf 19%<br />
Implementierung 63%<br />
a Gesamtaufwand:<br />
GA = (15 MM * 100) /37 ≈ 40,54 MM<br />
} 37%<br />
b Dauer <strong>der</strong> Implementierung (im optimalen Fall):<br />
Aufwand Implementierung = (40,54 – 15)MM = 25,54 MM<br />
optimale Dauer = 2,5 * [25.54 MM] 0,32 ≈ 7 Monate<br />
Teamgröße = 25,54 / 7 ≈ 3,6 ≅ 4<br />
Aufgabe<br />
Lösung
LE 2 Aufgabe 4<br />
4 Lernziel: Die aufgeführten »Faustregeln« wie<strong>der</strong>geben und auf Beispiele<br />
anwenden können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Die Firma Innotec möche nun mit <strong>der</strong> objektorientierten Softwareentwicklung<br />
ein zweites Projekt realisieren. Mit den Erfahrungen aus dem ersten Projekt<br />
schätzt man für dieses zweite Projekt einen Gesamtaufwand von 14000 Zeilen<br />
Code. 50 Prozent des zweiten Projekts können durch Wie<strong>der</strong>verwendung<br />
aus dem ersten Projekt realisiert werden.<br />
Wie groß ist <strong>der</strong> Gesamtaufwand in Mitarbeiter-Monaten (MM), wenn man<br />
die empirischen Untersuchungen von Hewlett-Packard zugrunde legt?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
7000 LOC Neu → 7000 LOC / 350 LOC pro MM = 20 MM<br />
7000 LOC Wie<strong>der</strong>verwendung → (7000 / 350)* 1/4 = 5 MM<br />
Ergebnis: Gesamtaufwand 25 MM<br />
Aufgabe<br />
Lösung
LE 3 Aufgabe 1<br />
1 Lernziel: Die Function Point-Methode auf gegebene kommerzielle Problemstellungen<br />
anwenden können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Ermitteln Sie anhand des in Aufgabe 1 (Lehreinheit 2) erstellten Lastenheftes<br />
den Aufwand entsprechend <strong>der</strong> Function Point-Methode. Gehen<br />
Sie von <strong>der</strong> Musterlösung dieser Aufgabe aus.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
/LF 10/<br />
Es handelt sich um drei getrennte Eingaben. Bei <strong>der</strong> Ersterfassung müssen<br />
weit mehr als 10 Datenelemente eingegeben werden mit Ansprüchen an eine<br />
hohe Bedienerführung. Daraus ergibt sich eine »komplexe« Eingabe.<br />
Eine Än<strong>der</strong>ung erfor<strong>der</strong>t einen lesenden und schreibenden Zugriff auf die<br />
Datei. Die Anzahl <strong>der</strong> zu än<strong>der</strong>nden Daten dürfte zwischen 6 und 10 liegen.<br />
Es ergibt sich eine Eingabe, »mittlerer« Komplexität.<br />
Löschen ist »einfach«, da keine Abhängigkeiten zu an<strong>der</strong>en Daten bestehen.<br />
Ergebnis: 1 einfache, 1 mittlere, 1 komplexe Eingabe<br />
/LF20/<br />
Es werden zwischen 7 und 15 Spalten benötigt, die Anzahl unterschiedlicher<br />
Datenelemente liegt zwischen 6 und 10.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/LF30/<br />
Da nur eine Auflistung aller Daten für jeweils einen Hilfsassistenten verlangt<br />
wird, wird eine »mittlere« Ausgabe angenommen, da keine Gruppenwechsel<br />
erfor<strong>der</strong>lich sind. Hinzu kommt aber noch die interaktive Auswahl des gewünschten<br />
Hilfsassistenten.<br />
Ergebnis: 1 mittlere Ausgabe, 1 einfache Eingabe<br />
/LF40/<br />
Wird nicht gewertet.<br />
/LD10/<br />
Entsprechend Tab. 1-7 handelt es sich um einen »mittleren« Datenbestand.<br />
Ergebnis: 1 mittlerer Datenbestand<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
Gesamtergebnis:<br />
Eingaben: 2 x einfach (3) = 6<br />
1 x mittel (4) = 4<br />
1 x komplex (6) = 6<br />
Ausgaben: 2 x mittel (5) = 10<br />
Datenbestände: 1 x mittel (10) = 10<br />
Summe Function Points E1 = 36<br />
Bewertung <strong>der</strong> Einflußfaktoren:<br />
1 Verflechtung mit an<strong>der</strong>en Anwendungsthemen = 0<br />
2 Dezentrale Daten / dezentrale Verarbeitung = 0<br />
3 Transaktionsrate = 1<br />
4 Verarbeitungslogik (Sortierung) = 3<br />
5 Wie<strong>der</strong>verwendbarkeit = 0<br />
6 Datenbestands-Konvertierungen = 0<br />
7 Anpaßbarkeit = 0<br />
Summe E2 = 4<br />
E3 = 4 / 100 + 0,7 = 0,74<br />
Bewertete Function Points = 36 x 0,74 = 26,6 FP<br />
Aufwand nach IBM-Tabelle (interpoliert) = 1,2 MM<br />
➜<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 1<br />
1 Lernziel: Die aufgestellten Basiskonzepte den verschiedenen Sichten zuordnen<br />
können.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
Welche Basiskonzepte kennen Sie, um die datenorientierte Sichtweise auf ein<br />
System zu beschreiben?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Data Dictionary<br />
Jackson-Diagramme<br />
Entity Relationship-Diagramme<br />
Syntax-Diagramme<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 2<br />
2 Lernziel: Wissen, wie die aufgeführten Konzepte sich aus den Basiskonzepte<br />
zusammensetzen.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Welche Basiskonzepte sind in den Konzepten SA, SA/RT und OOA enthalten?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
SA enthält:<br />
n Datenflußdiagramm<br />
n Data Dictionary<br />
n Entscheidungstabellen<br />
n Entscheidungsbäume<br />
n Pseudo-Code<br />
n Funktionsbaum<br />
RT enthält:<br />
n Datenflußdiagramm<br />
n Data Dictionary<br />
n Entscheidungstabellen<br />
n Entscheidungsbäume<br />
n Pseudo-Code<br />
n Entity Relationship-Diagramme<br />
n Zustandsautomaten<br />
OOA enthält:<br />
n Klassen-Diagramm<br />
n Entity Relationship-Diagramm<br />
n Pseudo-Code und/o<strong>der</strong> Entscheidungstabellen<br />
n Zustandsautomat<br />
n Interaktions-Diagramm<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 3<br />
3 Lernziel: Entsprechend <strong>der</strong> beschriebenen Vorgehensweise aus gegebenen<br />
Anwendungsbereichen Basiskonzepte und kombinierte Methoden herleiten<br />
können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Ihre Aufgabe ist es, einen Tempomaten (Geschwindigkeitsregelanlage im PKW)<br />
zu entwickeln. Welche Methode würden Sie sinnvollerweise wählen? (Begründen<br />
Sie!)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Schema zur Auswahl einer Methode anwenden<br />
Anwendungsbereich: Echtzeit<br />
Komplexitätsarten: zeitabhängiges Verhalten,<br />
Systemumgebung, Algorithmen<br />
Basiskonzepte: Für zeitunabhängiges Verhalten:<br />
n Petri-Netz<br />
n Zustandsautomat<br />
n Interaktions-Diagramm<br />
Für Systemumgebung:<br />
n Datenfluß-Diagramm<br />
n Interaktions-Diagramm<br />
Für Algorithmen:<br />
n Pseudocode<br />
n PAP (Programmablaufplan)<br />
n Struktogramm<br />
n Jackson-Diagramm<br />
n Warnier-Orr-Diagramm<br />
n Entscheidungstabelle<br />
n Regeln<br />
Methode: RT o<strong>der</strong> OOA evtl. zusätzlich Petri-Netze<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 4<br />
4 Lernziel: Die Kompexitätsarten Funktionen, Daten, Algorithmen, zeitabhängiges<br />
Verhalten, Systemumgebung und Benutzungsoberfläche bezogen auf eine<br />
Anwendung nennen können.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
Geben Sie die Komplexitätsarten für folgende Anwendungen an:<br />
n Verwaltung von Hilfsassistenten an einem Lehrstuhl,<br />
n Tempomat (Geschwindigkeitsregelanlage im Auto),<br />
n Struktogrammeditor für grafische Benutzungsoberflächen,<br />
n Software für den Aufbau, Verwaltung und Abbau von Telefonverbindungen<br />
(elektronische Vermittlung).<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Anwendungen: Komplexitätsarten:<br />
HIWI-Verwaltung Daten<br />
Benutzungsoberfläche<br />
Tempomat Algorithmen<br />
Zeitabhängiges Verhalten<br />
Systemumgebung<br />
Struktogrammeditor Benutzungsoberfläche<br />
Funktionen<br />
Telefonvermittlung Zeitabhängiges Verhalten<br />
Systemumgebung<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 5<br />
5 Lernziel: Für vorgegebene Aufgabenstellungen ein Pflichtenheft<br />
entsprechend dem beschriebenen Pflichtenheft-Schema erstellen können.<br />
Zeit: 120 Minuten<br />
Aufgabe:<br />
Verfeinern Sie das in Aufgabe 1 (Lehreinheit 2) erstellte Lastenheft HIWI-<br />
Verwaltung zu einem Pflichtenheft. Treffen Sie bei fehlenden Informationen<br />
Ihre Entscheidungen selbständig, so wie Sie sie einem Auftraggeber sinnvoll<br />
anbieten würden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Pflichtenheft HIWI-Verwaltung<br />
1. Zielbestimmung<br />
Das Programm HIWI-Verwaltung soll einen Lehrstuhl in die Lage versetzen, die<br />
beschäftigten Hilfsassistenten rechnergestützt zu verwalten.<br />
1.1 Mußkriterien<br />
– Verwalten von HIWI-Daten<br />
– Erstellen einer Liste aller Hilfsassistenten<br />
– Ausgabe aller Daten eines Hilfsassistenten<br />
1.2 Wunschkriterien<br />
– Ausdrucken von Arbeitszeugnissen<br />
– Automatische Generierung einer Verlängerung <strong>der</strong> HIWI-Verträge um<br />
drei Monate <strong>zum</strong> Quartalsende<br />
– Berechnung <strong>der</strong> benötigten drei Gehälter für alle HIWIs bis <strong>zum</strong> Jahresende<br />
– Serienanschreiben zwecks Einladung zur Weihnachtsfeier<br />
– Gezielte Abfragen mit einer Endbenutzersprache<br />
1.3 Abgrenzungskriterien<br />
– Software ist nicht netzwerkfähig<br />
– keine Überprüfung <strong>der</strong> Arbeits-/Urlaubszeiten <strong>der</strong> HIWIs<br />
2. Produkteinsatz<br />
Das Produkt wird im Sekretariat eines Lehrstuhls zur Verwaltung <strong>der</strong> Hilfsassistenten<br />
eingesetzt<br />
2.1 Anwendungsbereich<br />
Hilfsassistentenverwaltung; Abfragen (kommerzieller Anwendungsbereich)<br />
2.2 Zielgruppen<br />
Mitarbeiter/-in eines Lehrstuhls (Sekretär/in)<br />
➜<br />
Aufgabe<br />
Lösung
2.3 Betriebsbedingungen<br />
Büroumgebung<br />
3. Produktumgebung<br />
Das Produkt läuft auf einem Arbeitsplatzrechner mit graphischer Benutzungsoberfläche<br />
3.1 Software<br />
Betriebssystem: Windows 95<br />
3.2 Hardware<br />
PC<br />
3.3 Orgware<br />
Netzwerkverbindung <strong>zum</strong> Drucker<br />
3.4 Produktschnittstellen<br />
Für die Verlängerungen <strong>der</strong> Arbeitsverträge wird eine Word-Serienbrief-Datei erzeugt.<br />
4. Produktfunktionen<br />
/F10/ Ersterfassung, Än<strong>der</strong>ung und Löschung von Hilfsassistenten /LF10/<br />
/F20/ Aufnahme eines Hilfsassistenten mit Überprüfung, ob er mehr als<br />
19 h/Woche an <strong>der</strong> Universität als HIWI beschäftigt ist. (HIWIs dürfen höchstens 19<br />
h/Woche an <strong>der</strong> Universität arbeiten)<br />
/FW30/ Ausdrucken eines Arbeitszeugnisses mit Überprüfung, ob<br />
1. die Beschäftigungszeit beendet ist<br />
2. noch kein Zeugnis gedruckt worden ist<br />
/F40/ Ausgabe (Drucker + Bildschirm) einer alphabetischen Liste aller Hilfsassistenten<br />
mit folgenden Daten: Name, Vorname, Matrikel-Nr., Studienadresse, Geburtsdatum<br />
/LF20/<br />
/F50/ Pro HIWI Ausgabe sämtlicher Daten eines Hilfsassistenten /LF30/<br />
/FW60/ Individuelle, gezielte Abfragen mittels Menüs und Maus /LF40/<br />
/FW70/ Suchoperationen auf allen Datenfel<strong>der</strong>n /LF40/<br />
➜<br />
Aufgabe<br />
Lösung
FW80/ Zum Quartalsende werden alle auslaufenden HIWI-Verträge automatisch um 3<br />
Monate verlängert und ausgedruckt<br />
/FW90/ Zum aktuellen Zeitpunkt wird die Summe <strong>der</strong> bis <strong>zum</strong> Jahresende benötigten<br />
Gehälter für alle HIWIs berechnet<br />
/FW100/ Das Programm generiert Steuerdateien mit den Adressen aller Hilfsassistenten,<br />
um mit Word Serienbriefe an alle HIWIs zu schicken<br />
5. Produktdaten<br />
/D10/ Personendaten: Name, Vorname, Matrikel-Nr., Geburtsdatum, Heimatadresse,<br />
Heimattelefon-Nr., Studienadresse, Studientelefon-Nr.<br />
/D20/ Studiendaten: (können pro Student mehrere sein) Studienfach, Semesteranzahl,<br />
Vordiplomnote + Datum, Diplomnote + Datum<br />
/D30/ Beschäftigungsdaten: (können pro Student mehrere sein) Beginndatum, Endedatum,<br />
Stundenzahl pro Woche, Tätigkeitsgebiete, benutzte Software-Systeme,<br />
Arbeitszeugnisdatum<br />
6. Produktleistungen<br />
/L10/ Die Funktionen /F10/, /F20/, /F30/, /F40/, /F50/, /F60/, /F70/ und /F90/ dürfen<br />
nicht mehr als 2 Sekunden Antwortzeit benötigen /LL10/<br />
/L20/ Die Funktionen /F80/ und /F100/ dürfen nicht mehr als 5 Minuten benötigen (incl.<br />
Drucken). Der Arbeitsfortschritt wird auf dem Bildschirm angezeigt.<br />
/L30/ Es müssen maximal 1.000 Hilfsassistenten verwaltet werden können. /LL20/.<br />
7. Benutzungsschnittstelle<br />
/B10/ Standardmäßig ist eine menüorientierte Bedienung vorzusehen.<br />
/B20/ Die Bedienungsoberfläche ist auf Mausbedienung auszulegen; eine Bedienung<br />
ohne Maus muß aber auch möglich sein.<br />
/B30/ DIN 66234, Teil 8 ist zu beachten.<br />
/B40/ Sämtliche Daten sind paßwortgeschützt und dürfen nur von autorisierten Mitarbeitern<br />
des Lehrstuhls bearbeitet werden.<br />
➜<br />
Aufgabe<br />
Lösung
8. Qualitätszielbestimmung<br />
Produktqualität sehr gut gut normal nicht relevant<br />
Funktionalität<br />
Angemessenheit x<br />
Richtigkeit x<br />
Interoperabilität x<br />
Ordnugsmäßigkeit x<br />
Sicherheit x<br />
Zuverlässigkeit<br />
Reife x<br />
Fehlertoleranz x<br />
Wie<strong>der</strong>herstellbarkeit x<br />
Benutzbarkeit<br />
Verständlichkeit x<br />
Erlernbarkeit x<br />
Bedienbarkeit x<br />
Effizienz<br />
Zeitverhalten x<br />
Verbrauchsverhalten x<br />
Än<strong>der</strong>barkeit<br />
Analysierbarkeit x<br />
Modifizierbarkeit x<br />
Stabilität x<br />
Prüfbarkeit x<br />
Übertragbarkeit<br />
Anpaßbarkeit x<br />
Installierarbeit x<br />
Konformität x<br />
Austauschbarkeit x<br />
➜<br />
Aufgabe<br />
Lösung
9. Globale Testfälle<br />
Folgende Funktionssequenzen sind zu überprüfen:<br />
/T10/ HIWI-Ersterfassung, Än<strong>der</strong>ung, Weiterbeschäftigung, Vertragsende, Arbeitszeugnis<br />
drucken und Löschen<br />
/T20/ Serienanschreiben drucken<br />
/T30/ Summe <strong>der</strong> Gehälter bis <strong>zum</strong> Jahresende bestimmen, HIWI-Vertrag unterbrechen,<br />
neue Summe <strong>der</strong> Gehälter bis <strong>zum</strong> Jahresende bestimmen<br />
Folgende Datenkonsistenzen sind einzuhalten:<br />
/T40/ Ein Beschäftigungszeitraum und die Studiendaten können nur eingegeben werden,<br />
wenn ein entsprechen<strong>der</strong> HIWI-Eintrag (Personendaten) vorhanden ist.<br />
10. Entwicklungsumgebung<br />
Offen<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 6<br />
6 Lernziel: Die Function Point-Methode auf gegebene kommerzielle Problemstellungen<br />
anwenden können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Ermitteln Sie anhand des in Aufgabe 5 aufgestellten Pflichtenheftes den Zeitaufwand<br />
nach <strong>der</strong> Function Point-Methode. Vergleichen Sie den Aufwand mit<br />
dem im Aufgabe 2 (Lehreinheit 3) ermittelten Aufwand.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
/F10/ Es handelt sich um drei getrennte Eingaben. Bei <strong>der</strong> Ersterfassung<br />
müssen weit mehr als 10 Datenelemente eingegeben werden mit hohen<br />
Ansprüchen an die Bedienerführung. Daraus ergibt sich eine komplexe<br />
Eingabe.<br />
Eine Än<strong>der</strong>ung erfor<strong>der</strong>t einen lesenden und schreibenden Zugriff auf die<br />
Datei. Die Anzahl <strong>der</strong> zu än<strong>der</strong>nden Daten dürfte zwischen 6 und 10<br />
liegen. Es ergibt sich eine mittlere Eingabe.<br />
Löschen ist einfach, da keine Abhängigkeiten zu an<strong>der</strong>en Daten bestehen.<br />
Ergebnis: 1 einfache, 1 mittlere, 1 komplexe Eingabe<br />
/F20/ Wie Ersterfassung<br />
Ergebnis: 1 komplexe Eingabe<br />
/F30/ Da eine Druckaufbereitung erfor<strong>der</strong>lich ist, wird eine mittlere Aufgabe<br />
angenommen. Hinzu kommt eine einfache Eingabe zur Festlegung des<br />
gewünschten Hilfesassistenten.<br />
Ergebnis: 1 mittlere Eingabe, 1 einfache Eingabe<br />
/F40/ Es werden zwischen 7 und 15 Spalten benötigt, die Anzahl unterschiedlicher<br />
Datenelemente liegt zwischen 6 und 10.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/F50/ Da nur eine Auflistung aller Daten für jeweils einen Hilfeassistenten<br />
verlangt wird, wird eine mittlere Ausgabe angenommen, da keine<br />
Gruppenwechsel erfor<strong>der</strong>lich sind. Hinzu kommt aber noch die interaktive<br />
Auswahl des gewünschten Hilfeassistenten.<br />
Ergebnis: 1 mittlere Ausgabe, 1 einfache Eingabe<br />
➜<br />
Aufgabe<br />
Lösung
FW60/ Abfrage mit Endbenutzersprache nach /LF40/.<br />
Wird nicht gewertet.<br />
/FW70/ Abfrage mit Endbenutzersprache nach /LF40/.<br />
Wird nicht gewertet.<br />
/FW80/ Die Verlängerung <strong>der</strong> Verträge erfor<strong>der</strong>t ein relativ einfaches Suchen<br />
nach auslaufenden Verträgen. Die Komplexität <strong>der</strong> Druckausgabe ist<br />
mittel.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/FW90/ Es handelt sich um eine Abfrage mit geringem Anspruch an die<br />
Benuterführung. Die Erzeugung des Ergebnisses erfor<strong>der</strong>t ein nicht einfaches<br />
Durchsuchen <strong>der</strong> Datei.<br />
Ergebnis: 1 mittlere Abfrage<br />
/FW100/ Die Erzeugung <strong>der</strong> Steuerdatei ist als eine mittlere Ausgabe, analog<br />
/F40/ zu bewerten.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/D10/ Es werden 1 bis 20 Datenelemente mit einem Schlüssel gespeichert.<br />
Ergebnis: 1 einfacher Datenbestand<br />
/D20/ Analog zu /D10/<br />
Ergebnis: 1 einfacher Datenbestand<br />
/D30/ Analog zu /D10/<br />
Ergebnis: 1 einfacher Datenbestand<br />
➜<br />
Aufgabe<br />
Lösung
Gesamtergebnis:<br />
ohne Wunschkriterien<br />
Eingaben: 3*einfach (3) = 9<br />
1*mittel (4) = 4<br />
2*komplex (6) = 12<br />
Ausgaben: 3*mittel (5) = 15<br />
Datenbestände 3*einfach (7) = 21<br />
Summe Function Points (ohne Wunschkriterien) E1 = 61.<br />
mit Wunschkriterien<br />
Eingaben: 3*einfach (3) = 9<br />
1*mittel (4) = 4<br />
2*komplex (6) = 12<br />
Ausgaben: 5*mittel (5) = 25<br />
Abfrage: 1*mittel (4) = 4<br />
Datenbestände 3*einfach (7) = 21<br />
Summe Function Points (mit Wunschkriterien) E1w = 75.<br />
➜<br />
Aufgabe<br />
Lösung
Bewertung <strong>der</strong> Einflußfaktoren:<br />
1 Verflechtung mit an<strong>der</strong>en Anwendungsthemen = 0<br />
2 Dezentrale Daten / dezentrale Verarbeitung = 0<br />
3 Transaktionsrate = 1<br />
4 Verarbeitungslogik (Sortierung) = 3 (Sortierung)<br />
5 Wie<strong>der</strong>verwendbarkeit = 0<br />
6 Datenbestands-Konvertierungen = 0<br />
7 Anpaßbarkeit = 0<br />
Summe E2 = 4<br />
E3 = 4 / 100 + 0,7 = 0,74<br />
Bewertete Function Points (ohne Wunschkriterien)<br />
= 61 x 0,74 = 45,1 FP<br />
Aufwand nach IBM-Tabelle (interpoliert) = 2,0 MM<br />
Bewertete Function Points (mit Wunschkriterien)<br />
= 75 x 0,74 = 55,5 FP<br />
Aufwand nach IBM-Tabelle (interpoliert) = 2,7 MM<br />
Aufgabe<br />
Lösung
LE 4 Aufgabe 7<br />
7 Lernziel: Die Function Point-Methode auf gegebene kommerzielle Problemstellungen<br />
anwenden können (Lehreinheit 2)<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Ermitteln Sie anhand des Pflichtenheftes zur Seminarorganisation (Anhang A)<br />
den Zeitaufwand nach <strong>der</strong> Function Point-Methode.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
Function Points <strong>zum</strong> Pflichtenheft Seminarorganisation<br />
/F10/ Es handelt sich um drei getrennte Eingaben (Ersterfassung, Än<strong>der</strong>ung,<br />
Löschung). Die Ersterfassung ist sicher am umfangreichsten, wahrscheinlich<br />
sind mehr als 10 Datenelemente zu erfassen, auf die Datenbank<br />
muß schreibend zugegriffen werden, die Ansprüche an die Bedienerführung<br />
sind hoch. Die Ersterfassung ist daher eine komplexe Eingabe.<br />
Bei <strong>der</strong> Än<strong>der</strong>ung wird auf die Datenbank lesend und schreibend<br />
zugegriffen. Die Ansprüche an die Bedienerführung sind normal, die<br />
Anzahl <strong>der</strong> zu än<strong>der</strong>nden Datenelemente kann von gering bis hoch reichen.<br />
Daher erscheint hier eine mittlere Klassifizierung angebracht. Das<br />
Löschen eines Kundeneintrags erfor<strong>der</strong>t logische Überprüfungen und<br />
einen Datenbankzugriff auf Seminarbuchungen. Das Löschen wird daher<br />
auch als Mittel klassifiziert.<br />
Ergebnis: 1 komplexe Eingabe, 2 mittlere Eingaben<br />
/F15/ Analog zu /F10/<br />
Ergebnis: 1 komplexe Eingabe, 2 mittlere Eingaben<br />
/F20/-/F55/ Die Anmeldung eines Kunden erfor<strong>der</strong>t die Eingabe <strong>der</strong> notwendigen<br />
Kundendaten und einige Überprüfungen ( /F30/ - /F55/ ).<br />
Ergebnis: 1 mittlere Eingabe<br />
/F60/ Der Versand einer Anmeldebestätigung erfor<strong>der</strong>t die Kombination<br />
einiger Kunden- und Seminardaten mit Standardtexten. Eine Druckaufbereitung<br />
ist erfor<strong>der</strong>lich.<br />
Ergebnis: 1 mittlere Ausgabe.<br />
➜<br />
Aufgabe<br />
Lösung
F70/ Die Abmeldung eines Kunden die Eingabe <strong>der</strong> notwendigen Kundendaten<br />
und die Überprüfungen nach /F80 - F110/.<br />
Ergebnis: 1 mittlere Eingabe<br />
/F115/ Die Benachrichtigung <strong>der</strong> Teilnehmer erfor<strong>der</strong>t mehrere Zugriffe auf<br />
die Kunden- und Seminardaten, die mit Standardtexten kombiniert ausgedruckt<br />
werden.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/F120/ Bei Seminarbuchungen muß nur <strong>der</strong> Zusammenhang zwischen<br />
Kunden und Seminarveranstaltungen hergestellt werden. Daher ist die<br />
Anzahl <strong>der</strong> Datenelemente gering, jedoch ist eine logische Überprüfung<br />
mit DB-Zugriffen erfor<strong>der</strong>lich. Die drei Eingaben werden daher als mittel<br />
klassifiziert.<br />
Ergebnis: 3 mittlere Eingaben<br />
/F125/ Analog zu /F120/<br />
Ergebnis: 3 mittlere Eingaben<br />
/F130/ Das Erstellen von Adressenaufklebern erfor<strong>der</strong>t kein Suchen in den<br />
Kundendaten, da für alle Kunden Adressenaufkleber zu erstellen sind.<br />
Aufgrund <strong>der</strong> erfor<strong>der</strong>lichen Druckaufbereitung wird eine mittlere Ausgabe<br />
angenommen.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/F135/ Analog zu /F130/<br />
Ergebnis: 1 mittlere Ausgabe<br />
/F140/ Die Eingabe von Zahlungsverzügen erfor<strong>der</strong>t 1-5 Datenelemente und<br />
eine formale Prüfung. Die Ansprüche an die Bedienerführung sind gering.<br />
Ergebnis: 1 einfache Eingabe<br />
➜<br />
Aufgabe<br />
Lösung
F150/ Analog wie /F10/ aber für Seminarveranstaltungen und für Seminartypen.<br />
Ergebnis: 2 komplexe Eingaben, 4 mittlere Eingaben<br />
/F160/ Stornieren erfor<strong>der</strong>t sicher nicht mehr als 5 unterschiedliche Datenelemente<br />
in <strong>der</strong> Eingabe. Eine formale Eingabeprüfung ist hinreichend.<br />
Ergebnis: 1 einfache Eingabe<br />
/F170/ Analog zu /F160/.<br />
Ergebnis: 1 einfache Eingabe<br />
/F180/ Analog zu /F10/.<br />
Ergebnis: 1 komplexe Eingabe, 2 mittlere Eingaben<br />
/F185/ Analog zu /F130/.<br />
Ergebnis: 1 mittlere Ausgabe<br />
/F190/ Das Erstellen <strong>der</strong> Teilnehmerliste für eine bestimmte Seminarveranstaltung<br />
erfor<strong>der</strong>t eine einfache Eingabe zur Festlegung <strong>der</strong> Seminarveranstaltung.<br />
Hinzu kommt eine mittlere Ausgabe aufgrund des erfor<strong>der</strong>lichen<br />
Durchsuchens <strong>der</strong> Kundendaten und <strong>der</strong> Druckaufbereitung.<br />
Ergebnis: 1 einfache Eingabe, 1 mittlere Ausgabe<br />
/F200/ Analog zu /F190/.<br />
Ergebnis: 1 einfache Eingabe, 1 mittlere Ausgabe<br />
/F210/ Eine Rechnung muß Daten über den Kunden, die Seminarveranstaltung<br />
und den Seminartyp enthalten. Dazu sind mehrere DB-Zugriffe<br />
erfor<strong>der</strong>lich. Es dürften mehr als 10 Datenelemente ausgegeben werden.<br />
Daraus ergibt sich eine komplexe Ausgabe.<br />
Ergebnis: 1 komplexe Ausgabe<br />
/F220/ Die Erzeugung <strong>der</strong> Rechenkopie erfor<strong>der</strong>t keine Druckaufbereitung.<br />
Die Komplexität <strong>der</strong> auszugebenden Daten liegt im mittleren Bereich.<br />
Ergebnis: 1 mittlere Ausgabe ➜<br />
Aufgabe<br />
Lösung
F230/-/F250W/ Die Anfragen werden mittels Endbenutzersprachen durchgeführt.<br />
Daher werden sie hier nicht gewertet.<br />
/D10/ Die Anzahl <strong>der</strong> Datenelemente ist kleiner als 20. Es wird ein Schlüssel<br />
verwendet.<br />
Ergebnis: 1 einfacher Datenbestand<br />
/D20/ Analog zu /D10/.<br />
Ergebnis: 1 einfacher Datenbestand<br />
/D30/ Analog zu /D10/.<br />
Ergebnis: 1 einfacher Datenbestand<br />
/D40/-/D70/ Jeweils analog zu /D10/.<br />
Ergebnis: 4 einfache Datenbestände<br />
Gesamtergebnis:<br />
Eingaben: 5 *einfach(3) = 15<br />
18 *mittel(4) = 72<br />
5 *komplex(6) = 30<br />
Ausgaben: 8 * mittel(5) = 40<br />
1 * komplex(7) = 7<br />
Datenbestände: 7 * einfach(7) = 49<br />
Summe Function Points E1 = 213<br />
➜<br />
Aufgabe<br />
Lösung
Die Einfußfaktoren werden folgen<strong>der</strong>maßen bewertet:<br />
1 Verflechtung mit an<strong>der</strong>en Anwendungssystemen (0-5) = 0<br />
2 dezentrale Daten/Verarbeitung (0-5) = 0<br />
3 Transaktionsrate: Wegen /LL10/ (0-5) = 3<br />
4 Verarbeitungslogik<br />
a.Rechenoperationen (0-10) = 3<br />
b.Kontrollverfahren (0-5) = 3<br />
c. Ausnahmeregelungen (0-10) = 3<br />
d.Logik (0-5) = 3<br />
5. Wie<strong>der</strong>verwendbarkeit (0-5) = 0<br />
6. Datenbestandskonvertierungen (0-5) = 0<br />
7. Anpaßbarkeit (0-5) = 3<br />
Summe <strong>der</strong> sieben Einflüsse E2 = 18<br />
Faktor Einflußbewertung E3 E2/100+0,7=18/100+0,7 = 0,88<br />
Bewertete Function Points E1*E3 = 213*0,88 = 187 FP<br />
Aufwand nach IBM-Tabelle (interpoliert) ≈ 12 MM<br />
Optimale Entwicklungsdauer=2,5*12 0,35 [Monate] = 6 [Monate]<br />
Die durchschnittliche Größe des Entwicklungsteams beträgt:<br />
Anzahl Mitarbeiter= 12 MM/6 Monate = 2 Mitarbeiter<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 1<br />
1 Lernziel: Für eine gegebene Problemstellung Funktionen hierarchisch glie<strong>der</strong>n<br />
und einen Funktionsbaum konstruieren können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Glie<strong>der</strong>n Sie die Funktionen zur Seminarverwaltung <strong>der</strong> Firma Teachware.<br />
(Anhang A)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
verwalte Seminare<br />
und Kunden<br />
verwalte<br />
Seminartypen<br />
/F150/<br />
erfasse Seminartypstamm<br />
aktualisiere<br />
Seminartypdaten<br />
lösche<br />
Seminartypdaten<br />
verwalte Seminarveranstaltungen<br />
/F150/<br />
erfasse Seminarveranstaltungsstamm<br />
aktualisiere<br />
Seminarveranstaltungsdaten<br />
lösche Seminarveranstaltungsstamm<br />
storniere Seminarveranstaltung<br />
/F160/<br />
trage Seminardurchführung<br />
ein /F170/<br />
verwalte<br />
Seminare<br />
beantworte<br />
Seminaranfragen<br />
/F230/<br />
erstelle<br />
Teilnehmerliste<br />
/F190/<br />
erstelle Teilnehmerurkunden<br />
/F200/<br />
verwalte<br />
Dozenten<br />
erfasse<br />
Dozentenstamm<br />
aktualisiere<br />
Dozentenstammdaten<br />
lösche<br />
Dozentenstamm<br />
trage Zuordnung<br />
Seminartyp ein<br />
trage Zuordnung<br />
Seminarveranstaltung<br />
ein<br />
verschicke<br />
Serienbrief<br />
/F185/<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 2<br />
2 Lernziel: Für eine gegebene Problemstellung Funktionen hierarchisch glie<strong>der</strong>n<br />
und einen Funktionsbaum konstruieren können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Glie<strong>der</strong>n Sie die Funktionenen zur Roboteranimation. (Anhang B)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
einlesen von<br />
Steuerbefehlen<br />
/F10/<br />
überprüfen auf<br />
korrekte Syntax<br />
und Semantik<br />
verwalte<br />
Oberarm<br />
berechne<br />
Oberarmdaten<br />
überprüfe<br />
auf erlaubte<br />
Position<br />
zeichne<br />
Oberarm<br />
lösche<br />
Oberarm<br />
animieren<br />
des Roboters<br />
verwalte<br />
Unterarm<br />
berechne<br />
Unterarmdaten<br />
überprüfe<br />
auf erlaubte<br />
Position<br />
zeichne<br />
Unterarm<br />
lösche<br />
Unterarm<br />
zeichne<br />
Grundstellung<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 3<br />
3 Lernziel: Regeln für die Syntax und Semantik von Datenfluß-Diagrammen<br />
kennen und anwenden können<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Betrachten Sie folgendes Datenfluß-Diagramm. Welche Fehler erkennen Sie?<br />
Kunde<br />
Anzahl_Bestellungen<br />
Bestellung<br />
Anschrift<br />
Kundendatei<br />
Verwalte<br />
Bestellungen<br />
1<br />
Anschrift<br />
Artikelnummer<br />
Rechnungen<br />
Artikelpreis<br />
Artikelbezeichnung<br />
Artikeldaten<br />
Ermittle<br />
Artikelpreise<br />
2<br />
Kunde<br />
Artikeldaten<br />
Sachbearbeiter<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Das Datenfußdiagramm zur Kundenverwaltung enthält folgende Fehler:<br />
1 Der Datenfluß »erhöhe_Anzahl_<strong>der</strong>_Bestellungen« enthält ein Verb und<br />
führt von einem Prozeß <strong>zum</strong> selben Prozeß (Schleife). Richtig wäre es,<br />
einen Speicher »Anzahl_<strong>der</strong> Bestellung« einzuzeichnen, <strong>der</strong> lesend/<br />
schreibend von Prozeß1 benutzt wird.<br />
2 Der Name des Datenflusses »Anschrift« ist ungeschickt. Besser ware es,<br />
ihn als »Kundenanschrift« zu bezeichnen.<br />
3 Die Speicher »Kundendatum« und »Rechnungen« sind direkt mit einem<br />
Datenfluß verbunden. Richtig wäre es, einen dritten Prozeß »erstelle<br />
Rechnungen« einzuzeichnen, <strong>der</strong> die »Kundenanschrift«, dit »Artikelbezeichnung«<br />
und den »Artikelpreis« als Eingabedatenflüsse sowie<br />
»Rechnungen« als Ausgabedatenfluß besitzt.<br />
4 Ein Datenfluß von Speicher »Rechnungen« zu Schnittstelle »Kunde« ist<br />
nicht erlaubt.<br />
5 Der Datenfluß »Artikeldaten« von <strong>der</strong> Schnittstelle »Sachbearbeiter« direkt<br />
in den Speicher »Artikeldaten« ist nicht erlaubt. Richtig wäre es, einen<br />
Prozeß »aktualisiere Artikeldateien« einzuzeichnen.<br />
6 Der Datenfluß »Auskünfte« zwischen den externen Schnittstellen ist nicht<br />
erlaubt. Richtig wäre es, einen Prozeß »erteile Auskünfte« einzuzeichnen.<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 4<br />
4 Lernziel: Regeln für die Syntax und Semantik von Datenfluß-Diagrammen<br />
kennen und anwenden können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Betrachten Sie folgendes Datenfluß-Diagramm. Welche Fehler erkennen Sie?<br />
Hilfsassistenten<br />
Hiwi-Gel<strong>der</strong><br />
Bezahlung<br />
Stundenzahl<br />
Studentendaten<br />
bezahlte<br />
Hiwis<br />
1<br />
Sekretärin<br />
Beschäftigungszeitraum<br />
Adreßän<strong>der</strong>ung<br />
Studenten einstellen<br />
Sekretärin<br />
Start<br />
Studentendaten<br />
Arbeitsverträge<br />
verlängern<br />
2<br />
Arbeitsvertrag<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Das Datenflußdiagramm zur HiWi-Verwaltung enthält folgende Fehler:<br />
1 Der Datenflußname »Studenten einstellen« enthält ein Verb. Richtig wäre es z.B.,<br />
den Datenfluß »Einstellungsdaten« zu nennen.<br />
2 Der Datenfluß »Studenten einstellen« führt von einer Schnittstelle direkt zu einem<br />
Speicher. Richtig wäre es, einen zusätzlichen Prozeß »Studenten einstellen« einzuzeichnen,<br />
<strong>der</strong> den Datenfluß »Einstellungsdaten« in den Datenfluß »Studentendaten«<br />
transformiert und den Speicherzugriff kontrolliert.<br />
3 Der Datenfluß »Studenten einstellen« beginnt an <strong>der</strong> Schnittstelle »Sekretärin«.<br />
Besser wäre es, den Datenfluß an <strong>der</strong> Schnittstelle »Hilfsassistenten« zu beginnen,<br />
weil die Studentendaten ursprünglich von den Hilfsassitenten stammen. Die Eingabe<br />
über die Sekretärin ist nicht zwingend, son<strong>der</strong>n eine mögliche Implementierung.<br />
4 Der Datenflußname »Adressän<strong>der</strong>ung« enthält zwar kein Verb, impliziert aber<br />
dennoch eine Tätigkeit. Richtig wäre es z.B. den Datenfluß »geän<strong>der</strong>te Adressen«<br />
zu nennen.<br />
5 Der Datenfluß »Adressän<strong>der</strong>ung« beginnt an <strong>der</strong> Schnittstelle »Sekretärin«. Besser<br />
wäre es, den Datenfluß an <strong>der</strong> Schnittstelle Hilfsassistenten« zu beginnen, weil die<br />
geän<strong>der</strong>ten Adressen ursprünglich von den Hilfsassistenten stammen. Die Eingabe<br />
über die Sekretärin ist nicht zwingend, son<strong>der</strong>n eine mögliche Implementierung.<br />
6 Der Datenfluß zwischen den beiden Prozessen hat keinen Namen. Richtig wäre es,<br />
den Datenfluß mit einem aussagekräftigen Datenflußnamen zu beschriften.<br />
7 Der Datenfluß »Start« ist ein Kontrollfluß. Richtig wäre es, ihn aus dem Diagramm<br />
zu entfernen.<br />
8 Der Datenfluß »HiWi-Gel<strong>der</strong>« beginnt im Nichts. Richtig wäre es, ihn z. B. von einer<br />
weiteren Schnittstelle »Univerwaltung« aus einzuzeichnen.<br />
9 Der Datenfluß »Arbeitsvertag« endet im Nichts. Richtig wäre es, ihn z. B. zur<br />
Schnittstelle »Hilfsassistenten« zu führen.<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 5<br />
5 Lernziel: Für eine gegebene Problemstellung Schnittstellen, Funktionen und<br />
Speicher ermitteln und den Informationsfluß dazwischen beschreiben können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Zeichnen Sie ein Datenflußdiagramm, das den Seminarverwaltungsteil <strong>der</strong><br />
Fallstudie Seminarorganisation beschreibt. Berücksichtigen Sie folgende<br />
Anfor<strong>der</strong>ungen aus dem Pflichtenheft: /F150/, /D40/, /D50/, /D60/, /F160/,<br />
/F170/, /F180/ (Anhang A).<br />
Lösungshinweis: Überlegen Sie sich zunächst die Schnittstellen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
/F150/ Ersterfassung, Än<strong>der</strong>ung und Löschung einer Seminarveranstaltung und<br />
Seminartypen<br />
/F160/ Stornierung von Seminarterminen<br />
/F170/ Durchführung eines Seminars eintragen<br />
/F180/ Ersterfassung, Än<strong>der</strong>ung und Löschung von Dozenten, Zuordnen zu Seminarveranstaltungen<br />
und Seminartypen<br />
/D40/ Seminar /D50/ Seminartypen /D60/ Dozent<br />
Durchführungsdaten /F170/<br />
Stornierungsdaten<br />
/F160/ Seminar-<br />
Seminarsachbearbeiterv<br />
Seminartypdaten<br />
veranstaltungsdaten<br />
Seminaraufkünfte<br />
Seminarauftragsdaten<br />
verwalte<br />
Seminartypen<br />
/F150/<br />
verwalte<br />
Seminarveranstaltung<br />
/F150/<br />
beantworte<br />
Seminaranfragen<br />
Dozentendaten /D60/<br />
Seminarveranstaltungsdaten<br />
/D40/<br />
Dozenten-Nr.<br />
Seminartypdaten /D50/<br />
verwalte<br />
Dozentendaten<br />
Dozenten-Nr.<br />
Dozentendaten<br />
Dozent<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 6<br />
6 Lernziel: Für eine gegebene Problemstellung Schnittstellen, Funktionen und<br />
Speicher ermitteln und den Informationsfluß dazwischen beschreiben können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Zeichnen Sie ein Datenflußdiagramm zur Fallstudie Roboteranimation (Anhang<br />
B). Da man sich hier auf einem an<strong>der</strong>en Abstraktionsniveau befindet, verwenden<br />
Sie bitte folgende zwei Schnittstellen: Bediener und Grafikbildschirm.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
Bediener<br />
Befehle<br />
Hinweise<br />
Einlesen<br />
von Steuerbefehlen<br />
Grundeinstellungsdaten<br />
geprüfte<br />
Befehle<br />
Verwalten<br />
<strong>der</strong><br />
Animation<br />
?<br />
Winkel<br />
Winkel<br />
Zeichne<br />
Grundstellung<br />
Berechne<br />
Oberarmdaten<br />
Berechne<br />
Unterarmdaten<br />
Koordinaten<br />
Koordinaten<br />
Koordinaten<br />
Grafikbildschirm<br />
Ein Problem besteht in dem mit ? markierten Pfeil. Hier fließen keine echten<br />
Daten. Es handelt sich vielmehr um einen Kontrollfluß, <strong>der</strong> den Prozeß »zeichne<br />
Grundstellung« anstößt. Kontrollflüsse lassen sich erst in <strong>der</strong> RT-Erweiterung<br />
von SA darstellen (siehe Kapitel 2.20)<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 7<br />
7 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Was bedeuten:<br />
a A = (B)<br />
b A = 0 {B}1<br />
c A = [B]<br />
d AB = [A | B | A+B]<br />
e A = ({B})<br />
f A = {B}<br />
g A = 1{B}<br />
h A = {B}1<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
a A = (B) A besteht optional aus B<br />
b A = 0 {B}1 äquivalent zu a<br />
c A = [B] nicht erlaubte Notation (es müssen mindestens<br />
2 Alternativen angegeben werden)<br />
d AB = [A | B | A+B] AB besteht entwe<strong>der</strong> aus A o<strong>der</strong> aus B<br />
o<strong>der</strong> aus A und B<br />
e A = ({B}) A besteht aus keiner o<strong>der</strong> beliebig vielen<br />
Wie<strong>der</strong>holungen von B<br />
f A = {B} äquivalent zu e (bessere Lösung als e)<br />
g A = 1{B} A besteht aus (mindestens) einer o<strong>der</strong> mehreren<br />
Wie<strong>der</strong>holungen von B<br />
h A = {B}1 äquivalent zu A = (B)<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 8<br />
8 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
A = B + [C|D+E|F]<br />
Welche <strong>der</strong> folgenden Ausdrücke sind in <strong>der</strong> angegebenen Definition enthalten?<br />
a A = B<br />
b A = B+C+F<br />
c A = B+D+E<br />
d A = B+C<br />
e A = B+F<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 8<br />
A = B + [C|D+E|F]<br />
a A = B<br />
b A = B+C+F<br />
c A = B+D+E<br />
d A = B+C<br />
e A = B+F<br />
Bis auf a und b sind alles richtige Instanzen.<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 9<br />
9 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 2 Minuten<br />
Aufgabe:<br />
Sind folgende Definitionen sinnvoll (im Zusammenhang)?<br />
A = B+(C)<br />
B = {D} + [E | F] + G<br />
D = H + A + { I }<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 9<br />
Die Definitionen sind im Zusammenhang nicht sinnvoll, da sie zirkular sind.<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 10<br />
10 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Die an einem Lehrstuhl beschäftigten Hilfsassistenten sollen in einer Datei<br />
verwaltet werden. Über jeden Hilfsassistenten sind folgende Informationen<br />
aufzubewahren:<br />
Name, Vorname, Matrikelnummer, Geburtsdatum, Heimatadresse einschl.<br />
Telefon-Nr., Studienadresse einschließlich Telefon-Nr., Studienfach (können<br />
auch mehrere sein), Semesteranzahl, Vordiplom (Ja/Nein, wenn ja, dann Note<br />
und Datum), Beschäftigungszeiten (von, bis, Stundenzahl pro Woche,<br />
Tätigkeitsgebiete, benutzte Software-Systeme), Diplom (Ja/Nein, wenn ja, dann<br />
welche Note und Datum), Arbeitszeugnis ausgehändigt (Ja/Nein, wenn ja,<br />
dann Datum).<br />
Definieren Sie die Datenstrukturen durch ein DD!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 10<br />
HIWI-Datei = {HIWI-Eintrag}<br />
HIWI-Eintrag = Personaldaten + Studiendaten + 1{Beschäftigungsdaten}<br />
Personaldaten = Name + Vorname + Matrikelnummer + Geburtsdatum<br />
+ (Heimatadresse) + Studienadresse<br />
Heimatadresse = Adresse<br />
Studienadresse = Adresse<br />
Adresse = Straße + Hausnummer + (Zimmernummer) + (LKZ)<br />
+ PLZ + Wohnort + (Zustellbezirk) + (TelefonNr.)<br />
Studiendaten = 1{Studienfach} + Semesteranzahl + (Vordiplom) + (Diplom)<br />
Beschäftigungsdaten = Von + (Bis) + Stundenanzahl pro Woche<br />
+ 1{Tätigkeitsgebiete} + {benutzte Software-Systeme}<br />
+ (Arbeitszeugnis)<br />
Von = Datum<br />
Bis = Datum<br />
Arbeitszeugnis = Datum<br />
Vordiplom = Note + Datum<br />
Diplom = Note + Datum<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 11<br />
11 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
Aus <strong>der</strong> Hilfsassistenten-Datei nach Aufgabe 10 ist folgende tabellarische Liste<br />
zu erstellen:<br />
Listenkopf:<br />
“Alphabetische Liste aller Hilfsassistenten“<br />
Listenrumpf:<br />
Name, Vorname, Matrikel-Nr., Studienadresse, Geburtsdatum.<br />
Definieren Sie die Datenstruktur durch ein DD!<br />
Lösungshinweis: Aktuelle Daten, z.B. für Bildschirm- o<strong>der</strong> Druckerausgaben<br />
können in Anführungsstrichen angegeben werden, z.B. Ausgabe = “Text <strong>der</strong><br />
Ausgabe”.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 11<br />
Alphabetische HIWI-Liste = Listenkopf + {Listenrumpf} *In dieser Reihenfolge*<br />
Listenkopf = „Alphabetische Liste aller Hilfsassistenten“<br />
Listenrumpf = Name + Vorname + Matrikelnummer<br />
+ Studienadresse + Geburtsdatum<br />
*In dieser Reihenfolge*<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 12<br />
12 Lernziel: Datenstrukturen als Data Dictionary-Einträge in modifizierter Backus-<br />
Naur-Form definieren und hierarchisch anordnen können durch Wahl geeigneter<br />
Abstraktionsebenen.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Der nachfolgende Ausschnitt aus einem Flugplan soll in Data-Dictionary-Form<br />
(DD) spezifiziert werden.<br />
Gehen Sie top-down vor!<br />
Abflugort<br />
Zielort<br />
Flugtag<br />
(1 = Mo)<br />
Zielflughafen<br />
Abflughafen<br />
Von/From/De Wien/Vienna Schwechat + 01:00<br />
Nach/To/A Saarbrücke Ensholm + 01:00<br />
12345-- 10.40-14.20 LH1453/LH5245 via FRA<br />
1234567 14.35-18.00 LH1459/LH5249 via FRA<br />
12345-7 18.55-22.15 LH1451/LH5251 via FRA<br />
Nach/To/A Stuttgart Echterdingen + 01:00<br />
12345-- 09.45-11.15 LH5521 EM2 C Nonstop<br />
12345-7 19.25-20.30 LH1479 737 F/C Nonstop<br />
1234567 10.40-14.05 LH1453/LH210 via FRA<br />
1234567 14.35-17.45 LH1459/LH218 via FRA<br />
1234567 18.55-22.20 LH1451/LH226 via FRA<br />
Von/From/De Windhuk J.G. Strijdom +02:00<br />
Nach/To/A Frankfurt +01:00<br />
--3---- 20.50-10.35 + SA250 1 Stop<br />
----5-- 20.50-10.30 + SA254 1 Stop<br />
Abflugzeit Ankunftszeit<br />
Kennzchn.<br />
(nächster Tag) Flug-Nr(n) Flugzeugtyp<br />
Zeitdiff. Abflugort<br />
Zeitdiff. Zielort<br />
Sitzplatzkategorie<br />
Stops<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 12<br />
Flugplan = {Abflugort + Abflughafen<br />
+ Zeitverschiebung Abflugort<br />
+ {Flüge zu einem Zielort}}<br />
Flüge zu einem Zielort = Zielort + (Zielflughafen)<br />
+ Zeitverschiebung Zielort<br />
+ {Flugverbindung}<br />
Flugverbindung = 1{Flugtag}7<br />
+ Abflugzeit<br />
+ Ankunftzeit<br />
+ (Kennzeichen)<br />
+ Flug-Nr.<br />
+ (Flugzeugtyp)<br />
+ (Sitzplatzkategorie)<br />
+ Stops<br />
Aufgabe<br />
Lösung
LE 5 Aufgabe 13<br />
13 Lernziel: Datenstrukturen in Jackson Diagramm-Notation definieren können<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Beschreiben Sie den Flugplan nach Aufgabe 12 als Jackson-Diagramm.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 13<br />
Abflugort Abflughafen<br />
Zielort<br />
mögliche<br />
Flugtage<br />
Name des<br />
Zielflughafens<br />
Ablugzeit<br />
Zielflughafen<br />
o<br />
Ankuftszeit<br />
-<br />
Flugplan<br />
Abflugorte<br />
Flugkennung<br />
Zeitverschiebung<br />
<strong>zum</strong> Abflugort<br />
Zeitverschiebung<br />
<strong>zum</strong> Zielort<br />
Flug-<br />
Nr.<br />
Flugzeugtyp<br />
Liste <strong>der</strong> abgehenden<br />
Flüge<br />
Flüge zu<br />
einem Zielort<br />
Liste <strong>der</strong> möglichen<br />
Flugverbindungen<br />
<strong>zum</strong> Zielort<br />
Flugverbindung<br />
Sitzplatzkategorie<br />
Stops<br />
Flugtag *<br />
o<br />
Flugkenn- -<br />
o o<br />
Typenbe- -<br />
o o<br />
Kategoriebe- -<br />
o<br />
zeichenzeichnungzeichnung<br />
o<br />
*<br />
*<br />
*<br />
Aufgabe<br />
Lösung
LE 6 Aufgabe 1<br />
1 Lernziel: Für ein gegebenes ER- Modell die Kardinalitäten 1:C, 1:1, 1:MC<br />
und 1:M angeben können<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Geben Sie für folgende ER-Modelle die Kardinalitäten an:<br />
a<br />
b<br />
c<br />
d<br />
Zug<br />
Lokomotive<br />
Fahrgast<br />
Fahrgast<br />
hält auf<br />
hat<br />
besitzt<br />
hat<br />
Bahnhof<br />
Rä<strong>der</strong><br />
Fahrkarte<br />
Gepäck<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a M:N-Assoziation<br />
b 1:M-Assoziation<br />
c 1:MC-Assoziation (C=Schwarzfahrer)<br />
d N:MC-Assoziation (Gepäck kann mehreren Fahrgästen gehören)<br />
Aufgabe<br />
Lösung
LE 6 Aufgabe 2<br />
2 Lernziel: Für gegebene Beispiele ein ER-Modell erstellen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Eine Fluggesellschaft will ein Informationssystem aufbauen, das es gestattet, folgende<br />
Informationen zu speicher<br />
/1/ Pilot mit folgenden Eigenschaften: Personal-Nr, Name und Alter.<br />
/2/ Flugzeugtyp mit folgenden Eigenschaften: Typ-Bezeichnung, Reisegeschwindigkeit.<br />
/3/ Welcher Pilot fliegt welchen Flugzeugtyp?<br />
/4/ Flugstunden, die ein Pilot insgesamt geflogen ist und die er auf einem<br />
bestimmten Flugzeugtyp geflogen ist.<br />
/5/ Flugstunden, die mit einem Flugzeugtyp insgesamt geflogen wurden.<br />
a Zeichnen Sie das entsprechende ER-Diagramm einschließlich Attributen<br />
(Schlüsselattribute unterstreichen).<br />
b Geben Sie die Kardinalitäten an.<br />
c Geben Sie ein Beispiel in Tabellenform an.<br />
d Die Fluggesellschaft glie<strong>der</strong>t ihre Mitarbeiter in fliegendes Personal (Piloten,<br />
Flugbegleiter) und nichtfliegendes Personal (Bodenpersonal,<br />
Verwaltungspersonal). Erweitern Sie das ER-Diagramm entsprechend und<br />
überlegen Sie sich einige charakteristische Attribute für die jeweilige<br />
Mitarbeitergruppe.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a,b<br />
0,m 0,m<br />
Pilot fliegt Flugzeugtyp<br />
PersonalNR<br />
Name<br />
Alter<br />
Flugstunden<br />
Flugstunden Typ-Bezeichnung<br />
Reisegeschwindigkeit<br />
Flugstunden<br />
Hinweis: Die Kardinalitäten sind hier in numerischer Notation angegeben<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
c<br />
Pilot<br />
Flugzeugtyp<br />
Fliegt<br />
PersonalNR<br />
39140<br />
47187<br />
23141<br />
28137<br />
Name Alter Flugstunden<br />
Typ-Bezeichnung Reisegeschwindigkeit Flugstunden<br />
Boeing 747<br />
Boeing 737<br />
Airbus A310<br />
Airbus A320<br />
Schauer<br />
Böttcher<br />
Prause<br />
Schmidt<br />
PersonalNR Typ-Bezeichnung Flugstunden<br />
39140<br />
39140<br />
47187<br />
23141<br />
800<br />
700<br />
850<br />
800<br />
Boeing 747<br />
Airbus A310<br />
Boeing 747<br />
Boeing 737<br />
38<br />
40<br />
45<br />
43<br />
10021<br />
15302<br />
14987<br />
12188<br />
7984<br />
1118<br />
4305<br />
62<br />
1740<br />
1500<br />
2300<br />
1500<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
d<br />
nichtfliegendes<br />
Personal<br />
PersonalNR<br />
Einsatzort<br />
Personal<br />
is-a<br />
fliegendes<br />
Personal<br />
PersonalNR<br />
Name<br />
Alter<br />
PersonalNR<br />
Flugstunden<br />
fliegt<br />
hier das Modell von<br />
a), b) anfügen<br />
Hinweis:Die Kardinalitäten sind hier in numerischer Notation angegeben.<br />
Aufgabe<br />
Lösung
LE 6 Aufgabe 3<br />
3 Lernziel: Für gegebene Beispiele ein ER-Modell erstellen können<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Eine Bibliothek ist zu verwalten.<br />
/1/ Ein Leser kann sich max. 20 Bücher (Buchexemplare!) ausleihen.<br />
/2/ Von einem Buch gibt es im allgemeinen mehrere Exemplare.<br />
/3/ Ist ein gewünschtes Buch nicht vorhanden, so kann es von den Lesern<br />
vorbestellt werden.<br />
/4/ Pro Leser sind maximal zehn Vorbestellungen möglich.<br />
/5/ Für jedes Buch sind <strong>der</strong> Titel und bis zu drei Autoren zu speichern.<br />
/6/ Einige Bücher besitzen einen Herausgeber.<br />
/7/ Bei <strong>der</strong> Aufnahme in die Bibliothek erhält jedes Exemplar eine eindeutige<br />
Inventarnummer.<br />
/8/ Für jeden Leser werden <strong>der</strong> Name und die Adresse gespeichert.<br />
/9/ Bei <strong>der</strong> Ausleihe werden das Ausleihdatum und das Rückgabedatum<br />
gespeichert.<br />
a Erstellen Sie das ER-Diagramm mit Attributen. Schlüssel sind zu unterstreichen.<br />
b Geben Sie die Kardinalitäten an (mit konkreten Obergrenzen, wenn möglich).<br />
c Geben Sie ein Beispiel in Tabellenform an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a,b<br />
vorbestellen<br />
0,10<br />
Titel<br />
Autor 1<br />
Autor 2<br />
Autor 3<br />
Herausgeber<br />
0,m<br />
Buch<br />
1,m<br />
gibt es<br />
Leser ausleihen<br />
0,20 0,1<br />
Name<br />
Adresse<br />
ISBN<br />
Ausleihdatum<br />
Rückgabedatum<br />
Exemplar<br />
Inventar-NR<br />
Hinweis: Die Kardinalitäten sind in numerischer Notation angegeben<br />
1<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 3<br />
c<br />
Leser Name Adresse<br />
Müller<br />
Prause<br />
Böttcher<br />
Bahnhofstr. 134, 4600 Dortmund<br />
Hauptstr. 210, 4630 Bochum<br />
Kölner Straße 4, 4000 Düsseldorf<br />
Buch ISBN Autor 1 Autor 2 Herausgeber Titel<br />
0-13-629981-4 Coad Yourdon Marttine Object Oriented Analysis<br />
3-411-14361-4 Liggesmeyer Balzert Modultest und Modulverifikation<br />
vorbestellen Name ISBN<br />
Müller<br />
0-13-629981-4<br />
Exemplar InventarNR ISBN<br />
91/45<br />
90/27<br />
0-13-629981-4<br />
3-411-14361-4<br />
ausleihen Name InventarNR Ausleihdatum Rückgabedatum<br />
Prause<br />
Müller<br />
91/45<br />
90/27<br />
02.04.91 30.04.91<br />
15.04.91 13.05.91<br />
Aufgabe<br />
Lösung
LE 6 Aufgabe 4<br />
4 Lernziel: Für gegebene Beispiele ein ER-Modell erstellen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
In einer Datenbank für CASE-Werkzeuge sind folgende Informationen über Werkzeuge<br />
zu speichern:<br />
/1/ Jedes Werkzeug wird von einem Anbieter vertrieben. Ein Anbieter vertreibt in<br />
<strong>der</strong> Regel mehrere Werkzeuge.<br />
/2/ Ein Werkzeug kann auf mehreren Betriebssystemen (BS) laufen (eindeutiger<br />
BS-Name!). Für ein Betriebssystem gibt es in <strong>der</strong> Regel mehrere Werkzeuge.<br />
/3/ Jede betriebssystem-spezifische Werkzeug-Version hat einen eigenen Preis.<br />
/4/ Pro Werkzeug sind zu speichern: Werkzeugname (eindeutig!), Installationszahl<br />
und eine Beschreibung.<br />
/5/ Zum Anbieter sind <strong>der</strong> Name (eindeutig!), die Adresse und die Anzahl <strong>der</strong> Mitarbeiter<br />
in <strong>der</strong> Werkzeugentwicklung zu speichern.<br />
/6/ Ein Werkzeug kann Komponente einer CASE-Umgebung sein. Eine CASE-<br />
Umgebung enthält i.allg. mehrere Werkzeuge.<br />
/7/ Für jede CASE-Umgebung soll die Datenbank den Produkt-Namen (eindeutig!)<br />
und das Jahr <strong>der</strong> Erstinstallation enthalten.<br />
a Erstellen Sie das ER-Diagramm (einschl. <strong>der</strong> Attribute; Schlüssel unterstreichen).<br />
b Geben Sie die Kardinalitäten an.<br />
c Geben Sie ein Beispiel in Tabellenform an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a,b<br />
W-Name Install. Zahl Beschreibung<br />
A-Name Adresse<br />
1<br />
1,m<br />
Werkzeug vertreibt Anbieter<br />
1,m<br />
0,1<br />
enthält<br />
2,m<br />
CASE-<br />
Umgebung<br />
Produkt-Name Erstinstallation<br />
läuft<br />
auf<br />
Preis<br />
Betriebssystem<br />
BS-Name<br />
Anz. Werkzeug-Entwickler<br />
Hinweis: Die Kardinalitäten sind hier in numerischer Notation angegeben.<br />
1,m<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 4<br />
c<br />
Anbieter<br />
A-Name Adresse Mitarbeiter<br />
SoftWAIR<br />
Teachsoft<br />
Robware<br />
Flughafenstr. 2<br />
6000 Frankfurt<br />
Regensburger Str. 13<br />
8000 München<br />
Bahnhofstr. 138<br />
7000 Stuttgart<br />
30<br />
120<br />
Werkzeug W-Name Installationszahl Beschreibung<br />
Rob Tool SA 128<br />
Strukturierte Analyse<br />
Rob Tool SD 87<br />
Strukturierter Entwurf<br />
DB Tool IM 273<br />
Information Model<br />
SoftWAIR Case IM 17<br />
Information Model<br />
SoftWAIR Case SD 13<br />
Strukturierter Entwurf<br />
85<br />
Produkt-Name A-Name<br />
RobTool RobWare<br />
RobTool<br />
SoftWAIR Case<br />
SoftWAIR Case<br />
RobWare<br />
Teachsoft<br />
SoftWAIR<br />
SoftWAIR<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 4<br />
c<br />
CASE Umgebung Produkt-Name Erstinstallation<br />
Rob Tool<br />
SoftWAIR Case<br />
1984<br />
1988<br />
läuft auf W-Name BS-Name Preis<br />
Rob Tool SA<br />
Rob Tool SD<br />
Rob Tool SA<br />
Rob Tool SD<br />
DB Tool IM<br />
SoftWAIR Case IM<br />
SoftWAIR Case IM<br />
SoftWAIR Case SD<br />
MS-DOS<br />
MS-DOS<br />
Unix<br />
MVS<br />
MS-DOS<br />
Unix<br />
MVS<br />
Unix<br />
2.000<br />
2.000<br />
20.000<br />
200.000<br />
8.000<br />
32.000<br />
300.000<br />
40.000<br />
Aufgabe<br />
Lösung
LE 6 Aufgabe 5<br />
5 Lernziel: Für gegebene Beispiele eine Assoziationsmatix erstellen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Ergänzen Sie die Tab. 2.10-3 um die in Aufgabe 1 von Lehreinheit 5 ermittelten<br />
Funktionen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Funktionen<br />
Dateien<br />
erfasse Seminartypstammdaten<br />
aktualisierte Seminartypdaten<br />
lösche Seminartypstammdaten<br />
erfasse Seminarveranstaltgsstamm<br />
aktualisiere Seminarveranststamm<br />
lösche Seminarveranstaltgsstamm<br />
storniere Seminarveranstaltung<br />
trage Seminardurchführung<br />
ein<br />
Kunde<br />
Firma Zahlungsverzug<br />
bucht Seminarveranstaltung<br />
wird<br />
durchgeführt<br />
von<br />
u u<br />
d d<br />
Legende: c = create; u = update; r = read; d = delete<br />
u<br />
u<br />
Dozent<br />
ist<br />
zugeordnet<br />
Seminartyp<br />
r c c<br />
d d d<br />
c c r r<br />
r<br />
u<br />
u<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 5<br />
Funktionen<br />
Dateien<br />
beantworte Seminaranfragen<br />
erstelle Teilnehmerliste<br />
erstelle Teilnehmerurkunden<br />
erfasse Dozentenstamm<br />
aktualisiere Dozentendaten<br />
lösche<br />
Dozentenstamm<br />
trage Zuordnung<br />
Seminartyp ein<br />
trage Zuordnung<br />
Seminarveran. ein<br />
Kunde<br />
Firma Zahlungsverzug<br />
bucht Seminarveranstaltung<br />
r r r r<br />
r<br />
r<br />
Legende: c = create; u = update; r = read; d = delete<br />
r<br />
r<br />
r<br />
wird<br />
durchgeführt<br />
von<br />
r<br />
c<br />
Dozent<br />
r<br />
c<br />
u<br />
d<br />
ist<br />
zugeordnet<br />
c<br />
Seminartyp<br />
r<br />
Aufgabe<br />
Lösung
LE 7 Aufgabe 1<br />
1 Lernziele: Die Begriffe Klasse, Oberklasse, Unterklasse, Objekt, Attribut, Operation,<br />
Einfachvererbung, Mehrfachvererbung, abstrakte Klasse, Botschaft und<br />
Polymorphismus erklären können.<br />
Zeit: 1 Stunde<br />
Aufgabe:<br />
Auf <strong>der</strong> beigefügten <strong>CD</strong>-ROM finden Sie eine Demonstrationsversion des interaktiven,<br />
multimedialen Lernsystems Object-Lab. Lösen Sie in diesem System<br />
bitte die Aufgaben, die Sie bei folgenden Einstellungen angezeigt bekommen:<br />
Benutzer: Anfänger<br />
Lernziel: zuerst »Wissen«, danach »Verstehen«<br />
Lernstrategie: Selbstnavigation o<strong>der</strong> Tutor<br />
Themen: OO<br />
Notation: Coad/Yourdon<br />
Aufgabe<br />
Lösung
LE 7 Aufgabe 2<br />
2 Lernziele:<br />
Für gegebene Beispiele ein Klassen-Diagramm zeichnen können.<br />
Operationen spezifizieren können einschließlich <strong>der</strong> Verwendung von impliziten<br />
Operationen.<br />
Die angegebenen Notationen von Coad/Yourdon und Rumbaugh et.al. sowie<br />
die »Unified Notation« kennen und wahlweise für Klassen-Diagramme anwenden<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
Eine Firma möchte sich durch ein zu entwickelndes Software-System in die Lage<br />
versetzen, ihre Telefonanlage zu verwalten. Dabei sollen in einem ersten Schritt<br />
eine Klasse Telefon und eine Klasse Telefonanlage spezifiziert werden.<br />
Jedes Telefon ist an eine Telefonanlage angeschlossen. Die Telefonanlage stellt<br />
die Verbindung <strong>zum</strong> Telefonnetz <strong>der</strong> Post her und kann maximal 901 Nebenstellen<br />
verwalten (3-stellige Durchwahl, 0 = Zentrale). Für jedes Telefon müssen die<br />
Nebenstellennummer des Apparats, die Berechtigungsstufe (international, national,<br />
intern) sowie <strong>der</strong> Aufstellort und die Anzahl <strong>der</strong> verbrauchten Einheiten gespeichert<br />
werden. Es soll möglich sein, ein Telefon zu sperren, wenn eine Maximalzahl<br />
von Einheiten verbraucht ist. Dazu ist eine Operation Sperren zu spezifizieren,<br />
an die eine Botschaft mit <strong>der</strong> Anzahl <strong>der</strong> maximal erlaubten Telefoneinheiten<br />
zu schicken ist.<br />
Für die Telefonanlage wird die Anzahl <strong>der</strong> zur Verfügung stehenden Amtsleitungen,<br />
die Amtsnummer und eine Anlagenkennung gespeichert.<br />
➜<br />
Aufgabe<br />
Lösung
LE 7 Fortsetzung Aufgabe 2<br />
a Erstellen Sie ein Klassen-Diagramm für das beschriebene Szenario in einer<br />
von Ihnen zu wählenden Notation.<br />
b Erweitern Sie die Klasse Telefon um eine Operation »GesamtSperren«, die<br />
an alle Telefone, <strong>der</strong>en Einheitenstand einen bestimmten Wert überschritten<br />
hat, die Botschaft Sperren schickt. Spezifizieren Sie diese Operation. Dabei<br />
ist zu beachten, daß die Operation Sperren <strong>der</strong> Klasse Telefon benutzt werden<br />
muß.<br />
Durch den technischen Fortschritt ist es erfor<strong>der</strong>lich geworden, das Software-<br />
System um verschiedene Telefonarten zu erweitern (Fax und ISDN-Gerät). Bei<br />
Fax-Geräten muß zusätzlich zu den Telefondaten die Stationskennung (Text) und<br />
bei ISDN-Geräten die Art des Anschlusses (Modem, PC-Karte, Telefon) gespeichert<br />
werden. Die Operation <strong>zum</strong> Sperren <strong>der</strong> Geräte muß aufgrund verän<strong>der</strong>ter<br />
Hardware-Eigenschaften neu spezifiziert werden.<br />
c Än<strong>der</strong>n Sie das Klassendiagramm so ab, daß <strong>der</strong> neuen Situation Rechnung<br />
getragen wird. Die bereits implementierten Klassen sollen möglichst unverän<strong>der</strong>t<br />
übernommen werden. Welche objektorientierten Konzepte nutzen Sie<br />
dabei aus?<br />
d Nach einiger Zeit gibt es in <strong>der</strong> Firma keine einfachen Telefone mehr. Wie<br />
än<strong>der</strong>n sich das Klassendiagramm und die Spezifikation <strong>der</strong> Operation<br />
Sperren?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a<br />
nach Coad/Yourdon<br />
Telefon<br />
Nebenstellennummer<br />
Berechtigungsstufe<br />
Aufstellort<br />
Einheiten<br />
Sperren<br />
Telefonanlage<br />
Amtsleitung<br />
Amtsnummer<br />
Anlagenkennung<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
Spezifikationen <strong>der</strong> Klasse Telefon:<br />
Attribut Nebenstellennummer (Muß-Attribut):<br />
Typ: Int16<br />
Bereich: 100-999<br />
Beschreibung: 3-stellige Nebenstellennummer dieses Anschlußes.<br />
Attribut Berechtigungsstufe (Muß-Attribut):<br />
Typ: enum (international, national, intern)<br />
Selektionsart: genau 1 aus 3, nicht erweiterbar<br />
Voreinstellung: intern<br />
Beschreibung: Gibt an, ob <strong>der</strong> Benutzer nur intern, o<strong>der</strong> auch national und<br />
international telefonieren darf.<br />
Attribut Aufstellort (Muß-Attribut):<br />
Typ: String (30)<br />
Beschreibung: Gibt an, an welchem Ort das Telefon steht<br />
(z.B. Gebäude, Raumnummer)<br />
Attrbut Einheiten (nur lesbar):<br />
Typ: UInt16<br />
Voreinstellung: 0<br />
Beschreibung: Gibt die Anzahl <strong>der</strong> aktuell verbrauchten Einheiten an. Dieses<br />
Attribut wird vom Telefon automatisch erhöht, und kann nur von<br />
<strong>der</strong> Benutzungsoberfläche gelesen werden.<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
Operation Sperren (In maxEinheiten = UInt 16)<br />
If Einheiten > maxEinheiten<br />
then Hardware-sperren<br />
Spezifikation <strong>der</strong> Klasse Telefonanlage:<br />
Attribut Amtsleitungen (Muß-Attribut)<br />
Typ: uint16<br />
Beschreibung: Gibt die Zahl <strong>der</strong> zur Verfügung stehenden Amtsleitungen an.<br />
Attribut Amtsnummer (Muß-Attribut)<br />
Typ: String (15), nur Zahlen<br />
Beschreibung: Gibt die Telefonnummer an, über die diese Telefonanlage von<br />
außen zu erreichen ist.<br />
Attribut Anlagenkennung (Muß-Attribut)<br />
Typ: String (30)<br />
Beschreibung: Identifikation <strong>der</strong> Telefonannlage.<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
b<br />
Telefon<br />
Nebenstellennummer<br />
Berechtigungsstufe<br />
Aufstellort<br />
Einheiten<br />
Sperren<br />
GesamtSperren(K)<br />
Klassenoperation Gesamt_Sperren (In maxEinheiten: UInt16)<br />
Für alle Objekte <strong>der</strong> Klasse Telefon<br />
Objekte. Sperren (maxEinheiten)<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
c<br />
Fax<br />
Stationskennung<br />
Sperren<br />
Telefon<br />
Nebenstellennummer<br />
Berechtigungsstufe<br />
Aufstellort<br />
Einheiten<br />
Sperren<br />
Gesamt-Sperren<br />
ISDN-Gerät<br />
Art des<br />
Anschlußes<br />
Sperren<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
Die neuen Geräte Fax und ISDN-Gerät haben die selben Eigenschaften wie die<br />
sich schon im Gebrauch befindlichen Telefone. Deshalb kann man das Konzept<br />
<strong>der</strong> Vererbung benutzen. Die zusätzlichen Eigenschaften (Stationskennung bei<br />
Fax, Art des Anschlusses bei ISDN) werden in den Unterklassen abgelegt. Da<br />
die Hardware von Fax- und ISDN-Geräten nicht zu <strong>der</strong> des Telefons kompatibel<br />
ist, muß die Operation Sperren in den Unterklassen redefiniert werden.<br />
d<br />
Die Klasse Telefon wird zu einer abstrakten Klasse. Da es von einer abstrakten<br />
Klasse keine Objekte gibt, muß auch die Operation Sperren abstrakt sein. Das<br />
heißt, die Operation Sperren in Telefon hat selbst keine Implementierung mehr,<br />
sagt jedoch aus, daß in Unterklassen von Telefon eine Operation Sperren<br />
implementiert werden muß.<br />
Aufgabe<br />
Lösung
LE 7 Aufgabe 3<br />
3 Lernziel: Die Konzepte Klassenattribut – Objektattribut und Klassenoperation<br />
– Objektoperation unterscheiden können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Im Rahmen eines Softwareentwicklungsprojektes soll eine Klasse »Person« entwickelt<br />
werden, die verschiedene Personendaten speichern soll und einige Operationen<br />
mit diesen Daten erlaubt. Gespeichert werden sollen u. a. <strong>der</strong> Name<br />
einer Person, das Geburtsdatum und die Anzahl <strong>der</strong> insgesamt existierenden<br />
Personen. Als Operationen sind »Geburtstagsliste drucken« und »Personenname<br />
än<strong>der</strong>n« spezifiziert. Die erste Operation soll eine Liste aller Personen drukken,<br />
die an einem bestimmten Tag Geburtstag haben. Die zweite Operation soll<br />
<strong>zum</strong> Än<strong>der</strong>n des Namens einer bestimmten Person dienen.<br />
Klassifizieren Sie die Attribute und Operationen in Klassenattribute bzw. -<br />
operationen und Objektattribute bzw. -operationen (mit Begründung)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Person<br />
Name<br />
Geburtsdatum<br />
Anzahl(K)<br />
Geburtsliste drucken (K)<br />
Personenname än<strong>der</strong>n<br />
Die Attribute Name und Geburtsdatum sind Eigenschaften eines Objektes <strong>der</strong><br />
Klasse Person. Im Gegensatz dazu bezieht sich das Attribut Anzahl (<strong>der</strong> Objekte<br />
<strong>der</strong> klasse Person) auf die Klasse selbst. Es handelt sich hierbei also um ein<br />
Klassenattribut:<br />
Die Operation Geburtstagsliste_drucken ist eine Klassenoperation, da sie auf<br />
allen Objekten <strong>der</strong> Klasse Operation arbeitet.<br />
Bei <strong>der</strong> Operation Personenname_än<strong>der</strong>n handelt es sich im Gegensatz dazu<br />
um eine Operation, die man auf ein bestimmtes Objekt <strong>der</strong> Klasse Person anwenden<br />
muß.<br />
Aufgabe<br />
Lösung
LE 7 Aufgabe 4<br />
4 Lernziele:<br />
Operationen spezifizieren können einschließlich <strong>der</strong> Verwendung von impliziten<br />
Operationen.<br />
Für gegebene Beispiele ein Interaktions-Diagramm zeichnen können.<br />
Zeit: 25 Minuten<br />
Aufgabe:<br />
Gegeben ist das folgende Klassendiagramm zur Realisierung einer Terminverwaltung:<br />
Mit Hilfe <strong>der</strong> Operation »Terminliste« soll eine Liste aller Termine erstellt werden, an<br />
denen eine durch ihren Namen eindeutig identifizierte Person beteiligt ist. Die Liste soll<br />
nach Datum und Uhrzeit sortiert ausgegeben werden und etwa wie folgt aussehen:<br />
Termine von <br />
Datum Uhrzeit Ort<br />
... ... ...<br />
Wenn <strong>der</strong> Aufenthaltsort <strong>der</strong> Person gleich dem Ort des Termins ist, soll die entspre<br />
chende Spalte leer bleiben.<br />
a Spezifizieren Sie die Operation »Terminliste« mit Hilfe von Pseudo-Code.<br />
Person<br />
Name<br />
Aufenthaltsort<br />
TerminListe<br />
Termin<br />
Datum<br />
Uhrzeit<br />
Ort<br />
Beteiligte-<br />
Personen<br />
b Erstellen Sie ein Interaktions-Diagramm für die Operation »Terminliste«.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a<br />
Operation TerminListe ()<br />
Print „Termine von“, Name<br />
Für alle Termine:<br />
If Name in Termin.Beteiligte Personen<br />
Then Print Termin.Datum<br />
Print Termin.Uhrzeit<br />
If Aufenthaltsort Termin.Ort<br />
then Print Termin.Ort<br />
End IF<br />
End IF<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 4<br />
c<br />
TerminListe ( )<br />
An Termin 1 ist Person X<br />
nicht beteiligt<br />
An Termin 2 ist<br />
Person X beteiligt<br />
Datum holen<br />
und ausgeben<br />
Uhrzeit holen<br />
und ausgeben<br />
Ort holen, aber nicht<br />
ausgeben, da Aufenthaltsort<br />
Raum 3/44<br />
Termin 3 überprüfen<br />
u.s.w.<br />
Person X Termin 1 Termin 2<br />
Print "Termine von Person X"<br />
Get Beteiligte Personen ( )<br />
Person A, Person B<br />
Get Beteiligte Personen ( )<br />
Person A, Person X<br />
Get Datum ( )<br />
"11.6.96"<br />
Get Uhrzeit ( )<br />
"9.00 Uhr"<br />
Get Ort ( )<br />
"Raum 3/44"<br />
Print "11.6.96"<br />
Print "9.00 Uhr"<br />
Aufgabe<br />
Lösung
LE 7 Aufgabe 5<br />
5 Lernziel: Attribute spezifizieren können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Für die Verwaltung von Stammbüchern benötigt ein Standesamt eine Klasse<br />
»Person«, die folgende Daten speichern soll:<br />
Name, Vornamen, Geburtsname, Geburtsdatum, Sterbedatum, Familienstand<br />
und Geschlecht.<br />
Spezifizieren Sie detailliert die Attribute dieser Klasse und geben Sie – wo möglich<br />
– Restriktionen an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Spezifikation <strong>der</strong> Attribute <strong>der</strong> Kasse Person:<br />
Attribut Name: (Muß-Attribut)<br />
Typ: String(50)<br />
Beschreibung: Nachname(n) einer Person<br />
Attribut Vorname: (Muß-Attribut)<br />
Typ: String(50)<br />
Beschreibung: Vorname(n) einer Person<br />
Attribut Geburtsname: (Kann-Attribut)<br />
Typ: String (50)<br />
Beschreibung: Bei verheirateten o<strong>der</strong> geschiedenen Personen kann <strong>der</strong> Name<br />
vom Geburtsnamen abweichen.<br />
Restriktionen: Nur gültig, wenn <strong>der</strong> Familienstand verheiratet o<strong>der</strong><br />
geschieden ist.<br />
Attribut Geburtsdatum: (Muß-Attribut)<br />
Type: Date<br />
Beschreibung: Tag <strong>der</strong> Geburt einer Person<br />
Restriktionen: Nur gültig, wenn das Geburtsdatum nicht hinter dem aktuellen<br />
Systemdatum liegt.<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 5<br />
Attribut Sterbedatum: (Kann-Attribut)<br />
Typ: Date<br />
Beschreibung: Bei Ableben einer Person wird hier <strong>der</strong> Todestag eingetragen.<br />
Restriktionen: Nur gültig, wenn das Sterbedatum hinter dem Geburtsdatum<br />
und nicht hinter dem aktuellen Systemdatum liegt.<br />
Attribut Familienstand: (Muß-Attribut)<br />
Typ: Enum (ledig, verheiratet, geschieden, verwittwet)<br />
Selektionsart: genau 1 aus 4, nicht erweiterbar<br />
Voreinstellung: ledig<br />
Beschreibung: Gibt den Familienstand einer Person an.<br />
Attribut Geschlecht: (Muß-Attribut)<br />
Typ: Enum (männlich, weiblich)<br />
Selektionsart: genau 1 aus 2, nicht erweiterbar<br />
Voreinstellung: weiblich<br />
Beschreibung: Gibt das Geschlecht einer Person an.<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 1<br />
1 Lernziel: Die Darstellungsformen Struktogramm, Pseudo-Code, Jackson- und<br />
Warnier-Orr-Diagramme ineinan<strong>der</strong> überführen können.<br />
Zeit: 20 min<br />
Aufgabe:<br />
Transformieren Sie die folgende Pseudo-Code-Darstellung <strong>der</strong> Roboterfunktion<br />
»SchulterBeugenRelativ« in eine Struktogramm-Darstellung, in ein Jackson Diagramm<br />
und in ein Warnier-Orr-Diagramm.<br />
Funktion SchulterBeugenRelativ (Eingabe: Deltawinkel)<br />
begin<br />
Hole aktuellen Oberarmwinkel;<br />
if Oberarmwinkelbereich (aktueller Oberarmwinkel + Deltawinkel) = Ok<br />
then Löschen;<br />
Oberarm drehen;<br />
Unterarm drehen;<br />
Hand drehen;<br />
Zeichnen;<br />
end if<br />
end SchulterBeugenRelativ;<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Struktogramm-Darstellung<br />
Hole aktuellen Oberarmwinkel<br />
akuteller Oberarmwinkel + Deltawinkel<br />
im Oberarmwinkelbereich?<br />
ja nein<br />
Löschen<br />
Oberarm drehen<br />
Unterarm drehen<br />
Hand drehen<br />
Zeichnen<br />
Funktion: Schulter Beugen Relativ<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
Jackson-Diagramm<br />
Hole aktuellen Oberarmwinkel<br />
Löschen<br />
Winkelbereich OK<br />
Oberarm<br />
drehen<br />
Schulter Beugen Relativ<br />
Unterarm<br />
drehen<br />
Prüfe Winkelbereich<br />
aktueller Oberarmwinkel<br />
+ Deltawinkel<br />
Hand<br />
drehen<br />
______<br />
Zeichnen<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
Warnier-Orr-Diagramm<br />
Schulter<br />
beugen<br />
relativ<br />
(1) {<br />
Hole<br />
akt. Oberarmwinkel (1)<br />
Abfrage (1) {<br />
akt. Ob + Delta im Obwb (0,1)<br />
akt. Ob + Delta im Obwb (0,1)<br />
Löschen (1)<br />
{<br />
Oberarm drehen (1)<br />
Unterarm drehen (1)<br />
Hand drehen (1)<br />
Zeichnen (1)<br />
{ Skip (1)<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 2<br />
2 Lernziel:Für eine gegebene, geeignete Problemstellung die dafür angemessenen<br />
linearen Kontrollstrukturen einsetzen können.<br />
Zeit: 30 min<br />
Aufgabe:<br />
Beschreiben Sie im Pseudo-Code -unter Anwendung problemadäquater<br />
Kontrollstrukturen- folgende Funktionen aus <strong>der</strong> Fallstudie HIWI-Verwaltung<br />
(siehe Pflichtenheft: Lösung zur 5. Aufgabe, Lehreinheit 4):<br />
a Erfassung eines neuen Hilfsassistenten,<br />
b Än<strong>der</strong>ung seiner Studienadresse,<br />
c Eingabe einer Vordiplomnote.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a<br />
Funktion: Erfassen eines Hilfsassistenten<br />
BEGIN<br />
IF Hilfsassistentenzarbeitszeit
Fortsetzung Lösung Aufgabe 2<br />
Funktion: Studiendaten eingeben<br />
BEGIN<br />
Studienfach eingeben<br />
Semesterzahl eingeben<br />
IF VORDIPLOM<br />
THEN<br />
Note, Datum eingeben<br />
IF DIPLOM<br />
THEN<br />
Note, Datum eingeben<br />
END IF<br />
END IF<br />
END Studiendaten eingeben<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
b<br />
Funktion: Studienadresse än<strong>der</strong>n<br />
BEGIN<br />
Name, Matrikelnummer eingeben<br />
Hilfsassistendatensatz suchen<br />
IF Datensatz gefunden<br />
THEN<br />
Studienadresse än<strong>der</strong>n<br />
ELSE<br />
Meldung: Hilfsassistent nicht in <strong>der</strong> HIWI Datei<br />
END IF<br />
END Studienadresse än<strong>der</strong>n<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
c<br />
Funktion: Vordiplomnote eingeben<br />
BEGIN<br />
Name, Matrikelnummer eingeben<br />
Hilfsassistentendatensatz suchen<br />
IF Datensatz gefunden<br />
THEN<br />
Studienfach eingeben<br />
Studienfach suchen<br />
IF Studienfach gefunden<br />
THEN<br />
Vordiplomnote, Datum eingeben<br />
ELSE<br />
Meldung: Studienfach nicht gefunden<br />
END IF<br />
ELSE<br />
Meldung: Hilfsassistent nicht in <strong>der</strong> HIWI Datei<br />
END IF<br />
END Vordiplomnote eingeben<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 3<br />
3 Lernziel: Syntax und Semantik von Entscheidungstabellen einschließlich aller<br />
Varianten beschreiben können .<br />
Zeit: 5 min<br />
Aufgabe:<br />
Sind die Darstellungsformen <strong>der</strong> Entscheidungstabelle (DIN, in alternativer Darstellung<br />
und als ET-Baum) semantisch gleich? Begründen Sie Ihre Antwort!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Die Darstellungsformen sind semantisch nicht gleich. Während die horizontale<br />
Anordnung <strong>der</strong> Regeln und die Darstellung als Entscheidungsbaum eine<br />
Abarbeitungsreihenfolge von links nach rechts nahelegen, ist die Abarbeitungsfolge<br />
bei <strong>der</strong> Darstellung durch vier Quadranten (mit vertikal angeordneten Regeln) völlig<br />
frei.<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 4<br />
4 Lernziel: Eine gegebene Entscheidungstabelle daraufhin analysieren können,<br />
ob es sich um eine Ein- o<strong>der</strong> Mehrtreffertabelle, eine vollständige o<strong>der</strong><br />
unvollständige eine erweiterte o<strong>der</strong> eine begrenzte Entscheidungstabelle handelt.<br />
Zeit: 5 min<br />
Aufgabe:<br />
Untersuchen Sie die folgenden Entscheidungstabelle<br />
ET Seminar Organisation<br />
B1: angemeldet<br />
B2: abgemeldet<br />
B3: teilgenommen<br />
A1: Gebührensatz<br />
A2: Rechnung schicken<br />
R1<br />
J<br />
N<br />
J<br />
100%<br />
R2<br />
J<br />
X X<br />
verspätet<br />
N<br />
50%<br />
a Handelt es sich um eine Eintreffer- o<strong>der</strong> Mehrtreffer- ET?<br />
b Handelt es sich um eine vollständige o<strong>der</strong> unvollständige ET?<br />
c Handelt es sich um eine erweiterte o<strong>der</strong> begrenzte ET?<br />
Else<br />
0%<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a Eintreffer ET<br />
Begründung: Regeln schließen sich gegenseitig aus<br />
b vollständige ET<br />
Begründung: Else-Regel<br />
c erweiterte ET<br />
Begründung: Bedingung: abgemeldet:: N, verspätet<br />
Aktion: Gebührensatz: 100%, 50%, 0%<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 5<br />
5 Lernziel: Entscheidungstabellen konsolidieren können.<br />
Zeit: 15 min<br />
Aufgabe:<br />
Konsolidieren Sie die folgende Entscheidungstabelle möglichst vollständig (unter<br />
Verwendung einer Else-Regel)<br />
R1 R2 R3 R4 R5<br />
B1 J J J J J<br />
R6<br />
B2 J J J J N N<br />
B3 J J N N J J<br />
B4 J N J N J N<br />
A1 X - - - X X<br />
A2 - X X X - X<br />
J<br />
R7 R8 R9 R10 R11 R12<br />
J J N N N N<br />
N N J J J J<br />
N N J J N N<br />
J N J N J N<br />
- X X - X X<br />
X - - X - -<br />
A3 - - X - - X X X - - - -<br />
R13 R14 R15 R16<br />
N<br />
N<br />
N N N<br />
N N N<br />
J J N N<br />
J N J N<br />
X X - X<br />
- X X -<br />
- X X X<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
R1/9 R2/4 R3/7 R5/13 R6/14 R8/16 R10 R11/12 R15<br />
B1 - J J - - - N N N<br />
B2 J J - N N N J J N<br />
B3 J - N J J N J N N<br />
B4 J N J J N N N - J<br />
A1 X - - X X X - X X<br />
A2 - X X - X - X - X<br />
A3 - - X - X X - - -<br />
R1/9/5/13 R3/7 R6/14 R8/16 R11/12 R15 Else<br />
B1 - J - - N N<br />
B2 - - N N J N<br />
B3 J N J N N N<br />
B4 J J N N - J<br />
A1 X - X X X X -<br />
A2 - X X - - X X<br />
A3 - X X X -<br />
- -<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 6<br />
6 Lernziel: Für gegebene, geeignete Problemstellungen Entscheidungstabellen<br />
und Entscheidungstabellen-Verbunde entwickeln können.<br />
Zeit:40 min<br />
Aufgabe:<br />
In <strong>der</strong> Fallstudie Seminarorganisation müssen Buchungsabmeldungen erfaßt<br />
werden. Entwickeln Sie analog zu Beispiel 4 eine entsprechende Entscheidungstabelle<br />
o<strong>der</strong> einen Entscheidungstabellen-Verbund.<br />
Beachten Sie die Anfor<strong>der</strong>ungen /F70/ bis /F110/, /F120/ sowie /D70/.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
Folgende Bedingungen lassen sich für die Abmeldung aus dem Pflichtenheft zur<br />
Fallstudie Seminarorganisation ableiten:<br />
B1 Bereits angemeldet /F80/<br />
B2 mehr als vier Wochen vor dem Seminar /F90/<br />
B3 Absage von Teachware /F110/<br />
Aus dem Pflichtenheft ergeben sich folgende Aktionen:<br />
A1 200 DM Storno o<strong>der</strong> Ersatzteilnehmer /F90/<br />
A2 100% Gebühr o<strong>der</strong> Ersatzteilnehmer /F100/<br />
A3 keine Rechnung /F110/<br />
A4 Abmeldungsdatum eingetragen /F120/, D70/<br />
A5 Abmeldebestätigung schicken<br />
A6 Mitteilung: nicht angemeldet<br />
A7 Teachwareabsage schicken<br />
Die Aktionen A1 und A2 enthalten implizit die Bedingung »Ersatzteilnehmer gestellt«.<br />
Diese Bedingung sollte als B4 in <strong>der</strong> Tabelle erscheinen.<br />
Die Bedingung B3 »Absage von Teachware« besagt gleichzeitig, daß Absagen,<br />
die nicht von Teachware stammen, vom Kunden selbst kommen. Dies kann deutlicher<br />
beschrieben werden, wenn eine Tabelle mit erweiterten Anzeigern verwendet<br />
wird. Dann lautet B3: »Absage kommt von:« [Teachware | Kunde].<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 6<br />
Die Aktionen A1, A2 und A3 bestimmen die Seminargebühr. Sie könne sinnvollerweise<br />
zu einer Aktion A1: »Gebühr« [0% | 200 DM | 100%] zusammengefaßt<br />
werden.<br />
Die Aktionen A5, A6 und A7 erfor<strong>der</strong>n ein Mitteilungsschreiben an den Kunden.<br />
Sie werden zur Aktion A3: »Mitteilungschreiben an:« [Teachwareabsage |<br />
Nicht_angemeldet | Abmeldebestätigung] zusammengefaßt:<br />
Damit ergeben sich folgende Aktionen:<br />
B1 Kunde ist bereits angemeldet [J | N]<br />
B2 mehr als vier Wochen vor dem Seminar [J | N]<br />
B3 Absage von [Teachware | Kunde]<br />
B4 Ersatzteilnehmer stellen [J | N]<br />
A1 Gebühr [0% | 200 DM | 100%]<br />
A2 Abmeldungsdatum eingetragen [X | -]<br />
A3 Mitteilungsschreiben: [Teachwareabsage | Nicht_angemeldet |<br />
Abmeldebestätigung]<br />
A4 Ersatzteilnehmer anmelden [X | -]<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 6<br />
R1 R2 R3 R4 R5<br />
B1 J J J J J<br />
R6<br />
B2 J J J J N N<br />
B3 T T K K T T<br />
B4 J N J N J N<br />
A1 0 0 0 200 0 0<br />
A2 X X X X X X<br />
J<br />
R7 R8 R9 R10 R11 R12 R13 R14 R15 R16<br />
J J N N N N<br />
N N J J J J<br />
K K T T K K<br />
J N J N J N<br />
0 100 - - - -<br />
X X - - - -<br />
A3 TA TA AB AB TA TA AB AB - - NA NA<br />
N<br />
N<br />
N N N<br />
N N N<br />
T T K K<br />
J N J N<br />
- - - -<br />
- - - -<br />
- - NA NA<br />
A4 - - X - - - X - - - - - - - - -<br />
ETO R1/2 R3/7 R4 R5/6 R8 R9/10 R11/12 R13/14 R15/16<br />
B1<br />
J J J J J N N N N<br />
B2 J - J<br />
B3 T K K<br />
B4 - J N<br />
A1 0 0 200<br />
A2 X X X<br />
N N J<br />
T K T<br />
- N -<br />
0 100 -<br />
X X - -<br />
A3 TA AB AB TA AB -<br />
J N N<br />
K T K<br />
- - -<br />
- - -<br />
- -<br />
NA - NA<br />
A4 - X - - - - - - -<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 6<br />
ETO R1/2/5/6 R3/7 R4 R8 R9/10/13/14 R11/12/15/16<br />
B1<br />
J J J J N N<br />
B2 - -<br />
B3 T K<br />
B4 - J<br />
A1 0 0<br />
A2 X X<br />
J N<br />
K K T<br />
N N -<br />
200 100 -<br />
X X -<br />
A3 TA AB AB AB -<br />
- -<br />
A4 - X - - - -<br />
K<br />
-<br />
-<br />
-<br />
NA<br />
Aufgabe<br />
Lösung
LE 8 Aufgabe 7<br />
7 Lernziel: Für gegebene geeignete Problemstellungen Entscheidungstabellen<br />
und Entscheidungstabellen-Verbunde entwickeln können.<br />
Zeit: 40 min<br />
Aufgabe:<br />
Die Firma Hard&Soft bietet Ihren Kunden verschiedene Artikel (z. B. Computerzubehör,<br />
Software-Produkte) an. Die Annahme von Bestellungensoll rechnergestützt vorgenommen<br />
werden:<br />
1 Ist <strong>der</strong> Besteller noch nicht im Kundenstamm, soll eine Ersterfassung erfolgen.<br />
2 Ist ein bestellter Artikel verfügbar, muß <strong>der</strong> Lagerbestand aktualisiert werden. Falls<br />
ein Artikelnicht verfübar ist, ist dieses dem Besteller mitzuteilen.<br />
3 Hat <strong>der</strong> Besteller seinen Kreditrahmen überschritten, können keine weiteren<br />
Bestellungen erfolgen. Bei Kunden mit großem Absatz ist jedoch eine Entscheidung<br />
des Sacharbeiters nötig.<br />
4 Mit <strong>der</strong> Auftragsbestätigung soll eine Rechnung erstellt und ausgedruckt werden.<br />
5 Ist bei einem Artikel <strong>der</strong> Mindestlagerbestand unterschritten, so ist <strong>der</strong> Sachbearbeiter<br />
zu informieren.<br />
6 Ist eine sofortige Bearbeitung wegen Nichtverfügbarkeit eines Artikels o<strong>der</strong> wegen<br />
Überschreitung <strong>der</strong> Kreditlinie des Kunden nicht möglich, soll diese Bestellung<br />
„eingefroren“ werden.<br />
a Leiten Sie für die gegebene Aufgabenstellung Bedingungen und Aktionen für<br />
eine Entscheidungstabelle o<strong>der</strong> einen Entscheidungstabellen-Verbund her.<br />
b Erstellen Sie aus den in a identifizierten Bedingungen eine Entscheidungstabelle<br />
o<strong>der</strong> einen Entscheidungstabellen-Verbund, <strong>der</strong> die Annahme von<br />
Bestellungen unterstützt.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
a<br />
Aus <strong>der</strong> Aufgabenstellung lassen sich folgende Bedingungen und Aktionen<br />
ableiten:<br />
B1: Im Kundenstamm?<br />
B2: Artikel verfügbar?<br />
B3: Mindestbestand unterschritten?<br />
B4: Kreditrahmen überschritten?<br />
B5: Umsatz eines Großkunden?<br />
B6: Bestellung trotz Überschreitung des Kreditrahmens?<br />
A1: Kundenersterfassung.<br />
A2: Lagerbestand aktualisieren.<br />
A3: Kunden über Nichtverfügbarkeit des Artikels informieren.<br />
A4: Bestellung einfrieren.<br />
A5: Auftragsbestätigung und Rechnung erstellen.<br />
A6: Sacharbeiter über Unterschreitung des Mindestbestands informieren.<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 7<br />
b Die in a identifizierten Bedingungen und Aktionen lassen sich in einem Entscheidungstabellen-Verbund<br />
darstellen.<br />
Den Kern des Entscheidungstabellen-Verbunds realisiert die ET1 „Auftragsannahme“.<br />
Da die Bedingung B3 in Abhängigkeit zu den in ET1 ausgeführten Aktionen stehen<br />
kann, muß die Verwaltung des Lagerbestands in einer seperaten Entscheidungstabelle<br />
ET3 realisiert werden.<br />
Zusätzlich empfielt es sich die Überprüfung <strong>der</strong> Kreditlinie in einer seperaten<br />
Entscheidungstabelle vorzunehmen (ET2). Das reduziert die Komplexität <strong>der</strong> Ausgangstabelle<br />
ET1 wesentlich.<br />
Es resultiert folgen<strong>der</strong> Entscheidungstabellen-Verbund.<br />
ET1 Auftragsannahme<br />
B1<br />
J N J J N J N N<br />
B2<br />
J J N J N N J N<br />
B3<br />
J J J N J N N N<br />
A1<br />
X X X X<br />
A2<br />
X X<br />
A3<br />
X X X X<br />
A4<br />
X X X X<br />
A5<br />
X X<br />
weiter bei ET2 ET2 ET3 ET3<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 7<br />
b<br />
ET2 Kreditlinie prüfen<br />
B5<br />
B6<br />
A2<br />
A5<br />
A4<br />
weiter bei<br />
J<br />
J<br />
X<br />
X<br />
ET3<br />
N<br />
J<br />
N N<br />
N<br />
J<br />
X X X<br />
ET3<br />
B3<br />
A6<br />
Lagerbestand<br />
verwalten<br />
J N<br />
X<br />
Aufgabe<br />
Lösung
LE 9 Aufgabe 1<br />
1 Lernziel: Die Strategien Vorwärtsverkettung, Rückwärtsverkettung, Tiefensuche<br />
und Breitensuche erklären können.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
Es existiert eine Wissenbasis mit einer Anzahl von Fakten. Sie möchten wissen,<br />
welche Schlüsse aus den vorhandenen Fakten gezogen werden können. Welche<br />
Inferenzstrategie ist geeignet?<br />
Sie wollen wissen, ob ein bestimmtes Ziel aus einer Wissenbasis abgeleitet werden<br />
kann. Welche Inferenzstrategie ist geeignet?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Da kein Ziel vorgegeben ist und alle Schüsse, die aus einer vorgegebenen<br />
Menge von Fakten gezogen werden können, von Interesse sind, wird im<br />
ersten Fall vorwärtsverkettend gearbeitet<br />
b Im zweiten Fall ist ein Ziel vorgegeben. Es ist zu prüfen, ob das Ziel aus den<br />
Fakten <strong>der</strong> Wissensbasis abgeleitet werden kann. Eine rückwärtsverkettende<br />
Strategie ist sinnvoll.<br />
Aufgabe<br />
Lösung
LE 9 Aufgabe 2<br />
2 Lernziel:<br />
Gegebene Regelungen vorwärtsverkettend, rückwärtsverkettend, sowie nach den<br />
Strategien Tiefensuche und Breitensuche ausführen können.<br />
Planungsvarianten am Beispiel <strong>der</strong> dargestellten »Blockwelt« durchspielen und<br />
analysieren können.<br />
Zeit: 25 Minuten<br />
Aufgabe:<br />
Leiten Sie mit Hilfe <strong>der</strong> Regeln <strong>der</strong> »Blockwelt« einen Plan zur Herstellung <strong>der</strong><br />
Zielsituation »Block D steht auf dem Tisch« und »Block C steht auf Block D« aus<br />
<strong>der</strong> angegebenen Ausgangssituation her.<br />
Ausgangssituation:<br />
D<br />
C<br />
B<br />
A<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Die Zielsituation wird durch zwei voneinan<strong>der</strong> unaghängigen Aussagen beschrieben<br />
»Block D steht auf dem Tisch« und »Block C steht auf Block D«. Jede Aussage<br />
stellt ein Teilziel dar, von dem ein rückwärtsverketten<strong>der</strong> Regelinterpreter die<br />
jeweilige Ausgangssituation herleitet. Die sich ergebende<br />
Abarbeitungsreihenfolge ist in <strong>der</strong> Lösung durch »[...]« markiert.<br />
Die erste Abbildung zeigt die Herleitung des 1. Teilziels »Block D steht auf dem<br />
Tisch«:<br />
D steht auf dem Tisch (1. Teilziel)<br />
Absetzen (D) [4]<br />
D in Hand<br />
Aufnehmen (D) - D steht auf dem Tisch *<br />
Entspapeln (D,X) [3]<br />
D steht auf X | wahr mit X=B<br />
D ist frei<br />
Absetzen (D) - D in Hand *<br />
Stapeln (D,Y) - D in Hand *<br />
Entstapeln (Y,D) [1]<br />
Y steht auf D | wahr mit Y=C<br />
Y ist frei | wahr<br />
Hand ist frei | wahr<br />
Hand ist frei | zerstört nach Feuern von [1]<br />
Absetzen (Y) [2]<br />
Y in Hand | wahr mit Y=C<br />
* redundant<br />
Stapeln (Y,X)<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
1. Teilzielsituation<br />
Nach Herleitung des 1. Teilziels ergibt sich folgende Teilzielsituation<br />
B<br />
A<br />
D C<br />
Die dritte Abbildung zeigt die Herleitung <strong>der</strong> Zielsituation ausgehend vom 2. Teilziel<br />
und <strong>der</strong> 1. Teilzielsituation:<br />
C steht auf D (2. Teilziel)<br />
Stapeln ( C, D) [6]<br />
D ist frei | wahr<br />
C in Hand<br />
Aufnehmen (C) [5]<br />
C steht auf dem Tisch | wahr<br />
C ist frei | wahr<br />
Hand ist frei | wahr<br />
Entsapeln (C,X)<br />
Um von <strong>der</strong> Ausgangssituation zur Zielsituation zu gelangen wurden 6 Regeln<br />
gefeuert.<br />
Aufgabe<br />
Lösung
LE 9 Aufgabe 3<br />
3 Lernziel: Konfliktlösungsstrategien erläutern und beurteilen können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Angenommen es handelt sich bei den Blöcken <strong>der</strong> »Blockwelt« um Waschmittelkartons,<br />
von denen aufgrund <strong>der</strong> mechanischen Belastbarkeit nur eine begrenzte<br />
Anzahl aufeinan<strong>der</strong> gestapelt werden kann. Welche Konfliktlösungsstrategie bietet<br />
sich an?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Da die Operation STAPELN mit einer gewissen Wahrscheinlichkeit aufgrund <strong>der</strong><br />
begrenzten Anzahl <strong>der</strong> Stapelung nicht <strong>zum</strong> Ziel führt, ist es sinnvoll, <strong>der</strong> Operation<br />
ABSETZEN im Konfliktfall eine höhere Priorität einzuräumen.<br />
Da die Operation ENTSTAPELN dem Erreichen <strong>der</strong> maximalen Stapelanzahl<br />
entgegenwirkt, ist es sinnvoll, sie im Konfliktfall mit <strong>der</strong> höchsten Priorität zu behandeln.<br />
Aufgabe<br />
Lösung
LE 9 Augabe 4<br />
4 Lernziel:<br />
Gegebene Regelungen vorwärtsverkettend, rückwärtsverkettend, sowie nach den<br />
Strategien Tiefensuche und Breitensuche ausführen können.<br />
Planungsvarianten am Beispiel <strong>der</strong> dargestellten »Blockwelt« durchspielen und<br />
analysieren können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Leiten Sie mit Hilfe <strong>der</strong> Regeln <strong>der</strong> »Blockwelt« einen Plan zur Herstellung <strong>der</strong><br />
Zielsituation »Block D steht auf Block B« aus <strong>der</strong> angegebenen Ausgangssituation<br />
her.<br />
Ausgangssituation:<br />
A B<br />
C<br />
D<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Die Abbildung zeigt, daß <strong>zum</strong> Herstellen <strong>der</strong> Zielsituation 4 Regeln gefeuert werden:<br />
D steht auf B (Zielsituation)<br />
Stapeln (D,B) [4]<br />
B ist frei | wahr<br />
D in Hand<br />
Entstapeln (D,X)<br />
D steht auf X Stapeln (D,X)<br />
D ist frei<br />
D in Hand *<br />
Hand ist frei<br />
Aufnehmen (D) [3]<br />
D steht auf dem Tisch | wahr<br />
D ist frei<br />
Absetzen (D) D in Hand *<br />
Stapeln (D,Y) D in Hand *<br />
Entstapeln (Y,D) [1]<br />
Y steht auf D | wahr mit Y=C<br />
Y ist frei | wahr<br />
Hand ist frei | wahr<br />
Hand ist frei | zerstört nach Feuern von [1]<br />
Absetzen (Y) [2]<br />
Y in Hand | wahr mit Y=C<br />
* redundant<br />
Stapeln (Y,X)<br />
Aufgabe<br />
Lösung
LE 9 Aufgabe 5<br />
5 Lernziel: Die Strategien Vorwärtsverkettung, Rückwärtsverkettung, Tiefensuche<br />
und Breitensuche erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Betrachten Sie den Algorithmus des rückwärtsverkettenden Regelinterpreters.<br />
Welche Form <strong>der</strong> Suche realisiert dieser Algorithmus?<br />
Warum ist das so?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Der Algorithmus stellt eine rückwärtsverkettende Tiefensuche dar, da aufgrund<br />
<strong>der</strong> Rekursion erst Teilziele vertieft werden, bevor mit weiteren Teilzielen fortgefahren<br />
wird.<br />
Aufgabe<br />
Lösung
LE 10 Aufgabe 1<br />
1 Lernziel: Für eine gegebene Problemstellung einen Zustandsautomaten bzw.<br />
einen hierarchischen Zustandsautomaten erstellen können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Entwickeln Sie eine Stopuhr für den Sportbereich, die folgende Eigenschaften<br />
besitzt:<br />
– Die Stopuhr kann ein- und ausgeschaltet werden<br />
– Die Stopuhr kann gestartet und gestoppt werden. Nach dem Stop wird<br />
die vergangene Zeit zwischen Start und Stop angezeigt.<br />
– Nach dem Start kann eine Zwischenzeit angezeigt werden. Die Uhr läuft<br />
im Hintergrund weiter. Nun kann entwe<strong>der</strong> die Anzeige von <strong>der</strong> Zwischenzeit<br />
auf die Anzeige <strong>der</strong> aktuell verbrauchten Gesamtzeit gewechselt<br />
werden o<strong>der</strong> die im Hintergrund laufende Uhr kann angehalten werden,<br />
ohne daß sich die Anzeige än<strong>der</strong>t. Im letzten Fall wird nach einem<br />
weiteren Knopfdruck die vergangene Gesamtzeit angezeigt.<br />
– Die zwischen Start und Stop vergangene Zeit kann bei stehen<strong>der</strong> Uhr und<br />
Anzeige <strong>der</strong> vergangenen Gesamtzeit auf Null zurückgesetzt werden.<br />
– Die Uhr besitzt zwei Druckknöpfe (die nicht gleichzeitig gedrückt werden<br />
können).<br />
a Zeichnen Sie das Zustandsübergangsdiagramm eines Mealy-Automaten für<br />
die oben beschriebene Stopuhr.<br />
b Integrieren Sie den Automaten für die Normalzeit (Beispiel 6) und den Automaten<br />
für die Stopuhr zu einem hierarchischen Automatenmodell einer digitalen<br />
Armbanduhr mit drei Druckknöpfen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a<br />
a<br />
Uhr läuft,<br />
zeigt verbrauchte<br />
Zeit an<br />
Uhr läuft,<br />
zeigt Zwischenzeit<br />
an<br />
Ein<br />
Anzeige ein<br />
K1<br />
Uhr Start<br />
Uhr steht<br />
zeigt 00:00<br />
an<br />
K1<br />
Uhr Stop<br />
K2<br />
Anzeige Stop K2<br />
Anzeige aktualisieren<br />
K1<br />
Uhr Stop<br />
Aus<br />
Anzeige aus<br />
K1<br />
Uhr Start<br />
K1<br />
Uhr Start<br />
Uhr steht,<br />
zeigt Endzeit<br />
an<br />
Uhr steht,<br />
zeigt Zwischenzeit<br />
an<br />
K2<br />
Anzeige=00:00<br />
K2<br />
Anzeige<br />
aktualisieren<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
b<br />
Knopf 3 gedrückt<br />
Stopuhr anzeigen<br />
Uhrzeit<br />
Stopuhr<br />
Knopf 3 gedrückt<br />
Nornalzeit anzeigen<br />
Aufgabe<br />
Lösung
LE 10 Aufgabe 2<br />
2 Lernziel: Für eine gegebene Problemstellung einen Zustandsautomaten bzw.<br />
einen hierarchischen Zustandsautomaten erstellen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Modellieren Sie ein Code-Schloß, das mit einer Ziffern-Tastatur bedient wird.<br />
Um das Schloß zu öffnen, müssen drei Ziffern in korrekter Reihenfolge eingegeben<br />
werden. Zeichnen Sie a ein Zustandsdiagramm und b eine Zustandstabelle<br />
des entsprechenden Mealy-Automaten.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a<br />
Falsche Ziffer<br />
zurücksetzen<br />
schließen<br />
zurücksetzen<br />
Falsche Ziffer<br />
zurücksetzen<br />
Verschlossen<br />
Warten auf<br />
2. Ziffer<br />
Warten auf<br />
3. Ziffer<br />
Offen<br />
1. Ziffer korrekt<br />
setze 1. Kombination<br />
2. Ziffer korrekt<br />
setze 2. Kombination<br />
3. Ziffer korrekt<br />
setze 3. Kombination<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
b<br />
Aktueller<br />
Zustand<br />
verschlossen<br />
warten auf 2.<br />
Ziffer<br />
warten auf 3.<br />
Ziffer<br />
offen<br />
Ereignis Aktion Folgezustand<br />
1. Ziffer korrekt setze 1. Kombination warten auf 2. Ziffer<br />
falsche Ziffer zurücksetzen<br />
verschlossen<br />
2. Ziffer korrekt setze 2. Kombination warten auf 3. Ziffer<br />
falsche Ziffer zurücksetzen<br />
verschlossen<br />
3. Ziffer korrekt setze letzte Kombination offen<br />
schliessen<br />
zurücksetzen<br />
verschlossen<br />
Aufgabe<br />
Lösung
LE 10 Aufgabe 3<br />
3 Lernziel: Die verschiedenen Darstellungsweisen eines Zustandsautomaten<br />
(Diagramm, Tabelle, Matrix) ineinan<strong>der</strong> überführen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Geben Sie das Automatenmodell für die Digitaluhr (Beispiel 6) a als Zustandsübergangstabelle<br />
und b als Zustands-Ereignis-Matrix an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a<br />
Aktueller<br />
Zustand<br />
Ereignis Aktion Folgezustand<br />
Start<br />
Normalzeit Knopf 1 gedrückt<br />
Knopf 3 gedrückt<br />
Stunden stellen Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Minuten stellen Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Sekunden Knopf 1 gedrückt<br />
stellen<br />
Knopf 2 gedrückt<br />
Datum Knopf 1 gedrückt<br />
Knopf 3 gedrückt<br />
Wochentag<br />
stellen<br />
Tag stellen<br />
Monat stellen<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Knopf 1 gedrückt<br />
Knopf 2 gedrückt<br />
Initialisierung<br />
Stunden blinken<br />
Datum anzeigen<br />
Minuten blinken<br />
Stunden erhöhen<br />
Sekunden blinken<br />
Minuten erhöhen<br />
Nornalzeit anzeigen<br />
Sekunden auf 0 stellen<br />
Wochentag blinken<br />
Nornalzeit anzeigen<br />
Tag blinken<br />
Wochentag erhöhen<br />
Monat blinken<br />
Tag erhöhen<br />
Datum anzeigen<br />
Monat erhöhen<br />
Normalzeit<br />
Stunden stellen<br />
Datum<br />
Minuten stellen<br />
Stunden stellen<br />
Sekunden stellen<br />
Minuten stellen<br />
Normalzeit<br />
Sekunden stellen<br />
Wochentag stellen<br />
Normalzeit<br />
Tag stellen<br />
Wochentag stellen<br />
Monat stellen<br />
Tag stellen<br />
Datum<br />
Monat stellen<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 3<br />
b<br />
Ereignis<br />
Zustand<br />
Normalzeit<br />
Stunden<br />
stellen<br />
Minuten<br />
stellen<br />
Sekunden<br />
stellen<br />
Datum<br />
Wochentag<br />
stellen<br />
Tag stellen<br />
Monat<br />
stellen<br />
Initialisierung<br />
Normalzeit<br />
Knopf 1 gedrückt Knopf 2 gedrückt Knopf 3 gedrückt<br />
Stunden blinken<br />
Normalzeit anzeigen<br />
Stunden stellen<br />
Normalzeit<br />
Minuten blinken Stunden erhöhen<br />
Minuten stellen Stunden stellen<br />
Sekunden blinken Minuten erhöhen<br />
Sekunden stellen Minuten stellen<br />
Normalzeit Sekunden auf 0<br />
anzeigen stellen<br />
Normalzeit Sekunden stellen<br />
Wochentag blinkt<br />
Normalzeit anzeigen<br />
Wochentag stellen<br />
Normalzeit<br />
Tag blinkt Wochentag<br />
erhöhen<br />
Tag stellen Wochentag stellen<br />
Monat blinkt Tag erhöhen<br />
Monat stellen Tag stellen<br />
Datum anzeigen Monat erhöhen<br />
Datum<br />
Monat stellen<br />
Aufgabe<br />
Lösung
LE 10 Aufgabe 4<br />
4 Lernziel: Den Lebenszyklus eines Objektes als Zustandsautomaten modellieren<br />
können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Gegeben ist ein Objekt Buchung aus <strong>der</strong> Fallstudie Seminarorganisation. Die<br />
Buchung besitzt die Attribute Anmeldedatum, Abmeldedatum, Rechnungsdatum<br />
und die Operationen Anmelden, Abmelden, Rechnung ausstellen und Löschen.<br />
Modellieren Sie den Objektlebenszyklus des Objektes Buchung als Zustandsübergangsdiagramm.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Objektlebenszyklus: Buchung<br />
/anmelden<br />
angemeldet<br />
Gebühr<br />
berechnet<br />
gelöscht<br />
/abmelden<br />
/Rechnung ausstellen<br />
/löschen<br />
abgemeldet<br />
/Rechnung ausstellen<br />
Aufgabe<br />
Lösung
LE 10 Aufgabe 5<br />
5 Lernziel: Die Erweiterungen von Harel darstellen können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Bei dem Beispiel 6 (Abb. 2.16-15) soll sichergestellt werden, daß nach dem<br />
Verlassen des Oberzustands Uhrzeit und dem anschließenden Wie<strong>der</strong>eintritt<br />
<strong>der</strong> zuvor verlassene Zustand wie<strong>der</strong> eingenommen wird. Wodurch kann dies<br />
erreicht werden? Zeichnen Sie den entsprechenden Automaten!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Indem man den Oberzustand Uhrzeit <strong>der</strong> Modellierungsvariante 2.16-15 a um ein<br />
internes Gedächtnis (History) erweitert, kann sichergestellt werden, daß bei Wie<strong>der</strong>eintritt<br />
in diesen Oberzustand <strong>der</strong> zuvor verlassene Unterzustand wie<strong>der</strong> eingenommen<br />
wird. Es ergibt sich folgen<strong>der</strong> Automat:<br />
Start<br />
Uhrzeit<br />
Datum<br />
H<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 1<br />
1 Lernziel: Gegebene, geeignete Problemstellungen durch B/E und S/T- Netze<br />
modellieren können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Aus dem allgemeinen Erzeuger/Verbraucherproblem (Produzenten/Konsumenten-Problem)<br />
ist folgendes Zwischenlagerbeispiel abgeleitet. Ein Lieferant liefert<br />
Teile an und lagert sie im Zwischenlager ein. Die Fertigung entnimmt die Teile aus<br />
dem Zwischenlager und verbraucht sie (Abb. 2.17-33). Aufgrund <strong>der</strong> begrenzten<br />
Kapazität des Zwischenlagers sind Lieferant und Fertigung miteinan<strong>der</strong> gekoppelt.<br />
Das folgende B/E-Netz beschreibt den Sachverhalt.<br />
Lieferant kann einlagern<br />
Anliefern<br />
Teil einlagern<br />
Lieferant kann anliefern<br />
Zwischenlager belegt<br />
Fertigung kann aus Lager entnehmen<br />
Teil entnehmen<br />
Verbrauchen<br />
Fertigung kann verbrauchen<br />
Lieferant Zwischenlager Fertigung<br />
➜<br />
Aufgabe<br />
Lösung
LE 11 Fortsetzung Aufgabe 1<br />
Lösen Sie bitte folgende Aufgaben:<br />
a Die Lagerkapazität soll vergrößert werden. Geben Sie ein entsprechendes S/<br />
T-Netz mit einer Zwischenlagerkapazität = 10 an.<br />
b Lieferengpässe führen <strong>zum</strong> Vertragsabschluß mit einem zweiten Lieferanten.<br />
Geben Sie ein entsprechendes S/T-Netz mit einer Zwischenlagerkapazität =<br />
10 und zwei Lieferanten an, wobei unterschieden werden kann, ob Lieferant 1<br />
o<strong>der</strong> Lieferant 2 ein Teil anliefert.<br />
c Vereinfachen Sie das S/T-Netz aus Aufgabenteil b, indem Sie nicht mehr<br />
unterscheiden, welcher <strong>der</strong> beiden Lieferanten ein Teil anliefert.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Annahme: Lagerkapazität 10 Teile<br />
Anliefern<br />
Lieferant<br />
kann einlagern<br />
Lieferant<br />
kann anliefern<br />
Teil<br />
einlagern<br />
Belegung des<br />
Zwischenlagers<br />
Teil<br />
entnehmen<br />
Fertigung<br />
kann aus Lager entnehmen<br />
Fertigung<br />
kann verbrauchen<br />
Lieferant Zwischenlager Fertigung<br />
Verbrauchen<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
b Annahme: Lagerkapazität 10 Teile, 2 Lieferanten<br />
Anliefern<br />
Anliefern<br />
1. Lieferant<br />
kann einlagern<br />
1. Lieferant<br />
kann anliefern<br />
2. Lieferant<br />
kann einlagern<br />
2. Lieferant<br />
kann anliefern<br />
Teil<br />
einlagern<br />
Teil<br />
einlagern<br />
Belegung des<br />
Zwischenlagers<br />
k = 10<br />
Teil<br />
entnehmen<br />
Fertigung<br />
kann aus Lager entnehmen<br />
Fertigung<br />
kann verbrauchen<br />
Verbrauchen<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 1<br />
c Annahme : Lagerkapazität 10 Teile, 2 Lieferanten (zusammengefaßt)<br />
Anliefern<br />
Lieferanten<br />
können einlagern<br />
Lieferanten<br />
können anliefern<br />
Teil<br />
einlagern<br />
Belegung des<br />
Zwischenlagers<br />
Teil<br />
entnehmen<br />
Fertigung<br />
kann aus Lager entnehmen<br />
Fertigung<br />
kann verbrauchen<br />
Lieferant Zwischenlager Fertigung<br />
Verbrauchen<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 2<br />
2 Lernziel: Ein gegebenes B/E-Netz auf Verklemmungen untersuchen zu können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Gegeben ist folgendes Problem:<br />
Zwei Studenten benötigen zur Vorbereitung auf die Prüfung ein zweibändiges<br />
<strong>Lehrbuch</strong>. Der erste Student leiht zunächst Band 1 aus und will Band 2 erst später<br />
holen. Als <strong>der</strong> zweite Student kommt, entdeckt er zwar, daß Band 1 bereits nicht<br />
mehr vorhanden ist, leiht aber »vorsorglich« schon Band 2 aus. Der erste Student<br />
ist nun mit dem Bearbeiten von Band 1 fertig und will Band 2 ausleihen. Er kann<br />
Band 1 noch nicht zurückgeben, da er weiß, daß er beim Durcharbeiten des ersten<br />
Kapitels von Band 2 den ersten Band noch häufig <strong>zum</strong> Nachschlagen benötigen<br />
wird. Beide Studenten warten nun auf die Rückgabe des jeweils an<strong>der</strong>en<br />
Bandes, ohne den eigenen zurückzugeben.<br />
Eine entsprechende Netz-Modellierung zeigt Abb. 2.17-34.<br />
Untersuchen Sie dieses Petri-Netz ausgehend von <strong>der</strong> eingezeichneten Anfangsmarkierung<br />
auf Verklemmungen.<br />
➜<br />
Aufgabe<br />
Lösung
LE 11 Fortsetzung Aufgabe 2<br />
Student 1 Band 1 Band 2 Student 2<br />
Band 1<br />
ausleihen<br />
Band 2<br />
ausleihen<br />
beide Bände<br />
zurückgeben<br />
Band 2<br />
ausleihen<br />
Band 1<br />
ausleihen<br />
beide Bände<br />
zurückgeben<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Student 1 Band 1 Band 2 Student 2<br />
Band 1<br />
ausleihen<br />
Band 2<br />
ausleihen<br />
beide Bände<br />
zurückgeben<br />
Band 2<br />
ausleihen<br />
Band 1<br />
ausleihen<br />
beide Bände<br />
zurückgeben<br />
Durch das Schalten <strong>der</strong> jeweils ersten Transition im Zyklus kann eine Verklemmung eintreten.<br />
Obige Abbildung zeigt eine Situation, in <strong>der</strong> nie wie<strong>der</strong> eine Transition schalten kann.<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 3<br />
3 Lernziel: Gegebene, geeignete Problemstellungen durch B/E-Netze und S/T-<br />
Netze modellieren können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Modellieren Sie die in Abb. 2.17-35 dargestellte Paketverteilanlage.<br />
Zielstationen<br />
Verteilstationen<br />
4<br />
Eingangsstation<br />
2<br />
5<br />
1<br />
1 2 3 4 5 6 7 8<br />
6<br />
3<br />
7<br />
➜<br />
Aufgabe<br />
Lösung
LE 11 Fortsetzung Aufgabe 3<br />
Die in <strong>der</strong> Eingangsstation einlaufenden Pakete sind durch ein Codezeichen markiert,<br />
das die Zielstation angibt. Das Steuersystem liest das Codezeichen und<br />
steuert danach die einzelnen Verteilstationen, die das Durchlaufen des Pakets<br />
melden.<br />
Die Eingangsstation (Abb. 2.17-36) besteht aus einem Freigabeorgan mit den<br />
Teilen F1 und F2. F2 hält das einlaufende Paket solange fest, bis das Meldeorgan<br />
die Ankunft an das Steuersystem gemeldet hat und dieses mit Hilfe des<br />
Leseorgans das Codezeichen aufgenommen hat. Danach gibt das Steuersystem<br />
einen Auftrag an das Freigabeorgan, die Sperre F2 gibt den Weiterlauf für das<br />
Paket frei und das Beschleunigungsteil F1 neigt sich. Dadurch gleitet das Paket<br />
weiter, gleichzeitig wird das nachfolgende Paket solange am Einlaufen gehin<strong>der</strong>t,<br />
bis die Sperre F2 wie<strong>der</strong> eingetreten ist.<br />
F1<br />
Leseorgan<br />
Meldeorgan Freigabeorgan<br />
F2<br />
Lesestellung Freigabestellung<br />
F1<br />
F2<br />
➜<br />
Aufgabe<br />
Lösung
LE 11 Fortsetzung Aufgabe 3<br />
Die Eingangs- und Ausgangspunkte je<strong>der</strong> Verteilerstation (Abb. 2.17-37) sind<br />
mit Lichtschranken versehen. Diese können das Passieren <strong>der</strong> einzelnen Pakete<br />
mit Sicherheit erkennen, auch wenn diese dicht aufeinan<strong>der</strong> folgen. Diese Meldungen<br />
werden im Steuersystem zur Laufwegverfolgung jedes einzelnen Pakets<br />
ausgewertet. Dadurch kann in Verbindung mit dem bereits markierten Ziel <strong>der</strong><br />
Steuerauftrag für das nächste Lenkorgan ermittelt und ausgegeben werden.<br />
Modellieren Sie die Paketverteilanlage durch ein adäquates Petri-Netz. Zur Vereinfachung<br />
können Sie annehmen, daß nur ein Paket zur selben Zeit auf dem<br />
Weg von <strong>der</strong> Eingangs- zu einer <strong>der</strong> Ausgangsstationen ist.<br />
Eingangsmeldepunkt<br />
Ausgangsmeldepunkt<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Meldung<br />
Zielangabe<br />
Auslauf<br />
Freigabe<br />
Einlaufstation<br />
Paket im<br />
Einlauf<br />
Verteilers tation<br />
Weiterlauf<br />
des Pakets<br />
Lesen<br />
Warten<br />
Einlauf Freigabe<br />
F1 frei<br />
F2 sperrt<br />
Wartezeit<br />
F1 sperrt<br />
F2 frei<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 3<br />
Einlaufmeldung,<br />
Laufzeit<br />
Durchlauf<br />
Verteilerstation<br />
Aus lau fmeldung<br />
A1,<br />
Laufzeit<br />
Paketauslauf<br />
A1<br />
Aus lau fmeldung<br />
A2,<br />
Laufzeit<br />
Paketauslauf<br />
A2<br />
Lenkstellung<br />
A<br />
Steuerauftrag<br />
A2<br />
Umlaufzeit<br />
Umlaufzeit<br />
Instanz: Paketdurchlauf Instanz: Lenkorgan<br />
Steuerauftrag<br />
A1<br />
Lenkstellung<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 4<br />
4 Lernziel: Gegebene, geeignete Problemstellungen durch B/E- und S/T-Netze<br />
modellieren können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Umbauarbeiten am in Abschnitt 2.17.2 behandelten Fließband führen dazu, daß<br />
das Eintreffen <strong>der</strong> unbestückten und <strong>der</strong> Abtransport <strong>der</strong> bestückten Leiterplatten<br />
an <strong>der</strong>selben Stelle stattfinden muß. Damit ergeben sich neue Konfliktsituationen.<br />
Modifizieren Sie das B/E-Netz aus Abb. 2.17-5 so, daß das geän<strong>der</strong>te Systemverhalten<br />
modelliert wird.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
unbestückte<br />
Leiterplatte wird<br />
abtransportiert<br />
Roboter 1<br />
nimmt die<br />
Leiterplatte<br />
Roboter 2<br />
nimmt die<br />
Leiterplatte<br />
unbestückte<br />
Leiterplatte ist<br />
eingetroffen<br />
Roboter 2<br />
bestückt<br />
Leiterplatte<br />
Fließband<br />
ist frei<br />
Roboter 1<br />
ist frei<br />
Roboter 1<br />
bestückt<br />
Leiterplatte<br />
bestückte<br />
Leiterplatte<br />
ist bereit <strong>zum</strong><br />
Abtransport<br />
Roboter 2<br />
ist frei<br />
Robotor 1 hat<br />
die Leiterplatte<br />
fertiggestellt<br />
Roboter 2 hat<br />
die Leiterplatte<br />
fertiggestellt<br />
bestückte<br />
Leiterplatte wird<br />
abtransportiert<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 5<br />
5 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Welche Bedeutung hat ein Quadrat o<strong>der</strong> ein Rechteck in den unten aufgeführten<br />
Basiskonzepten?<br />
a Funktionsbaum<br />
b Datenfluß-Diagramm<br />
c Jackson-Diagramm<br />
d Entity-Relationship-Modell<br />
e Klassen-Diagramm<br />
f Programmablaufplan<br />
g Zustandsautomaten<br />
h Petrinetze<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
a Funktion<br />
b Schnittstelle<br />
c Anweisung/Datenelement<br />
d Entitätsmenge<br />
e Klasse (Rumbaugh-Notation)<br />
f Anweisung<br />
g Zustand (Software-Technik Notation)<br />
h Transition<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 6<br />
6 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Welche Bedeutung hat ein Kreis/Oval in den unten aufgeführten Basiskonzepten?<br />
a Datenfluß-Diagramm<br />
b Syntaxdiagramm<br />
c Entity-Relationship-Modell<br />
d Zustandsautomaten<br />
e Petrinetze<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Funktion / Prozeß<br />
b Terminalsymbol<br />
c Attribut<br />
d Zustand (Informatik-Notation)<br />
e Stelle<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 7<br />
7 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Welche Bedeutung haben Pfeile in den unten aufgeführten Basiskonzepten?<br />
a Datenfluß-Diagramm<br />
b Klassen-Diagramm<br />
c Interaktions-Diagramm<br />
d Programmablaufplan<br />
e Zustandsautomat<br />
f Petri-Netz<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
a Datenfluß<br />
b Botschaftsweg<br />
c Botschaftsweg<br />
d Abarbeitungsreihenfolge<br />
e Zustandsübergang<br />
f Kanten zwischen Stellen und Transitionen<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 8<br />
8 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Welche Darstellungsformen gibt es, um Kontrollstrukturen zu beschreiben?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 8<br />
Struktogramm<br />
Pseudo-Code<br />
Jackson-Diagramm<br />
Warnier-Orr-Diagramm<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 9<br />
9 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Welche Darstellungsformen gibt es, um Datenstrukturen zu beschreiben?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 9<br />
Datenfluß-Diagramm<br />
Data-Dictionary<br />
Syntax-Diagramm<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 10<br />
10 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Aus welchen Symbolen bestehen Datenflußdiagramme?<br />
Geben Sie zusätzlich <strong>der</strong>en Semantik an!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 10<br />
Datenflußname<br />
Funktionsname<br />
Datenfluß<br />
Funktion bzw. Prozeß<br />
Speichername Datenspeicher<br />
Schnittstellenname<br />
Schnittstelle zur Umwelt<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 11<br />
11 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Gegeben sei die Klasse „Buch“. Ein Buch wird durch die Attribute ISBN-Nummer,<br />
Autor und Titel Beschrieben. Zusätzlich erhält die Klasse „Buch“ eine Operation<br />
„Karteikarte drucken“.<br />
Geben Sie die korrekte Notation für die Klasse Buch<br />
a nach Coad/Yourdan<br />
b nach Rumbaugh<br />
c nach Unified Notation<br />
an!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 11<br />
Buch<br />
ISBN-Nummer<br />
Autor<br />
Titel<br />
Karteikarte<br />
drucken<br />
Buch<br />
ISBN-Nummer<br />
Autor<br />
Tit el<br />
Karteikarte<br />
drucken()<br />
Buch<br />
ISBN-Nummer<br />
Autor<br />
Tit el<br />
Karteikarte drucken()<br />
Aufgabe<br />
Lösung
LE 11 Aufgabe 12<br />
12 Lernziel: Die Notationen und die Semantik <strong>der</strong> verschiedenen Basiskonzepte<br />
unterscheiden können.<br />
Aufgabe:<br />
Was bedeutet <strong>der</strong> Begriff “Kardinalität“ und in welchen Basiskonzepten wird er<br />
verwendet?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 12<br />
Eine Kardinalität gibt an, mit wievielen an<strong>der</strong>en Entitäten (Objekten) eine Entität<br />
(Objekt) einer bestimmten Entitätsmenge (Klasse) in einer konkreten Beziehung<br />
stehen kann.<br />
Kardinalitäten werden in den Basiskonzepten Entity-Relationship-Modell und<br />
Klassen-Diagramm verwendet.<br />
Aufgabe<br />
Lösung
LE 12 Aufgabe 1<br />
1 Lernziel: Darstellen können, aus welchen Teilmodellen mit welchen Konzepten<br />
sich OOA zusammensetzt.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Geben Sie an, welche Basiskonzepte in OOA kombiniert werden und welche Aufgaben<br />
diese Konzepte im OOA-Modell übernehmen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Basiskonzepte:<br />
Klassendiagramme, Zustandsautomaten, ER-Diagramme, Interaktions-Diagramme,<br />
Pseudocode<br />
Aufgaben:<br />
Die Vererbungshierarchie in OOA-Modellen wird mit Hilfe von Klassen-Diagrammen<br />
ausgedrückt. Aus ER-Diagrammen wird das Basiskonzept zur Darstellung<br />
von Beziehungen übernommen.<br />
Zustandsautomaten dienen zur Modellierung von Objektlebenszyklen für Klassen.<br />
Mit Hilfe von Interaktions-Diagrammen können Szenarien, an denen verschiedene<br />
Objekte beteiligt sind, dargestellt werden.<br />
Pseudocode dient zur Spezifizierung <strong>der</strong> Operationen einer Klasse.<br />
Die Semantische Datenmodellierung – als Weiterentwicklung des ER-Modells –<br />
steuert Aggregationen <strong>zum</strong> OOA-Modell bei.<br />
Aufgabe<br />
Lösung
LE 12 Aufgabe 2<br />
2 Lernziel: Für gegebene Beispiele die behandelten Konzepte problemgerecht<br />
auswählen und anwenden können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Auf <strong>der</strong> beigefügten <strong>CD</strong>-ROM finden Sie eine Demonstrationsversion des interaktiven,<br />
multimedialen Lernsystems Object-Lab. Lösen Sie in diesem System<br />
bitte die Fallstudie Dinopark. Nehmen Sie dazu bitte folgende Einstellungen vor:<br />
Benutzer: Anfänger<br />
Lernziel: Anwenden<br />
Lernstrategie: Fallstudien<br />
Themen: beides (OOD + OOA)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Starten Sie Object-Lab und berarbeiten Sie die Fallstudie Dinopark<br />
Aufgabe<br />
Lösung
LE 12 Aufgabe 3<br />
3 Lernziel: Für gegebene Beispiele die behandelten Konzepte problemgerecht<br />
auswählen und anwenden können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Die Stadtverwaltung einer Großstadt will die Müllabfuhr <strong>der</strong> Stadt rechnergestützt<br />
organisieren. Dazu werden Entsorgungsteams gebildet, die aus 3 bis 4 Mitarbeitern<br />
bestehen. Jedem Team ist ein Entsorgungsfahrzeug fest zugeordnet. Ein Team<br />
ist für die Müllabfuhr in einem o<strong>der</strong> mehreren Bezirken zuständig. Die genaue<br />
Anzahl <strong>der</strong> von einem Team zu versorgenden Bezirke ist von <strong>der</strong> Größe des Bezirks<br />
abhängig. Es gibt Bezirke <strong>der</strong> Größe 1, 2 o<strong>der</strong> 3. Die Summe dieser Größenfaktoren<br />
darf pro Team nicht größer als 6 werden, ein Team kann also z. B. 3<br />
Bezirke <strong>der</strong> Größe 2 entsorgen.<br />
Mit <strong>der</strong> Erstellung des OOA-Modells für dieses Problem (Abb. 2.18-34) wurde<br />
bereits begonnen, allerdings sind noch keine Aussagen über die Kardinalitäten<br />
und die sie betreffenden Restriktionen getroffen worden. Auch wurde noch nicht<br />
entschieden, ob es sich bei den Beziehungen um Aggregationen o<strong>der</strong> Assoziationen<br />
handelt.<br />
➜<br />
Aufgabe<br />
Lösung
Entsorgungsfahrzeug<br />
Kennzeichen<br />
Entsorgungsteam<br />
Name<br />
Bezirk<br />
Größenfaktor<br />
Name<br />
Mitarbeiter<br />
Name<br />
Gehaltsgruppe<br />
PersonalNr<br />
Krank<br />
a Tragen Sie die Kardinalitäten und die sie betreffenden Restriktionen in das<br />
OOA-Diagramm ein.<br />
b Entscheiden Sie, welche Beziehungen als Aggregationen und welche als Assoziationen<br />
modelliert werden sollten.<br />
c Um die Einsatzfähigkeit <strong>der</strong> Entsorgungsteams zu gewährleisten, werden einige<br />
Mitarbeiter als »Springer« eingesetzt. Springer sind keinem Team fest zugeordnet,<br />
son<strong>der</strong>n können bei 1 - 3 Teams bei Bedarf einspringen. Die Erfahrung<br />
hat gezeigt, daß ein Ersatzmitarbeiter pro Team ausreicht. Erweitern Sie das in<br />
Aufgabenziel a und b vervollständigte Modell, so daß dieser Sachverhalt berücksichtigt<br />
wird.<br />
d Welche Muster finden sich in dem OOA-Modell?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a Die Kardinalitäten sind im nachfolgend dargestellten Diagramm eingetragen:<br />
Entsorgungsfahrzeug<br />
Kennzeichen 1<br />
1<br />
Entsorgungsteam<br />
Name<br />
1, m<br />
{Größenfaktor
c Es wird eine zusätzliche Beziehung zwischen Mitarbeiter und Entsorgungsteam<br />
eingeführt, die diese neue Situation modelliert:<br />
Entsorgungsfahrzeug<br />
Kennzeichen 1<br />
1<br />
Entsorgungsteam<br />
Name<br />
1, m<br />
{Größenfaktor
LE 12 Aufgabe 4<br />
4 Lernziel: Erklären können, wofür Subsysteme eingesetzt werden und welche<br />
Kriterien bei <strong>der</strong> Subsystembildung zu beachten sind.<br />
Für gegebene Beispiele die behandelten Konzepte problemgerecht auswählen<br />
und anwenden können.<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein OOA-Modell, das den Aufbau von OOA-Diagrammen nach Coad/<br />
Yourdon allgemein beschreibt. Unterteilen Sie das OOA-Modell in sinnvolle Subsysteme.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Assoziation<br />
Rollenname1<br />
Rollenname2<br />
Kardinalitäten<br />
2<br />
0, m<br />
Attribut<br />
Name<br />
Typ<br />
Spezifikation<br />
OAA-Modell<br />
Name<br />
1, m<br />
1<br />
Subsystem<br />
Nummer<br />
Name<br />
Name<br />
abstrakt<br />
0, m<br />
1<br />
1, m<br />
1, m<br />
Klasse<br />
0, m<br />
1<br />
1<br />
0, m Part<br />
1<br />
Aggregation<br />
Rollenname1<br />
Rollenname2<br />
0, m Whole Kardinalitäten<br />
0, m 1<br />
Basisklasse<br />
0, m<br />
Unterklasse<br />
Operation<br />
Name<br />
Parameter<br />
Spezifikation<br />
2<br />
Aufgabe<br />
Lösung
LE 12 Aufgabe 5<br />
5 Lernziel: Die aufgeführten Notationen angeben und ihre Unterschiede erklären<br />
können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Betrachten Sie den in Abb. 2.18-35 dargestellten Ausschnitt aus einem OOA-<br />
Modell:<br />
Person<br />
Name<br />
Vorname<br />
1+<br />
Volkhochschulkurs<br />
Nummer<br />
Bezeichnung<br />
a Welche Notation wurde hier verwendet?<br />
b Beschreiben Sie in eigenen Worten, was für eine Art von Beziehung zwischen<br />
den vorkommenden Klassen besteht.<br />
c Erstellen Sie diesen Modellausschnitt in den an<strong>der</strong>en vorgestellten Notationen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
a Der Diagrammausschnitt ist in <strong>der</strong> Notation nach Rumbaugh gezeichnet.<br />
b Es handelt sich um eine Assoziation zwischen den Klassen Person und Volkshochschule.<br />
Eine Person kann null o<strong>der</strong> mehrere Volkshochschulkurse besuchen.<br />
Je<strong>der</strong> VHS-Kurs hat mindestens einen Teilnehmer.<br />
c Notation nach Coad/Yourdon:<br />
Person<br />
Name<br />
Vorname<br />
Unified Notation:<br />
Person<br />
Name: String<br />
Vorname: String<br />
0, n<br />
1, n<br />
1..* *<br />
Volkshochschulkurs<br />
Nummer<br />
Bezeichnung<br />
Volkshochschulkurs<br />
Nummer: Integer<br />
Bezeichnung: String<br />
Aufgabe<br />
Lösung
LE 12 Aufgabe 6<br />
6 Lernziel: Die aufgeführten Muster erklären und in OOA-Modellen identifizieren<br />
können, Dienstleistungen an<strong>der</strong>er Klassen in Anspruch nehmen.<br />
Zeit: 25 Minuten<br />
Aufgabe:<br />
Mit Hilfe des in Abb. 2.18-36 dargestellten OOA-Modells möchte ein Musikgeschäft<br />
seine Schallplatten, Musikkassetten und <strong>CD</strong>s verwalten. Die einzelnen Tonträger<br />
werden unterschieden nach Single (ein o<strong>der</strong> zwei Musikstücke desselben Interpreten)<br />
und Sampler (mehrere Stücke unterschiedlicher Interpreten).<br />
Sampler<br />
1,n<br />
Tonträger<br />
Titel<br />
Erscheinungsjahr 0,n<br />
Nachbestellen<br />
Longplayer<br />
Interpret<br />
1,n<br />
0,1<br />
Musikstück<br />
Länge<br />
Komponist<br />
Texter<br />
Samplerstück<br />
0,1<br />
Interpret<br />
0,1<br />
1<br />
Single<br />
Interpret<br />
2<br />
Medium<br />
Art<br />
Preis<br />
Standort<br />
➜<br />
Aufgabe<br />
Lösung
a Welche OOA-Muster finden Sie in dem in 2.18-36 dargestellten Diagramm?<br />
b Spezifizieren Sie die Operation Nachbestellen (in Art, in Mindestzahl) <strong>der</strong> Klasse<br />
Tonträger, die prüft, ob die Mindestzahl von Medien <strong>der</strong> gewünschten Art noch<br />
vorhanden ist und gegebenenfalls eine Bestellung veranlaßt. Das Bestellen soll<br />
durch die Erzeugung neuer Objekte simuliert werden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Es lassen sich folgende Muster finden:<br />
n Musikstück und Samplerstück bilden das Muster 2 (konkrete Oberklasse).<br />
Musikstück ist dabei die konkrete Oberklasse für Samplerstück.<br />
n Tonträger und die Klassen Sampler, Longplayer sowie Single bilden das<br />
Muster 1 (abstrakte Oberklasse). Tonträger ist dabei die abstrakte Oberklasse<br />
mit den Unterklassen Sampler. Longplayer und Single.<br />
n Die Klassen Medium und Tonträger bilden das Muster 5 (Exemplare und ihre<br />
Beschreibung). Medium ist die Beschreibung, Tonträger das Exemplar.<br />
n Die Klassen Longplayer/Samplerstück sowie Single/Samplerstück bilden<br />
jeweils das Muster 7 (Fortpflanzung von Attributwerten), da sich <strong>der</strong> Wert des<br />
Attributs Interpret von Single/Longplayer nach Samplerstück überträgt.<br />
b Spezifikation <strong>der</strong> Operation Nachbestellen <strong>der</strong> Klasse Tonträger:<br />
Operation Tonträger.Nachbestellen(in Art,<br />
in Mindestzahl)<br />
Anzahl := 0<br />
Für alle Medium-Objekte dieses Tonträgers<br />
Falls Medium.GetArt() = Art<br />
Anzahl := Anzahl + 1;<br />
ende falls;<br />
ende Für alle<br />
Solange Anzahl < Mindestzahl<br />
NeuesMedium := Medium.Create();<br />
NeuesMedium.SetArt(Art);<br />
Anzahl := Anzahl + 1;<br />
ende solange;<br />
Aufgabe<br />
Lösung
LE 13 Aufgabe 1<br />
1 Lernziel: Anhand <strong>der</strong> beschriebenen Methodik und unter Verwendung <strong>der</strong><br />
angegebenen Checklisten systematisch ein OOA-Modell erstellen und überprüfen<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
In einer Schule soll <strong>der</strong> Lehrbetrieb rechnergestützt verwaltet werden. Je<strong>der</strong> Lehrer<br />
kann bis zu vier Fächer unterrichten. Eine Klasse wird von verschiedenen Lehrern<br />
in unterschiedlichen Fächern unterrichtet. Je<strong>der</strong> Klasse ist ein bestimmter<br />
Lehrer als Klassenlehrer zugeordnet. Der Klassenlehrer soll die Schüler seiner<br />
Klasse bei Problemen unterstützen. Deshalb darf je<strong>der</strong> Lehrer nur für eine Klasse<br />
Klassenlehrer sein.<br />
Jede Unterrichtsstunde finden in einem bestimmten Raum zu einer bestimmten<br />
Zeit statt und wird von einem Lehrer vor einer Klasse abgehalten. Jede Klasse<br />
hat zwischen 30 und 35 Unterrichtsstunden.<br />
Betrachten Sie das zu diesem Problem erstellte OOA-Modell in Abb. 2.18-48.<br />
Prüfen Sie anhand <strong>der</strong> Checklisten, ob das Modell hinsichtlich <strong>der</strong> gefundenen<br />
Klassen und Beziehungen korrekt ist.<br />
Untersuchen Sie auch, ob die Attribute sinnvoll benannt sind und ob überall<br />
das richtige Abstraktionsniveau gefunden wurde.<br />
Nennen Sie zu jedem gefundenen Fehler die entsprechende Checkliste mit<br />
dem zugehörigen Unterpunkt.<br />
➜<br />
Aufgabe<br />
Lösung
Fächer<br />
Lehrer<br />
Klasse<br />
Name<br />
Stundenzahl/Woche 0,n 1,n<br />
Lehrername<br />
Dienstbez 1,n 1,n<br />
Schülerzahl<br />
Klassenlehrer<br />
Personal Nr<br />
Jahrgangsstufe<br />
1,n 1,n 1,n<br />
1 1<br />
Unterricht<br />
Stunde<br />
Minute<br />
1<br />
Wochentag<br />
1<br />
0,n<br />
Klassenraum<br />
Raum Nr<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
In dem OOA-Diagramm nach Abb. 2.18-48 finden sich folgende Fehler:<br />
n Die Klasse »Fächer« sollte in »Fach« umbenannt werden. Bei <strong>der</strong> Benennung<br />
von Klassen gilt die Regel, daß Klassennamen Substantive im Singular sein müssen.<br />
n Das Attribut »Lehrername« <strong>der</strong> Klasse Lehrer sollte in »Name« umbenannt<br />
werden. Der Klassenname soll nicht im Attributnamen wie<strong>der</strong>holt werden.<br />
n Zwischen den Klassen »Lehrer« und »Klasse« muß eine weitere Beziehung<br />
mit dem Rollennamen »Klassenlehrer« eingefügt werden. Damit wird <strong>der</strong> fachliche<br />
Unterschied zwischen einem Klassenlehrer (Jede Klasse kann nur einen Klassenlehrer<br />
haben, je<strong>der</strong> Lehrer ist für maximal eine Klasse Klassenlehrer) und einem<br />
Fachlehrer deutlich.<br />
n »Klassenraum« kann als Attribut in die Klasse »Unterricht« aufgenommen werden,<br />
da nur die Raum-Nr. zu speichern ist.<br />
n Die Attribute »Stunde«, »Minute« und »Wochentag« <strong>der</strong> Klasse »Unterricht«<br />
können zu »Zeit« zusammengefaßt werden.<br />
n Die Kardinalität <strong>der</strong> Beziehung zwischen »Lehrer« und »Fächer« ist falsch, da<br />
ein Lehrer maximal vier Fächer unterrichten kann.<br />
n Da jede Klasse zwischen 30 und 35 Unterrichtsstunden hat, muß die Kardinalität<br />
<strong>der</strong> Beziehung zwischen »Unterricht« und »Klasse« 30,35 statt 1,n lauten.<br />
n Die Klasse »Fächer« darf nicht abstrakt sein.<br />
n Es kann auch Fächer geben, die zur Zeit nicht unterrichtet werden (können).<br />
Daher muß die Kardinalität <strong>der</strong> Beziehung zwischen »Fächer« und »Unterricht«<br />
0,n statt 1,n lauten.<br />
Das korrigierte OOA-Modell sieht folgen<strong>der</strong>maßen aus: ➜<br />
Aufgabe<br />
Lösung
Fach<br />
Name<br />
Stundenzahl/Woche<br />
0, n<br />
0, n<br />
1, 4<br />
Lehrer<br />
Name<br />
Dienstbez.<br />
Personal Nr.<br />
1, n<br />
Unterricht<br />
1 Zeit<br />
1<br />
Raum Nr.<br />
1<br />
1<br />
Klassenlehrer<br />
Klasse<br />
Schülerzahl<br />
Jahrgangsstufe<br />
30, 35<br />
Aufgabe<br />
Lösung
LE 13 Aufgabe 2<br />
2 Lernziel: Anhand <strong>der</strong> beschriebenen Methodik und unter Verwendung <strong>der</strong> angegebenen<br />
Checklisten systematisch ein OOA-Modell erstellen und überprüfen<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
a Es soll zunächst <strong>der</strong> in Abb. 2.11-10 dargestellte Teach-Roboter modelliert<br />
werden. Erstellen Sie ein OOA-Modell, das diesen Roboter modelliert.<br />
b Erweitern Sie das OOA-Modell so, daß <strong>der</strong> Roboter aus <strong>der</strong> Fallstudie<br />
Roboteranimiation modelliert wird.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a Der in Abb. 2.11-10 dargestellte Roboter besteht aus den Elementen Schulter,<br />
Unterarm, Oberarm und Hand, die jeweils als eigene Klasse modelliert und über<br />
Beziehungen verbunden wurden:<br />
Schulter<br />
x-Position<br />
y-Position<br />
1<br />
1<br />
Unterarm<br />
minimaler Winkel<br />
maximaler Winkel<br />
aktueller Winkel<br />
1<br />
1<br />
Oberarm<br />
minimaler Winkel<br />
maximaler Winkel<br />
aktueller Winkel<br />
1<br />
1<br />
Hand<br />
Öffnungswinkel<br />
Länge<br />
aktueller Winkel<br />
➜<br />
Aufgabe<br />
Lösung
Dieser Roboter ist in <strong>der</strong> auf <strong>der</strong> <strong>CD</strong>-ROM enthaltenen Beispielanwendung<br />
»Roboteranimation« modelliert. Nachfolgend ist <strong>der</strong> den Roboter modellierende<br />
Ausschnitt aus dem OOA-Modell wie<strong>der</strong>gegeben.<br />
Der Roboter setzt sich aus Dreh- und Beugegelenken sowie einem Greifer zusammen.<br />
Der Greifer ist an einem Drehgelenk befestigt; auf ein Drehgelenk muß<br />
ein Beugegelenk folgen. Es ist möglich, daß mehrere Beugegelenke aufeinan<strong>der</strong>folgen.<br />
Weitere Hinweise können Sie in den Dokumentationen auf <strong>der</strong> <strong>CD</strong>-ROM im Verzeichnis<br />
/swt/roboter<br />
Drehgelenk<br />
Darstellen<br />
Löschen<br />
0, 1<br />
Gelenk<br />
Position<br />
Winkel<br />
Länge<br />
Farbe<br />
0, 1<br />
0, 1<br />
0, 1<br />
Beugegelenk<br />
Darstellen<br />
Löschen<br />
0, 1<br />
{ein Objekt}<br />
Greifer<br />
Öffnungsgrad<br />
Länge<br />
Farbe<br />
0, 1<br />
Aufgabe<br />
Lösung
LE 13 Aufgabe 3<br />
3 Lernziel: Anhand <strong>der</strong> beschriebenen Methodik und unter Verwendung <strong>der</strong> angegebenen<br />
Checklisten systematisch ein OOA-Modell erstellen und überprüfen<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein vollständiges OOA-Modell <strong>der</strong> Fallstudie HIWI-Verwaltung<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Studienfach<br />
Bezeichnung<br />
0,1 0,1<br />
Vordiplom Diplom<br />
{nur eine<br />
Beziehung}<br />
1<br />
Abschluß<br />
Note<br />
Datum<br />
1<br />
1<br />
Hilfsassistent<br />
1,N<br />
Name<br />
Vorname<br />
Matrikel Nr.<br />
Geburtsdatum<br />
1,N 1<br />
Arbeitszeugnis<br />
Datum Arbeitszeugnis<br />
Liste erstellen (K)<br />
Daten ausgeben<br />
{nach Datum<br />
sortiert}<br />
1<br />
Heimatadresse<br />
1<br />
Adresse<br />
Straße<br />
PLZ<br />
Ort<br />
Telefon Nr.<br />
1<br />
Studienadresse<br />
{nur eine<br />
Beziehung}<br />
1<br />
Beschäftigung<br />
von<br />
bis<br />
Stundenzahl<br />
Tätigkeitsgebiete<br />
Software-Systeme<br />
Aufgabe<br />
Lösung
LE 13 Aufgabe 4<br />
2 Lernziel: Anhand <strong>der</strong> beschriebenen Methodik und unter Verwendung <strong>der</strong> angegebenen<br />
Checklisten systematisch ein OOA-Modell erstellen und überprüfen<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein vollständiges OOA-Modell <strong>der</strong> Fallstudie Roboteranimation.<br />
Gehen Sie dabei nach <strong>der</strong> vorgestellten Methodik vor.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
1<br />
RoboterStellung<br />
pNiveauWert<br />
Berechnen<br />
AufsichtLoeschen<br />
AufsichtDarstellen<br />
HandstellungLoeschen<br />
HandstellungDarstellen<br />
1<br />
1 SeitenansichtLoeschen<br />
SeitenansichtDarstellen<br />
1<br />
2 3<br />
Drehgelenk<br />
0, 1 0, 1<br />
linkes<br />
Gelenk<br />
Beugegelenk<br />
Darstellen<br />
Loeschen<br />
0, 1<br />
Robotersteuerung<br />
MAIN<br />
pDateiName<br />
aufsicht<br />
pAktBefehl<br />
pListbox1/2<br />
1 1<br />
handstellung<br />
fingerstellung<br />
1<br />
pEingabeEditor<br />
seitenansicht<br />
pAusfuehrenButtun<br />
robotersteuerung<br />
Makro<br />
Verzoegerungszeit<br />
Laden<br />
Speichern<br />
clickedAusfuehrenButtn<br />
Beenden<br />
clickedRueckButtn<br />
clickedUebernehmenButtn<br />
Rueckgaengig<br />
Kopieren<br />
1<br />
Verzoegern<br />
Einfügen 1<br />
FehlerDialogAusgabe<br />
CursorPositionieren<br />
Loeschen<br />
Alles markieren 1<br />
MakroLaden<br />
MakroExpandieren<br />
Kalibrieren<br />
Reset<br />
1<br />
Anfahren<br />
Nivellieren<br />
1 1 1 1 1<br />
Verzoegern<br />
Ansicht<br />
Gelenk<br />
Position<br />
kalibPosition<br />
Winkel<br />
Länge<br />
Farbe<br />
Darstellen<br />
Loeschen<br />
0, 1<br />
linkes<br />
Gelenk<br />
linkes<br />
Gelenk<br />
Darstellen<br />
Loeschen<br />
0, 1<br />
1<br />
Greifer<br />
Oeffnungsgrad<br />
kalibOeffnungsgrad<br />
Laenge<br />
Farbe<br />
FingerDarstellen<br />
FingerLoeschen<br />
0, 1<br />
1<br />
1<br />
1<br />
1<br />
Aufsicht<br />
NeuDarstellen<br />
Handstellung<br />
NeuDarstellen<br />
Fingerstellung<br />
NeuDarstellen<br />
Seitenansicht<br />
NeuDarstellen<br />
DSyntaxFehler<br />
pOK_Button<br />
pStaticText<br />
clicked_OK_Button<br />
Anmerkung:<br />
Dieses Dialogfenster<br />
steht zwar alleine, aber<br />
stellvertretend für alle<br />
an<strong>der</strong>en Dialogfenster!<br />
1<br />
1<br />
1<br />
1<br />
1<br />
Weitere Hinweise zu dieser Lösung finden<br />
Sie in <strong>der</strong> Dokumentation zur Fallstudie<br />
Roboteranimation auf <strong>der</strong> <strong>CD</strong>-ROM im<br />
Verzeichnis /swt/roboter.<br />
Aufgabe<br />
Lösung
LE 14 Aufgabe 1<br />
1 Lernziel: Das SA-Hierarchiemodell einschließlich <strong>der</strong> Datenintegrität beschreiben<br />
können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Was versteht man unter »balancing«?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Der Begriff »Balancing« beschreibt die Datenkonsistenz zwischen den einzelnen<br />
Hierarchieebenen <strong>der</strong> Datenflußdiagramme eines SA-Modells.<br />
Angenommen, auf dem Diagramm 3 fließen die Datenflüsse E31 und E32 in<br />
Bubble 2 hinein und <strong>der</strong> Datenfluß A31 fließt aus dem Bubble 2 heraus. Ferner<br />
fließen die Datenflüsse E3221, E323 und E324 von außen in das Diagramm 3.2<br />
(Verfeinerung von Bubble 2 im Diagramm 3) hinein, während die Datenflüsse<br />
A321, A322, A323, A324 das Diagramm 3.2 verlassen. Damit in diesem Beispiel<br />
die »balancing«-Regeln erfüllt sind, muß im Data Dictionary vereinbart sein:<br />
E31 + E32 = E321 + E322 + E323 + E324<br />
A31 = A321 + A322 + A323 + A 324<br />
Aufgabe<br />
Lösung
LE 14 Aufgabe 2<br />
2 Lernziel: Erklären können, wie <strong>der</strong> Zusammenhang von SA zu ER-Modellen<br />
und Funktionsbäumen aussieht.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
a Wie ist das ER-Modell <strong>der</strong> Seminarorganisation mit den SA-Diagrammen <strong>der</strong><br />
Seminarorganisation verbunden?<br />
b Wie ist <strong>der</strong> Funktionsbaum <strong>der</strong> Seminarorganisation mit den SA-Diagrammen<br />
<strong>der</strong> Seminarorganisation verbunden?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Zusammenhang zwischen Datenflußdiagramm, Enity-Relationship-Diagramm,<br />
Funktionsbaum<br />
a Je<strong>der</strong> Datenspeicher in SA-Diagramm entspricht einer Entität o<strong>der</strong> einer<br />
Relation im ER-Diagramm. Jede Entität o<strong>der</strong> m:m-Relation im ER-Diagramm<br />
entspricht einem Speicher im SA-Diagramm<br />
b Jede elementare Funktion des Funktionsbaumes entspricht einer Mini-Spec<br />
im SA-Modell und umgekehrt.<br />
Aufgabe<br />
Lösung
LE 14 Aufgabe 3<br />
3 Lernziel: Die Regeln und methodischen Schritte, die bei <strong>der</strong> Erstellung eines<br />
SA-Modells einzuhalten sind, kennen und bei <strong>der</strong> Modellierung anwenden können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Prüfen Sie, ob <strong>der</strong> folgende Ausschnitt eines SA-Modells korrekt ist, und geben<br />
Sie eventuelle Fehler mit Korrekturvorschlägen an.<br />
Kontextdiagramm:<br />
Kunde<br />
0<br />
verwalte<br />
Weinhandlung<br />
Anfragen<br />
Lieferung<br />
Lieferant<br />
Bestellung<br />
Lieferung<br />
Auftrag<br />
Angebote<br />
➜<br />
Aufgabe<br />
Lösung
DFD0 Weinhandlung:<br />
Bestellung<br />
Rechnung<br />
Lieferschein<br />
verwalte<br />
Kunden<br />
DFD2 verwalte Lieferanten:<br />
Weinmenge<br />
Preis<br />
.1<br />
verwalte<br />
Lieferungen<br />
Weinlager<br />
Data Dictionary (Auszug):<br />
Weinlager<br />
Lieferanten<br />
vergleiche<br />
Angebote und<br />
erteile Aufträge<br />
Angebote<br />
Auftrag<br />
.2<br />
verwalte<br />
Lieferanten<br />
.2<br />
hole<br />
Angebote<br />
Auftrag<br />
Angebote<br />
Lieferung<br />
Anfragen<br />
Weinlager<br />
Weinlager = 1{Weinflasche}<br />
Weinflasche = Name + [Kabinett | Auslese | Spätlese ]<br />
+ Jahrgang + Abfüllort + Lieferdatum<br />
Lieferung = Rechnung + Lieferschein<br />
Weinmenge = 1{Weinflasche}<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Fehleranalyse eines Ausschnitts des SA-Modells <strong>der</strong> Weinhandlung<br />
Kontext-Diagramm:<br />
- Es gibt zwei Datenflüsse mit gleichem Namen »Lieferung« und unterschiedlicher<br />
Bedeutung. Der eine beschreibt die Lieferung eines Lieferanten an die<br />
Weinhandlung, <strong>der</strong> an<strong>der</strong>e die Lieferung <strong>der</strong> Weinhandlung an ihren Kunden.<br />
Bessere Namen wären z. B. »Lieferantenlieferung« und Kundenlieferung».<br />
Balancing: Kontext-Diagramm – Diagramm 0<br />
- Der Datenfluß «Anfragen vom Lieferanten <strong>zum</strong> Bubble 0 ist im Kontext-<br />
Diagramm eingezeichnet, fehlt aber im Diagramm 000.<br />
- Namenskonflikt zwischen <strong>der</strong> Bezeichnung von Bubble 0 »verwaltete Weinlager«<br />
und Diagramm 0 »Weinhandlung«.<br />
Die beiden Namen müssen gleich sein.<br />
Diagramm 0:<br />
- Der Bubble »verwaltete Kunden« hat keine Nummer<br />
Balancing: Diagramm 0 – Diagramm 2<br />
- Der schreibende Zugriff auf den Speicher »Weinlager« im Diagramm 0 wird<br />
im Diagramm 2 nicht modelliert.<br />
- Der Datenfluß »Angebote« führt auf Diagramm 0 in Bubble 2 hinein, fließt im<br />
Diagramm 2 jedoch nach außen<br />
- Der Datenfluß »Anfragen« fließt im Diagramm 2 nach außen, erscheint aber<br />
nicht im Diagramm 0.<br />
Aufgabe<br />
Lösung
LE 14 Aufgabe 4<br />
4 Lernziel: Für eine gegebene Problemstellung ein vollständiges SA-Modell<br />
erstellen können.<br />
Zeit: 90 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein vollständiges SA-Modell für das Pflichtenheft <strong>der</strong> HIWI-Verwaltung<br />
(Definitionsphase – Einführung, Aufgabe 6).<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Vollständiges SA-Modell <strong>zum</strong> Pflichtenheft <strong>der</strong> Fallstudie »HiWi-Verwaltung«<br />
HiWi_Verwaltung, Kontextdiagramm:<br />
Hilfskräfte<br />
neue HiWi-Daten<br />
Kündigung<br />
geän<strong>der</strong>te HiWi-Daten<br />
.O<br />
verwalte<br />
HiWis<br />
Vertragsverlägerung<br />
Uni-Kanzler<br />
Verlängerungstext<br />
HiWi-Kennung<br />
HiWi-Daten<br />
HiWi-Liste<br />
Sekretärin<br />
➜<br />
Aufgabe<br />
Lösung
HiWi_Verwaltung, Datenflußdiagramm 0:<br />
neue<br />
HiWi-Daten<br />
geän<strong>der</strong>te<br />
HiWi-Daten<br />
Kündigung<br />
.1<br />
HiWi-Daten<br />
erfassen<br />
.2<br />
HiWi-Daten<br />
än<strong>der</strong>n<br />
.3<br />
HiWi-Daten<br />
löschen<br />
HiWi-Daten<br />
.6<br />
HiWi-Verträgeverlängern<br />
.5<br />
HiWi-Liste<br />
drucken<br />
.4<br />
HiWi-Daten<br />
ausgeben<br />
Verlängerungstext<br />
Vertragsverlängerung<br />
HiWi-Liste<br />
/F 50/<br />
HiWi-Kennung<br />
HiWi-Daten<br />
➜<br />
Aufgabe<br />
Lösung
HiWi-Verwaltung, Mini-Specs:<br />
Mini-Spec 1: HiWi-Daten erfassen<br />
Lege neuen Eintrag im Speicher HiWi-Daten an.<br />
Speichere alle neuen HiWi-Daten im Speicher HiWi-Daten.<br />
Mini-Spec 2: HiWi-Daten än<strong>der</strong>n<br />
Speichere alle geän<strong>der</strong>ten HiWi-Daten im Speicher HiWi-Daten.<br />
Mini-Spec 3: HiWi-Daten löschen<br />
Lösche alle Daten des HiWis im Speicher HiWi-Daten.<br />
Mini-Spec 4: HiWi-Daten ausgeben<br />
Suche im Speicher HiWi-Daten den Eintrag “HiWi-Kennung”.<br />
Gebe alle Daten <strong>der</strong> mit HiWi-Kennung angegebenen Hilfskraft aus.<br />
Mini-Spec 5: HiWi-Liste drucken<br />
Lese alle HiWi-Einträge aus dem Speicher HiWi-Daten und generiere eine alphabetisch<br />
sortierte Liste aller HiWis.<br />
Mini-Spec 6: HiWi-Verträge verlängern<br />
Lese <strong>zum</strong> Quartalsende alle z. Zt. beschäftigten HiWis aus dem Speicher HiWi-<br />
Daten und generiere mit dem intern gespeicherten Verlängerungstext für jeden<br />
HiWi eine Vertragsverlängerung um 3 Monate.<br />
➜<br />
Aufgabe<br />
Lösung
HiWi-Verwaltung, DataDictionary:<br />
Arbeitszeugnisdatum<br />
NOTES: Ausstellungsdatum des Arbeitszeugnisses<br />
Beginndatum<br />
NOTES: Datum des Vertragsbeginns<br />
benutzte_SoftwareSysteme<br />
NOTES: Liste <strong>der</strong> während <strong>der</strong> Beschäftigung benutzten Software-Systeme<br />
Beschäftigungsdaten = Beginndatum + Endedatum<br />
+ Stundenzahl_pro_Woche + 1[Tätigkeitsgebiet]<br />
+ 1[benutzte_SoftwareSysteme] + (Arbeitszeugnisdatum)<br />
NOTES:<br />
DiplomDatum<br />
NOTES: Ausstellungsdatum des Diplomzeugnisses<br />
Diplomnote<br />
NOTES: Durchschnittsnote des Diplomzeugnisses<br />
Endedatum<br />
Aufgabe<br />
Lösung
LE 15 Aufgabe 1<br />
1 Lernziel: Ein RT-Modell auf Syntax und Semantik hin überprüfen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Kontext-Diagramm<br />
Schnitt-<br />
b<br />
stelle A<br />
d<br />
FD0: überwache Lager<br />
b2<br />
d1<br />
CSpec3<br />
g="yes"<br />
Activate<br />
kontrol.<br />
Ausgang<br />
.1<br />
kontrolliere<br />
Eingang<br />
Ruhe<br />
h<br />
kontrollierend<br />
verwalte<br />
Lager<br />
c<br />
Bedingung<br />
d2<br />
g="no"<br />
f,g<br />
PSpec 1.1 Kontrolliere Eingang<br />
if Bedingung = "okay"<br />
c := b2 + d1;<br />
else<br />
c := b2 - d1;<br />
end if;<br />
i<br />
i<br />
c<br />
f<br />
kontrolliere<br />
Ausgang<br />
wartend<br />
h<br />
Schnittstelle<br />
B<br />
Bestand<br />
f1<br />
g<br />
b1<br />
h<br />
f2<br />
Auszug aus dem RD:<br />
d = d1 + d2<br />
b = b1 + b2<br />
f = f1 + f2<br />
g = ["yes" | "no"]<br />
Untersuchen Sie das RT-Modell<br />
in Abb. 2.20-17 auf syntaktische<br />
Fehler<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Analyse des Ausschnitts des RT-Modells <strong>der</strong> Lagerverwaltung.<br />
Kontext-Diagramm:<br />
- Bubble »verwalte Lager« hat keine Nummer.<br />
Balancing Kontext-Diagramm - Diagramm 0:<br />
- Datenfluß »b« fließt in Bubble 0 hinein, während im Diagramm 0 die Komponente<br />
»b1« das Diagramm verläßt und die Komponente »b2« von außen in<br />
das Diagramm hineinfließt.<br />
- Datenfluß »c« fließt in Bubble 0 hinein, ist aber ein interner Datenfluß im<br />
Diagramm 0.<br />
- Kontrollfluß »d« fließt in Bubble 0 hinein, seine Komponenten »d1« und »d2«<br />
im Diagramm 0 sind jedoch Datenflüsse.<br />
Diagramm 0:<br />
- Datenfluß »b1« verläßt den Datenspeicher »Bestand« und fließt direkt zu<br />
einer externen Schnittstelle.<br />
- Datenfluß »f2« kommt aus einer Kontroll-Spezifikation.<br />
- Bubble »kontrolliere Ausgang« hat keine Nummer.<br />
Balancing Diagramm 0 - P-Spec 1.1:<br />
- Nummer <strong>der</strong> P-Spec »kontrolliere Eingang« als Verfeinerung von Bubble 1<br />
»kontrolliere Eingang« ist 1.1. Richtig wäre P-Spec 1.<br />
- Kontrollfluß »Bedingung« fließt in die P-Spec hinein.<br />
➜<br />
Aufgabe<br />
Lösung
- Kontrollfluß »i« aus Bubble 1 wird in <strong>der</strong> P-Spec nicht generiert.<br />
- Datenfluß »Bestand« aus Bubble 1 wird in <strong>der</strong> P-Spec nicht gebildet.<br />
Balancing Diagramm 0 - C-Spec 3:<br />
- Nummer <strong>der</strong> C-Spec ist 3. Richtig wäre 0.<br />
- Im Diagramm 0 verläßt ein Datenfluß »f2« die C-Spec-Schnittstelle, während<br />
in <strong>der</strong> C-Spec ein Kontrollfluß »f« generiert wird.<br />
- In <strong>der</strong> C-Spec wird <strong>der</strong> Kontrollfluß »g« als Aktion generiert. Im Diagramm 0<br />
fehlt ein Kontrollfluß »g«, <strong>der</strong> die C-Spec verläßt.<br />
P-Spec 1.1:<br />
- keine Fehler<br />
C-Spec 3:<br />
- Am Zustandsübergang vom Zustand »wartend« <strong>zum</strong> Zustand »Ruhe« fehlt<br />
das Ereignis als Bedingung für den Zustandswechsel.<br />
DD:<br />
- keine Fehler<br />
Aufgabe<br />
Lösung
LE 15 Aufgabe 2<br />
2 Lernziel: Für eine geeignete Problemstellung ein vollständiges SA/RT-Modell<br />
erstellen können.<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Modellieren Sie die Tankanlagensteuerung in Abb. 2.20-18 mit <strong>der</strong> RT Methode:<br />
Max-Niveau<br />
Soll-Niveau<br />
Ist-Niveau<br />
Einlaßventil<br />
Ist-Status = geöffnet<br />
Zeitverzögerung = 2 sec<br />
Tank<br />
Ist-Status = geschlossen<br />
Auslaßventil<br />
➜<br />
Aufgabe<br />
Lösung
10/ Ein einfaches Softwaresystem steuert das Füllen und Leeren eines Tanks,<br />
indem es den Flüssigkeitsstand im Tank überwacht und die Ventile entsprechend<br />
öffnet und schließt.<br />
/20/ Es gibt ein Einlaß- und ein Auslaßventil.<br />
/30/ Jedes Ventil kann zwei Zustände einnehmen: geöffnet und geschlossen.<br />
/40/ Das Einlaßventil besitzt beim Öffnen eine Zeitverzögerung von 2 sec.<br />
/50/ Der Bediener kann das gewünschte Flüssigkeitsniveau ins System eingeben,<br />
wenn <strong>der</strong> Tank leer ist.<br />
/60/ Das System akzeptiert folgende Kommandos:<br />
– Tank auf das gewünschte Niveau füllen (bei leerem Tank): Beim Füllen des<br />
Tanks wird das Einlaßventil geöffnet und die Flüssigkeit strömt in den Tank<br />
ein, bis die vorgegebene Füllhöhe erreicht ist.<br />
– Tank leeren (bei vollem Tank): Das Entleeren des Tanks wird mit entsprechenden<br />
Auslaßventilkommandos (Auf, Zu) gesteuert.<br />
/70/ Ein Geber meldet den aktuellen Flüssigkeitsstand des Tanks.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
RT-Modell <strong>der</strong> Tanksteuerung<br />
Kontextdiagramm: »Tankanlage«<br />
Einlaßventil<br />
Auslaßventil<br />
EV_Sollstatus<br />
AV_Sollstatus<br />
.0<br />
überwache<br />
Tankfüllstand<br />
Bediener-Kommando<br />
Soll-Niveau<br />
Ist-Niveau<br />
Bediener<br />
Geber<br />
➜<br />
Aufgabe<br />
Lösung
Flußdiagramm: »überwache Tankfüllstand«<br />
überwache Tankfüllstand<br />
EV_Sollstatus<br />
.1<br />
setze<br />
Soll-<br />
Niveau<br />
.7<br />
schließe<br />
Einlaßventil<br />
EV_Sollstatus<br />
Ist_Niveau<br />
Soll-Niveau<br />
.6<br />
öffne<br />
Einlaßventil<br />
.2<br />
prüfe_ob_<br />
Tank_voll<br />
Ist_Niveau<br />
Tank voll<br />
.5<br />
schließe<br />
Auslaßventil<br />
.3<br />
prüfe_ob_<br />
Tank_leer<br />
Tank leer<br />
AV_Sollstatus<br />
Bediener<br />
Kommando<br />
.4<br />
öffne<br />
Auslaßventil<br />
AV_Sollstatus<br />
➜<br />
Aufgabe<br />
Lösung
CSpec 0:<br />
Tank_leer<br />
Bediener_Kommando = »Sollwert_eingeben«<br />
Activate »setze SollNiveau«<br />
Tank_wird<br />
gelleert<br />
Tank_ist_leer Tank_ist_voll<br />
1<br />
Activate »schließe Auslaßventil«<br />
Bediener_Kommandos = »Tank_füllen«<br />
Activate »öffne Einlaßventil«;<br />
Activate »prüfe_ob_Tank_voll«<br />
4<br />
2<br />
Tank_wird<br />
gefüllt<br />
Bediener_Kommandos = »Tank_leeren«<br />
Activate »öffne Auslaßventil«;<br />
Activate »prüfe_ob_Tank_leer«<br />
3<br />
Tank_voll<br />
Activate »schließe Einlaßventil«<br />
➜<br />
Aufgabe<br />
Lösung
PSpec1 “setze Soll-Niveau“<br />
Speichere “vorgegebenes Niveau“ im Speicher “Soll-Niveau“<br />
END PSpec1;<br />
PSpec2 “prüfe_ob_Tank_voll“<br />
Issue<br />
LOOP<br />
IF Ist-Niveau >= Soll-Niveau THEN<br />
Generate Tank_voll;<br />
Exit;<br />
END IF;<br />
END LOOP;<br />
END PSpec2;<br />
PSpec3 “prüfe_ob_Tank_leer“<br />
Issue<br />
LOOP<br />
If Ist-Niveau = 0 THEN<br />
Generate Tank_leer;<br />
Exit;<br />
END IF;<br />
END LOOP;<br />
END PSpec3;<br />
➜<br />
Aufgabe<br />
Lösung
PSpec4 “öffne Auslaßventil“<br />
Issue<br />
Generate AV_Sollstatus = Auf;<br />
END PSpec4;<br />
PSpec5 “schließe Auslaßventil“<br />
Issue<br />
Generate AV_Sollstatus = Zu;<br />
END PSpec5;<br />
PSpec6 “öffne Einlaßventil“<br />
Issue<br />
Generate EV_Sollstatus = Auf;<br />
END PSpec6<br />
PSpec7 “schließe Einlaßventil“<br />
Issue<br />
Generate EV_Sollstatus = Zu;<br />
END PSpec7<br />
➜<br />
Aufgabe<br />
Lösung
Requirements Dictionary Tankanlage<br />
Auf = * Ventilzustand *<br />
AV_Sollstatus = [ Auf | Zu ] * Sollstatus des Auslaßventils *<br />
Bediener_Kommando = [ Soll-Niveau_eingeben | Tank_füllen | Tank_leeren ]<br />
EV_Sollstatus = [ Auf | Zu ] * Sollstatus des Einlaßventils *<br />
Ist-Niveau = * aktuelles Flüssigkeitsniveau im Tank *<br />
Soll-Niveau = * Flüssigkeitsniveau, das beim Füllen des Tanks<br />
erreicht werden soll *<br />
Soll-Niveau_eingeben = * Eingabe des Soll-Niveaus <strong>der</strong> Flüssigkeit *<br />
Tank_füllen = * Füllen des Tanks *<br />
Tank_leeren = * Leeren des Tanks *<br />
Tank_voll = [ “WAHR“ | “FALSCH“ ]<br />
* WAHR, wenn Tankfüllstand = Soll-Niveau *<br />
Tank_leer = [ “WAHR“ | “FALSCH“ ]<br />
* WAHR, wenn Tankfüllstand = Leer *<br />
Zu = * Ventilzustand *<br />
Aufgabe<br />
Lösung
LE 15 Aufgabe 3<br />
3 Lernziel: Für eine geeignete Problemstellung ein vollständiges SA/RT-Modell<br />
erstellen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Erweitern Sie das Modell <strong>der</strong> Tankanlage aus Aufgabe 2 so, daß zusätzlich folgende<br />
Anfor<strong>der</strong>ungen erfüllt werden:<br />
/55/ Bei <strong>der</strong> Eingabe des gewünschten Flüssigkeitsniveaus überprüft das<br />
System, ob das gewünschte Niveau den durch die Bauweise des Tanks<br />
vorgegebenen maximalen Flüssigkeitsstand überschreitet. In diesem Fall<br />
wird eine Fehlermeldung ausgegeben.<br />
/80/ Das System erkennt Störungen an den Ventilen (Ventil öffnet nicht, Ventil<br />
schließt nicht) und zeigt entsprechende Fehlermeldungen an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Kontextdiagramm: »Tankanlage«<br />
Einlaßventil<br />
Auslaßventil<br />
EV_Sollstatus<br />
EV_Iststatus<br />
AV_Sollstatus<br />
AV_Iststatus<br />
.0<br />
überwache<br />
Tankfüllstand<br />
Bediener-Kommando<br />
Soll-Niveau<br />
Fehlermeldung<br />
Ist-Niveau<br />
Bediener<br />
Geber<br />
➜<br />
Aufgabe<br />
Lösung
Aufgabe<br />
Lösung<br />
überwache Tankfüllstand<br />
.1<br />
setze<br />
Soll-<br />
Niveau<br />
.2<br />
prüfe_ob_<br />
Tank_voll<br />
.3<br />
prüfe_ob_<br />
Tank_leer<br />
.7<br />
schließe<br />
Einlaß-<br />
ventil<br />
.6<br />
öffne<br />
Einlaß-<br />
ventil<br />
.5<br />
schließe<br />
Auslaß-<br />
ventil<br />
.4<br />
öffne<br />
Auslaß-<br />
ventil<br />
Soll-Niveau<br />
Ist_Niveau<br />
Ist_Niveau<br />
EV_Sollstatus<br />
EV_Sollstatus<br />
AV_Sollstatus<br />
AV_Sollstatus<br />
Tank voll<br />
Tank leer<br />
Bediener<br />
Kommando<br />
.8<br />
überwache<br />
Einlaß-<br />
ventil<br />
EV_Sollstatus<br />
EV_Fehler<br />
EV_Iststatus<br />
Soll_Niveau_Fehler<br />
vorgegebenes_Niveau<br />
Max-Niveau<br />
.9<br />
überwache<br />
Auslaß-<br />
ventil AV_Fehler<br />
AV_Iststatus<br />
AV_Sollstatus<br />
Flußdiagramm 0:<br />
➜
PSpec 1 »setze Soll-Niveau«<br />
IF vorgegebenes Niveau < Max-Niveau THEN<br />
Speichere »vorgegebenes Niveau« im Speicher »Soll-Niveau«<br />
ELSE<br />
Fehlermeldung: »Soll_Niveau_Fehler«<br />
END IF;<br />
END PSpec 1;<br />
PSpec 8 »überwache Einlaßventil«<br />
LOOP;<br />
WAIT 5ms;<br />
IF EV-IststatusEV-Sollstatus THEN<br />
Fehlermeldung: EV_Fehler;<br />
ENDIF<br />
END LOOP;<br />
END PSpec 8;<br />
PSpec 9 »überwache Auslaßventil«<br />
LOOP<br />
WAIT 5 ms;<br />
IF AV-IststatusAV-Sollstatus THEN<br />
Fehlermeldung: AV_Fehler;<br />
END LOOP;<br />
END PSpec 9;<br />
➜<br />
Aufgabe<br />
Lösung
erweitertes Requirements Dictionary Tankanlage<br />
AV_Fehler = * Fehlermeldung: Auslaßventil defekt!*.<br />
AV_Iststatus = [Auf|Zu] * Iststatus des Auslaßventils *.<br />
EV_Fehler = * Fehlermeldung: Einlaßventil defekt! *.<br />
EV_Iststatus = [Auf|Zu] * Iststatus des Einlaßventils *.<br />
Fehlermeldung = [Soll_niveau_Fehler|AV_Fehler|EV_Fehler]<br />
Max-Niveau = * durch die Bauart bedingtes, maximales<br />
Flüssigkeitsniveau im Tank *.<br />
Soll_Niveau_Fehler = * Fehlermeldung: ”Sollniveau zu hoch; neuen Wert<br />
eingeben” *:<br />
Aufgabe<br />
Lösung
LE 15 Aufgabe 4<br />
4 Lernziel: Für eine geeignete Problemstellung ein vollständiges SA/RT-Modell<br />
erstellen können.<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Modellieren Sie eine Stoppuhr mit <strong>der</strong> RT Methode, die folgende Anfor<strong>der</strong>ungen<br />
erfüllt:<br />
/10/ Die Stoppuhr hat zwei Druckknöpfe (die nicht gleichzeitig gedrückt werden<br />
können) und eine L<strong>CD</strong>-Anzeige.<br />
/20/ Die Stoppuhr kann ein- und ausgeschaltet werden.<br />
/30/ Die Stoppuhr kann gestartet und gestoppt werden. Nach dem Stopp wird<br />
die vergangene Zeit zwischen Start und Stopp angezeigt<br />
/40/ Nach dem Start kann eine Zwischenzeit angezeigt werden. Die Uhr läuft im<br />
Hintergrund weiter. Nun kann entwe<strong>der</strong> die Anzeige von <strong>der</strong> Zwischenzeit auf<br />
die Anzeige <strong>der</strong> aktuell verbrauchten Gesamtzeit gewechselt werden o<strong>der</strong><br />
die im Hintergrund laufende Uhr kann angehalten werden, ohne daß sich die<br />
Anzeige än<strong>der</strong>t. Im letzten Fall wird nach einem weiteren Knopfdruck die<br />
vergangene Gesamtzeit angezeigt.<br />
/50/ Die zwischen Start und Stopp vergangene Zeit kann bei stehen<strong>der</strong> Uhr und<br />
Anzeige <strong>der</strong> vergangenen Gesamtzeit auf Null zurückgesetzt werden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
RT-Modell <strong>der</strong> Stoppuhr<br />
Kontextdiagramm:»Stoppuhr«<br />
Druckknopf_1<br />
Druckknopf_2<br />
Knopf 1<br />
Knopf 2<br />
.0<br />
verwalte<br />
Stoppuhr<br />
Stoppzeit<br />
Uhren-Display<br />
➜<br />
Aufgabe<br />
Lösung
Flußdiagramm 0:<br />
»verwalte Stoppuhr«<br />
Knopf 2<br />
Knopf 1<br />
.1<br />
Stoppuhr<br />
zurücksetzen<br />
.5<br />
Zwischenzeit<br />
nehmen<br />
.3<br />
Gesamtzeit<br />
inkrementieren<br />
Gesamtzeit<br />
Stoppzeit<br />
2.<br />
Gesamtzeit<br />
anzeigen<br />
.4<br />
Zwischenzeit<br />
anzeigen<br />
Zwischenzeit Stoppzeit<br />
➜<br />
Aufgabe<br />
Lösung
CSpec 0<br />
laufende Gesamtzeit<br />
anzeigend<br />
Knopf 2<br />
Activate "Gesamtzeit<br />
inkrementieren"<br />
Activate "Zwischenzeit<br />
anzeigen"<br />
Zwischenzeit anzeigend<br />
Knopf 2<br />
Knopf 1<br />
Activate "Gesamtzeit inkrementieren"<br />
Activate "Gesamtzeit anzeigen"<br />
Null anzeigend<br />
Knopf 1<br />
Activate "Gesamtzeit anzeigen"<br />
Knopf 1<br />
Activate "Stoppuhr zurücksetzen"<br />
Activate "Gesamtzeit anzeigen"<br />
Knopf 2<br />
Activate "Gesamtzeit inkrementieren"<br />
Activate "Zwischenzeit nehmen"<br />
Activate "Zwischenzeit anzeigen"<br />
Knopf 1<br />
Activate "Zwischenzeit<br />
anzeigen"<br />
Knopf 1<br />
Activate "Stoppuhr zurücksetzen"<br />
Activate "Gesamtzeit anzeigen"<br />
gestoppte Gesamtzeit<br />
anzeigend<br />
Knopf 1<br />
Activate "Gesamtzeit anzeigen"<br />
Gesamtzeit gestoppt<br />
Zwischenzeit anzeigend<br />
➜<br />
Aufgabe<br />
Lösung
PSpec 1: »Stoppuhr zurücksetzen«<br />
Issue Gesamtzeit = 00:00:00;<br />
END Pspec 1;<br />
PSpec 2: »Gesamtzeit anzeigen«<br />
Lese die Gesamtzeit aus dem Speicher »Gesamtzeiten«, formatiere sie für die<br />
Anzeige im L<strong>CD</strong>-Display und gebe sie als »Stoppzeit« aus.<br />
END PSpec 2;<br />
PSpec 3 »Gesamtzeit inkrementieren«<br />
Lese alle 10msec die seit dem Start <strong>der</strong> Zeitmessung vergangene Gesamtzeit<br />
aus demSpeicher »Gesamtzeit«, inkrementiere sie und trage den aktualisierten<br />
Wert in den Speicher »Gesamtzeit« ein.<br />
END PSpec 3;<br />
PSpec 4 »Zwischenzeit anzeigen«<br />
Lese die Zwischenzeit aus dem Speicher »Zwischenzeit«, formatiere sie für<br />
die Ausgabe im L<strong>CD</strong>-Display und gebe sie als »Stoppzeit« aus.<br />
END PSpec 4;<br />
PSpec 5 »Zwischenzeit nehmen«<br />
Lese die Gesamtzeit aus dem Speicher »Gesamtzeit« und trage sie im Speicher»Zwischenzeit«<br />
ein.<br />
END PSpec 5;<br />
➜<br />
Aufgabe<br />
Lösung
RD »Stoppuhr« (Kontrollflüsse sind kursiv dargestellt):<br />
Gesamtzeit = Stoppzeit<br />
Knopf 1 = [gedrückt|nicht gedrückt]<br />
Knopf 2 = [gedrückt|nicht gedrückt]<br />
Minuten = 0 .. 59<br />
Sekunden = 0 .. 59<br />
Sekunden/100 = 0 .. 99<br />
Stoppzeit = Stunden + Minuten + Sekunden + Sekunden/100<br />
Stunden = 0 .. 23<br />
Zwischenzeit = Stoppzeit<br />
Aufgabe<br />
Lösung
LE 15 Aufgabe 5<br />
5 Lernziel: Für eine geeignete Problemstellung ein vollständiges SA/RT-Modell<br />
erstellen können.<br />
Zeit: 90 Minuten<br />
Aufgabe:<br />
Modellieren Sie die einen Verkaufsautomaten mit <strong>der</strong> RT Methode.<br />
Die wichtigsten Anfor<strong>der</strong>ungen sind die Prüfung <strong>der</strong> eingeworfenen Münzen und<br />
<strong>der</strong> Schutz vor Vandalismus. Im einzelnen soll <strong>der</strong> Verkaufsautomat forlgende<br />
Anfor<strong>der</strong>ungen erfüllen:<br />
/10/ Kunden können Objekte einwerfen, mit denen sie die Ware bezahlen<br />
möchten.<br />
/20/ Der Verkaufsautomat prüft jedes Objekt daraufhin, ob es sich um zulässige<br />
Münzen handelt. Dazu ist die Größe, das Gewicht, und die Dicke <strong>der</strong><br />
Objekte zu prüfen.<br />
/30/ Der Verkaufsautomat akzeptiert 10 und 50 Pfennigstücke, sowie 1, 2 und<br />
5 Markstücke. Alle an<strong>der</strong>en Münzen werden als Falschgeld behandelt und<br />
zurückgegeben.<br />
/40/ Nur wenn eine Münze eingeworfen wurde und als gültig identifiziert worden<br />
ist, erfolgt die Berechnung des eingeworfenen Geldbetrages und die<br />
Produktauswahl wird ermöglicht (Schutz vor Trickdieben).<br />
/50/ Der Kunde kann ein Produkt auswählen.<br />
/60/ Der Automat prüft, ob das gewünschte Produkt verfügbar ist. Falls das<br />
Produkt ausverkauft ist, werden die eingeworfenen Münzen zurückgegeben<br />
und <strong>der</strong> Kunde bekommt eine entsprechende Nachricht »Gewünschtes<br />
Produkt lei<strong>der</strong> vergriffen!«. ➜<br />
Aufgabe<br />
Lösung
70/ Die Anzahl <strong>der</strong> angebotenen Produkte schwankt mit <strong>der</strong> Zeit. Die Bezeichnungen<br />
und Preise <strong>der</strong> Produkte sollen leicht geän<strong>der</strong>t werden können.<br />
/80/ Der Automat gibt den eingeworfenen Geldbetrag zurück, wenn <strong>der</strong> Kunde<br />
den Kauf storniert (kein Produkt auswählt).<br />
/90/ Der Automat gibt das gewünschte Produkt frei, sofern es verfügbar ist und<br />
<strong>der</strong> eingeworfene Geldbetrag ausreicht.<br />
/100/ Falls <strong>der</strong> eingeworfene Geldbetrag den Kaufpreis übersteigt, wird das<br />
Wechselgeld ausgegeben.<br />
/110/ Nach <strong>der</strong> Ausgabe eines Produktes wird die Produktauswahl solange<br />
gesperrt, bis ein gültige Münze identifiziert worden ist.<br />
/120/ Die eingeworfenen Münzen werden als Wechselgeld verwendet.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
RT-Modell des Verkaufsautomaten<br />
Kontextdiagramm: »Verkaufsautomat«<br />
Falschgeld<br />
Objekt<br />
0<br />
verkaufe Produkt<br />
Kunde Kundenauswahl<br />
Kunde<br />
Produkte<br />
Münzrückgabe<br />
Produkt verfügbar<br />
Rückgabemünzen<br />
➜<br />
Aufgabe<br />
Lösung
Flußdiagramm 0: »verkaufe Produkte«<br />
Objekt<br />
Falschgeld<br />
Preistabelle<br />
Münzrückgabe<br />
Münze identifiziert<br />
.1<br />
nehme<br />
Geld an<br />
.4<br />
ermittle<br />
Produktpreis<br />
Münzarchiv<br />
Münzen Münzen<br />
Geldbetrag<br />
Geldbetrag<br />
.3<br />
ausreichende Zahlung Wechselgeldbetrag<br />
prüfe<br />
Produkt verfügbar<br />
Geldbetrag<br />
Preis<br />
zulässige Auswahl<br />
Kundenauswahl<br />
ausreichende Zahlung<br />
Produkt verfügbar<br />
Produkt verfügbar<br />
.5<br />
prüfe<br />
Kundenauswahl<br />
Rückgabemünzen<br />
Münzrückgabe<br />
zulässige Auswahl<br />
.2<br />
gib<br />
Münzen<br />
zurück<br />
.6<br />
liefere<br />
Produkt<br />
aus<br />
Produktmagazin<br />
Produkt<br />
ausgeliefert<br />
Produkt<br />
➜<br />
Aufgabe<br />
Lösung
CSpec 0:<br />
Produkt_verfügbar =»Nein«<br />
Activate »gib Münzen zurück«<br />
Produkt_ausgeliefert<br />
wartend<br />
auf Münzen<br />
wartend auf<br />
Produktauswahl<br />
Produkt ausliefern<br />
Münze identifiziert<br />
Activate »prüfe Kundenauswahl«<br />
Münzrückgabe<br />
Activate »gib Münzen zurück«<br />
ausreichende Zahlung<br />
Activate »liefere Produkt aus«<br />
➜<br />
Aufgabe<br />
Lösung
Flußdiagramm 1: »nehme Geld an«<br />
Objekt<br />
Münze identifiziert<br />
Falschgeld Münze<br />
ausreichende<br />
Zahlung<br />
Falschgeld<br />
.1<br />
überprüfe<br />
Münzen<br />
.4<br />
sammle<br />
Münzen<br />
Münzwert<br />
Münzparameter<br />
.3<br />
berechne<br />
eingeworfenen<br />
Geldbetrag<br />
gesammelte<br />
Münzen<br />
CSpec1: Prozeßaktivierungstabelle<br />
Kontrolleingaben<br />
ausreichende Zahlung<br />
ja<br />
nein<br />
.2<br />
lösche<br />
eingeworfenen<br />
Geldbetrag<br />
Geldbetrag<br />
.5<br />
archiviere<br />
Münzen<br />
aktivierte Prozesse<br />
Münzen<br />
lösche eingeworfenen Geldbetrag<br />
1<br />
0<br />
➜<br />
Aufgabe<br />
Lösung
PSpec 1.1 »überprüfe Münze«<br />
überprüfe »Objekt«, um zu sehen, ob es mit den »Münzparametern« übereinstimmt.<br />
IF Übereinstimmung THEN<br />
akzeptiere das Objekt als Münze<br />
ELSE<br />
gebe das Objekt als Falschgeld zurück<br />
END IF<br />
END PSpec 1.1;<br />
PSpec 1.2 »lösche eingeworfenen Geldbetrag«<br />
Issue Geldbetrag = 0;<br />
END PSpec 1.2;<br />
PSpec 1.3 »berechne eingeworfenen Geldbetrag«<br />
Geldbetrag:= Geldbetrag + Münzwert<br />
END PSpec 1.3;<br />
PSpec 1.4 »sammle Münzen«<br />
IF angesammelte Münzen > Münzkapazität THEN<br />
gebe Münze als Falschgeld zurück<br />
ELSE<br />
angesammelte Münzen:=angesammelte Münzen+Münze<br />
END IF<br />
END PSpec 1.4;<br />
PSpec 1.5 »archiviere Münzen«<br />
übertrage die angesammelten Münzen in das Münzarchiv<br />
END PSpec 1.5;<br />
➜<br />
Aufgabe<br />
Lösung
Flußdiagramm 2: »gib Münzen zurück«<br />
Münzen<br />
Geldbetrag<br />
Wechselgeldbetrag<br />
Münzen<br />
.1<br />
hole<br />
Wechselmünze<br />
Wechselmünzen<br />
.2<br />
hole<br />
eingeworfene<br />
Münze<br />
CSpec2: Prozeßaktivierungstabelle<br />
eingeworfene Münzen<br />
Münzrückgabe<br />
Produkt verfügbar<br />
Kontrolleingaben aktiviere Prozesse<br />
Münzrückgabe Produkt_verfügbar<br />
hole Wechselmünze<br />
hole eingeworfene<br />
Münze<br />
Ja Nein 0 1<br />
- Ja 1 0<br />
➜<br />
Aufgabe<br />
Lösung
PSpec 2.1 »hole Wechselmünze«<br />
Nehme Wechselmünzen aus dem Münzarchiv, so daß gilt:<br />
Wechselmünzen = Wechselgeldbetrag<br />
END PSpec 2.1;<br />
PSpec 2.2 »hole eingeworfene Münzen aus dem Münzarchiv, so daß<br />
gilt: eingeworfene Münzen = Geldbetrag<br />
END PSpec 2.2;<br />
PSpec 3 »prüfe Geldbetrag«<br />
IF Geldbetrag > Preis THEN<br />
Issue »ausreichende_Zahlung« = JA;<br />
Issue »Wechselbetrag« = Geldbetrag - Preis;<br />
ELSE<br />
Issue »ausreichende_Zahlung« = NEIN;<br />
END IF<br />
END PSpec 3;<br />
PSpec 4 »ermittele Produktpreis«<br />
Lese aus <strong>der</strong> Preistabelle »Preis« für die »zulässige Auswahl«<br />
END PSpec 4;<br />
PSpec 5 »Prüfe Kundenauswahl«<br />
IF »Kundenauswahl« im »Produktmagazin« THEN<br />
Issue »Produkt verfügbar« = Ja;<br />
Issue »zulässige Auswahl« = »Kundenauswahl«;<br />
ELSE<br />
Issue »Produkt verfügbar« = Nein;<br />
END PSpec 5;<br />
➜<br />
Aufgabe<br />
Lösung
PSpec 6 »liefere Produkt aus«<br />
Nehme das durch die »Zulässige Auswahl« bestimmte »Produkt« aus dem<br />
»Produktmagazin« und liefere das »Produkt« aus.<br />
END PSpec 6;<br />
Requirements Dictionary<br />
10_Pfg = */ Münze <strong>der</strong> deutschen Bundesbank mit standardisiertem<br />
Gewicht, Größe und Zusammensetzung /* Einheit: 1/10 DM;<br />
50_Pfg = */ Münze <strong>der</strong> deutschen Bundesbank mit standardisiertem<br />
Gewicht, Größe und Zusammensetzung /* Einheit 5/10 DM;<br />
1_DM = */ Münze <strong>der</strong> deutschen Bundesbank mit standardisiertem<br />
Gewicht, Größe und Zusammensetzung /* Einheit: 1 DM;<br />
2_DM = */ Münze <strong>der</strong> deutschen Bundesbank mit standardisiertem<br />
Gewicht, Größe und Zusammensetzung /* Einheit: 2 DM;<br />
5_DM = */ Münze <strong>der</strong> deutschen Bundesbank mit standardisiertem<br />
Gewicht, Größe und Zusammensetzung /* Einheit: 5 DM;<br />
ausreichende_Zahlung = */ Kontrollsignal /*;<br />
eingeworfene_Münzen = Münzen;<br />
Falschgeld = */ alle Objekte, die keine Münzen sind/*;<br />
Geldbetrag = 0.00 .. 20.00; Einheit: DM;<br />
Kundenauswahl = [Fanta | Cola | Snickers | Hanuta ]<br />
Münzarchiv = { Münzen };<br />
Münzen = 0 { [ 10_Pfg | 50_Pfg | 1_DM | 2_DM | 5_DM ] } 8<br />
Münze_identifiziert = */ Kontrollsignal /*;<br />
Münzrückgabe = */ Kontrollsignal /*;<br />
➜<br />
Aufgabe<br />
Lösung
Objekt = [Münze | Falschgeld ]<br />
Preis = Geldbetrag;<br />
Preistabelle = { Produkt + Preis };<br />
Produkt = Kundenauswahl;<br />
Produktmagazin = { Produkt };<br />
Produkt_ausgeliefert = */ Kontrollsignal /*;<br />
Produkt_verfügbar = [ Ja | Nein ];<br />
Rückgabemünzen = [ eingeworfene_Münzen | Wechselmünzen ];<br />
Wechselgeldbetrag = Geldbetrag;<br />
Wechselmünzen = Münzen;<br />
zulässige_Auswahl = Kundenauswahl;<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 1<br />
1 Lernziel: Die Interaktions-Mechanismen Zwischenablage, DDE und OLE an<br />
Beispielen erläutern können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
In den folgenden Fallbeispielen müssen Daten zwischen verschiedenen Anwendungen<br />
ausgetauscht werden. Begründen Sie kurz, welcher Mechanismus jeweils<br />
angebracht ist.<br />
a Sie wollen eine Bitmap-Grafik in einen Text einfügen. Die Grafik muß nicht mehr<br />
verän<strong>der</strong>t werden.<br />
b Sie müssen in einem längeren Text die ersten drei Seiten an das Ende des<br />
Textes verschieben.<br />
c Für die Erstellung des Quartalsberichtes Ihres Arbeitgebers erstellen Sie mit<br />
Hilfe eines Kalkulationsprogramms eine Tabelle. Diese wird in einen Text eingebunden,<br />
<strong>der</strong> für jeden Quartalsbericht im wesentlichen gleich bleibt.<br />
d Ein Benutzer möchte Grafiken aus seinem Zeichenprogramm in ein Textprogramm<br />
übernehmen. Die Zeichnungen sind noch nicht komplett fertiggestellt und<br />
sollen parallel zur Entstehung des Textes überarbeitet werden. Textprogramm und<br />
Zeichenprogramm sind von verschiedenen Herstellern und unterscheiden sich in<br />
ihrer Bedienung wesentlich.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Mechanismus Zwischenablage, da Bitmaps ohne Informationsverlust übertragen<br />
werden können (standardisiertes Format) und die Grafik nicht mehr geän<strong>der</strong>t<br />
werden muß.<br />
b Zwischenablage, da <strong>der</strong> Text innerhalb desselben Programms verschoben<br />
werden muß.<br />
c OLE. Durch eine Verknüpfung (im Gegensatz zur Einbettung) wird erreicht, daß<br />
die für ein neues Quartal geän<strong>der</strong>te Tabelle automatisch in dem Text aktualisiert<br />
wird. Außerdem kann die Tabelle auch innerhalb des Textverarbeitungsprogramms<br />
bearbeitet werden.<br />
d DDE. Bei paralleler Bearbeitung von verschiedenen Personen werden besser<br />
die spezialisierten Programme eingesetzt. Über Verknüpfungen erfolgt dann eine<br />
automatisierte Aktualisierung.<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 2<br />
2 Lernziel: Den Unterschied zwischen objektorientierter und funktionsorientierter<br />
Bedienung erläutern können.<br />
Die direkte Manipulation mit ihren Eigenschaften und generischen Funktionen<br />
beschreiben können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Um in einem Grafikprogramm ein Rechteck zu vergrößern, geht man wie folgt vor:<br />
Zunächst wird das zu vergrößernde Rechteck markiert. Dann wählt man in einem<br />
Menü die gewünschte Funktion und gibt den Vergrößerungsfaktor an.<br />
Handelt es sich bei dieser Art von Bedienung um objektorientierte o<strong>der</strong> funktionsorientierte<br />
Bedienung o<strong>der</strong> um direkte Manipulation? Wie sähe <strong>der</strong> Vorgang »Vergrößern<br />
eines Rechtecks« unter Verwendung <strong>der</strong> an<strong>der</strong>en Bedienungsphilosophien<br />
aus?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Es handelt sich um objektorientierte Bedienung. Zuerst wird das zu bearbeitende<br />
Objekt selektiert und dann die auszuführende Funktion.<br />
Bei Verwendung von direkter Manipulation:<br />
Man zieht das Rechteck mit Hilfe <strong>der</strong> Maus an einer Ecke auf die gewünschte<br />
Größe.<br />
Bei Verwendung von funktionsorientierter Bedienung:<br />
Man wählt die Funktion »vergrößern«, markiert das gewünschte Rechteck und<br />
gibt den Vergrößerungsfaktor an.<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 3<br />
3 Lernziel: Die direkte Manipulation mit ihren Eigenschaften und generischen<br />
Funktionen beschreiben können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Beschreiben Sie den Ablauf, wenn eine Datei mit Hilfe <strong>der</strong> direkten Manipulation<br />
gedruckt werden soll. Welche an<strong>der</strong>en mit <strong>der</strong> direkten Manipulation realisierbaren<br />
Funktionen kennen Sie?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Man zieht das Piktogramm <strong>der</strong> zu druckenden Datei mit <strong>der</strong> Maus auf das gewünschte<br />
Druckersymbol.<br />
An<strong>der</strong>e Möglichkeiten:<br />
Löschen: ziehen in Papierkorb<br />
Faxen: ziehen auf Faxgerät<br />
und die in Abb. 2.21-12 aufgeführten Möglichkeiten.<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 4<br />
4 Lernziel: Die Gestaltungs- und Bewertungskriterien »Kompetenzför<strong>der</strong>lichkeit«,<br />
»Handlungsflexibilität« und »Aufgabenangemessenheit« definieren, ihre Merkmale<br />
aufzählen und erläutern können.<br />
Zeit:15 Minuten<br />
Aufgabe:<br />
In einem Schreibbüro müssen häufig kleinere Vektorgrafiken in Texte integriert<br />
werden. Für diesen Zweck soll eine neue Software-Umgebung beschafft werden.<br />
Dabei stehen folgende Software-Programme zur Wahl:<br />
– ein Textsystem, das es erlaubt, kleine Vektorgrafiken direkt im Text zu erstellen.<br />
Zusätzlich können Bitmap-Grafiken über den DDE-Mechanismus eingefügt werden.<br />
– Ein System aus reinem Textverarbeitungsprogramm und universellem Grafikprogramm<br />
vom selben Hersteller, die über OLE gekoppelt werden können.<br />
– Ein Textsystem, das mit dem im Unternehmen vorhandenen Grafikprogramm<br />
über eine Dateischnittstelle kommunizieren kann.<br />
Welches System würden Sie unter Beachtung <strong>der</strong> Aspekte<br />
Kompetenzför<strong>der</strong>lichkeit, Handlungsflexibilität und Aufgabenangemessenheit<br />
bevorzugen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Am günstigsten erscheint Variante eins. Bei diesem Softwaresystem wird das<br />
Anfor<strong>der</strong>ungsprofil am besten unterstützt. Die gesamte Bearbeitung des Textes<br />
inklusive <strong>der</strong> Grafikerstellung geschieht in einem Programm. Für spätere Erweiterungen<br />
ist die DDE-Schnittstelle voraussichtlich ausreichend.<br />
Die zweite Variante erscheint zu umfangreich, da die Komplexität eines umfangreichen<br />
Grafikprogramms für die Aufgabenstellung nicht erfor<strong>der</strong>lich ist. Die dritte<br />
Variante ist hinsichtlich <strong>der</strong> Kopplung mit dem vorhandenen Grafikprogramm<br />
zu inflexibel und aufwendig, da <strong>der</strong> Austausch immer über Dateien abläuft.<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 5<br />
5 Lernziel: Mindestens eines <strong>der</strong> bekannten GUI-Systeme bedienen können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, wie bei einem Ihnen bekannten GUI-System folgende Vorgänge<br />
ablaufen:<br />
a Kopieren einer Datei von einem Ordner in einen an<strong>der</strong>en Ordner<br />
b Ausdrucken eines Dokuments<br />
c Anlegen eines neuen Ordners<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Für die Lösung dieser Aufgabe wurde das GUI-System Windows 95 betrachtet:<br />
a Lösung durch direkte Manipulation:<br />
Die Vorgehensweise hängt davon ab, ob sich <strong>der</strong> Zielordner auf <strong>der</strong>selben<br />
Festplattenpartition (Laufwerksbuchstabe) befindet, wie <strong>der</strong> Quellordner.<br />
Ist <strong>der</strong> Zielor<strong>der</strong> auf einem an<strong>der</strong>en Laufwerk, kann <strong>der</strong> zu kopierende Ordner mit<br />
<strong>der</strong> linken Maustaste selektiert und auf das Ziellaufwerk o<strong>der</strong> den Zielordner gezogen<br />
werden.<br />
Befinden sich Quell- und Zielordner auf demselben Laufwerk, muß <strong>der</strong> zu kopierende<br />
Ordner mit <strong>der</strong> rechten Maustaste selektiert und an den Zielort geschoben<br />
werden. Hier kann die Maustaste losgelassen werden. Es erscheint dann ein<br />
Kontextmenu, aus dem die gewünschte Option (hierher kopieren) gewählt werden<br />
muß.<br />
Lösung durch Verwendung <strong>der</strong> Zwischenablage:<br />
Den zu kopierenden Ordner mit <strong>der</strong> rechten Maustaste anklicken. Es erscheint<br />
ein Kontextmenu, aus dem die Option »kopieren« gewählt werden muß. Nun das<br />
Piktogramm des Zielorts mit <strong>der</strong> rechten Maustaste anklicken und dort die Option<br />
»einfügen« wählen.<br />
b Objektorientierte Bedienung:<br />
Das Piktogramm des zu druckenden Objekts auf das Druckersymbol ziehen.<br />
Daraufhin wird die Anwendung gestartet, das Dokument geladen und ausgedruckt.<br />
➜<br />
Aufgabe<br />
Lösung
Funktionsorientierte Bedienung:<br />
Die zu dem Dokument gehörende Anwendung starten, das Dokument laden und<br />
in <strong>der</strong> Anwendung den Druck-Befehl absetzen.<br />
c Im Explorer mit <strong>der</strong> rechten Maustaste an die Stelle klicken, wo <strong>der</strong> neue Ordner<br />
erscheinen soll. Aus dem erscheinenden Kontext-Menu den Punkt »Neu« wählen.<br />
Es erscheint ein Untermenu, aus dem dann <strong>der</strong> Punkt »Ordner« gewählt werden<br />
muß. Es erscheint ein neuer Ordner, <strong>der</strong> den Namen »Neuer Ordner« trägt. Dieser<br />
Name kann durch Eintippen eines an<strong>der</strong>en Textes überschrieben werden.<br />
Aufgabe<br />
Lösung
LE 16 Aufgabe 6<br />
6 Lernziel: Eine problemgerechte OLE-Verknüpfung zwischen mehreren Anwendungen<br />
vornehmen können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, auf welche Weise zwischen einem Ihnen bekannten Textverarbeitungssystem<br />
und einem Tabellenkalkulationsprogramm eine OLE-Verknüpfung<br />
hergestellt werden kann. Das Tabellenkalkulationsprogramm soll dabei als Server<br />
agieren.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
OLE-Verknüpfung zwischen Word für Windows 95 und Excel für Windows 95:<br />
Da Word als OLE-Client dienen soll, muß zunächst ein Textdokument mit Word<br />
erstellt werden. In dieses Dokument kann eine bestehende o<strong>der</strong> neu zu erstellende<br />
Excel-Tabelle eingebunden werden:<br />
Wählen Sie dazu aus dem Menu »Einfügen« den Unterpunkt »Objekt«. An dem<br />
nun erscheinenden Notizbuch muß zunächst <strong>der</strong> gewünschte Reiter (entwe<strong>der</strong><br />
»Neu erstellen« o<strong>der</strong> »Aus Datei erstellen«) selektiert werden. Soll ein neues<br />
OLE-Objekt erstellt werden, ist <strong>der</strong> Typ (»Excel-Tabelle«) aus einer Liste auszuwählen.<br />
Im an<strong>der</strong>en Fall muß <strong>der</strong> Dateiname des einzubindenden Objekts angegeben<br />
werden.<br />
In beiden Fällen erscheint das eingebettete Objekt anschließend im Text. Wird es<br />
selektiert, kann die gewünschte Darstellungsgröße über den Objektrahmen eingestellt<br />
werden.<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 1<br />
1 Lernziel: Fenster, ihre Elemente, ihren Aufbau, ihre Terminologie und ihre<br />
Funktionalität in den besprochenen GUI-Systemen angeben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Geben Sie Beispiele in Ihnen bekannten Anwendungen für modale und nichtmodale<br />
Dialogfenster in verschiedenen GUI-Systemen an. Aus welchen Elementen<br />
setzen sich die einzelnen Fenster zusammen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Windows 95:<br />
Suchen/Ersetzen-Dialog in Word für Windows 95 (nicht-modaler Dialog):<br />
Lesefehler auf Diskette (system-modaler Dialog):<br />
➜<br />
Aufgabe<br />
Lösung
Presentation Manager:<br />
Speichern unter (modaler Dialog):<br />
➜<br />
Aufgabe<br />
Lösung
Motif:<br />
Open Location bei Netscape (modaler Dialog):<br />
Window History bei Netscape (nicht-modaler Dialog):<br />
➜<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 2<br />
2 Lernziel: Möglichkeiten zur Beschleunigung <strong>der</strong> Menüauswahl aufzählen können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, auf welche Weise Menüpunkte bei Verwendung <strong>der</strong> GUI-Systeme<br />
Windows, Presentation Manager bzw. Motif ausgewählt werden können.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Windows 95<br />
Ein Menü kann auf drei Arten heruntergeklappt werden<br />
1 Anklicken des gewünschten Menütitels mit <strong>der</strong> linken Monotaste<br />
2 Wenn ein Buchstabe im Menütitel unterstrichen dargestellt ist, kann das Menü<br />
durch gleichzeitiges Drücken <strong>der</strong> Alt-Taste und des entsprechenden Buchstabens<br />
geöffnet werden. (optional)<br />
3 Wird nur die Alt-Taste, wird das Systemmenü grau markiert dargestellt. Diese<br />
Markierung kann mit den Cursor-Tasten <strong>zum</strong> gewünschten Menütitel bewegt<br />
werden. Das Menü kann dann durch Drücken <strong>der</strong> Enter-Taste geöffnet werden.<br />
Die Menüoption kann dann ebenfalls auf drei Arten ausgewählt werden:<br />
1 Anklicken <strong>der</strong> Menüoption mit <strong>der</strong> linken Maustaste.<br />
2 Wenn ein Buchstabe in <strong>der</strong> gewünschten Menüoption unterstrichen dargestellt<br />
ist, dann kann das entsprechende Zeichen gedrückt werden. (optional)<br />
3 Die Menüoption mit den Cursor-Tasten anwählen und Enter drücken.<br />
Alternativ können für einzelne Menüoptionen Tastaturkürzel definiert werden,<br />
z.B. eine Funktionstaste. Beim Betätigen <strong>der</strong> Funktionstaste wird die zugehörige<br />
Menüoption sofort aktiviert.<br />
Presentation Manager:<br />
Wie Windows 95<br />
Motif:<br />
Zum Herunterklappen von Menüs entfällt die Möglichkeit 3, ansonsten wie<br />
Windows.95<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 3<br />
3 Lernziel: Für eine Anwendung geeignete Fenstertypen, Dialogmodi, Menüund<br />
Kommandoarten auswählen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Es soll die Benutzungsoberfläche für ein Textverarbeitungssystem erstellt werden.<br />
a Aus welchen Elementen setzen Sie die Unterfenster, in denen jeweils ein Text<br />
erfaßt wird, sinnvollerweise zusammen? Welche konkrete Aufgabe haben die einzelnen<br />
Elemente?<br />
b Welchen Dialog bzw. Dialogablauf wählen Sie <strong>zum</strong> Speichern eines neu erstellten<br />
Textes?<br />
c Überlegen Sie sich eine Situation, in <strong>der</strong> <strong>der</strong> Einsatz eines Mitteilungsfensters<br />
sinnvoll wäre.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a Das Unterfenster setzt sich aus folgenden Elementen zusammen:<br />
Titelbalken: Name des bearbeiteten Textes anzeigen<br />
Knöpfe für Fenstergrößen: Symbolgröße, maximale Größe, Schließen<br />
Rollbalken: Navigieren in längeren Texten<br />
Fensterteiler: Verschiedene Ansichten desselben Textes<br />
Menübalken, Meldungsbalken bleiben im Hauptfenster]<br />
b Das Speichern eines neu erstellten Textes sollten über einen modalen Dialog<br />
ablaufen, <strong>der</strong> über die Menüoption »speichern« aufgerufen wird, da <strong>der</strong> Speichervorgang<br />
nicht unterbrochen werden sollte.<br />
c Ein Mittleiungsfenster ist z.B. sinnvoll, wenn <strong>der</strong> Benutzer versucht einen Text zu<br />
öffnen, <strong>der</strong> nicht existiert o<strong>der</strong> auf den er keine Zugriffsberechtigung hat. Das ist<br />
ein schlimmer Fehler, den <strong>der</strong> Benutzer unbedingt quittieren sollte.<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 4<br />
4 Lernziel: Die beschriebenen Dialogmodi aufzählen und ihre jeweiligen Beschränkungen<br />
erklären können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
a Was unterscheidet einen modalen Dialog grundsätzlich von einem nicht-modalen<br />
Dialog?<br />
b Nennen Sie die verschiedenen Arten von modalen Dialogen. Geben Sie jeweils<br />
ein Beispiel für eine sinnvolle Anwendung <strong>der</strong> jeweiligen Variante.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a Modale Dialoge blockieren die Anwendung o<strong>der</strong> einen Teil davon solange, bis<br />
<strong>der</strong> entsprechendes Dialog geschlossen wird.<br />
b Es gibt folgende Arten modaler Dialoge:<br />
n Systemmodaler Dialog, blockiert das gesamte System. Sinnvoll bei schweren<br />
Fehlern, z.B. Unterbrechung <strong>der</strong> Netzwerkverbindung, Fehler auf dem Massenspeicher.<br />
n Anwendungsmodaler Dialog, blockiert die gesamte Anwendung. Sinnvoll bei<br />
schwerwiegenden Anwendungsfehlern, z.B. wenn <strong>der</strong> Datenbankserver einer<br />
Anwendung nicht mehr verfügbar ist.<br />
n Anwendungssemimodaler Dialog blockiert einen Teil <strong>der</strong> Anwendung. Z.B.<br />
Dialogfenster <strong>zum</strong> Speichern eines Textes in einem Textverarbeitungsprogramm.<br />
n Hierarchiemodaler Dialog: Vorgängerdialoge sind blockiert, sinnvoll z.B. wenn<br />
man aus den Dialogfenster »Drucken« einen an<strong>der</strong>en Dialog »Drucker auswählen«<br />
aufruft.<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 5<br />
5 Lernziel: Die verschiedenen Fenstertypen mit ihren Elementen, ihren Charakteristika,<br />
ihrer Funktionalität und ihrem Einsatzbereich beschreiben können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
a Erläutern Sie die Einsatzbereiche <strong>der</strong> Fenstertypen Anwendungsfenster, Unterfenster,<br />
Dialogfenster und Mitteilungsfenster.<br />
b Geben Sie für jeden Fenstertyp ein Beispiel aus einem Ihnen bekannten Anwendungsprogramm<br />
an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
a Das Anwendungsfenster dient zur Steuerung des Programmablaufs. Es beinhaltet<br />
die verschiedenen Unterfenster, in denen z.B. die zu berarbeitenden Dokumente<br />
angezeigt werden. Dem Anwendungsfenster ist die Menüleiste zugeordnet.<br />
In dem Unterfenster findet in MDI-Anwendungen die eigentliche Berarbeitung<br />
<strong>der</strong> Dokumente statt. Zu einem Anwendungsfenster kann es mehrere Unterfenster<br />
geben. Bei nicht MDI-fähigen Anwendungen gibt es keine Unterfenster.<br />
Ein Dialogfenster dient zur Interaktion mit dem Anwen<strong>der</strong>. Hier können in einer<br />
Eingabemaske Daten zu einem Objekt o<strong>der</strong> Einstellungen eingegeben werden.<br />
Ein Mitteilungsfenster soll den Benutzer auf eine bestimmte Situation o<strong>der</strong> einen<br />
bestimmten Vorfall aufmerksam machen, z.B. wenn ein Dokument wegen<br />
eines Fehlers im Netzwerk o<strong>der</strong> auf dem Datenträger nicht abgespeichert werden<br />
konnte.<br />
➜<br />
Aufgabe<br />
Lösung
Die Beispiele stammen aus dem Programm Word für Windows 95.<br />
Anwendungsfenster:<br />
Unterfenster:<br />
➜<br />
Aufgabe<br />
Lösung
Dialogfenster:<br />
Mitteilungsfenster:<br />
➜<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 6<br />
6 Lernziel: Die verschiedenen Fenstertypen mit ihren Elementen, ihren Charakteristika,<br />
ihrer Funktionalität und ihrem Einsatzbereich beschreiben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Im folgenden werden Ihnen einige typische Anwendungsszenarien geschil<strong>der</strong>t.<br />
Geben Sie jeweils – mit Begründung – den günstigsten Fenstertyp o<strong>der</strong> die zu<br />
verwendende Dialogart an.<br />
a In einem Textverarbeitungssystem soll die Funktion »suchen und ersetzen« implementiert<br />
werden.<br />
b In einem Tabellenkalkulationsprogramm soll die Formatierung einer markierten<br />
Tabellenzeile geän<strong>der</strong>t werden.<br />
c Während des Prüfens einer Festplatte tritt ein schwerer Fehler auf, <strong>der</strong> nur durch<br />
Benutzereingaben beseitigt werden kann.<br />
d Ein Benutzer meldet sich im Netzwerk an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Die Funktion sollte als nicht-modaler Dialog realisiert werden, da <strong>der</strong><br />
Suchvorgang häufig unterbrochen wird, um kleinere Än<strong>der</strong>ungen im Text vorzunehmen.<br />
Allerdings sollte <strong>der</strong> Dialog dann als immer-obenauf-Fenster realisiert<br />
werden, damit er nicht umständlich wie<strong>der</strong> in <strong>der</strong> Vor<strong>der</strong>grund geholt werden muß.<br />
b Der Dialog muß anwendungsmodal realisiert werden. Wenn die Tabelle weiterhin<br />
geän<strong>der</strong>t werden könnte, wäre es sonst möglich, die zu formatierende Spalte<br />
zu löschen o<strong>der</strong> das Format einzelner Zellen zu än<strong>der</strong>en, was beides zu Inkonsistenzen<br />
führte.<br />
c Dieser Dialog muß systemmodal sein, da <strong>der</strong> Defekt sich auf an<strong>der</strong>e Programme<br />
auswirken kann.<br />
d Auch die Netzwerkanmeldung muß systemmodal sein, da sämtliche Anwendungen<br />
davon betroffen sein können (z.B. weil zusätzliche Massenspeicher zur<br />
Verfügung gestellt werden)<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 7<br />
7 Lernziel: Regeln für Abkürzungen kennen und anwenden können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Für ein Betriebssystem soll eine Kommandosprache realisiert werden, die folgende<br />
Funktionen zur Verfügung stellt:<br />
- löschen (einer Datei)<br />
- kopieren (einer Datei auf eine an<strong>der</strong>e Datei)<br />
- verschieben (einer Datei in ein an<strong>der</strong>es Verzeichnis)<br />
- auflisten (aller Dateien in einem Verzeichnis)<br />
- drucken (einer Datei)<br />
Die Kommandos sollen durch Eingabe ihres Namens gefolgt von <strong>der</strong> o<strong>der</strong> den<br />
vom Kommando betroffenen Dateien o<strong>der</strong> Verzeichnissen angestoßen werden.<br />
a Welche grundsätzliche Bedienungsphilosophie steht hinter diesem Konzept?<br />
b Welche Regeln zur Bildung von Abkürzungen kennen Sie? Geben Sie für jede<br />
Ihnen bekannte Regel ein Beispiel aus den oben aufgeführten Kommandos an.<br />
c Um dem Benutzer die Arbeit zu erleichtern, sollen für alle Kommandos Kurzformen<br />
akzeptiert werden. Wählen Sie für die oben beschriebenen Kommandos<br />
nach ergonomischen Gesichtspunkten Abkürzungen aus.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
a Diese Art <strong>der</strong> Bedienung nennt man funktionsorientiert.<br />
b Folgende Regeln sind hier anwendbar:<br />
- Eliminierung einzelner Buchstaben, z.B. LSCHN für löschen<br />
- Abschneiden <strong>der</strong> letzten Buchstaben, z.B. l für löschen<br />
- Akronym, z.B. leid für löschen einer Datei<br />
c Da die Bezeichnungen aller Kommandos mit unterschiedlichen Buchstaben<br />
beginnen, kann man für die Kommandosprache die Anfangsbuchstaben dieser<br />
Bezeichnungen verwenden. Es ergibt sich dann folgende Sprache:<br />
l - löschen einer Datei<br />
k - kopieren einer Datei<br />
v - verschieben einer Datei<br />
a - auflisten einer Datei<br />
d - drucken einer Datei<br />
Diese Wahl ist ergonomisch, da die Kommandosprache für den Benutzer transparent<br />
ist und die Kürzel leicht zu merken sind.<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 8<br />
8 Lernziel: Kriterien für die Namensauswahl kennen und erläutern können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Für eine Kommandosprache zur Manipulierung eines ferngesteuerten Fahrzeugs<br />
sollen für die Steuerkommandos geeignete Namen ausgewählt werden. Das Fahrzeug<br />
kann nach links und rechts gelenkt werden, abbremsen, beschleunigen und<br />
ein Fahrtlicht ein- und ausschalten.<br />
a Nach welchen Kriterien sollten die Namen für die einzelnen Kommandos vergeben<br />
werden?<br />
b Erstellen Sie einen Entwurf für diese Kommandosprache unter Berücksichtigung<br />
<strong>der</strong> in a gefundenen Kriterien.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 8<br />
a Folgende Punkte müssen beachtet werden:<br />
- Kodierbarkeit (Namen müssen leicht lesbat und erinnerbar sein)<br />
- Suggestivität (Der Name läßt auf das zu modifizierende Objekt schließen)<br />
- Unterscheidbarkeit (Die Namen <strong>der</strong> einzelnen Kommandos sind im Kontext<br />
gut auseinan<strong>der</strong>zuhalten)<br />
- Systematik im Kontext<br />
b Es sind sechs Funktionen zu beschreiben. Um eine einheitliche Sprache zu<br />
finden, werden jeweils einzelne Wörter verwendet, z.B. nicht Licht an o<strong>der</strong> Licht<br />
aus. Dies sind:<br />
links<br />
rechts<br />
beschleunigen<br />
verzögern<br />
dunkel<br />
hell<br />
Wenn die Namen so gewählt werden, können alle Kommandos mit ihren Anfangsbuchstaben<br />
abgekürzt werden.<br />
Alle Namen sind leicht lesbar, weisen eine hohe Suggestivität auf, sind unterscheidbar<br />
(komplementär) und systematisch im Kontext eines Fahrzeugs.<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 9<br />
9 Lernziel: Die objektorientierte Anwendungsbedienung am Beispiel des<br />
Presentation Manager darstellen können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, wie bei Verwendung des Presentation Manager ein neuer Drukker<br />
im System eingerichtet wird.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 9<br />
Es wird eine Drucker-Schablone auf den Desktop geschoben. Dadurch wird ein<br />
neuer Drucker eingerichtet, dem aber zunächst noch kein Druckertreiber zugeordnet<br />
ist. Dies geschieht über das Kontext-Menü des neuen Drucker-Objekts<br />
Aufgabe<br />
Lösung
LE 17 Aufgabe 10<br />
10 Lernziel: Menüs und Kommandos einschl. ihrer Eigenschaften, ihrer Einsatzbereiche,<br />
ihrer Arten, ihrer Funktionsweise und ihrer Gestaltungsregeln erläutern<br />
können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
a Welche Arten von Menüs kennen Sie und worin bestehen die grundsätzlichen<br />
Unterschiede?<br />
b Wie müssen Menüs gestaltet werden, damit eine ergonomische Bedienung<br />
gewährleistet ist?<br />
c Beschreiben Sie die typischen Einsatzbereiche von Menüs und Kommandos.<br />
d Welche Strukturen für Kommandosprachen kennen Sie? Nennen Sie ein Ihnen<br />
bekanntes Beispiel für solche Kommandosprachen!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 10<br />
a Man unterscheidet zwischen Pull-Down- und Pop-Up-Menüs.<br />
Pull-Down-Menüs treten im Zusammenhang mit Menübalken auf und erscheinen<br />
nach dem Anklicken des gewünschten Menütitels. Die Pull-Down-Menüs sind die<br />
zweite Stufe in einer zweistufigen Hierarchie.<br />
Ein Pop-Up-Menü erscheint an <strong>der</strong> aktuellen Bearbeitungsstelle auf dem Bildschirm,<br />
z.B. wenn ein bestimmtes Objekt angeklickt wird (meist mit <strong>der</strong> rechten<br />
Maustaste). Ist ein Pop-Up-Menü nicht aktiviert, ist es für den Anwen<strong>der</strong> komplett<br />
unsichtbar. Dagegen bleiben bei Pull-Down-Menüs immer die zugehörigen Menütitel<br />
auf dem Menübalken sichtbar. Das macht Pull-Down-Menüs weniger platzsparend.<br />
Das Arbeiten mit Pop-Up-Menüs kann effizienter sein, da <strong>der</strong> Mauszeiger<br />
nicht immer <strong>zum</strong> Menübalken bewegt werden muß.<br />
b Ergonomisch zu bedienende Menüs müssen folgen<strong>der</strong>maßen gestaltet sein:<br />
n Die Menüoptionen sollten kurz und prägnant bezeichnet sein. Es ist auf eine<br />
gute Unterscheidbarkeit <strong>der</strong> einzelnen Menüoptionen zu achten.<br />
n Alle Menüoptionen sind linksbündig anzuordnen. Falls möglich Menüoptionen<br />
bildhaft darstellen.<br />
n Die Anordnung <strong>der</strong> Menüoptionen sollte nicht dem Zufall überlassen werden.<br />
Je nach Anwendung ist eine alphabetische, funktionale, nach Häufigkeit o<strong>der</strong> Wichtigkeit<br />
sortierte, die semantische Ähnlichkeit wi<strong>der</strong>spiegelnde o<strong>der</strong> eine natürliche<br />
Folge darstellende Anordnung zu wählen.<br />
➜<br />
Aufgabe<br />
Lösung
n Ein Pop-Up-Menü sollte rechts neben dem zu bearbeitenden Objekt erscheinen<br />
und darf dieses nicht überdecken.<br />
n Bei Pull-Down-Menüs ist darauf zu achten, daß <strong>der</strong> Menütitel durch ein Stichwort<br />
o<strong>der</strong> einen sehr kurzen Satz die Gesamtheit <strong>der</strong> Menüoptionen gut beschreibt.<br />
Die einzelnen Menütitel sollten innerhalb des Menübalkens einheitlich benannt<br />
werden (Grammatik, Stil).<br />
c Die typischen Einsatzbereiche von Menüs und Kommandos:<br />
Ein menügesteuertes System kann in einem Umfeld sinnvoll sein, das<br />
n überwiegend von Anfängern und Gelegenheitsbenutzern benutzt wird<br />
n mit wenig Benutzereingaben auskommen soll<br />
n genügend Bildschirmfläche für einen Menübalken bzw. ein geöffnetes Pup-Up-<br />
Menü bietet<br />
n das Gedächtnis <strong>der</strong> Benutzer möglichst wenig belasten soll.<br />
Ein kommandoorientiertes System ist sinnvoll, wenn <strong>der</strong> Einsatzbereich folgenden<br />
Anfor<strong>der</strong>ungen entspricht:<br />
n überwiegend Expertenbenutzer arbeiten mit dem System<br />
n die Interaktion mit dem System soll sehr schnell erfolgen<br />
n es steht nur eine begrenzte Bildschirmfläche zur Verfügung<br />
Aufgabe<br />
Lösung
d Es gibt drei unterschiedliche Strukturen für Kommandosprachen:<br />
n Einfache Kommandoliste<br />
Jedem Kommando (meist ein einzelner Buchstabe) wird eine bestimmte Funktion<br />
zugeordnet. Es sind keine weiteren Parameter notwendig.<br />
Beispiel: WordStar war ein verbreitetes Textverarbeitungssystem, das über<br />
Control-Sequenzen gesteuert wurde, z.B. Control-y: Aktuelle Zeile löschen,<br />
Control-K-B: Beginn eines Blockes markieren usw.<br />
n Kommandos mit Argumenten und Optionen<br />
Zusätzlich zu dem Kommandonamen können weitere Optionen o<strong>der</strong> Parameter,<br />
z.B. die Namen <strong>der</strong> Objekte, auf die das Kommando wirken soll, angegeben werden.<br />
Beispiel: Die Internet-Werkzeuge telnet und ftp werden über eine solche<br />
Kommandosprache gesteuert, z.B. open Rechnername <strong>zum</strong> Herstellen einer Verbindung<br />
zu einem entfernten Rechner<br />
n Hierarchische Kommandostruktur<br />
Die verschiedenen Klassen von Objekt-, Aktions- und Argumentnamen lassen<br />
sich möglichst konsistent zu sehr komplexen Kommandos kombinieren. Mit dieser<br />
Kommandostruktur können Experten sehr effizient arbeiten. Es ist aber ein<br />
großer Einarbeitungsaufwand erfor<strong>der</strong>lich.<br />
Beispiel: Der Stream-Editor sed des Unix-Systems. Mit Hilfe des Kommandos<br />
[2addr]s/regular expression/replacement/flags können reguläre Ausdrücke durch<br />
eine Zeichenkette ersetzt werden. Der Ersetzungsvorgang kann durch flags gesteuert<br />
werden. Durch die optionalen Parameter 2addr kann eine Textbereich<br />
angegeben werden, auf den <strong>der</strong> Befehl wirken soll.<br />
Aufgabe<br />
Lösung
LE 18 Aufgabe 1<br />
1 Lernziel: Prinzipielle Alternativen zur Dialoggestaltung angeben, für eigene<br />
Dialoggestaltungen begründet auswählen und beurteilen können.<br />
Zeit: 90 Minuten<br />
Aufgabe:<br />
Stellen Sie Menüstrukturen für die Anwendung <strong>der</strong> HIWI-Verwaltung auf. Entwikkeln<br />
Sie dabei eine funktionsorientierte, eine objektorientierte und eine Ihnen am<br />
günstigsten erscheinende Lösung.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Funktionsorientierte Bedienung:<br />
Ôbjektorientierte Bedienung:<br />
Pupup Drucken<br />
Popup Zeugnis<br />
Popup Studienfach<br />
Am günstigsten erscheint hier die objektorientierte Variante.<br />
Aufgabe<br />
Lösung
LE 18 Aufgabe 2<br />
2 Lernziel: Die fünf Grundsätze ergonomischer Dialoggestaltung nach DIN<br />
66234, Teil 8, kennen, erläutern, auf eigene Dialoggestaltungen anwenden und<br />
zur Beurteilung von Dialoggestaltungen einsetzen können.<br />
Zeit: 120 Minuten<br />
Aufgabe:<br />
Beurteilen Sie ein Ihnen bekanntes CASE-Werkzeug, das auf <strong>der</strong> <strong>CD</strong>-ROM<br />
enthalten ist, nach den Grundsätzen ergonomischer Dialoggestaltung.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Im folgenden wird das CASE-System Together C++ evaluiert:<br />
1 Aufgabenangemessenheit:<br />
n Keine Belastung durch technische Vor- und Nacharbeiten<br />
Ja - Die Projekt- sowie Quelltextdateien werden vom Programm verwaltet.<br />
n Anpassung des Dialogs an die Arbeitsaufgabe<br />
Ja - Die Menüs können über Maussteuerung o<strong>der</strong> teilweise durch<br />
Tastaturkürzel gesteuert werden.<br />
n Art und Form <strong>der</strong> Eingabe an die Arbeitsaufgabe angepaßt<br />
Bedingt - Die Eingabe von Beziehungen im Objektmodell sowie das<br />
manuelle Layout sind etwas umständlich. Das automatische Layout produziert<br />
<strong>zum</strong> Teil unbrauchbare Ergebnisse.<br />
n Unterstützung regelmäßig wie<strong>der</strong>kehren<strong>der</strong> Arbeitsaufgaben<br />
Bedingt - Die Eingabe von Klassen, Attributen, Methoden, Subjekten und<br />
Kommentaren kann über Tastenkombinationen ausgewählt werden.<br />
Beziehungen lassen sich in dieser Form nicht eingeben.<br />
n UNDO Funktionen mit Vergleich<br />
Nein.<br />
➜<br />
Aufgabe<br />
Lösung
2 Selbstbeschreibungsfähigkeit<br />
n Erläuterungen sollen Vorstellungen des Benutzers unterstützen<br />
Bedingt – Erläuterungen sind nur über die Hilfe erhältlich.<br />
n Erläuterungen an allgemein üblichen Kenntnissen angepaßt<br />
Ja.<br />
n Nach Art und Umfang sollen verschiedene Erläuterungen verfügbar sein<br />
Nein. Die Glie<strong>der</strong>ung <strong>der</strong> Hilfe bietet allerdings die Möglichkeit vom<br />
Allgemeinen <strong>zum</strong> Speziellen zu gelangen.<br />
n Situationsabhängige Beschreibung<br />
Nein. Die gewünschten Informationen müssen in <strong>der</strong> Hilfe gesucht werden.<br />
3 Steuerbarkeit<br />
n Einstellung <strong>der</strong> Geschwindigkeit und des Arbeitsablaufes<br />
Nein.<br />
n Keine unnötigen Wartezeiten<br />
Ja – Wartezeiten bei größeren Modellen sind <strong>der</strong> Aufgabe angemessen.<br />
n Freie Wahl <strong>der</strong> Arbeitsmittel und des Arbeitsweges<br />
Bedingt – in einigen Situationen hat <strong>der</strong> Benutzer mehrere Möglichkeiten<br />
sein Ziel zu erreichen.<br />
n Kleine Dialogschritte und Zusammenfassungen<br />
Nein.<br />
n Informationen <strong>zum</strong> Arbeitsweg<br />
Ja. Die Hilfethemen enthalten Informationen zu den verschiedenen<br />
Arbeitsabläufen; die Verfügbarkeit von Menüoptionen stellt eine weitere<br />
Orientierungshilfe dar.<br />
➜<br />
Aufgabe<br />
Lösung
n Beliebiges Unterbrechen und Wie<strong>der</strong>aufnehmen des Dialogs<br />
Nein.<br />
n Wie<strong>der</strong>aufnahme nach Systemausfall<br />
Nein. Es sind keine speziellen Wie<strong>der</strong>aufnahme-Mechanismen beschrieben.<br />
n Letzter Dialogschritt reversibel<br />
Nein.<br />
n Zusätzliche Nachfrage bei kritischen Verarbeitungsschritten<br />
Ja.<br />
n Steuerung <strong>der</strong> Bildschirmdarstellung<br />
Ja. Die Daten können aus unterschiedlichen, <strong>zum</strong> Teil konfigurierbaren Blickwinkeln<br />
betrachtet werden.<br />
4 Erwartungskonformität<br />
n Einheitliches Dialogverhalten<br />
Bedingt - Menüoptionen, über die neue Fenster (z.B. zur Konfiguration) geöffnet<br />
werden, sind von einfachen Menüeinträgen nicht zu unterscheiden.<br />
n Bei ähnlichen Arbeitsaufgaben ähnlicher Dialog<br />
Ja.<br />
n Rückmeldung des Dialogsystems<br />
Ja.<br />
n Rückmeldungen zu Zustandsän<strong>der</strong>ungen<br />
Nein - Dies ist auch nicht nötig, da Zustandsän<strong>der</strong>ungen nur vom Benutzer<br />
initiert und <strong>zum</strong> Teil erst nach Bestätigung ausgeführt werden.<br />
➜<br />
Aufgabe<br />
Lösung
n Verzögerungsfreie Darstellung<br />
Ja.<br />
n Bei längeren Antwortzeiten Meldungen<br />
Ja. Das Parsen von Quelltexten wird in einem Status-Fenster angezeigt.<br />
n Stand <strong>der</strong> Bearbeitung<br />
Nein - Keine spezielle Anzeige. Der Stand <strong>der</strong> Bearbeitung ergibt sich aus<br />
den eingegebenen Daten, die auf verschiedene Weise angezeigt werden<br />
können.<br />
n Informationen zu Unterbrechungen durch technischen Ausfall<br />
Es wird das Versionierungssystem RCS verwendet. Dieses System verfügt<br />
über Mechanismen zur Wie<strong>der</strong>herstellung nach einem Ausfall.<br />
5 Fehlerrobustheit<br />
n Undefinierte Systemzustände<br />
In <strong>der</strong> Testphase nicht aufgetreten.<br />
n Ort des Fehlers<br />
Bedingt - Im Objektmodell wird die Eingabe von nicht erlaubten Beziehungen<br />
einfach ignoriert. Beim Parsen von Quelltexten wird bei vorhandenen Fehlern<br />
eine Fehlerliste erstellt.<br />
n Sofortige Fehlermeldung: Ja.<br />
n Verständlichkeit <strong>der</strong> Fehlermeldungen: Ja.<br />
Verbesserungsmöglichkeiten:<br />
n Anpassung <strong>der</strong> Menüstruktur an die üblichen Konventionen.<br />
n Kennzeichnung <strong>der</strong> Menüoptionen, über die neue Fenster geöffnet werden.<br />
n Verbesserung <strong>der</strong> Eingabe des Objektmodells.<br />
n Verbesserung des automatischen Layouts.<br />
Aufgabe<br />
Lösung
LE 18 Aufgabe 3<br />
3 Lernziel: Die Kriterien für die Dialoggestaltung nach VDI 5005 kennen, erläutern,<br />
auf eigene Dialoggestaltungen anwenden und zur Beurteilung von Dialoggestaltungen<br />
einsetzen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Betrachten Sie die auf <strong>der</strong> beliegenden <strong>CD</strong>-ROM enthaltene Anwendung Seminarorganisation<br />
und beurteilen Sie die Dialoggestaltung nach den Regeln <strong>der</strong> VDI<br />
5005.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Kompetenzför<strong>der</strong>lichkeit: Konsistente handlungsunterstützende Benutzeroperationen<br />
n Objektaktivierung und -bearbeitung einheitlich, übersichtlich und durchschaubar<br />
darstellen. Wenig syntaktische Fehler zulassen.<br />
Über das Menü ObjektTyp lassen sich zu bearbeitende Objekte in einheitlicher<br />
Weise auswählen.<br />
n Nur im Kontext anwendbare Funktionen zur Verfügung stellen; sinnlose Funktionen<br />
blockieren.<br />
Im Kontext nicht anwendbare Funktionen sind durch graue Darstellung als<br />
deaktiviert gekennzeichnet.<br />
n Letzte Parametereinstellung beim Aufruf einer Menüoption anzeigen.<br />
Das Programm verwendet keine Parametereinstellungen.<br />
n Sicherheitsabfragen bei Operationen mit schwerwiegenden Folgen. Folgen<br />
verdeutlichen.<br />
Es sind keine Operationen mit schwerwiegenden Folgen möglich<br />
n Undo/Redo Funktion anbieten, d.h. alle durchgeführten Operationen sollten<br />
storniert werden können (Undo). Auf Wunsch muß die Stornierung wie<strong>der</strong><br />
aufgehoben werden können (Redo).<br />
Operationen können über Abbrechen unterbrochen werden, ein Redo ist<br />
nicht möglich.<br />
➜<br />
Aufgabe<br />
Lösung
n Inkrementelle Aufgabenbearbeitung ermöglichen, d.h. kleine, unabhängige,<br />
nichtsequentielle Teilschritte mit jeweiliger Ergebnisrückmeldung. Keine<br />
Operation darf in einer Sackgasse enden.<br />
Eine inkrementelle Aufgabenbearbeitung wird durch das Menü ObjektTyp<br />
ermöglicht, wodurch <strong>der</strong> Benutzer unterschiedliche Objekte unabhängig<br />
voneinan<strong>der</strong> bearbeiten kann.<br />
n Rückmeldungen auf alle Benutzeroperationen. Anzeigen, ob Eingabe erwartet<br />
wird, o<strong>der</strong> ob gerade eine Verarbeitung stattfindet. Überdurschnittliche<br />
Verarbeitungszeiten mitteilen (Art, Objekt, Umfang o<strong>der</strong> Dauer). Systembedingte<br />
Verzögerungen, Unterbrechungen o<strong>der</strong> Störungen explizit anzeigen.<br />
Bei <strong>der</strong> Anwendung sind keine überdurchschnittlichen Verarbeitungszeiten<br />
zu erwarten, <strong>der</strong>artige Mitteilungen fehlen.<br />
Handlungsflexibilität: Alternative Benutzeroperationen<br />
n Makrobildung ermöglichen, d.h. Operationen bei wie<strong>der</strong>kehrenden Abläufen<br />
können zu einer einzigen Operation zusammengefaßt werden.<br />
Die Bildung von Makros ist nicht vorgesehen.<br />
n Mengenbildung ermöglichen, d.h. Objekte, auf die die gleichen Operationen<br />
angewendet werden sollen, können zu größeren Einheiten zusammengefaßt<br />
werden.<br />
Mengenbildung ist nicht möglich.<br />
n Soweit wie möglich nicht-modale Dialoge.<br />
Die Anwendung besteht weitestgehend aus nicht modalen Dialogen.<br />
➜<br />
Aufgabe<br />
Lösung
n Parallele Bearbeitung mehrerer Anwendungen mit gegenseitigem Informationsaustausch.<br />
Ein Informationsaustausch mit an<strong>der</strong>en Anwendungen ist nicht vorgesehen,<br />
die Daten können jedoch mit dem Datenbankmanagementsystem verarbeitet<br />
werden.<br />
Aufgabenangemessenheit: Effizienz <strong>der</strong> Benutzeroperationen<br />
n Minimierung <strong>der</strong> Interaktionsschritte, die zur Ausführung einer Aufgabe bzw.<br />
<strong>zum</strong> Durchführen einer einzelnen Operation benötigt werden.<br />
Durchzuführende Aufgaben bzw. Operationen lassen sich auf direktem Weg<br />
auswählen.<br />
n Planungsaufwand reduzieren, z.B. durch syntaktisch einfache Aufgaben o<strong>der</strong><br />
Reduktion vieler Einzelschritte.<br />
Die Arbeitsschritte sind im Sinne <strong>der</strong> durchzuführenden Aufgabe übersichtlich<br />
geglie<strong>der</strong>t.<br />
n Abkürzungsstrategien für wie<strong>der</strong>holte gleichartige Aufgaben o<strong>der</strong> gleiche<br />
Operationen auf Mengen von Objekten ermöglichen (Makro & Mengenbildung).<br />
Menüs und Menüpunkte lassen sich über Tastenkombinationen auswählen.<br />
Mengenbildung ist nicht möglich.<br />
n Syntaktische Fehler verhin<strong>der</strong>n o<strong>der</strong> abfangen.<br />
Syntaktische Fehler wie z.B. fehlerhafte Datumseingaben werden abgefangen.<br />
n Überflüssige Systemmeldungen, die <strong>der</strong> Benutzer quittieren muß, vermeiden.<br />
Nur wesentliche Systemmeldungen müssen quittiert werden. ➜<br />
Aufgabe<br />
Lösung
LE 18 Aufgabe 4<br />
4 Lernziel: Die aufgeführten Transformationsregeln kennen und auf eigene<br />
Dialoggestaltungen anwenden können.<br />
Zeit: 50 Minuten<br />
Aufgabe:<br />
Erstellen Sie aus dem in Lehreinheit 13, Aufgabe 3 angelegten OOA-Modell <strong>der</strong><br />
HIWI-Verwaltung eine Benutzungsoberfläche unter Berücksichtigung <strong>der</strong><br />
Transformationsregeln.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Nachfolgend sind einige Bildschirmabzüge <strong>der</strong> Erfassungsmasken abgebildet.<br />
Die vollständige Anwendung HIWI-Verwaltung finden Sie auf <strong>der</strong> <strong>CD</strong>-ROM im<br />
Verzeichnis \swt\hiwi.<br />
Dort finden Sie die C++-Quellcodes, eine Ressourcen-Datei mit dem statischen<br />
Layout <strong>der</strong> Benutzungsoberfläche und eine ausführbare Datei für Windows<br />
95. Die Anwendung einschließlich <strong>der</strong> Bildschirmmasken wurde mit dem Jade-<br />
System generiert.<br />
Eingabedialog für die Klasse<br />
Studienfach<br />
➜<br />
Aufgabe<br />
Lösung
Eingabedialog für die Klasse Hilfsassistent<br />
➜<br />
Aufgabe<br />
Lösung
Eingabedialog für die Klasse Beschäftigungsdaten<br />
Aufgabe<br />
Lösung
LE 19 Aufgabe 1<br />
1 Lernziel: Die dargestellten Interaktionselemente mit ihrem Verwendungszweck,<br />
ihrem Aufbau, ihren Eigenschaften und ihren Gestaltungsregeln kennen und<br />
bei eigenen E/A-Gestaltungen aufgabengerecht auswählen und einsetzen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Für die im folgenden beschriebenen Fälle sollen geeignete Interaktionselemente<br />
ausgewählt werden. Begünden Sie Ihre Auswahl.<br />
a Die Anrede für einen Brief soll ausgwählt werden (Herr, Frau o<strong>der</strong> Firma).<br />
b aus einer größeren Menge von Berufsbezeichnungen soll ein Beruf ausgewählt<br />
werden. Es kann auch eine neue Bezeichnung eingegeben werden.<br />
c Es soll <strong>der</strong> Name einer Person eingegeben werden.<br />
d Es soll ein Datum eingegeben werden.<br />
e Für ein Textverarbeitungssystem ist ein Serienbrieftext zu erfassen.<br />
f Um einen elektronischen Brief zu verschicken, können <strong>der</strong> o<strong>der</strong> die Empfänger<br />
aus einer umfangreichen Liste bereits erfaßter Adressen ausgewählt<br />
werden.<br />
g Für eine grafische Darstellung soll ein Vergrößerungfaktor (zwischen 0,5 und<br />
3) eingestellt werden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Hier bietet sich eine Gruppe aus Einfachauswahlknöpfen (radio buttons) an.<br />
Die Anzahl <strong>der</strong> Alternativen ist klein und nicht vom Benutzer erweiterbar.<br />
b Bei einer großen Anzahl von Möglichkeiten, aus denen eine Variante ausgewählt<br />
werden soll bieten sich eine Auswahlliste o<strong>der</strong> (bei wenig Platz auf dem<br />
Eingabefenster) eine Klappliste an. Da jedoch auch eine eigene Eingabe<br />
möglich sein soll, muß eine Kombination aus Eingabefeld und Klappliste<br />
verwendet werden, so daß nur korrekte Datumswerte akzeptiert werden.<br />
c Ein einzeiliges Eingabefeld für Text. (Abb. 2.2 3-10)<br />
d Ein Eingabefeld für Datenfel<strong>der</strong>. Für das Datumsfeld sollte eine Schablone<br />
definiert werden, so daß nur korrekte Datumswerte akzeptiert werden.<br />
e Hier ist ein mehrzeiliges Eingabefeld für Texte vorzusehen. Das Feld sollte<br />
mindestens vier sichtbare Zeilen von jeweils 80 Zeilen enthalten.<br />
f Wenn die Liste nicht erweiterbar sein soll, kann eine Auswahliste o<strong>der</strong> – bei<br />
Platzmangel – eine Klappliste verwendet werden. Ist die Liste erweiterbar,<br />
dann wie bei Aufgabenteil b.<br />
g Da <strong>der</strong> Faktor kontinuierlich geän<strong>der</strong>t werden kann, ist ein Schieberegler<br />
angebracht.<br />
Aufgabe<br />
Lösung
LE 20 Aufgabe 1<br />
1 Lernziel: Die Prinzipien <strong>der</strong> Gestaltpsychologie kennen und bei <strong>der</strong> E/A-<br />
Gestaltung umsetzen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
a Ordnen Sie eine Liste von Wörtern in einer Spalte an und eine Liste von Zahlen<br />
in einer an<strong>der</strong>en Spalte.<br />
Wie nehmen Sie diese zwei Spalten wahr?<br />
Welche Prinzipien wirken?<br />
b Ordnen Sie Wörter und Zahlen gemischt in Spalten so an, daß die Zeilen abwechselnd<br />
entwe<strong>der</strong> nur Wörter o<strong>der</strong> nur Zahlen enthalten.<br />
Wie nehmen Sie diese Spalten wahr?<br />
Welche Prinzipien wirken?<br />
Wie wirkt sich <strong>der</strong> Spaltenabstand aus?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Beispiel:<br />
abf 156<br />
gei 729<br />
kwn 384<br />
Die Wörter einerseits und die Zahlen an<strong>der</strong>erseits sind untereinan<strong>der</strong> jeweils<br />
ähnlicher, siesein im Durchschnitt jeweils einan<strong>der</strong> näher, und wegen ihrer Anordnung<br />
in jeweils einer Spalte bilden sie eine gute Fortsetzung. Es wirken also die<br />
ersten drei Prinzipien <strong>der</strong> Binnenglie<strong>der</strong>ung. Außerdem bilden die beiden Spalten<br />
relativ geschlossene Figuren.<br />
➜<br />
Aufgabe<br />
Lösung
Beispiel:<br />
abf gei<br />
156 729<br />
kwn czh<br />
384 905<br />
Es entsteht ein Konflikt zwischen den Prinzipien <strong>der</strong> Nähe und <strong>der</strong> Ähnlichkeit.<br />
Ist <strong>der</strong> Abstand zwischen den Spalten groß genug, dann dominiert das Prinzip<br />
<strong>der</strong> Nähe über das Prinzip <strong>der</strong> Ähnlichkeit:<br />
abfk geiu<br />
1568 7297<br />
kwnp czhw<br />
3840 9053<br />
Bei großem Zeilenabstand und kleinem Spaltenabstand führen beide Prinzipien<br />
zu einer Gruppierung in Zeilen:<br />
abfk geiu<br />
1568 7297<br />
kwnp czhw<br />
3840 9053<br />
Aufgabe<br />
Lösung
LE 20 Aufgabe 2<br />
2 Lernziele: Regeln für die Verwendung von Farbe kennen und anwenden können.<br />
E/A-Fenster anhand <strong>der</strong> beschriebenen Vorgehensweise gestalten können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Erstellen Sie das Layout eines Eingabefensters nach dem Pflichtenheft HIWI-Verwaltung<br />
für die Ersterfassung von Hilfsassistenten /F10/.<br />
Es sollen alle Produktdaten (Personendaten /D10/, Studiendaten /D20/,<br />
Beschäftigungsdaten /D30/) auf einer o<strong>der</strong> mehreren Fenster eingegeben werden<br />
können.<br />
Setzen Sie bei <strong>der</strong> Gestaltung <strong>der</strong> Fenster Farben ein und begründen Sie Ihre<br />
Entscheidungen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Der Einsatz von Farben ist auf dem HIWI-Fenster nicht zwingend notwendig.<br />
Die Umrandung thematisch zusammengehörigen Fel<strong>der</strong> o<strong>der</strong> ähnlicher Elemente<br />
führt schon zu einer starken Gruppierung. Es sind keine Daten mit beson<strong>der</strong>er<br />
Wichtigkeit auf dem Fenster vorhanden o<strong>der</strong> Informationen die man nach<br />
einem bestehenden mentalen Modell kodieren kann.<br />
➜<br />
Aufgabe<br />
Lösung
Wenn Farbe eingesetzt werden soll, dann sollte <strong>der</strong> Hintergrund des Fensters in<br />
einem dunkleren Ton, z.B. Blau/Grün gehalten werden und die Hintergrundfarbe<br />
<strong>der</strong> einzelnen Gruppen evt. heller, z.B. Cyan/Hellblau. Die Eingabefel<strong>der</strong> sollten<br />
dann in <strong>der</strong> gleichen Farbe, aber mit einer helleren Abstufung für Mußfel<strong>der</strong> und<br />
einer dunkleren Abstufung für Kannfel<strong>der</strong> gewählt werden. Die Schrift sollte gleichmäßig<br />
in Schwarz sein.<br />
Aufgabe<br />
Lösung
LE 20 Aufgabe 3<br />
3 Lernziele: E/A-Fenster anhand <strong>der</strong> beschriebenen Vorgehensweise gestalten<br />
können. Allgemaine Gruppierungsregeln kennen und bei <strong>der</strong> E/A-Gestaltung<br />
anwenden können.<br />
Zeit: 80 Minuten<br />
Aufgabe:<br />
Erstellen Sie das Layout <strong>der</strong> Eingabemaske für Dozent und Seminarveranstaltung<br />
<strong>zum</strong> Fallbeispiel Seminarorganisation. Halten Sie sich dabei an die vorgestellte<br />
Vorgehensweise achten Sie insbeson<strong>der</strong>e auf eine sinnvolle Gruppierung<br />
<strong>der</strong> Elemente.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a Dozent<br />
1. Schritt<br />
Zusammenstellen, welche Ein- und Ausgaben in dem Fenster erfolgen sollen.<br />
In dem Fenster »Dozent bearbeiten« müssen folgende Ein-/Ausgaben erfolgen<br />
(ergibt sich z.B. aus dem OOA-Modell, siehe Abschnitt 2.18.6):<br />
n Dozenten-Nr. n Geburtsdatum<br />
n Name bestehend aus n Kurzmitteilung<br />
o Anrede n Notizen<br />
o Titel n Info-Material<br />
o Vorname n Ersterfassung am<br />
o Nachname n Honorar pro Tag<br />
n Adresse bestehend aus n Biographie<br />
o Straße/Postfach<br />
o Län<strong>der</strong>kennzeichen<br />
o PLZ<br />
o Ort<br />
o Telefon<br />
o Fax<br />
➜<br />
Aufgabe<br />
Lösung
2. Schritt<br />
Zusammenstellen, welche Elemente zur Dialogsteuerung und zur Navigation auf<br />
dem Fenster angeordnet werden müssen.<br />
Aus dem OOA-Modell ergeben sich folgende Elemente:<br />
Druckknöpfe für die Dialogsteuerung Navigation zu an<strong>der</strong>en Fenstern<br />
n Speichern n Fenster Veranstaltungen<br />
n Neu Rolle: Referent bei<br />
n Löschen n Fenster Veranstaltungen<br />
n Liste Rolle: Seminarleiter bei<br />
n Abbruch n Fenster Seminartypen<br />
Rolle: Zugeordnete Typen<br />
3. Schritt<br />
Festlegung, welche Interaktionselemente zur Darstellung welcher Ein-/Ausgaben<br />
geeignet sind und<br />
Bei <strong>der</strong> OOA-Modellierung (siehe Abb. 2.18-33) wurden für die Ein-/Ausgaben<br />
bzw. Die Attribute bereits genaue Angaben spezifiziert, wie Typ, Muß-/Kann-Attribut,<br />
Voreinstellung, auf die jetzt für die E/A-Gestaltung zurückgegriffen werden<br />
kann.<br />
Folgende Interaktionselemente können verwendet werden:<br />
Dozenten-Nr.: Eingabefeld für Daten<br />
Attribute: Ausgabefeld, numerisch, 5stellig (1..99999)<br />
➜<br />
Aufgabe<br />
Lösung
Anrede: Einfachauswahl-Knopf<br />
Attribute: Eingabefeld, Werte: Herr o<strong>der</strong> Frau, Mußfeld,<br />
Voreinstellung: Herr<br />
Titel: Kombiniertes Eingabefeld mit Klappliste (dropdown combobox)<br />
Wurde gewählt, da einige Titel vorhersagbar sind (z.B. Prof., Dr.), an<strong>der</strong>e nicht.<br />
Vorname: Eingabfeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Name: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Mußfeld<br />
Straße/Postfach: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Län<strong>der</strong>kennzeichen: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
PLZ: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
➜<br />
Aufgabe<br />
Lösung
Ort: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Telefon: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Fax: analog Telefon<br />
Geburtsdatum: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, Formatt tt.mm.yy<br />
als Voreinstellung, 8 Stellen<br />
Kurzmitteilung: Eingabefeld für Texte<br />
Attribute: Eingabefeld, mehrzeiliger Text (500 Zeichen), Kann-Feld<br />
Notizen: analog Kurzmitteilung<br />
Biographie: analog Kurzmitteilung<br />
Info-Material: analog Kurzmitteilung, zusätzlich noch Datumsangabe, wann Info-<br />
Material verwandt (analog Geburtsdatum), automatische Übernahme des aktuellen<br />
Tagesdatums muß durch Voreinstellung möglich sein.<br />
Ersterfassung am: Ausgabefeld für formatierte Daten,<br />
es wird automatisch das Erfassungsdatum angezeigt.<br />
➜<br />
Aufgabe<br />
Lösung
Honorar pro Tag: Ausgabefeld für Daten<br />
Attribute: Ausgabefeld, numerisch, 6stellig, Einheit: DM<br />
4. Schritt<br />
Gruppierung <strong>der</strong> Interaktionselemente zu jeweils einer Gruppe, die in einem engen<br />
Sinnzusammenhang stehen bzw. logisch zusammengehören.<br />
Folgende Gruppenbildungen bieten sich an:<br />
n Name bestehend aus Anrede, Titel, Vorname, Nachname<br />
n Adresse bestehend aus Straße/Postfach, Län<strong>der</strong>kennzeichen, PLZ, Ort, Telefon,<br />
Fax.<br />
n Zusätzliche Daten bestehend aus Honorar pro Tag, Ersterfassung am, Geburtsdatum<br />
n Notizen bestehend Notizen, Kurzmitteilung, Info-Material, Biographie<br />
Da in dem Dozentenerfassungsfenster nicht nur neue Dozenten erfaßt, son<strong>der</strong><br />
auch bereits vorhandene Dozenten geän<strong>der</strong>t werden, ist es notwendig, daß vorhandene<br />
Dozenten schnell gefunden werden.<br />
Daher ist es wünschenswert, daß beim Eingeben des Nachnamens automatisch<br />
nach einem Dozenten mit diesem Namen gesucht wird.<br />
Der Nachname wird daher mit <strong>der</strong> Dozenten-Nr. zu einer eigenen Gruppe zusammengefaßt.<br />
➜<br />
Aufgabe<br />
Lösung
5. Schritt<br />
In je<strong>der</strong> Gruppe die Interaktionselemente so anordnen, daß sie <strong>der</strong> Logik des<br />
Arbeitsablaufs aus Benutzersicht entsprechen. Erst dann die Reihenfolge <strong>der</strong> Elemente<br />
entsprechend <strong>der</strong> Benutzerhäufigkeit und <strong>der</strong> Wichtigkeit <strong>der</strong> von ihr vermittelten<br />
Information überprüfen. Gibt es mehrere Alternativen als Interaktionselemente,<br />
dann die Alternative wählen, die den besten Arbeitsablauf gestattet<br />
o<strong>der</strong> am übersichtlichsten ist.<br />
Das Län<strong>der</strong>kennzeichen wurde hinter <strong>der</strong> Straße angeordnet, da sonst die Zeile<br />
PLZ/Ort zu lang geworden wäre. Die Voreinstellung ist Deutschland (D). Um Platz<br />
zu sparen, wurden die Führungstexte für PLZ und Ort zu einem Führungstext zusammengefaßt.<br />
Da für Notizen, Kurzmitteilung, Biographie und Info-Material jeweils gleich viel<br />
Platz benötigt wird, dieser Platz aber nebeneinan<strong>der</strong> nicht zur Verfügung steht,<br />
wurde hier ein Notizbuch nachgebildet.<br />
6. Schritt<br />
Die Gruppen unter Berücksichtigung <strong>der</strong> Randbedingungen (minimale Breite und<br />
Höhe des E/A-Fensters, (hier 640 x 480 Pixel) versuchen in dem E/A-Fenster<br />
einzuordnen.<br />
➜<br />
Aufgabe<br />
Lösung
Es ergibt sich folgendes Fensterlayout:<br />
➜<br />
Aufgabe<br />
Lösung
7. Schritt<br />
Die gewählte Gruppenordnung ist anhand <strong>der</strong> Gruppierungsregeln zu überprüfen<br />
und u.U. zu modifizieren.<br />
Gestaltungsmaßnahmen, die alle Gruppen betreffen, sind durchzuführen wie<br />
– Cursorsteuerung<br />
– Hervorhebung<br />
– Farbgestaltung<br />
Bei dem obigen Fensterlayout wurde bereits auf Symmetrieachsen geachtet.<br />
Der Zeiger steht nach Aufruf des Fenster auf Dozenten-Nr. Wird eine bekannte<br />
Dozenten-Nr. eingegeben, dann werden alle Informationen zu dem Kunden angezeigt.<br />
Mit <strong>der</strong> Tabulator-Taste kann von Eingabefeld zu Eingabefeld gesprungen<br />
werden, wobei spaltenweise gesprungen wird.<br />
Muß-Fel<strong>der</strong> sind hellgrau, Kann-Fel<strong>der</strong> dunkelgrau dargestellt. Ausgabefel<strong>der</strong> sind<br />
weiß dargestellt.<br />
8. Schritt<br />
Gestaltung des Feinlayouts wie Bündigkeiten, Gruppenabstände usw.<br />
Wurde bereits bei<strong>der</strong> obigen Gestaltung berücksichtigt.<br />
➜<br />
Aufgabe<br />
Lösung
Seminarverantaltung<br />
1. Schritt<br />
Zusammenstellen, welche Ein- und Ausgaben in dem Fenster erfolgen sollen.<br />
In dem Fenster »Öffentliche Veranstaltungen bearbeiten« müssen folgende Ein-/<br />
Ausgaben erfolgen (ergibt sich z.B. aus dem OOA-Modell, siehe Abschnitt 2.18.6):<br />
n Veranstaltungs-Nr. n Teilnehmerzahl minimal<br />
n Termin bestehend aus n Teilnehmerzahl maximal<br />
o Erster Veranstaltungstag n Teilnehmerzahl aktuell<br />
o Letzter Veranstaltungstag n Stornogebühr<br />
o Veranstaltungstage<br />
o Anfang 1 Tag<br />
o Ende 1 Tag<br />
o Anfang an<strong>der</strong>e Tage<br />
o Ende an<strong>der</strong>e Tage<br />
2. Schritt<br />
Zusammenstellen, welche Elemente zur Dialogsteuerung und zur Navigation auf<br />
dem Fenster angeordnet werden müssen.<br />
Aus dem OOA-Modell ergeben sich folgende Elemente:<br />
➜<br />
Aufgabe<br />
Lösung
Druckknöpfe für die Dialogsteuerung Navigation zu an<strong>der</strong>en Fenstern<br />
n Speichern n Fenster Seminartyp<br />
n Neu Rolle: Seminartyp<br />
n Löschen n Fenster Buchungen<br />
n Liste Rolle: Buchungen<br />
n Abbruch n Fenster Dozent<br />
Rolle: Seminarleiter und Referent<br />
3. Schritt<br />
Festlegung, welche Interaktionselemente zur Darstellung welcher Ein-/Ausgaben<br />
geeignet sind und<br />
Folgende Interaktionselemente können verwendet werden:<br />
Veranstaltungsnummer-Nr: Eingabefeld für Daten<br />
Attribute: Ausgabefeld, numerisch, 5stellig (1.99999)<br />
Erster Veranstaltungstag: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, Format tt.mm.yy<br />
als Voreinstellung, 8 Stellen<br />
Veranstaltungstage: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, 2 Stellen<br />
Anfang erster Tag: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefel<strong>der</strong>, formatierte Daten, Kann-Feld, Format hh.mm<br />
als Voreinstellung, 5 Stellen ➜<br />
Aufgabe<br />
Lösung
Ende erster Tag: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, Format hh.mm<br />
als Voreinstellung, 5 Stellen<br />
Anfang an<strong>der</strong>e Tage: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, Format hh.mm<br />
als Voreinstellung, 5 Stellen<br />
Ende an<strong>der</strong>e Tage: Eingabefeld für formatierte Daten<br />
Attribute: Eingabefeld, formatierte Daten, Kann-Feld, Format hh.mm<br />
als Voreinstellung, 5 Stellen<br />
Hotel: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 30 Zeichen<br />
Straße: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
PLZ: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
Ort: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Telefon: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
➜<br />
Aufgabe<br />
Lösung
Fax: analog Telefon<br />
Raum: Eingabefeld für Texte<br />
Attribute: Eingabefeld, freier Text: 20 Zeichen<br />
Teilnehmer minimal: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
Teilnehmer maximal: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
Teilnehmer aktuell: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 5 Zeichen<br />
Stornogebühr: Eingabefeld für Daten<br />
Attribute: Eingabefeld, freier Text: 4 Zeichen, Einheit DM<br />
4. Schritt<br />
Gruppierung <strong>der</strong> Interaktionselemente zu jeweils einer Gruppe, die in einem engen<br />
Sinnzusammenhang stehen bzw. logisch zusammengehören.<br />
Folgende Gruppenbildungen bieten sich an:<br />
n Termine bestehend aus Erster Veranstaltungstag, Letzter Veranstaltungstag,<br />
Veranstaltungstage, Anfang erster Tag, Ende erster Tag, Anfang an<strong>der</strong>e Tag,<br />
Ende an<strong>der</strong>e Tag<br />
➜<br />
Aufgabe<br />
Lösung
n Veranstaltungsort bestehend aus Hotel, Straße, PLZ, Ort, Telefon, Fax, Raum<br />
n Zusätzliche Daten bestehend aus Teilnehmer minimal, Teilnehmer maximal,<br />
Teilnehmeraktuell, Stornogebühr<br />
5. Schritt<br />
In je<strong>der</strong> Gruppe die Interaktionselemente so anordnen, daß sie <strong>der</strong> Logik des<br />
Arbeitsablaufs aus Benutzersicht entsprechen.<br />
Erst dann die Reihenfolge <strong>der</strong> Elemente entsprechend <strong>der</strong> Benutzerhäufigkeit<br />
und <strong>der</strong> Wichtigkeit <strong>der</strong> von ihr vermittelten Informationen überprüfen. Gibt es<br />
mehrere Alternativen als Interaktionselemente, dann die Alternative wählen, die<br />
den besten Arbeitsablauf gestattet o<strong>der</strong> am übersichtlichsten ist.<br />
Das Län<strong>der</strong>kennzeichen wurde hinter <strong>der</strong> Straße angeordnet, da sonst die<br />
Zeile PLZ/Ort zu lang geworden wäre. Die Voreinstellung ist Deutschland (D). Um<br />
Platz zu sparen, wurden die Führungstexte für PLZ und Ort zu einem Führungstext<br />
zusammengefaßt..<br />
➜<br />
Aufgabe<br />
Lösung
6. Schritt<br />
Die Gruppen unter Berücksichtigung <strong>der</strong> Randbedingungen (maximale Breite und<br />
Höhe des E/A-Fensters, hier 640 x 480 Pixel) versuchen in dem E/A-Fenster einzuordnen.<br />
Es ergibt sich folgendes Fensterlayout:<br />
➜<br />
Aufgabe<br />
Lösung
7. Schritt<br />
Die gewählte Gruppenordnung ist anhand <strong>der</strong> Gruppierungsregeln zu überprüfen<br />
und u.U. zu modifizieren.<br />
Gestaltungsmaßnahmen, die alle Gruppen betreffen, sind durchzuführen wie<br />
– Cursorsteuerung<br />
– Hervorhebung<br />
– Farbgestaltung<br />
Bei dem obigen Fensterlayout wurde bereits auf Symmetrieachsen geachtet.<br />
Der Zeiger steht nach Aufruf des Fensters auf Veranstaltungs-Nr. Wird eine<br />
bekannte Veranstaltungs-Nr. eingegeben, dann werden alle Informationen zu dem<br />
Kunden angezeigt. Mit <strong>der</strong> Tabulator-Taste kann von Eingabefeld zu Eingabefeld<br />
gesprungen werden, wobei spaltenweise gesprungen wird.<br />
Muß-Fel<strong>der</strong> sind hellgrau, Kann-Fel<strong>der</strong> dunkelgrau dargestellt. Ausgabefel<strong>der</strong><br />
sind weiß dargestellt.<br />
8. Schritt<br />
Gestaltung des Feinlayouts wie Bündigkeiten, Gruppenabstände usw.<br />
Wurde bereits bei <strong>der</strong> obigen Gestaltung berücksichtigt.<br />
Aufgabe<br />
Lösung
LE 20 Aufgabe 4<br />
4 Lernziel: Formulare und Tabellen unter Berücksichtigung <strong>der</strong> beschriebenen<br />
Regeln gestalten können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Die Personaldaten von Mitarbeitern sollen alle in einer Tabelle dargestellt werden.<br />
In dieser Tabelle sind Spalten für die Personalnummer (7-stellige Zahl), den<br />
Namen des Mitarbeiters, das Gehalt (Angabe: DM mit Pfennigen) und das Eintrittsdatum<br />
in die Firma vorzusehen.<br />
Gestalten Sie eine Tabelle, die diesen Anfor<strong>der</strong>ungen gerecht wird und geben<br />
Sie einige Beispiel-Einträge an. Achten Sie insbeson<strong>der</strong>e auf die Ausrichtungen<br />
<strong>der</strong> Spaltenwerte.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Die Personalnummer ist rechtsbündig auszurichten. Da aber die Länge bekannt<br />
ist, sollte die Spaltenbreite entsprechend gewählt werden. Ein Leerzeichen nach<br />
drei Ziffern ist zu empfehlen.<br />
Der Name ist linksbündig anzuordnen.<br />
Die Gehälter sollten um das Dezimalkomma zentriert sein. Ein Leerzeichen<br />
nach den ersten drei Stellen erhöht die Lesbarkeit.<br />
Das Eintrittsdatum sollte die ganze Spaltenbreite verwenden. Nach Tag und<br />
Monat sollte ein Punkt als Trennung eingesetzt werden. An diesen Punkten muß<br />
die Spalte ausgerichtet werden.<br />
Pers onalnummer Name Gehalt Eintrittsdatum<br />
1 755 177<br />
3 756 333<br />
4 150 207<br />
Meier<br />
Müller<br />
Schulz<br />
6410,00<br />
4395,57<br />
3438,39<br />
20.05.1964<br />
01.07.1988<br />
01.08.1990<br />
Aufgabe<br />
Lösung
LE 20 Aufgabe 5<br />
5 Lernziel: Hervorhebungen bei <strong>der</strong> E/A-Gestaltung entsprechend den Regeln<br />
einsetzen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
In dem Eingabefenster für Personen aus dem Beispiel <strong>der</strong> Abb. 2.23-40 soll <strong>der</strong><br />
Name hervorgehoben werden, weil dieser ein Muß-Feld darstellt. Gestalten Sie<br />
das Fenster so um, daß die beson<strong>der</strong>e Bedeutung von Name deutlich wird. Benutzen<br />
Sie die dargestellten Hervorhebungs-Regeln. Geben Sie verschiedene<br />
Alternativen an.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Original-Fenster:<br />
Hervorhebung durch Isolierung/Einzelstellung:<br />
➜<br />
Aufgabe<br />
Lösung
Hervorhebung durch abweichende Ordnung:<br />
Hervorhebung durch abweichenden Kontrast/Farbe:<br />
Eine Hervorhebung durch Größe ist für dieses Beispiel unpassend.<br />
Aufgabe<br />
Lösung
LE 21 Aufgabe 1<br />
1 Lernziel: Die aufgeführten Richtlinien bei <strong>der</strong> Erstellung eigener Handbücher<br />
berücksichtigen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Beschreiben Sie für ein Referenz-Handbuch die Funktion »Kunde Bearbeiten«<br />
des Software-Produkts »Seminarorganisation«.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Referenz-Handbuch des Produkts »Seminarorganisation«<br />
Funktion »Kunde bearbeiten«<br />
Speichern Beendet die aktuelle Bearbeitung mit Speicherung <strong>der</strong> Daten.<br />
Schließt das Fenster.<br />
Neu Speichert die eingegebenen Kundendaten. Das Fenster bleibt<br />
geöffnet. Die Eingabefel<strong>der</strong> werden für eine neue Kundeneingabe<br />
zurückgesetzt. Der Zeiger steht auf dem Feld Kunden-Nr.<br />
Löschen Löscht den aktuellen Kunden nach einer Sicherheitsabfrage<br />
»Wollen Sie den Kunden wirklich Löschen?«.<br />
Ein Kunde kann nicht gelöscht werden wenn er ein Seminar gebucht<br />
hat.<br />
Liste Die Liste aller Kunden wird in einem neuen Fenster angezeigt.<br />
Abbrechen Beendet die aktuelle Bearbeitung ohne Speicherung <strong>der</strong> Daten.<br />
Schließt das aktuelle Fenster.<br />
+- Knopf Ermöglicht das Anlegen/Än<strong>der</strong>n <strong>der</strong> »Beschäftigt bei« Beziehung<br />
Beschäftigt zu einer Firma.<br />
bei<br />
➜<br />
Aufgabe<br />
Lösung
+- Knopf Ermöglicht das Anlegen/Än<strong>der</strong>n von Buchungs-Beziehungen des<br />
Buchung aktuellen Kunden.<br />
+- Knopf Ermöglicht das Anlegen/Än<strong>der</strong>n von Zahlungsverzügen des<br />
Zahlungs- aktuellen Kunden.<br />
Verzüge<br />
Aufgabe<br />
Lösung
LE 21 Aufgabe 2<br />
2 Lernziel: Trainings-Einheiten anhand <strong>der</strong> dargestellten Methodik erstellen<br />
können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
Entwickeln Sie eine Trainings-Einheit für das Objekt Buchen aus dem Fallbeispiel<br />
Seminarorganisation.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Trainings-Einheit für das Objekt »Buchen«:<br />
Voraussetzungen:<br />
– Sie müssen einen Kunden erfassen können.<br />
– Sie sollten die Kundenliste und die Veranstaltungsliste kennen.<br />
– Sie müssen mit dem Kopieren von Daten vertraut sein.<br />
LE1 Vorbereitung und Start <strong>der</strong> Trainings-Einheit<br />
Dauer: 5 min<br />
1 Kopieren Sie die Daten <strong>der</strong> Diskette X in ihr Trainingsverzeichnis SemOrg-<br />
Training.<br />
2 Öffnen Sie den Ordner SemOrg-Training und starten Sie die Anwendung mit<br />
einem Doppelklick auf das Piktogramm Seminarorganisation. Es erscheint<br />
das Ihnen bekannte Anwendungsfenster mit dem Menübalken und dem<br />
Systembalken.<br />
➜<br />
Aufgabe<br />
Lösung
LE2 Buchung erfassen<br />
Dauer: 10 min<br />
1 Wählen Sie die Menüoperation »Eine Buchung« aus dem Menü Objekttyp.<br />
➜<br />
Aufgabe<br />
Lösung
2 Es erscheint das Fenster »Buchen«.<br />
a Die Einfügemarke steht auf dem Feld »Kunden-Nr.«. Wählen sie »Werner<br />
Müller«, indem Sie die Zahl »13« eintippen.<br />
b Drücken Sie die Tabulatortaste. Der Name Müller erscheint.<br />
➜<br />
Aufgabe<br />
Lösung
3 Auswahl <strong>der</strong> Veranstaltung »JAVA«. Drücken Sie die Tabulatortaste, die<br />
Einfügemarke steht nun in dem Feld »Veranstaltung-Nr.«. Tippen Sie die<br />
Ziffer 5 und drücken Sie die Tabulatortaste. Sie haben nun die Veranstaltung<br />
»JAVA« gewählt.<br />
4 Durchführung <strong>der</strong> Anmeldung.<br />
Wählen Sie den Druckknopf »Anmelden«. Eine Sicherheitsabfrage erscheint:<br />
Bestätigen sie mit »Ja«. Die Anmeldung ist durchgeführt! Fahren Sie mit Punkt 5<br />
fort. Wenn Sie »Nein« gewählt haben, wie<strong>der</strong>holen Sie die Schritte 1-3. Es<br />
wurde keine Anmeldung durchgeführt.<br />
➜<br />
Aufgabe<br />
Lösung
5 Sie können eine Anmeldebestätigung erzeugen. Der Dialog »Anmeldebestätigung<br />
exportieren unter« erscheint automatisch:<br />
Wählen Sie einen Dateinamen und einen Ordner. Bestätigen Sie mit »OK«.<br />
Wählen Sie »Abbrechen«, wenn Sie keinen Text erzeugen wollen.<br />
6 Das aktuelle Tagesdatum erscheint automatische als Anmeldedatum.<br />
Die Anmeldung ist nun komplett.<br />
Aufgabe<br />
Lösung
LE 21 Aufgabe 3<br />
3 Lernziel: Die behandelten Handbuch-Typen beschreiben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Wieso ist ein Trainings-Handbuch für einen Anfänger besser geeignet als ein<br />
Benutzer-Leitfaden?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Das Trainings-Handbuch ist für den Anfänger besser geeignet, weil eine direkte<br />
Arbeit mit dem Software-System erfor<strong>der</strong>lich ist. Dadurch wird <strong>der</strong> höchste Lerneffekt<br />
erreicht. Weiterhin deckt das Trainings-Handbuch alle Grundfunktionen ab.<br />
Diese müssen sonst mühsam aus dem Benutzer-Leitfaden zusammengesucht<br />
werden o<strong>der</strong> <strong>der</strong> komplette Leitfaden müßte durchgearbeitet werden.<br />
Aufgabe<br />
Lösung
LE 21 Aufgabe 4<br />
4 Lernziel: Eigene Benutzer-Handbücher erstellen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein Konzept für die Handbücher <strong>zum</strong> Fallbeispiel HIWI-Verwaltung.<br />
Welche Handbücher werden benötigt? Skizzieren Sie kurz <strong>der</strong>en Inhalte.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Die Handbücher sollten bestehen aus:<br />
a Trainings-Handbücher:<br />
Die Verwaltung wird von Anfängern (Sekretärinnen) benutzt. Folgende Lerneinheiten<br />
sollten trainiert werden:<br />
n Anlegen eines HIWi‘s<br />
n Zuordnen von Nebenfächern<br />
Eintragen von Beschäftigungsdaten<br />
b Referenz-Handbuch:<br />
Wenn die HIWI-Verwaltung regelmäßig eingesetzt wird, soll dieses Handbuch<br />
einen schnellen Zugriff auf die gesamte Funktionalität gewährleisten. Aufgrund<br />
<strong>der</strong> geringen Systemgröße ist keine zusätzliche Referenz-Karte notwendig.<br />
c Benutzer-Leitfaden: Sinnvoll, da es viele Benutzer gibt die Computerexperten<br />
sind, die Aufgaben <strong>der</strong> HiWi-Verwaltung kennen, aber die HIWI-Verwaltung<br />
nicht regelmäßig nutzen (z.B. Assistenten).<br />
Aufgabe<br />
Lösung
LE 21 Aufgabe 5<br />
5 Lernziele: Benutzer-Handbücher bzgl. ihrer Aufgabe, ihrer Adressaten, ihres<br />
Inhalts, ihrer Didaktik, ihrer Sprache, ihrer Form, ihrem Zeitpunkts und ihres<br />
Umfangs charakterisieren können.Die Qualität eines Benutzer-Handbuchs anhand<br />
<strong>der</strong> aufgeführten Richtlinien beurteilen können.<br />
Zeit: 30 Minuten<br />
Aufgabe:<br />
Charaktersieren Sie ein kommerzielles Benutzerhandbuch Ihrer Wahl, z.B. das<br />
Handbuch zu Excel nach den Ihnen bekannten Kriterien. Beurteilen Sie die Qualität<br />
dieses Handbuchs.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Grundlage <strong>der</strong> Beurteilung ist das Benutzerhandbuch von Microsoft Excel. Die<br />
Dokumentation von Excel besteht aus drei seperaten Büchern:<br />
A Microsoft Excel <strong>zum</strong> Nachschlagen Band 1<br />
B Microsoft Excel <strong>zum</strong> Nachschlagen Band 2<br />
C Microsoft Excel Verzeichnis <strong>der</strong> Funktionen<br />
Charakterisierung <strong>der</strong> Handbücher:<br />
nDas Verzeichnis <strong>der</strong> Funktionen ist ein Referenz-Hand-Buch. Alle Systemfunktionen<br />
sind beschrieben.<br />
nDie Nachschlagewerke sind Benutzer-Leitfäden.<br />
nBand 2 ist für Experten gedacht.<br />
nBand 1 beinhaltet eine Einführung.<br />
nEs existiert kein Trainings-Handbuch. Im Band 1 wird auf die Online-Trainingseinheiten<br />
hingewiesen, <strong>der</strong>en Inhalte und <strong>der</strong> Zeitaufwand beschrieben.<br />
nEine Referenz-Karte fehlt.<br />
➜<br />
Aufgabe<br />
Lösung
Die Handbücher enthalten folgende Teile<br />
nVorwort<br />
n Inhaltsverzeichnis<br />
n Einführung<br />
n Instaltionsverzeichnis<br />
n Beschreibung <strong>der</strong> Benutzungsoberfläche<br />
n Trainingsteil<br />
n Referenzteil<br />
n Index<br />
Es fehlen o<strong>der</strong> sind unvollständig<br />
nProduktstruktur<br />
n Literaturhinweise<br />
n Abkürzungsverzeichnis<br />
Beurteilung <strong>der</strong> Qualität:<br />
Die Komplettheit und <strong>der</strong> angemessene Umfang machen die Handbücher zu einem<br />
gelungen Nachschlagewerk. Das Fehlen des Trainings-Handbuches wird<br />
durch das Online Tutorium mehr als kompensiert. Die sprachliche Gestaltung ist –<br />
genauso wie das Buch-Layout– gut. Die äußere Form ist akzeptabel. Die Bücher<br />
sind kompakt und bleiben geöffnet liegen. Nachteilig ist, daß kein Überblick über<br />
den Zusammenhang gegeben wird und die Installationsanleitung am Anfang erfolgt<br />
(muß immer wie<strong>der</strong> überblättert werden).<br />
Aufgabe<br />
Lösung
LE 22 Aufgabe 1<br />
1 Lernziel: Die angegebenen Regeln bei <strong>der</strong> Erstellung eigener Hilfesysteme<br />
berücksichtigen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Konzipieren Sie eine Hilfekomponente für das Objekt Kunde des Software-Systems<br />
Seminarorganisation<br />
a uniform<br />
b individuell (mit Benutzermodell)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a<br />
Der Zugang zur Hilfekomponente, wird durch ein Hypertextsystem realisiert,<br />
z.B. <strong>der</strong> standard Windows-Hilfe (WinHelp). Die Hilfe ist zu aktivieren über<br />
das Hilfe-Menü. Die vorhandenen Techniken des Hilfe-System, z.B. Fenster-<br />
Management, Suchen, Inhalt,usw. werden genutzt. Die Hilfe ist kontextabhängig.<br />
Verweise zu verwandten Hilfethemen werden durch Hyperlinks realisiert.<br />
Es existieren vollständige Hilfetexte für<br />
n das Objekt Kunde<br />
mit allen Informationen zu dem anwählbaren Funktionen und Aufgaben, die mit<br />
dem Objekt Kunde realisierbar sind;<br />
n alle Funktionen, die gültig sind, mit Informationen, wann die bestimmte<br />
Funktion anwählbar ist und zu welchen Aktionen sie führt;<br />
n das Fenster »Kunde bearbeiten« mit globalen Informationen <strong>zum</strong> Fenster;<br />
n alle Interaktionselemente in dem Fenster.<br />
➜<br />
Aufgabe<br />
Lösung
Voraussetzung für eine individuelle Hilfe ist die eindeutige Identifizierung<br />
und die Einbettung eines Langzeitbenutzermodells.<br />
In Abhängigkeit von den Benutzervariablen stehen verschiedene Hilfeinformationen<br />
zur Verfügung. Dafür müssen die einzelnen Aktionen <strong>der</strong> Benutzer<br />
mitprotokolliert werden und in ein Modell von Benutzervariablen umgesetzt<br />
werden.<br />
Das allgemeine Aussehen <strong>der</strong> Hilfekomponente unterscheidet sich nicht zu<br />
dem Konzept aus a. Nur die Texte, die in <strong>der</strong> jeweiligen Situation zu dem jeweiligen<br />
Objekt ausgegeben werden, unterscheiden sich in ihrem Inhalt.Während ein<br />
Benutzer, <strong>der</strong> jeden Tag häufig mit bestimmten Funktionen umgeht, nur einen kurzen,<br />
prägnanten Hilfetext zu diesen Funktionen erhält, kann er bei einer wenig<br />
verwendeten Funktionen einen auführlicheren Hilfetext angezeigt bekommen.<br />
Die Informationen, die zu den einzelnen Hilfeobjekten gegeben werden können,müssen<br />
nun in verschiedenen Formen aufgearbeitet werden. Je nach Einstufungdes<br />
Benutzers reicht nicht mehr eine vollständige Beschreibung <strong>der</strong> Möglichkeiten<br />
aus. Die Art, die Ausführlichkeit und die Länge <strong>der</strong> Beschreibung müssen<br />
sich an die möglichen Benutzermodelle anpassen. Im Fall des Objekts »Kunde«<br />
können <strong>zum</strong> einen <strong>der</strong> Kundensachbearbeiter, als Anfänger bei <strong>der</strong> Einarbeitung<br />
o<strong>der</strong> als Experte nach <strong>der</strong> Einarbeitung, sowie ein leiten<strong>der</strong> Angestellter als<br />
Gelegenheitsbenutzer auftreten. Der Kundensachbearbeiter kann, auch wenn er<br />
im allgemeinen als Experte geführt wird, nach einem Urlaub wie<strong>der</strong> speziellere<br />
Hilfe erwarten. Wobei ein Gelegenheitsbenutzer mehr Informationen über die<br />
Aufgaben und Möglichkeiten in <strong>der</strong> Hilfe finden möchte.<br />
Aufgabe<br />
Lösung
LE 22 Aufgabe 2<br />
2 Lernziel: Die verschiedenen Arten von Benutzer-Unterstützungssystemen aufzählen<br />
und ihre Charakteristika nennen können.<br />
Zeit: 8 Minuten<br />
Aufgabe:<br />
Erklären Sie den Unterschied zwischen einem Assistentzsystem und einem Beratungssystem.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Beide System unterstützen den Benutzer bei <strong>der</strong> Erledigung einer Aufgabe. Das<br />
Beratungssystem gibt Empfehlungen, Vorschläge und Bewertungen. Das<br />
Assistenzsystem hingegen löst Teilaufgaben <strong>der</strong> Aufgabe eigenständig. Es berät<br />
also nicht den Benutzer bei dessen Arbeit, son<strong>der</strong>n erledigt direkt Teilaufgaben.<br />
Aufgabe<br />
Lösung
LE 22 Aufgabe 3<br />
3 Lernziel:Vorhandene Hilfesysteme klassifizieren können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
In Abb. 2.25-3 bis 2.25-6 und Abb. 2.25-9 wurde Ihnen das Hilfekonzept von<br />
WinWord vorgestellt. Klassifizieren Sie dieses Hilfesystem anhand <strong>der</strong> Kriterien<br />
aus Tab. 2.25-1.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Das Hilfesystem läßt sich in zwei Teile glie<strong>der</strong>n:<br />
1 Das Windows-Standard-Hilfesystem. Dieses ist statisch, uniform und passiv.<br />
2 Den sogenannten Tip-Assistenten. Dieser ist dynamisch und aktiv.<br />
Von individueller Hilfe kann man nicht sprechen. Die Informationen sind für jeden<br />
Benutzer gleich.<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 1<br />
1 Lernziele: Aufgaben <strong>der</strong> Entwurfsphase und notwendige Grundsatzentscheidungen<br />
nennen können. Die Zusammenhänge zwischen Definitions- und<br />
Entwurfsphase sowie zwischen Entwurfs- und Implementierungsphase erläutern<br />
können.Die Alternativen bei den notwendigen Grundsatzentscheidungen aufzählen<br />
können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Welche allgemeine Problematik existiert beim Übergang von <strong>der</strong> Definitions- zur<br />
Entwurfsphase?<br />
In <strong>der</strong> Entwurfsphase sind Grundsatzentscheidungen zu fällen (Datenbanksystem,<br />
Fenstersystem, Expertensystem, sequentiell, nichtsequentiell, Echtzeit, parallel,<br />
verteilt). Welche Basiskonzepte <strong>der</strong> Definitionsphase ermöglichen einen<br />
möglichst homogenen Übergang zur Entwurfsphase in Abhängigkeit <strong>der</strong> Grundsatzentscheidungen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Die Definitionsphase realisiert die Analyse eines Problems aus <strong>der</strong> Anwen<strong>der</strong>sicht.<br />
Die Realisierung bleibt im Hintergrund. Realisierungsbetrachtungen schaden<br />
teilweise.<br />
In <strong>der</strong> Enwurfsphase wird eine implementierbare Softwarearchitektur erzeugt.<br />
Sie muß den Spezifikationen aus <strong>der</strong> Definitionsphase genügen.<br />
Beide Phasen sind intern iterativ und untereinan<strong>der</strong> iterativ.<br />
Grundsatzentscheidungen geeignetes Konzept<br />
DB: ER, OOA<br />
n RBDS ER<br />
n OODs OOA<br />
grafische Oberfläche EA-Spezifikation/Prototyp (OOA)<br />
Expertensystem Regeln, ET<br />
sequentiell SA, OOA<br />
nicht sequentiell SA/RT, Automaten<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 2<br />
2 Lernziel: Die wichtigsten Einflußfaktoren auf die Softwarearchitektur angeben<br />
können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Beschreiben Sie die Einflußfaktoren auf die Sofwarearchitektur des Fallbeispiels<br />
Seminarorganisation.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Einflußfaktoren für die Seminarorganisation:<br />
n Produkteinsatz: sequentiell, mehr Benutzer nicht gleichzeitig<br />
n nicht funktionale Produktanfor<strong>der</strong>ungen = Lehrbeispiel<br />
n Qualitätsanfor<strong>der</strong>ungen<br />
Zuverlässigkeit : o<br />
Effizienz : +<br />
Än<strong>der</strong>barkeit : +<br />
Funktionalität : +<br />
Benutzbarkeit : ++<br />
Übertragbarkeit : +<br />
n Zielumgebung<br />
Netzdienste –<br />
GUI System: C++ Klassenbibliothek (ZAPP)<br />
UI-Buil<strong>der</strong> (zFactory)<br />
Datenbank OOBS (Poet)<br />
Systemsoftware Win 95<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 3<br />
3 Lernziel: Die dargestellte Evolution <strong>der</strong> Entwurfskonzepte und -methoden<br />
erklären können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Welche Entwurfskonzepte werden durch die Programmiersprachen Basic, Pascal,<br />
Modula 2, Ada und C++ jeweils unterstützt.<br />
Erklären Sie anhand <strong>der</strong> Entwurfskonzepte die Vorteile <strong>der</strong> jeweiligen den Sprachen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Sprache Konzept Plus<br />
Basic keine Abstraktion<br />
Pascal funktionale Abstraktion hat Funktionen/Prozeduren<br />
Modula2 Datenabstraktion hat abstrakte Objekte mit<br />
Abstrakte Objekte dazugehörenden Zugriffsfunktionen<br />
ADA ADT, Datenabstraktion Exemplar muß nicht direkt kreiert<br />
+ variable Typen werden; beliebig viele Exemplare mit<br />
verschiedenen Typen;<br />
Typ Parametrisierung<br />
C++ OO-Entwurf Vererbung, Botschaften<br />
umfaßt nicht mehr alle an<strong>der</strong>en<br />
Konzepte<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 4<br />
4 Lernziele: Die Alternativen zur Realisierung grafischer Benutzungsoberflächen<br />
beschreiben und die jeweiligen Vor- und Nachteile angeben können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Sie wollen für die HIWI-Verwaltung eine grafische Benutzungsoberfäche erstellen.<br />
Welche Alternativen haben Sie bei <strong>der</strong> Realisierung? Wählen Sie eine Möglichkeit<br />
aus. Begründen Sie ihre Entscheidung.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Alternative Bewertung<br />
Systemsoftware - zu umständlich<br />
- hoher Aufwand<br />
GUI-Systeme - hohe Einarbeitung<br />
- schlecht wartbar<br />
- nicht portabel<br />
UI Toolkits + leicht verwendbar<br />
- keine grafische Unterstützung bei <strong>der</strong><br />
Oberflächenerstellung<br />
UI Buil<strong>der</strong> + grafischer Editor<br />
+ Zusammenspiel mit C++-Klassenbibliothek<br />
+ gut bei OO-Entwicklung<br />
UIMS + gute Entwicklungsmöglichkeiten<br />
- integrierter Code nicht flexibel genug<br />
automatisierte - noch nicht marktreif<br />
wissensbasierte + sehr schnelle, qualitativ gute Entwicklung<br />
Generierung<br />
Fazit:<br />
Für die Entwicklung sollte ein UIMS o<strong>der</strong> UI Buil<strong>der</strong> (fließen<strong>der</strong> Übergang) benutzt<br />
werden. Interne Script-Sprachen <strong>der</strong> UIMS sollten nicht genutzt werden,<br />
die Entwicklung sollte rein objektorientiert vorgenommen werden.<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 5<br />
5 Lernziel: Für ein gegebenes Problem abschätzen können, ob ein Expertensystem<br />
sinnvoll eingesetzt werden kann und angeben können, welche Methode<br />
bzw. welches Konzept dafür geeignet ist.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Entscheiden Sie für die folgenden Problemfälle, ob bei <strong>der</strong> Realisierung ein Expertensystem<br />
sinnvoll eingesetzt werden könnte. Wenn ja, welche Methode wäre<br />
geeignet?<br />
1 Die Hörsaalverteilung soll computergestützt erfolgen.<br />
Es werden alle Vorlesungen und alle vorhandenen Hörsäle eingegeben.<br />
Das Resultat soll die Hörsaalverteilung sein.<br />
2 Ein Programm soll dem Arzt bei seiner Diagnose helfen.<br />
Er soll alle Symptome und Untersuchungsergebnisse eintragen und erhält<br />
dann vom Computer die möglichen Krankheiten genannt. Reichen die Eingangswerte<br />
nicht aus o<strong>der</strong> ist die Diagnose nicht eindeutig, so werden weitere<br />
Untersuchungen vorgeschlagen.<br />
3 Es sollen statistische Daten über Studenten ermittelt werden.<br />
Das Programm bekommt alle persönlichen Daten und die Klausurergebnisse<br />
<strong>der</strong> Studenten.<br />
➜<br />
Aufgabe<br />
Lösung
Berechnet werden können unter an<strong>der</strong>em :<br />
– Die durchschnittliche Studiendauer.<br />
– Die durchschnittliche Note .<br />
– Die beste Note von Studenten, die weniger als 10 Semester benötigt haben.<br />
4 Eine Chemieanlage soll eingerichtet werden.<br />
Um diese Anlage optimal auszulegen, soll ein Computer verwendet werden.<br />
Es sollen folgende Faktoren so ausgelegt werden, daß die Anlage am effektivsten<br />
funktioniert:<br />
– Menge und Mischungsverhältnis <strong>der</strong> verwendeten Substanzen,<br />
– Reaktionstemperatur,<br />
– Größe <strong>der</strong> einzelnen Anlagenteile,<br />
– Abkühlungsstrecken und Vorwärmbereich.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
1 Expertensystem sinnvoll, es liegt ein Zuordnungsproblem vor<br />
2 Expertensystem sinnvoll, es liegt Planungsproblem<br />
3 Expertensystem nicht sinnvoll, für algorythmische Probleme ist ein Expertensystem<br />
nicht geeignet<br />
4 Expertensystem sinnvoll, es liegt Konfigurationsproblem<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 6<br />
5 Lernziel: Aufbau und Charakteristika einer Schichtenarchitektur darstellen<br />
können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Nennen Sie die drei wesentlichen Schichtenarchitekturen und ihre Unterschiede,<br />
die Aufbau und Charakteristika einer Schichtenarchitektur darstellen können.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Schichtenmodell mit strikter Ordnung: nur Zugriff auf untergeordnete Schichten.<br />
b Schichtenmodell mit linearer Ordnung: Zugriff nur auf die nächst niedrigere<br />
Schicht<br />
c Schichten mit baumartiger Ordnung: Schichten können parallel sein, aber<br />
nicht auf einan<strong>der</strong> Zugreifen<br />
Aufgabe<br />
Lösung
LE 23 Aufgabe 7<br />
7 Lernziel: Mit einem UIMS umgehen können.<br />
Zeit: 120 Minuten<br />
Aufgabe:<br />
Erstellen Sie mit einem User Interface Management System, das auf <strong>der</strong> <strong>CD</strong>-<br />
ROM enthalten ist (siehe <strong>CD</strong>-ROM), eine kleine Teilanwendung aus <strong>der</strong> Fallstudie<br />
Seminarorganisation.<br />
Erstellen Sie dabei die Fenster für einen Kunden und eine Kundenliste sowie<br />
ein Hauptfenster.<br />
Realisieren Sie die Dialogübergänge weitestgehend in dem verwendeten<br />
UIMS.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
Die komplette Seminarorganisation befindet sich auf dieser <strong>CD</strong>, im Verzeichnis<br />
\swt\semorg<br />
Aufgabe<br />
Lösung
LE 24 Aufgabe 1<br />
1 Lernziel: Die verwendete Datenbank-Terminologie wie<strong>der</strong>geben können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Beschreiben Sie die Zusammenhänge und Unterschiede zwischen:<br />
a ODL und SQL<br />
b SQL und OQL<br />
c Datenbank und Datenbanksystem<br />
d DDL und ODL<br />
e DBMS und DD<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Mit beiden Sprachen (ODL, SQL) können Datendefinitionen spezifiziert werden.<br />
In SQL können weiterhin Datenmanipulationen und administrative Aufgaben<br />
erledigt werden.<br />
SQL für RDBS<br />
ODL für OOBS<br />
b Beide Sprachen erlauben deklarative Anfragen.<br />
SQL erlaubt zusätzlich Datendefinitionen und administrative Aufgaben.<br />
OQL für OOBS<br />
SQL für RDBS<br />
c Eine Datenbank ist nur eine Teilkomponente eines Datenbanksystems. Sie<br />
enthält die eigentlichen Daten. Neben verschiedenen Datenbanken beinhaltet<br />
ein Datenbanksystem auch ein Data Dictionary und ein Datenbankmanagementsystem.<br />
d Beides sind reine Datendefintionssprachen. ODL in Programmiersprachen<br />
integriert.<br />
ODL für OOBS<br />
DDL für RDBS<br />
e DD und DBMS sind Teilkomponenten eines Datenbanksystems. Das DBMS<br />
verwaltet die Daten mit Hilfe des DD.<br />
Aufgabe<br />
Lösung
LE 24 Aufgabe 2<br />
2 Lernziele: Die Unterschiede zwischen Dateien und Datenbanken erläutern<br />
können. Die Aufgaben eines Datenbanksystems erklären können.<br />
Zeit: 25 Minuten<br />
Aufgabe:<br />
An ein komplettes Datenbanksystem werden verschiedene Anfor<strong>der</strong>ungen gestellt.<br />
Benennen Sie die Anfor<strong>der</strong>ungen und erklären Sie, in wieweit diese von<br />
normalen Dateien erfüllt werden o<strong>der</strong> nicht erfüllt werden.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Anfor<strong>der</strong>ungen an DBS für Dateiverwaltung zutreffend?<br />
n Dauerhaftigkeit ja<br />
n Zuverlässigkeit nur bedingt, kein recovery möglich, hängt von <strong>der</strong><br />
Zuverlässigkeit des Betriebssystems ab<br />
n Datenunabhängigkeit ja<br />
n Komfort nein, nur mit hohem Programmieraufwand zu<br />
erreichen<br />
n flexibel nein, keine Möglichkeit einer Anfragsprache<br />
n geschützt nur wenn dies im Betriebssystem integriert ist<br />
(UNIX, Windows NT)<br />
n umfangreich ja<br />
n integriert nein<br />
n mehrfachbenutzbar ja, aber Koordination muß programmiert werden<br />
Aufgabe<br />
Lösung
LE 24 Aufgabe 3<br />
3 Lernziele: Die aufgeführten Unterschiede zwischen relationalen und objektorientierten<br />
Datenbanksystemen darstellen können.Für gegebene Szenarien<br />
anhand <strong>der</strong> aufgeführten Kriterien geeignete persistente Speicherformen auswählen<br />
können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Für die Implementierung einer Seminarorganisation soll eine Datenbank verwendet<br />
werden. Sie sollen entscheiden, ob eine relationale o<strong>der</strong> eine objektorientierte<br />
Datenbank eingesetzt werden soll. Diskutieren Sie die Vor- und Nachteile <strong>der</strong><br />
beiden Systeme bezogen auf das Beispiel Seminarorganisation. Treffen Sie eine<br />
Entscheidung.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Für den Einsatz einer Datenbank spricht die Mehrfachbenutzbarkeit, integrierte<br />
Datenhaltung, zuverlässige Verwaltung, geschützte Verwendung, flexible Verwendung<br />
und das Vorhandenseins eines OOA/ER-Modells.<br />
Für den Einsatz eines RDBS spricht die einfache zu verwaltende Datenstruktur<br />
und die zeitunkritschen Antwortzeiten.<br />
Für OOBS spricht die objektorientierte Entwicklung des Systems. Dies ist gleichzeitig<br />
ein großer Negativfaktor für RDBS (nicht ohne Strukturbruch möglich).<br />
Aus den genannten Gründen sollte eine OODB eingesetzt werden.<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 1<br />
1 Lernziele: Eine Tabelle anhand <strong>der</strong> beschriebenen Verfahren so zerlegen<br />
können, daß die dritte o<strong>der</strong> vierte Normalform erfüllt sind.Die beschriebenen<br />
Datenabhängigkeiten erläutern können.<br />
Zeit: 25 Minuten<br />
Aufgabe:<br />
In einer Datenbank zur Verwaltung von Verbrauchsmaterial sind folgende Informationen<br />
zu speichern:<br />
Material besitzt eine eindeutige Materialnummer, eine Bezeichnung, i. allg.<br />
mehrere Lieferanten, die eine eindeutige Lieferantennummer besitzen sowie einen<br />
Firmennamen und eine Anschrift.<br />
Für jeden Lieferanten ist die Bestellnummer des Materials, die Verpackungseinheit<br />
und <strong>der</strong> Preis zu speichern.<br />
a Welche Normalform besitzt das folgende Relationenschema:<br />
MaterialMat.-Nr. Mat.-Bezeich. Lief.-Nr. FirmennameAnschriftBestell-Nr.<br />
Verp.-Nr. Preis<br />
12<br />
12<br />
10<br />
...<br />
HD-Diske tte<br />
HD-Diske tte<br />
DD-Diske tte<br />
...<br />
8<br />
10<br />
8<br />
...<br />
Infotrade<br />
Softdis.<br />
Infotrade<br />
...<br />
80808<br />
1304<br />
80807<br />
...<br />
b Welche Datenabhängigkeiten bestehen in diesem Schema?<br />
c Normalisieren Sie das Relationenschema weiter!<br />
...<br />
...<br />
...<br />
...<br />
10<br />
10<br />
10<br />
...<br />
26,40<br />
25,90<br />
14,60<br />
...<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a 1 Normalform, wenn die Anschrift als ein Text verwendet wird<br />
b Folgende Datenabhängigkeiten bestehen:<br />
Mat.-Nr. à Mat.-Bezeichnung<br />
Lief.-Nr. à Firmenname<br />
Lief.-Nr. à Anschrift<br />
{Mat.-Nr., Lief.-Nr.} à Bestell-Nr.<br />
Bestell-Nr. à Verpackungseinheit<br />
Bestell-Nr. à Preis<br />
b 3. Normalform<br />
MaterialMat.-Nr. Mat.-Bezeichnung<br />
12<br />
10<br />
...<br />
HD-Diskette<br />
DD-Diskette<br />
...<br />
Lieferant Lieferanten-Nr.Fa. Name Anschrift<br />
8<br />
10<br />
...<br />
Infotrade<br />
Softdis.<br />
...<br />
...<br />
...<br />
...<br />
geliefert vonMat.-Nr. Lieferanten-Nr.Bestel l-Nr. Verpackungseinheit Preis<br />
12<br />
12<br />
10<br />
...<br />
8<br />
10<br />
8<br />
...<br />
80808<br />
1304<br />
10807<br />
...<br />
10<br />
10<br />
10<br />
...<br />
24,40<br />
25,90<br />
14,60<br />
...<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 2<br />
2 Lernziel: Die Relationsoperationen sowie die Verknüpfung von Operationen<br />
in SQL-Syntax auf Beispiele anwenden können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Gegeben sind folgende Relationenschemata:<br />
VeranstaltungVeran.-Nr. Titel<br />
1<br />
2<br />
...<br />
OO-Einführung<br />
Testen<br />
...<br />
Datum<br />
11.11.92<br />
2.12.92<br />
TeilnehmerTeilneh.-Nr. Anrede Titel Vorname Nachname<br />
13<br />
10<br />
...<br />
Herr<br />
Frau<br />
...<br />
Dr.<br />
...<br />
Nimmt teil Teilneh.-Nr. Veran.-Nr.<br />
13<br />
10<br />
13<br />
...<br />
1<br />
2<br />
2<br />
...<br />
Heinz<br />
Sabine<br />
...<br />
Müller<br />
Zöllner<br />
...<br />
➜<br />
Aufgabe<br />
Lösung
Welche Operationen benötigen Sie für folgende Anfragen?<br />
Wie lauten Die Anfragen in SQL<br />
a Welche Teilnehmer sind promoviert?<br />
b Gib die Titel aller Veranstaltungen aus!<br />
c Gib die Teilnehmer <strong>der</strong> Veranstaltung mit <strong>der</strong> Nummer 1 aus!<br />
d Gib die Teilnehmer <strong>der</strong> Veranstaltung mit dem Titel Testen aus!<br />
Welche Möglichkeit besteht zur Optimierung des Antwortzeitverhaltens, wenn die<br />
Anfrage nach den Teilnehmern einer Veranstaltung mit einem bestimmten Titel<br />
häufig erfor<strong>der</strong>lich ist?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a SELECT * FROM Teilnehmer<br />
WHERE Titel = ‘Dr.’<br />
b SELECT DISTINCT Titel<br />
FROM Veranstaltung<br />
c SELECT * FROM Nimmt_Teil, Teilnehmer WHERE<br />
Nimmt_Teil.Veranstaltungsnummer = 1 AND<br />
Nimmt_Teil.Teilnehmernummer = Teilnehmer.Teilnehmernummer<br />
d SELECT Teilnehmer * FROM Nimmt_Teil, Teilnehmer.Veranstaltung<br />
WHERE Veranstaltung.Titel = ‘Test’ AND<br />
Nimmt_Teil.Veranstaltungsnummer =<br />
Veranstaltung.Veranstaltungsnummer AND<br />
Nimmt_Teil.Teilnehmernummer = Teilnehmer.Teilnehmernummer<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 3<br />
3 Lernziel: Eine Tabelle anhand <strong>der</strong> beschriebenen Verfahren so zerlegen können,<br />
daß die dritte o<strong>der</strong> vierte Normalform erfüllt sind.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
1 Ein Student hat eine eindeutige Mat.-Nr., einen Namen und ein Alter. Er muß<br />
sich für mehrere Prüfungsfächer anmelden. Zu jedem Prüfungsfach gibt es eine<br />
eindeutige Kursbezeichnung und einen Prüfer. Für ein Prüfungsfach melden sich<br />
in <strong>der</strong> Regel mehrere Studenten an. Für jeden Studenten wird pro Prüfungsfach<br />
die Anzahl <strong>der</strong> Versuche und die Note des letzten Versuchs gespeichert.<br />
Ein Student kann Mitglied einer Uni-Sportgruppe sein. In einer Sportgruppe<br />
sind mehrere Studenten. Für jeden Studenten wird gespeichert, seit wann er Mitglied<br />
in <strong>der</strong> gewählten Sportgruppe ist. Jede Sportgruppe besitzt eine eindeutige<br />
Sportart und einen Trainingsplan.<br />
Erstellen Sie zunächst eine unnormalisierte Relation, wobei Sie Mat-Nr. als<br />
Schlüssel wählen. Geben sie dann die 1., 2., und 3. Normalform an!<br />
➜<br />
Aufgabe<br />
Lösung
2 Ein Mitarbeiter beherrscht in <strong>der</strong> Regel mehrere Programmiersprachen und arbeitet<br />
in <strong>der</strong> Regel in mehreren Projekten. In einem Projekt arbeiten mehrere Mitarbeiter.<br />
Jede Programmiersprache wird von keinem, einem o<strong>der</strong> mehreren Mitarbeitern<br />
beherrscht.<br />
Geben Sie die Relation in <strong>der</strong> 3. und 4. Normalform an!<br />
3 Einen PKW-Typ gibt es in verschiedenen Lackierungen und mit verschiedenen<br />
Stoffbezügen. Jede Lackierung und je<strong>der</strong> Stoffbezug ist in <strong>der</strong> Regel für mehrere<br />
PKW-Typen verfügbar. Für einen PKW-Typ sind nur bestimmte Lack-Stoff-Kombinationen<br />
erlaubt.<br />
Geben Sie die Relationen in <strong>der</strong> 3. und 4. Normalform an!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
1<br />
Unnormalisiert:<br />
Student Matr.-Nr. Name Alter P-Fächer Prüfer Versuche Note Sportart TrainingsplanMitglied seit<br />
Tabelle ist in 1 NF<br />
2NF:<br />
StudentMatr.-Nr. Name Alter Sportart TrainingsplanMitglied seit<br />
Prüfung Fach Prüfer<br />
Versuche Matr.-Nr. Fach Versuche Note<br />
➜<br />
Aufgabe<br />
Lösung
3NF:<br />
StudentMatr.-Nr. Name Alter SportartMitglied<br />
seit<br />
Sport Sportart Trainingsplan<br />
2<br />
Mitarbeiter Mitarbeiter-Nr.Programmiersprache Projekt<br />
5<br />
5<br />
5<br />
5<br />
...<br />
Ada<br />
Ada<br />
C<br />
C<br />
...<br />
Programmierkenntnis Mitarbeiter-Nr.Programmiersprache<br />
5<br />
5<br />
...<br />
Projekteinsatz Mitarbeiter-Nr.Projekt<br />
5<br />
5<br />
...<br />
A<br />
B<br />
...<br />
Ada<br />
C<br />
...<br />
A<br />
B<br />
A<br />
B<br />
...<br />
=> 3 NF<br />
=> 4 NF<br />
➜<br />
Aufgabe<br />
Lösung
3<br />
PKW-Ausstattung Typ Lack Stoff<br />
A4<br />
A4<br />
A4<br />
A4<br />
...<br />
Blau<br />
Schwarz<br />
Schwarz<br />
Blau<br />
...<br />
Blau<br />
Blau<br />
Schwarz<br />
Schwarz<br />
...<br />
=> 3 NF<br />
Ist gleichzeitig in <strong>der</strong> 4NF, da Lack und Stoff nur als Kombination vom Typ abhängen.<br />
Als Beispiel gibt es den Stoff in rot bei <strong>der</strong> Lackfarbe Schwarz aber nicht bei<br />
<strong>der</strong> Lackfarbe Blau.<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 4<br />
4 Lernziel: Eine Tabelle anhand <strong>der</strong> beschriebenen Verfahren so zerlegen<br />
können, daß die dritte o<strong>der</strong> vierte Normalform erfüllt sind. Die ersten vier<br />
Normalisierungsformen beschreiben können.<br />
Zeit: 40 Minuten<br />
Aufgabe:<br />
Es sind Informationen über einen Kreditkarteninhaber und <strong>der</strong>en Kreditkarten zu<br />
speichern.<br />
Je<strong>der</strong> Kreditkarteninhaber (=Kunde) besitzt eine Kd-Nr und einen Namen.<br />
Je<strong>der</strong> Kunde kann Kreditkarten von mehreren Gesellschaften (z. B. Eurocard,<br />
Diners) besitzen. Diese Kreditkartengesellschaften (KK-Gesellschaft) stellen in<br />
<strong>der</strong> Regel außer <strong>der</strong> Hauptkarte auch Zusatzkarten (z. B. Business-Karte, Partnerkarte)<br />
zur Verfügung. Dabei kann die Abrechnung je<strong>der</strong> Karte über eine an<strong>der</strong>e<br />
Bank erfolgen.<br />
Für jede Kreditkarte werden die Kartennr. und die Bank gespeichert. Die<br />
Kartennr. ist pro KK-Gesellschaft eindeutig. Für jeden Kunden wird gespeichert,<br />
wie oft er die Kreditkarten <strong>der</strong> verschiedenen Gesellschaften bisher benutzt hat<br />
und welchen Gesamtbetrag er damit bezahlt hat (z. B. KD-Nr. 1 hat seine Karten<br />
von Eurocard insgesamt 43 mal benutzt und 23000,- DM bezahlt).<br />
➜<br />
Aufgabe<br />
Lösung
Geben Sie die Relationen in <strong>der</strong> 1., 2. und 3. Normalform an (sofern sie existieren).<br />
Versuchen Sie mit einer minimalen Anzahl von Relationen auszukommen.<br />
Unterstreichen Sie die Schlüssel. Geben Sie zu den Relationen ein durchgängiges<br />
Beispiel an, das obiger Realitätsbeschreibung voll entspricht!<br />
Geben Sie an, warum sich Ihre Relationen in <strong>der</strong> entsprechenden Normalform<br />
befinden!<br />
Gehen Sie von folgen<strong>der</strong> unnormalisierter Relation aus:<br />
KK-Info (Kd.-Nr, ....)<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
A<br />
KK Kd.Nr. Name Gesellschaft #Buchungen Gesamtbetrag Bank Konto KK-Art<br />
7<br />
20<br />
...<br />
Meier<br />
Müller<br />
Diners<br />
Eurocard<br />
10<br />
50<br />
Keine Aufzählungen in einer Spalte à 1NF<br />
B<br />
Kunde Kd.Nr. Name<br />
7<br />
20<br />
...<br />
Meier<br />
Müller<br />
500<br />
1000<br />
BfG<br />
BfG<br />
123<br />
154<br />
Hauptkarte<br />
Hauptkarte<br />
Kunde bei Kd.Nr. Gesellschaft #Buchungen Gesamtbetrag Bank Konto KK-Art<br />
7<br />
20<br />
...<br />
Diners<br />
Eurocard<br />
10<br />
50<br />
500<br />
1000<br />
BfG<br />
BfG<br />
123<br />
154<br />
Hauptkarte<br />
Hauptkarte<br />
Jedes Nicht-Schlüsselattribut von Primärschlüssel voll funktional abhängig à2NF.<br />
➜<br />
Aufgabe<br />
Lösung
C<br />
KundeKd.Nr. Name<br />
7<br />
20<br />
...<br />
Meier<br />
Müller<br />
Kunde bei Kd.Nr. Gesellschaft #Buchungen Gesamtbetrag<br />
7<br />
20<br />
...<br />
Diners<br />
Eurocard<br />
AbrechungKd.Nr. Gesellschaft<br />
7<br />
20<br />
...<br />
Diners<br />
Eurocard<br />
10<br />
50<br />
500<br />
1000<br />
Bank Konto KK-Art<br />
BfG<br />
BfG<br />
123<br />
154<br />
Hauptkarte<br />
Hauptkarte<br />
Jedes Nicht-Schlüsselattribut nicht transitiv à 3NF.<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 5<br />
5 Lernziel: Architektur und Funktionsweise eines relationalen Datenbanksystems<br />
erklären können.<br />
Zeit: 6 Minuten<br />
Aufgabe:<br />
Welche Schemata beschreiben die Datenstrukturen eines Datenbanksystems.<br />
Erklären Sie kurz die Aufgabe des jeweiligen Schemas.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Die Tabellenstruktur wird durch das logische Schema beschrieben. Externe Sichten<br />
auf die DB werden durch das externe Schema beschrieben. Die physische<br />
Organisation <strong>der</strong> Tabellen wird durch das interne Schema beschrieben.<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 6<br />
6 Lernziele: Eine relationale Datenbank-Entwicklung sowie den Einsatz einer<br />
Sprache <strong>der</strong> 4. Generation in den Software-Entwicklungsprozeß einordnen können.<br />
Die methodische Vorgehensweise bei <strong>der</strong> Entwicklung einer relationalen<br />
Datenbank nennen und erläutern können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Eine Universität möchte alle Studenten in einer relationalen Datenbank verwalten.<br />
Dabei soll es sich um eine reine Datenbankentwicklung handeln.<br />
Stellen Sie einen genauen Ablaufplan einer solchen Entwicklung auf!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
Zuerst sollte ein Pflichtenheft entstehen. Daraus muß ein ER- o<strong>der</strong> ein OOA-Modell<br />
gebildet werden. In <strong>der</strong> Entwurfsphase muß ein konzeptionelles Schema entstehen<br />
und die Daten müssen relational modelliert werden. Das relationale Datenmodell<br />
muß normalisiert werden. Ein logisches und ein DB-Schema entstehen.<br />
In <strong>der</strong> Implementierungsphase muß die DB mit Hilfe <strong>der</strong> DDL eingerichtet<br />
werden.<br />
Aufgabe<br />
Lösung
LE 25 Aufgabe 7<br />
7 Lernziele: Ein ER- o<strong>der</strong> OOA-Diagramm in ein logisches Schema transformieren<br />
können. Relationale Datenbankentwürfe auf <strong>der</strong> Grundlage von ER- o<strong>der</strong><br />
OOA-Modellen durchführen können.<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein logisches und ein Datenbankschema zur Fallstudie HIWI-Verwaltung.<br />
Als Grundlage soll das OOA-Modell aus Kap. 2.18 dienen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
Logic Scheme<br />
Name: HIWI-Verwaltung<br />
Relationsschema: Hilfsassistent, Beschaeftigung, Studienfach<br />
Ics Beschaeftigung[Matrikelnr]⊆ Hilfsassistent[Matrikelnr]<br />
Studienfach[Matrikelnr] ⊆ Hilfsassistent[Matrikelnr]<br />
Relationsschema<br />
Name: Hilfsassistent<br />
Attribute: Name: character(20) not null<br />
Vorname: character(20)<br />
Matrikelnr: integer not null<br />
Geburtsdatum: date<br />
Arbeitszeugnis: character(1)<br />
Datum Arbeitszeugnis: date<br />
Heimatadresse Strasse: character(30) not null<br />
Heimatadresse PLZ: integer not null<br />
Heimatadresse Ort: character(30) not null<br />
Heimatadresse Telefon: character(15)<br />
Semesteradresse Strasse: character(30)<br />
Semesteradresse PLZ: integer<br />
Semesteradresse Ort: character(30)<br />
Semesteradresse Telefon: character(15)<br />
Key: Matrikelnr<br />
➜<br />
Aufgabe<br />
Lösung
Name: Beschaeftigung<br />
Attribute: Matrikelnr: integer not null<br />
von: date not null<br />
bis: date<br />
Stundenzahl: smallint not null<br />
Taetigkeitsgebiete: character(100)<br />
Softwaresysteme character(100)<br />
Key: Matrikelnr, von<br />
Name: Studienfach<br />
Attribute: Matrikelnr: integer not null<br />
Bezeichnung: character(20) not null<br />
Vordiplom Note: character(3)<br />
Diplom Note: character(3)<br />
Diplom Datum: date<br />
Key: Matrikelnr, Bezeichnung<br />
➜<br />
Aufgabe<br />
Lösung
Datenbank Schema<br />
Name: HIWI-Verwaltung<br />
Relationsschema: Hilfsassistent, Beschaeftigung, Studienfach<br />
Ics Beschaeftigung[Matrikelnr]⊆ Hilfsassistent[Matrikelnr]<br />
Studienfach [Matrikelnr]⊆ Hilfsassistent[Matrikelnr]<br />
Relationsschema:<br />
Name: Hilfsassistent<br />
Attribute: Name: character(20) not null<br />
Vorname: character(20)<br />
Matrikelnr: integer not null<br />
Geburtsdatum: date<br />
Arbeitszeugnis: character(1)<br />
Datum Arbeitszeugnis: date<br />
Heimatadresse Strasse: character(30) not null<br />
Heimatadresse PLZ: integer not null<br />
Heimatadresse Ort: character(30) not null<br />
Heimatadresse Telefon: character(15)<br />
Semesteradresse Strasse: character(30)<br />
Semesteradresse PLZ: integer<br />
Semesteradresse Ort: character(30)<br />
Semesteradresse Telefon: character(15)<br />
Index: NameIndex<br />
NameASC<br />
Grants: Read:User1<br />
Write:User2<br />
...<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 1<br />
1 Lernziel: Architektur und Funktionsweise eines objektorientierten Datenbanksystems<br />
beschreiben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Welche Vorteile und Nachteile haben Sie, wenn Sie das Datenbankschema<br />
nicht in ODL, dafür aber in PL-ODL aufstellen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Das Schema ist direkt in <strong>der</strong> Programmiersprache zu implementieren. Der Vorteil<br />
ist, daß keine Umgewöhnung für den Programmierer notwendig ist. Weiterhin<br />
können Än<strong>der</strong>ungen, Anpassungen und nachträgliche Entwicklungen schnell realisiert<br />
werden.<br />
Nachteile ergeben sich wenn zwei verschiedene Anwendungen das selbe Schema<br />
verwenden sollen.<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 2<br />
2 Lernziel: Das ODMG-Objektmodell erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Erklären Sie den Sinn <strong>der</strong> Klasse d_Transaction!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Eine Transaktion kapselt einen Verarbeitungsvorgang. Alle Anweisungen in einer<br />
Transaktion werden entwe<strong>der</strong> vollständig o<strong>der</strong> gar nicht durchgeführt. Die Klasse<br />
d_Transaktion stellt die dafür notwendigen Operationen zur Verfügung (begin,<br />
commit, abort, ...).<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 3<br />
3 Lernziele: Objektorientierte Datenbank-Schemata mit Hilfe <strong>der</strong> ODL schreiben<br />
können.Ein OOA-Modell in ein objektorientiertes Datenbankschema transformieren<br />
können.<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Erstellen Sie für die Fallstudie Seminarorganisation die Datenbank-Schemata<br />
<strong>der</strong> Klassen Person, Dozent, Seminartyp und Veranstaltung (siehe Kapitel 2.18.6)<br />
in<br />
a ODL<br />
b C++-ODL.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a ODL<br />
interface Person<br />
(<br />
extent Personen<br />
)<br />
{<br />
attribut Short Nummer;<br />
attribut Struct Name {Enum anrede {Herr, Frau} Anrede,<br />
String Nachname, String Vorname};<br />
attribut Struct Adresse {String Strasse, Short PLZ,<br />
String Ort};<br />
attribut String Geburtstag;<br />
attribut String Kurzmitteilung;<br />
attribut String Notizen;<br />
attribut String Info_material;<br />
attribut String Funktion;<br />
attribut Float Umsatz;<br />
}<br />
void Mitteilung_drucken ();<br />
void Adresse_drucken ();<br />
➜<br />
Aufgabe<br />
Lösung
interface Dozent: Person<br />
(<br />
extent Dozenten<br />
)<br />
{<br />
attribut String Biographie;<br />
attribut Short Honorar_pro_tag;<br />
}<br />
relationship Setkann_fachlich_halten<br />
inverse Seminartyp::kann_gehalten_werden_von;<br />
relationship SetSeminar inverse<br />
Veranstaltung::Referent;<br />
relationship SetSeminarleitung inverse<br />
Veranstaltung::Leiter;<br />
➜<br />
Aufgabe<br />
Lösung
}<br />
interface Seminartyp<br />
(<br />
extent Seminartypen<br />
key Kurztitel;<br />
attribut String Titel;<br />
attribut String Zielsetzung;<br />
attribut String Methodik;<br />
attribut String Inhaltuebersicht;<br />
attribut String Tagesablauf;<br />
attribut Short Dauer;<br />
attribut String Unterlagen;<br />
attribut String Zielgruppe;<br />
attribut String Voraussetzungen;<br />
attribut Short Nettopreis;<br />
attribut Short Teilnehmer_min;<br />
attribut Short Teilnehmer_max;<br />
relationship Setkann_gehalten_werden_von<br />
inverse Dozent::kann_fachlich_halten;<br />
relationship ListSeminarveranstaltung<br />
inverse Veranstaltung::Typ;<br />
➜<br />
Aufgabe<br />
Lösung
interface Veranstaltung<br />
(<br />
extent Veranstaltungen<br />
key Nummer<br />
)<br />
{<br />
attribut Short Nummer;<br />
attribut Short Dauer;<br />
attribut String Von;<br />
attribut String Bis;<br />
attribut String Tagesraster_Anfang;<br />
attribut String Tagesraster_Ende;<br />
attribut String Anfang_erster_Tag;<br />
attribut String Ende_erster Tag;<br />
attribut String Ort;<br />
attribut String Teilnehmer_max;<br />
}<br />
relationship SetTyp inverse<br />
Seminartyp::Seminarveranstaltung;<br />
relationship ListReferent inverse Dozent::Seminar;<br />
relationship Dozent::Leiter inverse Dozent::Seminarleitung;<br />
➜<br />
Aufgabe<br />
Lösung
C++-ODL<br />
class Person: public d_object<br />
{<br />
public:<br />
d-Short Nummer;<br />
NameT Name;<br />
AdresseT Adresse;<br />
d_Date Geburtstag;<br />
d_String Kurzmitteilung;<br />
d_String Notizen;<br />
d_String Info_material;<br />
d_String Funktion;<br />
d_Float Umsatz;<br />
}<br />
void Mitteilung_drucken ();<br />
void Adresse_drucken ();<br />
struct NameT {<br />
enum Anrede {Herr, Frau};<br />
d_String Nachname;<br />
d_String Vorname;<br />
};<br />
➜<br />
Aufgabe<br />
Lösung
struct AdresseT{<br />
d_String Strasse;<br />
d_Short PLZ;<br />
D-String Ort;<br />
};<br />
class Dozent: public Person<br />
{<br />
public:<br />
d_Short Honorar_pro_Tag;<br />
d_String Biographie;<br />
}<br />
d_Rel_Set<br />
kann_fachlich_halten;<br />
d_Rel_Set Seminar;<br />
d_Rel_Set Seminarleitung;<br />
static d_Ref Personen;<br />
➜<br />
Aufgabe<br />
Lösung
class Seminartyp: public d_Object<br />
{<br />
public:<br />
d_String Kurztitel;<br />
d_String Titel;<br />
d_String Zielsetzung;<br />
d_String Methodik;<br />
d_String Inhaltsuebersicht;<br />
d_String Tagesablauf;<br />
d_Short Dauer;<br />
d_String Unterlagen;<br />
d_String Zielgruppe;<br />
d_String Voraussetzungen;<br />
d_Short Nettopreis;<br />
d_Short Teilnehmer_min;<br />
d_Short Teilnehmer_max;<br />
d_Rel_Set<br />
kann_gehalten_werden_von;<br />
d_Rel_List Seminartypen;<br />
static d_Ref Seminartypen;<br />
}<br />
➜<br />
Aufgabe<br />
Lösung
class Veranstaltung: public d_Object<br />
{<br />
public:<br />
d_Short Nummer;<br />
d_Short Dauer;<br />
d_Date Von;<br />
d_Date Bis;<br />
d_Time Tagesraster_Anfang;<br />
d_Time Tagesraster_Ende;<br />
d_Time Anfang_erster_Tag;<br />
d_Time Ende_letzer_Tag;<br />
d_String Ort;<br />
d_Short Teilnehmer_max;<br />
}<br />
d_Rel_Set Typ;<br />
d_Rel_List Referent;<br />
d_Rel_List Leiter;<br />
static d_Ref> Veranstaltung;<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 4<br />
4 Lernziel: Das Konzept <strong>der</strong> C++-Sprachanbindung beschreiben können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Welche Voraussetzungen wurden für die C++-Sprachanbindung geschaffen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Für die Sprachanbindung wurden C++-ODL, C++ OML und C++ OQL definiert.<br />
Es müssen eine Klassenbibliothek für die ODMG-Eigenschaften, ein ODL-<br />
Preprozessor und das entsprechende Laufzeitsystem des ODBS zur Verfügung<br />
gestellt werden.<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 5<br />
5 Lernziel: Eine objektorientierte Datenbank-Entwicklung in den Software-Entwicklungsprozeß<br />
einordnen können.<br />
Zeit: 5 Minuten<br />
Aufgabe:<br />
Für ein neues Software-Produkt soll eine objektorientierte Datenbank eingesetzt<br />
werden. Welche Auswirkungen hat dies für die Phasen des Softwareentwicklungsprozeßes?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
In <strong>der</strong> Definitionsphase muß ein OOA-Modell erstellt werden. Dies ist eine perfekte<br />
Grundlage für den folgenden objektorientierten Entwurf (OOD, siehe auch<br />
Kap. 3.10). Die Umsetzung in die OOBD erfolgt dann nach den beschriebenen<br />
Verfahren.<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 6<br />
6 Lernziel: Für gegebene Problemstellungen Anfragen in OQL formulieren können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Gegeben ist ein objektorientiertes Datenbankschema <strong>der</strong> Fallstudie Seminarorganisation.<br />
Als Klassenextensionen sind die Klassennamen im Plural verwendet<br />
worden. Formulieren Sie die folgenden OQL-Anfragen:<br />
a Ausgabe einer Liste von allen Dozenten, die Dipl.-Ing. sind,<br />
b Namenliste aller Firmen und <strong>der</strong>en Umsatz,<br />
c Liste aller Kunden, die im letzten ein Seminar in München besucht haben.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a<br />
select x from x im Dozenten<br />
where x Titel = “Dipl.-Ing.“<br />
b<br />
select struct (Name: x.Name, Umsatz: x.Umsatz)<br />
from x in Firmen<br />
c<br />
select x.gebucht_von.hat_Teilnehmer.Name<br />
from x in y.hat_Teilnehmer<br />
y in z.gebucht_von;<br />
z in Veranstaltungen;<br />
where z.Ort = “München“<br />
Aufgabe<br />
Lösung
LE 26 Aufgabe 7<br />
7 Lernziel: Eine einfache C++-Anwendung mit Datenbankanbindung schreiben<br />
können.<br />
Zeit: 240 Minuten<br />
Aufgabe:<br />
Schreiben Sie ein C++-Programm zur Verwaltung von Dozenten und Seminartypen.<br />
Zu einem Dozenten sollen <strong>der</strong> Name und die Adresse, <strong>zum</strong> Seminartyp<br />
soll <strong>der</strong> Titel und die Dauer persistent gespeichert werden. Ein Dozent kann mehrere<br />
Seminare halten und ein Seminar kann von verschiedenen Dozenten gehalten<br />
werden. Diese Beziehung soll durch eine Funktion aufgebaut werden können<br />
und ist ebenfalls zu speichern. Weiterhin sind Funktionen <strong>zum</strong> einlesen und zur<br />
Anzeige von Dozenten bzw. Seminartypdaten zu speichern. Benutzen Sie zur<br />
Speicherung die vorgestellte C++-Sprachanbindung für objektorientierte Datenbanken.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
Die Lösung dieser Aufgabe finden Sie auf <strong>der</strong> <strong>CD</strong> in den Dateien im Verzeichnis:<br />
\ SWT \ LE26 \ aufgabe7\<br />
Aufgabe<br />
Lösung
LE 27 Aufgabe 1<br />
1 Lernziel: Aufbau, Komponenten und Terminologie <strong>der</strong> Object Management<br />
Architecture erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Erläutern Sie, was im Rahmen <strong>der</strong> Object Management Architecture unter Anwendungsobjekten,<br />
Objektdiensten und Object Request Broker zu verstehen ist.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Anwendungsobjekte entstehen aus Klassen, die <strong>der</strong> Anwen<strong>der</strong> erstellt hat. Die<br />
Klassen müssen in <strong>der</strong> Spezifikationssprache IDL beschrieben werden. Mit Hilfe<br />
eines IDL-Compilers wird aus <strong>der</strong> Spezifikation ein Code-Gerüst für Client- und<br />
Server-Objekte generiert; dabei können für Client- und Server-Objekte unterschiedliche<br />
Programmiersprachen verwendet werden. Die Server-Objekte müssen<br />
in <strong>der</strong> gewünschten Programmiersprache implementiert werden; Client-Objekte<br />
stehen sofort zur Verfügung, da sie nur Dienste an<strong>der</strong>er Server-Objekte in<br />
Anspruch nehmen.<br />
Objektdienste stehen den Anwendungsobjekten zur Verfügung. Man unterscheidet<br />
spezielle und allgemeine Objektdienste. Die speziellen Objektdienste stellen<br />
systemnahe Funktionalität wie das Löschen o<strong>der</strong> Kreieren von Objekten zur Verfügung.<br />
Allgemeine Objektdienste sind eher auf Klassenebene angesiedelt und<br />
stellen z.B. Druckdienste, Listenklassen usw. zur Verfügung.<br />
Der Object Request Broker koordiniert die Kommunikation <strong>der</strong> einzelnen Elemente<br />
untereinan<strong>der</strong> bzw. verschiedener ORBs. Jedes Client-Objekt muß sich<br />
z.B. an den ORB wenden, wenn es die Dienste eines Server-Objekts o<strong>der</strong> sonstige<br />
Objektdienste in Anspruch nehmen will.<br />
Aufgabe<br />
Lösung
LE 27 Aufgabe 2<br />
2 Lernziel: Das OMG-Objektmodell, das Corba-Objektmodell und den Zusammenhang<br />
<strong>zum</strong> ODMG-Objektmodell erläutern können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
a Beschreiben Sie die Basiskonzepte des OMG-Objektmodells.<br />
b Welche Erweiterungen wurden spezifiziert, um aus dem OMG-Objektmodell<br />
das CORBA-Objektmodell hervorgehen zu lassen?<br />
c Welche zusätzlichen Konzepte enthält das ODMG-Objektmodell gegenüber<br />
dem OMG-Kernmodell?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a Das OMG-Objektmodell besteht aus folgenden Basiskonzepten:<br />
n Objekte mit Objektidentitäten (OIDs)<br />
Von Klassen (interface genannt) können Objekte instanziiert werden. Jedes Objekt<br />
ist unabhängig von den Attributwerten anhand einer automatisch verwalteten<br />
OID identifizierbar.<br />
n Typen/Klassen<br />
Das aus OOA bekannte Klassenkonzept mit Kapselung und Typsicherheit. Abstrakte<br />
Klassen können nicht spezifiziert werden.<br />
n Vererbung<br />
Es wird Mehrfachvererbung unterstützt. Dabei müssen Mehrdeutigkeiten manuell<br />
aufgelöst werden.<br />
n Operationen<br />
Operationen können überladen werden. Sie werden – wie in C++ – als Funktionen<br />
aufgefaßt, die einen Wert zurückgeben. Es können Eingabe-, Ausgabe-, und<br />
Ein-/Ausgabeparameter spezifiziert werden.<br />
b Das CORBA-Objektmodll erweitert die in a beschriebenen Konzepte um<br />
n entfernte Operationen<br />
Operationen können als synchron o<strong>der</strong> asynchron spezifiziert werden<br />
n remote Messaging<br />
Zu je<strong>der</strong> Operation kann ein Kontextobjekt definiert werden, in dem Informationen<br />
über den Status des Server-Objekts transferiert werden.<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 2<br />
c Das ODMG-Objektmodell erweitert die in a beschriebenen Konzepte um<br />
n Beziehungen<br />
zwischen Klassen können uni- o<strong>der</strong> bidirektionale Beziehungen <strong>der</strong> Kardinalitäten<br />
1:1, 1:n o<strong>der</strong> n:n spezifiziert werden.<br />
n Persistenz<br />
Objekte erhalten die Fähigkeit, sich in <strong>der</strong> Datenbank zu speichern und wie<strong>der</strong><br />
aus <strong>der</strong> Datenbank zu laden.<br />
n Intelligente Zeiger<br />
Objekte können über Zeiger angesprochen werden, unabhängig davon, wo sie<br />
sich physikalisch befinden (im Hauptspeicher o<strong>der</strong> in <strong>der</strong> Datenbank)<br />
- Transaktionen (geschachtelt)<br />
- Attribute<br />
Zusätzliche Datentypen d_Date, d_Time und d_Interval.<br />
Aufgabe<br />
Lösung
LE 27 Aufgabe 3<br />
3 Lernziel: CORBA einschließlich <strong>der</strong> Komponenten und Anfor<strong>der</strong>ungsvermittlung<br />
beschreiben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
a Beschreiben Sie, wie in einem <strong>der</strong> CORBA-Architektur entsprechenden ORB<br />
ein Client eine Operation eines Server-Objekts aufrufen kann.<br />
b Wie müssen die Client- und Server-Objekte spezifiziert werden, wenn sie in<br />
einer CORBA-Umgebung eingesetzt werden sollen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a Es gibt zwei grundsätzlich verschiedene Möglichkeiten, Operationsaufrufe<br />
durchzuführen:<br />
1 Die Schnittstelle des aufzurufenden Objekts ist zur Übersetzungszeit des<br />
Clients bekannt.<br />
Dann wird <strong>der</strong> Aufruf über den IDL-Stub abgewickelt, <strong>der</strong> im Client-Programm<br />
inkludiert werden muß. Der IDL-Stub wendet sich an den ORB, <strong>der</strong><br />
die Verbindung <strong>zum</strong> Object Adapter <strong>der</strong> Servers herstellt. Von dort aus wird<br />
das Server-Objekt aufgerufen.<br />
2 Die Schnittstelle des Server-Objekts ist erst zur Programmlaufzeit bekannt.<br />
In diesem Fall muß sich das Client-Objekt zunächst an das DII (dynamic<br />
invocation interface) des ORB wenden. Dieser wickelt dann – falls das Server-Objekt<br />
verfügbar ist – den Aufruf wie oben beschrieben ab.<br />
b Die Schnittstelle des Objekts bzw. <strong>der</strong> Klasse muß in <strong>der</strong> deklarativen Sprache<br />
IDL spezifiziert werden.<br />
Aufgabe<br />
Lösung
LE 27 Aufgabe 4<br />
4 Lernziel: OOA-Modelle in IDL-Spezifikationen umsetzen können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Erstellen Sie zu dem in Abb. 3.7-15 dargestellten OOD-Modell eine IDL-Datei.<br />
Als zusätzliche Information steht Ihnen folgende Attributspezifikation zur Verfügung:<br />
Firma<br />
Name<br />
Rechtsform<br />
Umsatz<br />
Klasse Angestellter<br />
Attribut Name<br />
Typ: string (25)<br />
Attribut Vorname<br />
Typ string (25)<br />
Angestellter<br />
Name<br />
Vorname<br />
Alter<br />
Gehaltsstufe<br />
Gehaltsmitteilung<br />
drucken<br />
➜<br />
Aufgabe<br />
Lösung
LE 27 Fortsetzung Aufgabe 4<br />
Attribut Alter<br />
Typ int16<br />
Attribut Gehaltsstufe<br />
Typ: unsigned int16<br />
Voreinstellung: 1<br />
nur lesen<strong>der</strong> Zugriff<br />
Operation Gehaltsmitteilung_drucken()<br />
asynchrone Operation ohne Rückgabeparameter<br />
Klasse Firma<br />
Attribut Name<br />
Typ: string (25)<br />
Attribut Rechtsform<br />
Typ: enum<br />
Selektionsart: einfach<br />
Bereich: AG, GmbH, GbR, KG<br />
Attribut Umsatz<br />
Typ: float<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Die Beziehung kann in IDL nicht dargestellt werden. Sie muß von Hand durch<br />
zusätzliche Attribute realisiert werden. Der IDL-Quellcode sieht folgen<strong>der</strong>maßen<br />
aus:<br />
interface Angestellter<br />
{<br />
attribute string Name;<br />
attribute string Vorname;<br />
attribute short Alter;<br />
readonly attribute short Gehaltsstufe;<br />
oneway void Gehaltsmitteilung_drucken();<br />
};<br />
interface Firma<br />
{<br />
enum RechtsformT<br />
{<br />
AG, GmbH, GbR, KG<br />
};<br />
attribute string Name;<br />
attribute RechtsformT Rechtsform;<br />
attribute float Umsatz;<br />
};<br />
Aufgabe<br />
Lösung
LE 27 Aufgabe 5<br />
5 Lernziel: Objektorientierte Anwendungen im CORBA-Modell verteilt programmieren<br />
können<br />
Zeit: 60 Minuten<br />
Aufgabe:<br />
Implementieren Sie ein Client- und ein Server-Programm für die nachfolgend<br />
dargestellte IDL-Spezifikation <strong>der</strong> Klasse Person.<br />
interface Person<br />
{<br />
attribute string Name;<br />
attribute string Vorname;<br />
attribute short Alter;<br />
void DatenAusgeben();<br />
};<br />
Im Hauptprogramm des Servers soll ein Person-Objekt erzeugt und mit Werten<br />
gefüllt werden. Das Client-Hauptprogramm soll die Attributwerte des Objekts auf<br />
dem Client ausgeben und über die Operation DatenAusgeben() eine Ausgabe<br />
auf dem Server veranlassen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Die vorliegenden Quellcodes wurden mit Orbix 2.01 unter Solaris 2.5 erstellt.<br />
Die Implementierung orientiert sich an dem Orbix beiliegenden Banking-Beispiel.<br />
Der Quellcode befindet sich auch auf <strong>der</strong> <strong>CD</strong>-ROM im Verzeichnis swt/<br />
le27/aufgabe5.<br />
Die Datei server.h:<br />
#ifndef _SERVER_H<br />
#define _SERVER_H<br />
#include “LE27_A5.hh“<br />
//<br />
// Implementierung <strong>der</strong> Klasse Person<br />
//<br />
class PersonS<br />
{<br />
char *N;<br />
char *V;<br />
int A;<br />
public:<br />
PersonS(const char *n, const char *v, const int a)<br />
{ N = strdup(n); V = strdup(v); A = a; }<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 5<br />
Fortsetzung server.h<br />
PersonS()<br />
{ N = V = NULL; A = 0; }<br />
~PersonS();<br />
//<br />
// Operationen in IDL<br />
//<br />
virtual void DatenAusgeben(CORBA::Environment &);<br />
};<br />
int Alter(CORBA::Environment &)<br />
{ return A; }<br />
void Alter(int a, CORBA::Environment &)<br />
{ A = a; }<br />
void Name(const char *n, CORBA::Environment &)<br />
{ if (N) free(N); N = strdup(n); }<br />
char *Name(CORBA::Environment &)<br />
{ return N; }<br />
void Vorname(const char *v, CORBA::Environment &)<br />
{ if (V) free(V); V = strdup(v); }<br />
char *Vorname(CORBA::Environment &)<br />
{ return V; }<br />
DEF_TIE_Person(PersonS)<br />
#endif<br />
➜<br />
Aufgabe<br />
Lösung
Fortsetzung Lösung Aufgabe 5<br />
Die Datei server.cc:<br />
#include <br />
#include <br />
#include “Server.h“<br />
PersonS::~PersonS()<br />
{<br />
if (V)<br />
free(V);<br />
if (N)<br />
free(N);<br />
}<br />
void PersonS::DatenAusgeben(CORBA::Environment &)<br />
{<br />
cout
Fortsetzung Lösung Aufgabe 5<br />
Die Datei client.cc:<br />
#include <br />
#include <br />
#include “LE27_A5.hh“<br />
void fatal (char* s, CORBA::Environment&e=CORBA::default_environment)<br />
{<br />
cout
Fortsetzung Lösung Aufgabe 5<br />
Fortsetzung client.cc<br />
}<br />
Person *p<br />
TRY {<br />
p = Person::_bind („“, host, IT_X);<br />
} CATCHANY {<br />
fatal („Binding failed: „, IT_X);<br />
} ENDTRY<br />
//<br />
// Daten auf dem Server ausgeben<br />
//<br />
p->DatenAusgeben();<br />
//<br />
// Daten auf dem Client ausgeben<br />
//<br />
cout
Fortsetzung Lösung Aufgabe 5<br />
Die Datei srv_main.cc:<br />
#include <br />
#include <br />
#include „Server.h“<br />
int main() {<br />
//<br />
// Create server application object<br />
//<br />
Person* P = new TIE_Person(PersonS) (new PersonS(„Mueller“, „Franz“, 32));<br />
//<br />
// Export the server to the network<br />
//<br />
TRY {<br />
CORBA::Orbix.impl_is_ready(„bank“,IT_X);<br />
}<br />
CATCHANY {<br />
cout
LE 28 Aufgabe 1<br />
1 Lernziele: Notation und Symbolik von Strukturdiagrammen kennen.Eigene<br />
Entwürfe durch Strukturdiagramme dokumentieren können.<br />
Zeit: 120 Minuten<br />
Aufgabe:<br />
Erstellen Sie ein SD-Diagramm für folgende Problemstellung:<br />
Verwaltung eines Adreßbuchs, das in einer Datei gespeichert ist. Eine Adresse<br />
besteht aus Vor- und Zuname, Straße, PLZ und Ort. Sie wird durch den Namen<br />
(= Vor- und Zuname) eindeutig identifiziert.<br />
Es sind folgende Funktionen zu realisieren, die <strong>der</strong> Benutzer mittels Menütechnik<br />
auswählen kann:<br />
– Hinzufügen einer neuen Adresse, die eingetippt wird.<br />
– Än<strong>der</strong>n einer vorhandenen Adresse, wobei die alte Adresse zunächst auf<br />
dem Bildschirm angezeigt wird.<br />
– Löschen einer Adresse, die zunächst auf dem Bildschirm angezeigt wird.<br />
– Ausgabe des Adreß-Verzeichnisses auf dem Drucker.<br />
Tragen Sie alle notwendigen Symbole zur Auswahl und Wie<strong>der</strong>holung ein.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Get<br />
Funktion<br />
Adresse<br />
Funktion<br />
Adresse<br />
Löschen<br />
Get<br />
Name<br />
Get<br />
Adress e<br />
Adresse Name<br />
Adreßbuchverwaltung<br />
Än<strong>der</strong>n Hinzufügen Ausgaben<br />
Name<br />
Adresse<br />
Adresse<br />
Adresse<br />
Bildschirm<br />
Adreßbuch<br />
Adresse<br />
Set<br />
Adress e<br />
Adressen<br />
Adresse<br />
Get Alle<br />
Adress en<br />
Drucker<br />
Adressen<br />
➜<br />
Aufgabe<br />
Lösung
LE 28 Aufgabe 2<br />
2 Lernziel: Die Eigenschaften funktionaler Abstraktionen und funktionaler Module<br />
aufzählen und erläutern können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Sie haben eine Schnittstelle zu einem Programmblock. Die Schnittstelle besitzt<br />
einen Eingabe- und einen Ausgabe-Parameter. Beides sind ganzzahlige Werte.<br />
Durch systematisches Testen haben sie herausgefunden, daß <strong>der</strong> Rückgabewert<br />
die Quersumme des Eingangswertes ist. Haben Sie ein funktionales Modul<br />
vorliegen? Begründen Sie ihre Entscheidung!<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Es handelt sich um einen funktionalen Modul, da er aktiv ist, ein Transformationsverhalten<br />
zeigt und gleiche Eingangswerte <strong>zum</strong> selben Ergebnis führen.<br />
Aufgabe<br />
Lösung
LE 28 Aufgabe 3<br />
3 Lernziel: Ein SA-Modell mit Hilfe <strong>der</strong> Transaktions- und Transformations-<br />
Analyse in einen strukturierten Entwurf transformieren können.<br />
Zeit: 90 Minuten<br />
Aufgabe:<br />
Transformieren Sie das SA-Modell <strong>der</strong> Roboteranimation (Kap. 2.19) in einen<br />
strukturierten Entwurf.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Roboter<br />
steuern<br />
Statusdaten<br />
Read<br />
Statusdaten<br />
Steuerungsbef<br />
ehle<br />
Steuerungssystem<br />
Eingabefenster<br />
Meldungen<br />
Wink el<br />
Warten<br />
Dialog<br />
steuern<br />
Kom mandos<br />
Read<br />
Kommandos<br />
Hinweise<br />
Fenstersystem<br />
Kom mandos<br />
Animation<br />
erzeugen<br />
berechne<br />
Grundstellung<br />
Grundstellung<br />
Grundstellungsdaten<br />
Grundstellungsdaten<br />
Grundstellungsdaten<br />
Schalterdaten<br />
Wink el<br />
Berechne<br />
Beugung<br />
Wink el<br />
Wink el<br />
Oberarmdaten<br />
Wink el<br />
Ellenbogendaten<br />
Wink el<br />
Un terarmdaten<br />
Aufgabe<br />
Lösung
LE 28 Aufgabe 4<br />
4 Lernziel: Die Charakteristika des strukturierten Entwurfs erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Welcher Zusammenhang besteht zwischen:<br />
a Dem strukturierten Entwurf und funktionalen Modulen.<br />
b Dem strukturierten Entwurf und Strukturdiagrammen.<br />
c Strukturdiagrammen und funktionalen Modulen.<br />
d Dem strukturierten Entwurf und SA<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a Funktionale Module sind Bestandteile des strukturierten Entwurfs. Dieser gibt<br />
an, wie die Teile einer Software erstellt werden sollen.<br />
b Die Strukturdiagramme beschreiben die Zusammenhänge im strukturierten<br />
Entwurf.<br />
c Strukturdiagramme fassen funktionale Module zusammen und beschreiben<br />
die Verbindungen zwischen den Modulen.<br />
d SA sollte die Basis des strukturierten Entwurfs sein. In SA wird ein Problem<br />
analysiert. In SD wird die Umsetzung in ein Software-System beschrieben.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 1<br />
1 Lernziel: Die Unterschiede zwischen funktionaler Abstraktion und Datenabstraktion<br />
erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Sie wollen einen Zähler realisieren. Bei jedem Aufruf dieser Funktion soll ein um<br />
Eins inkrementierter Wert zurückgeliefert werden.<br />
Erklären Sie die Unterschiede beim Einsatz von funktionaler Abstraktion und<br />
Datenabstraktion anhand dieses Beispiels.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
In einer funktionalen Abstraktion gibt es keinen internen Speicher eines Moduls,<br />
somit müßte <strong>der</strong> letzte Zählerstand in einer globalen Variablen gespeichert werden.<br />
Dieser könnte von außen manipuliert werden. Bei einer Datenabstraktion<br />
ist <strong>der</strong> aktuelle Zählerstand im Modul gespeichert und nicht sichtbar.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 2<br />
2 Lernziel: Die Unterschiede zwischen abstrakten Datenobjekten und abstrakten<br />
Datentypen darstellen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Ein Kellerspeicher soll durch eine Datenabstaktion beschrieben werden. Der Keller<br />
soll ganze Zahlen o<strong>der</strong> Gleitpunkt-Zahlen verwalten können. Es werden also zwei<br />
Keller benötigt. Sind für die Realisierung abstrakte Datenobjekte o<strong>der</strong> ADTs sinnvoller?<br />
Begründen Sie Ihre Entscheidung.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Ein ADT ist sinnvoller. Die Speicher werden mit Sicherheit mehrfach benutzt.<br />
Außerdem wären sonst mindestens zwei Implementierungen notwendig. Die Realisierung<br />
sollte als ADT mit Typen als formalen Parametern erfolgen.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 3<br />
3 Lernziel: Das Grundprinzip <strong>der</strong> algebraischen Spezifikation schil<strong>der</strong>n können.<br />
Zeit: 8 Minuten<br />
Aufgabe:<br />
Die algebraische Spezifikation besteht aus zwei Teilen. Benennen Sie diese und<br />
beschreiben Sie <strong>der</strong>en Aufgabe.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Syntaxteil:<br />
Spezifikation <strong>der</strong> Zugriffsoperationen.<br />
Semantikteil:<br />
Gleichungen, die die Beziehungen zwischen den einzelnen Zugriffsoperationen<br />
beschreiben.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 4<br />
4 Lernziel: Den Unterschied zwischen top-down- und bottom-up-Entwurf erläutern<br />
können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Womit starten Sie beim<br />
- top-down-Entwurf bzw. beim<br />
- bottom-up-Entwurf.<br />
Welche Schritte folgen jeweils?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Beim top-down-Entwurf wird mit <strong>der</strong> höchsten abstrakten Ebene begonnen und<br />
dann schrittweise verfeinert. Im Gegensatz dazu wird beim bottom-up-Entwurf mit<br />
<strong>der</strong> niedrigsten abstrakten Ebene begonnen. Anschließend werden die höheren<br />
Ebenen entwickelt.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 5<br />
5 Lernziel: Die Beziehungstypen, die beim modularen Entwurf zwischen den<br />
Systemkomponenten bestehen können, aufzählen und unterscheiden können.<br />
Zeit: 8 Minuten<br />
Aufgabe:<br />
Muß eine statische Benutzt-Beziehung vorliegen, wenn eine dynamische Benutzt-<br />
Beziehung gebraucht wird? Begründung! Gibt es an<strong>der</strong>e Voraussetzungen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Eine statische Benutzt-Beziehung ist die Grundlage für eine dynamische. Eine<br />
dynamische Benutzt-Beziehung ist die Durchführung einer statischen Benutzt-<br />
Beziehung während <strong>der</strong> Laufzeit. Voraussetzung für beide Beziehungen ist eine<br />
prinzipielle Benutzbarkeitsbeziehung.<br />
Aufgabe<br />
Lösung
LE 29 Aufgabe 6<br />
6 Lernziel: Die verschiedenen Parametrisierungsmöglichkeiten von abstrakten<br />
Datentypen anhand von Beispielen in C++ zeigen können.<br />
Zeit: 120 Minuten<br />
Aufgabe:<br />
Ein Zähler soll durch einen ADT beschrieben werden. Er besitzt die Operationen:<br />
Ermittle Wert: liest den momentanen Wert aus.<br />
Erhöhe Wert: Erhöht den Zähler um einen anzugebenen Wert.<br />
Liefert einen booleschen Wert zurück <strong>der</strong> angibt, ob das Erhöhen<br />
durchgeführt werden konnte<br />
Zurücksetzen: Setzt den Zähler auf Null zurück.<br />
Implementieren Sie das Modul in C++, mit folgenden Randbedingungen:<br />
a Nur ganze Zahlen, Bereich 0 bis 100.<br />
b Ganze Zahlen, die Obergrenze wird beim Erzeugen angegeben.<br />
c Ganze Zahlen o<strong>der</strong> Gleitkomma-Zahlen, Obergrenze wird angegeben.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Nur ganze Zahlen, Bereich 0 bis 100<br />
class ZaehlerA {<br />
private:<br />
int Wert,Max;<br />
public:<br />
Zaehler ();<br />
~Zaehler ();<br />
};<br />
boolean Ruecksetzen ();<br />
boolean ErhoeheWert (Typ Wert);<br />
int Lesewert ();<br />
Zaehler::Zaehler ()<br />
{<br />
Wert = 0;<br />
Max = 100;<br />
}<br />
➜<br />
Aufgabe<br />
Lösung
Zaehler::~Zaehler ()<br />
{<br />
}<br />
boolean Zaehler::Ruecksetzen ()<br />
{<br />
Wert = 0;<br />
return true;<br />
}<br />
boolean Zaehler::ErhoeheWert (int Plus)<br />
{<br />
Wert += Plus;<br />
if (Wert
Ganze Zahlen, die Obergrenze wird beim Erzeugen angegeben.<br />
class ZaehlerA {<br />
private:<br />
int Wert,Max;<br />
public:<br />
Zaehler (int obergrenze=100);<br />
~Zaehler ();<br />
};<br />
boolean Ruecksetzen ();<br />
boolean ErhoeheWert (Typ Wert);<br />
int LeseWert ();<br />
Zaehler::Zaehler (int obergrenze)<br />
{<br />
Wert = 0;<br />
Max = obergrenze;<br />
}<br />
Zaehler::~Zaehler ()<br />
{<br />
}<br />
➜<br />
Aufgabe<br />
Lösung
oolean Zaehler::Ruecksetzen ()<br />
{<br />
Wert = 0;<br />
return true;<br />
}<br />
boolean Zaehler::ErhoeheWert (int Plus)<br />
{<br />
Wert += Plus;<br />
if (Wert
c Ganze Zahlen o<strong>der</strong> Gleitkomma-Zahlen, Obergrenze wird angegeben.<br />
Realisierung durch Templates<br />
template <br />
class Zaehler {<br />
private:<br />
Typ Wert,max;<br />
public:<br />
Zaehler (Typ Maximum);<br />
~Zaehler ();<br />
boolean Ruecksetzen ();<br />
boolean ErhoeheWert (Typ Wert);<br />
Typ LeseWert ();<br />
};<br />
template <br />
Zaehler::Zaehler (Typ obergrenze)<br />
{<br />
Wert = 0;<br />
Max = obergrenze;<br />
}<br />
template <br />
Zaehler::~Zaehler ()<br />
{<br />
} ➜<br />
Aufgabe<br />
Lösung
template <br />
boolean Zaehler::Ruecksetzen ()<br />
{<br />
Wert = (Typ) 0;<br />
return true;<br />
}<br />
template <br />
boolean Zaehler::ErhoeheWert (Typ Plus)<br />
{<br />
Wert += Plus;<br />
if (Wert
LE 30 Aufgabe 1<br />
1 Lernziel: Aufgaben und Architekturen von Klassenbibliotheken und frameworks<br />
erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Welche Konzeptionellen Randbedingungen müssen beachtet werden, um von<br />
einem OOA-Modell ausgehend einen objektorientierten Entwurf durchzuführen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Folgende Randbedingungen müssen beachtet werden:<br />
n Welches Vererbungskonzept hat die Programmiersprache?<br />
n Können Elemente wie<strong>der</strong>verwendet werden?<br />
n Welche Zielarchitektur liegt vor?<br />
n Können Muster verwendet werden?<br />
Aufgabe<br />
Lösung
LE 30 Aufgabe 2<br />
2 Lernziel: Aufgaben und Architekturen von Klassenbibliotheken und<br />
frameworks erklären können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Benennen und erklären Sie die wesentlichen Klassenbibliotheksstrukturen.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
1 Baum:<br />
Eine Wurzel-Klasse von <strong>der</strong> alle an<strong>der</strong>en Klassen erben.<br />
2 Wald:<br />
Mehrere, untereinan<strong>der</strong> unabhängige Bäume, die einzeln verwendet werden<br />
können.<br />
3 Bausteine:<br />
Die Klassen <strong>der</strong> Bibliothek sind unabhängig und können parametrisiert werden.<br />
Aufgabe<br />
Lösung
LE 30 Aufgabe 3<br />
3 Lernziel: Die Ansätze für eine komponentenbasierte Softwareentwicklung<br />
und Halbfabrikate skizzieren können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Beschreiben Sie kurz die Grundidee des OCX-Modells. Für welche Halbfabrikate<br />
ist dieses Konzept beson<strong>der</strong>s geeignet?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Die Grundidee von OCX ist die Verwendung von Programmbausteinen in verschiedenen<br />
Anwendungen. Durch das Verfahren von OLE2 können Programmbausteine<br />
in an<strong>der</strong>en Anwendungen eingebunden werden.<br />
Der Hauptanwendungsbereich ist bisher Bürokommunikation.<br />
Aufgabe<br />
Lösung
LE 30 Aufgabe 4<br />
4 Lernziel: Beschreibungs- und Klassifikationsschemata für Entwurfsmuster<br />
angeben und erklären können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Sie haben ein Entwurfsmuster gefunden. Wie müssen Sie es beschreiben? Welche<br />
möglichenKlassifikationen gibt es? Charakterisieren Sie diese.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Beschreibung eines Musters:<br />
Als erstes sollte das Muster benannt werden. Dann folgt eine Problembeschreibung,<br />
in <strong>der</strong> beschrieben wird, wann das Muster eingesetzt werden kann.<br />
In <strong>der</strong> Lösungsbeschreibung wird angegeben wie das beschriebene Problem<br />
realisiert werden kann. Abschließend müssen die Konsequenzen, die durch den<br />
Einsatz des Musters entstehen, beschrieben werden.<br />
Eine Klassifikation erfolgt nach dem Zweck und dem Anwendungsbereich des<br />
Musters.<br />
Aufgabe<br />
Lösung
LE 30 Aufgabe 5<br />
5 Lernziel: Das beschriebene Entwurfsmuster »abstract factory« auf geeignete<br />
Problemstellungen anwenden können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Sie wollen in Ihrem System Drucker direkt ansteuern. Sie wollen einen Nadel- und<br />
einen Laserdrucker verwenden. Dies soll global voreinstellbar sein. Für beide<br />
Drucker wollen Sie dieselbe Schnittstelle haben.<br />
Es werden eine Funktion <strong>zum</strong> Drucken eines Textes und eine Funktion, die den<br />
Status des Druckers abfragt, benötigt. Skizzieren Sie ein OOD-Modell, das dieses<br />
Problem löst. Setzen Sie bei Ihrer Lösung Entwurfsmuster ein.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Standard Factory<br />
Erzeuge Drucker<br />
Erzeuge Grafiktreiber<br />
...<br />
Treiber Factory<br />
Erzeuge Drucker<br />
Erzeuge Grafiktreiber<br />
...<br />
Standard Factory<br />
Erzeuge Drucker<br />
Erzeuge Grafiktreiber<br />
Drucker<br />
DruckeText<br />
LeseStatus<br />
Laser Drucker Nadel Drucker<br />
DruckeText<br />
LeseStatus<br />
DruckeText<br />
LeseStatus<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 1<br />
1 Lernziel: Erklären können, wie eine objektorientierte Anwendung an ein relationales<br />
Datenbanksystem angebunden wird einschließlich <strong>der</strong> dazu notwendigen<br />
Transformationsregeln.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, auf welche verschiedenen Arten sich folgende Konzepte <strong>der</strong><br />
objektorientierten Software-Entwicklung auf relationale Datenbanken abbilden<br />
lassen.<br />
a Klassen<br />
b Einfachvererbung<br />
c Aggregation/Assoziation<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
a Klassen werden auf Tabellen abgebildet, wobei die Attribute die Spalten bilden.<br />
Falls aus fachlicher Sicht kein Schlüsselattribut identifiziert werden konnte, muß<br />
eine zusätzliche Spalte für eine Objekt-Identifikation (OID) eingeführt werden.<br />
Attribute mit komplexen Typen lassen sich auf zwei Arten behandeln:<br />
n Das OOD-Modell wird solange normiert, bis <strong>der</strong> gewünschte Grad erreicht ist.<br />
n Strukturierte Datentypen werden in ihre elementaren Elemente zerlegt, wobei<br />
auf eindeutige Spaltennamen zu achten ist.<br />
Listen-Typen werden pro Liste in eine eigene Tabelle abgelegt.<br />
b Liegt eine Einfachvererbung vor, hat man drei Alternativen, die Vererbung auf<br />
eine relationale Datenbank abzubilden:<br />
n Die Oberklasse und die Unterklassen werden auf je eine Tabelle abgebildet.<br />
In den Tabellen <strong>der</strong> Unterklassen taucht das Schlüsselattribut <strong>der</strong> Oberklasse<br />
als Fremdschlüssel auf.<br />
n Die Oberklasse wird komplett in jede Unterklasse kopiert.<br />
n Alle Unterklassen und die Oberklasse werden zu einer großen Tabelle zusammengefaßt.<br />
c Aggregationen und Assoziationen werden gleich behandelt. Je nach <strong>der</strong><br />
Kardinalität <strong>der</strong> Beziehung gibt es folgende Alternativen:<br />
n 1:1-Beziehung: In einer <strong>der</strong> beiden Tabellen wird ein Fremdschlüssel (z.B. die<br />
OID) hinzugefügt.<br />
n 1:m-Beziehung: Der Fremdschlüssel wird auf <strong>der</strong> m-Seite <strong>der</strong> Beziehung<br />
hinzugefügt.<br />
n n:m-Beziehung: Es wird eine zusätzliche Tabelle eingeführt, die je ein<br />
Schlüsselattribut aus je<strong>der</strong> Klasse als Fremdschlüssel enthält.<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 2<br />
2 Lernziel: Erläutern können, wie ein OOD-Modell auf C++ abgebildet wird<br />
(Implementierungsentwurf).<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Beschreiben Sie, wie ein OOD-Modell in die Programmiersprache C++ umgesetzt<br />
werden kann. Welche Regeln sind beim Übergang nach C++ zu beachten?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
Wenn schon während <strong>der</strong> Erstellung des OOD-Modells einige Punkte beachtet<br />
werden, kann ein Teil des C++-Codes generativ erzeugt werden.<br />
Zu beachten ist<br />
n die Einhaltung <strong>der</strong> C++-Konventionen bei Bezeichnungen und Datentypen<br />
(int, float usw.)<br />
n Festlegung <strong>der</strong> Zugriffsrechte auf Attribute und Operationen<br />
n C++-Konventionen bei <strong>der</strong> Spezifikation von Operationen und Parameterlisten.<br />
Wenn möglich hier schon C++-spezifische Eigenschaften wie inline,<br />
virtual o<strong>der</strong> const mit angeben.<br />
Dann lassen sich die Klassendeklarationen (Hea<strong>der</strong>-Dateien) inklusive <strong>der</strong> impliziten<br />
Zugriffsoperationen mit den meisten CASE-Werkzeugen generieren.<br />
Folgende Schritte sind dann in <strong>der</strong> Regel manuell durchzuführen:<br />
n Entwurf <strong>der</strong> Beziehungen mit Hilfe von Container-Klassen (Abbildung auf<br />
Attribute).<br />
n Entwurf diverser Verwaltungsoperationen, z.B. Konstruktoren und<br />
Destruktoren für jede Klasse.<br />
n Zusätzlich Spezifikationen wie z.B. Objektlebenszyklen in kodierbare Algorithmen<br />
umwandeln.<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 3<br />
3 Lernziel: Die Unterschiede zwischen dem modularen und objektorientierten<br />
Entwurf darstellen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Im folgenden sind einige Eigenschaften des modularen Entwurfs genannt. Stellen<br />
Sie diesen Eigenschaften die entsprechenden Konzepte des objektorientierten<br />
Entwurfs gegenüber und erläutern Sie die objektorientierten Konzepte.<br />
Modularer Entwurf:<br />
n Funktionale Abstraktion<br />
n Abstrake Datenobjekte<br />
n Abstrakter Datentyp<br />
n Generischer abstrakter Datentyp<br />
n Baumstruktur durch Enthaltenseins-Beziehung<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
Funktionale Abstraktion bleibt erhalten, wird jedoch auf Operationen innerhalb<br />
von Klassen beschränkt. Es sollte so wenig globale Funktionen (in C++ möglich)<br />
wie nötig geben. Im Idealfall ist das eine globale Funktion (main).<br />
Den abstrakten Datenobjekten stehen die Objekte gegenüber, Instanzen von Klassen.<br />
Wesentlicher Unterschied ist das Vorhandensein des Polymorphismus (späte<br />
Bindung).<br />
Anstelle des abstrakten Datentyps tritt die Klasse. Hier ist zusätzlich Vererbung<br />
erlaubt, was den Polymorphismus erst sinnvoll macht. Die parametrisierte Klasse<br />
ersetzt den generischen abstrakten Datentyp. Bei einer parametrisierten Klasse<br />
sind ein o<strong>der</strong> mehrere in <strong>der</strong> Klasse benutzte Datentypen durch Platzhalter<br />
ersetzt. Erst wenn die Platzhalter durch einen konkreten Typ ersetzt werden, wird<br />
eine Klasse instanziiert, von <strong>der</strong> dann Objekte erzeugt werden können. Auf diese<br />
Weise können mit einem Quellcode z.B. Container-Klassen für unterschiedlichste<br />
Datentypen realisiert werden.<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 4<br />
4 Lernziel. Ein OOA-Modell entsprechend dem beschriebenen Verfahren an<br />
eine GUI- Klassenbibliothek anbinden können.<br />
Zeit: 45 Minuten<br />
Aufgabe:<br />
Betrachten Sie das OOA-Modell einer kleinen Anwendung in Abb. 3.10-41.<br />
Die Attribute sind wie folgt spezifiziert (nicht aufgeführte Attribute sind vom Typ<br />
string):<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Student<br />
Fach<br />
Matrikel-Nr<br />
0,n<br />
0,n<br />
Vorlesung<br />
Titel<br />
Raum-Nr<br />
Thema<br />
Klasse Person<br />
Attribut Name<br />
Typ: NameT<br />
Attribut Geburtsdatum<br />
Typ: date<br />
Attribut Adresse<br />
Typ: AdresseT<br />
Klasse Student<br />
Attribut MatrikelNr.<br />
Typ: unsigned int32<br />
Klasse Vorlesung<br />
Attribut RaumNr.<br />
Typ: unsigned int16<br />
➜<br />
Aufgabe<br />
Lösung
Spezifikationen des selbstdefinierten Typs NameT<br />
NameT = Anrede + Vorname + Nachname<br />
Attribut Anrede<br />
Typ: enum1<br />
Bereich: Herr, Frau<br />
Spezifikation des selbstdefinierten Typs AdresseT<br />
AdresseT = Strasse + Ort + PLZ<br />
Attribut PLZ<br />
Typ: unsigned Int32<br />
a Erweitern Sie das OOA-Modell um die Klassen und Beziehungen, die zur Ansteuerung<br />
einer Benutzungsoberfläche benötigt werden.<br />
b Erstellen Sie ein Interaktionsdiagramm für die Operation Lese_alle_EA_Fel<strong>der</strong><br />
() <strong>der</strong> Klasse Vorlesung Fenster. In den Eingabefel<strong>der</strong>n sollen für dieses Szenario<br />
folgende Werte stehen:<br />
Titel = “Grundlagen <strong>der</strong> Informatik”, RaumNr = 138, Thema = “längerer Text”.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
a Erweitertes Modell:<br />
AdresseT<br />
Strasse<br />
Ort<br />
PLZ<br />
1<br />
1<br />
Person<br />
Geburtsdatum<br />
Student<br />
Fach<br />
Matrikelnummer<br />
StudentFenster<br />
RadioHerr: RadioButton<br />
RadioFrau: RadioButton<br />
EA_FeldVN: Datenfeld<br />
EA_FeldNN: Datenfeld<br />
EA_FeldGD: Datenfeld<br />
EA_FeldSt: Datenfeld<br />
EA_FeldOrt: Datenfeld<br />
EA_FeldPLZ: Datenfeld<br />
Setze_alle_EA_Fel<strong>der</strong><br />
Lese_alle_EA__Fel<strong>der</strong><br />
Verbinde_mit_FK_Klasse<br />
1<br />
0,n<br />
1<br />
NameT<br />
Anrede<br />
Vorname<br />
Nachname<br />
Vorlesung<br />
Titel<br />
Raum-<br />
0,n<br />
nummer<br />
Thema<br />
1 1<br />
VorlesungFenster<br />
EA_FeldTitel: Datenfeld<br />
EA_FeldRaum: Datenfeld<br />
EA_FeldThema: Multifeld<br />
Setze_alle_EA-Fel<strong>der</strong><br />
Lese_alle_EA-Fel<strong>der</strong><br />
Verbinde_mit_FK-Klasse<br />
➜<br />
Aufgabe<br />
Lösung
Interaktionsdiagramm:<br />
VorlesungsFenster EA_FeldTitel EA_FeldRaum EA_FeldThema Vorlesung<br />
GetText()<br />
"Grundlagen <strong>der</strong> Informatik"<br />
SetTitel ("Grundlagen <strong>der</strong> Informatik")<br />
GetText()<br />
"138"<br />
konvertiere ("138")<br />
SetRaumNr (138)<br />
GetText()<br />
"längerer Text"<br />
SetThema ("längerer Text")<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 5<br />
5 Lernziel. Ein OOA-Modell so zu einem OOD-Modell erweitern können, daß<br />
ein objektorientiertes Datenbanksystem angebunden werden kann.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Erweitern Sie das in Abb. 3.10-42 dargestellte OOA-Modell zu einem OOD-Modell<br />
unter Berücksichtigung <strong>der</strong> Verbindung zu einer objektorientierten Datenbank<br />
nach dem ODMG-Standard. Alle Attribute haben einen einfachen, nicht strukturierten<br />
Typ. Nur a5 <strong>der</strong> Klasse B sei vom strukturierten Typ AdresseT.<br />
a1<br />
a2<br />
a2(K)<br />
A B<br />
a4<br />
a5<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Es muß eine gemeinsame Oberklasse d_Object eingeführt werden, die<br />
Persistenzfähigkeit bereitstellt. Das Klassenattribut a3 <strong>der</strong> Klasse A wird in eine<br />
eigene Klasse ausgelagert, da <strong>der</strong> ODMG-Standard keine Klassenattribute kennt.<br />
Es muß dann im Programm sichergestellt werden, daß von dieser Hilfsklasse<br />
immer nur ein Objekt existiert.<br />
A<br />
a1<br />
a2<br />
d_Object<br />
Ak<br />
a3<br />
{1 Objekt}<br />
B<br />
a4<br />
AdresseT<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 6<br />
6 Lernziel. Eine objektorientierte Anwendung an ein relationales Datenbanksystem<br />
anbinden können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
In Abb. 3.10-43 sind zwei OOA-Modelle abgebildet. Transformieren Sie diese<br />
Modelle jeweils in ein relationales Datenbankschema.<br />
a b<br />
A<br />
D<br />
a1<br />
a2<br />
0,n<br />
0,n<br />
a5<br />
a6<br />
B<br />
a3<br />
C<br />
a4<br />
B<br />
a2<br />
a3<br />
a1<br />
A<br />
C<br />
a4<br />
a5<br />
a6<br />
D<br />
a7<br />
a8<br />
1<br />
1<br />
E<br />
a9<br />
a10<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Hier ist es aus zwei Gründen sinnvoll, die gesamte Vererbungshierarchie in<br />
eine einzige Tabelle zu überführen: Die Klassen B und C haben nur wenige zusätzliche<br />
Attribute, und die Beziehung zwischen A und D läßt sich auf diese Weise<br />
mit dem geringsten Aufwand realisieren.<br />
Für die Beziehung zwischen A und D wird eine eigene Tabelle benötigt. Insgesamt<br />
ergibt sich folgendes Datenbankschema:<br />
ABC OID a1 a2 a3 a4<br />
D OID a5 a6 A_D ABC-OID D-OID<br />
➜<br />
Aufgabe<br />
Lösung
Das Attribut aus Klasse A wird in alle Unterklassen übernommen, da die Klasse<br />
sehr klein ist und keine Beziehungen zu dieser Klasse gehen. Außerdem ist A<br />
abstrakt.<br />
Die Assoziation zwischen den Klassen D und E wird über einen Fremdschlüssel<br />
bei E realisiert.<br />
Es ergibt sich folgendes Datenbankschema:<br />
B OID a1 a2 a3 C OID a1 a4 a5 a6<br />
D OID a1 a7 a8 E OID D-OID a9<br />
a10<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 7<br />
7 Lernziel. Eine objektorientierte Datenverwaltung entwerfen können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Erweitern Sie die in Abb. 3.10-44 dargestellte Klasse Person zu einem OOD-<br />
Modell, das die Speicherung <strong>der</strong> Personobjekte in einer sequentiellen Datei erlaubt.<br />
Dazu steht Ihnen als Satztyp die parametrisierte Klasse SeqDatei zur Verfügung.<br />
Berücksichtigen Sie, daß die Attribute Name und Adresse <strong>der</strong> Klasse<br />
Person durch strukturierte Typen dargestellt werden.<br />
Person<br />
Name: NameT<br />
Adresse: AdresseT<br />
Geburtsdatum<br />
SeqDatei<br />
AktPos<br />
Name<br />
Satz speichern<br />
Satz lesen<br />
Satz aktualisieren<br />
Dateianfang<br />
Nächster Satz<br />
Datei öffnen<br />
Datei schließen<br />
NameT AdresseT<br />
Anrede<br />
Name<br />
Vorname<br />
Straße<br />
Ort<br />
PLZ<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 7<br />
Aus SeqDatei wird eine Klasse abgeleitet, die mit dem Typ Person parametrisiert<br />
ist. Die Klasse Person hat eine unidirektionale Beziehung zu dieser Klasse. Außerdem<br />
muß Person, NameT und AdresseT um die Operation speichern und einlesen<br />
erweitert werden:<br />
SeqDatei<br />
AktPos<br />
Name<br />
Satz speichern<br />
Satz lesen<br />
Satz akualisieren<br />
Dateianfang<br />
Nächster Satz<br />
Datei öffnen<br />
Datei schlließen<br />
<br />
PersonDatei<br />
Person<br />
Geburtsdatum<br />
speichern<br />
einlesen<br />
1<br />
1<br />
1<br />
1<br />
1<br />
NameT<br />
Anrede<br />
Vorname<br />
Name<br />
speichern<br />
einlesen<br />
AdresseT<br />
Straße<br />
Ort<br />
PLZ<br />
speichern<br />
einlesen<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 8<br />
8 Lernziel: Eine objektorientierte Anwendung auf Clients und Server verteilen<br />
können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Erstellen Sie aus dem OOA-Modell in Abb. 3.10-45 ein Client- und ein Server-<br />
OOD-Modell für eine verteilte Anwendung. Auf eine Objektverwaltung soll in diesem<br />
Modell verzichtet werden.<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Serienbrieftext (K)<br />
Student<br />
Fach<br />
Matrikel-Nr<br />
0,n<br />
0,n<br />
Vorlesung<br />
Titel<br />
Raum-Nr<br />
Thema<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 8<br />
Auf die Client-Seite ist eine Klasse Anwendung zu ergänzen, die create-Operationen<br />
für die Klassen Student und Vorlesung enthalten. Von <strong>der</strong> Klasse Anwendung<br />
darf nur ein Objekt existieren, das zu Beginn <strong>der</strong> Anwendung auf dem Server<br />
erzeugt wird.<br />
Da die Klasse Person mit Serienbrieftext ein Klassenattribut hat, ist eine Hilfsklasse<br />
zur Realisierung dieses Klassenattributs notwendig.<br />
Client-OOD-Modell:<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Student<br />
Fach<br />
Matr.Nr.<br />
1<br />
1<br />
0,n<br />
0,n<br />
PersonK<br />
Serienbrieftext<br />
Vorlesung<br />
Titel<br />
RaumNr.<br />
Thema<br />
1<br />
Anwendung<br />
CreateStudent<br />
CreateVorlesung<br />
{ein Objekt} {ein Objekt}<br />
➜<br />
Aufgabe<br />
Lösung
Server-OOD-Modell:<br />
Die Klasse Anwendung taucht im OOD-Modell des Servers nicht auf, da die Operationen<br />
nur auf <strong>der</strong> Client-Seite aufgerufen werden. Ansonsten ist das OOD-<br />
Modell auf <strong>der</strong> Server-Seite in diesem Fall identisch mit dem Client-Modell.<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Student<br />
Fach<br />
Matr.Nr.<br />
1<br />
0,n<br />
0,n<br />
PersonK<br />
Serienbrieftext<br />
{Ein Objekt}<br />
Vorlesung<br />
Titel<br />
RaumNr.<br />
Thema<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 9<br />
9 Lernziel: Ein OOD-Modell optimieren können.<br />
Zeit: 20 Minuten<br />
Aufgabe:<br />
Betrachten Sie das OOA-Modell aus Aufgabe 4 (Abb. 3.10-41). Dieses Modell<br />
soll in ein optimiertes OOD-Modell überführt werden. Beachten Sie dabei folgende<br />
Aspekte:<br />
n Die Klasse PersonBib aus einer Klassenbibliothek soll wie<strong>der</strong>verwendet werden<br />
(Abb. 3.10-46).<br />
n Für die Aufgabenstellung ist es irrelevant zu wissen, welche Studenten eine<br />
bestimmte Vorlesung besuchen.<br />
n Die Klassenstruktur muß um eine Klasse zur Objektverwaltung (ListenServer)<br />
ergänzt werden.<br />
n Die strukturierten Typen sind durch eigene Klassen darzustellen.<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Student<br />
Fach<br />
Matrikel-Nr<br />
0,n<br />
0,n<br />
Vorlesung<br />
Titel<br />
Raum-Nr<br />
Thema<br />
PersonBib<br />
Anrede<br />
Name<br />
Vorname<br />
Adresse: AdresseT<br />
Geburtsdatum<br />
Staatsangehörigkeit<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 9<br />
PersonBib realisiert den strukturierten Typ NameT in Form einzelner Attribute.<br />
Außerdem ist ein zusätzliches Attribut vorhanden, das nicht benötigt wird.<br />
Im Gegensatz zu PersonBib ist Person abstrakt. Dies sollte geän<strong>der</strong>t werden,<br />
damit das Muster »abstrakte Oberklasse – konkrete Unterklasse« identifiziert<br />
werden kann.<br />
Muß man nicht wissen, welche Studenten eine bestimmte Vorlesung besuchen,<br />
kann die Beziehung zwischen Student und Vorlesung unidirektional ausgeführt<br />
werden.<br />
Die Klasse Listen Server ist eine Protokollklasse und damit Basisklasse aller<br />
Fachkonzeptklassen. In den Fachkonzeptklassen müssen einige Operationen von<br />
Listen Server überschrieben werden.<br />
Der strukturierte Typ NameT wird nicht mehr benötigt. AdresseT koppelt man über<br />
eine unidrektionale Aggregation an PersonBib.<br />
Es ergibt sich damit folgendes OOD-Modell:<br />
➜<br />
Aufgabe<br />
Lösung
AdresseT<br />
Straße<br />
Ort<br />
PLZ<br />
1<br />
PersonBib<br />
Anrede<br />
Name<br />
Vorname<br />
Geburtsdatum<br />
Staatangehörigkeit<br />
Einfügen<br />
Entfernen<br />
Student<br />
Fach<br />
Matr.Nr.<br />
Einfügen<br />
Entfernen<br />
0,n<br />
0,n<br />
ListenServer<br />
Einfügen<br />
Entfernen<br />
Vorlesung<br />
Titel<br />
Raum-Nr.<br />
Thema<br />
Einfügen<br />
Entfernen<br />
Aufgabe<br />
Lösung
LE 31 Aufgabe 10<br />
10 Lernziel: Ein OOD-Modell auf C++ abbilden können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Schreiben Sie die C++-Spezifikation <strong>der</strong> Klassen Student und Vorlesung aus dem<br />
OOA-Modell in Abb. 3.10-41 (Aufgabe 4). Berücksichtigen Sie die in Aufgabe 9<br />
gemachten Optimierungen. Zur Realisierung <strong>der</strong> Beziehungen steht Ihnen eine<br />
Template-Klasse Container zur Verfügung. Außerdem kann die Klasse String<br />
benutzt werden.<br />
Person<br />
Name<br />
Geburtsdatum<br />
Adresse<br />
Student<br />
Fach<br />
Matrikel-Nr<br />
0,n<br />
0,n<br />
Vorlesung<br />
Titel<br />
Raum-Nr<br />
Thema<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 10<br />
class Student: public PersonBib<br />
{<br />
protected:<br />
String Fach<br />
long NatrikelNr.<br />
public:<br />
Container Vorlesungen;<br />
void Einfuegen();<br />
void Entfernen();<br />
Student();<br />
~Student();<br />
void AddVorlesung (const Vorlesung & v);<br />
void RemoveVorlesung (const Vorlesung & v);<br />
};<br />
class Vorlesung: public ListenServer<br />
{<br />
protected:<br />
String Titel;<br />
long RaumNr;<br />
String Thema;<br />
public:<br />
void Einfuegen();<br />
void Entfernen();<br />
};<br />
Die Beziehung wird mit <strong>der</strong> Container-Klasse realisiert, die mit Vorlesung &<br />
parametrisiert wird (Referenz auf Vorlesung). Dazu sind zwei Verwaltungsoperationen<br />
notwendig. Bei <strong>der</strong> Klasse Vorlesung taucht die Beziehung nicht auf,<br />
da sie unidirektional ist.<br />
Aufgabe<br />
Lösung
LE 32 Aufgabe 1<br />
1 Lernziel: Beispiele für typische Programmierfehler angeben und auf ihre<br />
Ursachen zurückführen können.<br />
Zeit: 3 Minuten<br />
Aufgabe:<br />
Durch selbstkontrolliertes Programmieren können Programmierfehler reduziert<br />
werden. Worauf beruht diese Technik? Was kann ein Programmierer aktiv tun,<br />
um die Reduzierung von Programmierfehlern zu erreichen?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
Selbstkontrolliertes Programmieren beruht auf <strong>der</strong> Erfahrung eines Programmiers.<br />
Einmal gemachte Fehler sollten in einem Fehlerbuch festgehalten werden. Ideal<br />
wäre eine Verteilung <strong>der</strong> Fehlerbücher auf alle Entwicker, die im gleichen Bereich<br />
arbeiten.<br />
Aufgabe<br />
Lösung
LE 32 Aufgabe 2<br />
2 Lernziel: Die behandelten Aspekte zur Psychologie des Programmierens aufzählen<br />
und erklären können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Gegeben seinen folgende fehlerhafte Codefragmente in C / C++. Entscheiden<br />
Sie für jeden Fall, ob es sich um typische Programmierfehler handelt und wo ihre<br />
Ursachen liegen.<br />
a switch(Kommando) {<br />
case 1: OperationA();<br />
case 2: OperationB();<br />
case 3: OperationC();<br />
}<br />
b if ( Anfang == Ende) {<br />
TueDiesundDas();<br />
Differenz == 0;<br />
}<br />
else<br />
Differenz = Ende - Anfang;<br />
c int Vektor[4];<br />
Vektor[1] = 8;<br />
Vektor[2] = 10 + Vektor[1];<br />
Vektor[3] = Vektor[1];<br />
Vektor[4] = 13;<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
a<br />
Es handelt sich um einen typischen Programmierfehler in C/C++. In 97% aller<br />
Fälle ist das standardmäßige Durchfallen bei case-Anweisungen unangebracht.<br />
Ist das Kommando 1, werden versehentlich alle Opertionen (A-C) ausgeführt.<br />
Mann vergißt leicht das Schlüsselwort ‘break’, um das Durchfallen zu verhin<strong>der</strong>n.<br />
Richtig wäre:<br />
switch (Kommando)<br />
{<br />
case 1: OperationA(); break;<br />
case 2: OperationB(); break;<br />
case 3: OperationC(); break;<br />
}<br />
➜<br />
Aufgabe<br />
Lösung
Auch hier handelt es sich um einen typischen Programmierfehler. In C / C++<br />
unterscheidet man zwischen einem Vergleichoperator (‘==’) und dem Zuweisungsoperator<br />
(‘=’). Der syntaktische Unterschied ist <strong>der</strong>art gering, daß sowohl durch<br />
Unaufmerksamkeit als auch durch Tippfehler solche Fehler entstehen können.<br />
Hinzu kommt, daß meistens beide Varianten syntaktisch erlaubt sind und beim<br />
Übersetzen keinen Fehler nach sich ziehen.<br />
Korrekt wäre:<br />
if(Anfang == Ende)<br />
{<br />
TueDiesundDas();<br />
Differenz = 0;<br />
}<br />
else<br />
Differenz = Ende - Anfang;<br />
➜<br />
Aufgabe<br />
Lösung
c<br />
Wie in a und b handelt es sich auch hier um einen in C/C++ häufig gemachten<br />
Fehler. Alle Feldtypen sind Null-basiert, das heißt, ein Feld <strong>der</strong> Länge 4 erhält<br />
einen gültigen Index von 0 bis einschließlich 3.<br />
Also wäre folgen<strong>der</strong> Code fehlerfrei:<br />
int Vektor[4];<br />
Vektor[0] = 8;<br />
Vektor[1] = 10 + Vektor[0];<br />
Vektor[2] = Vektor[0];<br />
Vektor[3] = 13;<br />
Aufgabe<br />
Lösung
LE 32 Aufgabe 3<br />
3 Lernziel: Ein gegebenes Programm daraufhin überprüfen können, ob die<br />
vorgestellten Implementierungsprinzipien eingehalten wurden. Die vorgestellten<br />
Implementierungsprinzipien bei <strong>der</strong> Erstellung eines Programms berücksichtigen<br />
können.<br />
Zeit: Minuten<br />
Aufgabe:<br />
Gegeben sei folgendes Programm zur Zinseszinsberechnung:<br />
void Zinseszins()<br />
{<br />
float K0, Kn, p;<br />
int n;<br />
cin >> K0;<br />
cin >> n;<br />
cin >> p;<br />
Kn = K0 * (1 + p/100) ^ n;<br />
cout
Lösung Aufgabe 3<br />
a<br />
Es wurde gegen das Prinzip <strong>der</strong> Verbalisierung verstoßen:<br />
- Die Prozedur enthält keine Kommentare wie z.B. “// Einlesen <strong>der</strong> Eingabedaten.“<br />
- Die Variablen haben keine aussagekräftigen Namen wie z.B. K0 (besser<br />
wäre Grundkapital).<br />
Es wurde gegen das Prinzip <strong>der</strong> integrierten Dokumentation verstoßen:<br />
- Die Prozedur enthält keine Verwaltungsinformation. Es fehlt z.B. eine Beschreibung,<br />
was die Prozedur Zinseszins überhaupt macht.<br />
Es wurde fälschlich angenommen, daß in <strong>der</strong> Programmiersprache C++ das<br />
Potenzieren über den ^-Operator möglich ist.<br />
Dem ist aber nicht so. Der ^-Operator dient in C++ als „exklusives o<strong>der</strong>“.<br />
➜<br />
Aufgabe<br />
Lösung
void Zinseszins()<br />
{<br />
// Eingabedaten<br />
float Grundkapital<br />
float Prozentsatz;<br />
int Jahre;<br />
// Ausgabedaten<br />
float Endkapital;<br />
// Einlesen <strong>der</strong> Eingangsgroessen<br />
cin >> Grundkapital;<br />
cin >> Jahre;<br />
// Berechnungsformel Zinseszins<br />
Endkapital=pow(Grundkapital*(1+Prozentsatz/100), Jahre);<br />
// Ausgabe des Enkapitals<br />
cout
LE 32 Aufgabe 4<br />
4 Lernziel: Die Methode <strong>der</strong> schrittweisen Verfeinerung bei <strong>der</strong> Erstellung eines<br />
Programms anwenden können und die beschriebenen Regeln und Richtlinien bei<br />
<strong>der</strong> Erstellung von Programmen beachten können.<br />
Zeit: 240 Minuten<br />
Aufgabe:<br />
Entwickeln sie ein Programm zur Lösung von linearen Gleichungssystemen n-ter<br />
Ordnung in <strong>der</strong> Programmiersprache C++. Verwenden Sie die Methode <strong>der</strong><br />
Schrittweisen Verfeinerung sowohl bei <strong>der</strong> Erstellung <strong>der</strong> benötigten Datenstrukturen<br />
(C++ Klassen) als auch bei <strong>der</strong> Entwicklung <strong>der</strong> anzuwendenden Algorithmen.<br />
Beachten Sie weiterhin die in dieser Lehreinheit beschriebenen Regeln und<br />
Richtlinien <strong>zum</strong> Erstellen von Programmen.<br />
Hinweis:<br />
Nach <strong>der</strong> Cramer-Regel hat das Gleichungssystem Matix(A) * Vektor (x) = Vektor (b) mit <strong>der</strong><br />
invertierbaren Matrix A = ( Vektor(a 1 ), Vektor(a 2 ), ..., Vektor(a n ) ) die Lösung<br />
x i = 1 / det A * det ( Vektor(a 1 ), ..., Vector(a i-1 ), Vektor(b), a i+1 , ..., Vektor(a n ) )<br />
Eine Determinante D läßt sich nach det D = Σ n<br />
i=1 (-1)( i+j) a i,j * det D i,j (1
Lösung Aufgabe 4<br />
Die Lösung dieser Aufgabe finden Sie auf <strong>der</strong> <strong>CD</strong> in <strong>der</strong> Datei:<br />
\ SWT \ LE32 \ aufgabe4.cpp<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 1<br />
1 Lernziel: Die in <strong>der</strong> Abnahme- & Einführungsphase zu erledigenden Aufgaben<br />
sowie die entstehenden Dokumente erklären können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Das Software-System Seminarorganisation ist fertiggestellt. Es soll nun <strong>der</strong> Firma<br />
Teachware übergeben werden. Was müssen Sie während <strong>der</strong> Abnahme- und<br />
Einführungsphase tun?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 1<br />
1 Die Seminarorganisation und die Dokumentation werden übergeben.<br />
2 Das Programm wird getestet.<br />
3 Dokumentation von 1 + 2 im Abnahmeprotokoll.<br />
4 Abnahmebestätigung durch Teachware.<br />
5 Installation <strong>der</strong> Seminarorganisation auf den Rechnern <strong>der</strong> Sachbearbeiter.<br />
6 Schulung <strong>der</strong> Sachbearbeiter. Dieser Punkt kann parallel zu den vorherigen<br />
durchgeführt werden.<br />
7 Inbetriebnahme. Zusammen mit den Sachbearbeitern wird die Seminarorganisation<br />
gestartet und die ersten Daten werden eingegeben.<br />
8 Protokoll <strong>der</strong> Punkte 5 - 7 erstellen.<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 2<br />
2 Lernziel: Alternative Konzepte für die Materialabnahme nehmen und ihre<br />
Vor- und Nachteile erläutern können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Für die Inbetriebnahme von Softwareprodukten existieren drei Verfahren. Welche<br />
sind das? Beschreiben Sie für jedes Verfahren die Randbedingungen, unter denen<br />
das jeweilige Verfahren eingesetzt wird.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 2<br />
1 Direkte Umstellung: Das alte System darf nicht mehr arbeiten während <strong>der</strong><br />
Umstellung, d.h. eine Ausfallzeit muß unkritisch sein.<br />
2 Parallellauf: Beide Systeme müssen gleichzeitig in Betrieb sein und bedient<br />
werden können. Dies verursacht hohe Kosten.<br />
3 Versuchslauf: Ebenfalls ein erhöhter Personalaufwand. Alle Ergebnisse müssen<br />
ausgewertet sein, o<strong>der</strong> das Produkt muß sich unterteilen lassen für die<br />
sukzessive Einführung.<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 3<br />
3 Lernziel: Die in <strong>der</strong> Wartungs- & Pflegephase durchzuführenden Aufgaben in<br />
Kategorien glie<strong>der</strong>n und beschreiben sowie ihren Aufwand angeben können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Ein Software-System wurde eingeführt. Während <strong>der</strong> Wartungs- und Pflegephase<br />
gibt es folgende Anfor<strong>der</strong>ungen an den Software-Entwickler:<br />
a Die Antwortzeiten bei Anfragen sind zu lang, sie sollen verkürzt werden.<br />
b Eine neue Funktion wird gewünscht.<br />
c Das System wurde für Windows 3.11 entwickelt und soll nun für Windows 95<br />
angepaßt werden.<br />
d Ein Fehler tritt wie<strong>der</strong>holt in <strong>der</strong> Software auf.<br />
Benennen Sie die entsprechenden Aktivitäten anhand <strong>der</strong> Kategorien von Kriterien<br />
nach Sneed.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 3<br />
a Optimierung/Leistungsverbesserung<br />
b Erweiterung<br />
c Anpassung/Än<strong>der</strong>ung<br />
d Stabilisierung/Korrektur<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 4<br />
4 Lernziel: Die aufgeführten »Daumenregeln« kennen und die sich daraus<br />
ergehenden Konsequenzen darstellen können.<br />
Zeit: 10 Minuten<br />
Aufgabe:<br />
Warum ist es sinnvoll, schon während des Software-Entwicklungsprozesses einen<br />
hohen Aufwand in die Qualitätssicherung zu stecken? Begründen Sie Ihre<br />
Antwort mit Hilfe <strong>der</strong> »Daumenregeln«.<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 4<br />
Durch eine gute Qualitätssicherung verringern sich die Fehler im Endprodukt.<br />
Bedenkt man zusätzlich, daß die 4- bis 10-fache Zeit benötigt wird, um einen<br />
Fehler erst nach <strong>der</strong> Inbetriebnahme zu finden, wird <strong>der</strong> Wert <strong>der</strong> Qualitätssicherung<br />
deutlich.<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 5<br />
5 Lernziel: Beschreiben können, durch welche Maßnahmen die Wartung und<br />
die Pflege verbessert werden können.<br />
Zeit: 15 Minuten<br />
Aufgabe:<br />
Um den Kostenaufwand <strong>der</strong> Wartung und Pflege zu verbessern, möchte ein Unternehmen<br />
diesen Teil umstrukturieren. Bisher wurde die Software in Teams erstellt.<br />
Diese übernahmen nach <strong>der</strong> Abnahme gleichzeitig auch die Wartung und<br />
Pflege. Welche Maßnahmen können getroffen werden?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 5<br />
Mögliche Maßnahmen:<br />
n Verbesserung des Entwicklungsprozesses, frühzeitiges Erkennen von Fehlern<br />
erspart hohe Wartungskosten.<br />
n Trennung von Wartung und Pflege.<br />
n Pflege als Entwicklungsprozeß.<br />
n Alte Produkte prüfen – Sanierung o<strong>der</strong> neue Entwicklung.<br />
n Gutes Konfigurations- bzw. Än<strong>der</strong>ungsmanagement.<br />
n Trennung <strong>der</strong> Wartung von <strong>der</strong> Entwicklung prüfen.<br />
Aufgabe<br />
Lösung
LE 33 Aufgabe 6<br />
6 Lernziel: Wartung und Pflege unterscheiden und ihre jeweiligen Charakteristika<br />
nennen können.<br />
Zeit: 8 Minuten<br />
Aufgabe:<br />
In einem Softwareprodukt treten folgende Anfor<strong>der</strong>ungen auf:<br />
a Um die Software den neuesten Standards anzupassen, sollen Symbolleisten<br />
eingeführt werden.<br />
b Die Benutzungsschnittstelle ist in einem Teilbereich unterschiedlich vom Rest<br />
<strong>der</strong> Software. Diese soll nun angepaßt werden.<br />
c In einer Teilfunktion treten Fehler auf, diese sollen korrigiert werden.<br />
d Ein halbes Jahr nach Inbetriebnahme soll das Programm um shortcuts – <strong>zum</strong><br />
schnelleren Aufruf von Funktionen – ergänzt werden.<br />
Welche Tätigkeiten gehören zur Wartung, welche zur Pflege?<br />
Aufgabe<br />
Lösung
Lösung Aufgabe 6<br />
a Pflege – Erweiterung in allen Teilbereichen<br />
b Wartung – Abweichung in Teilprodukten<br />
c Wartung - Fehlerhaftes Produkt<br />
d Pflege – Erweiterung des Produkts<br />
Aufgabe<br />
Lösung
Einführung und Überblick (LE 1)<br />
LE 1<br />
Einführung<br />
& Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
1 Die Planungsphase (LE 2 - LE 3)<br />
LE 2 LE 3<br />
Einführung Function-<br />
& Überblick Point<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
2 Die Definitionsphase (LE 4 - LE 22)<br />
LE 4 LE 5 LE 6 LE 7<br />
Einführung & Funktions- ER–Modell Klassen -<br />
Überblick baum, DD... Diagramm<br />
LE 8 LE 9 LE 10 LE 11<br />
Kontroll- Regeln Zustands- Petri-Netze<br />
strukturen automaten<br />
LE 12 LE 13 LE 14 LE 15<br />
OOA – OOA – SA SA/RT<br />
Konzepte Methodik<br />
LE 16 LE 17 LE 18 LE 19<br />
Arbeitsplatz- Dialog- Dialog- E/A -<br />
gestaltung gestaltung 1 Gestaltung 2 Gestaltung 1<br />
LE 20 LE 21 LE 22<br />
E/A - Benutzer- Benutzer-Unter-<br />
Gestaltung 2 Handbücher stützungsystem<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
3 Die Entwurfsphase (LE 23 - LE 31)<br />
LE 23 LE 24 LE 25 LE 26<br />
Einführung & Datenbanken Relationale Objektorientierte<br />
Überblick Einführung Datenbanken Datenbanken<br />
LE 27 LE 28 LE 29 LE 30<br />
Verteilte OO- SD MD OOD<br />
Anwendungen Grundlagen<br />
LE 31<br />
OOD<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
4 Implementierungsphase (LE 32)<br />
LE 32<br />
Einführung &<br />
Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
5 Abnahme- & Einführungsphase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
6 Wartungs- & Pflegephase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 1 Einführung und Überblick<br />
Einführung in die Software-Technik<br />
Fit am Computer<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 2 Lastenheft und Schätzmethoden<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 3 Die Function Point-Methode<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 4 Die Definitionsphase –<br />
Einführung und Überblick<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 5 Basiskonzepte (Teil 1)<br />
Engage V 1.11 D<br />
Innovator 5.0<br />
EasyCASE (C++, Java)<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 6 Basiskonzepte (Teil 2)<br />
Engage V 1.11 D<br />
Innovator 5.0<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 7 Basiskonzepte (Teil 3)<br />
Engage V 1.11 D<br />
Innovator 5.0<br />
Object Domain (V 1.18)<br />
ObjectiF (V 2.0)<br />
Oracle CASE-Tools<br />
Paradigm Plus V 3.0<br />
Rational Rose/C++ 3.0<br />
Together C++ (V 1.2)<br />
Object-Lab light<br />
Unified Notation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 8 Basiskonzepte (Teil 4)<br />
Zusätzliche Werkzeuge<br />
EasyCASE (C++, Java)<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 9 Basiskonzepte (Teil 5)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 10 Basiskonzepte (Teil 6)<br />
Innovator 5.0<br />
Object Domain<br />
ObjectiF<br />
Paradigm Plus<br />
Rational Rose/C++<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 11 Basiskonzepte (Teil 7)<br />
Engage<br />
Petri-Netz-Editor/Meta Design<br />
Win-Petri<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 12 OOA-Konzepte<br />
Object Domain<br />
ObjectiF<br />
Together C++<br />
Unified Notation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 13 OOA-Methodik<br />
Innovator 5.0<br />
Object Domain<br />
ObjectiF<br />
Oracle CASE-Tools<br />
Ratonal Rose/C++<br />
Together C++<br />
Fallstudie Hiwiverwaltung<br />
Fallstudie Seminarorganisation<br />
Fallstudie Roboteranimation<br />
Unified Notation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 14 SA<br />
Innovator 5.0<br />
Einführung in SA<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 15 SA/RT<br />
Innovator 5.0<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 16 Software-Ergonomie (Arbeitsplatzebene)<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 17 Software-Ergonomie (Dialoggestaltung 1)<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
NoWait<br />
Sphinx/Win<br />
ZApp Developer's Suite<br />
JFactory<br />
WX Windows<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 18 Software-Ergonomie (Dialoggestaltung 2)<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
NoWait<br />
sphinx/Win<br />
ZApp Developer's Suite<br />
JFactory<br />
WX Windows<br />
Artikel <strong>zum</strong> JANUS/JADE-System<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 19 Software-Ergonomie (E/A-Gestaltung 1)<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
NoWait<br />
sphinx/Win<br />
ZApp Developer's Suite<br />
JFactory<br />
WX Windows<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 20 Software-Ergonomie (E/A-Gestaltung 2)<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
Nowait<br />
sphinx/Win<br />
ZApp Developer's Suite<br />
JFactory<br />
WX Windows<br />
Fallstudie Hiwiverwaltung<br />
Fallstudie Seminarorganisation<br />
Einführung in die Farbgestaltung<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 21 Benutzer-Handbücher<br />
DOC++<br />
SoftDoc C/C++<br />
Fallstudie Seminarorganisation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 22 Benutzer-Unterstützungssysteme<br />
Fallstudie Seminarorganisation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 23 Die Entwurfsphase –<br />
Einführung und Überblick<br />
ILOG VIews /Broker /DB LInk<br />
ISA-Dialogmanager<br />
NoWait<br />
sphinx/Win<br />
ZApp Developer's Suite<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 24 Datenbanken<br />
ObjectStore<br />
Personal Oracle<br />
Poet 4.0<br />
DBFactory<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 25 Relationale Datenbanken<br />
Personal Oracle<br />
DBFactory<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 26 Objektorientierte Datenbanken<br />
ObjectStore<br />
Poet 4.0<br />
DBFactory<br />
Fallstudie Seminarorganisation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 27 Verteilte objektorientierte Anwendungen<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 28 SD<br />
Innovator<br />
case/4/0<br />
Fallstudie Seminarorganisation<br />
Fallstudie Roboteranimation<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 29 MD<br />
Innovator 5.0<br />
case/4/0<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 30 OOD (Grundlagen)<br />
Innovator 5.0<br />
Object Domain<br />
ObjectiF<br />
Oracle CASE-Tools<br />
Paradigm Plus<br />
Together/C++<br />
ZApp Developer's Suite<br />
Generic C++<br />
Standard Template Library (STL)<br />
V<br />
WX Windows<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 31 OOD<br />
(Architektur- & Implementierungsentwurf)<br />
JFactory<br />
Standard Template Library (STL)<br />
V<br />
WX Windows<br />
ENFIN Smalltalk<br />
GNU C++-Compiler DJGPP<br />
Java Development Kit<br />
Oberon<br />
Small Eiffel<br />
Visual Works<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 32 Die Implementierungsphase<br />
Allegro CL für Windows<br />
ENFIN Smalltalk<br />
GNU C++-Compiler DJGPP<br />
Java Development Kit<br />
Oberon<br />
Small Eiffel<br />
Visual Works<br />
DOC++<br />
Soft Doc C/C++<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 33 Die Abnahme- & Einführungsphase<br />
Die Wartungs- & Pflegephase<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
Einführungen (Vollversionen)<br />
Einführung in die Software-Technik<br />
Multimediale Einführung in die Software-Technik<br />
Dauer: 15 Minuten<br />
Fit am Computer<br />
Gymnastikprogramm zur Lockerung <strong>der</strong> Muskeln nach dem Sitzen am Computer<br />
Dauer: bis man wie<strong>der</strong> fit ist<br />
Einführung in die Farbgestaltung<br />
Multimediale Einführung in die ergonomische Verwendung von Farben in Softwaresystemen.<br />
Dauer: 10 Minuten<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführungen<br />
Hersteller/Distributor<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität<br />
D – 44780 Bochum<br />
Preis<br />
nach Absprache<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführungen<br />
Installation<br />
Die Programme können direkt von <strong>der</strong> <strong>CD</strong>-ROM gestartet werden.<br />
Klicken Sie auf<br />
n swt\einf_swt.exe (Einführung in die Software-Technik)<br />
n swt\pc_fit.exe (Fit am Computer)<br />
n swt\farben.exe (Einführung in die Farbgestaltung)<br />
(Durch Klick auf die jeweilige Seite gelangt man mit Zeitverzögerung auf die<br />
nächste Seite.)<br />
um das jeweilige Programm zu starten.<br />
Hinweis<br />
Für die »Einführung in die Software-Technik« sowie »Fit am Computer« sind<br />
Soundkarte und Lautsprecher erfor<strong>der</strong>lich.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Zusätzliche Werkzeuge<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befinden sich einige zusätzliche Werkzeuge <strong>zum</strong> Betrachten<br />
o<strong>der</strong> Bearbeiten bestimmter Dateiformate. Dies sind im einzelnen:<br />
n Wordviewer für Texte im Microsoft Word Format (Freeware)<br />
n Excelviewer für Excel-Tabellen (Freeware)<br />
n PowerPointviewer für Power Point Präsentationen (Freeware)<br />
n WinZip <strong>zum</strong> Entpacken von zip-Dateien (Shareware)<br />
n Internet Explorer <strong>zum</strong> Betrachten von HTML-Dateien<br />
n Win32s 32 Bit-Erweiterung für Windows 3.x<br />
Alle Programme benötigen Windows 95 o<strong>der</strong> Win32s.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Zusätzliche Werkzeuge<br />
Hersteller/Distributor<br />
Microsoft GmbH<br />
Edisonstr. 1<br />
85716 Unterschleißheim<br />
http://www.microsoft.de<br />
(für Wordviewer, Excelviewer, PowerPointviewer und Internet-Explorer)<br />
Preis<br />
kostenlos<br />
WinZip<br />
Klein + Stekl GmbH<br />
Hensteigstr. 41<br />
70180 Stuttgart<br />
Tel.: 0711/9672-0<br />
Fax.: 0711/9672-130<br />
winzip@klst.com<br />
http://www.klst.com/winzip.html<br />
Preis<br />
109 DM inklusive Handbuch<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Zusätzliche Werkzeuge<br />
Installation<br />
Um das entsprechende Programm auf Ihren Rechner einzurichten, starten Sie<br />
einfach die jeweilige Datei:<br />
n Excelviewer<br />
n Wordviewer<br />
n PowerPointviewer<br />
n Winzip<br />
n Internet-Explorer<br />
n Win32s<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Engage V 1.11 D (Begrenzte Vollversion)<br />
Kurzbeschreibung<br />
Bibliotheksunterstütztes Zeichenprogramm unter Windows zur Erstellung von Diagrammen<br />
aus <strong>der</strong> <strong>Softwaretechnik</strong><br />
n Umfangreiche Zeichenfunktionen<br />
n Flexibel durch Bibliothekskonzept<br />
n Vielseitige Linienfunktionalität<br />
n Export zu an<strong>der</strong>en Programmen über Datei o<strong>der</strong> Zwischenablage im Windows<br />
Metafile Format (WMF)<br />
n Zeichnungsgröße bis zu 24 DIN A4 Seiten<br />
n Bearbeitungs-Funktionen (wie Kopieren, Duplizieren, ...)<br />
n Rotieren, Spiegeln, Skalieren und Bewegen<br />
n Verschiedene Linienarten und Linienendungen in allen Strichstärken und Farben<br />
n Selbstdefinierbare Farben<br />
n Funktionen <strong>zum</strong> Ausrichten und Anordnen von Objekten<br />
n Gruppierungen<br />
n Gitterraster<br />
n Fangverbindungen<br />
n verschiedene Ansichten (25% - 400%)<br />
Mitgelieferte Bibliotheken: (können beliebig angepaßt werden)<br />
n Objektorientierte Diagramme<br />
o Coad/Yourdon<br />
o Booch<br />
o Rumbaugh<br />
n Information Modeling/ ERD<br />
n Strukturierte Analyse nach DeMarco<br />
n Geschäftsprozesse<br />
n Datenflußdiagramme<br />
n Programmablaufpläne<br />
n Petri-Netze<br />
n Netzwerke<br />
n Fluidtechnik<br />
n Elektrotechnik<br />
n Nachrichtentechnik<br />
n Digitaltechnik<br />
n Verfahrenstechnik<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Engage (V 1.11 D)<br />
Distributor und Hersteller<br />
Scherf Engelbert Windau Softwareentwicklung<br />
Marc Engelbert<br />
Pfalzstraße 79<br />
59192 Bergkamen<br />
Preis<br />
79,- DM inkl. MWST pro Exemplar<br />
Enthalten sind jeweils ein Benutzerhandbuch und zehn vorgefertigte Bibliotheken<br />
aus verschiedenen Themengebieten (<strong>Softwaretechnik</strong>, Symbole, ...).<br />
Die Lieferung enthält eine Rechnung. Legen Sie bitte <strong>der</strong> Bestellung einen<br />
Verrechnungscheck bei!<br />
Hinweis<br />
Engage V 1.0 wurde im Rahmen einer Diplomarbeit bei Prof. Dr. Heide Balzert,<br />
Fachhochschule Dortmund, entwickelt<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Engage (V 1.11 D)<br />
Voraussetzungen<br />
n IBM kompatibler Rechner<br />
n Windows 3.1, 3.11 o<strong>der</strong> Windows 95<br />
n 386er mit 33 MHz<br />
n 4 MB RAM<br />
n 4 MB freie Festplattenkapazität<br />
n Maus<br />
n VGA Graphikkarte, 800*600 ist von Vorteil<br />
n 256 Farb-Treiber ist von Vorteil<br />
Start<br />
Doppelklick auf engage.exe<br />
Bedienungshinweis<br />
Die mitgelieferten Zeichenbibliotheken können unter dem Menütitel<br />
»Bibliothek«, Menüoption »Verwaltung/Öffnen« geladen werden.<br />
Sie befinden sich im Verzeichnis L:\definit\engage\*.lib.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Innovator 5.0 (Begrenzte Vollversion)<br />
Der INNOVATOR ® ist ein modular aufgebautes CASE-Tool. Dem Anwen<strong>der</strong> stehen<br />
verschiedene sogenannte Workbenches zur Verfügung, welche die folgenden<br />
Bereiche unterstützen:<br />
n Funktionsmodellierung durch Strukturierte Analyse<br />
n Echtzeitmodellierung<br />
n Datenmodellierung durch strukturierte Entity-Relationship-Modelle<br />
n Objektmodellierung nach OMT mit Unterstützung von C++, Object COBOL,<br />
Smalltalk<br />
n Reverse-Engineering für C, C++, Fortran, Pascal, Smalltalk<br />
n Code-Generierung für C, C++, Fortran, COBOL, PASCAL<br />
Der INNOVATOR ® zeichnet sich durch die folgenden Vorteile aus:<br />
n Hardwareunabhängigkeit und somit die Möglichkeit des Einsatzes sowohl im<br />
homogenen als auch heterogenen Netz<br />
n Multiuserfähigkeit und Integration eines ausgefeilten Benutzerkonzeptes<br />
n Performantes und sicheres Datenhaltungssystem (Online-Repository), welches<br />
jedem Benutzer die jeweils aktuellen Daten zur Verfügung stellt<br />
n Integration von Standardmethoden für die Funktionssicht und Datensicht<br />
n Vertikale und horizontale Methodenintegration<br />
n Qualitätssicherung durch intelligente Verifikationsmechanismen<br />
n Voll automatisierte Dokumentationsgenerierung auf Knopfdruck<br />
n Deutsche und englische Benutzerführung<br />
n Verfügbarkeit einer objektorientierten Workbench (OMT)<br />
n Hoher Investitionsschutz für den Anwen<strong>der</strong> durch Unabhängigkeit vom Betriebssystem<br />
und Offenlegung des Datenmodells.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Innovator 5.0<br />
Hersteller/Distributor<br />
MID GmbH<br />
Nürnberger Hauptstr. 141<br />
90451 Nürnberg<br />
Tel.: 09 11/9 68 36-0<br />
Fax:: 09 11/9 68 36-10<br />
e-mail: mid@mid.de<br />
Sollten bei <strong>der</strong> Installation o<strong>der</strong> <strong>der</strong> Handhabung Probleme auftreten, wenden Sie<br />
sich bitte an den Support.<br />
Support<br />
Tel.: 09 11/9 68 36-22<br />
e-mail: support@mid.de<br />
(Von Mo-Do 9.00-17.00 Uhr und Freitag von 9.00-14.00 Uhr)<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Innovator 5.0<br />
Der Innovator muß zunächst auf die lokale Festplatte installiert werden. Klicken<br />
Sie dazu auf inoinst.exe.<br />
Weitere Installationsanweisungen und die Installationscodes entnehmen Sie<br />
bitte <strong>der</strong> Datei install.wri für die Innovator-Administration (gültig bis 30.6.1997).<br />
Weitere Informationen und ein Tutorial zu Innovator finden Sie in einer Vorabversion<br />
<strong>der</strong> Datei liesmich.pdf.<br />
Hinweis<br />
Nach <strong>der</strong> Installation:<br />
1 Lizenzserver starten (Doppelklick auf InoLsrv-Symbol)<br />
2 Lizenzadministrator aufrufen (Doppelklick auf InoAdm-Symbol)<br />
3 Lizenzen mit Menüpunkt »Bearbeiten/Lizenz« eingeben<br />
– Seriennummer: 11000000<br />
– Admin-Kennwort: frei wählen (aber merken)<br />
– Die einzelnen Kennwörter entnehmen Sie <strong>der</strong> Notiz auf dieser Seite<br />
4 Mit Administration beenden sollten die Module freigeschaltet sein<br />
5 Den Repository-Server starten (Doppelklick auf InoSrv-Symbol)<br />
– Wählen Sie zu Testzwecken das Repository demo.ir aus.<br />
6 Auf die einzelnen Innovatoranwendungen können Sie durch Doppelklick auf<br />
das Symbol InoTree zugreifen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object Domain (V 1.18) (Shareware)<br />
Object Domain ist ein Werkzeug zur Unterstützung <strong>der</strong> objektorientierten Analyse<br />
und des objektorientierten Entwurfs.<br />
Es unterstützt die Booch-Methode, wie in dem Buch »Objektorientierte Analyse und<br />
Design mit Anwendungen«, 2. Auflage, beschrieben, und die OMT-Methode.<br />
Aus Klassen- und Moduldiagrammen kann C++-Code generiert werden; umgekehrt<br />
kann C++-Code geparst und in eine grafische Darstellung umgewandelt werden.<br />
Die Code-Generierung kann über eine integrierte Skriptsprache beeinflußt werden.<br />
Bei dem Programm handelt es sich um Shareware. Die auf <strong>der</strong> <strong>CD</strong>-ROM vorhandene<br />
Version unterliegt keinen Beschränkungen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object Domain (V 1.18)<br />
Hersteller/Distributor<br />
Dirk Vermeersch<br />
1397 Ridgewood Drive<br />
San Jose CA 95118<br />
USA<br />
dirkv@netcom.com<br />
http://www.he.net/∼dirkv<br />
Preis<br />
99 $<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object Domain (V 1.18)<br />
Installation<br />
Starten Sie das Programm install.exe. Nach erfolgreicher Installation haben Sie<br />
die Möglichkeit, die README-Datei dieses Programms anzeigen zu lassen.<br />
Das Programm belegt etwa 3 MByte Festplattenplatz.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectiF (V 2.0) (Begrenzte Vollversion)<br />
Diese integrierte Softwareentwicklungsumgebung unterstützt alle Schritte von <strong>der</strong><br />
objektorientierten Analyse bis zur Programmierung in C++. Es besitzt ein multi-userfähiges<br />
ODBMS. Folgende Werkzeuge werden u.a. bereitgestellt:<br />
n grafische Spezifikationen von Klassen, Klassenstrukturen, Botschaften<br />
n Modellierung von Objektlebenszyklen<br />
n Code-Generator (Hea<strong>der</strong>-Dateien und Teile <strong>der</strong> Implementations-Dateien)<br />
n Software-Metriken zur Qualitätssicherung<br />
n Publishing-Komponente zur Erstellung von Handbüchern, Pflichtenheften etc.<br />
ObjectiF ist für die Bearbeitung von Projekten im LAN konzipiert.<br />
Die <strong>CD</strong>-ROM enthält eine Kennenlernversion mit vermin<strong>der</strong>tem Umfang.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectiF (V 2.0)<br />
Hersteller/Distributor<br />
micro TOOL GmbH<br />
Voltastraße 5<br />
D-13355 Berlin<br />
Tel: (++49)30 467 08 6 -0<br />
Fax: (++49)30 464 47 -14<br />
Hotline: (++49)30 467 08 6 -20<br />
-63<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectiF (V 2.0)<br />
Installation<br />
Die Installation von ObjectiF erfolgt nach Starten von setup.exe automatisch.<br />
Es wird automatisch eine Programmgruppe angelegt, in <strong>der</strong> sich neben objectiF auch<br />
Programme befinden, die weitere Informationen zu ObjectiF und microTool bieten.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oracle Designer/Developer (Info, Demo)<br />
Es liegen folgende Präsentationen auf <strong>der</strong> <strong>CD</strong>-ROM:<br />
1 Präsentation einer CBT-Einheit (Computer Based Training)<br />
Es werden interaktiv die Möglichkeiten einer CBT-Einheit vermittelt<br />
2 Präsentation <strong>der</strong> Oracle Workgroup 200 (Entwicklungswerkzeuge)<br />
Vorstellung <strong>der</strong> einzelnen CASE- und 4GL-Werkzeuge<br />
3 Präsentation von Oracle Designer/2000<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oracle Designer/Developer<br />
Hersteller/Distributor<br />
Oracle Deutschland GmbH<br />
Hauptverwaltung München<br />
Hanauer Str. 87<br />
80993 München<br />
Tel. 0180/5358595<br />
Für die CBT-Einheit:<br />
Oracle Deutschland<br />
Schulungszentrum<br />
Kastenbauerstr. 2<br />
81677 München<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oracle Designer/Developer<br />
Installation<br />
Die Präsentationen müssen nicht installiert werden; sie können direkt von <strong>der</strong> <strong>CD</strong> aus<br />
gestartet werden.<br />
CBT-Präsentation: start.exe<br />
Oracle Workgroup/2000: develope.exe<br />
Oracle Designer/2000: designer.exe<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Paradigm Plus (V 3.0) (Begrenzte Vollversion)<br />
Werkzeug für die objektorientierte Definitions- und Entwurfsphase.<br />
Paradigm Plus unterstützt alle gängigen OO-Methoden und bietet unternehmensweite<br />
Dienste in <strong>der</strong> Anwendung objektorientierter Technologien auf <strong>der</strong> Grundlage<br />
eines integrierten aktiven Object Repository.<br />
Unterstützte Methoden<br />
n Rumbaugh OMT (Stand 1995)<br />
n Booch<br />
n Fusion<br />
n Martin/Odell OOIE<br />
n Coad/Yourdon OOA/OOD<br />
n Shlaer/Mellor<br />
Alle Methoden in Release 3.0 wurden um die Unterstützung von Use Case<br />
Diagrammen nach Jacobson (OOSE) erweitert. Ebenso verfügen alle Methoden<br />
über ein Projekt-Verwaltungsmodell sowie über ein Architekturmodell (das in <strong>der</strong><br />
Methode Booch durch das methodeneigene Module Diagram ersetzt wird).<br />
Plattformen:<br />
PC – Windows 3.1x (mit Win32S), Windows 95, Windows NT 3.5x, OS/23.0<br />
Sun – SunOS ab 4.1.3, Solaris ab 2.4<br />
HP 9000/700,800 – HP-UX ab 9.02<br />
IBM RS6000 – AIX ab 4.0<br />
SGI – IRIX ab 5.1<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Paradigm Plus<br />
Hersteller<br />
Platinum Technology Inc. (vormals Protosoft)<br />
Distributor<br />
Computec Software GmbH<br />
Hirschstraße 71<br />
76133 Karlsruhe<br />
Tel: 49-721-981600-0<br />
Fax: -129<br />
email: support@ctec-sw.com<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Paradigm Plus<br />
Paradigm Plus muß zunächst auf die lokale Festplatte installiert werden.<br />
Klicken Sie dazu auf setup.exe.<br />
Weitere Installationsanweisungen entnehmen Sie bitte <strong>der</strong> Datei install.wri.<br />
Hinweis<br />
Die <strong>CD</strong>-ROM enthält die Version für Windows 95, die mit einem Code freigeschaltet<br />
werden muß. Dieser Code ist schriftlich (Post/Fax) beim Distributor<br />
Computec zu erhalten. Ein Vordruck befindet sich in <strong>der</strong> Datei<br />
Achtung<br />
Die Freischaltung dieses Werkzeuges kostet entsprechend den Lizenzvereinbarungen<br />
500,– DM!<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Rational Rose/C++ (V 3.0) (Begrenzte Vollversion)<br />
Rational Rose/C++ ist ein grafisches Software-Engineering-Werkzeug; es unterstützt<br />
die Entwicklung objektorientierter Anwendungen im Team durch alle Phasen <strong>der</strong><br />
Entwicklung (Definition, Entwurf, Implementierung).<br />
Eigenschaften:<br />
n Unterstützt die Methoden nach Booch und Rumbaugh.<br />
n Je<strong>der</strong> Entwickler verfügt über einen privaten Arbeitsbereich mit exklusiver<br />
Kontrolle.<br />
n Generierung von C++-Quellcode.<br />
n Reverse-Engineering von vorhandenen C++-Quellen.<br />
Die begrenzte Version von Rational Rose/C++ ist voll funktionsfähig. Modelle mit<br />
mehr als 30 Klassen, 30 Modulen, 10 Zustandsautomaten o<strong>der</strong> 3 Subsystemen können<br />
jedoch nicht gespeichert werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Rational Rose/C++ (V 3.0)<br />
Hersteller<br />
Rational Software Corporation<br />
2800 San Tomas Expressway<br />
Santa Clara, CA 95051-0951<br />
Tel. 408-496-3600<br />
Fax 408-496-3636<br />
e-mail product info@rational.com<br />
Distributor<br />
Rational GmbH<br />
Rosenstraße 7<br />
Großhesselohe<br />
D-82049 Pullach im Isartal<br />
Tel. +49-89-797-021<br />
Fax +49-89-799-343<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Rational Rose/C++ (V 3.0)<br />
Installation<br />
Voraussetzungen:<br />
n Windows 3.1/95/NT<br />
n 12 MByte RAM<br />
n 16 MByte Festplattenplatz<br />
Vor <strong>der</strong> Installation sollte man wissen, welchen C++-Compiler man benutzt (Borland<br />
C++, Visual C++ o<strong>der</strong> an<strong>der</strong>e) und in welchem Pfad sich die include-Dateien befinden,<br />
da das Setup-Programm nach diesen Pfaden fragt und man keine Möglichkeit<br />
hat, im Verzeichnisbaum nach den Pfaden zu suchen. Die Installation wird durch<br />
einen Doppelklick auf setup.exe gestartet.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Together/C++ (V 1.2) (Begrenzte Vollversion)<br />
»Together/C++ von Object International schlägt eine Brücke zwischen <strong>der</strong> grafischen<br />
Konzeption und <strong>der</strong> textuellen Implementierung von Programmen durch die Bereitstellung<br />
einer C++-Entwicklungsumgebung mit integrierter, objektorientierter Analysekomponente.<br />
Die Objektmodellierung erfolgt in einem grafischen Editor durch automatische<br />
und manuelle Diagrammgenerierung. Filter ermöglichen die selektive Bearbeitung<br />
von Teilmodulen. Together/C++ ermöglicht Online die C++-Code-Generierung<br />
auf <strong>der</strong> Basis <strong>der</strong> Objektmodelle sowie das Reverse-Engineering bestehen<strong>der</strong><br />
Entwicklungen. Dokumentationen des Programmcodes, Queries, Makefiles, Metriken<br />
und SQL-Statements können einfach aus dem redundanzfreien »single source«<br />
Repository exportiert und editiert werden. Together/C++ ermöglicht die Integration<br />
von Datei-basierten Werkzeugen wie Borland C++, Microsoft Visual C++, Editoren,<br />
GUI-Buil<strong>der</strong>n usw.; Team-Entwicklungen und Versionskontrolle werden durch das integrierte<br />
Revision Control System ermöglicht.«<br />
Plattformen:<br />
Windows 3.1/95/NT<br />
OS/2<br />
Unix (angekündigt)<br />
Die <strong>CD</strong>-ROM enthält eine begrenzte Vollversion von Together/C++ 1.2. Version 2.0<br />
ist bereits angekündigt.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Together/C++ (V 1.2)<br />
Hersteller<br />
Object International, Inc.<br />
1720 Leigh Drive,<br />
Raleigh NC 27603-5159<br />
USA<br />
http://www.oi.com<br />
Distributor<br />
NEXUS GmbH<br />
Martin-Schmeisser-Weg-12<br />
D-44227 Dortmund<br />
Tel: 0231/75442-01<br />
Fax: 0231/75442-11<br />
e-mail: info@nexus.de<br />
www: http://www.nexus.de<br />
Preis<br />
Auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Together/C++ (V 1.2)<br />
Installation<br />
Das Programm muß vor <strong>der</strong> Benutzung auf eine Festplatte installiert werden. Starten<br />
Sie dazu das Installationsprogramm durch Klicken auf install.exe.<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befindet sich auch ein englischsprachiges Tutorial zu Together/<br />
C++. Die Datei heißt tutorial.doc und befindet sich im Unterverzeichnis definit/together.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
case/4/0 (V 4.0) (Begrenzte Vollversion)<br />
case/4/0 ist ein Softwareentwicklungswerkzeug, das Analyse,- Design- und<br />
Programmierwerkzeuge in sich vereint.<br />
Es stellt unter an<strong>der</strong>em folgende Komponenten zur Verfügung<br />
n grafische Werkzeuge für Systemanalyse und Unternehmensdatenmodellierung<br />
n grafische Werkzeuge für Systemdesign und Programmentwurf<br />
n einen Code-Editor mit Syntaxwissen<br />
n Publishing-Komponente zur Erstellung eines Pflichtenheftes<br />
Case 4/0 ist konzipiert für die Bearbeitung von Projekten im LAN.<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befindet sich eine Kennenlernversion mit eingeschränktem Datenumfang<br />
und ohne Sicherungsmöglichkeiten.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
case/4/0 (V 4.0)<br />
Hersteller/Distributor<br />
micro TOOL GmbH<br />
Voltastraße 5<br />
13355 Berlin<br />
Tel.: (030) 467 08 6-0<br />
Fax: (030) 464 47 14<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
case/4/0 (V 4.0)<br />
Installation<br />
Case 4.0 kann entwe<strong>der</strong> komplett auf die Festplatte installiert werden, o<strong>der</strong> es wird<br />
eine minimale Version installiert, die dann case 4.0 von <strong>der</strong> <strong>CD</strong> startet.<br />
Zusätzlich wird ein PDF-Dokument installiert, das zahlreiche Informationen zu case<br />
4.0 enthält.<br />
Starten Sie das Programm setup.exe, um die Installation zu beginnen. Informationen<br />
können Sie <strong>der</strong> Datei case_4_0.wri entnehmen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Petri-Netz-Editor/MetaDesign (V 4.5) (Vollversion)<br />
Mit MetaDesign können Systeme mit zwei Formen von Petri-Netzen, den Bedingungs/<br />
Ereignis- und Stellen/Transitions-Netzen, modelliert werden.<br />
Der Simulator-Zusatz von MetaDesign arbeitet mit nicht unterscheidbaren Marken<br />
und unterstützt die Analyse einfacher Probleme und nebenläufiger Prozesse.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Petri-Netz-Editor/MetaDesign (V 4.5)<br />
Hersteller/Distributor<br />
C.I.T. Communication<br />
Information Technology GmbH<br />
Ackerstraße 71-76<br />
D – 13355 Berlin<br />
Tel (030) 4 63 60 77<br />
Fax (030) 4 64 16 10<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Petri-Netz-Editor/MetaDesign (V 4.5)<br />
Installation<br />
Nachdem Starten von disk1\setup.exe werden Sie durch eine menügesteuerte<br />
Installation geführt. Das Programm benötigt etwa 2 MByte auf <strong>der</strong> Installationsplatte<br />
und 400 KByte im Windows-Verzeichnis<br />
Hinweis<br />
Um dieses Programm unter Windows 95 laufen zu lassen, beachten Sie bitte<br />
folgende Punkte<br />
1 Klicken Sie auf das Start-Menü<br />
2 Wählen Sie den Befehl »Ausführen«,<br />
3 Geben Sie »Regedit« ein und drücken Sie die Eingabetaste o<strong>der</strong> Klicken Sie<br />
auf »OK«<br />
4 Klicken Sie auf das kleine »+« links neben den Eintrag »HKEY_CLASSES_ROOT«<br />
5 Suchen Sie den Eintrag »CITSrvr« und klicken Sie einmal auf diesen, so daß <strong>der</strong><br />
Eintrag aktiviert wird.<br />
6 Löschen Sie den Eintrag durch Drücken <strong>der</strong> Taste »Entf«. Bestätigen Sie die<br />
Rückfrage mit »Ja«<br />
7 Beenden Sie den Registrations-Editor.<br />
Sobald Sie jetzt MetaDesign aufrufen, wird es wunschgemäß starten.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Win-Petri (Vollversion)<br />
Kurzbeschreibung<br />
C.A.P.’s NET ist ein Simulationsprogramm für nat-Petri-Netze mit graphischer Eingabe<br />
und Simulation <strong>der</strong> Zustandsübergänge im Netz. Es stellt eine Entwicklungsumgebung<br />
für gerichtete Petri-Netze zur Verfügung. Der grafische nat-Petri-Netz-<br />
Editor bietet:<br />
n Knoten-orientierte Eingabe<br />
n Erzeugen von Stellen und Transitionen<br />
n Eingabe von Texten zur Kommentierung <strong>der</strong> Netz-Knoten<br />
n Verschieben und Löschen von Stellen und Transitionen einschließlich aller ein- und<br />
auslaufenden Kanten<br />
n inzidente Kanten-Eingabe<br />
n farbliche Differenzierung <strong>der</strong> Netzbestandteile.<br />
Die Simulationsumgebung stellt Befehle zur manuellen und automatischen<br />
Simulations-Fortschaltung zur Verfügung. Die Aktivität des Netzes und die Netz-Zustände<br />
können am Bildschirm verfolgt werden.<br />
C.A.P.’s NET war das Siegerprogramm beim SUN-Preis 1991 <strong>der</strong> RWTH Aachen.<br />
Mittlerweile haben die Autoren eine leistungsfähigere Version für Windows 3.0 entwikkelt<br />
(Win-Petri), die zusätzlich eine Netz-Analyse-Komponente und eine Hypertext-<br />
Benutzer Dokumentation umfaßt. Sie bietet ferner zahlreiche Export-Formate für die<br />
entwickelten Stellen-Transitionen-Petri-Netze.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Win-Petri<br />
Distributor und Hersteller<br />
Matthias Frank<br />
Volker Schmidt<br />
Urfstr. 251<br />
41339 Mönchengladbach<br />
Tel.: 0 21 66/3 42 10<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Win-Petri<br />
Start<br />
Das Programm kann direkt von <strong>der</strong> <strong>CD</strong>-ROM gestartet werden. Klicken Sie dazu<br />
auf winpetri\winpetri.exe.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ILOG Views /Broker /DB Link (Demo, Begrenzte Vollversion)<br />
»ILOG Views ist eine C++ Klassenbibliothek zur Entwicklung sehr grafikintensiver<br />
Applikationen (VGUI) unter OSF/Motif, Open Look und Microsoft Windows. ILOG<br />
Views läßt sich problemlos an bereits vorhandene GUI-Buil<strong>der</strong> anbinden und eignet<br />
sich beson<strong>der</strong>s für die Anwendungsentwicklung in den Bereichen Karthographie,<br />
Netzwerküberwachung, Prozeßablaufkontrolle, Automatisierung usw. Wichtige Konzepte<br />
sind Interaction Managers, Animation, Layers, Vektorgrafik und Quad Tree<br />
Datenstrukturen für höchste Performanz. Mit den Views-eigenen Editoren lassen sich<br />
schnell neue Bedienelemente erzeugen und integrieren.<br />
ILOG BROKER ist ein C++-Werkzeug zur Entwicklung verteilter Applikationen und<br />
Implementationen von Client/Server-Modellen in allen Bereichen <strong>der</strong> Software-Entwicklung.<br />
Die transparente Programmierung von Interprozess-Kommunikation und<br />
effiziente Methoden zur Verwaltung verteilter C++-Strukturen ermöglichen die einfache<br />
Propagierung von Klassen, Objekten und Funktionen in verteilten Anwendungen.<br />
Die Syntax und Semantik von C++ wird beibehalten.<br />
ILOG DB Link ist eine Klassenbibliothek zur Integration von C++-Applikationen mit<br />
relationalen Datenbanksystemen über SQL-Befehle. Es gibt Bibliotheken für Oracle,<br />
Sybase, Informix, Ingres, SQL Windows etc. Mehrere Datenbanken können simultan<br />
angesprochen werden.«<br />
Die <strong>CD</strong>-ROM enthält Demo-Programme, die mit den Werkzeugen erstellt wurden.<br />
Außerdem ist eine eingeschränkte Version des GUI-Editors ILOG Views Studio enthalten.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ILOG Views /Broker /DB Link<br />
Hersteller<br />
ILOG SA<br />
9, rue de Verdun<br />
BP 85<br />
94253 Gentilly Cedex<br />
Frankreich<br />
Tel: +33 1 49 08 35 00<br />
Fax: +33 1 49 08 35 10<br />
e-mail: info@ilog.fr<br />
URL: http://www.ilog.fr<br />
Distributor<br />
NEXUS GmbH<br />
Martin-Schmeisser-Weg 12<br />
D-44227 Dortmund<br />
tel.: 0231/75442-01<br />
fax: 0231/75442-11<br />
mail: info@nexus.de<br />
www: http://www.nexus.de<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ILOG Views /Broker /DB Link<br />
Installation<br />
Die Demo-Programme müssen vor <strong>der</strong> Installation auf die Festplatte kopiert<br />
werden. Sie befinden sich im Verzeichnis \implem\ilog. Anschließend kann das<br />
Programm cd_view.exe im Unterverzeichnis bin\pc32 gestartet werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ISA-Dialogmanager (V 3.0) (Begrenzte Vollversion)<br />
Der ISA-Dialogmanger ist ein plattformübergreifendes User Interface Management<br />
System, das die Fenstersysteme Windows 3.1/NT/95, OS/2 und Motif unterstützt.<br />
Der Dialogmanager kann in die CASE-Werkzeuge Maestro II und ProMod Plus integriert<br />
werden. Weiterhin wird die Migration von BS2000-Anwendungen nach grafischen<br />
Benutzungsoberflächen unterstützt.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ISA-Dialogmanager (V 3.0)<br />
Hersteller/Distributor<br />
ISA Informationssysteme GmbH<br />
Azenbergstraße 35<br />
70174 Stuttgart<br />
Tel.: 0711/227690<br />
Fax.: 0711/2276919<br />
http://www.isa.de<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ISA-Dialogmanager (V 3.0)<br />
Installation<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befindet sich eine Powerpoint-Präsentation, in <strong>der</strong> <strong>der</strong> ISA-Dialogmanager<br />
vorgestellt wird. Wenn Sie Powerpoint auf Ihrem Rechner installiert haben,<br />
können Sie die Demonstration durch einen Klick auf \definit\isa\prsent.ppt öffnen.<br />
Ansonsten müssen Sie zuvor den Powerpoint-Betrachter installieren, <strong>der</strong> sich ebenfalls<br />
auf dieser <strong>CD</strong> befindet.<br />
Zusätzlich finden Sie eine begrenzte Version des Dialogmanagers auf dieser <strong>CD</strong>-<br />
ROM. Sie kann direkt von <strong>der</strong> <strong>CD</strong> gestartet werden. Klicken Sie dazu auf<br />
\definit\isa\idmed2.exe.<br />
Die Hilfedatei gehört nach Angaben des Herstellers nicht <strong>zum</strong> Lieferumfang<br />
dieser <strong>CD</strong>-ROM-Version.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
NOWAIT (V 2.54) (Demo)<br />
»Nowait ist ein objektorientiertes C++ Framework zur Anwendungsentwicklung unter<br />
grafischen Systemen. Beinhaltet eine sehr umfangreiche und leistungsfähige C++<br />
Klassenbibliothek für GUI Komponenten, einen konfigurierbaren und erweiterbaren<br />
GUI Designer, einen Dynamischen Resource File Manager basierend auf Dynamik<br />
C++, Klassenbibliotheken zur Socketprogrammierung, Remote-Process-Steuerung,<br />
Codegenerierung u.v.m.<br />
Anwendungen, die mit NOWAIT erstellt sind, sind applikationsportabel über die Systeme<br />
Windows 3.1x, Win32s, Windows 95, Windows NT und OS/2-PM.«<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
NOWAIT (V 2.54)<br />
Hersteller/Distributor<br />
art of bits Softwareentwicklungs GmbH<br />
Dreifel<strong>der</strong>straße 31<br />
70599 Stuttgart<br />
Tel.: 0711/167710<br />
Fax.: 0711/167716<br />
http://members.aol.com/artofbts/artofbit.htm<br />
email: 100066.640@compuserve.com<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
NOWAIT (V 2.54)<br />
Installation<br />
Auf <strong>der</strong> <strong>CD</strong> befindet sich eine Testversion des NOWAIT Designers.<br />
Er kann durch einen Klick auf definit\nowait\nwdsg32.exe direkt gestartet werden.<br />
Weiterhin finden Sie auf <strong>der</strong> <strong>CD</strong>-ROM einige Demo-Programme, die mit NOWAIT<br />
erstellt wurden. Auch diese Programme können durch einen Klick auf den Namen<br />
gestartet werden:<br />
n \definit\nowait\Friends.exe<br />
n \definit\nowait\Showdib.exe<br />
n \definit\nowait\Vecdrow.exe<br />
Weitere Informationen können Sie <strong>der</strong> Word-Datei readme.doc entnehmen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Sphinx/Win (V 1.0) (Demo)<br />
Sphinx/Win ist ein Entwicklungstool für die Erstellung von grafischen Informationssystemen<br />
unter Windows.<br />
Sphinx ist für Unix und Windows erhältlich. Nach <strong>der</strong> Installation erhalten Sie Informationen<br />
über Sphinx durch die mitinstallierte Online-Hilfe.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Sphinx/Win (V 1.0)<br />
Hersteller/Distributor<br />
integrierte informationssysteme GmbH<br />
Am Seerhein 8<br />
D – 78467 Konstanz<br />
Tel: 0 75 31/81 45 0<br />
Fax: 0 75 31/81 45 81<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Sphinx/Win (V 1.0)<br />
Installation<br />
Um Sphinx/Win zu installieren, müssen Sie das Programm setup.exe im Verzeichnis<br />
Sphinx/disk1 starten. Im folgenden Dialog müssen Sie das gewünschte Installationsverzeichnis<br />
und Ihren Windows-Systempfad angeben.<br />
Sphinx/Win benötigt etwa 6 MB auf <strong>der</strong> Festplatte.<br />
Hinweis:<br />
In <strong>der</strong> Demo-Version ist kein Speichern möglich.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ZApp Developer´s Suite (V 2.2) (Demo, Begrenzte Vollversion)<br />
Die zApp Developer´s Suite besteht aus den Einzelanwendugen zApp, zApp Interface<br />
Pack, zHelp und zApp Factory.<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befindet sich eine Demo-Version <strong>der</strong> zApp Factory. Es handelt sich<br />
um ein User Interface Management System, das die interaktive Erstellung und Animation<br />
von Benutzungsoberflächen erlaubt.<br />
Es kann die Benutzungsoberfläche implementieren<strong>der</strong> C++-Code generiert werden<br />
(in <strong>der</strong> Demo-Version nicht möglich); zur Übersetzung dieses Codes sind die Klassenbibliotheken<br />
zApp und zApp Interface Pack erfor<strong>der</strong>lich.<br />
Mit Hilfe des Produktes zHelp kann ein Hilfesystem erstellt werden. Die zApp<br />
Developer´s Suite ist für folgende Plattformen erhältlich:<br />
n Windows 3.1/95/NT<br />
n OS/2<br />
n HP-UX<br />
n AIX<br />
n Solaris 2.x<br />
n Sun OS 4.x<br />
n Digital Unix<br />
n SGI IRIX<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ZApp Developer´s Suite (V 2.2)<br />
Hersteller<br />
Rogue Wave Software, Ind.<br />
850 SW 35 th St.<br />
Corvallis, OR 97333<br />
Tel. 001-541-754-3010<br />
Fax. 001-541-757-6650<br />
Distributor<br />
ESM Software GmbH<br />
Schlossstraße 4<br />
72622 Nürtingen<br />
Tel. 07022/9256-0<br />
Fax. 07022/9256-29<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ZApp Developer´s Suite (V 2.2)<br />
Installation<br />
Nach dem Start des Programmes install.exe durch einen Doppelklick wird eine DOS-<br />
Box geöffnet, in <strong>der</strong> man Angaben über verschiedene Pfade machen muß. Danach<br />
wird zApp automatisch entpackt und in die vorher angegebenen Verzeichnisse kopiert.<br />
Nachdem die Installation beendet wurde, muß allerdings noch von Hand eine<br />
eigene Programmgruppe angelegt werden. Starten Sie Zfactory.exe im Verzeichnis<br />
Zf2demo. Außerdem möchte zAppFactory, nachdem es <strong>zum</strong> ersten Mal gestartet<br />
wurde, weitere Informationen bezüglich bestimmter Pfade haben. Geben Sie beliebige<br />
Namen existieren<strong>der</strong> Verzeichnisse an. Diese Namen werden von <strong>der</strong> Demoversion<br />
nicht ausgewertet.<br />
Eine Demonstration kann direkt von <strong>der</strong> <strong>CD</strong> gestartet werden.<br />
Hinweis<br />
Bei Erscheinen dieses Buches wird Version 3.0 von zApp und <strong>der</strong> zAppFactory verfügbar<br />
sein. Die zAppFactory ist dahingehend beschränkt, daß keine C++-Generierung<br />
möglich ist.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectStore (Info, Demo)<br />
Object-Store ist ein objektorientiertes Datenbank Managementsystem, das mit verschiedenen<br />
objektorientierten Sprachen (C; C++; Smalltalk) zusammenarbeiten kann.<br />
In dieser Multimediapräsentation erfahren Sie mehr über<br />
n Object-Orientierte Programmierung<br />
n ObjectStore<br />
n Object Design<br />
Die <strong>CD</strong>-ROM enthält eine integrative Multimedia-Präsentation zur freien Nutzung.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectStore<br />
Hersteller<br />
Object Design, INC.<br />
25 Mall Road<br />
Burlington, MA 01803 USA<br />
Distributor<br />
Object Design Software GmbH<br />
Kreuzberger Ring 64<br />
D-65205 Wiesbaden Germany<br />
fon: +49-611-97719-0<br />
fax: +49-611-97719-19<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ObjectStore<br />
Installation<br />
Das Installationsprogramm setup.exe möchte nur wissen, ob man die Multi-Media-<br />
Präsentation o<strong>der</strong> Demo-Applikationen installieren möchte, einen Pfadnamen muß<br />
man nicht angeben. Die Demo-Applikationen sind nur unter Win 3.11 und Win NT<br />
lauffähig.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Personal Oracle 7 (V 7.2) (Begrenzte Vollversion)<br />
Personal Oracle ist ein relationales Datenbank-Management-System.<br />
Es ist für diverse Plattformen erhältlich und liegt hier als Personal Edition in einer auf<br />
90 Tage begrenzten Version vor.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Personal Oracle 7 (V 7.2)<br />
Hersteller/Distributor<br />
Oracle Deutschland GmbH<br />
Hauptverwaltung München<br />
Hanauer Str. 87<br />
80993 München<br />
Tel.: 0180/5358595<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Personal Oracle 7 (V 7.2)<br />
Installation<br />
Das Setup-Programm fragt zuerst nach <strong>der</strong> Firma, in <strong>der</strong> die Software installiert werden<br />
soll und nach dem Installationspfad. Man kann zwischen einer kompletten, einer<br />
minimalen und einer benutzerdefinierten Installation wählen.<br />
Bei <strong>der</strong> Pfadangabe ist darauf zu achten, daß nur Angaben im alten DOS-Format (8<br />
Buchstaben + Erweiterung) akzeptiert werden.<br />
Um mit Oracle zu arbeiten, muß <strong>der</strong> Rechner neu gebootet werden, da einige Angaben<br />
in <strong>der</strong> »autoexec.bat« geän<strong>der</strong>t wurden.<br />
Um die Installation zu beginnen, starten Sie Win 95/setup.exe.<br />
Weitere Informationen finden Sie in readme.doc.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Poet 4.0 (Vollversion)<br />
Poet 4.0 ist ein in C++ integriertes objektorientiertes Datenbanksystem für die Entwicklung<br />
von Einzelplatz- o<strong>der</strong> Client/Server-Anwendungen. Es ist für alle gängigen<br />
Plattformen verfügbar und unterstützt den ODMG-93 C++ Standard.<br />
Hinweis<br />
Die auf dieser <strong>CD</strong>-ROM befindliche Poet-Version darf nicht zu kommerziellen<br />
Zwecken verwendet werden. Sie darf nur für Forschungszwecke und im Rahmen<br />
dieses Buches für die Bearbeitung von Aufgaben benutzt werden. Eine kommerziell<br />
nutzbare Vollversion ist bei <strong>der</strong> Firma Poet erhältlich.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Poet 4.0<br />
Hersteller<br />
POET Software GmbH POET Software Corp.<br />
Foßred<strong>der</strong> Str. 12 999 Baker Way, Suite 100<br />
22359 Hamburg USA-San Mateo, CA 94404<br />
Tel.: +49-(0)40 / 609 90 00 Tel.: +1-415 / 286-4640<br />
Fax: +49-(0)40 / 603 98 51 Fax.: +1-415 / 286-4630<br />
Preis:<br />
ab 1495,- DM für Windows (Entwicklung von Einzelplatzanwendungen)<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Poet 4.0<br />
Installation<br />
Starten Sie die Installation durch Klicken auf setup.exe. Es folgt die Auswahl <strong>der</strong><br />
Installationsart (typisch, minimal, benutzerdefiniert) und die Angabe des<br />
Installationsverzeichnisses. Im nächsten Schritt müssen die zu unterstützenden<br />
Compiler angegeben werden. Zur Auswahl stehen BC5.0, VisualC++ 1.5 und<br />
VisualC++ 4.0. In Abhängigkeit <strong>der</strong> gewählten Compiler benötigt Poet 4.0 bis zu<br />
88.8 MB auf <strong>der</strong> Festplatte. Bevor die Installation beginnt, muß man sich noch entscheiden,<br />
die PATH-Variable automatisch aktualisieren zu lassen o<strong>der</strong> die entsprechenden<br />
Verän<strong>der</strong>ungen selbst vorzunehmen.<br />
Weitere Installationshinweise entnehmen Sie bitte in <strong>der</strong> Datei install.doc.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DBFactory (V 1.01) (Demo)<br />
DBFactory ist ein visueller Code-Generator für relationale C++-Datenbankanwendungen.<br />
Es werden DBTools.h++-Klassen generiert, die den individuellen Datenbankschemata<br />
entsprechen.<br />
Die Demo-Version ist nur in <strong>der</strong> Größe <strong>der</strong> zu verarbeitenden Tabellen beschränkt.<br />
Sie dürfen maximal 5 Spalten haben.<br />
DBFactory ist für Unix und Windows erhältlich. Nach <strong>der</strong> Installation kann die Online-<br />
Dokumentation mit einem WWW-Browser (auf dieser <strong>CD</strong>-ROM enthalten) betrachtet<br />
werden. Sie befindet sich im Unterverzeichnis docs\online\dbfevcr.<br />
Öffnen sie die Datei ug.htm.<br />
Weitere Hinweise entnehmen Sie bitte <strong>der</strong> Datei readme.txt.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DBFactory (V 1.01)<br />
Hersteller<br />
Rogue Wave<br />
260 S.W. Madison<br />
P.O. Box 2328<br />
Corvallis, OR 97333<br />
http://www.roguewave.com<br />
Distributor<br />
Rogue Wave Software GmbH<br />
Boschweg 6<br />
D – 63741 Aschaffenburg<br />
Tel.: 06021/366 244<br />
Fax.: 06021/366 212<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DBFactory (V 1.01)<br />
Installation<br />
Um DBFactory zu installieren, müssen Sie das Programm install.exe im Verzeichnis<br />
dbfact starten. Im folgenden Dialog müssen Sie das gewünschte Installationsverzeichnis<br />
und Ihren Windows-Systempfad angeben.<br />
DBFactory benötigt etwa 4 Mbyte auf <strong>der</strong> Festplatte. Das Installationsprogramm akzeptiert<br />
keine langen Dateinamen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Generic++ (V 2.17) (Begrenzte Vollversion)<br />
Generic++ ist eine portable Klassenbibliothek für C++. Es handelt sich um eine<br />
Foundation-Bibliothek, die Klassen zu folgenden Einsatzbereichen zur Verfügung<br />
stellt:<br />
n Container-Klassen mit wählbarer Implementierungsdatenstruktur<br />
n Ausnahmebehandlung<br />
n Speicherverwaltung<br />
n Multi-Threading<br />
n Persistenz<br />
Unterstützte Plattformen:<br />
n DOS<br />
n Windows 3.1/95/NT<br />
n OS/2<br />
n Unix mit AT&T-kompatiblem Compiler<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Generic++ (V 2.17)<br />
Hersteller/Distributor<br />
OO-Tec GmbH<br />
Gesellschaft für objektorientierte<br />
Softwaretechnologie<br />
Münchener Str. 45<br />
D-82131 Gautin<br />
Tel.: (089) 89 32 42 - 0<br />
Fax: (089) 89 32 42 - 31<br />
email: info@ootec.isar.de<br />
Preis<br />
private Nutzung kostenlos, kommerzielle Nutzung auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Generic++ (V 2.17)<br />
Installation<br />
Die Installation erfolgt in einer DOS-Box. Zu Beginn fragt das Installationsprogramm,<br />
welchen Support, d.h. welche Batch- & Konfigurationsdateien (für DOS, Windows,<br />
OS/2 o<strong>der</strong> NT) man braucht. Eine Auswahl erfolgt über die Leertaste. Danach erfolgt<br />
die Installation in dem Ordner, den Sie angeben müssen.<br />
Weitere Informationen gibt es in den Dateien<br />
license.txt (Nutzungsbedingungen)<br />
readme.txt (letzte Informationen)<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
JFactory (V.1.1) (Demo)<br />
JFactory ist ein Werkzeug zur interaktiven Erstellung von Benutzungsoberflächen für<br />
Java-Programme und -Applets. JFactory generiert Java-Code, <strong>der</strong> mit dem Java<br />
Development Kit Version 1.0.2 von Sun übersetzt werden kann.<br />
Vor <strong>der</strong> Generierung können die erstellten Anwendungen getestet werden.<br />
Die Demo-Version ist begrenzt auf 5 Fenster o<strong>der</strong> Dialoge.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
JFactory (V.1.1)<br />
Hersteller<br />
Rogue Wave<br />
260 S.W. Madison<br />
P.O. Box 2328<br />
Corvallis, OR 97333<br />
http://www.roguewave.com<br />
Distributor<br />
Rogue Wave Software GmbH<br />
Boschweg 6<br />
D – 63741 Aschaffenburg<br />
Tel.: 06021/366 244<br />
Fax.: 06021/366 212<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
JFactory (V.1.1)<br />
Installation<br />
Starten Sie das Programm jf11demo.exe. Dieses Programm führt Sie durch einen<br />
interaktiven Installationsprozeß.<br />
JFactory benötigt Windows 95/NT, 16 Mbyte RAM und 25 Mbyte freien Festplattenplatz.<br />
Hinweis<br />
Bevor Sie JFactory 1.1 nutzen können, müssen Sie das (Java Development Kit) JDK<br />
1.0.2 installieren (ebenfalls auf dieser <strong>CD</strong>-ROM enthalten).<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Standard Template Library (Vollversion)<br />
Die Standard Template Library (STL) ist Teil des C++-Standards nach ANSI. Es handelt<br />
sich um den Teil <strong>der</strong> Klassenbibliothek, <strong>der</strong> Container-Klassen, Iteratoren und<br />
Algorithmen enthält.<br />
Die hier vorliegende Implementierung ist Public Domain und wurde von <strong>der</strong> Firma<br />
Hewlett Packard zur Verfügung gestellt.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Standard Template Library<br />
Hersteller/Distributor<br />
Kein offizieller Hersteller.<br />
Neue Versionen können über das Internet per ftp von dem Rechner butler.hpl.hp.com<br />
aus dem Verzeichnis /stl geladen werden.<br />
Preis<br />
kostenlos<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Standard Template Library<br />
Installation<br />
Die Standard Template Library wird in einer zip-Datei vertrieben. Zum Installieren<br />
benötigen Sie ein Programm, das solche Dateien entpacken kann, z.B. Winzip (auf<br />
dieser <strong>CD</strong>-ROM vorhanden).<br />
Legen Sie ein Verzeichnis stl an und entpacken Sie das Archiv. Um die Bibliothek zu<br />
verwenden, müssen Sie nur den Include-Pfad Ihres Compilers um dieses Verzeichnis<br />
ergänzen.<br />
Eine Dokumentation zur STL finden Sie in den Postscript-Dateien doc.ps und docbar.ps<br />
im zip-Archiv.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
V (1.12) (Vollversion)<br />
V ist ein C++ GUI-Framework, das plattformübergreifend und einfach anzuwenden<br />
ist. V wurde entworfen, um die Erstellung grafischer Benutzungsoberflächen für kommerzielle<br />
o<strong>der</strong> kostenlose Software zu erleichtern.<br />
V ist frei kopierbar unter den Bedingungen <strong>der</strong> GNU Library General Public License.<br />
Unterstützte Plattformen:<br />
n Windows 3.1/95/NT<br />
n Unix mit Athena Widget set<br />
Eigenschaften:<br />
n Modale und nicht-modale Dialoge mit<br />
o Platform independent layout control<br />
o Den meisten Common Controls, z.B. Push Button, Check Box, color Button,<br />
ComboBox, Frame, Icon, Icon Button, Label, List, Progress Bar, Radio Button,<br />
Sli<strong>der</strong>, Spinner, Text Input, Text Output<br />
n plattformunabhängige Drucker-Unterstützung<br />
o PostScript für X<br />
o Standard Windows Drucker für Windows<br />
Die <strong>CD</strong>-ROM enthält die Vollversion.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
V (1.12)<br />
Hersteller/Distributor<br />
Dr. Bruce E. Wampler<br />
Adjunct Professor of Computer Science<br />
University of New Mexico<br />
wampler@cs.unm.edu<br />
Preis<br />
kostenlos unter den Bedingungen <strong>der</strong> GNU Library General Public License<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
V (1.12)<br />
Installation<br />
Entpacken Sie die Datei implem\v\vwin112.zip mit winzip (auf <strong>der</strong> <strong>CD</strong> enthalten) in<br />
ein Verzeichnis Ihrer Wahl, z.B. c:\v.<br />
Informationen zur Kompilierung von V finden Sie in den Dateien rdmewin.txt und<br />
readme sowie im Unterverzeichnis doc, das während <strong>der</strong> Installation erzeugt wird.<br />
Im Verzeichnis x implem\v befindet sich in <strong>der</strong> Datei vx112.tgz die Unix-Version dieser<br />
Bibliothek.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
WX Windows (V.1.66B) (Vollversion)<br />
WxWindows ist ein Werkzeug zur Erstellung plattformunabhängiger Benutzungsoberflächen<br />
in C++.<br />
WxWindows ist frei verfügbar und unterliegt keinerlei Restriktionen.<br />
Unterstützte Plattformen:<br />
Windows 3.1/95/NT mit Visual C++, Borland C++ o<strong>der</strong> Symantec C++<br />
Unix mit X-Window und GNU C++ o<strong>der</strong> At&T C++<br />
Die <strong>CD</strong>-ROM enthält die Vollversion.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
WX Windows (V.1.66B)<br />
Hersteller/Distributor<br />
Artificial Intelligence Applications Institute<br />
University of Edinburgh<br />
80 South Bridge<br />
Edinburgh EH1 1HN<br />
United Kingdom<br />
Tel: +44(131)650 2732<br />
Fax: +44(131)650 6513<br />
Email: AIAI@ed.ac.uk<br />
Preis<br />
kostenlos<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
WX Windows (V.1.66B)<br />
Installation<br />
Windows<br />
Installieren Sie den Quellcode durch Aufrufen des Programms win/install.exe.<br />
Nach <strong>der</strong> Installation muß die Bibliothek übersetzt werden. Die Anleitung für das<br />
Übersetzen <strong>der</strong> Bibliothek finden Sie in <strong>der</strong> Datei »win/install.txt«.<br />
Unix<br />
Wechseln Sie in das Verzeichnis implem/wxwindow/unix und führen Sie das<br />
Installationsskript durch Eingabe des Befehls sh wxinstall aus. Die Anleitung für das<br />
Übersetzen <strong>der</strong> Bibliothek finden Sie in <strong>der</strong> Datei install.txt im Unterverzeichnis install.<br />
Im Unterverzeichnis docs werden Postscript-Dateien mit den Programmierhandbüchern<br />
installiert.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Allegro CL für Windows (V 3.0) (Begrenzte Vollversion)<br />
»Allegro CL für Windows ist die führende objektorientierte Programmierumgebung<br />
für Microsoft Windows.<br />
Allegro CL für Windows beinhaltet CLOS, das Common Lisp Object System, und ist<br />
eine native 32 bit Entwicklungsumgebung für die dynamische objektorientierte Programmierung.<br />
CLOS ermöglicht inkrementelle Verän<strong>der</strong>ungen von Objektstrukturen<br />
und -verhalten in einer bereits laufenden Applikation, ohne den Quellcode zu benötigen.<br />
Die umfangreiche Menge an hilfreichen Werkzeugen umfaßt inkrementelle<br />
Kompilierung, dynamisches Editieren, Garbage Collection, Debugger, High Level DDE<br />
Interface, Schnittstellen zu an<strong>der</strong>en Sprachen, grafische Klassenbrowser und einen<br />
komfortablen User Interface Buil<strong>der</strong>.«<br />
Systemvoraussetzungen für die Vollversionen<br />
n PC ab Intel 486 Prozessor<br />
n Microsoft Windows 3.1, Windows 95 o<strong>der</strong> Windows NT Workstation 3.51 o<strong>der</strong><br />
höher<br />
n 8 MB RAM<br />
n 15 MB Harddisk<br />
n <strong>CD</strong>-ROM Laufwerk<br />
Die Demo-Version ist voll funktionsfähig mit folgenden Einschränkungen:<br />
n begrenzte Größe des Heap-Speichers<br />
n keine Foreign Function Unterstützung<br />
n kein compile-file<br />
n kein Disassembler<br />
n kein Abspeichern des Image<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Allegro CL für Windows (V 3.0)<br />
Hersteller<br />
Franz Inc.<br />
Http://www.franz.com<br />
Distributor<br />
NEXUS GmbH<br />
Martin-Schmeisser-Weg 12<br />
D-44227 Dortmund<br />
Tel: 0231/75442-01<br />
Fax: 0231/75442-11<br />
email: info@nexus.de<br />
www: http://www.nexus.de<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Allegro CL für Windows (V 3.0)<br />
Installation<br />
Starten Sie setup.exe durch einen Doppelklick. Das Installationsprogramm richtet<br />
Allegro anschließend auf Ihrer Festplatte ein.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
EasyCASE (C++, Java) (V 6.0) (Demo)<br />
Dieses Werkzeug hat seine Stärken in <strong>der</strong> graphischen, hierachisierten Visualisierung<br />
von C++/Java Quellcode in <strong>der</strong> Struktogramm-Technik. EasyCASE kann als<br />
Werkzeug für Neuentwicklungen, Reuse und Dokumentation eingesetzt werden. Es<br />
verfügt über Schnittstellen, mit <strong>der</strong>en Hilfe eigene Programmierwerkzeuge wie Editoren,<br />
Compiler o<strong>der</strong> Debugger eingebunden werden können. Die EasyCASE Produkt-<br />
Familie unterstützt unter an<strong>der</strong>em die Programmiersprachen Ada, Basic, Cobol,<br />
Fortran, Pascal und die in den Demo-Versionen vorliegenden Programmiersprachen<br />
C++ und JAVA.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
EasyCASE (C++, Java) (V 6.0)<br />
Hersteller/Distributor<br />
Siemens AG Österreich<br />
Bereich PSE<br />
Gudrunstr. 11<br />
A - 1100 Wien<br />
Tel: +4311707/46522<br />
Fax: +4311707/57072<br />
e-mail: easycase@siemens.at<br />
Die <strong>CD</strong>-ROM enthält jeweils eine Demo-Version mit eingeschränkter Funktionalität<br />
für die Programmiersprachen C++ und Java.<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
EasyCASE (C++, Java) (V 6.0)<br />
Installation<br />
C++ Version:<br />
Die Installation erfolgt nach Starten von setup.exe automatisch. Es wird eine<br />
Programmgruppe angelegt, die das Programm EASYCASE und begleitende Word-<br />
Dokumente enthält.<br />
Java Version:<br />
1 Legen Sie ein neues Verzeichnis an (z.B. C/EasyJava).<br />
2 Kopieren Sie die Datei easyjava.exe dorthin.<br />
3 Starten Sie die Datei easyjava.exe in dem neu angelegten Verzeichnis.<br />
4 Kopieren Sie die Datei easy-jav.ini in das Windows-Verzeichnis.<br />
5 Starten Sie EasyCASE (Java) mittels <strong>der</strong> Datei Easy-jav.exe.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ENFIN Smalltalk (V 4.1) (Begrenzte Vollversion)<br />
ENFIN Smalltalk 4.1 ist eine objektorientierte Entwicklungsumgebung für Smalltalk.<br />
Es bildet die Basis für ObjectStudio, einer objektorientierten Client/Server-<br />
Entwicklungsumgebung mit Unterstützung relationaler Datenbanken und einer Verteilung<br />
<strong>der</strong> Anwendung.<br />
ENFIN Smalltalk besteht aus<br />
n Smalltalk Interpreter<br />
n Klassen-Browser<br />
n GUI-Designer<br />
n Netzwerk-Tools<br />
n verschiedenen Werkzeugen <strong>zum</strong> Ansprechen von SQL-Datenbanken<br />
Plattformen/Systemvoraussetzungen<br />
n Windows 3.1/95: 6MB RAM, 22 MB Festplattenkapazität<br />
n OS/2: 8 MB RAM, 22 MB Festplattenkapazität<br />
n Unix: Auf Anfrage<br />
Die Demo-Version erlaubt eingeschränktes Arbeiten; es ist kein Speichern möglich.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ENFIN Smalltalk (V 4.1)<br />
Hersteller<br />
VMARK Software, Inc. (vormals Easel)<br />
50 Washington Street<br />
Westboro, MA 01581<br />
email: info@vmark.com<br />
http://www.vmark.com<br />
Distributor<br />
VMARK Software GmbH<br />
Industriestr. 3<br />
70565 Stuttgart<br />
Tel.: 0711/78711-0<br />
Fax.: 0711/78711-25<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
ENFIN Smalltalk (V 4.1)<br />
Installation<br />
Starten Sie einfach das Programm install.exe im Ordner ENFIN. Das Programm fragt<br />
Sie dann nach dem Ordner, in den es ENFIN installieren soll. Während <strong>der</strong> Installation<br />
for<strong>der</strong>t Sie das Programm auf, eine neue Diskette einzulegen. Diese können Sie<br />
jeweils einfach mit »OK« quittieren. Zum Schluß wird die »autoexec.bat« vom<br />
Installationsprogramm modifiziert. Um mit ENFIN zu arbeiten, müssen Sie zuerst den<br />
Computer neu starten, damit sich die Än<strong>der</strong>ungen in <strong>der</strong> »autoecex.bat«-Datei bemerkbar<br />
machen.<br />
Für weitere Informationen lesen Sie die Readme-Datei.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
GNU C++-Compiler DJGPP (V 2.0) (Vollversion)<br />
Der GNU C++-Compiler ist ein kommandozeilen-basierter C/C++-Compiler, <strong>der</strong> unter<br />
Beachtung <strong>der</strong> GNU General Public Licence frei erhältich ist.<br />
Auf dieser <strong>CD</strong>-ROM befindet sich eine Oberfläche zu diesem Compiler (RHIDE), die<br />
separat installiert werden kann.<br />
Der GNU C++-Compiler ist auch für fast alle Unix-Versionen erhältlich.<br />
Beachten Sie bitte die Copyright-Hinweise in den Dateien v2/copying.dj, v2gnu/copying<br />
und v2gnu/copying.lib.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
GNU C++-Compiler DJGPP (V 2.0)<br />
Hersteller/Distributor<br />
Free Software Foundation, Inc.<br />
675 Mass Ave<br />
Cambridge, MA 02139<br />
USA<br />
MS-DOS Portierung:<br />
DJ Delorie<br />
24 Kirsten Ave<br />
Rochester, NH 03867-2954<br />
USA<br />
Preis<br />
kostenlos<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
GNU C++-Compiler DJGPP (V 2.0)<br />
Installation<br />
Starten Sie das Programm install.exe durch einen Doppelklick. Hier müssen Sie den<br />
Installationspfad angeben (Der Pfad muß mit dem Unix-typischen /-Zeichen statt<br />
dem Backslash \ geschrieben werden). Wählen Sie nun aus <strong>der</strong> Liste die zu installierenden<br />
Komponenten aus. Nach <strong>der</strong> Installation müssen Sie folgende Zeilen in<br />
Ihre Datei autoexec.bat einfügen:<br />
set DJGPP = L:\DJGPPDIR\DJGPP.ENV<br />
set PATH = L:\DJGPPDIR\BIN;%PATH%<br />
Beachten Sie bitte, daß diese Än<strong>der</strong>ungen erst nach einem Neustart des Rechners<br />
wirksam werden.<br />
Weitere Informationen finden Sie in <strong>der</strong> Datei v2\readme.1st und in <strong>der</strong> Online-Dokumentation,<br />
die Sie bereits vor <strong>der</strong> Installation durch einen Doppelklick auf<br />
doku\info.exe lesen können (im GNU-Info-Format).<br />
Hinweis:<br />
Das Installationsprogramm arbeitet nicht mit <strong>der</strong> Beta-Version von Windows NT 4.0<br />
zusammen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Java Development Kit (V 1.02) (Vollversion)<br />
Es besteht aus JDK und Hotjava.<br />
Das JDK ist ein Entwicklungspaket für die Sprache Java. Dieses Paket enthält u.a.<br />
Compiler, Interpreter, Debugger sowie die Standardklassenbibliothek.<br />
Hotjava ist ein Java geschriebener WWW-Browser, <strong>der</strong> u.a. die Fähigkeit besitzt,<br />
Java-Applets in WWW-Seiten abzuarbeiten.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Java Development Kit (V 1.02)<br />
Hersteller/Distributor<br />
Sun Microsystems, Inc.<br />
2550 Garcia Avenue<br />
Mountain View, California 94043<br />
http://www.sun.com<br />
Preis<br />
Kostenlose Nutzung (privat o<strong>der</strong> kommerziell).<br />
Bitte beachten Sie die folgenden Lizenzbestimmungen:<br />
Lizenzbestimmungen<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Java Development Kit (V 1.02)<br />
Installation<br />
Die benötigten Dateien befinden sich im Verzeichnis \implem\java.<br />
Windows<br />
Zuerst müssen die Dateien »JDK102wi.exe« für das JDK bzw. »hotj_b10.exe« für<br />
Hotjava auf die lokale Festplatte kopiert werden. Durch Starten dieser Dateien wird<br />
das JDK bzw. HotJava automatisch entpackt. Dafür wird jeweils ein Ordner (»Java«<br />
bzw. »Hotjava«) angelegt.<br />
Um mit dem JDK vernünftig zu arbeiten, sollte man in <strong>der</strong> autoexec.bat einen Pfad<br />
auf das bin-Verzeichnis legen;<br />
z.B.: Path = C:\Java\bin\;%Path%<br />
Solaris<br />
Kopieren Sie die Datei »jdk102so.tgz« auf Ihre lokale Festplatte und entpacken Sie<br />
sie mit dem Kommando »gunzip jkd102so.tgz«. Das entstehende tar-Archiv können<br />
Sie mit »tar -xvf jdk102so.tgz« entpacken. Auch hier empfiehlt es sich, das bin-Unterverzeichnis<br />
in den Pfad mitaufzunehmen.<br />
Anwendung<br />
Compilieren Sie Ihre Java-Quellcodes mit javac dateiname.java.<br />
Führen Sie danach Ihr Programm mit java dateiname aus<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oberon (V 4.0-1.4) (Vollversion)<br />
Das Oberonsystem enthält ein Oberon-Entwicklungssystem und verschiedene Werkzeuge,<br />
die alle in Oberon entwickelt wurden. Die hier vorliegende Version wurde an<br />
<strong>der</strong> ETH Zürich entwickelt und an <strong>der</strong> Universität Linz erweitert.<br />
Bitte lesen Sie auch die Datei readme.txt. Weitere Dokumentationen können Sie<br />
nach <strong>der</strong> Installation online lesen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oberon (V 4.0-1.4)<br />
Hersteller/Distributor<br />
Institut für Computersysteme<br />
ETH Zürich<br />
modifiziert von<br />
Institut für Informatik<br />
Abteilung für Systemsoftware<br />
Universität Linz<br />
Preis<br />
kostenlos<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Oberon (V 4.0-1.4)<br />
Installation<br />
Legen Sie ein Verzeichnis für Oberon an, z.B. c:\oberon. Kopieren Sie die Datei<br />
implem\oberon\system.exe in das Verzeichnis und geben Sie an <strong>der</strong> Eingabeauffor<strong>der</strong>ung<br />
das Kommando »system -d« ein. Nun sollten Sie Oberon.exe auf Ihren<br />
Desktop ziehen und im Kontextmenu »Eigenschaften« das Verzeichnis c:\oberon\user<br />
als Arbeitsverzeichnis angeben.<br />
Wenn Sie Oberon nicht im Verzeichnis c:\oberon installieren, müssen Sie die Datei<br />
oberon.ini im Verzeichnis user nach <strong>der</strong> Installation anpassen.<br />
Hinweis<br />
In dem selbstextrahierenden Archiv \implem\oberon\source.exe finden Sie den<br />
Quellcode des Oberon-Systems.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Small Eiffel (V 0.95) (Vollversion)<br />
Small Eiffel ist ein kostenloser Compiler für Eiffel mit einigen Einschränkungen im<br />
Sprachumfang. Der Compiler ist für UNIX, DOS, OS/2, Windows 95 und Apple<br />
Macintosh verfügbar.<br />
Er kann kostenlos unter den Bedingungen <strong>der</strong> GNU Public License verwendet<br />
werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Small Eiffel (V 0.95)<br />
Hersteller/Distributor<br />
Centre des Recherches en Informatique de Nancy<br />
ftp://ftp.loria.fr/pub/loria/genielog/Small Eiffel<br />
Preis<br />
kostenlos<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Small Eiffel (V 0.95)<br />
Installation<br />
Legen Sie ein Verzeichnis an, in dem Small Eiffel installiert werden soll, und kopieren<br />
Sie den Inhalt des Verzeichnisses implem\eiffel in dieses Verzeichnis. Starten<br />
Sie jetzt das Programm install.bat.<br />
Small Eiffel wird jetzt entpackt.<br />
Anschließend müssen Sie die Datei setenv.bat editieren und dort die korrekten<br />
Pfade für das Verzeichnis eiffel (in SMALLEIFFEL) und djgcc (in <strong>der</strong> Variablen<br />
GCCBASE) eintragen. Wenn Sie z.B. auf Laufwerk C: im Verzeichnis smeiffel<br />
installiert haben, müssen Sie dort se SMALLEIFFEL: C: \smeiffel\eiffel und set<br />
GCCBASE: C: \smeiffel\djgcc eintragen.<br />
Vor dem Benutzen des Compilers müssen Sie setenv.bat ausführen. Wenn eine<br />
Fehlermeldung »Kein Speicherplatz mehr im Umgebungsbereich« erscheint,<br />
müssen Sie folgende Zeile in Ihrer Datei config.sys einfügen o<strong>der</strong> än<strong>der</strong>n:<br />
SHELL: C: \WINDOWS\COMMAND.COM /e: 512 /p<br />
Sollte nach einem Neustart des Systems die Fehlermeldung noch immer auftreten,<br />
müssen Sie die Zahl 512 erhöhen.<br />
Weitere Hinweise entnehmen Sie bitte den Dateien readme.txt und READ-ME.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Visual Works 2.5 (V.2.5) (Freizuschaltende Version)<br />
Visual Works ist eine objektorientierte Smalltalk-Entwicklungsumgebung. Mit Visual<br />
Works kann man graphische Benutzungsoberflächen erstellen und sie an relationale<br />
Datenbanken (Oracle, Sybase) anbinden.<br />
Unter an<strong>der</strong>em beinhaltet es:<br />
n Vordefinierte Programmrümpfe für eigene Applikationen<br />
n Mechanismen zur Wie<strong>der</strong>verwendung von Applikationen & Interfaces<br />
n Verbindung zu relationalen Datenbanken<br />
n Portabilität (UNIX, Windows, OS/2 und Macintosh Plattformen)<br />
Die <strong>CD</strong>-ROM enthält eine paßwortgeschützte Vollversion.<br />
Das Paßwort ist direkt bei ParcPlace Systems erhältlich.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Visual Works 2.5 (V.2.5)<br />
Hersteller<br />
ParcPlace Systems, Inc.<br />
999 East Arques Ave.<br />
Sunnyvale, CA 94086-4593<br />
Info @ ParcPlace.com<br />
Distributor<br />
ParcPlace Systems GmbH<br />
Lochhamer Straße 11<br />
D-82152 Martinsried<br />
Tel: (0)89-895644-0<br />
Tel: (0)89-895644-11<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Visual Works 2.5 (V.2.5)<br />
Installation<br />
Die Installation ist sehr komfortabel. Das Setup-Programm im Ordner Install fragt<br />
nur nach dem Ordner, in den es Visual Works 2.5 installieren soll. Allerdings kann<br />
man diese Vollversion erst dann benutzen, wenn man sich bei ParcPlace hat registrieren<br />
lassen und das Paßwort erhalten hat.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DOC++ (V 2.0 beta) (Vollversion)<br />
DOC++ ist ein Dokumentationssystem für C++-Programme. Es ist in <strong>der</strong> Lage, aus<br />
speziell formatiertem C++-Quellcode HTML- und LaTex-Dokumente zu generieren.<br />
Neben den Beschreibungen aller Klassen wird auch die Vererbungshierarchie dargestellt.<br />
Weitere Informationen entnehmen Sie bitte den Dateien »README« und »LICENSE«<br />
im entpackten Verzeichnis Ihrer Festplatte, z.B. docxx.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DOC++ (V 2.0 beta)<br />
Hersteller/Distributor<br />
Roland Wun<strong>der</strong>ling<br />
Malte Zoeckler<br />
email: doc++@zib-berlin.de<br />
http://www.zib-berlin.de/VisPar/doc++/<br />
Preis<br />
kostenlos unter den Bedingungen GNU General Public License.<br />
Kommerzielle Nutzung ist nur nach Rücksprache mit den Autoren gestattet.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
DOC++ (V 2.0 beta)<br />
Installation<br />
Alle benötigten Dateien befinden sich auf <strong>der</strong> <strong>CD</strong>-ROM im Unterverzeichnis<br />
»\implem\docxx«. Entpacken Sie die zip-Dateien in ein beliebiges Verzeichnis Ihrer<br />
Festplatte, z.B. Docxx. Das benötigte Programm WinZip befindet sich auf dieser <strong>CD</strong>-<br />
ROM.<br />
Setzen Sie in <strong>der</strong> autoexec.bat den Pfad auf das Unterverzeichnis »bin«.<br />
Die Anwendung des Dokumentationsgenerators ist auf dem WWW-Server <strong>der</strong> Autoren<br />
(http://www.zib-berlin.de/VisPar/doc++) beschrieben.<br />
In <strong>der</strong> Datei »docxxsrc.zip« finden Sie den C++-Quellcode zu dem Dokumentationssystem.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
SoftDoc C/C++ (V 3.1) (Begrenzte Vollversion)<br />
»MAS-SoftDoc ist ein Analyse- und Dokumentations-Werkzeug für C/C++ Programme<br />
in allen Projektphasen <strong>der</strong> Softwareentwicklung und -wartung, für Software-Reengineering,<br />
Softwaresanierung sowie für Software-Qualitätssicherung<br />
nach ISO-9000.<br />
MAS-SoftDoc arbeitet nach dem Verfahren CARE (Computer Aided Reverse<br />
Engineering) auf <strong>der</strong> Grundlage <strong>der</strong> Programmquellen des aktuellen Softwarestandes<br />
und stellt, je nach Bedarf, komprimierte o<strong>der</strong> detaillierte Informationen zu<br />
Projekten beliebiger Größe zur Verfügung.<br />
Ohne Än<strong>der</strong>ung o<strong>der</strong> Code-Instrumentierung können auch bestehende Problemprojekte<br />
o<strong>der</strong> Altprojekte analysiert werden und für die Einarbeitung, Fehleranalyse,<br />
Softwaresanierung o<strong>der</strong> Restrukturierung dokumentiert werden.<br />
Die für die Entwicklung, Wartung und Qualitätssicherung sofort verfügbaren<br />
Ergebnisse von MAS-SoftDoc sind<br />
n projektspezifische Softwarehandbücher im RTF-/SoftDoc-Textformat für Dateien,<br />
Klassen, Funktionen, Variablen, Typen, Konstanten und Makros,<br />
n API-Dokumentation für C++-Klassenbibliotheken im RTF-Format und als Online-<br />
Hilfe generiert,<br />
n automatische Quellcode-Inlinedokumentation mit Schnittstelle zu Systemen für<br />
Versionskontrolle und zu CASE-Tools,<br />
n Strukturdiagramme, Struktogramme und projektweite Crossreferenzen im C/C++<br />
Visual Code Information Browser.<br />
MAS-SoftDoc ist für die Systemplattformen WINDOWS, DOS, OS/2 und für alle<br />
wichtigen UNIX-Systeme verfügbar.«<br />
Die <strong>CD</strong>-ROM enthält eine beschränkte Vollversion (maximal 6 Quelldateien, 4<br />
Funktionen pro Quelldatei, 6 Klassen, 6 Methoden pro Klasse und 300 Zeilen im<br />
Struktogramm)<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
SoftDoc C/C++ (V 3.1)<br />
Hersteller/Distributor<br />
MAS Software GmbH<br />
Produktvertrieb SoftDoc<br />
Kirchplatz 9<br />
D-82042 Pullach<br />
Tel.: 089-7934021<br />
Fax: 089-7932870<br />
eMail:100634.2273@compuserve.com<br />
Preis<br />
ab 2.400,-DM zzgl. MwSt. und Versandkosten<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
SoftDoc C/C++ (V 3.1)<br />
Installation<br />
Voraussetzungen<br />
n IBM kompatibler Rechner<br />
n Hardwarevoraussetzungen PC-System, div. Workstations<br />
n Betriebssystem DOS/Windows, OS/2, div. UNIX-Systeme<br />
n 8 MB RAM erfor<strong>der</strong>lich<br />
n 10 MB Festplattenkapazität erfor<strong>der</strong>lich<br />
Die Installation <strong>der</strong> Test-Version führen Sie bitte nach <strong>der</strong> anliegenden Installationsanleitung<br />
durch, siehe install.doc im Verzeichnis SOFTDOC.<br />
Einen schnellen Einblick in die wichtigsten Leistungsbereiche von SoftDoc erhalten<br />
Sie nach <strong>der</strong> Installation mit <strong>der</strong> in <strong>der</strong> Kurzanleitung »Leichter Einstieg und schnelle<br />
Information« beschriebenen Vorgehensweise, siehe Einstieg.doc im Verzeichnis<br />
Softdoc\help. Für weitere Fragen wenden Sie sich bitte an die SoftDoc-<br />
Hotline.<br />
Hinweis<br />
Im Lieferumfang ist jeweils ein Benutzerhandbuch als schnelle Hypertext-Online-<br />
Hilfe enthalten. Für die Unterstützung des Kundeneinsatzes steht direkt die<br />
SoftDoc-Hotline des Herstellers MAS per Telefon, Fax und eMail zur Verfügung.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object-Lab light (Demo)<br />
Kurzbeschreibung<br />
Interaktives multimediales Lernsystem zur objektorientierten Softwareentwicklung<br />
Wissen, Verstehen und Anwenden <strong>der</strong> Begriffe und Konzepte:<br />
n Objekt<br />
n Attribut<br />
n Operation / Methode<br />
n Klasse<br />
n Vererbung<br />
n Botschaft<br />
n Objektlebenszyklus (Zustandsautomat)<br />
n Integrationsdiagramme<br />
n Aggregationen<br />
n Assoziationen<br />
n Kardinalitäten<br />
n Subsysteme<br />
n 8 Fallstudien<br />
ð Steigen Sie multimedial in die Objektorientierung ein!<br />
ð Frischen Sie Ihr Wissen auf!<br />
ð Erweitern und vertiefen Sie Ihre Kenntnisse und Fertigkeiten!<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object-Lab light<br />
Sie können ...<br />
n sich durch den Stoff führen lassen<br />
n völlig frei navigieren; wählen, in welcher Reihenfolge Sie lernen; wo Sie Schwerpunkte<br />
setzen o<strong>der</strong> Wissenslücken füllen wollen<br />
n entscheiden, wann und wieviel Sie üben wollen (Aufgaben o<strong>der</strong> Fallstudien)<br />
n sich durch den Tutor bei Bedienung und inhaltlichen Problemen unterstützen lassen<br />
n Lesezeichen setzen<br />
n entscheiden, ob Sie Definitionen, Methoden, Notationen o<strong>der</strong> weiterführende<br />
Literatur kennenlernen wollen<br />
Der Tutor ...<br />
n gibt Tips, wie Sie Ihre Lernstrategie optimieren.<br />
n berät Sie, ob Ihre Selbsteinschätzung korrekt ist.<br />
n hakt ab, was Sie bereits gelernt haben.<br />
Praxisnähe durch<br />
n Fallstudien<br />
n Videos<br />
n Animationen<br />
n Zielgruppengerecht für Anfänger, Fortgeschrittene und Experten<br />
n Unterschiedliche Schwierigkeitsniveaus<br />
n Lernzielorientierte Erfolgskontrolle<br />
n Statistische Auswertung <strong>der</strong> persönlichen Ergebnisse über alle Lernsitzungen<br />
hinweg – natürlich geschützt!<br />
n Aktive o<strong>der</strong> passive kontextsensitive Hilfe<br />
n Schnellnavigation und Strukturbaum – Sie verlieren nie den Überblick<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object-Lab light<br />
Distributor Hersteller<br />
Spektrum Akademischer Verlag Prof. Dr. Helmut Balzert<br />
Vangerowstr. 20 Lehrstuhl für Software-Technik<br />
D - 69115 Heidelberg Ruhr-Universität<br />
URL:http://www.spektrum-verlag.com 44780 Bochum<br />
(auch für Bestellungen) in Zusammenarbeit mit<br />
Prof. Dr. Heide Balzert<br />
Fachbereich Informatik Fachhochschule Dortmund<br />
Preis<br />
Object-Lab light 298,- einschl. Begleitbuch<br />
n Begleitbuch „Objektorientierte Systemananlyse“ von Prof. Dr. Heide Balzert<br />
(Spektrum Akademischer Verlag, 320 Seiten)<br />
n 25 Stunden abwechslungsreiches, multimediales, selbstbestimmtes Lernen!<br />
Diesem Buch ist eine Bestellkarte für Object-Lab beigelegt.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Object-Lab light<br />
Voraussetzungen<br />
n DOS.kompatibler Rechner 486er mit 33 MHz<br />
n 4 MB Ram<br />
n Windows 3.1 o<strong>der</strong> Windows 95<br />
n Windows-kompatible Soundkarte<br />
n VGA-Grafikkarte mit 256 Farben<br />
n <strong>CD</strong>-ROM-Laufwerk single-speed<br />
n Direkt von <strong>der</strong> <strong>CD</strong>-ROM abspielbar o<strong>der</strong><br />
n auf <strong>der</strong> Festplatte installierbar (450 MB)<br />
Start von <strong>der</strong> <strong>CD</strong><br />
Hinweis<br />
Um eine höhere Ablaufgeschwindigkeit zu erhalten, können Sie Object-Lab auch<br />
auf <strong>der</strong> Festplatte installieren. Kopieren Sie dazu das Verzeichnis Ol_demo auf<br />
die Festplatte und starten Sie das Programm Obj-lab.exe.<br />
Sie benötigen dazu ca. 130 MB freien Festplattenspeicherplatz.<br />
zusätzliche Hinweise<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführung in SA (V 1.2a) (Vollversion)<br />
In dieser multimedialen Einführung können Sie die Grundzüge <strong>der</strong> Strukturierten<br />
Analyse lernen.<br />
Darüber hinaus wird eine Einführung in das SA-Werkzeug ProMod gegeben.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführung in SA (V 1.2a)<br />
Hersteller<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität Bochum<br />
44780 Bochum<br />
Distributor<br />
CAP debis-Software Tools<br />
Tel. 02408/6600<br />
Preis<br />
auf Anfrage<br />
Hinweis<br />
Die Copyright-Rechte liegen bei CAP debis. Die Bereitstellung auf dieser <strong>CD</strong>-ROM<br />
erfolgt mit freundlicher Genehmigung von CAP debis<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführung in SA (V 1.2a)<br />
Installation<br />
Das Tutorial kann direkt von <strong>der</strong> <strong>CD</strong> gestartet werden. Klicken Sie dazu auf die Datei<br />
definit\sa_cbt\tutorial.exe.<br />
Hinweis<br />
Das Produkt ProMod befindet sich nicht auf <strong>der</strong> <strong>CD</strong>-ROM.<br />
Daher können die produktspezifischen Tutorialteile nicht durchgeführt werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie HIWI-Verwaltung (Vollversion)<br />
Implementierung inklusive Dokumentation und Quellcodes <strong>der</strong> Fallstudie »HIWI-Verwaltung«.<br />
Die Anwendung wurde mit dem Jade-System generiert. Weitere Informationen <strong>zum</strong><br />
Jade-System finden Sie ebenfalls auf dieser <strong>CD</strong>-ROM.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie HIWI-Verwaltung<br />
Hersteller/Distributor<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität Bochum<br />
44 780 Bochum<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie HIWI-Verwaltung<br />
Installation<br />
Das Programm kann direkt von <strong>der</strong> <strong>CD</strong> gestartet werden. Klicken Sie dazu auf die<br />
Datei \swt\hiwi\hiwi.exe.<br />
Wenn Sie selbst Daten eingeben möchten, muß <strong>der</strong> Ordner hiwi zuvor auf die lokale<br />
Festplatte kopiert werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Seminarorganisation (Vollversion)<br />
Die Seminarorganisation dient zur Verwaltung von Seminaren, Dozenten, Kunden,<br />
etc. .<br />
Das Programm beruht auf dem Fallbeispiel »Seminarorganisation« des Buchs.<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befinden sich die Vollversion, die Dokumentation und<br />
die Quellcodes.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Seminarorganisation<br />
Hersteller/Distributor<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität Bochum<br />
44780 Bochum<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Seminarorganisation<br />
Installation<br />
Das Installationsprogramm kopiert die notwendigen Dateien in das Verzeichnis<br />
c:\semapp. Starten Sie dannach Semiapp.exe in diesem Verzeichnis.<br />
Das Programm läuft nicht direkt von <strong>der</strong> <strong>CD</strong>-ROM.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Roboteranimation (Vollversion)<br />
Implementierung inklusive Dokumentation und Quellcodes <strong>der</strong> Fallstudie »Roboteranimation«.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Roboteranimation<br />
Hersteller/Distributor<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität Bochum<br />
44 780 Bochum<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Fallstudie Roboteranimation<br />
Installation<br />
Das Programm kann direkt von <strong>der</strong> <strong>CD</strong> gestartet werden. Klicken Sie dazu auf die<br />
Datei \swt\roboter\troboter.exe. Die Dokumentation kann ebenfalls direkt von<br />
dieser <strong>CD</strong> gelesen werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Artikel <strong>zum</strong> JANUS/JADE-System<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM finden Sie einige Veröffentlichungen zu dem JANUS/JADE-System,<br />
das am Lehrstuhl für Software-Technik unter <strong>der</strong> Leitung von Prof. Balzert entwickelt<br />
wird.<br />
Im einzelnen können Sie folgende Artikel lesen:<br />
n The Janus Application Development Environment – Benerating More than<br />
the User Interface<br />
(vorgetragen auf dem Workshop on Computer-Aided Design of User Interfaces,<br />
CADUI ‘96 in Namur, Belgien; 5.-7. Juni 1996)<br />
n Vom Programmieren <strong>zum</strong> Generieren – Auf dem Weg zur automatisierten<br />
Anwendungsentwicklung<br />
(vorgetragen auf <strong>der</strong> GI-Fachtagung Software-Technik ‘95 in Braunschweig;<br />
10.-11. Oktober 1995)<br />
n Ein wissensbasiertes System zur Unterstützung des Benutzers bei <strong>der</strong> ergonomischen<br />
Farbzusammenstellung für Dialogmasken<br />
(vorgetragen auf <strong>der</strong> Software-Ergonomie ‘95 Tagung, – Darnstadt; 20.-23.2<br />
1995)<br />
n Das JANUS-System. Automatisiete, wissensbasierte Generierung von<br />
Mensch-Computer-Schnittstellen<br />
(erschienen in Informatik Forschung und Entwicklung, 9/1994, S. 22-35)<br />
n Der JANUS-Dialogexperte: Vom Fachkonzept zur Dialogstruktur<br />
(vorgetragen auf <strong>der</strong> GI-Fachtagung Software-Technik ‘93 in Dortmund;<br />
8.-10. November 1993)<br />
n From OOA to GUI – The Janus System<br />
(vorgetragen auf <strong>der</strong> Interact 95 in Lillehammer, Norwegen, 26.-30. Juni 1995)<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Unified Notation (V 0.9)<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM ist ein Entwurf <strong>der</strong> »Unified Notation« bzw. »Unified Modelling<br />
Language« von Grady Booch, Ivar Jacobsen und James Rumbaugh enthalten.<br />
Das Dokument ist in englischer Sprache.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Unified Notation (V 0.9)<br />
Hersteller/Distributor<br />
Rational Software Corporation<br />
2800 San Tomas Expressway<br />
Santa Clara, California 95051-0951<br />
Tel.: 001-408-496-3600<br />
Fax.: 001-408-496-3636<br />
http://www.rational.com<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Unified Notation (V 0.9)<br />
Installation<br />
Das Dokument besteht aus sieben Kapiteln für die Version 0.8 und einem Addendum<br />
für Version 0.9a. Sie können die Kapitel durch Anklicken von unified.pdf lesen.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Natural (Info)<br />
Natural Lightstorm ist die integrierte Entwicklungsumgebung <strong>der</strong> Software AG auf<br />
dem Desktop. Von <strong>der</strong> Produktdefinition über Analyse und Design bis zur Konstruktion<br />
werden alle Projektphasen unterstützt. Programme, die mit Natural Lightstrom<br />
erstellt wurden, sind syntaxkompatibel mit Natural auf an<strong>der</strong>en Plattformen und damit<br />
beliebig portierbar.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Natural<br />
Hersteller / Distributor<br />
Software AG<br />
SAG Systemhaus GmbH<br />
Brandstücken 18<br />
22549 Hamburg<br />
http://www.sag.de<br />
Preis<br />
auf Anfrage<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Natural<br />
Installation<br />
Auf <strong>der</strong> <strong>CD</strong>-ROM befinden sich zwei Powerpoint-Präsentationen,<br />
\definit\natural\natural.ppt und \definit\natural\ooad.ppt, die Sie durch einen Klick<br />
auf den Namen starten können. Die Präsentationen sind mit Powerpoint 4.0 erstellt.<br />
Auf dieser <strong>CD</strong>-ROM befindet sich auch ein Powerpoint-Betrachter.<br />
Hinweis<br />
Anfang 1997 stellt die Software AG eine begrenzte Vollversion von Natural<br />
Lightstorm zur Verfügung. Diese Version kann über das Internet über die Adresse<br />
http://www.swt.ruhr-uni-bochum.de/buchswt1.html abgerufen werden.<br />
Produkt<br />
Distributor/<br />
Hersteller<br />
Installation/<br />
Start
Einführung und Überblick (LE 1)<br />
LE 1<br />
Einführung<br />
& Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
1 Die Planungsphase (LE 2 - LE 3)<br />
LE 2 LE 3<br />
Einführung Function-<br />
& Überblick Point<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
2 Die Definitionsphase (LE 4 - LE 22)<br />
LE 4 LE 5 LE 6 LE 7<br />
Einführung & Funktions- ER–Modell Klassen -<br />
Überblick baum, DD... Diagramm<br />
LE 8 LE 9 LE 10 LE 11<br />
Kontroll- Regeln Zustands- Petri-Netze<br />
strukturen automaten<br />
LE 12 LE 13 LE 14 LE 15<br />
OOA – OOA – SA SA/RT<br />
Konzepte Methodik<br />
LE 16 LE 17 LE 18 LE 19<br />
Arbeitsplatz- Dialog- Dialog- E/A -<br />
gestaltung gestaltung 1 Gestaltung 2 Gestaltung 1<br />
LE 20 LE 21 LE 22<br />
E/A - Benutzer- Benutzer-Unter-<br />
Gestaltung 2 Handbücher stützungsystem<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
3 Die Entwurfsphase (LE 23 - LE 31)<br />
LE 23 LE 24 LE 25 LE 26<br />
Einführung & Datenbanken Relationale Objektorientierte<br />
Überblick Einführung Datenbanken Datenbanken<br />
LE 27 LE 28 LE 29 LE 30<br />
Verteilte OO- SD MD OOD<br />
Anwendungen Grundlagen<br />
LE 31<br />
OOD<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
4 Implementierungsphase (LE 32)<br />
LE 32<br />
Einführung &<br />
Überblick<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
5 Abnahme- & Einführungsphase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
6 Wartungs- & Pflegephase (LE 33)<br />
LE 33<br />
Die Abnahmephase<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 1 Einführung und Überblick<br />
Prof. Dr.-Ing. habil. Helmut Balzert<br />
Rudolf Paulus Gorbach<br />
Anna Solecka-Zach<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 2 Lastenheft und Schätzmethoden<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 3 Die Function Point-Methode<br />
Allan J. Albrecht<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 4 Die Definitionsphase –<br />
Einführung und Überblick<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 5 Basiskonzepte (Teil 1)<br />
John Warner Backus<br />
Prof. Dr. Peter Naur<br />
Michael Jackson<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 6 Basiskonzepte (Teil 2)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 7 Basiskonzepte (Teil 3)<br />
Prof. Dr. e. h. Kristen Nygaard<br />
Dr. Ivar Hjalmar Jacobson<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 8 Basiskonzepte (Teil 4)<br />
Prof. Dr. Edsger Wybe Dijkstra<br />
Michael Jackson<br />
Prof. Dr. Ben Shnei<strong>der</strong>man<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 9 Basiskonzepte (Teil 5)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 10 Basiskonzepte (Teil 6)<br />
Prof. Dr. David Harel<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 11 Basiskonzepte (Teil 7)<br />
Prof. Dr. Carl Adam Petri<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 12 OOA-Konzepte<br />
Peter Coad<br />
Dr. James Rumbaugh<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 13 OOA-Methodik<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 14 SA<br />
Tom DeMarco<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 15 SA/RT<br />
Derek Hatley<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 16 Software-Ergonomie (Arbeitsplatzebene)<br />
Dr. Alan C. Kay<br />
Prof. Dr. Ben Shnei<strong>der</strong>man<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 17 Software-Ergonomie (Dialoggestaltung 1)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 18 Software-Ergonomie (Dialoggestaltung 2)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 19 Software-Ergonomie (E/A-Gestaltung 1)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 20 Software-Ergonomie (E/A-Gestaltung 2)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 21 Benutzer-Handbücher<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 22 Benutzer-Unterstützungssysteme<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 23 Die Entwurfsphase –<br />
Einführung und Überblick<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 24 Datenbanken<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 25 Relationale Datenbanken<br />
Dr. Edgar Frank Codd<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 26 Objektorientierte Datenbanken<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 27 Verteilte objektorientierte Anwendungen<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 28 SD<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 29 MD<br />
Prof. Dr. David Lorge Parnas<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 30 OOD (Grundlagen)<br />
Grady Booch<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 31 OOD<br />
(Architektur- & Implementierungsentwurf)<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 32 Die Implementierungsphase<br />
Dr. Bjarne Stroustrup<br />
Prof. Dr. Niklaus Wirth<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
LE 33 Die Abnahme- & Einführungsphase<br />
Die Wartungs- & Pflegephase<br />
keine<br />
Inhalt<br />
Aufgaben<br />
Werkzeuge<br />
Biographien
Allan J. Albrecht<br />
* 6.2.1927 in Pittston, PA., USA<br />
IBM Senior Engineer and Program<br />
Manager (im Ruhestand)<br />
Adresse:<br />
PO Box 2782<br />
Orleans, MA 02653 USA<br />
n Erfin<strong>der</strong> <strong>der</strong> Function Point-Methode zur Aufwandsschätzung<br />
von Software-Entwicklungen im Rahmen seiner Tätigkeiten bei<br />
IBM (1979)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Allan J. Albrecht<br />
n 1945-1946: als Elektronik-Techniker bei <strong>der</strong> U.S. Navy<br />
n Elektroingenieur mit Schwerpunkt Elektronik (Bucknell-Universität)<br />
n IBM-Mitarbeiter bis 1989 (Eintritt in den Ruhestand)<br />
o Mitarbeit bei den ersten Digitalcomputern von IBM<br />
o 1955: Entwicklung von Echtzeit- und Simulationssoftware<br />
o 1955-1985: Mitarbeit beim Software-Projektmanagement, <strong>der</strong> Software-<br />
Planung und <strong>der</strong> Vermessung von Software<br />
o Management von Anwendungsentwicklungen einschl. Echtzeit-<br />
Flugsimulationen und Raketenteststeuerungen<br />
o 1979: Erfindung <strong>der</strong> Function Point - Methode<br />
o 1980-1989: Mitglied des IBM Corporate Staff (Messen und Verbessern <strong>der</strong><br />
internen Informationsverarbeitung)<br />
n 1990-heute: Teilzeit-Berater für Software-Entwicklung, Support, Meßtechnik<br />
und Management<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Allan J. Albrecht<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Estimating Application Development Projects, IBM Independent Study<br />
Program Workbook, 1979.<br />
2 Measuring Application Development Productivity, Proceedings of The<br />
Share, Guide, and IBM Application Development Symposium, Monterrey,<br />
California, October 14, 1979.<br />
3 Application Development and Maintenance Productivity Measurement and<br />
Estimate Validation, IBM Corporate Information Systems, 1984.<br />
Insgesamt über 35 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Allan J. Albrecht<br />
Forschung<br />
»To help change Software Application Development and Maintenance from<br />
an unpredictable (almost whimsical) process, to a manageable Software<br />
Engineering Science.«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Allan J. Albrecht<br />
n 1978: IBM Outstanding Contribution Award for developing and<br />
implementing the application development project management<br />
system known as MADP<br />
n 1986: Ernennung <strong>zum</strong> IBM Senior Technical Staff Member<br />
n 1994: Lifetime Achievement Award von <strong>der</strong> International Function<br />
Points Users Group für seine Arbeiten über Function Points<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
John Warner Backus<br />
*3.12.1924 in Philadelphia, Pa., USA<br />
IBM fellow (im Ruhestand)<br />
Adresse:<br />
91 Saint Germain Avenue<br />
San Fransisco<br />
CA 94114<br />
USA<br />
n Leiter des IBM-Teams, das die Programmiersprache<br />
FORTRAN erfand (1954-1958)<br />
n Erfin<strong>der</strong> <strong>der</strong> Backus-Naur-Form (BNF) zur<br />
Syntaxbeschreibung von Programmiersprachen (1958-1960)<br />
n Miterfin<strong>der</strong> <strong>der</strong> Programmiersprache ALGOL 60<br />
(Mitglied des 13-köpfigen internationalen Entwicklerteams)<br />
Hinweis: Die biographischen Angaben wurden entnommen aus: I.A.N. Lee, Computer<br />
Pioneers, Los Alamitos: IEEE Computer Society Press, S. 66-68<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
John Warner Backus<br />
Ausbildung<br />
n 1949: BS in Mathematik, Columbia University<br />
n 1950: AM in Mathematik, Columbia University<br />
Berufliche Laufbahn<br />
n 1950-1953: Programmierer bei IBM, Pure and Applied Science Departments<br />
n 1954-1958: Leiter <strong>der</strong> Forschungsabteilung für Programmierung<br />
n 1958-1963: Mitglied <strong>der</strong> IBM-Forschungsmannschaft<br />
n 1963-1991: IBM-fellow<br />
n 1974: Adjunct Professor of Information Sciences,University of<br />
California, Santa Cruz<br />
n 1980-1985: Gastprofessor an <strong>der</strong> University of California, Berkeley<br />
n 1991-heute: Berater des IBM Almaden Research Center<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
John Warner Backus<br />
Auswahl<br />
n IBM 701 Speedcoding and other Automatic-Programming Systems, ONR<br />
Symp. Automatic Programming for Digital Computers, ONR, Washington D.C.,<br />
1954, pp. 106-113 (zusammen mit Harlan Herrick).<br />
n Programmer´s Reference Manual, The Fortran Automatic Coding System for<br />
the IBM 704 EDPM, New York: IBM Corporation, 1956 (zusammen mit R.J.<br />
Beeber, S. Best, R. Goldberg, L.M. Haibt, H.L. Herrick, R.A. Nelson, D. Sayre,<br />
P.B. Sheridan, H. Stern, I. Ziller, R.A. Hughes, and R. Nutt).<br />
n The Syntax and Semantics of the Proposed International Algebraic Language<br />
of the Zürich ACM-GAMM Conference, in: Proc. First Int´l. Conf. Information<br />
Processing, Butterworth, London, 1960, pp. 125-132.<br />
n Can Programming be Liberated from the von Neumann Style? A Functional<br />
Style and Its Algebra of Programs, in: Comm. ACM., Vol. 21, 1978, pp. 613-<br />
641.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
John Warner Backus<br />
Forschungsschwerpunkte<br />
n Entwurf von Programmiersprachen<br />
n Funktionale Programmierung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
John Warner Backus<br />
n 1963: IBM fellow<br />
n 1967: W.W. McDowell Award, IEEE<br />
n 1975: National Medal of Science<br />
n 1977: ACM Turing Award<br />
n 1980: IEEE Computer Society Pioneer Award<br />
n Member, National Academy of Sciences<br />
n Member, National Academy of Engineers<br />
n 1993: Charles Stark Draper Award, National Academy of Engineering (NAE)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr.-Ing. habil.<br />
Helmut Balzert<br />
*1950 in Bebra, Hessen<br />
Lehrstuhl für Software-Technik<br />
Ruhr-Universität<br />
44780 Bochum<br />
Gebäude IC 4/36<br />
Tel.: 0234/7006880/6831<br />
Fax: 0234/7094427<br />
e-mail: hb@swt.ruhr-uni-bochum.de<br />
URL:http://www.swt.ruhr-uni-bochum.de<br />
n Autor des Buches »<strong>Lehrbuch</strong> <strong>der</strong> Software-Technik«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Ausbildung<br />
n 1968-1972: Studium <strong>der</strong> Elektrotechnik und Informatik, TH Darmstadt<br />
(Diplom 1973)<br />
Berufliche Laufbahn<br />
n 1973: Knapp einjährige Industrietätigkeit in <strong>der</strong> rechnerunterstützten<br />
Entwicklung und Konstruktion bei Telefunken Computer,<br />
Konstanz<br />
n 1974-1979: Wissenschaftlicher Assistent an <strong>der</strong> Universität Kaiserslautern<br />
in <strong>der</strong> Forschungsgruppe »Programmiersprachen und<br />
Compilerbau«<br />
n 1979: Promotion auf dem Gebiet <strong>der</strong> Entwurfssprachen<br />
n 1979-1983: Leiter <strong>der</strong> Abteilung »Software Engineering« bei <strong>der</strong> TA<br />
Triumph-Adler AG, Nürnberg<br />
o 1983-1988: Bereichsleiter für »Neue Technologien/Basisentwicklung«<br />
o 1986-1988: Zusätzlich kommissarische Leitung des Bereichs<br />
»Unternehmensentwicklung« bei TA<br />
n 1987: Habilitation an <strong>der</strong> Universität Stuttgart, Thema »Software-<br />
Ergonomie und Software Engineering«<br />
n Seit 1987: Inhaber des Lehrstuhls für Software-Technik an <strong>der</strong> Ruhr-<br />
Universität, Bochum<br />
n Seit 1996: Vorsitzen<strong>der</strong> des Aufsichtsrats <strong>der</strong> Schleupen Holding AG<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Ausgewählte Veröffentlichungen<br />
Bücher:<br />
n 1976: Informatik 1, Vom Problem <strong>zum</strong> Programm, München: Hueber-<br />
Holzmann-Verlag<br />
n 1978: Informatik 2, Vom Programm zur Zentraleinheit, Vom<br />
Systementwurf <strong>zum</strong> Systembetrieb, München: Hueber-<br />
Holzmann-Verlag<br />
n 1982: Die Entwicklung von Software-Systemen – Prinzipien,<br />
Methoden, Sprachen, Werkzeuge, Reihe Informatik, Band 34,<br />
Mannheim: Bibliographisches Institut<br />
n 1984: Fallstudie einer industriellen Software-Entwicklung – Definition,<br />
Entwurf, Implementierung, Abnahme, Qualitätssicherung, Reihe<br />
Informatik, Band 39, Mannheim: Bibliographisches Institut<br />
(zusammen mit H. Willmer)<br />
n 1989-1993: CASE – Systeme und Werkzeuge, 5 Auflagen, Reihe<br />
Angewandte Informatik, Band 7, Mannheim: Bibliographisches<br />
Institut (Hauptautor und Herausgeber)<br />
n 1993: Systematisches Testen mit Tensor, Reihe Angewandte<br />
Informatik, Band 9, Mannheim: Bibliographisches Institut<br />
(zusammen mit Heide Balzert und P. Liggesmeyer)<br />
n 1993: CASE – Auswahl, Einführung, Erfahrungen, Reihe Angewandte<br />
Informatik, Band 10, Mannheim: Bibliographisches Institut<br />
(Autor und Herausgeber)<br />
n 1996: <strong>Lehrbuch</strong> <strong>der</strong> Software-Technik, Reihe Lehrbücher <strong>der</strong><br />
Informatik, Heidelberg: Spektrum Akademischer Verlag ➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Artikel:<br />
n 1981: Das Software-Entwicklungssystem PLASMA, in: Angewandte<br />
Informatik, 5/81, S. 204-216<br />
n 1981: Methoden, Sprachen und Werkzeuge zur Definition,<br />
Dokumentation und Analyse von Anfor<strong>der</strong>ungen an Software-<br />
Produkte, in: Informatik-Spektrum, 4, S. 145-163, 246-260<br />
n 1985: Allgemeine Prinzipien des Software Engineering, in:<br />
Angewandte Informatik, 1/85, S. 1-8<br />
n 1985: Phasenspezifische Prinzipien des Software Engineering, in:<br />
Angewandte Informatik, 3/85, S. 101-110<br />
n 1985: Three experimental multimedia workstations - a realistic utopia<br />
for the office of tomorrow, in: EWICS Proceedings, May 1985<br />
n 1985: Wissensbasierte Systeme im Büro <strong>der</strong> Zukunft, Proceedings<br />
GI-Jahrestagung, Wien 1985, S. 113-137<br />
n 1986: Benutzeroberflächen, in: Informatik-Fachberichte Nr. 129,<br />
Heidelberg: Springer-Verlag 1986, S. 34-42<br />
n 1987: Gestaltungsziele <strong>der</strong> Software-Ergonomie - Versuch eines<br />
neuen, umfassenden Ansatzes, in: Berichte des German<br />
Chapter of the ACM, Stuttgart: Teubner-Verlag<br />
n 1987: A blackboard architecture to realize adaptive human-computer<br />
interfaces and application systems, in: Proceedings Second<br />
International Conference on Human-Computer-Interaction,<br />
Honolulu, August 1987<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Artikel:<br />
n 1988: Trends und Perspektiven <strong>der</strong> Software-Ergonomie, in: Einführung in<br />
die Software-Ergonomie, Berlin: de Gruyter-Verlag 1988, S. 345-374<br />
n 1993: Der JANUS-Dialogexperte: Vom Fachkonzept zur Dialogstruktur, in:<br />
<strong>Softwaretechnik</strong>-Trends, August 1993, S. 62-72 (Proceedings <strong>der</strong> GI-<br />
Fachtagung <strong>Softwaretechnik</strong> 93 in Dortmund)<br />
n 1994: Das JANUS-System: Automatisierte, wissensbasierte Generierung<br />
von Mensch-Computer-Schnittstellen, in: Informatik-Forschung und<br />
Entwicklung, Heidelberg: Springer-Verlag 9/1994, S. 22-35<br />
n 1995: Ein wissensbasiertes System zur Unterstützung des Benutzers <strong>der</strong><br />
ergonomischen Farbgestaltung für Dialogmasken, in: Proceedings<br />
Software-Ergonomie Fachtagung 95, Darmstadt (zusammen mit<br />
P. Heintzen und V. Kruschinski)<br />
n 1995: From OOA to GUI – The JANUS-System, in: Proceedings<br />
INTERACT 95, Lillehammer, Norwegen<br />
n 1995: Vom Programmieren <strong>zum</strong> Generieren - Auf dem Weg zur<br />
automatisierten Anwendungsentwicklung, in: Proceedings GI-<br />
Fachtagung <strong>Softwaretechnik</strong> 95, Braunschweig, S. 126-135<br />
(zusammen mit F. Hofmann und C. Niemann)<br />
n 1996: The JANUS Application Development Environment – Generating<br />
more than the User Interface, in: Proceedings CADUI 96, Namur,<br />
Belgien (zusammen mit F. Hofmann, V. Kruschinski, C. Niemann)<br />
Insgesamt über 100 Artikel und über 10 Bücher<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Forschungsschwerpunkte<br />
n Generierende Systeme<br />
n Objektorientierte Software-Entwicklung<br />
n Software-Ergonomie<br />
n CASE-Systeme<br />
n multimediale Lehr- und Lernsysteme<br />
Lehrveranstaltungen<br />
n Grundlagen <strong>der</strong> Informatik (2+1, 4. Semester, Pflichtvorlesung)<br />
n Ingenieurinformatik (2+1, 6. Semester, Pflichtvorlesung)<br />
n Software-Technik (4+2, Wahlpflichtvorlesung)<br />
n Software-Management (2+1, Wahlpflichtvorlesung)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Helmut Balzert<br />
Weitere fachbezogene Aktivitäten<br />
n Mitglied des Präsidiums <strong>der</strong> Gesellschaft für Informatik (1985-1988)<br />
n Mitglied im Fachausschuß »Ergonomie in <strong>der</strong> Informatik« in <strong>der</strong> Gesellschaft<br />
für Informatik (seit 1983), von 1983 bis 1988 Sprecher des Ausschusses<br />
n Mitglied im Softec-Verbund NRW e.V., seit 1996 stellvertreten<strong>der</strong><br />
Vorsitzen<strong>der</strong><br />
n Herausgeber <strong>der</strong> Buchreihen<br />
o Angewandte Informatik (Spektrum Akademischer Verlag)<br />
o Forschung in <strong>der</strong> Software-Technik (Spektrum Akademischer Verlag)<br />
o Mensch-Computer-Kommunikation (de Gruyter-Verlag)<br />
o Lehrbücher <strong>der</strong> Informatik (Spektrum Akademischer Verlag)<br />
n Sprecher <strong>der</strong> Fachgruppe <strong>Softwaretechnik</strong> in <strong>der</strong> Gesellschaft für Informatik<br />
(seit 1995)<br />
n Vorsitzen<strong>der</strong> des Koordinationsausschusses Multimedia an <strong>der</strong> Ruhr-<br />
Universität Bochum (seit 1996)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Grady Booch<br />
*27.2.1955 in Texas, USA<br />
Chief Scientist,<br />
Rational Software Corporation<br />
Adresse:<br />
Rational Software Corporation<br />
2800 San Tomas Freeway<br />
Santa Clara, CA 95051, USA<br />
e-mail: egb@rational.com<br />
n Pionier auf dem Gebiet des modularen und objektorientierten<br />
Softwareentwurfs<br />
o 1983: Buch Software Engineering with Ada<br />
o 1987: Buch Software Components with Ada<br />
o 1991/94:Buch Object Oriented Design with Applications<br />
n Pionier auf dem Gebiet wie<strong>der</strong>verwendbarer Bibliotheken<br />
o 1987: Komponentenbibliothek in Ada<br />
o 1991: Klassenbibliothek in C++ (foundation class library)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Grady Booch<br />
Ausbildung<br />
n 1977: BS in Computer Science, Air Force Academy<br />
n 1979: M.S.E.E. in Computer Engineering, University of California, Santa<br />
Barbara<br />
Berufliche Laufbahn<br />
n 1980-heute: Chief Scientist <strong>der</strong> Fa. Rational, Santa Clara<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Grady Booch<br />
Die wichtigsten drei Veröffentlichungen:<br />
n Object-Oriented Analysis and Design with Applications, Redwood City: The<br />
Benjamin/Cummings Publishing Company, 1994 (1. Auflage 1991 mit dem<br />
Titel: Object-Oriented Design with Applications).<br />
n Object Solutions: Managing the Object-Oriented Project, Menlo Park: The<br />
Benjamin/Cummings Publishing Company, 1995.<br />
n Software Engineering with Ada, Menlo Park: The Benjamin/Cummings<br />
Publishing Company, 1983.<br />
Insgesamt über 80 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Grady Booch<br />
Forschungsschwerpunkte<br />
n »object-oriented analysis, design, and architecture of complex systems«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Grady Booch<br />
n ACM Fellow<br />
n Rational Fellow<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Coad<br />
*30.12.1953 in San Francisco<br />
Präsident <strong>der</strong> Firma<br />
Object International, Austin<br />
Adresse:<br />
Object International, Inc.<br />
8140 N MoPac 4-200<br />
Austin TX 78 759<br />
USA<br />
Tel. +1 (512) 795-0202<br />
Fax +1 (512) 795-0332<br />
e-mail coad@oi.com<br />
URL http://www.oi.com/oi_home.html<br />
n Erzielte 1990 mit seinem Buch »Object-Oriented Analysis«<br />
(zusammen mit E. Yourdon) den Durchbruch in <strong>der</strong><br />
objektorientierten Analyse (Integration des Entity<br />
Relationship-Modells und des Zustandsautomaten in die<br />
Grundkonzepte <strong>der</strong> Objektorientierung)<br />
n Wegbereiter von OOA-Mustern (patterns) (1995)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Coad<br />
Ausbildung<br />
n 1977: BS in Elektrotechnik, Oklahoma State University<br />
n 1981: MS in Informatik, University of Southern California<br />
Berufliche Laufbahn<br />
n 1986-heute: Grün<strong>der</strong> und Präsident <strong>der</strong> Firma Object International, Austin,<br />
Texas<br />
Geschäftsfel<strong>der</strong>: Vertrieb des CASE-Systems »Together C++«,<br />
Ausbildung, Beratung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Coad<br />
Die wichtigsten drei Veröffentlichungen:<br />
n Object Models: Strategies, Patterns, and Applications, Prentice Hall, 1995<br />
(zusammen mit David North und Mark Mayfield).<br />
n Object-Oriented Programming, Prentice Hall, 1993 (zusammen mit Jill<br />
Nicola).<br />
n Object-Oriented Analysis, Second Edition, Prentice Hall, 1991 (zusammen<br />
mit Edward Yourdon).<br />
Insgesamt 8 Artikel und 4 Bücher publiziert<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Coad<br />
Forschungsschwerpunkte<br />
»Developing practical strategies and patterns for modeling and improving a<br />
business, followed by modeling and developing applications for a business«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Coad<br />
n 1993: Entrepreneur-of-the-Year Regional Finalist<br />
n “Top 10“ Book List (Computerworld, JOOP)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Dr. Edgar Frank Codd<br />
*19.8.1923 in Portland, Großbritannien<br />
n Erfin<strong>der</strong> des relationalen Datenbankmodells (1970)<br />
Hinweis: Ein Teil <strong>der</strong> Angaben wurde entnommen aus: Lee, Computer<br />
Pioneers, Los Alamitos: IEEE Society Press 1995<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edgar Frank Codd<br />
Ausbildung<br />
n 1948: BA und MA in Mathematik, Universität Oxford<br />
n 1965: Promotion in Kommunikationswissenschaften an <strong>der</strong> Universität<br />
Michigan<br />
Berufliche Laufbahn<br />
n 1942-1945: Kapitän <strong>der</strong> Royal Air Force<br />
n 1949: Ausbil<strong>der</strong> in Mathematik, Universität Tennessee<br />
n 1949-1981: Mitarbeiter von IBM (mit Unterbrechungen)<br />
o 1949-1951: Mathematiker/Programmierer, SSEC (Selective Sequence<br />
Electronic Calculator), New York<br />
o 1951-1952: Entwerfer, IBM-701 und IBM-702<br />
o 1957-1959: Entwerfer, IBM-7030 (Stretch)<br />
o 1957-1961: Erfin<strong>der</strong>, STEM (multiprogrammed control system)<br />
o 1969-1981: Entwickler des relationalen Datenmodells<br />
o 1984: Eintritt in den Ruhestand<br />
n 1953-1957: Computing Devices of Canada<br />
n 1985: Grün<strong>der</strong> von zwei Beratungsunternehmen, San Jose<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edgar Frank Codd<br />
Auswahl<br />
n Multiprogramming STRETCH: Feasibility Consi<strong>der</strong>ations, in: Comm. ACM,<br />
Vol. 2, No. 11, Nov. 1959, pp. 13-17.<br />
n Cellular Automata, New York: Academic Press, 1968 (Promotion).<br />
n A Relational Model of Data for Large Shared Data Banks, in: Comm.<br />
ACM, Vol. 13, No. 6, 1970.<br />
n How about Recently?, in: Proc. Int´l. Conf. Databases: Improving Useability and<br />
Responsiveness, Haifa, Israel, August 2-3, 1978.<br />
n Extending the Relational Model to Capture More Meaning, (RM/T), in: ACM<br />
Trans. Database Systems, Vol. 4, No. 4, 1979.<br />
n Missing Information (Applicable and Inapplicable) in Relational Databases,<br />
in: ACM SIGMOD Record, Vol. 15, No. 4, 1986.<br />
n Relational Database: A practical Foundation for Productivity, in: Comm. ACM,<br />
Vol. 25, No .2, 1982.<br />
n More Commentary on Missing Information in Relational Databases, in: ACM<br />
SIGMOD Record, Vol. 16, No. 1, 1987.<br />
n The Relational Model for Database Management: Version 2, Reading:<br />
Addison-Wesley Publ., 1990.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edgar Frank Codd<br />
Forschungsschwerpunkte<br />
n Multiprogramming<br />
n Relationale Datenbanken<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edgar Frank Codd<br />
n 1974: Fellow, British Computer Society<br />
n 1976: Fellow, IBM<br />
n 1981: Turing Award, ACM<br />
n 1983: Mitglied, National Academy of Engineering<br />
n 1994: Fellow, American Academy of Arts and Sciences<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Tom DeMarco<br />
*20.8.1940 in Hazleton, Pennsylvania, USA<br />
Principal, The Atlantic Systems Guild<br />
Adresse:<br />
The Atlantic Systems Guild<br />
PO Box 160<br />
Camden, Maine 04843 USA<br />
Tel.: +1 (207) 236-4735<br />
Fax: +1 (207) 236-8432<br />
e-mail: tdemarco@shore.net<br />
n Erfin<strong>der</strong> <strong>der</strong> Strukturierten Analyse (SA)<br />
o Buch: Structured Analysis and System Specification, 1978<br />
n Bedeutende Beiträge <strong>zum</strong> Software-Management<br />
o Buch: Peopleware, zusammen mit T. Lister, 1987<br />
o Buch: Controlling Software Projects, 1982<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Tom DeMarco<br />
Ausbildung<br />
n 1961: Diplom, University of Paris, Sorbonne<br />
n 1963: BSEE, Cornell University<br />
n 1965: MS in Elektrotechnik, Columbia University<br />
Berufliche Laufbahn<br />
n Mitarbeiter am ESS-1-Projekt, Bell Telephone Laboratories<br />
n Manager von Echtzeit-Projekten, La CEGOS Informatique, Frankreich<br />
n Grün<strong>der</strong> und Prinzipal <strong>der</strong> Atlantic Systems Guild, eines<br />
Beratungsunternehmens in New York und London (zusammen mit Tim Lister)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Tom DeMarco<br />
n Structured Analysis and System Specification, Prentice Hall, 1979.<br />
n Controlling Software Projects: Management, Measurement and Estimation,<br />
Prentice Hall, 1982.<br />
n Peopleware: Productive Projects and Teams; Dorset House, 1987<br />
(zusammen mit T. Lister).<br />
n Why Does Software Cost So Much? (And Other Puzzles of the Information<br />
Age), Dorset House, 1995.<br />
Insgesamt über 100 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Tom DeMarco<br />
Forschungsschwerpunkte<br />
n Management<br />
n Metriken<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Tom DeMarco<br />
n 1986: J.-D. Warnier Prize for »lifetime contribution to the field of computing«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. Edsger Wybe Dijkstra<br />
*11.5.1930 in Rotterdam, Nie<strong>der</strong>lande<br />
Schlumberger Centennial Chair<br />
of Computer Sciences<br />
The University of Texas at Austin<br />
Adresse:<br />
Department of Computer Sciences<br />
The University of Texas at Austin<br />
Austin TX 78712-1188<br />
USA<br />
Tel.: +1 (512) 343-2053<br />
Fax: +1 (512) 343-7807<br />
n Wegbereiter <strong>der</strong> strukturierten Programmierung<br />
n Erfin<strong>der</strong> von Algorithmen<br />
n Erfin<strong>der</strong> des Semaphor-Konzeptes<br />
n Entwickler des ersten ALGOL 60-Compilers (1960)<br />
n Erfin<strong>der</strong> <strong>der</strong> Datenstruktur Keller (stack)<br />
n Mitentwickler des Betriebssystems »THE Multiprogramming<br />
System«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edsger Wybe Dijkstra<br />
Ausbildung<br />
n 1948: Gymnasium Erasmianum, Rotterdam<br />
n 1951: Candidaats Examen in Mathematik und Physik, Universität Leyden<br />
n 1956: Doctoraal Examen in theoretischer Physik, Universität Leyden<br />
n 1959: Promotion, Thema: Real-time interrupt handler, Universität<br />
Amsterdam<br />
Berufliche Laufbahn<br />
n 1952-1962: Mitglied des mathematischen Zentrums in Amsterdam<br />
n 1962-1973: Professor für Mathematik, Eindhoven University of Technology<br />
n 1973-1984: Burroughs Research Fellow / Professor Extraordinarius<br />
n 1984-heute: Professor and Schlumberger Centennial Chair in Computer<br />
Science, University of Texas at Austin<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edsger Wybe Dijkstra<br />
Auswahl<br />
Bücher:<br />
n A Primer of ALGOL-60 Programming, New York: Academic Press,1962.<br />
n A Discipline of Programming, Englewood Cliffs: Prentice-Hall, 1976.<br />
n Methodik des Programmierens, Bonn: Addison-Wesley, Deutschland, 1985<br />
(zusammen mit W. H .J. Feijen).<br />
n Predicate Calculus & Program Semantics, Heidelberg: Springer Verlag,<br />
1990 (zusammen mit Carel S. Scholten).<br />
Buchkapitel:<br />
n “Recursive Programming,“ Programming Systems and Languages, New<br />
York: McGraw-Hill, pp. 221-227, 1967.<br />
n “Co-operating Sequential Process,“ Programming Languages, (ed. F.<br />
Genuys), London: Academic Press, pp. 43-112, 1968.<br />
n “Notes on Structured Programming,“ Structured Programming, London:<br />
Academic Press, 1972 (zusammen mit O. J. Dahl und C. A. R. Hoare).<br />
n “Programming Methodologies: their objectives and their nature,“ Structured<br />
Programming, Infotech Int. Ltd., Nicholson House, Maidenhead, Berkshire,<br />
England 1976.<br />
n “Why Correctness must be a Mathematical Concern,“ The Correctness<br />
Problem in Computer Science, Academic Press, 1981.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edsger Wybe Dijkstra<br />
Forschungsschwerpunkte<br />
n Korrektheit von Programmen<br />
n Algorithmen<br />
n Systeme<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edsger Wybe Dijkstra<br />
n 1964: Member of the Bataafsch Genootschap de Proefon<strong>der</strong>vindelijke<br />
Wijsbegeerte, Rotterdam<br />
n 1971: Member of the Royal Netherlands Academy of Arts and Sciences<br />
n 1971: Distinguished Fellow of the British Computer Society<br />
n 1971: Programming Systems and Languages Paper Award<br />
n 1972: Recipient of the ACM Turing Award<br />
n 1974: Recipient of the AFIPS Harry Goode Memorial Award<br />
n 1975: Foreign Honorary Member of the American Academy of Arts and<br />
Sciences<br />
n 1976: Doctor of Science Honoris Causa, The Queen´s University of<br />
Belfast<br />
n 1982: Recipient of the Computer Pioneer Award, IEEE Computer<br />
Society<br />
n 1989: Recipient of the ACM / SIGCSE Award for Outstanding<br />
Contributions to Computer Science Education<br />
n 1994: ACM Fellow<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Rudolf Paulus Gorbach<br />
*28.9.1939 in Kempten, Allgäu<br />
Visueller Gestalter<br />
Adresse:<br />
Schäftlarner Weg 3<br />
82131 Ganting-Buchendorf<br />
Tel.: 089/89340108<br />
Fax: 089/8509348<br />
n Bekannter Typograph, Buchgestalter und »Information<br />
Designer«<br />
n typographischer Gestalter dieses Buches<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Rudolf Paulus Gorbach<br />
Ausbildung<br />
n Nach <strong>der</strong> Schulzeit tätig als Buchdrucker und Musiker<br />
n Studium <strong>der</strong> Drucktechnik und Typographie in Berlin<br />
Berufliche Laufbahn<br />
n Hersteller und Herstellungsleiter in Buchverlagen<br />
n Seit 1971 Eigenes Büro für Gestaltung und Realisierung<br />
n Seit 1984 Zusammenarbeit mit Softwarehäusern und Elektronik-<br />
Buchverlagen<br />
n Seit 1984 Seminare zur Vorbereitung <strong>der</strong> Typographie in DTP-Systemen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Rudolf Paulus Gorbach<br />
Durchgeführte Arbeiten<br />
n Gesamte Gestaltung für Borland (Heimsoeth)<br />
n Microsoft System Journal (Gestaltung)<br />
n Systhema Verlag (Buch- und <strong>CD</strong>-ROM-Gestaltung)<br />
n Schriftentwicklung für Display-Schriften für Langenscheidt<br />
n Bücher (Autor und Gestalter):<br />
o 1992: Schriftrevue, EDTZ, Monotype<br />
o 1995: Textgestaltung am PC o<strong>der</strong> Mac, Ravensburger Verlag<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Rudolf Paulus Gorbach<br />
Lehre<br />
n Seit 1968 Lehrtätigkeit<br />
n Lehraufträge an den Universitäten Ulm und Osnabrück im Bereich Informatik<br />
n Lehraufträge an <strong>der</strong> Fachhochschule München (Druckereitechnik) sowie an<br />
<strong>der</strong> Akademie an <strong>der</strong> Einsteinstraße, München (Geschichte <strong>der</strong><br />
Typographie) und dem Siemens-Nixdorf-Trainingscenter (Technische<br />
Graphik und technische Dokumentation)<br />
n Zahlreiche Seminare in Verlagen, Institutionen und Firmen<br />
n Seit 1990 Veranstalter des Jahreskurs Typographie in München<br />
Sonstige fachliche Tätigkeiten<br />
n Mitarbeit im VDI-Ausschuß Benutzerinformation VDI 4500<br />
n 1. Vorsitzen<strong>der</strong> <strong>der</strong> Typographischen Gesellschaft München<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Rudolf Paulus Gorbach<br />
n 1991: Software-Marketing Preis<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. David Harel<br />
*12.4.1950 in London<br />
Professor für Mathematik am<br />
Weizmann-Institut in Rehovot, Israel<br />
Adresse:<br />
Dept. of Applied Mathematics and<br />
Computer Science<br />
The Weizmann Institute of Science<br />
Rehovot 76100 Israel<br />
Tel.: +972 (8) 342823<br />
Fax: +972 (8) 344122<br />
e-mail: harel@wisdom.weizmann.ac.il<br />
n Erfin<strong>der</strong> des Harel-Automaten (statecharts) (1983, veröffentlicht<br />
1987)<br />
n Mitentwickler des Statemate-CASE-Systems (1984-1987,<br />
veröffentlicht 1988 und später)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Harel<br />
Ausbildung<br />
n 1968-1971: Militär-Dienst, Israelische Armee<br />
n 1974: B.Sc., Math. and Computer Science, Dept. of Math., Bar-Ilan Univ.,<br />
Ramat-Gan, Israel.<br />
n 1976: M.Sc., Computer Science, Dept. of Appl. Math., Tel-Aviv Univ.,<br />
Israel<br />
n 1978: Ph.D., Computer Science, Dept. of EECS, Mass. Inst. of<br />
Technology, Cambridge, MA. Titel <strong>der</strong> Promotion: “Logics of<br />
Programs: Axiomatics and Descriptive Power“.<br />
Berufliche Laufbahn<br />
n 1978-1980: Visiting Scientist, IBM T.J. Watson Research Center, Yorktown<br />
Heights, NY.<br />
n 1982-1984: Berater, R&D Department, Israel Aircraft Industries<br />
n 1986-1987: Visiting Professor, Computer Science Dept., Carnegie-Mellon<br />
Univ., Pittsburgh, PA.<br />
n 1984-1991: Grün<strong>der</strong> und Chefwissenschaftler <strong>der</strong> Firma: i-Logix, Burlington,<br />
MA, USA, und Ad-Cad Ltd., Rehovot, Israel.<br />
n 1990-heute: Adjunct Professor, Open University, Israel.<br />
n 1994-1995: Visiting Professor, Computer Science Dept., Cornell University,<br />
Ithaca, NY.<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Harel<br />
Berufliche Laufbahn<br />
n 1980-heute: Department of Applied Mathematics and Computer Science, The<br />
Weizmann Institute of Science, Rehovot, Israel;<br />
o 1980-1983: Senior Scientist<br />
o 1983-1989: Associate Professor<br />
o 1989-heute: Professor<br />
o 1989-1995: Department Chairman<br />
o 1990-heute: The William Sussmann Professor of Mathematics<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Harel<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Algorithmics: The Spirit of Computing, Reading: Addison-Wesley, 1st<br />
edition 1987 (425 pp.), 2nd edition 1992 (476 pp.).<br />
2 Dynamic Logic, in: Handbook of Philosophical Logic (D. Gabbay and F.<br />
Guenthner eds.), Vol. II, Reidel Publishing Company, Dordrecht, 1984, pp.<br />
497-604.<br />
3 Statecharts: A visual Formalism for Complex Systems, {Science of<br />
Computer Programming} {\bf 8} (1987), 231-274.<br />
Über 75 Veröffentlichungen, 3 Bücher, 1 Patent<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Harel<br />
Forschungsschwerpunkte<br />
n Berechenbarkeits- und Komplexitätstheorie<br />
n Logik von Programmen<br />
n Theorie von Datenbanken<br />
n Automatentheorie<br />
n Visuelle Sprachen<br />
n Systems Engineering<br />
weitere fachliche Aktivitäten<br />
1988-1989: Mitglied, Higher Education Concil, Israel<br />
1989-1994: Mitglied, Academic Committee, Open University, Israel<br />
1990-1993: Science Advisor, USA/Israel Binational Science Foundation<br />
1990-heute: Mitglied, Israel Ministry of Education Committee on Computer<br />
Science<br />
1992-heute: Mitglied, General Council, Open University, Israel<br />
1992-1994: Mitglied, German/Israel Minerva Committee<br />
1993-heute: Mitglied, France/Israel Binational Science Foundation Committee<br />
Mitglied von »Editorial Boards«:<br />
n Information and Computation (monthly), Academic Press.<br />
n Design Automation for Embedded Systems: An International Journal, Kluwer<br />
publishers (Associate Editor)<br />
n ACM-Press/Addison-Wesley book series in computer science.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Harel<br />
n Book of the Year Award, Addison-Wesley, Wokingham, UK, 1987.<br />
n Best Paper Award, 10th Int´l Conf. on Software Engineering, Singapore, 1988.<br />
n Spring Main Book Selection, Macmillan Library of Science, 1988.<br />
n ACM´s Karl V. Karlstrom Outstanding Educator Award, 1992.<br />
n Fellow, Association for Computing Machinery (ACM), awarded 1994.<br />
n Fellow, Inst. of Electrical and Electronics Engineers (IEEE), awarded, 1995.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Derek Hatley<br />
*25.2.1934 in London, England<br />
Engineering Consultant<br />
Adresse:<br />
System Strategies<br />
2174 Rosewood Street<br />
Jenison<br />
Michigan 49428-8170<br />
USA<br />
Tel. +1 (616) 669-9915<br />
Fax +1 (616) 669-9916<br />
e-mail: 74710.1437@compuserve.com<br />
n Erfin<strong>der</strong> <strong>der</strong> Methode SA/RT (zusammen mit I.A.Pirbhai)<br />
(1987)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Derek Hatley<br />
Ausbildung<br />
n Studium <strong>der</strong> Elektrotechnik, Wandsworth Technical College und Hatfield<br />
Technical College, England<br />
n 1970: Master of Science in Electrical Engineering, Rochester Institute of<br />
Technology<br />
Berufliche Laufbahn<br />
n Über 40 Jahre Entwicklungserfahrung in <strong>der</strong> Industie auf folgenden Gebieten<br />
o Computer-Peripherie<br />
o Optische Zeichenerkennung<br />
o Militärische und kommerzielle Kommunikation und Navigationssysteme<br />
n Entwicklung <strong>der</strong> SA/RT-Methode<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Derek Hatley<br />
Die wichtigsten drei Veröffentlichungen<br />
n Strategies for Real-Time System Specification, Dorset House Publishing,<br />
1987 (zusammen mit I.A.Pirbhai).<br />
n Current System Development Practices Using The Hatley/Pirbhai<br />
Methods, in: Systems Engineering - The Journal of the International Council<br />
on Systems Engineering, Vol. 1, No. 1, July/September 1994.<br />
n System Development, in: Proceedings of the Embedded Systems<br />
Conference, Santa Clara, Miller Treemon Inc, Sept. 1992.<br />
Insgesamt mehr als 20 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Derek Hatley<br />
Forschungsschwerpunkte<br />
»Improved techniques for the integrated development of engineering systems with<br />
all their component technologies, such as electrical, electronic, and mechanical<br />
hardware, hydraulics, optics, software, and many others.«<br />
Weitere fachliche Aktivitäten<br />
»Provide training and consulting to industry in system, system development, and<br />
the application to them of the Hatley/Pirbhai methods.«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Derek Hatley<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Michael Jackson<br />
*16.2.1936 in Birmingham, England<br />
Unabhängiger Berater in London<br />
Adresse:<br />
101 Hamilton Terrace<br />
London NW8 9QX<br />
England<br />
Tel. +44 (171) 286 1814<br />
Fax +44 (266) 2645<br />
e-mail mj@ ic.ac.uk<br />
jacksonma@attmail.com<br />
n Erfin<strong>der</strong> <strong>der</strong> Jackson-Diagramme zur einheitlichen grafischen<br />
Darstellung von Daten- und Kontrollstrukturen (1975)<br />
n Erfin<strong>der</strong> <strong>der</strong> Entwicklungsmethode JSP (Jackson Structured<br />
Programming) (1975)<br />
n Erfin<strong>der</strong> <strong>der</strong> Entwicklungsmethode JSD (Jackson Structured<br />
Development) (1983)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Michael Jackson<br />
Ausbildung<br />
n 1954-1958: Literae Humaniores (Classics), Merton College Oxford<br />
n 1958-1961: Mathematik, Trinity Hall Cambridge<br />
Berufliche Laufbahn<br />
n 1962-1964: Maxwell Stamp Associates<br />
n 1964-1970: John Hoskyns & Company; Leiter <strong>der</strong> Gruppe für Software-<br />
Entwicklung und -Methoden<br />
n 1971-1990: Michael Jackson Systems Limited; 1971 Gründung <strong>der</strong><br />
eigenen Firma, 1971-1990 Direktor in <strong>der</strong> eigenen Firma<br />
n 1977-1985: Visiting Professor in Computer Science, Strathclyde<br />
University<br />
n 1979-1981: Visiting Professor in Computer Science, Imperial College<br />
n 1988-1991: Visiting Professor in Computer Science, UMIST<br />
n 1990-heute: Unabhängiger Berater für Software-Entwicklungsmethoden<br />
n 1990-heute: AT&T Bell Laboratories, zeitweise als Forscher tätig<br />
n 1993-heute: Visiting Professor in Computer Science, University of the<br />
West of England<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Michael Jackson<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Software Requirements and Specifications, Addison-Wesley, 1995<br />
2 System Development, Prentice-Hall, 1983<br />
3 Principles of Program Design, Academic Press, 1975<br />
Insgesamt 3 Bücher und über 50 Artikel<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Michael Jackson<br />
Forschungsschwerpunkte<br />
n Methoden für die Strukturierung, Analyse und Lösung von Software-<br />
Entwicklungsproblemen<br />
Weitere fachliche Aktivitäten<br />
n ACM Transactions on Software Engineering and Methodology, Editorial<br />
Board Member<br />
n Kluwer Automated Software Engineering, Editorial Board Member<br />
n Science of Computer Programming, Editorial Board Member<br />
n IFIPS Working Group 2.9 on Requirements Engineering, Member<br />
n IFIPS Working Group 2.3 on Programming Methodology, Member<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Michael Jackson<br />
n 1992: Ehrendoktor <strong>der</strong> »University of the West of England«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Dr. Ivar Hjalmar Jacobson<br />
*2.9.1939 in Ystad, Schweden<br />
Vice President Business Engineering<br />
Rational Software Corporation<br />
Adresse:<br />
Rational Software Corporation<br />
2800 San Tomas Expressway<br />
Santa Clara, CA 95051- 0951<br />
USA<br />
Tel.: +1 (408) 496 3972<br />
e-mail: ivar@ rational.com<br />
n Wegbereiter <strong>der</strong> objektorientierten Software-Entwicklung<br />
(use case driven approach)<br />
n Einführung <strong>der</strong> Interaktions-Diagramme in die objektorientierte<br />
Software-Entwicklung<br />
n Wegbereiter <strong>der</strong> objektorientierten Unternehmensmodellierung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ivar Hjalmar Jacobson<br />
Ausbildung<br />
n 1962: MS, Chalmers Institute of Technology, Gothenburg, Schweden<br />
n 1983-1984: Visiting Scientist, MIT Computer Science Lab, Cambridge, MA,<br />
USA<br />
n 1985: Dissertation in Computer Science, Royal Institute of Technology,<br />
Stockholm. Titel: »Concepts for Modeling Large Real Time<br />
Systems«<br />
Berufliche Laufbahn<br />
n 1963-1987: Software Manager, Ericsson, Stockholm<br />
n 1987-1990: Grün<strong>der</strong> und Präsident <strong>der</strong> Firma Objective Systems, Stockholm<br />
n 1991-1995: Vizepräsident für Technologie, Firma Objective Systems<br />
n 1994-1995: Vizepräsident für Marketing und Technologie, Firma Objectory<br />
Corporation, USA<br />
n seit 1995: Vizepräsident Business Engineering, Firma Rational Software<br />
Corporation, USA<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ivar Hjalmar Jacobson<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Object-Oriented Software Engineering - a Use Case Driven Approach,<br />
Reading: Addison-Wesley, 1992 (zusammen mit M. Christerson, P. Jonsson, G.<br />
Övergaord).<br />
2 The Object Advantage - Business Process Reengineering with Object<br />
Technology, Reading: Addison-Wesley, 1994 (zusammen mit M. Ericsson, A.<br />
Jacobson).<br />
3 Object-Oriented Development in an Industrial Enviroment, in: Proceedings of<br />
OOPSLA ´87, Special Issue of SIGPLAN Notices, Dec./1987, pp. 183 -191.<br />
Insgesamt über 30 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ivar Hjalmar Jacobson<br />
Forschungsschwerpunkt<br />
n »Techniques for formal specifiation of system modeling languages and system<br />
engineering processes«<br />
Weitere fachliche Aktivitäten<br />
n Member of the advisory board of the Journal of Object-Oriented Programming<br />
(JOOP)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ivar Hjalmar Jacobson<br />
n Das Buch »Object-Oriented Software Engineering - A Use Case Driven<br />
Approach« erhielt den Computer Language Productivity Award, 1992<br />
n Kjell Hultmann Prize, the first Swedish Association (SCA) award for<br />
»extraordinary achievement in promoting efficiency and productivity in the<br />
development and use of information technology«, 1994<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Dr. Alan C. Kay<br />
*1940<br />
Adresse:<br />
Apple<br />
n »Vater <strong>der</strong> PC« genannt<br />
n Erfin<strong>der</strong> des »dynabook«, eines »Notebook«-PCs, <strong>der</strong> Texte, Bil<strong>der</strong>,<br />
Sprache, Musik und Filme verarbeiten kann (Anfang <strong>der</strong> 70er Jahre)<br />
n Pionier auf dem Gebiet <strong>der</strong> Software-Ergonomie, schuf die Grundlagen für<br />
grafische Benutzungsoberflächen, überlappende Fenster, Mausbedienung,<br />
Piktogramme<br />
n Miterfin<strong>der</strong> <strong>der</strong> objektorientierten Programmiersprache Smalltalk-80<br />
n Wegbereiter <strong>der</strong> Computersysteme Alto Workstation (Xerox), Lisa und<br />
Macintosh (Apple)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Alan C. Kay<br />
Ausbildung<br />
n 1966: BS in Mathematik und Molekularbiologie, University of Colorado<br />
n 1969: Promotion in Informatik, University of Utah<br />
Berufliche Laufbahn<br />
n Mitarbeit an einem »blank-check«-Projekt am Xerox Palo Alto Research<br />
Center, Erfin<strong>der</strong> des »dynabook«, Mitarbeit an Smalltalk-80<br />
n Chef-Wissenschaftler von Atari<br />
n 1984-heute: Fellow bei Apple Computer<br />
n 1969-heute: AI-Projekt (SAIL), Stanford Junior University<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Alan C. Kay<br />
n Computer Software, in: Scientific American, Sept.1984.<br />
n The Early History of Smalltalk, in: ACM SIGPLAN Notices, March/1993, pp.<br />
69-96.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Alan C. Kay<br />
Forschungsgebiete<br />
n Software-Agenten<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Alan C. Kay<br />
n Fellow of the American Academy of Arts and Sciences<br />
n Fellow of the Royal Society of Arts<br />
n 1987: ACM Software Award<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. Peter Naur<br />
* 25.10.1928 in Fre<strong>der</strong>iksberg<br />
in <strong>der</strong> Nähe von Kopenhagen, Dänemark<br />
Professor an <strong>der</strong> Universität Kopenhagen<br />
Adresse:<br />
DIKU Dept. of Computer Science<br />
University of Copenhagen<br />
Universitetsparken 1<br />
DK 2100 Copenhagen<br />
Denmark<br />
Fax: +45 35321401<br />
n Miterfin<strong>der</strong> <strong>der</strong> Programmiersprache ALGOL 60<br />
(Mitglied des 13-köpfigen internationalen Entwicklerteams)<br />
n Verbesserung <strong>der</strong> von J. W. Backus erfundenen Backus-Naur-<br />
Form (BNF) und Anwendung bei Syntaxbeschreibung von<br />
ALGOL 60<br />
n Wesentliche Beiträge <strong>zum</strong> Compilerbau<br />
n Wegbereiter <strong>der</strong> Strukturierten Programmierung und <strong>der</strong><br />
Programmverifikation<br />
Hinweis: Die biographischen Angaben wurden entnommen aus: Peter Naur, Computing<br />
A Human Activity, Reading: Addison-Wesley 1992<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Naur<br />
n 1947-1949: Studium <strong>der</strong> Astronomie an <strong>der</strong> Universität Kopenhagen<br />
(mag. scient. degree 1949)<br />
n 1950-1951: Forschungsstudent am King´s College, Cambridge, England<br />
n 1952-1953: Besuch astronomischer Observatorien und Computer-Labors in<br />
den USA<br />
n 1953-1959: Wissenschaftlicher Assistent am Observatorium in Kopenhagen<br />
und Berater für Assembler-Sprachen am unabhängigen<br />
Computer-Labor Regnecentralen<br />
n 1957: Promotion auf dem Gebiet <strong>der</strong> Astronomie<br />
n 1959: Mitarbeiter des Computer-Labors Regnecentralen und involviert<br />
in die ALGOL 60-Entwicklung<br />
n 1960: Mitarbeit an dem endgültigen Entwurf <strong>der</strong> Programmiersprache<br />
ALGOL 60, Herausgeber des »Report on the Algorithmic<br />
Language ALGOL 60«, Mitglied <strong>der</strong> Compilergruppe für die<br />
Compiler ALGOL 60 und COBOL<br />
n 1969-heute: Professor am Institut Datalogy <strong>der</strong> Universität Kopenhagen<br />
(1. Informatik-Lehrstuhl in Dänemark)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Naur<br />
Auswahl<br />
n Report on the algorithmic language ALGOL 60, in: Comm. ACM3(6), 1960,<br />
pp. 299-314 (zusammen mit J. W. Backus, F. L. Bauer, J. Green, C. Katz, J.<br />
McCarthy, A. J. Perlis, H. Rutishauser, K. Samelson, B. Vauquois, J. H.<br />
Wegstein, A. van Wijngaarden, M. Woodger).<br />
n The design of the GIER ALGOL compiler, in: BIT 3(2),1963, pp. 124-140 and<br />
BIT 3(3), 1963, pp.145-166.<br />
n Goto statements and good ALGOL style, in: BIT 3(3), 1963, pp. 204-208.<br />
n The place of programming in a world of problems, tools and people, in: Proc.<br />
IFIP Congress 65, Vol. I. Washington, D.C.: Spartan Books, 1965, pp. 195-199.<br />
n Proof of algorithms by general snapshots, in: BIT 6(4), 1966, pp. 310-316.<br />
n Datalogy, the science of data and data processes and its place in education,<br />
in: Proc. IFIP Congress 68, Vol. II. Amsterdam, North-Holland: 1968, pp. 1383-<br />
1387.<br />
n Programming by action clusters, in: BIT 9(3), 1969, pp. 250-258.<br />
n Software Engineering, Brussels: Nato Science Committee, 1969. Reprinted in<br />
Software Engineering: Concepts and Techniques. New York: Petrocelli/<br />
Charter, 1976 (zusammen mit B. Randell und J. N. Buxton).<br />
n An experiment on program development, in: BIT 12(3), 1972, pp. 347-365.<br />
n Concise Survey of Computer Methods, Lund, Sweden: Studentlitteratur, 1974<br />
and New York: Petrocelli/Charter, 1974.<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Naur<br />
n Programming languages, natural languages, and mathematics, in: Comm.<br />
ACM 18(12), 1975, pp. 676-683.<br />
n An empirical approach to program analysis and construction, in: Systems<br />
Architecture, Proc. 6th ACM European Regional Conference, ICS 81,<br />
Guildford, England: Westbury House, 1981, pp. 265-272.<br />
n Formalization in program development, in: BIT 22(4), 1982, pp. 437-453.<br />
n Program development studies based on diaries, in: Psychology of Computer<br />
Use, ed. T. R. G. Green, S. J. Payne, and G. C. van <strong>der</strong> Veer. London:<br />
Academic Press, 1983, pp. 159-170.<br />
n Intuition in software development, in: Formal Methods and Software<br />
Development, Vol. 2: Colloquium on software engineering, ed. H. Ehrig, C.<br />
Floyd, M. Nivat, and J. Thatcher. Lecture Notes in Computer Science 186,<br />
Berlin: Springer, 1985, pp. 60-79.<br />
n Programming as theory building, in: Microprocessing and<br />
Microprogramming, 1985, pp. 15:253-261.<br />
n Human knowing, language, and discrete structures, Talk on Peter Naur´s<br />
60th birthday, at the Institute of Datalogy, Copenhagen University, 1988.<br />
Insgesamt über 300 Veröffentlichungen<br />
Hinweis: Viele <strong>der</strong> aufgeführten Veröffentlichungen sind nachgedruckt in: Peter<br />
Naur, Computing: A Human Activity, Reading: Addison-Wesley 1992<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Naur<br />
Forschungsschwerpunkte<br />
n Entwicklung und Beschreibung von Programmiersprachen<br />
n Compilerbau (ALGOL, COBOL)<br />
n Grundprinzipien <strong>der</strong> Datenverarbeitung<br />
n Programmentwicklung als menschliche Aktivität<br />
Lehre<br />
n Beschäftigung mit Ausbildungsfragen <strong>der</strong> Informatik<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Peter Naur<br />
n 1963: The G. A. Hagemann Medal<br />
n 1966: Jens Rosenkjær Prize<br />
n 1986: The Computer Pioneer Award of the IEEE Computer Society<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. e. h. Kristen Nygaard<br />
*27.8.1926 in Oslo, Norwegen<br />
Adresse:<br />
Department of Informatics<br />
University of Oslo<br />
Gaustadalleen 23<br />
Post Box 1080 Blin<strong>der</strong>n<br />
N - 0316 Oslo<br />
Norwegen<br />
Tel.: + 47 (22) 85 24 32<br />
Fax: + 47 (22) 85 24 01<br />
e-mail: Kristen @ ifi.uio.no<br />
n Erfin<strong>der</strong> <strong>der</strong> Programmiersprache SIMULA 67, die das<br />
Klassenkonzept in die Programmiersprachenwelt einführte<br />
(zusammen mit Ole-Johan Dahl)<br />
n Erfin<strong>der</strong> <strong>der</strong> objektorientierten Programmiersprache BETA<br />
(zusammen mit B. B. Kristensen, O. L. Madsen, B. Møller-<br />
Pe<strong>der</strong>sen)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Kristen Nygaard<br />
Ausbildung<br />
n 1945-1956: Studium <strong>der</strong> Mathematik an <strong>der</strong> Universität Oslo<br />
n 1956: cand. real., Universität Oslo<br />
Berufliche Laufbahn<br />
n 1949-1956: Lea<strong>der</strong> of the Computing Office of The Norwegian Defence<br />
Research Establishment and The Institute for Atomic Energy<br />
n 1957-1960: Lea<strong>der</strong> of the Operational Research Group for the Army and for the<br />
Air Defence at The Norwegian Defence Research Establishment<br />
n 1960-1984: The Norwegian Computer Center, 1962-1984: Director of<br />
Research<br />
n 1977-1996: Professor of Informatics, Universität Oslo (1977-1984 zeitweise,<br />
1984-1996 Vollzeit)<br />
n 1975-1976: Gastprofessor an <strong>der</strong> Aarhus-Universität, Dänemark<br />
n 1987: Gastprofessor an <strong>der</strong> Stanford-Universität und Visiting Scientist<br />
am Xerox Palo Alto Research Center<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Kristen Nygaard<br />
Auswahl<br />
n SIMULA - a Language for Programming and Description of Discrete Event<br />
Systems, Norwegian Computing Center, Oslo, 1965 (zusammen mit O.-J. Dahl)<br />
n SIMULA - An Algol Based Simulation Language, in: CACM, Sept 1966, pp.<br />
671-682 (zusammen mit O.-J. Dahl).<br />
n SIMULA 67 Common Base Language, Norwegian Computing Center 1968<br />
and later editions (zusammen mit O.-J. Dahl, B. Myhrhaug).<br />
n The DELTA System Description Language - Motivation, Main Concepts and<br />
Experience from Use, in: Software Engineering Environments, edited by<br />
H. Hünke. Proceedings of the Symposium held in Lahnstein, Germany, June 16-<br />
20, 1980, North-Holland, Amsterdam, 1981 (zusammen mit P. Handlykken).<br />
n BETA Project Working Note 1-8. Norwegian Computing Center, Oslo and<br />
Computer Science Department, Aarhus University, Aarhus, 1976-1980<br />
(zusammen mit B. B. Kristensen, O. L. Madsen).<br />
n Syntax Directed Program Modularization, in: Interactive Computing Systems<br />
(ed. P. Degano and E. Sandewall), North-Holland, 1983 (zusammen mit B. B.<br />
Kristensen, O. L. Madsen, B. Møller-Pe<strong>der</strong>sen).<br />
n Abstraction Mechanisms in the BETA Programming Language, Proceedings<br />
of the Tenth ACM Symposium on Principles of Programming Languages,<br />
January 24-26, 1983, Austin, Texas (zusammen mit B. B. Kristensen, O. L.<br />
Madsen, B. Møller-Pe<strong>der</strong>sen).<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Kristen Nygaard<br />
n Multisequential Execution in the BETA Programming Language, Sigplan<br />
Notices, Vol. 20, No. 4 April 1985 (zusammen mit B.B. Kristensen, O. L.<br />
Madsen, B. Møller-Pe<strong>der</strong>sen).<br />
n The BETA Programming Language, in: Research Directions in Object-<br />
Oriented Languages (ed. B. Shriver and P. Wegner), MIT Press, Cambridge,<br />
Massachusetts 1987 (zusammen mit B. B. Kristensen, O. L. Madsen,<br />
B. Møller-Pe<strong>der</strong>sen).<br />
n Object Oriented Programming in the BETA Programming Language,<br />
Addison-Wesley/ACM Press, 1993, 357 pp., ISBN 0-201-62430-3<br />
(zusammen mit O. L. Madsen, B. Møller-Pe<strong>der</strong>sen).<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Kristen Nygaard<br />
Forschungsgebiete<br />
n Objektorientierte Programmierung, Analyse und Entwurf<br />
n Programmiersprachenentwurf: Simula I, Simula 67, Delta, Beta<br />
n Soziale Implikationen <strong>der</strong> Informationstechnik<br />
n Benutzerbeteiligung bei <strong>der</strong> Systementwicklung<br />
n Systementwicklung als ein technischer, sozialer und politischer Prozeß<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Kristen Nygaard<br />
n 1990: The Nobert Wiener Prize for responsibility in professional and<br />
social work, awarded by the American association Computer<br />
Professionals for Social Responsibility.<br />
n 1990: Doctor Honoris Causae, awarded by Lund University, Sweden.<br />
n 1991: Doctor Honoris Causae, awarded by Aalborg University, Denmark.<br />
n Member of the Norwegian Academy of Science.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. David Lorge Parnas<br />
*10.2.1941 in New York<br />
Adresse:<br />
Communications Research Laboratory<br />
Department of Electrical and<br />
Computer Engineering<br />
McMaster University<br />
Hamilton, Ontario, Canada, L8S 4K1<br />
Tel:. +905 (525) 9140 x 27353 (work)<br />
Fax: +905 (521) 2922 (work)<br />
n Erfin<strong>der</strong> des Geheimnisprinzips (information hiding) (1971)<br />
n Wegbereiter des Modularen Entwurfs (1972)<br />
o Spezifikation von Moduln<br />
o Trennung von Spezifikation und Implementierung<br />
o modulare Softwarearchitektur<br />
n Beiträge zur Disziplin Software-Technik (seit 1975)<br />
n Beiträge zur Qualitätssicherung von Software<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
Ausbildung<br />
n 1957-1961: B.S. in Electrical Engineering (with honours), Carnegie Institute of<br />
Technology, Pittsburgh, Pa.<br />
n Herbst 1961:Graduate student at University of Michigan, Ann Arbor, MI; “A“<br />
average.<br />
n 1962-1965: Graduate student at Carnegie Institute of Technology<br />
M.S. 1964 Electrical Engineering<br />
Ph.D. 1965 Electrical Engineering-Systems & Communications<br />
Sciences<br />
Berufliche Laufbahn<br />
n 1965-1966: Assistant Professor of Computer Science, University of Maryland,<br />
College Park, Maryland.<br />
n 1966-1969: Assistant Professor of Computer Science and Electrical<br />
Engineering, Carnegie-Mellon University, Pittsburgh, Pa.<br />
n 1969-1970: Advisor to Philips-Electrologica, Apeldoorn, The Netherlands<br />
n 1970-1973: Associate Professor of Computer Science, Carnegie-Mellon<br />
University, Pittsburgh, Pa.<br />
n 1972-1979: Consultant to the Naval Research Laboratory.<br />
n 1973-1976: Professor and Head of the Research Group on Operating Systems<br />
at the Technical University of Darmstadt, West Germany.<br />
n 1976-1982: Professor of Computer Science at University of North Carolina at<br />
Chapel Hill.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
Auswahl<br />
n System Function Description-Algol, (Ph.D. Thesis), Computation Center,<br />
Carnegie-Mellon University, Pittsburgh, PA., February 1965, 100 pp.<br />
n Information Distributions Aspects of Design Methodology, Proceedings of<br />
IFIP Congress ´71, 1971, Booklet TA-3, pp. 26-30.<br />
n A Technique for Software Module Specification with Examples,<br />
Communications of the ACM, 15, 5. May 1972, pp. 330-336.<br />
n On the Criteria to be Used in Decomposing Systems into Modules,<br />
Communications of the ACM, 15, 12. December 1972, pp. 1053-1058.<br />
n On a ´Buzzword´: Hierarchical Structure,IFIP Congress ´74, North Holland<br />
Publishing Company, 1974, pp. 336-339.<br />
n Software Engineering or Methods for the Multi-Person Construction of Multi-<br />
Version Programs, in: Programming Methodology, (eds. G. Goos, J.<br />
Hartmanis), Lecture Notes in Computer Science 23, Springer Verlag, Berlin,<br />
1975, pp. 1-11.<br />
n The Influence of Software Structure on Reliability, Proceedings International<br />
Conference on Reliable Software, April 1975, Los Angeles, Ca., pp. 358-362.<br />
Reprinted with improvements in Yeh, R., Current Trends in Programming<br />
Methodology (I), Prentice Hall, 1977.<br />
n On the Design and Development of Program Families, IEEE Transactions on<br />
Software Engineering, Vol. SE-2, No. 1, March 1976, pp. 1-9.<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
n The Use of Precise Specifications in the Development of Software,<br />
Proceedings of the IFIP Congress ´77, North Holland Publishing Company,<br />
pp. 861-867.<br />
n Some Software Engineering Principles, Infotech State of the Art Report on<br />
Structured Analysis and Design, Infotech International, 1978, 10 pp.<br />
n Active Design Reviews: Principles and Practices, Proceedings of the 8th<br />
International Conference on Software Engineering, London, August 1985<br />
(zusammen mit D. M. Weiss).<br />
Also published in Journal of Systems and Software, December 1987.<br />
n Software Aspects of Strategic Defense Systems, American Scientist, Vol. 73,<br />
No. 5, Sept.-Oct. 1985, pp. 432-440. (revised version of UVic Report No. DCS-<br />
47-IR).<br />
Also published in Communications of the ACM, 28, 12. December 1985,<br />
pp. 1326-1335.<br />
n A Rational Design Process: How and Why to Fake It, IEEE Transactions on<br />
Software Engineering, Vol. SE-12, No. 2, February 1986, pp. 251-257<br />
(zusammen mit P. C. Clements).<br />
n Warum ich an SDI nicht mitarbeite: Eine Abfassung beruflicher Verantwortung,<br />
Informatik-Spektrum, Band 10, Heft 1, Februar 1987, pp. 3-10.<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
n EvaluationStandards for Safety Critical Software, Technical Report No. 88-220,<br />
Queen´s University, Dept. of Computing & Information Science, May 1988, 34<br />
pp. (zusammen mit S. P. Kwan und J. van Schouwen).<br />
n Can We Tolerate Software Errors?, Proceedings of the IFIP 11th World<br />
Computer Congress, San Francisco, 28 August - 1. September 1989.<br />
Published in Information Processing ´89, G. X. Ritter (editor), North Holland<br />
1989, p. 502 (ISBN 0-444-88015-1).<br />
n Education for Computing Professionals, IEEE Computer, vol. 23, no. 1,<br />
January 1990, pp. 17-22.<br />
Insgesamt über 175 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
Forschungsschwerpunkte<br />
n »I have been studying the problems of software engineering since 1965. By<br />
combining system construction, consultation, and academic research I have<br />
been able to develop principles and methods that are both of academic interest<br />
and of value to those with real-world problems. My work, which is listed below,<br />
has received wide recognition. It includes a number of papers on modularity,<br />
specifications, and concurrency that are consi<strong>der</strong>ed fundamental contributions.«<br />
Weitere fachliche Aktivitäten<br />
n Soziale Verantwortung des Software-Ingenieurs<br />
o 1990-1993: Präsident, Science for Peace<br />
o 1991-1993: Deputy Chairman, Canadian Pug Wash Group<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
David Lorge Parnas<br />
n 1979: Best Paper Award of the Association for Computing Machinery.<br />
n 1986: Ehrendoctor Doctor of Technical Science, granted by Swiss Fe<strong>der</strong>al<br />
Institute of Technology in Zürich (ETH Zürich).<br />
n 1987: Norbert Wiener Award for Professional and Social Responsibility from<br />
Computing Professionals for Social Responsibility.<br />
n 1992: Fellow of the Royal Society of Canada.<br />
n 1994: Fellow of the Association for Computing Machinery.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. Carl Adam Petri<br />
*12.7.1926 in Leipzig<br />
Professor an <strong>der</strong> Universität<br />
Hamburg<br />
Adresse:<br />
Konrad-Adenauer-Str. 40<br />
53757 St. Augustin<br />
Tel. 02241 / 341987<br />
n Erfin<strong>der</strong> <strong>der</strong> Petri-Netze<br />
n Entwicklung einer allgemeinen Theorie diskreter Systeme, die<br />
auf den Konzepten <strong>der</strong> Nebenläufigkeit, <strong>der</strong> Verteiltheit und<br />
<strong>der</strong> asynchronen Kommunikation aufbaut<br />
Hinweis: Die Laudatio zur Verleihung <strong>der</strong> Konrad-Zuse-Medaille 1993 ist abgedruckt in:<br />
Informatik-Spektrum 1994, 17, S. 79-81<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Carl Adam Petri<br />
Ausbildung<br />
n 1950-1954: Studium <strong>der</strong> Mathematik, Technische Universität Hannover<br />
Stipendium <strong>der</strong> »Studienstiftung des Deutschen Volkes«<br />
n 1955: Training bei IBM<br />
n 1956: Diplom in Mathematik, TU Hannover<br />
n 1956-1958: wissenschaftlicher Assistent, TU Hannover<br />
n 1959-1962: wissenschaftlicher Assistent , Universität Bonn<br />
n 1962: Promotion <strong>zum</strong> Dr. rer. nat., TH Darmstadt<br />
Titel <strong>der</strong> Dissertation: Kommunikation mit Automaten<br />
Berufliche Laufbahn<br />
n 1963-1968: Kustos an <strong>der</strong> Universität Bonn, Einrichtung und Leitung des<br />
Rechenzentrums<br />
n 1968-1991: Leiter des Instituts für Informationssystemforschung an <strong>der</strong> neu<br />
gegründeten GMD (Gesellschaft für Mathematik und<br />
Datenverarbeitung) (seit 1991 im Ruhestand)<br />
n 1988-heute: Honorarprofessor an <strong>der</strong> Universität Hamburg<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Carl Adam Petri<br />
Veröffentlichungen mit Bezug zur Software-Technik<br />
n Kommunikation mit Automaten, Bonn, Rheinisch-Westfälisches Institut für<br />
Instrumentelle Mathematik, Schrift #2, 1962.<br />
n Interpretations of Net Theory, St Augustin, Gesellschaft für Mathematik und<br />
Datenverarbeitung, Int. Bericht ISF-75-07, 1975. Second Edition 1976.<br />
n Nicht-sequentielle Prozesse, Arbeitsberichte des IMMD, Universität Erlangen-<br />
Nürnberg. Vol. 9, Nr. 8, 1976, pp. 55-82.<br />
n General Net Theory, in: Shaw, B. (Ed.): Computing System Design.<br />
Proceedings of the Joint IBM/University of Newcastle-upon-Tyne Seminar Sept.<br />
1976. University of Newcastle 1977.<br />
n Communication Disciplines, in: Shaw, B.(Ed.): Computing Systems Design.<br />
Proceedings of the Joint IBM/University of Newcastle-upon-Tyne Seminar Sept<br />
1976. University of Newcastle 1977.<br />
n Kommunikationsdisziplinen, in: Berichte <strong>der</strong> Gesellschaft für Mathematik und<br />
Datenverarbeitung 111. R., Oldenburg, München, Wien 1979, pp. 63-76.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Carl Adam Petri<br />
Forschungsschwerpunkte<br />
n Netztheorie<br />
n netzbasierte Organisationstheorie<br />
n Semantik nichtsequentieller Prozesse<br />
Weitere fachliche Aktivitäten<br />
n 1968: Konzeption eines »Instituts für Software-Technologie« an <strong>der</strong> GMD<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Carl Adam Petri<br />
n 1962 Auszeichnung für die beste Dissertation des Jahres, TH Darmstadt<br />
n 1985 Honorary Chairman, Steering Committee ICPN<br />
n 1988 Bundesverdienstkreuz 1. Klasse <strong>der</strong> Bundesrepublik Deutschland<br />
n 1989 Gewähltes Mitglied <strong>der</strong> Academia Europaea, London<br />
n 1993 Konrad-Zuse-Medaille für hervorragende Beiträge zur Entwicklung <strong>der</strong><br />
Informatik<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Dr. James Rumbaugh<br />
*22.8.1947 in Bethlehem, PA, USA<br />
Fellow, Rational Software Corporation<br />
Adresse:<br />
Rational Software Corporation<br />
2800 San Tomas Expressway<br />
Santa Clara CA 95 051 USA<br />
e-mail: rumbaugh@rational.com<br />
n Chefentwickler <strong>der</strong> OMT-Methode (Object Modeling<br />
Technique), die heute zu den führenden objektorientierten<br />
Entwicklungsmethoden zählt<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
James Rumbaugh<br />
Ausbildung<br />
n 1967: BS in Physik, MIT<br />
n 1975: Promotion in Informatik, MIT<br />
n 1986: MS in Astronomie, California Institute of Technology<br />
Berufliche Laufbahn<br />
n 1968-1994: »Senior staff scientist« in Informatik, General Electric<br />
Reseach & Development Center<br />
n 1994-heute: »Rational Fellow«, verantwortlich für objektorientierte<br />
Methodik, Rational Software Corporation<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
James Rumbaugh<br />
n Object-Oriented Modeling and Design (zusammen mit vier Co-Autoren),<br />
Prentice Hall 1991.<br />
n Monatliche Kolumne: Journal of Object-Oriented Programming, SIGS<br />
Publications, New York, seit 1991.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
James Rumbaugh<br />
Forschungsschwerpunkte<br />
n früher: »Modeling of computation, algorithms, programming development«<br />
n heute: Objektorientierte Methodik, Entwurf und Programmierung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
James Rumbaugh<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. Ben Shnei<strong>der</strong>man<br />
*21.8.1947 in New York<br />
Professor of Computer Science<br />
Adresse:<br />
Department of Computer Science<br />
University of Maryland<br />
College Park, MD 20742<br />
USA<br />
Tel.: +1 (301) 405-2680<br />
Fax: +1 (301) 405-67<br />
e-mail: ben@cs.umd.edu<br />
n Miterfin<strong>der</strong> <strong>der</strong> Struktogramm-Notation (1973) (Nasi-<br />
Shnei<strong>der</strong>man-Diagramme)<br />
n Wegbereiter <strong>der</strong> direkten Manipulation von<br />
Benutzungsoberflächen<br />
n Wegbereiter <strong>der</strong> Software-Psychologie<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ben Shnei<strong>der</strong>man<br />
Ausbildung<br />
n BS in Mathematik, City College of New York<br />
n MS, State University of New York at Stony Brook<br />
n Promotion, State University of New York at Stony Brook<br />
Berufliche Laufbahn<br />
n Lehre an <strong>der</strong> University of New York und <strong>der</strong> Indiana University<br />
n Jährliche Kurse über »User Interface Strategies«, die über Satellitenfernsehen<br />
übertragen wurden<br />
n Urheber des Hypermedia-Systems Hyperties<br />
n Heute: Professor im Department of Computer Science, University of Maryland,<br />
Leiter des »Human-Computer Interaction Laboratory«, Mitglied des<br />
»Systems Research Center«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ben Shnei<strong>der</strong>man<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Software Psychology: Human Factors in Computer and Information Systems,<br />
Cambridge, Massachusetts: Winthrop Publishers, 1980.<br />
2 Designing the User Interface: Strategies for Effective Human-Computer<br />
Interaction, Reading: Addison-Wesley, 1987 (zweite Auflage 1992).<br />
3 Flowchart Techniques for Structured Programming (zusammen mit I. Nassi), in:<br />
SIGPLAN, Aug. 1973, S. (12-26).<br />
Insgesamt mehr als 180 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ben Shnei<strong>der</strong>man<br />
Forschungsschwerpunkte<br />
n Entwurf von Benutzungsoberflächen<br />
n Software-Technik<br />
n Datenbanken und Informationssysteme<br />
n Ausbildung<br />
n Soziale Auswirkungen<br />
Weitere fachliche Aktivitäten<br />
n Mitglied im »Editorial Advisory Board« von<br />
o International Journal of Man-Machine Studies<br />
o Interacting with Computers<br />
o Behaviour and Information Technology<br />
o International Journal of Human-Computer-Interaction, Hypermedia, and Human-<br />
Computer Interaction Abstracts<br />
n Editor <strong>der</strong> Buchserie »Human-Computer Interaction« (Ablex Publishing Co.)<br />
n Berater und Referent bei vielen Organisationen und Firmen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Ben Shnei<strong>der</strong>man<br />
n Ehrendoktor <strong>der</strong> »University of Guelph«, Kanada<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Anna Solecka-Zach<br />
*10.2.1954 in Zamosc, Polen<br />
Malerin<br />
Adresse:<br />
Robbenplate 23<br />
28259 Bremen<br />
n Künstlerin, die den Computer als Hilfsmittel für die Erstellung<br />
ihrer Bil<strong>der</strong> einsetzt.<br />
n Malerin des Bildes auf <strong>der</strong> ersten Umschlagseite:<br />
»ohne Titel«, Acryl, Pigment, Buntstift, Ölkreide auf Leinwand,<br />
Plotter,<br />
120 x 100 cm, 1995<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Anna Solecka-Zach<br />
Ausbildung<br />
n Studium an <strong>der</strong> Kunsthochschule in Danzig<br />
Berufliche Laufbahn<br />
n Seit 1979 als freie Malerin tätig<br />
n Seit 1981 Wohnsitz in Bremen<br />
n Seit 1987 erste Arbeiten mit dem Matrixdrucker<br />
n Seit 1989 entstehen großformatige Arbeiten auf einem Plotter für<br />
Künstlerstifte<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Anna Solecka-Zach<br />
Einzelausstellungen<br />
1979 Galerie Sein Gdanska - Danzig<br />
1980 Galerie BWA - Danzig<br />
1980 Galerie Sciana Wschodnia - Warschau<br />
1981 Galerie Gruppe Grün - Bremen<br />
1981 Kunstverein Unna - Unna<br />
1981 Galerie Schoof - Heidelberg<br />
1981 Galerie Voss - Dortmund<br />
1983 Kunstverein Lohne<br />
1984 Galerie Voss - Dortmund<br />
1984 Centre Roger Portugal - Nantes<br />
1985 Weserburg - Bremen (zus. mit Hebe Sosa)<br />
1985 Galerie Katrin Rabus - Bremen<br />
1985 Galerie K - Cuxhaven<br />
1985 Galerie im Spieker - Borken/Westfalen<br />
1988 Galerie Katrin Rabus - Bremen<br />
1989 Galerie im Spieker - Borken/Westfalen<br />
1992 Galerie K - Cuxhaven (zus. mit Wolfgang Zach)<br />
1993 Galerie am Lambertihof - Oldenburg<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Anna Solecka-Zach<br />
Ausstellungsbeteiligungen<br />
1978 Metaphora - Danzig<br />
1979 Preis in <strong>der</strong> Ausstellung im Namen von Jan Spychalski - Posen<br />
1980 Preis in <strong>der</strong> Ausstellung Wintersalon in Radom<br />
1980 Junge Polnische Kunst - Lodz<br />
1982 2. Bremer Kunstausstellung - GAK Bremen<br />
1982 Große Düsseldorfer Kunstausstellung<br />
1983 Vier Bremer Künstler - Kunsthalle Bremerhaven<br />
1990 Artware - C-Bit Messe Hannover<br />
Kunst und Technologie - GAK Bremen<br />
1991 Multimediale 2 - ZKM Karlsruhe<br />
1992 2. Preis in <strong>der</strong> Ausstellung „Computergrafik“ in <strong>der</strong><br />
Stadtsparkasse in Karlsruhe<br />
1994 Dialog <strong>der</strong> Formen - Galerie Arche Danzig<br />
1995 Galerie K - Cuxhaven<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Anna Solecka-Zach<br />
n 1992 2. Preis in <strong>der</strong> Ausstellung »Computergrafik« in <strong>der</strong> Sparkasse in<br />
Karlsruhe<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Dr. Bjarne Stroustrup<br />
*30.12.1950 in Aarhus, Dänemark<br />
Head of AT&T Research’s Large-Scale<br />
Programming Research Department<br />
Adresse:<br />
e-mail: bs@research.att.com<br />
n Erfin<strong>der</strong> <strong>der</strong> Programmiersprache C++ (1979-1985)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Bjarne Stroustrup<br />
Ausbildung<br />
n 1975: Cand. Scient., Mathematik und Informatik, Universität Aarhus,<br />
Dänemark<br />
n 1979: Promotion in Informatik, Universität Cambridge, England<br />
Berufliche Laufbahn<br />
n 1979-1995: AT&T Bell Laboratories’ Computer Science Network Center<br />
n 1996 - heute: Leiter des AT&T Research’s Large-Scale Programming<br />
Research Department<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Bjarne Stroustrop<br />
Die wichtigsten drei Veröffentlichungen<br />
n 1991: The C++ Programming Language (2nd Edition), Addison-<br />
Wesley.<br />
n 1994: The Design and Evolution of C++, Addison-Wesley.<br />
n 1995: Foundations for Native C++ Styles, in: Software Practice and<br />
Experience, Vol. 25, special issue S4 (zusammen mit A.R.<br />
Koenig)<br />
n 1986: What is Object-Oriented Programming?, in: Proc. 14th ASU<br />
Conference, pp. 69-84.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Bjarne Stroustrop<br />
Forschungsschwerpunkte<br />
n »My long-term interest is to un<strong>der</strong>stand large and/or complicated systems.<br />
This has led me to simulation, design, and programming, languages, and<br />
development tools.«<br />
Weitere fachliche Aktivitäten<br />
n ANSI/ISO-Standardisierung von C++<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Bjarne Stroustrop<br />
n 1993: Recipient of the ACM Grace Murray Hopper award.<br />
n 1993: ACM fellow.<br />
n 1994: AT&T Bell Laboratories Fellow.<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Prof. Dr. Niklaus Wirth<br />
*15.2.1934 in Winterthur, Schweiz<br />
Professor an <strong>der</strong> ETH Zürich<br />
Adresse:<br />
Institut für Computersysteme<br />
ETH Zürich<br />
CH-8092 Zürich<br />
e-mail: wirth@inf.ethz.ch<br />
n Erfin<strong>der</strong> <strong>der</strong> Programmiersprachen Pascal (1970), Modula-2<br />
(1982) und Oberon (1989)<br />
n Erfin<strong>der</strong> <strong>der</strong> Computersysteme Lilith (1980) und Ceres (1986)<br />
zusammen mit ihren Betriebssystemen<br />
n Wegbereiter <strong>der</strong> strukturierten Programmierung und <strong>der</strong><br />
schrittweisen Verfeinerung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Niklaus Wirth<br />
Ausbildung<br />
n 1954-1958: Studium <strong>der</strong> Elektrotechnik, ETH Zürich (Diplom 1958)<br />
n 1960: M.Sc., Laval Universität, Quebec, Kanada<br />
n 1963: Promotion in Elektrotechnik, University of California at<br />
Berkeley<br />
Berufliche Laufbahn<br />
n 1963-1967: Assistant Professor am neu eingerichteten Computer Science<br />
Department, Stanford University<br />
o Entwurf <strong>der</strong> Programmiersprachen PL360 und - in Zusammenarbeit mit <strong>der</strong><br />
IFIP Working Group 2.1 - ALGOL W<br />
n 1967: Assistant Professor an <strong>der</strong> Universität Zürich<br />
n Seit 1968: Professor <strong>der</strong> Informatik an <strong>der</strong> ETH Zürich<br />
o Entwicklung <strong>der</strong> Sprachen Pascal (zwischen 1968 und 1970) und Modula-2<br />
(zwischen 1979 und 1981)<br />
o Entwurf und Entwicklung des Personal Computer Lilith in Verbindung mit<br />
Modula-2 (1978-1982) und <strong>der</strong> 32-bit Workstation (1984-1986)<br />
o Entwicklung <strong>der</strong> Sprache Oberon, ein Nachfolger von Modula-2 (1986-1989)<br />
n 1982-1984 und 1988-1990: Dekan <strong>der</strong> Fakultät Informatik <strong>der</strong> ETH Zürich<br />
n Seit 1990: Direktor des Instituts für Computersysteme <strong>der</strong> ETH Zürich<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Niklaus Wirth<br />
Wichtige Veröffentlichungen<br />
n 1971: The Programming Language Pascal, in: Acta Informatica, Vol.<br />
1, pp. 35-63.<br />
n 1971: Program Development by Stepwise Refinement, in:<br />
Communications of the ACM, Vol. 14, No. 4.<br />
n 1973: An Axiomatic Definition of the Programming Language<br />
Pascal, in: Acta Informatica, Vol. 2, pp. 335-355 (zusammen mit<br />
C.A.R. Hoare).<br />
n 1974: PASCAL - User Manual and Report, Berlin: Springer-Verlag<br />
(zusammen mit Kathy Jensen).<br />
n 1975: Algorithms, Data Structures, Programs, Englewood Cliffs:<br />
Prentice-Hall, N.J.<br />
n 1982: Programming in Modula-2, Heidelberg: Springer-Verlag.<br />
n 1985: The Programming Language Oberon, in: Software-Practice<br />
and Experience, Vol. 18, No. 7, pp. 671-690.<br />
n 1992: Programming in Oberon, Reading: Addison-Wesley<br />
(zusammen mit M. Reiser).<br />
n 1992: Project Oberon, Reading: Addison-Wesley (zusammen mit J.<br />
Gutknecht).<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Niklaus Wirth<br />
Forschungsschwerpunkte<br />
n Entwurf und Implementierung von Programmiersprachen, Betriebssystemen<br />
und Computersystemen<br />
n Methodik <strong>der</strong> Programmierung<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Niklaus Wirth<br />
n 1978: Ehrendoktor <strong>der</strong> York Universität, England<br />
n 1978: Ehrendoktor, Fe<strong>der</strong>al Institute of Technology at Lausanne,<br />
Schweiz<br />
n 1983: Emanuel Priore-Preis <strong>der</strong> IEEE<br />
n 1984: Turing Award, ACM<br />
n 1987: Award for Outstanding Contributions to Computer Science<br />
Education, ACM<br />
n 1987: Ehrendoktor, Universität Laval, Kanada<br />
n 1988: Auszeichnung als Computer Pioneer, IEEE Computer Society<br />
n 1989: Max Petitpierre-Preis<br />
n 1989: Science and Technology-Preis, IBM Europa<br />
n 1990: Marcel Benoist-Preis<br />
n 1993: Ehrendoktor, Johannes Kepler Universität, Linz, Österreich<br />
n Mitglied <strong>der</strong> Swiss Academy of Technical Sciences<br />
n Foreign Associate of the US-Academy of Engineering<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
*30.4.1944<br />
Software engineering consultant<br />
Adresse:<br />
161 West 86th Street, Suite 9A<br />
New York, NY 10024 USA<br />
Tel.: +1 (212) 769 9460<br />
Fax: +1 (212) 769 9458<br />
e-mail: yourdon@acm.org<br />
n Wegbereiter des strukturierten Entwurfs 1979<br />
(Buch: Structured Design, zusammen mit L. L. Constantine)<br />
n Pioneer bei <strong>der</strong> objektorientierten Analyse 1990<br />
(Buch: Object-Oriented Analysis, zusammen mit P. Coad)<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
Ausbildung<br />
n 1965: BS in angewandter Mathematik, MIT<br />
Berufliche Laufbahn<br />
n 1965-1974: Mitarbeiter verschiedener Firmen, u.a. DEC und General Electric<br />
n 1974-1986: Grün<strong>der</strong>, Inhaber und Geschäftsführer <strong>der</strong> Firma Yourdon Inc.<br />
n Grün<strong>der</strong> und Inhaber des Buchverlages Yourdon Press (heute Teil<br />
des Verlages Prentice Hall)<br />
n heute: unabhängiger Berater, New York<br />
n Honorarprofessor für Informationstechnologie, Universidad<br />
CAECE in Buenos Aires, Argentinien<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
Die wichtigsten drei Veröffentlichungen<br />
1 Structured Design, Prentice Hall 1979 (zusammen mit L. L. Constantine).<br />
2 Decline and Fall of the American Programmer, Prentice Hall 1992.<br />
3 Object-Oriented Analysis, Prentice Hall 1990 (zusammen mit P. Coad).<br />
Weitere Veröffentlichungen<br />
n Real Time Systems Design, Information & Systems Press, 1967.<br />
n Design of On-Line Computer Systems, Prentice Hall, 1972.<br />
n Techniques of Program Structure and Design, Prentice Hall, 1975.<br />
n Learning to Program Structured COBOL, Part I, Prentice Hall, 1976<br />
(zusammen mit Chris Gane und Trish Sarson).<br />
n Learning to Program in Structured COBOL, Part II, Prentice Hall, 1978<br />
(zusammen mit Timothy R. Lister).<br />
n Classics in Software Engineering, Prentice Hall, 1979.<br />
n Writings of the Revolution, Prentice Hall, 1982.<br />
n Silent Witness, YOURDON Press, 1982.<br />
n The Perils of Personal Computing, YOURDON Press, 1986.<br />
n Nations at Risk, YOURDON Press, 1986.<br />
n Managing the System Life Cycle, 2nd ed., Prentice Hall, 1988.<br />
n Managing the Structured Techniques, 4th ed. , Prentice Hall, 1989.<br />
➜<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
n Structured Walkthroughs, 4th ed., Prentice Hall, 1989.<br />
n Mo<strong>der</strong>n Structured Analysis, Prentice Hall, 1989.<br />
n Object-Oriented Design, Prentice Hall, 1991 (zusammen mit P. Coad).<br />
n Object-Oriented Systems Development, Prentice Hall, 1994.<br />
n Mainstream Objects, Prentice Hall, 1995 (zusammen mit Katharine<br />
Whitehead, James Thomann und Peter Nevermann).<br />
Insgesamt über 250 Veröffentlichungen<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
Forschungsschwerpunkte:<br />
n »new methodologies and software processes to improve the productivity and<br />
quality of software development«<br />
n »using system dynamics techniques to model the software development<br />
process«<br />
Weitere fachliche Aktivitäten:<br />
n Editor von drei Software-Zeitschriften:<br />
o American Programmer<br />
o Guerilla Programmer<br />
o Application Development Strategies<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Edward Yourdon<br />
n »My “Decline and Fall“ book was given the “JOLT“award by “Computer<br />
Language“ magazine in 1992 for the most influential computer book of the<br />
year«<br />
Allgemeines<br />
Biographie<br />
Veröffentlichungen<br />
Forschung<br />
und Lehre<br />
Preise, Auszeichnungen,<br />
Ehrungen
Glossar<br />
Abgeleitete Assoziation<br />
➜Assoziation, die durch an<strong>der</strong>e Assoziationen definiert werden kann. In <strong>der</strong> Systemanalyse<br />
nicht verwenden! (LE 12)<br />
Abnahme<br />
juristisch definierter Vorgang, bei dem <strong>der</strong> Auftraggeber die Annahme des Produkts<br />
erklärt. Das abgenommene Produkt geht in das Eigentum des Auftraggebers über.<br />
(LE 33)<br />
Abnahmephase<br />
Übergabe eines fertigentwickelten Software-Produkts einschließlich <strong>der</strong> gesamten<br />
Dokumentation an den Auftraggeber (Individualsoftware) o<strong>der</strong> eine freigabeberechtigte<br />
Instanz (Standardsoftware). Die ➜Abnahme erfolgt nach einem Abnahmetest.<br />
(LE 33)<br />
abstrakte Klasse<br />
Spielt eine wichtige Rolle in Vererbungsstrukturen (➜Vererbung), wo sie die Gemeinsamkeiten<br />
einer Gruppe von ➜Unterklassen definiert; im Gegensatz zu einer<br />
➜Klasse, können von einer abstrakten Klasse keine ➜Objekte kreiert werden. (LE 7)<br />
Abstrakter Datentyp<br />
Es wird ein Typ mit Zugriffsoperationen definiert. Es können dann abstrakte Datenobjekte<br />
(Exemplare, Instanzen) von diesem Typ deklariert werden. Auf diesen Datenobjekten<br />
sind dann die Zugriffsoperationen erlaubt, die beim Typ definiert wurden. Im<br />
Gegensatz <strong>zum</strong> ➜abstrakten Datenobjekt sind beim abstrakten Datentyp Typdeklaration<br />
und Objektdeklaration getrennt. (LE 29)
Abstraktes Datenobjekt<br />
Stellt dem Anwen<strong>der</strong> eine Leistung in Form von Zugriffsoperationen zur Verfügung,<br />
die auf ein internes Gedächtnis zugreifen. Mit <strong>der</strong> Beschreibung <strong>der</strong> Zugriffsoperationen<br />
ist gleichzeitig die Deklaration genau eines Exemplars verbunden. Vergleichbar<br />
mit einem Objekt in <strong>der</strong> objektorientierten Welt. Werden mehrere Exemplare<br />
benötigt, dann muß ein ➜abstrakter Datentyp verwendet werden.<br />
(LE 29)<br />
ADT<br />
➜abstrakter Datentyp (LE 29)<br />
advisory system<br />
➜Beratungssystem (LE 22)<br />
Agenda<br />
Geordnete Liste von Regeln, die dazu benutzt wird, die aktuell am besten bewertete<br />
Regel herauszufinden. Entspricht einer Auftragswarteschlange, aus <strong>der</strong> immer<br />
<strong>der</strong> aktuell wichtigste Auftrag ausgewählt und bearbeitet wird. (LE 9)<br />
Agent<br />
➜Assistenzsystem (LE 22)<br />
Aggregation<br />
Beschreibt eine Ist-Teil-Von-Hierarchie (is-part-of) zwischen ➜Entitäten; typisch für<br />
Stücklisten. Kennzeichnend ist, daß die ➜Attribute <strong>der</strong> verknüpften<br />
➜Entitätsmengen unterschiedlich sind. (LE 6)<br />
Aggregation<br />
Gerichtete ➜Assoziation zwischen den Objekten von verschiedenen Klassen. Teil-<br />
Klassen stehen in Beziehung zu einer Gesamtheits-Klasse bzw. Aggregat-Klasse.<br />
Der Komplexitätsgrad wird durch ➜Kardinalitäten angegeben. (LE 12)
Algebraische Spezifikation<br />
Formales Verfahren, um gegenseitige Abhängigkeiten zwischen Zugriffsoperationen<br />
von ➜abstrakten Datenobjekten und ➜abstrakten Datentypen zu beschreiben.<br />
(LE 29)<br />
Anfor<strong>der</strong>ung<br />
Aussage über eine zu erfüllende qualitative und/o<strong>der</strong> quantitative Eigenschaft eines<br />
Produktes; eine vom Auftraggeber festgelegte Systemspezifikation, um ein System<br />
für den Entwickler zu definieren. (LE 4)<br />
Anwen<strong>der</strong><br />
Mitglie<strong>der</strong> einer Institution o<strong>der</strong> Organisationseinheit, die zur Erfüllung ihrer fachlichen<br />
Aufgaben ➜Computersysteme einsetzen (➜Benutzer). (LE1)<br />
Anwendung<br />
➜rechnergestütztes Informationssystem. (LE1)<br />
Anwendungssoftware<br />
➜Software, die Aufgaben des ➜Anwen<strong>der</strong>s mit Hilfe eines ➜Computersystems<br />
löst. Setzt in <strong>der</strong> Regel auf <strong>der</strong> ➜Systemsoftware <strong>der</strong> verwendeten Hardware auf<br />
bzw. benutzt sie zur Erfüllung <strong>der</strong> eigenen Aufgabe. (LE1)<br />
Anwendungssystem<br />
➜rechnergestütztes Informationssystem. (LE1)<br />
application software<br />
➜Anwendungssoftware (LE1)<br />
Arbeitsoberfläche<br />
Teil einer grafischen ➜Benutzungsoberfläche, die dem Benutzer quasi als Ersatz<br />
für die Schreibtischoberfläche dient. Es können Objekte, Hilfsmittel, Geräte und<br />
Anwendungen auf ihr repräsentiert werden. Mit Hilfe <strong>der</strong> ➜direkten Manipulation<br />
können ➜generische Funktionen ausgeführt werden. Über ➜Fenster erfolgt die<br />
Kommunikation mit den Anwendungen. (LE 16)
Architekturentwurf<br />
Anschluß des OOA-Modells an die Benutzungsoberfläche, die Datenhaltung sowie<br />
Verteilung <strong>der</strong> Anwendung auf verschiedene, vernetzte Computersysteme. Wenn<br />
nötig auch Anbindung an die Systemschnittstelle sowie Aufteilung auf Prozesse<br />
(task management). (➜Implemtierungsentwurf). (LE 30)<br />
Assistenzsystem<br />
Übernimmt und erledigt weitgehend selbständig Teilaufgaben des Benutzers. (LE<br />
22)<br />
Assoziation<br />
Beschreibt eine gleichrangige Beziehung zwischen Objekten von Klassen. Der<br />
Komplexitätsgrad <strong>der</strong> Beziehung wird durch ➜Kardinalitäten angegeben. (LE 12)<br />
Assoziation<br />
Beschreibt eine gleichrangige, fachliche Beziehung zwischen Entitäten von<br />
Entitätsmengen. Der Komplexitätsgrad wird durch ➜Kardinalitäten angegeben. (LE<br />
6)<br />
Attribut<br />
Beschreibt eine Eigenschaft von ➜Entitäten einer ➜Entitätsmenge. (LE 6)<br />
Attribut<br />
Beschreibt, welche Daten die ➜Objekte <strong>der</strong> ➜Klasse enthalten. (LE 7)<br />
Attributwert<br />
Aktuell einem Attribut zugeordneter Wert aus seinem Wertebereich. Entspricht dem<br />
Inhalt einer Variablen. (LE 7)<br />
Aufgabenangemessenheit<br />
Der Benutzer muß seine Aufgaben mit den Anwendungssystemen vollständig und<br />
effizient erledigen können. (LE 16)
Aufruf<br />
Beschreibt den Wechsel <strong>der</strong> Kontrolle von <strong>der</strong> aufrufenden Stelle zu dem aufgerufenen<br />
Algorithmus und die Rückkehr hinter die Aufrufstelle nach Beendigung des<br />
aufgerufenen Algorithmus. Ein Aufruf erfolgt normalerweise durch Angabe des<br />
Algorithmusnamens und <strong>der</strong> aktuellen Parameter. (LE 8)<br />
Auswahl<br />
Ausführung von Anweisungen in Abhängigkeit von Bedingungen (auch Verzweigung<br />
genannt). Man unterscheidet die einseitige, die zweiseitige und die Mehrfachauswahl.<br />
Automat<br />
Mathematisches Modell eines Systems o<strong>der</strong> Gerätes, das auf Ereignisse o<strong>der</strong> Eingaben<br />
mit Aktionen o<strong>der</strong> Ausgaben reagiert. (LE 10)<br />
B/E-Netz<br />
➜Bedingungs/Ereignis-Netz (LE 11)<br />
Backtracking (Zurückverfolgen)<br />
Rückgängigmachen einer Schlußfolgerungskette, um einen an<strong>der</strong>en Suchpfad einzuschlagen.<br />
(LE 9)<br />
backward chaining<br />
➜Rückwärtsverkettung (LE 9)<br />
balancing<br />
➜Herstellen <strong>der</strong> Datenintegrität (LE 14)<br />
Balken-Notation<br />
Schnittstelle zwischen ➜Flußdiagramm und zugeordneter<br />
➜Kontrollflußspezifikation. Auf dem Flußdiagramm werden ein o<strong>der</strong> mehrere Balken<br />
eingetragen. Zu den Balken hinführende Pfeile zeigen die<br />
Eingabekontrollflüsse, die in <strong>der</strong> Kontrollflußspezifikation als Eingaben verwendet<br />
werden. Von den Balken wegführende Pfeile zeigen die Ausgabekontrollflüsse, die<br />
in <strong>der</strong> Kontrollflußspezifikation erzeugt werden. (LE 15)
ar<br />
➜Balken-Notation (LE 15)<br />
Bedingungs/Ereignis-Netz<br />
➜Petri-Netz, bei dem jede ➜Stelle eine o<strong>der</strong> keine ➜Marke enthält. Enthalten alle<br />
Eingabestellen einer ➜Transition eine Marke (Vorbedingungen) und alle Ausgabestellen<br />
keine Marke (Nachbedingung), dann kann die Transition schalten. Die Stellen<br />
werden also als Bedingungen interpretiert, von denen die Ausführung eines<br />
Ereignisses (Transition) abhängt. (LE 11)<br />
begrenzte Entscheidungstabelle<br />
Enthält als Bedingungsanzeiger nur die Elemente (J, N, –) und als Aktionsanzeiger<br />
nur das Element (X). (LE 8)<br />
Benutzer<br />
Personen, die ein ➜Computersystem unmittelbar einsetzen und selbst bedienen<br />
(➜Anwen<strong>der</strong>) (LE1)<br />
Benutzer-Handbuch<br />
Soll etwas beschreiben und/o<strong>der</strong> zur Benutzung o<strong>der</strong> Bedienung eines Produkts<br />
anleiten. Je nachdem, ob <strong>der</strong> Schwerpunkt auf dem Beschreibungs- o<strong>der</strong><br />
Bedienungsaspekt liegt, werden ➜Trainings-Handbücher, ➜Referenz-Handbücher,<br />
➜Referenz-Karten und ➜Benutzer-Leitfäden unterschieden. (LE 21)<br />
Benutzer-Leitfaden<br />
Gibt dem Benutzer eine Arbeitsanleitung für die Arbeit mit dem Produkt o<strong>der</strong> hilft<br />
ihm bei <strong>der</strong> Arbeitsvorbereitung und -planung. Oft eine Kombination aus<br />
➜Trainings-Handbuch und ➜Referenz-Handbuch (LE 21)<br />
Benutzer-Unterstützungssystem<br />
Unterstützt den Benutzer bei dem Erlernen und Einarbeiten in ein Software-System<br />
(➜Tutorsystem), hilft ihm bei <strong>der</strong> Anwendung (➜Hilfesystem), berät ihn bei<br />
<strong>der</strong> Lösung von Problemen (➜Beratungssystem) und übernimmt die Erledigung<br />
von Teilaufgaben (➜Assistenzsystem). (LE 22)
Beratungssystem<br />
Gibt dem Benutzer einen Rat, um ihm bei <strong>der</strong> Lösung seiner Probleme o<strong>der</strong> dem<br />
Einsatz <strong>der</strong> Mensch-Computer-Schnittstelle und <strong>der</strong> Anwendungssysteme zu helfen.<br />
(LE 22)<br />
Binnenglie<strong>der</strong>ung<br />
Die Prinzipien <strong>der</strong> Nähe, <strong>der</strong> Ähnlichkeit, <strong>der</strong> guten Fortsetzung, des gemeinsamen<br />
Schicksals und <strong>der</strong> Geschlossenheit bestimmen, wie Elemente zu einer Figur organisiert<br />
werden (➜Gestaltpsychologie). (LE 20)<br />
Botschaft<br />
Auffor<strong>der</strong>ung eines Sen<strong>der</strong>s (Klasse o<strong>der</strong> Objekt) an einen Empfänger (Klasse<br />
o<strong>der</strong> Objekt), eine Dienstleistung durch Ausführung einer Operation zu erbringen.<br />
Besteht aus dem Namen <strong>der</strong> Operation und den Argumenten, die diese Operation<br />
benötigt. (LE 7)<br />
bredthfirst search<br />
➜Breitensuche (LE 9)<br />
Breitensuche<br />
Strategie, bei <strong>der</strong> alle Regeln desselben Hierarchieniveaus untersucht werden,<br />
bevor irgendwelche an<strong>der</strong>en Regeln des darunterliegenden Hierachieniveaus<br />
überprüft werden. (LE 9)<br />
CASE<br />
Computerunterstützte Software-Entwicklung (Computer Aided Software Engineering),<br />
d.h. Einsatz von ➜CASE-Werkzeugen bei <strong>der</strong> Entwicklung. (LE1)<br />
CASE-Werkzeuge<br />
Einsatz von ➜Werkzeugen <strong>zum</strong> Zwecke <strong>der</strong> Software-Erstellung (LE1)<br />
componentware<br />
➜Halbfabrikat (LE 30)
Computersystem<br />
Einheit von ➜Anwendungssoftware, ➜Systemsoftware und Hardware. (LE1)<br />
constraint<br />
➜Restriktion (LE 12)<br />
control<br />
➜Interaktionselement (LE 19)<br />
CORBA<br />
(common object request broker architecture) Standardisierte Architektur für den<br />
➜ORB (LE 27)<br />
CORBA-Objektmodell<br />
Erweitert den Kern des ➜OMG-Objektmodells um Konzepte zur Interaktion zwischen<br />
Anwen<strong>der</strong>- und Anbieter-Objekten. (LE 27)<br />
CSpec<br />
➜Kontrollflußspezifikation (LE 15)<br />
Data Dictionary<br />
Enthält Datenstruktur-Definitionen; üblicherweise in modifizierter Backus-Naur-<br />
Form beschrieben (LE 5)<br />
Data Dictionary<br />
Enthält die Strukturbeschreibungen <strong>der</strong> Daten, die in einer ➜Datenbank gespeichert<br />
werden, in Form von Schemata (➜Schema). (LE 24)<br />
data flow diagram<br />
➜Datenfluß-Diagramm (LE 5)<br />
Datenabstraktion<br />
Zusammenfassung von Zugriffsoperationen, die auf gemeinsamen Daten arbeiten,<br />
zu einer Einheit. Die gemeinsamen Daten bilden das interne Gedächtnis und sollten<br />
außerhalb <strong>der</strong> Datenabstraktion nicht sichtbar sein (Geheimnisprinzip). Die Lebensdauer<br />
des internen Gedächtnisses geht über die Aufrufdauer <strong>der</strong> einzelnen<br />
Zugriffsoperationen hinaus. Man unterscheidet ➜abstrakte Datenobjekte und<br />
➜abstrakte Datentypen. (LE 29)
Datenbank<br />
Komponente eines ➜Datenbanksystems. Enthält die zu verwaltenden Daten eines<br />
Anwendungsbereichs. (LE 24)<br />
Datenbankmanagementsystem<br />
Komponente eines ➜Datenbanksystems. Verwaltet die in <strong>der</strong> ➜Datenbank o<strong>der</strong><br />
den Datenbanken abgelegten Datenbestände mit Hilfe <strong>der</strong> im ➜Data Dictionary<br />
gespeicherten Schemata (➜Schema). (LE 24)<br />
Datenbank-Schema<br />
Erweitert das ➜Logische Schema um view-Schemata (Beschreibung externer<br />
Sichten), Indexangaben und Zugriffsrechte. Im Gegensatz <strong>zum</strong> ➜logischen Schema<br />
ist das Datenbank-Schema im gewünschten Grade normalisiert<br />
(➜Normalformen). (LE 25)<br />
Datenbanksystem<br />
Verwaltet große, integrierte, mehrfachbenutzbare ➜Datenbanken dauerhaft, zuverlässig<br />
und unabhängig. Auf die Daten kann komfortabel, flexibel und geschützt zugegriffen<br />
werden. Besteht aus einer o<strong>der</strong> mehreren ➜Datenbanken, einem ➜Data<br />
Dictionary und einem ➜Datenbankmanagementsystem. (LE 24)<br />
Datendefinitionssprache<br />
(data definition language) Erlaubt die Definition <strong>der</strong> logischen und physikalischen<br />
Strukturen <strong>der</strong> Daten, die in einem ➜relationalem Datenbanksystem verwaltet werden<br />
sollen. Dazu gehört auch das Einrichten, Löschen und Erweitern von Tabellen.<br />
Meist Teil einer ➜Sprache <strong>der</strong> 4. Generation. (LE 24)<br />
Datenfluß-Diagramm<br />
Beschreibt den Fluß <strong>der</strong> Daten bzw. Informationen, die aus <strong>der</strong> Umgebung eines<br />
Systems kommen (Schnittstellen als Quellen), durch ➜Funktionen bzw. Prozesse<br />
transformiert werden, in Speichern abgelegt und in die Umgebung zurückfließen<br />
(Schnittstellen als Senken) (LE 5)
Datenintegrität (balancing)<br />
Innerhalb <strong>der</strong> ➜Strukturierten Analyse müssen in <strong>der</strong> Hierarchie <strong>der</strong> Datenflußdiagramme<br />
alle Datenflüsse eines Datenflußdiagramms in den Datenflüssen<br />
des übergeordneten Datenflußdiagramms subsumiert enthalten o<strong>der</strong> identisch vorhanden<br />
sein. (LE 14)<br />
Datenmanipulationssprache<br />
(data manipulation language) Erlaubt das Eintragen, Löschen, Verän<strong>der</strong>n und Selektieren<br />
von Daten eines ➜relationalen Datenbanksystems. Meist Teil einer<br />
➜Sprache <strong>der</strong> 4. Generation. (LE 24)<br />
Datenmodell<br />
Legt Eigenschaften, Struktur und Konsistenzbedingungen für in die ➜Datenbank<br />
zu speichernde Datenelemente fest einschließlich <strong>der</strong> erlaubten Erzeuge-,<br />
Manipulations- und Löschoperationen. (LE 24)<br />
Datenobjekt-Modul<br />
Realisiert ein ➜abstraktes Datenobjekt; passive Progammeinheit. Identische Eingabedaten<br />
führen nur dann zu identischen Ausgabedaten, wenn das interne Gedächtnis<br />
denselben Zustand hat. (LE 29)<br />
Datentyp-Modul<br />
Beschreibt einen ➜abstrakten Datentyp. Exemplare können statisch und dynamisch<br />
erzeugt werden. (LE 29)<br />
DB<br />
➜Datenbank (LE 24)<br />
DBMS<br />
➜Datenbankmanagementsystem (LE 24)<br />
DBS<br />
➜Datenbanksystem (LE 24)<br />
DD<br />
Data Dictionary (LE 5)
DD<br />
➜data dictionary (LE 24)<br />
DDL<br />
➜Datendefinitionssprache (LE 24)<br />
dead lock<br />
➜Verklemmung (LE 11)<br />
Definitionsphase<br />
Umfaßt alle Tätigkeiten, um die Anfor<strong>der</strong>ungen an ein neues Produkt aus Auftraggebersicht<br />
zu beschreiben ( ➜Produkt-Definition). (LE 4)<br />
depthfirst search<br />
➜Tiefensuche (LE 9)<br />
design<br />
➜Entwurf (LE 23)<br />
desktop<br />
»elektronische« ➜Arbeitsoberfläche. (LE 16)<br />
DFD<br />
➜Datenfluß-Diagramm (LE 5)<br />
Diagnostik<br />
➜Klassifikation (LE 23)<br />
Dialog<br />
Durch Eingabe von Steuerungsdaten steuert <strong>der</strong> Benutzer die Anwendung bzw.<br />
Anwendungen so, daß er seine Arbeitsaufgaben damit erledigen kann. (LE 17)<br />
Dialogmodus<br />
Gibt an, welchen Beschränkungen ein ➜Dialog unterworfen ist. Prinzipiell unterscheidet<br />
man modale und nicht-modale Dialoge. Ein nicht-modaler Dialog ist keinen<br />
Einschränkungen unterworfen. Modale Dialoge sind eingeschränkt. Man unterscheidet<br />
systemmodale, anwendungsmodale, anwendungssemimodale und<br />
hierarchiemodale Dialoge. (LE 17)
Direkte Manipulation<br />
Bedienungsform, bei <strong>der</strong> analog zu einem physikalischen Vorgang Objekte mit <strong>der</strong><br />
Maus auf <strong>der</strong> ➜Arbeitsoberfläche selektiert, bewegt und losgelassen werden (pick,<br />
drag & drop). In Abhängigkeit von <strong>der</strong> Zielposition können dadurch Funktionen wie<br />
Kreieren, Löschen, Kopieren, Drucken und Verschieben realisiert werden<br />
(➜generische Funktion). (LE 16)<br />
DML<br />
➜Datenmanipulationssprache (LE 24)<br />
Durchführbarkeitsstudie<br />
Studie zur Erarbeitung einer Empfehlung, ob ein geplantes Software-Produkt nach<br />
Prüfung <strong>der</strong> fachlichen, personellen und ökonomischen Durchführbarkeit realisiert<br />
werden soll. (LE 2)<br />
DV-System<br />
➜Computersystem. (LE1)<br />
E/A-Gestaltung<br />
Gestaltung <strong>der</strong> Informationsein- und -ausgabe über E/A-Geräte, so daß die<br />
menschliche Art <strong>der</strong> Informationsverarbeitung berücksichtigt wird. (LE 19)<br />
Einfachvererbung<br />
Jede Klasse besitzt maximal eine direkte ➜Oberklasse. Daraus ergibt sich eine<br />
Baumhierarchie (siehe auch ➜Mehrfachvererbung). (LE 7)<br />
Einführungsphase<br />
Der Auftraggeber installiert das von ihm abgenommen Produkt in <strong>der</strong> Zielumgebung,<br />
schult die Benutzer und nimmt das Produkt in Betrieb. (LE 33)<br />
Eintreffer-Entscheidungstabelle<br />
Zu einem Zeitpunkt ist höchstens eine <strong>der</strong> vorhandenen Regeln anwendbar. Ist<br />
eine gültige Regel gefunden, dann ist die Auswertung beendet. (LE 8)<br />
endlicher Automat<br />
➜Zustandsautomat
Entität<br />
Ausprägungen physikalischer Komponenten o<strong>der</strong> abstrakter Sachverhalte, die individuell<br />
und identifizierbar sind. (LE 6)<br />
Entitätsmenge<br />
Gleichartige ➜Entitäten werden generalisiert und bilden eine Entitätsmenge. (LE 6)<br />
entity set<br />
➜Entitätsmenge (LE 6)<br />
entity<br />
➜Entität (LE 6)<br />
Entity-Relationship-Modell<br />
Datenmodellierung durch Identifikation von Entitätsmengen (mit ihren Attributen)<br />
und Assoziationen sowie Beschreibung <strong>der</strong> ➜Kardinalitäten. (LE 6)<br />
Entscheidungsbaum<br />
Grafische Darstellung einer vertikalen ➜Entscheidungstabelle, bei <strong>der</strong> alle Alternativen<br />
und Aktionen explizit ausformuliert werden. (LE 8)<br />
Entscheidungstabelle<br />
Erlaubt die Beschreibung auszuführen<strong>der</strong> Aktionen in Abhängigkeit von durch<br />
»und« verknüpften Bedingungen. Man unterscheidet ➜Eintreffer- und<br />
➜Mehrtreffer-Tabellen, ➜begrenzte und ➜erweiterte Entscheidungstabellen sowie<br />
➜vollständige Entscheidungstabellen. Entscheidungstabellen können horizontal,<br />
vertikal o<strong>der</strong> als ➜Entscheidungsbaum dargestellt werden. Mehrere<br />
Entscheidungstabellen können zu einem Entscheidungstabellen-Verbund zusammengefaßt<br />
werden. (LE 8)<br />
Entscheidungstabellen-Verbund<br />
Verknüpfung mehrerer ➜Entscheidungstabellen mittels Sequenz, Verzweigung,<br />
Schleife o<strong>der</strong> Schachtelung, um eine problemadäquate Beschreibung zu ermöglichen.<br />
(LE 8)
Entwurf<br />
Teilgebiet <strong>der</strong> Software-Technik; Aufgabe ist die Erstellung einer<br />
➜Softwarearchitektur und die ➜Spezifikation von Systemkomponenten unter Einsatz<br />
von geeigneten Methoden, Konzepten und Werkzeugen. Das Ergebnis ist ein<br />
➜Produkt-Entwurf. (LE 23)<br />
Entwurfsmuster<br />
beschreibt in abstrakter Form eine bewährte Entwurfslösung und setzt sie in Bezug<br />
zur Problemstellung und zur Systemumgebung. (LE 30)<br />
Entwurfsphase<br />
Umfaßt alle Tätigkeiten, um für ein Produkt, das durch eine Produktdefinition beschrieben<br />
ist, einen ➜Produkt-Entwurf zu erstellen. (LE 23)<br />
ER-Modell<br />
➜Entity-Relationship-Modell (LE 6)<br />
erweiterte Entscheidungstabelle<br />
Bedingungsanzeiger und Aktionsanzeiger enthalten beliebigen Text. (LE 8)<br />
Exemplar<br />
➜Objekt (LE 7)<br />
Expertensysteme<br />
Programmsysteme, die menschliches Expertenwissen, das durch Ausbildung und<br />
Erfahrung erworben wurde, verwenden, um in erklärungsfähiger Form Probleme zu<br />
lösen, die normalerweise menschliche Intelligenz erfor<strong>der</strong>n. (LE 9)<br />
Expertensystem-Schale<br />
➜Expertensystem-Shell (LE 23)<br />
Expertensystem-Shell<br />
Entwicklungsumgebung für Expertensysteme; unterstützt bestimmte Wissenrepräsentationen<br />
und besteht aus einer Problemlösungs-, Wissenserwerbs-,<br />
Erklärungs- und Interviewerkomponente. Die Wissensbasis ist leer. (LE 23)<br />
feasibility study<br />
➜Durchführbarkeitsstudie (LE 2)
Fenster<br />
Rechteckiger Bereich auf dem Bildschirm, <strong>der</strong> von Anwendungen zur Ein- und<br />
Ausgabe von Informationen und Kommandos benutzt wird. (LE 16)<br />
Fenstertyp<br />
Für bestimmte Einsatzbereiche vorgesehenes Fenster mit bestimmten Eigenschaften.<br />
Es werden Anwendungs-, Unter-, Dialog- und Mitteilungsfenster unterschieden.<br />
(LE 17)<br />
feuern<br />
Anwendung einer Regel, wenn alle ihre Vorbedingungen erfüllt sind. (LE 9)<br />
Figur-Grund-Unterscheidung<br />
Teilflächen können als Figur o<strong>der</strong> (Hinter-)Grund wahrgenommen werden. Bei <strong>der</strong><br />
E/A-Gestaltung ist darauf zu achten, daß Figur und Grund eindeutig wahrgenommen<br />
werden, sonst entstehen Kippfiguren (➜Gestaltpsychologie). (LE 20)<br />
finite automaton<br />
➜endlicher Automat<br />
finite state machine<br />
➜Zustandsautomat<br />
Flußdiagramm (FD)<br />
Erweiterung des Datenflußdiagramms von SA um ➜Kontrollflüsse. Jedem Flußdiagramm<br />
– mit Ausnahme des Kontextdiagramms – kann eine<br />
➜Kontrollflußspezifikation zugeordnet werden. Der Zusammenhang zwischen Flußdiagramm<br />
und Kontrollflußspezifikation wird durch eine ➜Balken-Notation hergestellt.<br />
(LE 15)<br />
Formular<br />
Erlaubt die Eingabe von Informationen in vorgegebene, durch Führungstexte beschriftete<br />
Fel<strong>der</strong>. Der Eingabebereich ist meist optisch gekennzeichnet. Die einzelnen<br />
Fel<strong>der</strong> können Voreinstellungen anzeigen. Eingegebene Informationen werden<br />
oft auf Plausibilitäten überprüft. Die Prinzipien <strong>der</strong> ➜Gestaltpsychologie sind bei<br />
<strong>der</strong> Gestaltung zu beachten. (LE 20)
forward chaining<br />
➜Vorwärtsverkettung (LE 9)<br />
framework<br />
➜Klassenbibliothek, bestehend aus kooperierenden Klassen – meist in Baumtopologie<br />
–, die abstrakte o<strong>der</strong> leere ➜Operationen anbieten. Der Entwickler paßt<br />
das »framework« an o<strong>der</strong> erweitert es durch neue Unterklassen, die die geerbten<br />
Operationen redefinieren. (LE 30)<br />
Fremdschlüssel<br />
verweist von einer ➜Relation auf eine an<strong>der</strong>e Relation. Die an<strong>der</strong>e Relation enthält<br />
den Fremdschlüssel als Primärschlüssel (➜Schlüssel). (LE 25)<br />
Function Point-Methode<br />
Methode <strong>zum</strong> Schätzen des Personalaufwands einer Software-Entwicklung; Ausgangspunkt<br />
sind die Produktanfor<strong>der</strong>ungen aus Auftraggebersicht, außerdem werden<br />
verschiedene Einflußfaktoren auf die Entwicklung berücksichtigt. (LE 3)<br />
Funktion<br />
Transformiert Eingabedaten in Ausgabedaten; beschreibt eine Tätigkeit (LE 5)<br />
funktionale Abstraktion<br />
Stellt dem Anwen<strong>der</strong> eine Leistung in Form einer abstrakten Funktion, Operation<br />
o<strong>der</strong> Prozedur zur Verfügung, so daß diese Leistung ohne Kenntnis <strong>der</strong> Implementierung<br />
in Anspruch genommen werden kann. Der Informationsaustausch erfolgt<br />
über Ein- und Ausgabeparameter. (LE 28)<br />
funktionales Modul<br />
Realisiert ein o<strong>der</strong> mehrere ➜funktionale Abstraktionen. Transformiert Eingabedaten<br />
in Ausgabedaten. Identische Eingabedaten führen immer zu identischen Ausgabedaten,<br />
d.h. es existiert kein »internes Gedächtnis«. Besteht aus einer Schnittstelle<br />
und einem Rumpf. (LE 28)<br />
Funktionsbaum<br />
Hierarchische Anordnung von ➜Funktionen in einem Baum-Diagramm (LE 5)
Generalisierungshierarchie<br />
Entsteht durch das Bilden von Generalisierungstypen (in <strong>der</strong> ➜Semantischen<br />
Datenmodellierung), die die gemeinsamen Eigenschaften <strong>der</strong> Spezialisierungstypen<br />
beschreiben. Die Eigenschaften <strong>der</strong> Generalisierungstypen werden an die<br />
Spezialisierungstypen vererbt ➜Vererbung). (LE 6)<br />
Generalisierungshierarchie<br />
Entsteht durch das Bilden von ➜Oberklassen, die die gemeinsamen ➜Attribute<br />
und ➜Operationen all ihrer ➜Unterklassen besitzen. Die Attribute und Operationen<br />
<strong>der</strong> Oberklassen werden an die Unterklassen vererbt ( ➜Vererbung). (LE 7)<br />
Generische Funktion<br />
Funktion, die in verschiedenen Anwendungen die gleiche Bezeichnung, die gleiche<br />
Bedeutung und die gleiche Bedienung hat, z.B. Kopieren (➜direkte Manipulation).<br />
(LE 16)<br />
Geordnete Assoziation<br />
Ordnungsrelation auf den ➜Assoziationen, z.B. zeitliche und alphabetische Ordnung.<br />
(LE 12)<br />
Gestaltpsychologie<br />
Befaßt sich mit den Gestaltprinzipien <strong>der</strong> Wahrnehmung, also Regeln, nach denen<br />
sich die räumliche und/o<strong>der</strong> zeitliche Struktur wahrgenommener Gebilde richtet<br />
(➜Prinzip <strong>der</strong> guten Gestalt, ➜Figur-Grund-Untersuchung, ➜Binnenglie<strong>der</strong>ung).<br />
(LE 20)<br />
Gestaltungs-Regelwerk<br />
Legt unternehmensweit o<strong>der</strong> für bestimmte ➜GUI-Systeme Gestaltungsregeln für<br />
die ➜grafische Benutzungsoberfläche fest. (LE 16)<br />
grafische Benutzungsoberfläche<br />
Grafikbildschirm bestehend aus einer ➜Arbeitsoberfläche und ➜Fenstern, über die<br />
<strong>der</strong> Benutzer mit <strong>der</strong> Anwendungssoftware interagiert und kommuniziert. (LE 16)<br />
graphical user interface<br />
➜GUI (LE 16)
GUI<br />
➜grafische Benutzungsoberfläche (LE 16)<br />
GUI-System<br />
Software-System, das die ➜grafische Benutzungsoberfläche verwaltet und die<br />
Kommunikation mit den Anwendungen abwickelt. (LE 16)<br />
Halbfabrikat<br />
anwendungsorientierter, in sich abgeschlossener, wie<strong>der</strong>verwendbarer, binärer<br />
Softwarebaustein, <strong>der</strong> nach außen eine Schnittstelle mit Funktionen zur Verfügung<br />
stellt, die semantisch zusammengehören. (LE 30)<br />
Handlungsflexibiltität<br />
Das Anwendungssystem soll sich an geän<strong>der</strong>te Aufgabenstellungen anpassen<br />
können und den Benutzern alternative Lösungswege ermöglichen. (LE 16)<br />
Harel-Automat<br />
➜Zustandsautomat mit geschachtelten Zuständen, bedingten Zustandsübergängen,<br />
Aktionen (➜Mealy-Automat) und Aktivitäten (➜Moore-Automat), Zuständen<br />
mit Gedächtnis und Nebenläufigkeit. (LE 10)<br />
Hierarchischer Zustandsautomat<br />
erlaubt eine Strukturierung von ➜Mealy-Automaten durch eine Baumhierarchie.<br />
Die Hierarchieebenen werden geschachtelt dargestellt. (LE 10)<br />
Hierarchisches Petri-Netz<br />
Stellen und Transitionen eines ➜Petri-Netzes können sowohl verfeinert als auch<br />
zu einer höheren Abstraktionsebene zusammengefaßt werden (➜Kanal-Instanzen-<br />
Netz) (LE 11)
Hilfesystem<br />
Programm, das bei <strong>der</strong> Benutzung eines interaktiven Systems durch explizite Erklärungen<br />
hilft. Hilfesysteme lassen sich in aktive und passive Systeme unterteilen.<br />
Aktive Hilfesysteme bieten von sich aus Hilfe an, wenn sie erkennen, daß <strong>der</strong> Benutzer<br />
Schwierigkeiten bei <strong>der</strong> Systembedienung hat. Passive Hilfesysteme treten<br />
dagegen nur auf Initiative des Benutzers in Aktion. Desweiteren kann man zwischen<br />
statischen und dynamischen Hilfesystemen differenzieren. Dynamische<br />
Hilfesysteme beziehen Information aus dem Kontext des Dialogs mit ein. Statische<br />
Hilfesysteme geben dagegen auf dieselbe Frage, unabhängig vom Dialogkontext,<br />
stets dieselbe Antwort. (LE 22)<br />
icon<br />
➜Piktogramm (LE 16)<br />
IDL<br />
(interface definition language) Spezifikationssprache für Schnittstellen von Klassen,<br />
die als Server-Objekte Dienstleistungen über ➜CORBA für Client-Objekte<br />
zur Verfügung stellen. IDL-Precompiler übersetzen IDL-Spezifikationen in die<br />
Client- und Server-Programmiersprache. (LE 27)<br />
Ikone<br />
➜Piktogramm (LE 19)<br />
Implementierung<br />
Teilgebiet <strong>der</strong> Software-Technik; Aufgabe ist die Realisierung <strong>der</strong> im Entwurf spezifizierten<br />
Systemkomponenten durch Programme, so daß als Ergebnis das fertige<br />
Produkt entsteht. (LE 32)<br />
Implementierungsentwurf<br />
Verfeinerung des ➜Architekturentwurfs und Anpassung an die gewünschte Zielprogrammiersprache.<br />
(LE 30)<br />
Implementierungsphase<br />
Umfasst alle Tätigkeiten, um spezifizierte Systemkomponenten durch Programme<br />
zu realisieren. (LE 32)
Informationssystem<br />
➜Organisatorisches System zusammen mit sonstigen technischen Einrichtungen,<br />
d.h. Einrichtungen ohne ➜Computersysteme. (LE1)<br />
Instanz<br />
➜Objekt (LE 7)<br />
integrierte Dokumentation<br />
Jedes Programm muß integriert eine gute Dokumentation enthalten. Dies geschieht<br />
durch ➜Verbalisierung, ➜Verfeinerungs-Kommentare, ➜problemadäquate Datentypen<br />
sowie einem Verwaltungsvorspann, <strong>der</strong> u. a. Autoren, Versionsnummer und<br />
Status angibt. (LE 32)<br />
Integritätsbedingungen<br />
Legen fest, welche Teilmengen eines kartesischen Produktes von Wertebereichen<br />
»gültige« ➜Relationen sind. Innerhalb einer Relation gibt es funktionale und mehrwertige<br />
Abhängigkeiten. Zwischen verschiedenen Relationen gibt es<br />
Inklusionsabhängigkeiten. Generell müssen die Entitäts-Integrität und die<br />
referenzielle Integrität erfüllt sein. (LE 25)<br />
Interaktions-Diagramm<br />
Diagramm mit vertikaler Zeitachse zur zeitbasierten Darstellung von<br />
Kommunikationsvorgängen zwischen Kommunikationspartnern. In <strong>der</strong><br />
➜objektorientierten Softwareentwicklung zur Darstellung von Szenarien verwendet.<br />
Dazu werden die ➜Botschaften zwischen ➜Objekten bzw. Klassen durch horizontale<br />
Linien dargestellt, Objekte bzw. Klassen durch vertikale Linien repräsentiert.<br />
(LE 7)<br />
Interaktionselement<br />
Dient zur Ein- und/o<strong>der</strong> Ausgabe von Informationen; es werden Eingabefel<strong>der</strong>,<br />
Knöpfe, Listen und Grafiken unterschieden. (LE 19)<br />
Jackson-Diagramm<br />
grafische Baumdarstellung von Datenstrukturen und Kontrollstrukturen (LE 5)
Jackson-Diagramme<br />
grafische Baum-Darstellung ➜linearer Kontrollstrukturen(LE 8)<br />
Kanal-Instanzen-Netz<br />
Obere Netzebenen bei ➜hierarchischen Petri-Netzen. Eine Stelle wird als Kanal,<br />
eine Transition als Instanz interpretiert. (LE 11)<br />
Kardinalität<br />
Bezeichnet die Wertigkeit einer Beziehung zwischen Klassen, d.h. die Anzahl <strong>der</strong><br />
an <strong>der</strong> Beziehung beteiligten Objekte. Es werden Muß- und Kann-Beziehungen<br />
unterschieden. Die numerische Notation verwendet Ziffern und Buchstaben zur<br />
Angabe <strong>der</strong> minimalen und maximalen Anzahl <strong>der</strong> involvierten Objekte. (LE 12)<br />
Kardinalität<br />
Gibt an, wieviele an<strong>der</strong>e Entitäten einer bestimmten Entität einer Entitätsmenge<br />
zugeordnet werden können. (LE 6)<br />
Klasse<br />
Beschreibt in Form einer Schablone eine Kategorie von ➜Objekten, die gleiche<br />
o<strong>der</strong> ähnliche Strukturen und Verhaltensmuster aufweisen. Von einer Klasse können<br />
Objekte (Instanzen, Exemplare) erzeugt werden. (LE 7)<br />
Klassenattribut<br />
Beschreibt Eigenschaften einer ➜Klasse, nicht eines ➜Objekts. Liegt vor, wenn<br />
nur ein Attributwert für alle Objekte einer Klasse existiert. (LE 7)<br />
Klassenbibliothek<br />
organisierte Sammlung von Klassen, aus <strong>der</strong> <strong>der</strong> Entwickler nach Bedarf Einheiten<br />
verwendet. Typische Topologien sind Baum, Wald und Einzelbausteine. (LE 30)<br />
Klassen-Diagramm<br />
Beschreibt in grafischer Form die ➜Generalisierungshierarchie zwischen Oberund<br />
Unterklassen ( ➜Klassen). (LE 7)<br />
Klassenhierarchie<br />
➜Vererbung. (LE 7)
Klassenoperation<br />
➜Operation, die einer Klasse zugeordnet ist (nicht einem daraus erzeugten Objekt!);<br />
kann nicht auf ein einzelnes Objekt <strong>der</strong> Klasse angewandt werden. Manipuliert<br />
➜Klassenattribute <strong>der</strong> eigenen Klasse. Wird in <strong>der</strong> Systemanalyse eine implizite<br />
Objektverwaltung unterstellt, dann greifen Klassenoperationen auf alle o<strong>der</strong><br />
mehrere Objekte <strong>der</strong> Klasse zu. (LE 7)<br />
Klassifikation<br />
Methode, bei <strong>der</strong> eine o<strong>der</strong> mehrere Lösungen (Diagnosen) aus Merkmalen (Symptomen)<br />
hergeleitet werden. (LE 23)<br />
Kommando<br />
Befehl an das Computersystem – meist als Wortkürzel, z.T. gefolgt von Argumenten<br />
und Optionen – bestimmte Aktionen durchzuführen. Kommandos müssen <strong>der</strong> Syntax<br />
einer Kommandosprache entsprechen. (LE 17)<br />
Kompetenzför<strong>der</strong>lichkeit<br />
Der Benutzer soll kompetent mit dem Software-System umgehen können, d.h. er<br />
soll den Umgang mit dem System erlernt haben und dieses Wissen zur Lösung seiner<br />
Aufgaben mit dem System anwenden können. (LE 16)<br />
komponentenbasierte Softwareentwicklung<br />
schnelle Entwicklung von Anwendungen durch Kombination und Integration vorgefertigter,<br />
wie<strong>der</strong>verwendbarer ➜Halbfabrikate, die unabhängig von unterschiedlichen<br />
Entwicklern in unterschiedlichen Sprachen entwickelt wurden. (LE 30)<br />
Konfliktlösungsstrategie<br />
Auswahl einer Regel aus <strong>der</strong> ➜Konfliktmenge entsprechend einer Strategie<br />
(➜Tiefensuche,➜Breitensuche, ➜Meta-Regel). (LE 9)<br />
Konfliktmenge<br />
Menge aller ausführbaren ➜Regeln (➜feuern) (LE 9)<br />
Konstruktion<br />
Methode, bei <strong>der</strong> eine Lösung aus Lösungselementen zusammengesetzt wird. (LE<br />
23)
Kontextdiagramm<br />
Oberstes Datenflußdiagramm in <strong>der</strong> ➜Strukturierten Analyse. Beschreibt die<br />
Schnittstellen des Systems zur Umwelt. (LE 14)<br />
Kontrollfluß<br />
Repräsentiert im Gegensatz <strong>zum</strong> Datenfluß ein Ereignis. Dient zur Steuerung von<br />
Prozessen, wird nicht verarbeitet. Elementare Kontrollflüsse sind immer diskret. (LE<br />
15)<br />
Kontrollflußspezifikation (CSpec)<br />
Legt durch Zustandsautomaten und/o<strong>der</strong> Entscheidungstabellen die Aktivierung<br />
von Prozessen im zugeordneten ➜Flußdiagramm fest. Zu jedem Flußdiagramm<br />
kann es genau eine Kontrollsprezifikation geben. (LE 15)<br />
Kontrollstrukturen<br />
Geben an, in welcher Reihenfolge und ob bzw. wie oft Anweisungen ausgeführt<br />
werden sollen (➜lineare Kontrollstrukturen). (LE 8)<br />
Konzept<br />
beschreibt einen definierten Sachverhalt unter einem o<strong>der</strong> mehreren Gesichtspunkten<br />
(➜Notation) (LE1)<br />
Konzeptionelles Modell<br />
Integration aller ER-Diagramme eines Systems zu einem Gesamtschema. (LE 6)<br />
Konzeptionelles Schema<br />
Vollständige, formale, konzeptionelle Beschreibung <strong>der</strong> statischen Datenstrukturen<br />
einer Datenbank, z. B. durch ein ER- o<strong>der</strong> OOA-Modell. (LE 25)<br />
Lastenheft<br />
fachliches Ergebnisdokument <strong>der</strong> ➜Planungsphase, auch grobes Pflichtenheft<br />
genannt; Teil einer ➜Durchführbarkeitsstudie (LE 2)<br />
Lebendigkeit<br />
Stellt in einem ➜Petri-Netz sicher, daß ausgehend von einer Anfangsmarkierung<br />
die Transitionen immer so schalten, daß eine vorgegebene Transition im weiteren<br />
Verlauf nochmals schalten kann. (LE 11)
Lebenszyklus<br />
Gesamte Lebensdauer eines Produkts von seiner Entwicklung (Geburt) über seinen<br />
Betrieb bis hin zu seiner »Außer-Betriebnahme« (Tod). (LE 33)<br />
life cycle<br />
➜Lebenszyklus (LE 33)<br />
lineare Kontrollstrukturen<br />
Besitzen genau einen Eingang und einen Ausgang; ➜Sequenz, ➜Auswahl,<br />
➜Wie<strong>der</strong>holung, ➜Aufruf, ➜strukturierte Programmierung(LE 8)<br />
Lines of Code<br />
➜LOC (LE 2)<br />
LOC<br />
Abkürzung für Lines of Code, 1 LOC steht für eine Programmzeile im Quellcode;<br />
<strong>der</strong> geschätzte Umfang eines zu entwickelnden Produkts wird oft in LOC angegeben.<br />
(LE 2)<br />
Logisches Schema<br />
Enthält die ➜Relationenschemata ergänzt um Wertebereiche, ➜Schlüssel und<br />
➜Integritätsbedingungen. (LE 25)<br />
look and feel<br />
Visuelles Erscheinungsbild und Bedienungseigenschaften einer ➜grafischen<br />
Benutzungsoberfläche. (LE 16)<br />
Maintenance<br />
Oberbegriff für ➜Wartung und ➜Pflege (LE 33)<br />
Marke (token)<br />
Dient zur Darstellung <strong>der</strong> dynamischen Vorgänge in einem ➜Petri-Netz. Eine Marke<br />
repräsentiert ein Objekt, das durch die ➜Transitionen weitergegeben wird. Eine<br />
Marke selbst wird durch einen kleinen schwarzen Kreis in einer ➜Stelle dargestellt.<br />
(LE 11)<br />
MD<br />
➜Modularer Entwurf (LE 29)
Mealy-Automat<br />
➜Zustandsautomat, bei dem die Ausgaben bzw. Aktionen an den Zustandsübergang<br />
gebunden sind. (LE 10)<br />
Mehrfachvererbung<br />
Jede Klasse kann mehr als eine direkte Oberklasse besitzen. Werden gleichnamige<br />
Attribute o<strong>der</strong> Operationen von verschiedenen Oberklassen geerbt, dann muß<br />
<strong>der</strong> Namenskonflikt gelöst werden (siehe auch: ➜einfache Vererbung). (LE 7)<br />
Mehrtreffer-Entscheidungstabelle<br />
Zu einem Zeitpunkt können mehrere <strong>der</strong> vorhandenen Regeln anwendbar sein.<br />
Bei <strong>der</strong> Anwendung müssen alle Regeln überprüft werden. (LE 8)<br />
Mengenoperationen<br />
Bildung von Vereinigung, Durchschnitt und Differenz von ➜Relationen mit gleichen<br />
Attributmengen. (LE 25)<br />
Menü<br />
Zu Gruppen angeordnete ➜Menüoptionen, aus denen <strong>der</strong> Benutzer eine o<strong>der</strong><br />
mehrere auswählen kann. Man unterscheidet Aktions- und Eigenschaftsmenüs.<br />
(LE 17)<br />
Menüoption<br />
Teil eines ➜Menüs, repräsentiert eine Aktion (Aktionsmenü) o<strong>der</strong> eine Eigenschaft<br />
(Eigenschaftsmenü). Die Selektion einer Menüoption bewirkt Aktionen o<strong>der</strong> die<br />
Festlegung von Eigenschaften. (LE 17)<br />
Meta-Regel<br />
➜Regel, die den Auswahlprozeß <strong>der</strong> anzuwendenden Regel steuert<br />
(➜Konfliktlösungsstrategie). (LE 9)<br />
Methode<br />
Planmäßig angewandte, begründete Vorgehensweise zur Erreichung von festgelegten<br />
Zielen (➜Verfahren). (LE1)<br />
Methode<br />
➜Operation. (LE 7)
Mini-Spezifikation (MiniSpec)<br />
Beschreibt innerhalb <strong>der</strong> ➜Strukturierten Analyse die Transformation <strong>der</strong> Eingaben<br />
in die Ausgaben bei einem Prozeß, <strong>der</strong> nicht weiter verfeinert ist (Blätter <strong>der</strong><br />
Hierarchie). (LE 14)<br />
MM<br />
Abkürzung für Mitarbeiter-Monate o<strong>der</strong> Mann-Monate; gibt bei <strong>der</strong> Aufwandsplanung<br />
die Summe aller Arbeitsmonate aller beteiligten Personen an, um ein Produkt<br />
zu entwickeln. Oft auch PM, für Personenmonate, genannt. (LE 2)<br />
modular design<br />
➜Modularer Entwurf (LE 29)<br />
Modularer Entwurf<br />
Entwurfsmethode, die zu einer Softwarearchitektur führt, die aus funktionalen Modulen,<br />
➜Datenobjekt-Modulen und ➜Datentyp-Modulen besteht. Die Struktur <strong>der</strong><br />
Architektur besteht aus Schichten und/o<strong>der</strong> Bäumen. (LE 29)<br />
Moore-Automat<br />
➜Zustandsautomat, bei dem die Ausgaben bzw. Aktionen an den Zustand gebunden<br />
sind. (LE 10)<br />
Muster<br />
➜OOA-Muster (LE 12)<br />
Nassi-Shnei<strong>der</strong>man-Diagramm<br />
➜Struktogramm-Notation(LE 8)<br />
natürlicher Verbund<br />
Verschmelzen zwei ➜Relationen bzgl. gemeinsamer Attribute zu einer Relation.<br />
(LE 25)<br />
Normalform<br />
Zerlegung von ➜Relationenschemata so, daß bestimmte Bedingungen erfüllt sind.<br />
Dient dazu, eine redundanzfreie Datenspeicherung zu erhalten. Es werden fünf<br />
Normalformen unterschieden. (LE 25)
Notation<br />
Darstellung von ➜Konzepten durch eine festgelegte Menge von grafischen und/<br />
o<strong>der</strong> textuellen Symbolen, zu denen eine Syntax und Semantik definiert ist. (LE1)<br />
Oberklasse<br />
Enthält die gemeinsamen Attribute und Operationen ihrer ➜Unterklasse (<br />
➜Vererbung). Methodisches Mittel zur Bildung von Generalisierungen. (LE 7)<br />
object oriented analysis<br />
➜Objektorientierte Analyse (LE 12)<br />
object oriented design<br />
➜Objektorientierter Entwurf (LE 30)<br />
Objekt<br />
Ausprägung physikalischer Komponenten o<strong>der</strong> abstrakter Sachverhalte, die individuell<br />
sind und durch Eigenschaften und Verhalten beschrieben werden. (LE 7)<br />
Objekt-Identität<br />
Eigenschaft, die ein Objekt von allen an<strong>der</strong>en unterscheidet, auch wenn ihre<br />
Attributwerte identisch sind. Ist nicht verän<strong>der</strong>bar. (LE 24)<br />
Objekt-Identität<br />
Eigenschaft, die ein ➜Objekt von allen an<strong>der</strong>en unter scheidet, auch wenn ihre<br />
➜Attributwerte identisch sind. Ist nicht verän<strong>der</strong>bar. (LE 7)<br />
Objektorientierte Analyse<br />
Verwendet die Konzepte Objekt, Klasse, Attribut, Operation, Polymorphismus, Assoziation,<br />
Aggregation, Vererbung, Subsystem, Botschaft und Objektlebenszyklus<br />
zur Modellierung <strong>der</strong> Anfor<strong>der</strong>ungen an ein neues Software-Produkt. (LE 12)<br />
objektorientierte Software-Entwicklung<br />
Anwendung <strong>der</strong> Konzepte ➜Klasse, ➜Objekt, ➜Attribut, ➜Operation, ➜Botschaft,<br />
➜Vererbung und ➜Polymorphismus. (LE 7)
Objektorientierter Entwurf<br />
erweitert, modifiziert und optimiert ein OOA-Modell unter technischen Gesichtspunkten,<br />
so daß anschließend eine Implementierung des OOD-Modells möglich ist.<br />
Besteht aus einem ➜Architekturentwurf und einem ➜Implementierungsentwurf. (LE<br />
30)<br />
objektorientiertes Datenbanksystem<br />
speichert Daten entsprechend dem ➜objektorientierten Datenmodell. (LE 24)<br />
objektorientiertes Datenmodell<br />
Objekte werden mit ihren Attributen, Beziehungen (Vererbung, Assoziation, Aggregation)<br />
und Operationen gespeichert, wobei Attribute beliebige, auch selbstdefinierte<br />
Typen besitzen können. (LE 24)<br />
ODBS<br />
➜objektorientiertes Datenbanksystem (LE 24)<br />
ODL<br />
(object definition language) Erlaubt die Definition des Datenbank- ➜Schemas eines<br />
➜objektorientierten Datenbanksystems (Klassen-Ausdehnungen, Schlüssel,<br />
Attibute, Beziehungen, Operationen, Vererbung); eigenständige Sprache o<strong>der</strong> integriert<br />
in eine Programmiersprache. (LE 24)<br />
OID ➜Objekt-Identität (LE 24)<br />
OMA<br />
(object management architecture) Architektur, mit <strong>der</strong>en Hilfe Anbieter (server)<br />
und Anwen<strong>der</strong> (clients) von objektorientierten Dienstleistungen über heterogene<br />
Plattformen und Netze miteinan<strong>der</strong> kommunizieren können. Besteht aus Anwendungsobjekten<br />
(application objects), speziellen (common facilities) und allgemeinen<br />
Objektdiensten (object services) sowie den ➜ORB (object request broker).<br />
(LE 27)
OMG-Objektmodell<br />
(OM) Abstraktes Objektmodell <strong>der</strong> Object Management Group (OMG), das die<br />
Basiskonzepte Objekt, Typ, Vererbung und Operation definiert, um<br />
Entwurfsportabilität zu ermöglichen. Obermengen sind das ODMG-Objektmodell für<br />
objektorientierte Datenbanken und das ➜CORBA-Objektmodell. (LE 27)<br />
OML<br />
(object manipulation language) Erlaubt innerhalb einer Programmiersprache<br />
(C++, Smalltalk) das Erzeugen, Manipulieren und Löschen von Objekten eines<br />
➜objektorientierten Datenbanksystems. (LE 24)<br />
OO<br />
objektorientiert. (LE 7)<br />
OOA<br />
➜Objektorientierte Analyse (LE 12)<br />
OOA-Muster<br />
In verschiedenen OOA-Modellen sich wie<strong>der</strong>holende Modellierungen zur Beschreibung<br />
bestimmter Sachverhalte. (LE 12)<br />
OOD<br />
➜objektorientierter Entwurf (LE 30)<br />
Operation<br />
Ausführbare Tätigkeit im Sinne einer Funktion bzw. eines Algorithmus; beschreibt<br />
das Verhalten eines ➜Objekts bzw. einer ➜Klasse. (LE 7)<br />
OQL<br />
(object query language) Erlaubt deklarative Anfragen – analog zu ➜SQL – auf<br />
gespeicherte Objekte in ➜objektorientierten Datenbanksystemen; eigenständige<br />
Sprache o<strong>der</strong> integriert in eine Programmiersprache. (LE 24)
ORB<br />
(object request broker) Zentrale Komponente <strong>der</strong> ➜OMA, leitet Dienstleistungs-<br />
Anfor<strong>der</strong>ungen eines Anwen<strong>der</strong>s an einen Dienstleistungs-Anbieter weiter und<br />
überträgt die Ergebnisse zurück. Die Architektur des ORB ist unter dem Namen<br />
➜CORBA standardisiert. (LE 27)<br />
Organisatorisches System<br />
➜Anwen<strong>der</strong>, ➜Benutzer und sonstige Mitarbeiter, die zusammen Aufgaben erledigen.<br />
(LE1)<br />
PAP<br />
➜Programmablaufplan-Notation(LE 8)<br />
pattern<br />
➜OOA-Muster (LE 12)<br />
Petri-Netz<br />
Abstraktes, formales Modell des Informationsflusses eines Systems. Zeigt die statischen<br />
und dynamischen Eigenschaften eines Systems. Normalerweise als Graph<br />
dargestellt, <strong>der</strong> zwei Knotentypen enthält (➜Stellen und ➜Transitionen). Knoten<br />
können durch Pfeile miteinan<strong>der</strong> verbunden sein. ➜Marken in den ➜Stellen repräsentieren<br />
den jeweiligen dynamischen Zustand. (LE 11)<br />
Pflege<br />
Anpassung eines ➜Systems an geän<strong>der</strong>te Bedingungen o<strong>der</strong> Än<strong>der</strong>ung und Weiterentwicklung<br />
aufgrund geän<strong>der</strong>ter o<strong>der</strong> neuer Anfor<strong>der</strong>ungen. (LE1)<br />
Pflege<br />
Lokalisierung und Durchführung von Än<strong>der</strong>ungen und Erweiterungen in Software-<br />
Produkten, die in Betrieb sind, wenn die Art <strong>der</strong> gewünschten Modifikationen festliegen.<br />
(LE 33)<br />
Pflichtenheft<br />
Teil einer ➜Produkt-Definition, oft auch alleiniges Anfor<strong>der</strong>ungs-Dokument. Oft nur<br />
verbal beschrieben. (LE 4)
Phase<br />
Zusammenfassung von Aktivitäten <strong>der</strong> ➜Software-Entwicklung nach zeitlichen,<br />
begrifflichen, technischen und/o<strong>der</strong> organisatorischen Kriterien. (LE1)<br />
Piktogramm<br />
Grafisch abstrakte Darstellung von Objekten, Funktionen, Anwendungen, Geräten,<br />
Hilfsmitteln und Prozessen auf dem Bildschirm. (LE 16)<br />
Piktogramm<br />
Grafisch abstrakte Darstellung von Objekten, Funktionen o<strong>der</strong> Prozessen auf dem<br />
Bildschirm, bei Anwendungssoftware im Bürobereich z.B. Ordner, Papierblatt, Papierkorb<br />
usw. (LE 19)<br />
Plan<br />
In <strong>der</strong> Expertensystem-Welt ist ein Plan ein Handlungsplan, also eine Folge von<br />
Aktionen, die man sich überlegt hat und ausführen kann, um ein Ziel zu erreichen.<br />
(LE 9)<br />
Planung<br />
Problemtyp, bei dem eine Sequenz von Operationen gesucht wird, die den Ausgangszustand<br />
in einen Zielzustand überführt. (LE 9)<br />
Planungsphase<br />
Umfaßt alle Tätigkeiten, die nötig sind, um die fachliche, ökonomische und personelle<br />
Durchführbarkeit einer Produktentwicklung zu prüfen; auch Voruntersuchung<br />
o<strong>der</strong> Durchführbarkeitsuntersuchung genannt. Die Ergebnisse werden in einer<br />
➜Durchführbarkeitsstudie zusammengefaßt. (LE 2)<br />
PM<br />
➜MM (LE 2)
Polymorphismus<br />
Dieselbe ➜Botschaft kann an Objekte verschiedener ➜Klassen gesendet werden.<br />
Jedes Empfängerobjekt reagiert mit <strong>der</strong> Ausführung einer eigenen Operation. Dies<br />
kann zu unterschiedlichen Ergebnissen führen, z.B. Drucken eines Textes und<br />
Drucken einer Grafik. In Verbindung mit <strong>der</strong> ➜Vererbung, <strong>der</strong> ➜Redefinition und<br />
dem »späten Binden« können Operationen mit Objektreferenzen geschrieben werden,<br />
die Objekte verschiedener Klassen bezeichnen können, die durch eine gemeinsame<br />
Oberklasse miteinan<strong>der</strong> in Beziehung stehen. Die Operation wird während<br />
<strong>der</strong> Laufzeit auf das Objekt angewandt, auf das die Objektreferenz zeigt. Eine<br />
solche Operation muß nicht geän<strong>der</strong>t werden, wenn die Oberklasse um weitere<br />
Unterklassen ergänzt wird. (LE 7)<br />
pop-up-Menü<br />
Menüart, die aus ➜Menüoptionen (ohne Menütitel) besteht. Erscheint an <strong>der</strong> aktuellen<br />
Bearbeitungsstelle auf dem Bildschirm, z.B. gekoppelt mit dem Mauszeiger.<br />
Aufruf durch Maustaste (meist rechte Taste) o<strong>der</strong> Funktionstaste. (LE 17)<br />
Pr/T-Netz<br />
➜Prädikats/Transitions-Netz. (LE 11)<br />
Prädikats/Transitions-Netz<br />
Höheres ➜Petri-Netz, bei dem individuelle Marken (»gefärbte Marken«) verwendet<br />
werden. Die Pfeile werden mit Variablen versehen, die Transitionen mit Schaltbedingungen<br />
und Schaltwirkungen. (LE 11)<br />
Prägnanzprinzip<br />
➜Prinzip <strong>der</strong> guten Gestalt (LE 20)<br />
Primärdialog<br />
➜Dialog, <strong>der</strong> zur direkten Aufgabenerfüllung dient (➜Sekundärdialog). (LE 17)<br />
Prinzip <strong>der</strong> guten Gestalt<br />
Elemente werden als Figuren wahrgenommen, wenn sie möglichst einfach, einheitlich,<br />
möglichst dicht geschlossen, symmetrisch, gleichgewichtig und möglichst<br />
vollständig sind (➜Gestaltpsychologie). (LE 20)
Prinzip<br />
Grundsatz, den man seinem Handeln zugrunde legt. (LE1)<br />
problemadäquate Datentypen<br />
Wahl von vorhandenen Basisdatentypen o<strong>der</strong> Definition eigener Datentypen, die<br />
dem Problem optimal angepaßt sind, d. h. Wertebereiche werden we<strong>der</strong> übernoch<br />
unterspezifiziert. (LE 32)<br />
Produkt<br />
Alle Attributkombinationen zweier ➜Relationen (LE 25)<br />
Produkt-Definition<br />
Dokumentation <strong>der</strong> Ergebnisse <strong>der</strong> ➜Systemanalyse; besteht meist aus mehreren<br />
Dokumenten; oft auch als Produkt-Spezifikation o<strong>der</strong> System-Spezifikation bezeichnet.<br />
(LE 4)<br />
Produkt-Entwurf<br />
Beschreibt die ➜Softwarearchitektur eines Software-Produkts und spezifiziert seine<br />
Systemkomponenten (➜Spezifikation von Systemkomponenten). (LE 23)<br />
Programmablaufplan-Notation<br />
In DIN 66001 genormte, grafische Darstellungsform für ➜Kontrollstrukturen von<br />
Algorithmen(LE 8)<br />
Programmieren im Großen<br />
➜Entwurf (LE 23)<br />
Programmieren im Kleinen<br />
➜Implementierung (LE 32)<br />
Projektion<br />
Auswahl bestimmter Attribute einer ➜Relation (Spalten einer ➜Tabelle) (LE 25)<br />
Prozeß-Spezifikation (PSpec)<br />
Beschreibt, was ein elementarer Prozeß zu tun hat. Entspricht einer Mini-Spezifikation<br />
in SA. (LE 15)
Pseudo-Code-Notation<br />
textuelle, semiformale Darstellung von ➜Kontrollstrukturen in Anlehnung an problemorientierte<br />
Programmiersprachen(LE 8)<br />
PSpec<br />
➜Prozeß-Spezifikation (LE 15)<br />
pull-down-Menü<br />
Menüart, die aus einem Menütitel und zugeordneten ➜Menüoptionen besteht. Der<br />
Menütitel ist auf einem Menübalken angeordnet. Nach dem Anklicken des Menütitels<br />
werden die zugehörigen Menüoptionen »heruntergeklappt« und können selektiert<br />
werden. (LE 17)<br />
quick reference<br />
➜Referenz-Karte (LE 21)<br />
RD<br />
➜Requirements Dictionary (LE 15)<br />
RDBS<br />
➜relationales Datenbanksystem (LE 24)<br />
Real-Time Analysis (RT)<br />
Erweiterung <strong>der</strong> Methode SA (Structured Analysis) um ➜Kontrollflüsse,<br />
➜Kontrollflußspezifikationen und ➜Zeitspezifikationen, um bei ereignisgesteuerten<br />
Systemen das Aktivieren und Deaktivieren von Prozessen sowie die Erzeugung<br />
von Kontrollflüssen zu beschreiben. (LE 15)<br />
Rechnergestütztes Informationssystem<br />
Einheit aus ➜Informationssystem und ➜Computersystem. (LE1)<br />
Redefinition<br />
➜Unterklasse enthält eine Operation mit gleichem Namen wie eine geerbte Operation.<br />
Dadurch wird die geerbte Operation »verdeckt« und kann neu definiert und<br />
spezifiziert werden.
Referenz-Handbuch<br />
Detaillierte und vollständige Beschreibung aller Funktionen, Komponenten o<strong>der</strong><br />
sonstigen Aspekte eines Produkts. Der Benutzer soll während <strong>der</strong> Arbeit gezielt auf<br />
Informationen über einzelne Produktaspekte zugreifen können. (LE 21)<br />
Referenz-Karte<br />
Meist kleinformatige, kompakte Verzeichnisse wichtiger Kommandos, Funktionen<br />
usw. (LE 21)<br />
Regel<br />
Bedingte Aussage bestehend aus zwei Teilen. Der erste Teil besteht aus einem<br />
o<strong>der</strong> mehreren Wenn-Ausdrücken und legt die Bedingungen fest, die eingehalten<br />
werden müssen, wenn <strong>der</strong> zweite Teil, bestehend aus einem o<strong>der</strong> mehreren Dann-<br />
Ausdrücken, ausgeführt werden soll. (LE 9)<br />
regelbasierte Expertensysteme<br />
➜Expertensysteme, <strong>der</strong>en Wissensbasis ➜Regeln enthält. (LE 9)<br />
Regelinterpreter<br />
Steuert den Abarbeitungsprozeß in einem ➜regelbasierten Expertensystem. (LE<br />
9)<br />
Rekursive Assoziation<br />
Eine ➜Entitätsmenge steht mit sich selbst in ➜Assoziation. (LE 6)<br />
Relation<br />
Teilmenge eines kartesischen Produkts über die Wertebereiche von Attributen einer<br />
Entitäts- o<strong>der</strong> Beziehungsmenge (siehe auch ➜Tupel) (LE 25)<br />
relationales Datenbanksystem<br />
Speichert Daten entsprechend dem ➜relationalen Datenmodell. (LE 24)
elationales Datenmodell<br />
Daten werden in Tabellenform gespeichert, wobei jede Spalte <strong>der</strong> Tabelle ein<br />
Datenelement bzw. ein Attribut repräsentiert. Jedem Dateielement wird ein einfacher<br />
Datentyp zugeordnet. In je<strong>der</strong> Tabellenzeile wird ein Datensatz gespeichert,<br />
<strong>der</strong> durch einen Primärschlüssel eindeutig identifizierbar ist. Beziehungen zwischen<br />
mehreren Tabellen werden über Fremdschlüssel hergestellt. (LE 24)<br />
Relationenschema<br />
Beschreibung des Aufbaus einer ➜Relation, besteht aus dem Relationsnamen<br />
und den Attributnamen. Schlüsselattribute sind beson<strong>der</strong>s gekennzeichnet<br />
(Nummerzeichen am Ende des Namens # o<strong>der</strong> Name unterstrichen o<strong>der</strong> halbfett<br />
gesetzt). (LE 25)<br />
requirement<br />
➜Anfor<strong>der</strong>ung (LE 4)<br />
Requirements Dictionary (RD)<br />
Enthält wie das Data Dictionary in SA die Definition aller Datenflüsse,<br />
➜Kontrollflüsse und Speicher. Elementare Elemente müssen durch Muß-Attribute<br />
und können durch Kann-Attribute beschrieben werden. (LE 15)<br />
requirements engineering<br />
➜Systemanalyse (LE 4)<br />
Restriktion<br />
Beschränkungen zwischen den Attributwerten zweier Objekte. (LE 12)<br />
Rolle<br />
Gibt an, welche Funktion ein Objekt in einer ➜Assoziation o<strong>der</strong> ➜Aggregation innehat.<br />
(LE 12)<br />
Rolle<br />
Gibt die Funktion an, die eine Entität in einer ➜Assoziation spielt. (LE 6)<br />
RT<br />
➜Real Time Analysis (LE 15)
Rückwärtsverkettung<br />
Ausgangspunkt ist eine Zielangabe. Der ➜Regelinterpreter versucht zu bestimmen,<br />
ob die Zielregel erfüllt wird. Dabei bewegt er sich rückwärts zu den Wenn-<br />
Vorbedingungen <strong>der</strong> ➜Regel und versucht festzustellen, ob diese erfüllt sind. Dies<br />
führt dazu, daß weitere Regeln herangezogen werden, die die Gültigkeit dieser<br />
Wenn-Aussage bestätigen können. Auf diese Weise wird rückwärtssuchend <strong>der</strong><br />
Regelteil durchlaufen. Die Rückwärtssuche endet, wenn eine Frage an den Benutzer<br />
gestellt wird o<strong>der</strong> ein vorher abgespeichertes Faktum in <strong>der</strong> Datenbasis gefunden<br />
wird. (LE 9)<br />
S/T-Netz<br />
➜Stellen/Transitions-Netz (LE 11)<br />
SA<br />
➜Strukturierte Analyse (LE 14)<br />
Schachtelung<br />
Innerhalb von ➜Kontrollstrukturen können wie<strong>der</strong>um Kontrollstrukturen stehen.<br />
(LE 8)<br />
Schema<br />
Beschreibt für eine konkrete ➜Datenbank das ➜Datenmodell. (LE 24)<br />
Schichtenarchitektur<br />
Glie<strong>der</strong>ung einer ➜Softwarearchitektur in hierarchische Schichten. Zwischen den<br />
Schichten kann eine lineare, strikte o<strong>der</strong> baumartige Ordnung bestehen. Jede<br />
Schicht besteht aus ➜Systemkomponenten. Anwendungen werden oft nach einer<br />
Drei-Schichten-Architektur aufgebaut: Benutzungsoberfläche, eigentliche Anwendung,<br />
Datenhaltung. (LE 23)<br />
Schlüssel<br />
Identifiziert eindeutig ein ➜Tupel in einer ➜Relation (Primärschlüssel) (siehe auch<br />
➜Fremdschlüssel) (LE 25)
Schlüssel<br />
Minimale ➜Attribut-Kombination, um eine Entität in einer Entitätsmenge eindeutig<br />
zu identifizieren. (LE 6)<br />
schrittweise Verfeinerung<br />
Methode, die ausgehend von einer abstrakten Problemlösung durch schrittweise<br />
➜Verfeinerung <strong>der</strong> abstrakten Datenstrukturen und Operationen nach und nach<br />
das Beschreibungsniveau einer Programmiersprache erreicht. (LE 32)<br />
SD<br />
➜Strukturierter Entwurf (LE 28)<br />
Sekundärdialog<br />
Kurzzeitiger, optionaler ➜Dialog, <strong>der</strong> zusätzliche Informationen vom Benutzer anfor<strong>der</strong>t.<br />
Eingebettet in ➜Primärdialoge. (LE 17)<br />
Selektion<br />
Auswahl bestimmter ➜Tupel einer ➜Relation (Zeilen einer ➜Tabelle) (LE 25)<br />
Semantische Datenmodellierung<br />
Erweiterung des ➜ER-Modells um Generalisierungshierarchie (is-a) und die Aggregation<br />
(is-part-of). (LE 6)<br />
sequential machine<br />
➜endlicher Automat (LE 10)<br />
Sequenz<br />
Mehrere Anweisungen werden hintereinan<strong>der</strong> ausgeführt (Aneinan<strong>der</strong>reihung) (LE<br />
8)<br />
Simulation<br />
Methode, bei <strong>der</strong> die Lösung in <strong>der</strong> Vorhersage <strong>der</strong> Auswirkungen von gegebenen<br />
Ursachen in einem Modell besteht. (LE 23)<br />
Software<br />
Programme, zugehörige Daten und notwendige Dokumentation, die zusammengefaßt<br />
es erlauben, mit Hilfe eines Computers Aufgaben zu erledigen. (LE1)
Softwarearchitektur<br />
Strukturierte o<strong>der</strong> hierarchische Anordnung <strong>der</strong> Systemkomponenten sowie Beschreibung<br />
ihrer Beziehungen. (LE 23)<br />
Software-Engineering<br />
➜Software-Technik. (LE1)<br />
Software-Entwicklung<br />
Aus einem geplanten ➜Software-Produkt ein fertiges Software-Produkt entwikkeln,<br />
das die gefor<strong>der</strong>ten Eigenschaften besitzt (➜Phase). (LE1)<br />
Software-Ergonomie<br />
Menschengerechte Gestaltung eines Software-Arbeitsplatzes, d.h. <strong>der</strong> Anwendungssoftware<br />
und <strong>der</strong> ➜Arbeitsoberfläche. (LE 16)<br />
Software-Management<br />
Planung, Organisation, Leitung und Kontrolle einer ➜Software-Entwicklung. (LE1)<br />
Software-Produkt<br />
Produkt, das aus ➜Software besteht. (LE1)<br />
Software-Qualitätssicherung<br />
Sicherstellung <strong>der</strong> gefor<strong>der</strong>ten Produkt- und Prozeßqualität einer ➜Software-Entwicklung<br />
durch geeignete konstruktive und analytische Maßnahmen. (LE1)<br />
Software-System<br />
➜System, dessen ➜Systemkomponenten und ➜Systemelemente aus ➜Software<br />
bestehen. (LE1)<br />
Software-Technik<br />
zielorientierte Bereitstellung und systematische Verwendung von ➜Prinzipien,<br />
➜Methoden und ➜Werkzeugen für die arbeitsteilige, ingenieurmäßige Herstellung<br />
und Anwendung von umfangreichen ➜Software-Systemen. (LE1)<br />
Spezifikation einer Operation<br />
Beschreibung <strong>der</strong> fachlichen Aufgaben einer ➜Operation, meist in Form von<br />
Pseudo-Code. (LE 7)
Spezifikation von Systemkomponenten<br />
Festlegung von Schnittstelle, Funktions- und Leistungsumfang einer jeden Systemkomponente.<br />
(LE 23)<br />
Sprachen <strong>der</strong> 4. Generation<br />
Nichtprozedurale, meist deskriptive und mengenorientierte Programmiersprachen<br />
zur Bearbeitung von Anwendungen mit Datenbanken o<strong>der</strong> im Umfeld von Datenbanken<br />
(➜SQL, ➜OQL). Deskriptiv bedeutet, daß die Eigenschaften <strong>der</strong> gesuchten<br />
Daten beschrieben werden und nicht <strong>der</strong> Weg zur Ermittlung dieser Daten.<br />
Mengenorientiert bedeutet, daß bei einer Anfrage alle gefundenen Lösungen als<br />
Ergebnis geliefert werden können. (LE 24)<br />
SQL<br />
(structured query language) ➜Sprache <strong>der</strong> 4. Generation, heute bei ➜relationalen<br />
Datenbanksystemen am weitesten verbreitet und standardisiert. Umfaßt Kommandos<br />
zur Datendefinition (➜DDL) und zur Datenmanipulation (➜DML) sowie Kommandos<br />
<strong>zum</strong> Vergeben von Zugriffsberechtigungen. (LE 24)<br />
statechart<br />
➜Harel-Automat (LE 10)<br />
Stelle (Platz, Zustand<br />
) Ein Knotentyp in einem ➜Petri-Netz. Passive Systemkomponente, in <strong>der</strong> Informationen<br />
o<strong>der</strong> Material abgelegt werden können. Der aktuelle Belegungszustand einer<br />
Stelle wird durch eine ➜Marke angegeben. (LE 11)<br />
Stellen/Transitions-Netz<br />
➜Petri-Netz, bei dem jede Stelle eine definierte Markenkapazität und je<strong>der</strong> Pfeil<br />
ein Pfeilgewicht zugeordnet bekommt. Entsprechend den Gewichten entfernen<br />
Transitionen Marken von den Eingabestellen und verteilen sie auf die Ausgabestellen.<br />
(LE 11)<br />
stepwise refinement<br />
➜schrittweise Verfeinerung (LE 32)
Steuersystem<br />
➜Expertensystem-Shell (LE 23)<br />
structure charts<br />
➜Strukturdiagramme (LE 28)<br />
structured design<br />
➜Strukturierter Entwurf (LE 28)<br />
Struktogramm-Notation<br />
grafische Darstellung ➜linearer Kontrollstrukturen. (LE 8)<br />
Strukturdiagramme<br />
Grafische Darstellungstechnik, die es erlaubt, ➜funktionale Module, ihre Aufrufbeziehungen<br />
und Datenflüsse darzustellen. Zusätzlich können textuelle Modulspezifikationen<br />
erstellt werden. (LE 28)<br />
Strukturierte Analyse (structured analysis)<br />
Methodenklasse, die die Basiskonzepte Datenflußdiagramm, Data Dictionary-Einträge,<br />
Pseudo-Code und Entscheidungstabellen zu einer Methode zur Definition<br />
von Anfor<strong>der</strong>ungen kombiniert. (LE 14)<br />
Strukturierter Entwurf<br />
Entwurfsmethode, die zu einer Softwarearchitektur führt, die aus ➜funktionalen<br />
Modulen besteht. Die Struktur <strong>der</strong> Architektur ist ein Baum o<strong>der</strong> ein azyklisches<br />
Netz. Die Beschreibung erfolgt durch ➜Strukturdiagramme. (LE 28)<br />
strukturiertes Programmieren<br />
i.e.S. Beschreibung eines Algorithmus durch ausschließliche Verwendung von<br />
➜linearen Kontrollstrukturen (keine goto- bzw. Sprungkonstrukte). (LE 8)<br />
style guide<br />
➜Gestaltungs-Regelwerk (LE 16)<br />
Subsystem<br />
➜Systemkomponente. (LE1)
Subsystem<br />
Zusammenfassung von Klassen zu einem Oberbegriff. Subsysteme werden in einem<br />
Übersichtsdiagramm dargestellt, während die durch ein Subsystem zusammengefaßten<br />
Klassen z.B. durch eine graue Umrandung auf dem OOA-Diagramm<br />
dargestellt werden. Subsysteme geben dem Leser einen Überblick über ein OOA-<br />
Modell und helfen ihm beim Navigieren durch ein komplexes Diagramm. (LE 12)<br />
SW<br />
Abkürzung für ➜Software. (LE1)<br />
Syntax-Diagramm<br />
grafische Darstellung <strong>der</strong> Backus-Naur-Form; üblich zur Beschreibung <strong>der</strong> Syntax<br />
von Programmiersprachen (LE 5)<br />
System<br />
Ausschnitt aus <strong>der</strong> realen o<strong>der</strong> gedanklichen Welt, bestehend aus<br />
➜Systemkomponenten bzw. Subsystemen, die untereinan<strong>der</strong> in verschiedenen<br />
Beziehungen stehen können. (LE1)<br />
Systemanalyse<br />
Teilgebiet <strong>der</strong> Software-Technik; Aufgabe ist die systematische Ermittlung, Beschreibung<br />
und Analyse von ➜Anfor<strong>der</strong>ungen im Dialog mit dem Auftraggeber unter<br />
Einsatz geeigneter Methoden und Werkzeuge. Das Ergebnis ist eine ➜Produkt-<br />
Definition. (LE 4)<br />
Systemelement<br />
➜Systemkomponente, die nicht weiter zerlegbar ist o<strong>der</strong> zerlegt werden soll. (LE1)<br />
Systemkomponente<br />
Teil eines ➜Systems, z.B. Mensch, Material, Maschine, Produkt<br />
(➜Systemelement). (LE1)<br />
Systemsoftware<br />
➜Software, die für eine spezielle Hardware o<strong>der</strong> Hardwarefamilie entwickelt ist,<br />
um den Betrieb und die Wartung dieser Hardware zu ermöglichen sowie ihre funktionellen<br />
Fähigkeiten zu ergänzen. (LE1)
Tabelle<br />
tabellarische Darstellung eines ➜Relationenschemas (Tabellenkopf) mit<br />
➜Relationen (Tabelleninhalt) (LE 25)<br />
Tabelle<br />
Zweidimensionale Anordnung von Ein- und/o<strong>der</strong> Ausgabebereichen, in Zeilen und<br />
Spalten organisiert. Die Gesetze <strong>der</strong> ➜Gestaltpsychologie sind bei <strong>der</strong> Gestaltung<br />
zu beachten. (LE 20)<br />
Technisches System<br />
Einheit aus ➜Computersystem und sonstigen technischen Einrichtungen. (LE1)<br />
Θ-Verbund<br />
Verschmilzt zwei ➜Relationen zu einer Relation, wobei die Werte von zwei Attributen<br />
<strong>der</strong> Relationen einer <strong>der</strong> festgelegten Bedingungen =, ≠, = genügen<br />
müssen. (LE 25)<br />
Tiefensuche<br />
Ein bestimmtes Thema wird solange verfolgt, bis alle Informationen darüber vorliegen.<br />
(LE 9)<br />
Tool<br />
➜Werkzeug. (LE1)<br />
Trainings-Handbuch<br />
Besteht aus didaktisch durchdachten, aufeinan<strong>der</strong> aufbauenden Aufgaben, die in<br />
Einzelschritte zerlegt und ausführlich erläutert sind. Erlaubt es dem Benutzer, ohne<br />
Vorkenntnisse sofort etwas mit <strong>der</strong> Software zu tun und vermittelt rasch Erfolgserlebnisse.<br />
(LE 21)<br />
Transformations-Analyse<br />
Methode, um ein SA-Modell in ein SD-Modell zu transformieren. (LE 28)<br />
Transition (Hürde, Zustandsübergang)<br />
Ein Knotentyp in einem ➜Petri-Netz. Aktive Systemkomponente, die Informationen<br />
o<strong>der</strong> Material verarbeitet. (LE 11)
Tupel<br />
Element einer ➜Relation, Zeile in einer ➜Tabelle (LE 25)<br />
tutorial<br />
➜Trainings-Handbuch (LE 21)<br />
Tutorsystem<br />
Hilft dem Benutzer beim Erlernen <strong>der</strong> Mensch-Computer-Schnittstelle, <strong>der</strong> Anwendungssoftware<br />
o<strong>der</strong> von Komponenten davon durch interaktive Lehr- und Lernprogramme.<br />
(LE 22)<br />
UIMS<br />
Erstellung einer grafischen Benutzungsoberfläche mit Hilfe einer grafischen Editors.<br />
Dialogstruktur und -dynamik werden prozedural o<strong>der</strong> durch Regeln beschrieben.<br />
Es wird eine Anwendungsprogramm-Schnittstelle (API) sowie die Schnittstelle<br />
zu einem o<strong>der</strong> mehreren GUI-Systemen generiert. (LE 23)<br />
Unterklasse<br />
Erbt alle ➜Attribute und ➜Operationen <strong>der</strong> zugeordneten Oberklasse(n)<br />
(➜einfache Vererbung, ➜Mehrfachvererbung). Besitzt zusätzlich eigene Attribute<br />
und Operationen. Methodisches Mittel zur Bildung von Spezialisierungen. (LE 7)<br />
Unternehmensdatenmodell<br />
Ganzheitliche Darstellung <strong>der</strong> Entitätsmengen und ihrer Verknüpfungen aller Bereiche<br />
eines Unternehmens unter Berücksichtigung <strong>der</strong> Schnittstellen zueinan<strong>der</strong> in<br />
einheitlicher Form (LE 6)<br />
user guide<br />
➜Benutzer-Leitfaden (LE 21)<br />
user interface management system<br />
➜UIMS (LE 23)<br />
user support system<br />
➜Benutzer-Unterstützungssystem (LE 22)
Verbalisierung<br />
Verbesserung <strong>der</strong> Lesbarkeit eines Programms durch aussagekräftige,<br />
mnemonische Bezeichnerwahl, geeignete Kommentare und Verwendung einer<br />
selbstdokumentierenden Programmiersprache. (LE 32)<br />
Vererbung<br />
➜Attribute eines Generalisierungstyps werden an die zugehörigen<br />
Spezialisierungstypen vererbt, d.h. die Spezialisierungstypen verfügen ebenfalls<br />
über diese Attribute. (LE 6)<br />
Vererbung<br />
➜Attribute und ➜Operationen einer ➜Oberklasse werden an die zugehörigen<br />
Unterklassen vererbt. Man unterscheidet die ➜einfache Vererbung und die<br />
➜Mehrfachvererbung. (LE 7)<br />
Verfahren<br />
Ausführbare Vorschriften o<strong>der</strong> Anweisungen <strong>zum</strong> gezielten Einsatz von<br />
➜Methoden. (LE1)<br />
Verfeinerung<br />
Dokumentation eines Programms in <strong>der</strong> Form, daß die beim Programmentwurfsprozeß<br />
(➜schrittweise Verfeinerung) entstandenen Verfeinerungsebenen<br />
sichtbar sind und die Lesbarkeit eines Programms verbessern. (LE 32)<br />
Verkapselung<br />
Auf die ➜Attributwerte eines ➜Objekts kann nur über die ➜Operationen des Objekts<br />
zugegriffen werden. Für an<strong>der</strong>e Klassen und Objekte sind die Attribute und<br />
Attributwerte einer Klasse o<strong>der</strong> eines Objekts unsichtbar. (LE 7)<br />
Verklemmung<br />
Situation in einem ➜Petri-Netz, in <strong>der</strong> keine Transition schalten kann, die aber bei<br />
einer an<strong>der</strong>en Schaltreihenfolge hätte vermieden werden können. (LE 11)
vollständige Entscheidungstabelle<br />
Alle möglichen Bedingungskombinationen sind als Regeln vorhanden (formal vollständig;<br />
2n, n=Anzahl <strong>der</strong> Bedingungen) bzw. alle fachlich möglichen Bedingungskombinationen<br />
sind vorhanden (inhaltlich vollständig). (LE 8)<br />
Vorwärtsverkettung<br />
Feststellen aller ➜Regeln, <strong>der</strong>en Wenn-Teil erfüllt ist. Dann Prüfung, welche weiteren<br />
Regeln anhand <strong>der</strong> bereits ermittelten Fakten zutreffen könnten. Wie<strong>der</strong>holung<br />
dieses Vorgangs, bis <strong>der</strong> ➜Regelinterpreter ein Ziel erreicht hat o<strong>der</strong> keine<br />
weiteren Möglichkeiten mehr vorhanden sind. (LE 9)<br />
Warnier-Orr-Diagramm<br />
Gekippte baumförmige Darstellung von ➜linearen Kontrollstrukturen durch eine<br />
Klammernotation. (LE 8)<br />
Wartung<br />
Beseitigung von Fehlern und Defekten, die nach <strong>der</strong> Inbetriebnahme eines<br />
➜Systems auftreten. (LE1)<br />
Wartung<br />
Beseitigung, d.h. Lokalisierung und Behebung von Fehlerursachen in Software-<br />
Produkten, die in Betrieb sind, wenn die Fehlerwirkung bekannt ist. (LE 33)<br />
Werkzeuge<br />
Dienen zur automatischen Unterstützung von ➜Methoden, ➜Verfahren und<br />
➜Notationen. (LE1)<br />
widget<br />
➜Interaktionselement (LE 19)<br />
Wie<strong>der</strong>holung<br />
Wie<strong>der</strong>holte Ausführung von Anweisungen in Abhängigkeit von einer Bedingung<br />
o<strong>der</strong> für eine gegebene Wie<strong>der</strong>holungszahl (auch Schleife genannt). Man unterscheidet<br />
Wie<strong>der</strong>holungen mit Abfrage <strong>der</strong> Wie<strong>der</strong>holungsbedingung vor jedem<br />
Wie<strong>der</strong>holungsdurchlauf, nach jedem Wie<strong>der</strong>holungsdurchlauf und Wie<strong>der</strong>holungen<br />
mir fester Wie<strong>der</strong>holungsanzahl. (LE 8)
Zeitbehaftetes Petri-Netz<br />
höheres ➜Petri-Netz, bei dem Stellen o<strong>der</strong> Transitionen mit einem<br />
deterministischen o<strong>der</strong> stochastischen Zeitverbrauch versehen werden können.<br />
(LE 11)<br />
Zeitspezifikationen<br />
In ➜Real Time Analysis können absolute Zeitanfor<strong>der</strong>ungen zwischen externen<br />
Eingabe- und Ausgabeereignissen durch eine Zeitspezifikationstabelle festgelegt<br />
werden. Außerdem können Wie<strong>der</strong>holungszyklen als Attribute von elementaren<br />
➜Kontrollflüssen angegeben werden. (LE 15)<br />
Zustandsautomat<br />
Besteht aus einer endlichen Anzahl interner Zustände. Zwischen den Zuständen<br />
gibt es Zustandsübergänge, die in Abhängigkeit von Eingaben o<strong>der</strong> Ereignissen<br />
durchgeführt werden. Eine Ausgabe o<strong>der</strong> Aktion kann beim Zustandsübergang erfolgen<br />
(➜Mealy-Automat) o<strong>der</strong> in einem Zustand (➜Moore-Automat). (LE 10)<br />
Zustandsdiagramm<br />
Grafische Darstellungsform eines ➜Zustandsautomaten. Die Zustände werden<br />
entwe<strong>der</strong> als Kreise o<strong>der</strong> als Rechtecke dargestellt. Die Zustandsübergänge werden<br />
durch beschriftete Pfeile angegeben (Eingabe/Ausgabe). (LE 10)<br />
Zustandsmatrix<br />
In Matrixform werden entwe<strong>der</strong> die Zustände o<strong>der</strong> Ereignisse o<strong>der</strong> <strong>der</strong> Ausgangszustand<br />
und <strong>der</strong> Zielzustand als Matrixdimensionen aufgetragen<br />
(➜Zustandsautomat). (LE 10)<br />
Zustandstabelle<br />
In Spaltenform werden <strong>der</strong> aktuelle Zustand, das Ereignis, die Aktion und <strong>der</strong><br />
Folgezustand eines ➜Zustandsautomaten dargestellt. (LE 10)