In seinem monumentalen Buch [Wang 2007], einem umfassenden Versuch zur Verwissenschaftlichung der Softwaretechnik, formalisiert Yinxu Wang Kopplung und Kohäsion aus der Sicht von Systemen:
- Ein System besteht aus einer Anzahl interner Komponenten und kommuniziert mit einer Anzahl externer Komponenten.
- Es existieren drei Arten von Beziehungen:
- Beziehungen zwischen internen Komponenten (B_intern).
- Ausgehende Beziehungen (B_output).
- Eingehende Beziehungen (B_input).
- Es können zusammengefasst werden:
- Alle Beziehungen (B_alle = B_intern + B_output + B_input).
- Alle externen Beziehungen (B_extern = B_output + B_input).
- Kopplung = B_extern / B_alle * 100%
- Kohäsion = B_intern / B_alle * 100%
- Kohäsion + Kopplung = 100%
Verallgemeinerbarkeit?
Wang spricht hier ganz explizit von "System Cohesion and Coupling" und schränkt den Systembegriff dabei keineswegs auf Software-Systeme ein. Im Kontext des Kapitels ist beispielsweise von der Taxonomie von Systemen, von physikalischen und sozialen Systemen, von finiten und infiniten Systemen, von offenen und geschlossenen Systemen die Rede. Systeme sieht Wang hierarchisch aus Komponenten aufgebaut, die ihrerseits aus Subkomponenten bestehen usw. Weder Komponenten noch Beziehungen zwischen Komponenten werden allerdings weiter eingeschränkt. Eine Verallgemeinerung dieses Systembegriffs auf beliebige Ebenen der Softwaretechnologie bedürfte sicherlich einer Rechtfertigung.- Ist ein Service ein System?
- Ist eine Komponente ein System?
- Ist eine Funktion ein System?