1
1. Definition
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.
2.
Gründe der Modulariserung
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. C / C++
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()
{ printf("Zahl: ");
scanf("%d",&zahl);
}
int addieren(int zahl1, int zahl2)
{ return (zahl1+zahl2);
}
void main()
{ eingaben();
ausgeben();
}
MODUL2.
c
#include <conio.h
#include "hfile.h"
int zahl;
void ausgeben()
{ int summe=0;
summe=addieren(zahl,10)
printf("Summe: %d", summe);
getch();
}
3.2. Visual Basic
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. COBOL
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.
Anmerkungen: |
| impressum | datenschutz
© Copyright Artikelpedia.com