In MIL-STD-2167A haben die Begriffe "Modul" und "Einheit" spezifische Bedeutungen, obwohl sie häufig in der allgemeinen Programmierung austauschbar verwendet werden. Hier ist der Zusammenbruch:
* Modul: Ein Modul ist ein logisch unterschiedlicher Teil eines Programms, das eine bestimmte Funktion oder eine Reihe von verwandten Funktionen ausführt. Es besteht typischerweise aus einer Reihe von Routinen (Funktionen, Unterprogramme). Module sind so konzipiert, dass sie die Modularität fördern und den Code leichter verstehen, pflegen und wiederverwenden können. Betrachten Sie es als einen relativ hochrangigen Baustein im Softwaresystem. Der Schlüsselaspekt eines Moduls ist der funktionale Zusammenhalt . Alle Teile im Inneren arbeiten zusammen, um eine definierte Aufgabe auszuführen.
* Einheit: Eine Einheit ist eine einzelne, prüfbare Komponente eines Programms. Es handelt sich normalerweise um eine Routine (Funktion, Subprogramm) oder eine kleine Menge eng gekoppelter Routinen. Der Fokus liegt auf individuellen Testbarkeit . Unit -Tests prüfen, ob jede Einheit isoliert ordnungsgemäß arbeitet. Wenn ein Modul wie ein Raum ist, ist eine Einheit ein einzelnes Gerät oder ein Möbelstück in diesem Raum.
Schlüsselunterschiede zusammengefasst:
| Feature | Modul | Einheit |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Zweck | Modularität erreichen, verwandte Funktionen zusammenschließen, die Codeorganisation und die Wartbarkeit verbessern. Konzentrieren Sie sich auf größere Funktionen oder eine Reihe verwandter Funktionen. | Erleichterung der Unit -Tests und prüfen Sie, ob die einzelnen Komponenten isoliert ordnungsgemäß arbeiten. Konzentrieren Sie sich auf eine einzelne Funktion oder eine kleine Anzahl eng gekoppelter Funktionen. |
| Scope | Breiter, mehrere Einheiten umfassen. | Schmaler, typischerweise eine einzelne Routine oder ein sehr kleiner Satz verwandter Routinen. |
| Testbarkeit | Kann insgesamt getestet werden, aber Tests konzentrieren sich häufig auf Integrationstests, um sicherzustellen, dass die Module korrekt zusammenarbeiten. | Für unabhängige Unit -Tests entwickelt. Jede Einheit sollte testbar sein, ohne von anderen Teilen des Systems abhängig zu sein (bei Bedarf mit Stubs oder Mocks). |
| Größe | Größer, besteht aus mehreren Routinen und Datenstrukturen. | Kleiner, normalerweise eine einzelne Routine oder einige eng verwandte Routinen. |
| Fokus | Funktionelle Zerlegung, Kohäsion und hochrangiges Design. | Implementierungsdetails mit niedriger Ebene, individuelle Routine Korrektheit und Isolation. |
| Beziehung | Ein Modul enthält eine oder mehrere Einheiten. Einheiten sind die Bausteine von Modulen. | Eine Einheit ist eine Komponente * eines Moduls. |
Beispiel:
Stellen Sie sich ein Softwaresystem zur Steuerung eines Roboterarms vor:
* Modul: Ein "Bewegungssteuermodul" könnte für die Kontrolle der Bewegungen des Roboterarms verantwortlich sein. Dieses Modul kann Routinen zur Berechnung von Gelenkwinkeln, zur Steuerung von Motordrehzahlen und zur Verwaltung der Armbahn des Arms enthalten.
* Einheit: A `calculate_inverse_kinematics ()` Routine innerhalb des "Bewegungssteuermoduls" wäre eine Einheit. Es würde die gewünschte Endeffektorposition als Eingabe benötigen und die erforderlichen Verbindungswinkel berechnen. Diese Routine würde eine Einheit getestet, um sicherzustellen, dass sie die Winkel für verschiedene Positionen korrekt berechnet. Eine andere Einheit könnte eine Funktion namens `set_motor_speed ()` sein.
Bedeutung in mil-std-2167a:
Die Unterscheidung zwischen Modulen und Einheiten ist bei MIL-STD-2167A wichtig, da der Standard einen strukturierten Entwicklungsprozess betont, einschließlich:
* Modulares Design: Der Standard fördert das Entwerfen von Software modular, wobei die Funktionalität in gut definierte Module mit klaren Schnittstellen unterteilt ist. Dies erleichtert die Entwicklung, Prüfung und Wartung.
* Einheitstests: Der Standard erfordert strenge Einheitentests, um zu überprüfen, ob einzelne Komponenten der Software -Funktion korrekt sind.
* Integrationstest: Nach dem Testen der Unit -Tests werden Module integriert und getestet, um sicherzustellen, dass sie korrekt zusammenarbeiten.
Durch das Verständnis des Unterschieds zwischen Modulen und Einheiten können Entwickler die Prinzipien von MIL-STD-2167A besser einhalten und eine qualitativ hochwertige, zuverlässige Software erzeugen. Während MIL-STD-2167A ein älterer Standard ist, bleiben seine Prinzipien der Modularität und der Einheitstests für moderne Softwareentwicklungspraktiken relevant.