20.01.2013 Aufrufe

CD zum Lehrbuch der Softwaretechnik

CD zum Lehrbuch der Softwaretechnik

CD zum Lehrbuch der Softwaretechnik

MEHR ANZEIGEN
WENIGER ANZEIGEN

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)

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!