it-swarm.com.de

Was ist eigentlich ein Modul in Software Engineering?

Laut Stephen Schach, „Klassisches und objektorientiertes Software-Engineering“, Kapitel 6:

ein Modul besteht aus einem einzelnen Codeblock, der so aufgerufen werden kann, wie eine Prozedur, Funktion oder Methode aufgerufen wird

Dies scheint sehr vage und breit. Könnte jemand dies klar erklären und einige tatsächliche Beispiele zeigen, wie eine Anforderung in Module unterteilt werden kann? Vielen Dank.

18
Hoan

Ein Modul,

  • kapselt Code und Daten, um eine bestimmte Funktionalität zu implementieren.
  • verfügt über eine Schnittstelle, über die Clients auf einheitliche Weise auf ihre Funktionen zugreifen können.
  • ist leicht mit einem anderen Modul zu verbinden, das seine Schnittstelle erwartet.
  • wird normalerweise in einer einzigen Einheit verpackt, damit es einfach bereitgestellt werden kann.

Dapper.net kapselt beispielsweise den Datenbankzugriff. Es verfügt über eine API, um auf seine Funktionalität zuzugreifen. Es ist eine einzelne Datei, die in einen zu erstellenden Quellbaum eingefügt werden kann.

Das Konzept des Moduls basiert auf einem modularen Programmierparadigma, das befürwortet, dass Software aus separaten, austauschbaren Komponenten bestehen sollte, die als Module bezeichnet werden, indem Programmfunktionen in Module unterteilt werden, von denen jede eine Funktion erfüllt und alles enthält, was dazu erforderlich ist.

16
theD

Das Modul könnte ein überladener Begriff sein, so sehr, dass Wikipedia ihn unter dem Begriff Modulare Programmierung beschreibt, wenn es um seine Verwendung in Bezug auf Software geht. Sie diskutieren es im Sinne einer strukturierten Programmierung, die auf einem Top-Down-Designansatz basiert. Schlüsselmerkmale der Modularität im Zusammenhang mit der Verwendung von niedrig Kopplung und hoch Kohäsion .

Meine Verwendung war, dass in einer Sprache wie C oder sogar C++ ein Modul mit dem Definieren einer separat kompilierten Einheit aus einer Quelldatei (.c oder .cpp) und normalerweise einer zugeordneten Header-Datei (.h) zusammenhängt. Andere Sprachen verwenden das Modul als Beschreibung, und die Sprache Modula-2 stellt die Strukturierung der Module in ihrem Namen und ihrer Herangehensweise in den Vordergrund.

Historisch gesehen hat das Modul einige andere Auswirkungen, wie sie im D.L. Parnas Papier "Über die Kriterien, die beim Zerlegen von Software in Module verwendet werden sollen" beschrieben wurden. Er befasst sich hauptsächlich mit den Vorteilen des Ersetzens der funktionalen Zerlegung durch eine datenorientierte Zerlegung, was ein großer Schritt in Richtung unseres gegenwärtigen Standes der Technik war, der objektorientierten Zerlegung.

Objektorientierte Sprachen sind um Klassen herum organisiert, daher ist der Begriff Modul in diesem Zusammenhang möglicherweise weniger wichtig und weniger präzise.

12
DeveloperDon

Es gibt keine formale Definition eines Moduls, und was ein Modul im Kontext Ihres Projekts ist (oder nicht), hängt weitgehend von der Art und dem Design des Projekts ab.

Im Allgemeinen ist ein Modul ein eigenständiger Code, der spezifische und eng gekoppelte Funktionen bietet. Module definieren und erzwingen logische Grenzen in Ihrem Code.

7
Roc Martí