Top Banner
Strukturierter Entwur f Dipl. Ing. Päd. Huwaldt 1 Software Engineering Strukturierter Entwurf
22

Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Apr 06, 2016

Download

Documents

Lukas Weisbeck
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 1

Software EngineeringStrukturierter Entwurf

Page 2: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 2

Gliederung

• Einführung

• Grundelemente

• Modulhierarchie

• Unterprogramme

• Entwurf und SA

• Entwurf und Programmierung

• Vorgehensweise

Page 3: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 3

EinführungZielsetzung beim Softwareentwurf ist die Sicherstellung der Korrektheit, Zweckmäßigkeit, Effizienz, Testbarkeit, Änderbarkeit, Erweiterbarkeit, etc. der zu erstellenden Software.

Modularisierung hat das Ziel ein System in in sich abgeschlossene Einheiten zu zerlegen. Diese Einheiten sollen einzeln entwickelt, ausgetauscht, verändert, hinzugefügt, ... werden können, ohne dass andere Teile des Gesamtsystems dadurch beeinflusst werden!

Page 4: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 4

Modul

Ein Modul ist eine Sammlung von Algorithmen und Daten bzw. Datenstrukturen zur Bearbeitung einer in sich abgeschlossenen Aufgabe.

Die Verwendung des Moduls (d.h. seine Integration in ein Programm-System) erfordert keine Kenntnis seines inneren Aufbaus und der konkreten Realisierung.

Seine Korrektheit ist ohne Kenntnis seiner Einbettung in ein bestimmtes Programmsystem nachprüfbar.

Page 5: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 5

Modul

Ein Modul wird anhand folgender Kriterien gebildet:

- Abgeschlossenheit (Aufgabe), - Geheimnisprinzip, - Datenabstraktion, Kapselung, - Schnittstellenspezifikation,- Schnittstellenminimalität, - Überschaubarkeit, Testbarkeit, etc.

Programmiersprachen bieten zur Implementierung von Modulen unterschiedliche Konzepte: Paket, Unterprogramm, Funktion, Tasks, Unit usw. .

Page 6: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 6

Strukturierter Entwurf• Methoden für die implementationsnahe Beschreibung von Softwaresystemen.

• Zielstellung ist die Definition der Programmstruktur und das Abgrenzen von Modulen.

• Eine weit verbreitete Technik ist das structured chart.

• Es ist zweckmäßig, die Funktionen der letzten Ebenen der SA als Module strukturiert zu modellieren.

Modul

Folge AB

A B C D E

Wiederholung von C Auswahl DE

Page 7: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 7

GrundelementeABC

A

A B

A B C

A

A B

Page 8: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 8

Sequenz

A

B C D

function A() { print (“B“); print (“C“); print (“D“); }

Page 9: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 9

Alternative

if ( bedingung = wahr )print (“E“);

elseprint (“F“);

E F

B

Page 10: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 10

Wiederholung

G

while ( anzahl < 2 ){print (“G“);anzahl=anzahl+1; }

D

Page 11: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 11

ModulhierarchieA

B C D

E F

B

G

D

Page 12: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 12

Modulhierarchie

A

B C D

E F

B

G

D

Page 13: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 13

ModulhierarchieA

B C D

E F

B

G

D

CFE

Ganzahl < 2

bedingung

Page 14: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 14

Modulhierarchie

A

B C D

E F

B

G

D

CFE

Ganzahl < 2

bedingung

function A() { if ( bedingung = wahr )

print (“E“); else

print (“F“); print (“C“); while ( anzahl < 2 )

{print (“G“);anzahl=anzahl+1; }

}

Page 15: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 15

Modulhierarchie die 2.A

B C D

E F

B

G

D

Unterprogramme

Page 16: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 16

UnterprogrammeA

B C D

E F

B

G

D

Page 17: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 17

Unterprogramme

E F

B

G

D

A

B C D

function D() { while ( anzahl < 2 )

{print (“G“);anzahl=anzahl+1; }

}

function B() { if ( bedingung = wahr )

print (“E“); else

print (“F“); }

function A() { B(); print (“G“); D(); }

Page 18: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 18

SA und Entwurf

ermittleKunden-umsatz

KundennummerUmsatz

Rechnung

Blatt-funktion

3.2

Funktion: ermittle Kundenumsatz

IN: Kundennummer (Datenfluss)OUT: Umsatz (Datenfluss)

Minispezifikation:suche Rechnungen für Kundennummerwiederhole für jede Rechnung lese Rechnungssumme aus Rechnung wenn Rechnung bezahlt Umsatz=Umsatz+Rechnungssummegebe Umsatz auf Bildschirm aus

Page 19: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 19

SA und EntwurfermittleKunden-umsatz

Kundennummer

Umsatz

Rechnung

Blatt-funktion

3.2

deinit TabelleRechnungen

gebe Umsatz aufBS aus

ermittleKundenumsatz

init TabelleRechnungen

für jedenDatensatz

Umsatz=0open Rechnungen Satzzeiger auf 1 lese Datensatz

wennKundennummer

gleich und bezahlt

Umsatz=Umsatz+1

Satzzeiger +1

Funktion: ermittle Kundenumsatz

IN: Kundennummer (Datenfluss)OUT: Umsatz (Datenfluss)

Minispezifikation:suche Rechnungen für Kundennummerwiederhole für jede Rechnung lese Rechnungssumme aus Rechnung wenn Rechnung bezahlt Umsatz=Umsatz+Rechnungssummegebe Umsatz auf Bildschirm aus

Page 20: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 20

Der Weg zum Quellcode

mainHauptmodul

W

BS aufbauA

Menüauswahl

Statistik endeStammdatenplegeRückgabeAusleihe

deinitinit

mainmain

initBS AufbauEingabeaufforderungMenüauswahl

Ausleihe Rückgabe Statistik Stammdaten ende

deinit

1 2 3 4 5

Drag & Drop

generiert

Page 21: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 21

Die Strukturierte Programmierungmainmain

initBS AufbauEingabeaufforderungMenüauswahl

Ausleihe Rückgabe Statistik Stammdaten ende

deinit

1 2 3 4 5

Mit F8 generiert

Page 22: Strukturierter EntwurfDipl. Ing. Päd. Huwaldt1 Software Engineering Strukturierter Entwurf.

Strukturierter Entwurf Dipl. Ing. Päd. Huwaldt 22

Vorgehensweise

• Strukturierte Analyse

• Blattfunktionen mit Minispezifikationen

• Entwurf der Blattfunktionen als getrennte Module

• Entwurf der Anwendungsarchitektur / Hauptmodul

• Integration der einzelnen Module als Unterprogramme in das Hauptmodul