View
122
Download
0
Category
Preview:
Citation preview
1
Vorlesung Softwaretechnik
Prof. Dr.-Ing.habil. Dipl.Math. Klaus-Peter Fähnrich
(Wintersemester 2001/2002)
Universität LeipzigInstitut für Informatik
2
1. Datenorientierte Sicht1. Entity-Relationship-Modell
1. Vergleich ER-Konzepte vs OO-Konzepte2. Schlüssel, Tabellen und Dateien3. Semantische Datenmodelle4. Unternehmensdatenmodelle und Weltmodelle
2. Modellierung multidimensionaler Datenstrukturen1. Data Warehouse, Data Marts, OLAP und
Hyperwürfel2. Modellierungsansätze3. Abbildung auf Tabellen
3. Data Dictionary4. Zusammenfassung
2. Algorithmisch- und regelbasierte Sicht
Inhalt
5. Die Definitionsphase – Datenorientierte Sicht
3
1. Erläuterung der Begriffe Entität, Entitätstyp, Entitätsmenge, Beziehung, Beziehungstyp, Attribut und Schlüssel.
2. Kardinalitäten3. Konzepte Aggregation und Vererbung4. Unterschiede zwischen ER- und OO-Modell5. Begriffe Data Warehouse, Data Mart, Hyperwürfel, multidimensionale
Datenstruktur, OLAP und Data Mining6. Erstellen eines ER-Modells, einer Assoziationsmatrix für eine
gegebene Aufgabenstellung7. Erstellen eines Hyperwürfels und seiner Darstellung durch einen ER-
Modell8. Definition und hierarchische Anordnung von Datenstrukturen als Data-
Dictionary-Einträge
Lernziele
5.1. Die Definitionsphase – Datenorientierte Sicht
4Basiskonzepte : Funktionale Sicht
5.1.1. Die Definitionsphase – ER-Modell
Entity-Relationship-Modell (ER-Modell)
• 1976 von P. Chen zur Datenmodellierung entwickelt• Ziel
o Beschreibung der permanent gespeicherten Daten und ihre Beziehungen untereinandero Die Analyse der Information erfolgt aus fachlogischer Sicht
• Ergebniso Konzeptionelles Modell, das gegen Veränderungen der Funktionalität weitgehend stabil isto Semantische Datenmodellierungo Erweiterung um Aggregation und Vererbung
5Objekte,Klassen & Attribute
5.1.1.1. Die Definitionsphase – Vergleich: ER vs OO
UML ERM Notation/ Chen 76/
Notations-erweiterungen
Objekt
Klasse
Klassenextension(extent)
Attribut
Attributtyp
Stereotyp «Structure»
Verbindung (link)zwischen Objekten
Assoziation
Entität(entity)
kein Symbol
Entitätstyp(entity type)
Entitätsmenge(entity set)
Attribut
Wertebereich, Domäne, Werte-typen (domain, value-set)
Schlüsselattribut
Mehrwertiges Attribut(kann ein oder mehrereWerte aus dem Wertebereichannehmen)ZusammengesetztesAttribut
Beziehung(relationship)
Beziehungstyp,Assoziation(relationship type) Typ
Typ
einObjekt
Operation()
Klasse
Attribut
EntitätstypAttribut
Attribut
Attribut
Attribut
Attribut
Teil 1 Teil 2
:Klasse1 :Klasse2
Klasse1 Klasse2
Kardinalität
0..1
Kardinalität, Komplexität,Stelligkeit
MC-Notation Krähenfuß-Notation
*
1
1
M
1
C
MC
1
1..*keineUnterscheidungzwischen Mussund Kann
M M
Entitätstyp
6Assoziationen
5.1.1.1. Die Definitionsphase – Vergleich: ER vs OO
UML ERM Notation/ Chen 76/
Notations-erweiterungen
Objekt
Klasse
Klassenextension(extent)
Attribut
Attributtyp
Stereotyp «Structure»
Verbindung (link)zwischen Objekten
Assoziation
Entität(entity)
kein Symbol
Entitätstyp(entity type)
Entitätsmenge(entity set)
Attribut
Wertebereich, Domäne, Werte-typen (domain, value-set)
Schlüsselattribut
Mehrwertiges Attribut(kann ein oder mehrereWerte aus dem Wertebereichannehmen)ZusammengesetztesAttribut
Beziehung(relationship)
Beziehungstyp,Assoziation(relationship type) Typ
Typ
einObjekt
Operation()
Klasse
Attribut
EntitätstypAttribut
Attribut
Attribut
Attribut
Attribut
Teil 1 Teil 2
:Klasse1 :Klasse2
Klasse1 Klasse2
Kardinalität
0..1
Kardinalität, Komplexität,Stelligkeit
MC-Notation Krähenfuß-Notation
*
1
1
M
1
C
MC
1
1..*keineUnterscheidungzwischen Mussund Kann
M M
Entitätstyp
7Kardinalitäten
5.1.1.1. Die Definitionsphase – Vergleich: ER vs OO
A B
A B
A B
A B
A B
A B
A B
A B
A
A B
B
A B(0,1)
A B(1,1)
A B(0,n)
A B(0,n)
A B
A B
A B
A B
C
1
MC
M
A B1
A BM
1 MC
(0,m) (1,1)A B
semantisch identische numerische Notation
MC-Notation
Alternativen bei Kardinalitätsangaben
MC vs numerische Notation
8Schlüsseln
5.1.1.2. Die Definitionsphase – Schlüssel,Tabellen & Dateien
Schlüssel• Minimale, identifizierende Attributkombination• Schlüssel werden unterstrichen• Oft auch mehrere Schlüssel möglich
o Entitätsmenge: Stadto Attribute: PLZ, Staat, Einwohnerzahl, Vorwahlo Schlüssel: PLZ und Staat oder Vorwahl
• In einem solchen Fall wird stets ein Schlüssel als Primärschlüssel ausgezeichnet.• Ein Schlüssel K ist stets eine minimale, identifizierende Attributkombination
o Jede echte Obermenge von K ist ein Schlüsselkandidato Für Stadt ist {Staat, Vorwahl} Schlüsselkandidat
Vorwahl ist Schlüssel {PLZ, Staat} ist ebenfalls Schlüssel
o Minimal: Die eindeutige Identifizierbarkeit geht verloren, wenn ein Attribut entfernt wird.
9Tabellen und Dateien
5.1.1.2. Die Definitionsphase – Schlüssel,Tabellen & Dateien
Entitäten• Entitätstypen mit ihren Entitäten lassen sich durch Tabellen darstellen
o Regel 1 Für jeden Entitätstyp wird ein Speicher bzw. eine Datei benötigt Jede Entität des entsprechenden Entitätstyps stellt einen Eintrag in diese Datei dar
o Regel 2: Sind 2 Entitätstypen A und B durch einen 1:1- oder M:1-Beziehungstyp verbunden, dann wird der Primärschlüssel von B als sogenannter Fremdschlüssel in A eingetragen, d.h. als zusätzliches Attribut.
o Regel 3 Sind 2 Entitätstypen A und B durch einen M:N-Beziehungstyp verbunden, dann wird für den Beziehungstyp eine eigene Datei angelegt Als Attribute werden die Schlüssel der Entitätstypen verwendet, die der Beziehungstyp verbindet Beide Schlüsselattribute zusammen bilden den Primärschlüssel dieser Tabelle
o Einem Beziehungstyp kann man ebenfalls Attribute zuordnen, wenn dies fachlich notwendig ist
10Beispiel : Semantisches Modell für „Seminar-Organisation“
5.1.1.3. Die Definitionsphase – Semantische Modelle
is-a
C
MC
MC MC
1
MC
MC
1
MC M
M
MC
Person
Veranstal-tung
Kunde Dozent
SeminartypZahlungsverzug Firma
wirddurchgeführt
von
istzugeordnet
gehörtzu
istbeschäftigt
bei
inVerzug
bucht
11Assoziationsmatrix und Bewertung der semantischen Datenmodelle
5.1.1.3. Die Definitionsphase – Semantische Modelle
• Zusammenhang mit Funktionsbäumeno Die in den Funktionsbäumen beschriebenen Funktionen benutzen die in ER-Diagrammen modellierten Datenstrukturen, um ihre Aufgabe zu erfülleno Eine Möglichkeit den Zusammenhang zwischen beiden Sichten herzustellen, ist die Erstellung einer Assoziationsmatrix.
• Bewertungo Vorteile
Im kaufmännischen Anwendungsbereich ist eine semantische Datenmodellierung ein absolutes Muss Auch in vielen technischen Bereichen ist die Komplexität der Daten so groß, dass ein semantisches Datenmodell erforderlich ist (Beispiel: Roboter-Modellierung) Voraussetzung für einen relationalen Datenbankentwurf.
o Nachteile Dynamische Aspekte können nicht dargestellt werden Erfordert ein höheres Abstraktionsniveau als die Konzepte zur Modellierung der funktionalen Sicht Semantische Datenmodelle können sehr umfangreich werden Es fehlt ein Verfeinerungsmechanismus um mehrere Abstraktionsebenen bilden zu können.
12Definitionen und Zusammenhänge
5.1.1.4. Die Definitionsphase – Unternehmensdatenmodelle ...
• Probleme bei der Betrachtung nur eines Bereiches eines Unternehmens:o Mehrfachverwaltung der gleichen Datenbeständeo Brüche bei der Abwicklung von übergreifenden Geschäftsvorgängeno Inkompatible Informationsflüsse
•Zielo Aufstellung eines umfassendes Unternehmensdatenmodells.
•Unternehmensdatenmodello Soll die Informationsstrukturen und Geschäftsprozesse aller Bereiche eines Unternehmens unter Berücksichtigung der Schnittstellen zueinander in einheitlicher und ganzheitlicher Form darstellen
•Beschreibung von Unternehmensdatenmodelleno Semantische Datenmodelleo Je nach Abstraktionsebene und Verdichtungsgrad können Datenmodelle unterschiedlicher Ebenen definiert werden.
•Strategisches Datenmodello Enthält nur die wichtigsten Entitätstypen und Beziehungeno Enthält nur grundsätzliche Branchenunterschiedeo Umfasst in der Regel rund 20 bis 30 Entitätstypen und Beziehungen
•Nächste Abstraktionsebeneo Zeigt bereits unterschiedliche Strukturen innerhalb einer Branche
13Grobstruktur eines Unternehmensdatenmodells
LeNr
LeNr
Datum
KNr LeNrDatum
KNrLNr
L.Geschäfts-
BeziehungenBeschaffungs-
Aufträge
K.Geschäfts-
BeziehungenKundenAufträge
IS-A
is-a
is-a
is-a
is-a
Ressourcen-belegung
Struktur
Lieferant Kunden
fremdbezogeneLeistungen
absetzbareLeistungen
eigenerstellteLeistungen
Werkstoff Mitarbeiter
Zeit
Betriebsmittel
KNr LeNr
Marktpartner
Leistungen
Produktions-faktoren
Fe rti-g un g s be sc h re i-
bu n g
Fertigungs-auftrag
Legende:
Generalisierungstyp
Assoziation, die gleichzeitigeine Entitätsmenge ist
14Definitionen und Zusammenhänge
5.1.2.1. Die Definitionsphase –Data Warehouse, Data Marts,...
• Data Warehouseo Themenorientierte, integrierte, zeitabhängige, nichtflüchtige Datensammlung zur Unterstützung von Managemententscheidungen
• Data Marts o Stellen funktionsbereichs- oder personengruppenspezifische Extrakte aus der Data Warehouse-Datenbasis zur Verfügungo Sie erlauben dadurch dezentrale fachliche Sichten auf das zentrale Data Warehouse.
• OLAP (On-line Analytical Processing)o Beschreibt die Datenmodellierung in multidimensionalen Strukturen zur Datenanalyseo Bei multidimensionaler Aufbereitung können die Daten vom Benutzer schneller und aussagekräftiger zur Entscheidungsfindung analysiert werden
• Data Miningo Bezeichnet die automatische Suche nach unbekannten Zusammenhängen in großen Datenbeständeno In einem umfassenden Datenbestand werden eine Vielfalt von Zusammenhängen entdeckt, die dann noch bezüglich ihrer Aussagekraft und Relevanz interpretiert werden müssen.
( siehe Prof. Rahm, Datawarehousing)
15Datencharakteristika der Architekturstufen
detaillierttagtäglichaktueller Werthohe Zugriffs-wahrscheinlichkeit
anwendungsorientiert
nur Lese-Zugriffmeist verdichtetzeitvariantintegriertfachorientiert
zusammenfassend
beschränktteils abgeleitetteils einfach
temporärad hocheuristischnicht wiederholend
OperativesSystem
Data Mart Kundensachbearbeiter
Name = Hans SchulzUmsatz = 6600,-
HistorischAktuell Periodisch Temporär
1.Q. 1999: 35000,-2.Q. 1999: 67000,-3.Q. 1999: 78000,-4.Q. 1999: 99000,-
Name = Hans SchulzUmsatz = 4200,-Datum = 1.7.99
Name = Hans SchulzUmsatz = 2000,-Datum = 1.3.99
Name = Hans SchulzUmsatz = 6600,-Datum = 1.12.99
Wie viele Kundenhaben seit dem1. Quartal 1999ihre Umsätze proQuartal um mehr als10% erhöht?
Data Warehouse
detaillierttagtäglichaktueller Werthohe Zugriffs-wahrscheinlichkeit
anwendungsorientiert
nur Lese-Zugriffmeist verdichtetzeitvariantintegriertfachorientiert
zusammenfassend
beschränktteils abgeleitetteils einfach
temporärad hocheuristischnicht wiederholend
OperativesSystem
Data Mart Kundensachbearbeiter
Name = Hans SchulzUmsatz = 6600,-
HistorischAktuell Periodisch Temporär
1.Q. 1999: 35000,-2.Q. 1999: 67000,-3.Q. 1999: 78000,-4.Q. 1999: 99000,-
Name = Hans SchulzUmsatz = 4200,-Datum = 1.7.99
Name = Hans SchulzUmsatz = 2000,-Datum = 1.3.99
Name = Hans SchulzUmsatz = 6600,-Datum = 1.12.99
Wie viele Kundenhaben seit dem1. Quartal 1999ihre Umsätze proQuartal um mehr als10% erhöht?
Data Warehouse
detaillierttagtäglichaktueller Werthohe Zugriffs-wahrscheinlichkeit
anwendungsorientiert
nur Lese-Zugriffmeist verdichtetzeitvariantintegriertfachorientiert
zusammenfassend
beschränktteils abgeleitetteils einfach
temporärad hocheuristischnicht wiederholend
OperativesSystem
Data Mart Kundensachbearbeiter
Name = Hans SchulzUmsatz = 6600,-
HistorischAktuell Periodisch Temporär
1.Q. 1999: 35000,-2.Q. 1999: 67000,-3.Q. 1999: 78000,-4.Q. 1999: 99000,-
Name = Hans SchulzUmsatz = 4200,-Datum = 1.7.99
Name = Hans SchulzUmsatz = 2000,-Datum = 1.3.99
Name = Hans SchulzUmsatz = 6600,-Datum = 1.12.99
Wie viele Kundenhaben seit dem1. Quartal 1999ihre Umsätze proQuartal um mehr als10% erhöht?
Data Warehouse
detaillierttagtäglichaktueller Werthohe Zugriffs-wahrscheinlichkeit
anwendungsorientiert
nur Lese-Zugriffmeist verdichtetzeitvariantintegriertfachorientiert
zusammenfassend
beschränktteils abgeleitetteils einfach
temporärad hocheuristischnicht wiederholend
OperativesSystem
Data Mart Kundensachbearbeiter
Name = Hans SchulzUmsatz = 6600,-
HistorischAktuell Periodisch Temporär
1.Q. 1999: 35000,-2.Q. 1999: 67000,-3.Q. 1999: 78000,-4.Q. 1999: 99000,-
Name = Hans SchulzUmsatz = 4200,-Datum = 1.7.99
Name = Hans SchulzUmsatz = 2000,-Datum = 1.3.99
Name = Hans SchulzUmsatz = 6600,-Datum = 1.12.99
Wie viele Kundenhaben seit dem1. Quartal 1999ihre Umsätze proQuartal um mehr als10% erhöht?
Data Warehouse
16OLAP
5.1.2. Die Definitionsphase – Multidimensionale Datenstrukt.
• OLAP-Systeme sollen...o Fachabteilungen die Möglichkeit geben, schnelle, interaktive und komplexe Analysen durchzuführeno die gesammelten Daten aus möglichst vielen verschiedenen Perspektiven zeigeno die Analyseergebnisse in akzeptabler Zeit bereitstellen
• Hyperwürfelo Quantitative Kennzahlen werden in mehrdimensionalen Datencontainern angeordnet.
y
xVeranstaltungsort (Markt)
Seminartyp(Produkt)
OOA
OOD
Java
C++
M DO K S
Kennzahl, Variablehier: Anzahl Veranstaltungen
Dimensionen
Zeit
17Definitionen und Regeln
5.1.3. Die Definitionsphase – Data Dictionary
• Verzeichnis, das Informationen über die Struktur von Daten, Ihre Eigenschaften sowie ihre Verwendung enthält.• Wird zur Konsistenzüberwachung eines Datenbestandes benötigt• Erstellungsregeln
o Definition der Daten: top-downo Ende der Verfeinerung, wenn ein Abstraktionsniveau erreicht ist, das für die Definitionsphase ausreichto Wiederholungs- und Optionsklammern (Backus-Naur-Form) möglichst weit oben in der Hierarchie.o Zirkuläre Definitionen sind nicht erlaubto Alias-Namen sind erlaubt (für Sonderfälle)o Problembezogene Namen wähleno Bereits definierte Datenstrukturen wiederverwendeno Nicht versuchen, Semantik durch Syntax auszudrückeno Auswahl besteht aus mind. 2 Alternativen
•Vorteil : Aufbau und Verfeinerung von Datenstrukturen lassen sich formal und kompakt ähnlich wie in modernen Programmiersprachen beschreiben•Nachteil : Da es sich um keine grafische Darstellung handelt, ist die Lesbarkeit eingeschränkt ( siehe Prof. Brewka, Digitale Informationsverarbeitung )
18Zusammenfassung (1)
5.1.4. Die Definitionsphase – Zusammenfassung
• Das ER-Modell erlaubt die Modellierung von permanent zu speichernden Datenstrukturen und ihren Beziehungen zueinander. Entitäten (entities) werden zu Entitätstypen (entity types) zusammengefasst. Gleichrangige, fachliche Zusammenhänge zwischen Entitäten werden durch Beziehungen (Assoziationen, relationships) beschrieben, die zu Beziehungstypen (relation types) zusammengefasst werden. Durch Rollen wird angegeben, welche Funktion eine Entität in der Beziehung spielt. Die Eigenschaften von Entitäten und Beziehungen werden durch Attribute beschrieben. Jede Entität muss durch einen eindeutigen Schlüssel identifizierbar sein. Der Komplexitäts-grad einer Assoziation wird durch die Kardinalität angegeben (Muss- oder Kann-Beziehung,variable oder feste Obergrenze). Eine rekursive Beziehung liegt vor, wenn ein Entitätstyp mit sich selbst in Beziehung steht. Das Ergebnis einer ER-Modellierung bezeichnet man als konzeptionelles Modell.• Entitätstypen und Beziehungstypen können auf Tabellen abgebildet werden. Die Entitäten werden als Zeilen in die Tabellen eingetragen. Alle Entitäten einer Tabelle bilden eine Entitätsmenge (entity set).• Vereinfacht lässt sich sagen, dass ein Klassendiagramm ohne Operationen und Botschaften einem ER-Modell entspricht. Allerdings müssen in einem ER-Modell Schlüssel-Attribute für jeden Entitätstyp ergänzt werden.
19Zusammenfassung (2)
5.1.4. Die Definitionsphase – Zusammenfassung
• Während sich die ER-Konzepte gut dazu eignen, operativ genutzte Datenbestände zu modellieren, werden für Analysen auf Datenbestände multidimensionale Datenstrukturen in Form von Hyperwürfeln modelliert. Mit OLAP-Operationen kann der Benutzer in den Hyperwürfeln navigieren. Data Mining weist den Benutzer auf unbekannte Zusammenhänge hin. Die Datenbestände werden aus operativen Datenbestände in Data Warehouses importiert. Data Marts stellen Ausschnitte aus Data Warehouses für spezielle Themenbereiche zur Verfügung.
• Aufgrund der besonderen Anforderungen an Data Warehouses eignet sich die ER-Modellierung nur bedingt für Hyperwürfel. OO-Ansätze befinden sich im Forschungsstadium.
• Eine präzise Definition von Datenstrukturen wird durch Data Dictionary-Einträge (DD) ermöglicht. DD-Einträge verwenden dabei eine textuelle, modifizierte Backus-Naur-Form zur Definition.
• Im Gegensatz zu ER- und OO-Modellen wird mit DD-Einträgen die Feinstruktur eines Attributs beschrieben, nicht aber der Zusammenhang zwischen Entitätstypen und Klassen.
20
1. Datenorientierte Sicht2. Algorithmisch und Regelbasierte Sicht
1. Kontrollstrukturen1. Sequenz, Auswahl, Wiederholung und Aufruf2. Strukturierte Programmierung
2. Entscheidungstabellen und Entscheidungsbäume1. Erstellung einer Entscheidungstabelle2. Darstellungsformen3. Entscheidungstabellen-Verbunde4. Erweiterte Entscheidungstabellen5. Eintreffer- und Mehrtreffer-
Entscheidungstabellen3. Zusammenfassung
Inhalt
5.2. Die Definitionsphase – Algorithmische und Regelbasierte Sicht
21
1. Syntax und Semantik linearer Kontrollstrukturen
2. Syntax und Semantik von Entscheidungstabellen
3. Schachtelung linearer Kontrollstrukturen
4. Anwendung gegebener Kontrollstrukturen
5. Erstellen von Kontrollstruktur und Entscheidungstabelle für eine gegebene Problemstellung
Lernziele
5.2. Die Definitionsphase – Algorithmische und Regelbasierte Sicht
22
• Syntax und Semantik linearer Kontrollstrukturen
• Syntax und Semantik von Entscheidungstabellen
• Schachtelung linearer Kontrollstrukturen
• Anwendung gegebener Kontrollstrukturen
• Erstellen von Kontrollstruktur und Entscheidungstabelle für eine gegebene Problemstellung
Lernziele
5.2.1. Die Definitionsphase – Kontrollstrukturen
23
• Dienen dazu den Ablauf eines Algorithmus zu steuern.• Gute Kontrollstrukturen
o Ermöglichen problemangepasste und natürlichförmige Beschreibung von Problemlösungen
o Erlauben die Wiederspiegelung der Problemstruktur im Algorithmuso Sollten leicht lesbar und verständlich seino Erlauben eine leichte Zuordnung zwischen statischem
Algorithmustext und dynamischem Algorithmuszustando Decken mit minimalen, orthogonalen Konzepten ein breites
Anwendungsspektrum abo Erleichtern Korrektheitsbeweise von Algorithmen.
• 4 semantisch unterschiedliche Kontrollstrukturen:o Sequenzo Auswahlo Wiederholungo Anwendung anderer Algorithmen
• 3 verschiedene Notationen:o Struktogramm-Notationo Pseudo-Code-Notationo Programmablaufplan-Notation.
Definition und Eigenschaften
5.2.1.1. Die Definitionsphase – Sequenz, Auswahl, ...
24Sequenz
PAP
Erläuterung
Einfache Anweisungenwerden durch Recht-ecke dargestellt, diewiederum durch Ablauf-linien verbundenwerden.
allgemeinSequenz
Anweisung2
Anweisung1
Anweisung3
Ein beliebig großgewähltes Viereckwird nach jeder An-weisung mit einerhorizontalen Linieabgeschlossen.
Strukto-gramm
Anweisung1
Anweisung2
Anweisung3
Pseudocode(Java)
Die einzelnen An-weisungen werdendurch Semikolon (;)voneinandergetrennt.
Anweisung1;
Anweisung2;
Anweisung3;
25Auswahl
Auswahl(ein- und zweiseitig)
allgemein Erläuterung
PAP Semantik analog zumPseudocode. Bei der ein-seitigen Auswahl entfällt dasRechteck mit Nein-Anwei-sungen.
Ist der Ausdruck wahr, dannwerden die Ja-Anweisungen,sonst die Nein-Anweisungenausgeführt.
Strukto-gramm
Semantik analog zum Strukto-gramm. Bei der einseitigen Aus-wahl fehlt »else Anweisung«.Das Ergebnis des Ausdrucksmuß vom Typ boolean sein.Anstelle von Anweisung;kann auch ein Blockstehen: {Anweisungen;}
if (Ausdruck)Ja-Anweisung;
elseNein-Anweisung;
Anweisung(en);
AusdruckWahr Falsch
Nein-Anweisung(bei einseitigerAuswahl leer)
Ja-Anweisung
Anweisung(en)
Ausdruck
Wahr Falsch
Ja-Anw. Nein-Anw.
Pseudocode(Java)
26Mehrfachauswahl
Struktogramm
ErläuterungallgemeinMehrfachauswahl
/ Nassi, Shneiderman 73/ /DIN 66261/
Ausdruck
Fall 2
Fall 3
Anweisung(en)
Anw.1
Ausnahme-Anweisun-gen
default
Fall 1
Anw.2 Anw.
3
Ausdruck
Fall 2 Fall 3
Anweisung(en)
Anw.1
Ausnahme-Anweisun-gen
defaultFall 1
Anw.2
Anw.3
PAP
Pseudocode(Java)
switch (Ausdruck){ case konstanterAusdruck1: Anweisung(en); break; case konstanterAusdruck2: Anweisung(en); break; ... default: Anweisung;}Anweisung(en);
Der Ausdruck dientals Selektor zum Aus-wählen der einzelnenFälle. Ist ein ent-sprechender Fall nichtaufgeführt, wird dieAnweisung hinterdefault ausgeführt.
Fall 1 Fall 2 Fall 3 others
Auswahl =
Anw.1 Anw.2 Anw.3 Anw.4
27Wiederholung
Wiederholung
PAP
Erläuterung
analogStruktogramm
AW = AnfangswertSW = SchrittweiteEW = Endwert
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
allgemein
Anweisung
Schleife 1Ausdruck
EndeSchleife 1
Anweisung
Schleife 2
AusdruckEnde
Schleife 2
Schleife 3AW= 1SW = 1EW = 10
Anweisung
EndeSchleife 3
Strukto-gramm
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Pseudocode(Java)
while (Ausdruck){ Wiederholungsanweisungen;}Anweisung(en);
do{ Wiederholungsanweisungen;}while (Ausdruck);Anweisung(en);
for (Startausdruck, Endeausdruck, Schrittweite){ Wiederholungsanweisungen;}Anweisung(en);
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Ausdruck
Wiederholungsanweisung(en)
Anweisung(en)
Wiederholungsanweisung(en)
Ausdruck
Anweisung(en)
Wiederholungsanweisung(en)
Anweisung(en)
for (Startausdruck, Endeausdruck, Schrittweite)
28Wiederholung
Wiederholung
PAP
Erläuterung
analogStruktogramm
AW = AnfangswertSW = SchrittweiteEW = Endwert
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
allgemein
Anweisung
Schleife 1Ausdruck
EndeSchleife 1
Anweisung
Schleife 2
AusdruckEnde
Schleife 2
Schleife 3AW= 1SW = 1EW = 10
Anweisung
EndeSchleife 3
Strukto-gramm
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Pseudocode(Java)
while (Ausdruck){ Wiederholungsanweisungen;}Anweisung(en);
do{ Wiederholungsanweisungen;}while (Ausdruck);Anweisung(en);
for (Startausdruck, Endeausdruck, Schrittweite){ Wiederholungsanweisungen;}Anweisung(en);
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Ausdruck
Wiederholungsanweisung(en)
Anweisung(en)
Wiederholungsanweisung(en)
Ausdruck
Anweisung(en)
Wiederholungsanweisung(en)
Anweisung(en)
for (Startausdruck, Endeausdruck, Schrittweite)
29Wiederholung
Wiederholung
PAP
Erläuterung
analogStruktogramm
AW = AnfangswertSW = SchrittweiteEW = Endwert
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
allgemein
Anweisung
Schleife 1Ausdruck
EndeSchleife 1
Anweisung
Schleife 2
AusdruckEnde
Schleife 2
Schleife 3AW= 1SW = 1EW = 10
Anweisung
EndeSchleife 3
Strukto-gramm
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Pseudocode(Java)
while (Ausdruck)
{ Wiederholungsanweisungen;
}Anweisung(en);
do
{ Wiederholungsanweisungen;
}while (Ausdruck);Anweisung(en);
for (Startausdruck, Endeausdruck, Schrittweite){ Wiederholungsanweisungen;
}Anweisung(en);
Wiederholung mitAbfrage vor jedemWiederholungsdurchlauf
Wiederholung mitfester Wiederholungs-zahl (Zählschleife,Laufanweisung)
Wiederholung mitAbfrage nach jedemWiederholungsdurchlauf
Ausdruck
Wiederholungsanweisung(en)
Anweisung(en)
Wiederholungsanweisung(en)
Ausdruck
Anweisung(en)
Wiederholungsanweisung(en)
Anweisung(en)
for (Startausdruck, Endeausdruck, Schrittweite)
30Definitionen und Zusammenhänge
5.2.1.2. Die Definitionsphase –Strukturierte Programmierg
• Gemeinsames Kennzeichen der vorgestellten Kontrollstruktureno Besitzen genau einen Ein- und einen Ausgango Zwischen dem Eingang und dem Ausgang gilt das Lokalitätsprinzip
Der Kontrollfluss verlässt den durch Eingang und Ausgang definierten Kontrollflussbereich nicht Makroskopisch betrachtet verläuft der Kontrollfluss linear durch einen Algorithmus, daher: „lineare Kontrollstrukturen“
• Strukturiertes Programmieren i.e.S.o Verwendung ausschließlich linearer Kontrollstruktureno Dijkstra subsummierte unter diesem Begriff verschiedene methodische Ansätze, die die Programmzuverlässigkeit verbesserno Weiterentwicklung dieser Ansätze führte zu oft weit auseinander-liegenden Definitionen des Begriffs „Strukturierte Programmierung“.
• Sprung („goto-Anweisung“)o Verstößt gegen die aufgestellten Anforderungeno Verwischt den semantischen Unterschied zwischen einer Auswahl und einer Wiederholung
• n + 1/2-Schleife• Innerhalb des Wiederholungsteils können ein oder mehrere Unterbrechungen oder Aussprünge programmiert werden
31Definitionen und Zusammenhänge
5.2.1.2. Die Definitionsphase – Strukturierte Programmierung
• Struktogrammeo Optimale grafische Darstellung von linearen Kontrollstruktureno Der verfügbare Platz ermöglicht die Wahl aussagekräftiger Namen
• Programmablaufplano Für grundlegende Kontrollstrukturen gibt es keine eigenen Symboleo Vorgenommene Erweiterungen entsprechen nicht der ursprünglichen
Intentiono Insgesamt bieten PAPs dem Benutzer zu große Freiheiten
• Vorteile: Lineare Kontrollstruktureno Vereinheitlichung der Programmierstile, d.h. Standardisierung der
Kontrollflüsseo Übersichtliche, gut lesbare Anweisungsteileo Leichte Überprüfbarkeit der Terminationo Für gleichartige Probleme entstehen gleichartige Kontrollfluss-Struktureno Statische Überprüfung der Korrektheit möglicho Auswirkungen jeder Kontrollstruktur übersehbar
• Methodik: o Folgende Reihenfolge einhalten:
1. Immer zuerst die Kontrollstrukturen entwerfen2. Erst dann die elementaren Anweisungen überlegen.
32Beispiel : Struktogramm für die Seminarorganistaion
Funktion
ja nein
ja
neinja
neinjanein
Ersterfassung
Änderung
Löschung
Erfassen der Firmendaten;Prüfen, ob Firma bereits vor-handen durch Vergleich desneuen Firmennamens mit denvorhandenen Firmennamen inder Firmendatei
Firma=neu?
Vergabe einesFirmenkurz-namens;
Firmeneintraganzeigen undüberprüfen
neuenFirmen-eintragin derFirmen-datei vor-nehmen
GeändertenFirmen-eintrag inFirmen-dateieintragen
Firmeneintrag anhand desFirmenkurznamens aus derFirmendatei lesen undanzeigen
Änderungenvorgenom-
men?
GeändertenFirmeneintragin Firmendateieintragen
Prüfen, ob esKundeneinträge in derKundendatei gibt, die denFirmennamen enthalten
Kundeneinträge enthaltenFirmenkurz-
name?
Hinweis,dass erstalle ent-sprech-endenKunden-einträgegeändertwerdenmüssen
Firmenein-trag anhanddes Firmen-kurznamensaus der Fir-mendateilesen, an-zeigen undnach Bestä-tigunglöschen
Änderungenvorgenom-
men?
33Definitionen und Zusammenhänge
5.2.2.2. Die Definitionsphase – Alternative Darstellungsformen
• Entscheidungstabellen (ET) : Vorzunehmende Aktionen oder Handlungen, die von der Erfüllung oder Nichterfüllung mehrerer Bedingungen abhängen, können kompakt und übersichtlich definiert werden
• 5 Schritteo Ermittlung der Aktioneno Ermittlung der Bedingungeno Eintrag der Bedingungen und Aktionen in die ETo Eintrag aller Bedingungskombinationen o Eintrag der Aktionsanzeiger.
wenn
dann
Bedingungen
Aktionen
Bedingungsanzeiger
Aktionsanzeiger
Name der ET Regelnummern
Struktur einer Entscheidungs-tabelle
34Horizontale Anordnung der Regeln
5.2.2.2. Die Definitionsphase – Alternative Darstellungsform
Kreditgren-ze über-schritten
Zahlungs-verhalteneinwandfrei
Überschrei-tungsbetrag< 500,- ?
Scheckeinlösen
Schecknichteinlösen
neue Kon-ditionenvorlegen
unlogisch
J
JJ X
N X X
NJ X
N X
N
JJ X
N X
NJ X
N X
35Entscheidungsbaum
Scheckeinlösen
Scheckeinlösen,neue Konditionenverlegen
Schecknicht einlösen
Schecknicht einlösen
Scheckeinlösen
unlogisch
Scheckeinlösen
unlogisch
Überschreitungs-betrag < 500,-
Überschreitungs-betrag ³ 500,-
Überschreitungs-betrag < 500,-
Überschreitungs-betrag ³ 500,-
Überschreitungs-betrag < 500,-
Überschreitungs-betrag ³ 500,-
Überschreitungs-betrag < 500,-
Überschreitungs-betrag ³ 500,-
Zahlungsverhalteneinwandfrei
Zahlungsverhaltennicht einwandfrei
Zahlungsverhalteneinwandfrei
Zahlungsverhaltennicht einwandfrei
Kreditgrenzeüberschritten
Kreditgrenze nichtüberschritten
Scheck-Einlösung
36Verknüpfung von ETn
5.2.2.3. Die Definitionsphase – ET-Verbunde
• Bei mehr als 5 Bedingungen können vollständige ETn nicht mehr aufgestellt werden
• Mögliche Verknüpfungsformen sind Sequenz, Verzweigung, Schleife und Schachtelung.
ET 1
ET 2
ET 1
…
…
ET 2 ET 3 ET 4
ET 1
…
…ET 2
ET 1
……
……
ET 4
ET 3
……
……
oder
Sequenz
Verzweigung
Schleife
Schachtelung
37Definition und Beispiel
5.2.2.3. Die Definitionsphase – Erweiterte ETn
• Weitere Möglichkeit Entscheidungstabellen mit vielen Bedingungen kompakt darzustellen
• Besteht aus erweiterten Bedingungen und Aktionszeigern• Anstelle von J,N,- und X kann ein beliebiger Text im Anzeigerteil verwendet
werden.
ET: SoftWAir R1 R2 R3 R4 R5 R6
Alter >=18 >=18 >=18 >=18 >=2 u.<18 <2
Flugziel Miami N.Y. Miami Miami - -
Aufenthalt >=6 Tage J - N - - -
Abflug zw. 21. u. 30.12. N - - J - -
Preisnachlaß in % 20 0 0 0 30 100
38Mehrtreffertabellen
5.2.2.3. Die Definitionsphase – Ein- und Mehrtreffer-Tabellen
Mehrtreffertabellen• Nicht-disjunkte Bedingungsanzeigerteile sind erlaubt.• Zwischen den Regeln können 4 verschiedene Beziehungstypen bestehen:
1. Gleichheit (Identität)• Sind die Bedingungsanzeiger zweier Regeln gleich, dann sind die
Regeln in Abhängigkeit von den Aktionsanzeigern entweder redundant, widersprüchlich oder zusammenfassbar
2. Ausschluss (Exklusion)• Ein gegenseitiger Ausschluss zweier Regeln liegt vor, wenn sie in
mindestens einer Bedingungszeile unterschiedliche Bedingungsanzeiger haben
3. Einschluss (Inklusion)• Liegt vor, wenn mindestens ein Bedingungsanzeiger B1 von R1 auch in
R2 enthalten ist und alle übrigen Bedingungen gleich sind4. Überschneidung (Intersektion).
• mindestens ein Bedingungsanzeiger B1 von R1 auch in R2 und ein weiterer Bedingungsanzeiger B2 von R2 auch in R1 enthalten ist und alle übrigen Bedingungsanzeiger gleich sind
39Vorteile
5.2.2.3. Die Definitionsphase – Ein- und Mehrtreffer-Tabellen
• Vorteileo Erlauben eine übersichtliche und kompakte Darstellung von Aktionen, die
von mehreren Bedingungen abhängig sindo ETn können auf verschiedene Eigenschaften hin überprüft und optimiert
werdeno Werkzeuge unterstützen die Erstellung, Analyse und Optimierung von Etno Implementierungsphase:
Werkzeuge generieren den fertigen Quellcodeo Definitionsphase:
Abarbeitungsreihenfolge wird nicht festgelegt Freiheitsspielräume bleiben erhalten, die bei Kontrollstrukturen nicht
mehr vorhanden sind.
40Zusammenfassung
5.2.3. Die Definitionsphase – Zusammenfassung
• Kontrollstrukturen legen innerhalb eines Algorithmus fest, in welcher Reihenfolge, ob und wie oft Anweisungen ausgeführt werden sollen. Die strukturierte Programmierung erlaubt nur lineare Kontrollstrukturen. Es lassen sich 4 verschiedene Typen unterscheiden : die Sequenz, die Auswahl, die Wiederholung und der Aufruf. Alle Typen lassen sich beliebig miteinander kombinieren und ineinander schachteln.
• 1 textuelle Darstellungsform (Pseudo-Code) und 2 grafische (Strukto-gramme und PAP).
• Entscheidungstabellen erlauben eine tabellarische oder grafische Darstellung (Entscheidungsbäume) von durchzuführenden Aktionen in Abhängigkeit von Bedingungen.
• Tritt zu einer zeit genau eine Bedingungskonstellation auf, dann handelt es sich um eine Eintreffer-Tabelle.
• Begrenzte Entscheidungstabelle liegt vor, wenn als Bedingungsanzeiger nur J,N und – ,und als Aktionszeiger nur X verwendet werden.
• Erfordert eine Problembeschreibung eine Kombination von Entscheidungs-tabellen (möglich sind Sequenz, Verzweigung, Schleife und Schachtelung), dann geschieht dies durch einen Entscheidungstabellen-Verbund.
Recommended