Movatterモバイル変換


[0]ホーム

URL:


Zum Inhalt springen
WikipediaDie freie Enzyklopädie
Suche

Modul (Software)

aus Wikipedia, der freien Enzyklopädie

EinModul (neutrum, das Modul[1]) ist imSoftware Engineering ein Baustein eines Softwaresystems, der bei derModularisierung entsteht, eine funktional geschlossene Einheit darstellt und einen bestimmten Dienst bereitstellt.[2]

Module sind charakteristisch für die Programmierung nach demProgrammierparadigma dermodularen Programmierung. Sie bestehen häufig aus thematisch zusammengehörigen Konstrukten und können weitere Module bzw. auch anders benannte Konstrukte (wieFunktion,Prozedur,Klasse, Konstanten und ggf. weiterer Programmierobjekte) enthalten. So ist die Zerlegung der Programmfunktionalität in einer Hierarchie möglich. Module können die in ihnen festgelegten Datenstrukturen und Methoden gegebenenfallsvererben bzw. fremden Modulen den Zugriff erlauben oder verbieten.

In den verschiedenenProgrammiersprachen undEntwicklungsumgebungen und deren zeitlicher Entwicklung haben sich zahlreiche unterschiedliche Implementierungsformen von Modulen (mit zum Teil unterschiedlichen Bezeichnungen) entwickelt. Auch wird der Ausdruck Modul häufigsynonym zu Begriffen wie Unterroutine, Prozedur,Unterprogramm, Programmteil, Programm-Modul[3][4] verwendet.

Als Speicherobjekt fürProgrammcode ist „Modul“ eine typisierende Bezeichnung für die Inhalte/Elemente in einerProgrammbibliothek. Sie enthalten alternativ unterschiedliche Arten von Programmcode (wieQuelltext,Zwischencode,Maschinenprogramm). Module in diesem Sinn könnenHauptprogramme oderUnterprogramme repräsentieren.

Zu unterscheiden ist ein Modul von einerKomponente, die in der Funktionalität eine Hierarchieebene höher angesiedelt ist und die (Basis-)Funktionalitäten von Modulen zu (fachspezifischen) Diensten kombiniert. Jedoch werden derartige Komponenten im Sprachgebrauch (zum Beispiel beiSAP[5]) manchmal ebenfalls „Module“ genannt.

Gründe für das Aufteilen von Programmen in Module

[Bearbeiten |Quelltext bearbeiten]

Für modulare Programmierung im Allgemeinen

[Bearbeiten |Quelltext bearbeiten]
  • Aus der ursprünglichen Sicht der Assemblerprogrammierung war der Grund der Aufteilung diemehrfache Verwendung der gleichen Befehlsfolge an unterschiedlichen Stellen des Programms, somit Einsparung von Speicherplatz und die Vermeidung vonCodewiederholungen.
  • In modernen Technologien desSoftwareengineering ist ein weiterer wichtiger Grund dieStrukturierung desSoftwaredesigns: DerQuelltext von Programmen besteht heute zu Gunsten der besserenWartbarkeit,Verständlichkeit undFehlerbehebung aus jeweils kurzen und übersichtlichen Einzelteilen (sieheModulare Programmierung). Nach diesem Prinzip werden in sich abgeschlossene Teilaufgaben (z. B. Leseroutinen, Gültigkeitsprüfungen, aufwändige Berechnungen) als strukturell getrennteUnterroutinenimplementiert (und ggf. an mehreren Stellen im Programmcode aufgerufen). Durch derartige ‚Auslagerungen‘ bleibt der Code übersichtlich; der rechnerinterne Zeit- und Verwaltungsaufwand für die Aufrufe spielt auf modernen Rechenmaschinen praktisch keine Rolle mehr.

Für eigenständige Module

