ex10 Aufgabe 3

Benutzeravatar
sqrt(2)
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 202
Registriert: 12. Apr 2015 11:35

ex10 Aufgabe 3

Beitrag von sqrt(2) »

Hallo,

was wird bei Aufgabe 3 verlangt für eine vollständige Antwort in der Klausur?

Wenn was auf Wiederverwendbarkeit gewertet werden soll, dann prüft man auf
- Kohäsion
- Kopplung
- was wäre noch interessant?

Hier ist der Fall, dass die Klasse ServiceUI eine hohe Kopplung hat, da Sie mit weiteren Klassen in Verbindung ist und eine niedrige Kohäsion besitzt. Niedrige Kohäsion hätte ich jetzt gesagt, da keine Field-Variablen vorhanden sind mit denen gearbeitet wird. Wie würde man hier außerdem den LCOM Wert berechnen?

Das ist ja wohl nicht die präziseste Ausführung aber beschreibt die Problematik. Was müsste man wo und wie ergänzen, damit die Antwort vollständig wird?

CryNickSystems
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 119
Registriert: 30. Apr 2015 18:27

Re: ex10 Aufgabe 3

Beitrag von CryNickSystems »

Wieso hat sie denn eine niedrige Kohäsion?

Für mich hat die Klasse eine starke Kohäsion, da das Zusammenspiel zwischen Methoden und Attributen optimal ist (hat ja schließlich keine Attribute).

https://de.wikipedia.org/wiki/Koh%C3%A4 ... ormatik%29

Benutzeravatar
sqrt(2)
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 202
Registriert: 12. Apr 2015 11:35

Re: ex10 Aufgabe 3

Beitrag von sqrt(2) »

Okay, klingt auch plausiebel, aber wenn du 0 Attribute hast und das dann in deine LCOM Formel einsetzt bekommst du nichts vernüftiges raus. Und ich bin mir nicht sicher ob keine Attribute starke Kohäsion impliziert

mProg
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 147
Registriert: 25. Apr 2015 00:10

Re: ex10 Aufgabe 3

Beitrag von mProg »

Ich bin nicht mit der Meinung von CryNickSystems einverstanden. Meiner Meinung hat diese Klasse eine schwache Kohäsion, da es eine komplexe Methode anhand von hoher Kupplung implementiert. Dieser Zitat passt zu dem Fall:
While in principle a module can have perfect cohesion by only consisting of a single, atomic element – having a single function, for example – in practice complex tasks are not expressible by a single, simple element. Thus a single-element module has an element that either is too complicated, in order to accomplish task, or is too narrow, and thus tightly coupled to other modules. Thus cohesion is balanced with both unit complexity and coupling.
(https://en.wikipedia.org/wiki/Cohesion_ ... science%29)
High Coupling und Low Cohesion haben in meisten Fällen eine direkte Relation:
Cohesion is often contrasted with coupling, a different concept. High cohesion often correlates with loose coupling, and vice versa.[citation needed]
(https://en.wikipedia.org/wiki/Cohesion_ ... science%29)
Deshalb denke ich, dass hier eine schwache Kohäsion existiert und deshalb auch der Zusammenhang niedrig ist.

CryNickSystems
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 119
Registriert: 30. Apr 2015 18:27

Re: ex10 Aufgabe 3

Beitrag von CryNickSystems »

Okay, dem zweiten Zitat und deiner Reaktion darauf stimme ich zu bzw. macht das Sinn (die Korrelation Hohe Kohäsion <==> Schwache Kopplung ist wahrscheinlich oft so).

Aaaber: Wieso ist das denn deiner Meinung nach eine "komplexe" Methode?

Die macht doch nix außer den Setup-Dialog anzuzeigen?

Naja, aber damit:
Thus cohesion is balanced with both unit complexity and coupling.
sollte es ja geklärt sein.

robtothein
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 1. Aug 2014 13:33

Re: ex10 Aufgabe 3

Beitrag von robtothein »

Heyho,

würde auch zu niedriger Kohäsion , höhere Kopplung tendieren.

Höhere Kopplung, weil da schon recht viele Abhängigkeiten für nur eine Methode
sind, also ist die Wiederverwendbarkeit der Klasse schwerer.

Niedrige Kohäsion(Zusammenhalt), weil die Methode nicht nur das "page setup" Dialog
anzeigt, sondern auch noch vieles überprüft(Zeile 10-16) was man auslagern könnte
und dann woanders machen könnte (z.B. der der die Methode aufruft)
und zusätzlich
ab Zeile 21 irgendwas gemacht wird, was dort glaube ich nicht hingehört.
Zum Beispiel Zeile 23 eine Klasse erstellen die wir dann vom Service entfernen,
das hat glaube ich nichts bei der Anzeige des pageSetupDialog's zu suchen. :P


So in der Richtung hätte ich es wahrscheinlich begründet. :D
VG,
robtothein

mProg
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 147
Registriert: 25. Apr 2015 00:10

Re: ex10 Aufgabe 3

Beitrag von mProg »

In der Sprechstunde wurde gesagt, dass hier eine hohe Kopplung existiert (was ja auch ersichtlich war, da es ja mit dutzend viele Klassen außerhalb von JDK verknüpft ist) und damit eine niedrige Wiederverwendbarkeit, aber gleichzeitig ist die Kohäsion hoch ist.

robtothein
Mausschubser
Mausschubser
Beiträge: 57
Registriert: 1. Aug 2014 13:33

Re: ex10 Aufgabe 3

Beitrag von robtothein »

Weißt du ungefähr noch wie die Begründung für die hohe Kohäsion war?
VG,
robtothein

mProg
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 147
Registriert: 25. Apr 2015 00:10

Re: ex10 Aufgabe 3

Beitrag von mProg »

Die Begründung war inhaltlich, d.h. die Klasse hat nur eine bestimmte Funktion und die wäre, ein Dialog zu öffnen. Es macht nichts anderes, bis genau das und deshalb ist auch der Zusammenhang hoch.

Antworten

Zurück zu „Archiv“