• Keine Ergebnisse gefunden

DV-Konzept (Systementwurf und Modulentwurf)

N/A
N/A
Protected

Academic year: 2022

Aktie "DV-Konzept (Systementwurf und Modulentwurf)"

Copied!
19
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

DV-Konzept (Systementwurf und Modulentwurf)

Ziel dieses Teils der

Unterrichtsveranstaltung:

-) Prinzipien der Modularisierung -) Moduldiagramme

exemplarisch an einfachen Beispielen anwenden

Lernziel: Sie sollen für einfache Fälle die

Modularisierung anwenden können und

Fehler selbständig erkennen

(2)

Modulkonzept

1. Aspekte/Qualitätsanforderungen an die Modulbildung:

– Performance – Änderbarkeit

– Homogenität (in sich zusammenhängende, zweckorientierte, verständliche Bausteine)

2. Modularisierungskriterien (Entwurfsprinzipien)

– Abstraktionsprinzip – Geheimnisprinzip

– Prinzip der hohen Kohäsion

– Prinzip der losen Kopplung

(3)

Funktionale Abstraktion 1

Konstruktion von Bausteinen, deren Funktionen – also das

„was“ – von den Benutzern (hier der Programmierer i.w.S.) der Bausteine ausschließlich aufgrund der Kenntnis dieser Funktionen benutzt werden können.

Die algorithmische Realisierung – also das „wie“ – ist

dagegen für den Benutzer (hier der Programmierer i.w.S.)

uninteressant

(4)

Funktionale Abstraktion 1

Beispiel Ohrmarkenprüfung:

FUNCTION ohrmarke_ok (IN: x; OUT:

y)

wobei

x übergebenes Argument y zurückgeliefertes Ergebnis

y

Modultyp 1 (mit genau einer funktionalen Abhäng.)

ohrmarke_ok

x y

(5)

Funktionale Abstraktion 2

Modultyp 2 (mit mehreren logisch zusammenge- hörenden funktionalen Abhängigkeiten)

ohrmarke_ok x

muttertier

v x m

(6)

Datenabstraktion

• Konstruktion eines Bausteins, der aus

einem abstrakten Datenobjekt und aus

den Operationen besteht, die auf dem

Datenobjekt zulässig sind.

(7)

Geheimnisprinzip

• Systemzerlegung hat so zu erfolgen, daß jeder der entstehenden Modul eine bestimmte

Entwurfsentscheidung vor dem Rest des Systems verbirgt (Information Hiding)

• Beispiele:

– eine Datenstruktur, ihre internen Verbindungen,

Zugriffsprozeduren und manipulierenden Prozeduren sollten Bestandteil eines einzigen Moduls sein

– Zeichencodes, alphabetische Ordnungen usw. sollten in einem Modul verborgen werden

– Die Reihenfolge, in der bestimmte Objekte verarbeitet

werden, sollte man (soweit möglich) in einem einzigen

Modul verbergen.

(8)

Prinzip der hohen Kohäsion

(Ausmaß, in dem alle Teile eines Moduls zusammengehören) Kohäsionsarten Erläuterung

Zufällige Kohäsion Modul enthält voneinander unabhängige Operationen

Logische Kohäsion Modul enthält ähnliche Operationen (z.B. wenn Steuerung über Schalter)

Zeitliche Kohäsion z.B. für Initialisierungen

Prozedurale Kohäsion Zusammenhängende Teile eines Flußdiagramms werden in ein Modul einbezogen.

Kommunikative Kohäsion

Die Operationen des Moduls greifen auf die gleichen Daten zu (z.B. Ergebnisberechnung und Ausdruck erfolgt in einem Modul)

Funktionale Kohäsion Modul führt genau eine Funktion aus (bei funktionaler Abstraktion erzielt)

Informationelle Kohäsion

Modul enthält eine oder mehrere logisch

zusammengehörende Operationen, die ein gemeinsames Datenobjekt manipulieren (z.B.

Hinzufügen, Entfernen, Lesen von Sätzen einer Datei)

(9)

Prinzip der losen Kopplung

• Erwünscht ist eine möglichst lose Kopplung der Module eines

Softwaresystems, weil das die

Änderbarkeit des Systems begünstigt.

• Arten der Kopplung:

– Datenkopplung

– Steuerungskopplung

– externe/inhaltliche/pathologische Kopplung

(10)

Datenkopplung

• Ist die loseste Kopplung und daher am meisten erwünscht.

• Beispiel: Suche nach den Elterntieren eines Rindes:

Datenkopplung durch Übergabe von Daten als Parameter

Modul

„Herkunft_ermitteln“

Modul

„Elterntiere_suchen“

Ohrmarkennummer Gesuchtes_Elterntier

Ohrmarkennummer_Elterntier

FUNCTION Elterntiere_suchen (IN: Ohrmarkennummer,

Gesuchtes_Elterntier;

OUT: Ohrmarkennummer_Elterntier)

(11)

Steuerungskopplung

• Ein Modul gibt Steuerungsinformationen an

einen anderen Modul. Steuerinformationen sind

– Schalter (switches)

– Steuervariable (control variables) – Statusvariable (flags)

• Diese lösen im empfangenden Modul z.B.

Fehlerbehandlungen, Verzweigungen usw. aus.

• Steuerungsinformationen z.T. unvermeidbar -

z.B. bei „eof“.

(12)

Pathologische Kopplung

• Ein Modul nimmt hierbei auf das Innere eines anderen Moduls Bezug (indem auf interne Daten des anderen Moduls zugegriffen wird oder in den Ablauf der

Operationen des anderen Moduls eingegriffen wird)

• Beispiel:

Eingabe Ausgabe

Lesen Druckausgabe

