1.1. Modul
Ein Modul ist eine Source-Code-File bzw. ein Object-File. Die Source-Code-Files können einzeln - getrennt vom Hauptprogramm - übersetzt (mittels Compiler) und getestet werden, um sie auszuführen müssen sie jedoch noch zu einem ausführbaren Programm zusammengefügt werden (dies geschieht mittels des Linkers).
1.2. Modularisieren
Zergliederung eines Programmes in einzelne, getrennt voneinander übersetztbare Programmteile (Module)
1.3.
Programm
Ein Programm ist eine gezielte Folge von Befehlen,
die hier durch das zusammensetzen der einzelnen Module zu einer ausführbaren
Datei entsteht.
Verbesserte Übersichtlichkeit sowie erhöhter Grad der Strukturiertheit
Möglichkeit der Aufteilung eines Programmes auf mehrere Personen, dadurch Erleichterung von Projektarbeiten.
Starke Erleichterungen bei der Wartung von Programmen. Es entsteht zwar ein gewisser Mehraufwand während der Entwicklung der Programmstruktur. In der Gesamtheit betrachtet, ist es aber ein klarer Vorteil.
In jedem Modul soll nur eine Problemstellung realisiert werden.
Oft ändert sich nur ein Anforderung an ein Programm. So muß dann lediglich ein Modul geändert und neu übersetzt werden.
Hardware- und Softwareabhängige Programmteile sollen in eigene Module realisiert werde, da dadurch eine Erhöhung der Portabilität entsteht. Das Programm kann an ein anderes System angepaßt werden, indem man lediglich ein Modul auf die neuen Gegebenheiten zuschneidet.
Module, deren Source-Code nicht weitergegeben werden darf, kann man als bereits übersetzte Module weitergeben. Sie dienen dann als Bibliotheken.
Wiederverwendbarkeit von einzelnen Modulen bei ähnlichen oder gleichen Anforderungen.
3. Realisierung der Modularisierung in verschiedenen Programmiersprachen
3.1.1. Aufbau eines Source-Code-Files
Deklaration |
Definition |
Include |
Globale Variablen |
Define |
Funktionsdefinitionen |
Konstanten |
|
Class - Struct |
|
Prototypen |
|
Externe Variablen |
|
Die Deklaration sollte in einem Header-File erfolgen!
3.1.2.
Variablen
Globale Variablen sind normalerweise nur innerhalb
des Moduls ansprechbar, in dem sie definiert wurden. Die extern-Anweisung dient
zur Deklaration von globalen Variablen, die auch von anderen Modulen
angesprochen werden sollen.
z.B.: extern FILE *fp;
3.1.3. Übersetzung eines Moduls
Turbo C / BC++ |
Compilieren = [Alt]+[F9] |
modul.obj |
MS Visual C++ |
Compile File = [Crtl]+[F8] |
modul.obj |
UNIX |
c89 -c modul.c (-c = nur compilieren) |
modul.o |
3.1.4. Zusammenbinden von Modulen zu einem Programm
Turbo C / BC++ |
Mittels Project-File |
MS Visual C++ |
Mittels Project-File |
UNIX |
c89 modul1.o modul2.o -o modul.c oder Mittels Makefile: programm: modul1.o modul2.o c89 modul1.o modul2.o;c89 -c modul.c modul1.o: modul1.c hfile.h;c89 -c modul1.c modul2.o:modul2.c hfile.h;c89 -c modul2.c Aufruf: make [-f Filename] |
3.1.5. Beispiel
HFILE.h |
#include <stdio.h extern int zahl; void ausgeben(); void eingeben(); int addieren(int zahl1, int zahl2); |
MODUL1.c |
#include <conio.h #include 'hfile.h' void eingeben() int addieren(int zahl1, int zahl2) void main() |
MODUL2.c |
#include <conio.h #include 'hfile.h' int zahl; void ausgeben() |
3.2.1. Struktur eines Visual Basic-Programmes
Eine VB-Anwendung wird durch ein Projekt-File verwaltet und enthält:
Form-Modul-Dateien |
*.FRM |
Code-Modul-Dateien |
*.BAS |
Steuerelement-Dateien |
*.VBX, *.OCX |
3.2.1.1. Form-Modul-Datei
Fenster- & Steuerelement-Beschreibungen
Deklarationen von Konstanten & Variablen (modul-global)
Ereignisprozeduren (modul-global)
Allgemeinen Prozeduren und Funktionen (modul-global)
3.2.1.2. Code-Modul-Datei
Deklaration von modul-globalen Konstanten & Variablen
Deklaration von programm-globalen Konstanten & Variablen
Allgemeinen Prozeduren und Funktionen (programm-global)
Prozeduren und Funktionen (modul-global)
3.2.2. Variablen
3.2.2.1. Prozedur-Variablen
Deklaration nach dem Prozedur-Kopf
z.B.:
Dim x as Integer
Static y as Integer
3.2.2.2. Modul-globale Variable
Deklaration im Allgemeinen Abschnitts eines Code- oder Formmoduls
z.B.:
Dim x as Integer
3.2.2.3. Programm-globale Variable
Deklaration im Allgemeinen Abschnitt eines Code-Moduls
z.B.:
Global x as Integer
3.2.2.4. Konstanten
Definition wie bei Variablen
Const für modul-globale Konstanten
Global Const für programm-globale Konstanten
Ab VB 4.0 Public statt Global
3.2.3 Nachteil
Die Module sind nicht getrennt übersetzbar.
3.2.4. Beispiel
MAIN.frm |
Private Sub button_click() eingeben ausgeben End Sub Private Sub eingeben() End Sub |
CODE.bas |
Public zahl As Integer Public Const ADD_Zahl=10 Public Const MAX_Zahl=100 Sub ausgeben() Dim summe As Integer summe=addieren(zahl,ADD_Zahl) MsgBox('Summe: '+Str(summe)) End Sub Function addieren(z1 As Integer, z2 As Integer) addieren=z1+z2 End Function |
3.3.1. Struktur eines COBOL-Programms
Die einzige Möglichkeit in COBOL Modularität zu erreichen, ist die Verwendung von externen Unterprogrammen.
3.3.1.1. Hauptprogramm
Aufruf des Unterprogramms mittels CALL
z.B.:
CALL 'Unterprogramm' USING Par1, Par2
Die USING-Klausel dient zur Parameterübergabe.
3.3.1.2. Unterprogramm
Parameter werden im Unterprogramm über die USING-Klausel der PROCEDURE DIVISION angegeben.
Die Parameter müssen in der LINKAGE-SECTION des Unterprogramms und der WORKING-STORAGE-SECTION des Hauptprogramms gleich vereinbart werden.
Der EXIT-Befehl dient zum Verlassen des Unterprogramms, und muß in einem eigenen Paragraphen stehen.
3.3.2. Beispiel
HAUPTPRG |
IDENTIFICATION DIVISION. PROGRAM-ID.HAUPTPRG. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 ZAHL PIC 9(4). 77 STR PIC X(20). PROCEDURE DIVISION. CALL 'UNTERPRG' USING ZAHL,STR. STOP RUN. |
UNTERPRG |
IDENTIFICATION DIVISION. PROGRAM-ID.UNTERPRG. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. LINKAGE SECTION. 77 ZAHL PIC 9(4). 77 STR PIC X(20). PROCEDURE DIVISION USING ZAHL,STR. VERLASSEN. EXIT PROGRAM. |
Haupt | Fügen Sie Referat | Kontakt | Impressum | Nutzungsbedingungen