Was ist eigentlich ein Modul im Software Engineering? [geschlossen]

18

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 es jemand klar erklären und einige konkrete Beispiele zeigen, wie eine Anforderung in Module unterteilt werden kann? Vielen Dank.

Hoan
quelle

Antworten:

16

Ein Modul,

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

Zum Beispiel kapselt dapper.net den Datenbankzugriff. Es hat 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 vorsieht, dass Software aus separaten, austauschbaren Komponenten besteht, die Module genannt werden, indem Programmfunktionen in Module unterteilt werden, die jeweils eine Funktion erfüllen und alles Notwendige enthalten, um dies zu erreichen.

Das D
quelle
Haben wir eine Reihe von Anforderungen, sodass jede Anforderung als Modul betrachtet werden kann? ZB: Die Anforderung "Mitarbeiter hinzufügen" kann ein Modul sein?
Hoan
1
Nein oder es kommt darauf an. Programmfunktionen sollten in zusammenhängende Einheiten unterteilt werden. Wenn sich die Anforderungen so aufschlüsseln lassen, kann das ja sein. Aber ich habe so etwas noch nicht gesehen. Außerdem sollte "Mitarbeiter hinzufügen" kein Kandidat für das Modul sein. Normalerweise sind Module übergeordnete Strukturen, die Programme in logisch zusammenhängende Einheiten zerlegen.
7.
12

Modul ist möglicherweise ein überladener Begriff, der von Wikipedia unter dem Begriff Modulare Programmierung zusammengefasst wird, wenn es um die Verwendung in Bezug auf Software geht. Sie diskutieren es in Form einer strukturierten Programmierung, die auf einem Top-Down-Design-Ansatz basierte. Hauptmerkmale der Modularität in Bezug auf die Verwendung von geringer Kopplung und hoher Kohäsion .

Meine Verwendung war, dass in einer Sprache wie C oder sogar C ++ ein Modul mit der Definition einer separat kompilierten Einheit aus einer Quelldatei (.c oder .cpp) und normalerweise einer zugehörigen Headerdatei (.h) zusammenhängt. Andere Sprachen verwenden das Modul als Beschreibung, und die Sprache Modula-2 hat die Strukturierung der Module in ihrem Namen und in ihrer Herangehensweise in den Vordergrund gestellt.

Historisch Modul hat einige andere Auswirkungen wie in dem beschriebenen wurden DL Parnas Papier „Auf den Kriterien in Decomposing Software in Modulen verwendet werden“ . Er befasst sich hauptsächlich mit der Erörterung der Vorteile des Ersetzens der funktionalen Zerlegung durch eine datenorientierte Zerlegung, was ein großer Schritt in Richtung unseres gegenwärtigen Stands der Technik, der objektorientierten Zerlegung, war.

Da objektorientierte Sprachen nach Klassen organisiert sind, ist der Begriff Modul in diesem Kontext möglicherweise weniger wichtig und weniger genau.

DeveloperDon
quelle
7

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 verknüpfte Funktionen bietet. Module definieren und erzwingen logische Grenzen in Ihrem Code.

Roc Martí
quelle