Satzzähler szaehler

patholog. Verbindung

IF szaehler >=

100 THEN ...

(13)

Allgemeines Moduldiagramm mit Kontrollfluß und Objekttransport

Hauptmodul (abstrakte Funktion

auf abstraktem Datenobjekt)

Eingabemodul (eingelesenes

Objekt aufbereiten)

Verarbeitungs- modul (Eingabe- objekt in abstraktes

Ausgabeobjekt transormieren)

Ausgabemodul (auszugebendes

Objekt aufbereiten)

Lesefunktion der

Basismaschine

Schreibfunk- tion der

Basismaschine

e,se

e‘

e a

a‘

a

sa

Legende:

Benutztbeziehung Kontrollfluß (Steuerfluß) Objekttransport

(14)

Schichten („Zwiebelschema“) von Modulen

1. Schicht: Steuermodule

2. Schicht: problemorientierte Module

(verknüpfen Datenobjekte verschiedener Datentypen mittels problemorientierter Funktionen)

3. Schicht: Verwaltungsmodule (beinhalten Funktionen zur Manipulation von mehreren Datenobjekten eines Datentyps)

4. Schicht: Zugriffsmodule (Zugriffe auf einzelne

Datenobjekte eines Datentyps)

(15)

Vorgehensweise für den Modulentwurf

• Definition des Hauptmoduls

• Zerlegung des Hauptmoduls in eine Menge von direkt untergeordneten Modulen insbesondere mittels STS- Zerlegung (source-transform-sink decomposition)

• Definition der Schnittstellen zwischen dem Hauptmodul und den untergeordneten Modulen

• Anwendung der Schritte 1-3 auf jeden noch nicht zerlegten Modul, bis eine weitere Zerlegung ausscheidet, z.B. weil:

– Unterteilung in funktional kohäsive Modul nicht möglich – Logik des Moduls ist klar umrissen und beschreibt eine spezielle Funktion

– Weitere Zerlegung würde zu einer Menge von kleinen, extrem spezialisierten Funktionen führen

• Überprüfung und Revision des Entwurfs

(16)

Beispiel für den Entwurf eines Information-Retrieval-Systems für die Ausgabe von Infos über Tierarzneimittel (Teil 1)

1. Führe alle Suchanfragen durch Definition des Hauptmoduls

Das Modul, das die Leistung des gesamten Systems repräsentiert

Führe alle Suchanfragen

durch

(17)

Beispiel für den Entwurf eines Information-Retrieval-Systems für die Ausgabe von Infos über Tierarzneimittel (Teil 2)

2. Zerlegung des Hauptmoduls (mittels STS)

2.1 Darstellung der Problemstruktur

Strukturierungskriterium: Der Datenstrom, der das gesamte Problem durchsetzt

Umformung in Datenbank- suchanfrage Eingabe einer

Suchanfrage

Suche der Schlüsselwörter

in Datenbank Ausgabe der

Abstracts Bereitstellen

der Abstracts

a b c

d e

(18)

Beispiel für den Entwurf eines Information-Retrieval-Systems für die Ausgabe von Infos über Tierarzneimittel (Teil 3)

2.2 Identifikation der Hauptdatenströme

Die logischen Datenströme sind zu ermitteln, die durch die Kette der Teilprobleme „hindurchfließt“.

Bei mehreren Datenströmen ist der „wesentliche Strom“

gesucht. Im o.g. Beispiel sind dies: „Terminalanfrage“ als Hauptein- und „Anzeige der Suchergebnisse“ als

Hauptausgabestrom.

2.3 Ermitteln der Punkte der höchsten Abstraktion

Es sind zwei Punkte in der Kette zu finden, die das Problem in drei Teilprobleme zerlegen. Diese sollen voneinander

möglichst unabhängige, spezielle Funktionen darstellen. Bei der Bestimmung dieser Punkte folgt man den

Hauptdatenströmen so lange, bis diese im Sinne der

ursprünglichen Bedeutung nicht mehr zu existieren scheinen.

Im o.g. Beispiel die Punkte c und d.

(19)

2.4 Definition direkt untergeordneter Module

Führe alle Suchan- fragen durch

Lese nächste Suchanfrage

Suche Schlüssel- wörter in der

Datenbank

Gib Abstracts aus

1 2 3

Source-Modul Transform-Modul Sink-Modul

3 Definition der Schnittstellen

Referenzen

ÄHNLICHE DOKUMENTE

 Effektivität eines Indexing Systems wird bestimmt über:..  Indexing exhaustivity: Erfassungsgrad der Dokumententhemen in

This paper deals with a study conducted by the Operations Research Division of the Lockheed Aircraft Corporation (California Division) with the specific intent

Erst alle häufigen 1-elementigen Elementmengen (1-itemsets) berechnen, dann alle häufigen 2-itemsets, wobei die häufigen k-itemsets zum Finden der häufigen (k+1)-itemsets benutzt

Diese gebeugten Formen wären zwar in einer Suche als Zeichenkette leichter zu finden, aber das Volumen des Thesaurus würde so anschwellen, dass er nicht mehr praktisch

  April 2019 fand das erste Symposium Information Science Trends: Search Engines and Information Retrieval, ausgerichtet vom European Chapter der Association for In- formation

•  Treat Information Retrieval as a process of inference: document D is relevant for query Q if is high in the. inference system of selected logic..

In einem Retrievalexperiment mit einem Information Retrieval- System auf der Basis des Vektorraummodells werden bei einem cut off-Wert von 50 ein recall von 0,2 und eine precision von

In einem Retrievalexperiment mit einem Information Retrieval-System auf der Basis des Vektorraummodells werden bei einem cut off-Wert von 20 ein recall von 0,1 und eine precision