[Bearbeiten |Quelltext bearbeiten]
  • Ein Aspekt derSoftwarearchitektur ist die Herstellung von Unterprogrammen zur Verwendung in mehreren Computerprogrammen/-Anwendungen. Bestimmte technische oder betriebliche Funktionen (zum Beispiel einePrüfziffernberechnung) können so beispielsweise unternehmensweit einheitlich genutzt werden.
  • Module können inunterschiedlichen Programmiersprachen separat erstellt undkompiliert und inProgrammbibliotheken zur Verwendung bereitgestellt werden.
  • Funktionalitäten können nach demBaukastenprinzip optional eingebunden werden.
  • Für kommerzielle Anwendungen können einzelne Bestandteileseparat lizenziert werden.
  • Mehrere Entwickler oder Entwicklergruppen können Teile einer Anwendung unabhängig voneinander erstellen undtesten.
  • Eigenständige Module sind bei Bedarf meistunabhängig von ihren Aufrufprogrammen änderbar (solange ihre Schnittstelle identisch bleibt). In besonderem Maß gilt dies für dynamisch ladbare Module.

Einsatz/Verwendung

[Bearbeiten |Quelltext bearbeiten]

Der Einsatz von Modulen entspricht dem Prinzip derKapselung (encapsulation); denn:

  • DieSchnittstelle eines Moduls enthält/benennt nur die Daten(bereiche), die das Modul als Eingabe und Ergebnis der Verarbeitung braucht/liefert.
  • DieImplementierung enthält den tatsächlichen Programmcode.

Außerhalb des Moduls bleiben die Verarbeitungsweise und evtl. Modul-eigene Daten verborgen (Prinzip desinformation hiding).

Große, komplexe Programme können durch den Einsatz von Modulen gegliedert und strukturiert werden. Dies kann in vielerlei Hinsicht von Nutzen sein (vergleiche auchModularität). Beispielsweise hat die Größe der Module einen Einfluss auf dieFehlerdichte – sie ist am geringsten bei einer Modulgröße von 200 bis 400Lines of Code.[6]Entwurf und Definition von Modulen und Schnittstellen ist Teil derDesignphase in der Softwareentwicklung.

Das Modulkonzept wurde zuerst vonDavid Parnas publiziert.

Zahlreiche Programmiersprachen unterstützen das Modulkonzept durch integrierte Sprachmittel, beispielsweiseAda,COBOL,D, F,Fortran,Haskell,Java,ML,Modula-2,Oberon,Component Pascal undPL/I. Daneben sind Skriptsprachen wiePerl,Python,PHP undRuby zu nennen.

Beispiele für Varianten von Modulen

[Bearbeiten |Quelltext bearbeiten]

Die nachfolgenden Beispiele zeigen, dass Module in unterschiedlichen technischen Ausprägungen auftreten können:

Module als Strukturierungsmittel im Quelltext

[Bearbeiten |Quelltext bearbeiten]

Module sind nach den Prinzipien der modularen Programmierung „logische Teilblöcke“, in die die Aufgabenstellung einesComputerprogramms zerlegt wird. Das Modul ist häufig nur als individueller Codeabschnitt imQuelltext definiert, beiOOP kann dieser eineKlasse sein. In diesem Codeabschnitt/Modul können weitere Module enthalten sein oder als eigenständiges, getrennt kompiliertesUnterprogramm aufgerufen werden.

Klassen in der Objektorientierung

[Bearbeiten |Quelltext bearbeiten]

Eine spezielle Form von Modul/Modularisierung sind dieKlassen derobjektorientierten Softwareentwicklung:

  • Von Klassen können Exemplare in Form vonObjekten erzeugt (instanziiert) werden,
  • Klassen können Eigenschaften an andere Klassen vererben,
  • Polymorphismus erlaubt es Klassen, Eigenschaften zur Laufzeit zu verändern – Beziehungen zwischen anderen Modulen sind in der Regel statisch.

Objektmodul (Großrechner IBM-Welt)

[Bearbeiten |Quelltext bearbeiten]

Aus einem Quelltext erzeugt einCompiler oder einAssembler ein sogenanntesObjektmodul, dessen Anweisungen in Form vonMaschinencode in einerProgrammbibliothek abgelegt werden. Um ein Programm ausführen zu können, wird sein Objektcode mit dem Objektcode aller aufgerufenen Unterprogramme mit einem sog.Linker 'zusammengebunden', wobei u. a. die Einsprungadressen der Unterprogramme eingesetzt werden. Ergebnis ist einLademodul.

