layout | title |
---|---|
default |
Woche 4 |
{% include head.html %}
Wir haben gesehen, dass einzelne Module einer Software miteinander interagieren, um die Funktionalität erfüllen zu können. Ein Modul steht also immer mit einem oder mehreren anderen Modulen in Beziehung. In diesem Artikel schauen wir uns an, wie wir diese Beziehungen formalisieren können.
Wir betrachten im Folgenden eine Menge von Modulen
Um die Beziehung zwischen Modulen auszudrücken, verwenden wir eine zweistellige (oder binäre) Relation. Eine binäre Relation
Als Beispiel nehmen wir die Menge
In der Graphendarstellung sehen wir bereits, dass gemäss Relation
Wir können uns das so merken, dass ein Module
Wie wir später sehen werden, gibt es gewisse Anordnungen von Modulen, die spezielle geeignet sind für Software Engineering. Eine besonders vorteilhafte Anordnung ist die Hierarchie. Hierarchien sind Anordnungen, bei der wir jedem Modul eindeutig einer Ebene zuordnen können. Wir definieren nun die Begriffe Hierarchie und Ebene formal.
Eine binäre Relation
$$ \nexists (M_i, M_j) \text{ so dass } M_i , r^+ , M_j \text{ und } M_j , r^+ , M_i $$ Diese Definition sagt nichts anderes, als dass es keine Zyklen im Graphen gibt.
Wir können uns die Ebene eines Moduls in der Relation wie folgt definieren:
-
$$M_i$$ ist auf Ebene 0, falls $$ \nexists M_j, \text{ so dass } M_i r M_j $$ - Sei
$$k$$ die höchste Ebene aller Module$$M_j$$ , so dass$$M_i r M_j$$ . Dann ist$$M_i$$ auf Ebene$$k+1$$
Schauen Sie sich folgenden Graph an und beantworten Sie die folgenden Fragen:
- Welcher dieser Graphen beschreibt eine Hierarchie?
- Was ist die transitive Hülle von
$$M_2$$ im zweiten Graphen - Auf welcher Ebene ist Knoten
$$M_{1,3}$$ im zweiten Graphen?
Notieren Sie sich ihre Antworten, da Sie diese für den Adam Test noch brauchen werden.