| Modul | |||||
|
Die Modularisierung von Software berücksichtigt, daß ein in kleine Teile gegliedertes Problem einfacher zu bearbeiten ist. "Klein" heißt, daß ein Modul nur eine maximale Anzahl von Anweisungen umfassen darf. Ein Modul ist ein Programmteil mit einem Eingang und einem Ausgang und kann selbständig übersetzt und ausgeführt werden. Module verkehren nur über Schnittstellen miteinander, über die Werte (Parameter) vom rufenden an das aufgerufene Modul übergeben werden. Ein Modul soll als Black Box aufgefasst werden: es sind nur die Schnittstellen bekannt und nichts über das Innenleben. Ein Modul weiss auch nichts vom Innenleben eines anderen Moduls (Geheimnisprinzip). Da man nur wissen muss, welches Datenformat heraus kommt (Output) und welche Daten zugeführt werden (Input), erleichtert dies die Einbindung des Moduls innnerhalb des Programmcodes und die Kommunikation der Module untereinander. Man spricht auch von einer Kapselung: Trennung von Implementierung (der eigentliche Programmcode) und Schnittstellen. Module können wiederverwendet werden oder separat kompiliert und als Bibliotheksdatei verwendet werden. Module erlauben eine Auslagerung von bestimmten Programmfunktionen. Diese können nach dem Baukastenprinzip zusammengestellt und auch einzeln lizenziert werden. Auch der Aufbau verschiedener Software-Versionen mit unterschiedlichen Fähigkeiten ist dadurch möglich. Diese können auch separat vermarktet werden. Das Modulkonzept wird von einigen Programmiersprachen direkt unterstützt: Component PASCAL, Modula 2, Fortran, Cobol, Ada, D, PHP, Python, Perl oder Ruby. |
|||||
| Siehe auch: schnittstelle software Programm CASE API Datei-Endung-DLL Linker Parser ADA PASCAL | |||||
| Algorithmus | |||||
|
Mit Hilfe eines Algorithmus wird eine zu programmierende Aufgabe in mehrere Teilaufgaben oder Unterprogramme zerlegt. Ein komplexes Problem wird nach einer Problemanalyse schrittweise aufgeteilt. Dies erfolgt unter Verwendung elementarer Regeln. Algorithmen sind Gegenstand vieler Teilgebiete der Theoretischen Informatik, wie der Algorithmentheorie, der Berechenbarkeitstheorie und der Komplexitätstheorie. In höheren Programmiersprachen der vierten und fünften Generation werden Algorithmen durch Kontrollstrukturen wie Schleifen, Funktionen, Verzweigungen, Rekursive Funktionen, Unterprogramme oder Modularisierung verwirklicht. Ein Algorithmus ist definiert, wenn es eine Turing-Maschine gibt, die ihn für jede Eingabe, die eine Lösung besitzt, ausführen kann. Daraus folgt, dass ein Algorithmus eindeutig beschreibbar (Finitheit), in einer endlichen Speicherbank ausführbar und in endlich viele Teilschritte zerlegbar sein muss. Darüber hinaus muss er bei denselben Voraussetzungen dasselbe Ergebnis liefern (Determiniertheit) und die nächste anzuwendende Regel muss während der Verarbeitung eindeutig bestimmt sein (Determinismus). Wichtig bei einem Algorithmus ist die Geschwindigkeit, mit der er die zu lösende Aufgabe ausführt. Der Zeitaufwand für einen Algorithmus kann mit Hilfe mathematisch-statistischer Verfahren abgeschätzt werden. Dabei wird das Verfahren der asymptotischen Laufzeit angewendet. Die Laufzeit wird für eine sehr grosse Anzahl von Eingaben (n) mit Hilfe des Landau Symbols Theta (Θ) angegeben, z. B. Θ (n log n). |
|||||
| Siehe auch: Adresse Programm software Ablaufdiagramm Sortieralgorithmus Parser Künstliche-Intelligenz Modul | |||||