Lademodul (Großrechner IBM-Welt)

[Bearbeiten |Quelltext bearbeiten]

Variante A: Hauptprogramme und ihnen (= statisch) hinzugebundene Unterprogramme werden zu einem gemeinsamenausführbaren Programm als gemeinsames ‚Lademodul <Hauptprogramm>‘ in einerProgrammbibliothek abgestellt. Von dort aus können sie zum Beispiel überJCL-Aufrufe (EXEC <Pgm>) aufgerufen werden.
Variante B: Sollen Unterprogramme erst beim Programmlauf (= dynamisch) geladen werden, so wird aus ihrem Objektcode ein einzelnes ‚Lademodul <UPRO>‘ erzeugt, das durch einen Ladebefehl im aufrufenden (Haupt-)Programm über das Betriebssystem geladen und danach – wie bei statisch gebundenen Modulen – zur Verarbeitung aufgerufen wird.
Zusammenwirken von aufrufendem und aufgerufenem Programm(teil) im Detail: SieheUnterprogramm.

Module bei MS Access und VBA

[Bearbeiten |Quelltext bearbeiten]

DieEntwicklungsumgebungMS Access versteht unter ‚Modul‘ eine Zusammenfassung aller Prozeduren bzw. Funktionen, die für ein Objekt, zum Beispiel ein Formular oder einen Bericht inVBA angelegt wurden. In solchen Modulen können weitere, untergeordnete Teilfunktionen angelegt und ausgeführt werden, zum Beispiel „Ereignisprozeduren“,[7] mit denen beim Ändern eines bestimmten Datenfelds in einem Formular eine individuelle Prüfung erfolgen soll. Zusätzlich können zum Beispiel Module für global gültige Daten (z. B. ‚GLOBAL DATA‘) oder für global ansprechbare Funktionen (etwa ‚GLOBAL CODE‘) angelegt werden.

Der Modulbegriff bei SAP

[Bearbeiten |Quelltext bearbeiten]

In der Software vonSAP werden einzelne Anwendungen „Modul“ genannt.[8] Dies entspricht jedoch dem softwaretechnischen Modulbegriff nur im weitesten Sinn und gilt als Zusammenfassung von Funktionalität auf einem betriebswirtschaftlichen Level, den ein Anwender optional erwerben und nutzen kann.

Siehe auch

[Bearbeiten |Quelltext bearbeiten]

Weblinks

[Bearbeiten |Quelltext bearbeiten]
Wiktionary: Modul – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

[Bearbeiten |Quelltext bearbeiten]
  1. Duden, Band 5, Fremdwörterbuch, 7. neu bearbeitete und erweiterte Auflage, Mannheim 2001
  2. Gabler[1]Definition Modul
  3. psion user-clubOPL-Kurs Teil 4[2]denn einen Teil der Module („synonym: Prozeduren, ...“) werden wir wiederverwenden
  4. econstor.eu[3] Seite 19:... inwieweit ein Programm in Unterprogramme (Module) zerlegt ist, ...
  5. tse.de[4]SAP-R3-Module
  6. Y. Malayia, J. Denton: Module size distribution and defect density. (pdf) In: 11th International Symposium on Software Reliability Engineering (ISSRE’00). Oktober 2000, archiviert vom Original (nicht mehr online verfügbar) am 1. August 2018; abgerufen am 1. August 2018 (englisch).  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäßAnleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/pdfs.semanticscholar.org 
  7. MicrosoftErstellen einer VBA-ProzedurFunktionen in Standard- oder Klassenmodulen (Memento vom 8. April 2014 imInternet Archive)
  8. SAP ERPWas ist ERP?[5]„Jede Anwendung, also jedes ERP-Modul, ist auf einen Geschäftsbereich ausgerichtet.“
Abgerufen von „https://de.wikipedia.org/w/index.php?title=Modul_(Software)&oldid=264446420
Kategorien:
Versteckte Kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp