Dv konzept systementwurf und modulentwurf l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 19

DV-Konzept (Systementwurf und Modulentwurf) PowerPoint PPT Presentation


  • 241 Views
  • Uploaded on
  • Presentation posted in: General

DV-Konzept (Systementwurf und Modulentwurf). Ziel dieses Teils der Unterrichtsveranstaltung: -) Prinzipien der Modularisierung -) Moduldiagramme exemplarisch an einfachen Beispielen anwenden

Download Presentation

DV-Konzept (Systementwurf und Modulentwurf)

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Dv konzept systementwurf und modulentwurf l.jpg

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


Modulkonzept l.jpg

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


Funktionale abstraktion 1 l.jpg

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


Funktionale abstraktion 14 l.jpg

Funktionale Abstraktion 1

Beispiel Ohrmarkenprüfung:

FUNCTION ohrmarke_ok (IN: x; OUT: y)

wobei

x übergebenes Argument

yzurückgeliefertes Ergebnis

y

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

y

x

ohrmarke_ok


Funktionale abstraktion 2 l.jpg

Funktionale Abstraktion 2

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

v

x

x

m

muttertier

ohrmarke_ok


Datenabstraktion l.jpg

Datenabstraktion

  • Konstruktion eines Bausteins, der aus einem abstrakten Datenobjekt und aus den Operationen besteht, die auf dem Datenobjekt zulässig sind.


Geheimnisprinzip l.jpg

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.


Prinzip der hohen koh sion ausma in dem alle teile eines moduls zusammengeh ren l.jpg

Prinzip der hohen Kohäsion (Ausmaß, in dem alle Teile eines Moduls zusammengehören)


Prinzip der losen kopplung l.jpg

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


Datenkopplung l.jpg

Modul „Herkunft_ermitteln“

Ohrmarkennummer_Elterntier

Ohrmarkennummer

Gesuchtes_Elterntier

Modul „Elterntiere_suchen“

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

FUNCTION Elterntiere_suchen (IN: Ohrmarkennummer, Gesuchtes_Elterntier; OUT: Ohrmarkennummer_Elterntier)


Steuerungskopplung l.jpg

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“.


Pathologische kopplung l.jpg

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

patholog. Verbindung

Druckausgabe

Lesen

Satzzähler

szaehler

IF szaehler >= 100 THEN ...


Allgemeines moduldiagramm mit kontrollflu und objekttransport l.jpg

Legende:

Benutztbeziehung

Kontrollfluß (Steuerfluß)

Objekttransport

Allgemeines Moduldiagramm mit Kontrollfluß und Objekttransport

Hauptmodul (abstrakte Funktion auf abstraktem Datenobjekt)

sa

e,se

e

a

a

Eingabemodul (eingelesenes Objekt aufbereiten)

Verarbeitungs-modul (Eingabe-objekt in abstraktes Ausgabeobjekt transormieren)

Ausgabemodul (auszugebendes Objekt aufbereiten)

e‘

a‘

Schreibfunk-tion der Basismaschine

Lesefunktion der Basismaschine


Schichten zwiebelschema von modulen l.jpg

Schichten („Zwiebelschema“) von Modulen

  • Schicht: Steuermodule

  • Schicht: problemorientierte Module (verknüpfen Datenobjekte verschiedener Datentypen mittels problemorientierter Funktionen)

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

  • Schicht: Zugriffsmodule (Zugriffe auf einzelne Datenobjekte eines Datentyps)


Vorgehensweise f r den modulentwurf l.jpg

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


Slide16 l.jpg

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

  • Führe alle Suchanfragen durchDefinition des HauptmodulsDas Modul, das die Leistung des gesamten Systems repräsentiert

Führe alle Suchanfragen durch


Slide17 l.jpg

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 ProblemstrukturStrukturierungskriterium: Der Datenstrom, der das gesamte Problem durchsetzt

a

b

c

Eingabe einer Suchanfrage

Umformung in Datenbank-suchanfrage

Suche der Schlüsselwörter in Datenbank

d

e

Bereitstellen der Abstracts

Ausgabe der Abstracts


Slide18 l.jpg

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

2.2 Identifikation der HauptdatenströmeDie 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 AbstraktionEs 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.


Slide19 l.jpg

Führe alle Suchan-fragen durch

1

3

2

Lese nächste Suchanfrage

Suche Schlüssel-wörter in der Datenbank

Gib Abstracts aus

Source-Modul

Transform-Modul

Sink-Modul

2.4 Definition direkt untergeordneter Module

3 Definition der Schnittstellen


  • Login