Benutzer:Hauskatze/LCOM

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

LCOM (lack of cohesion in methods) ist eine Softwaremetrik und ein Maß für die Kohäsion (den Zusammenhalt) von Methoden in einer Klasse.

Zur Messung von Softwareprodukten werden sogenannte Software-Metriken verwendet, die unterschiedliche Eigenschaften von Softwareprodukten und -prozessen quantifizieren. Eine objektorientierte Metrik berücksichtigt bei der Messung von Software die Zusammenfassung von Datenstrukturen und der darauf anwendbaren Methoden zu einem Objekt, dessen Beziehungen zu anderen Objekten sowie die generellen Strukturmerkmale objektorientierter Programmierung.

Die Metrik nach Lack of Cohesion in Methods (LCOM) ist ein Maß für die Kohäsion - d.h. den Zusammenhalt - von Methoden in der betrachteten Klasse.

LCOM-Definition: LCOM ist gleich der Paare von Methoden ohne gm. Instv. Abzüglich der Paare von Methoden mit gm. Instv. gm. Instv. ist die gemeinsame Instanzvariable.

Wichtig bei dieser Methode ist es, darauf zu achten, dass jeweils Paare von Methoden betrachtet werden. Da ein negativer Wert von LCOM unsinnig ist, wird LCOM=0 gesetzt, wenn die Subtraktion einen negativen Wert ergibt.

Klasse mit Methoden und Instanzvariablen Klasse mit Methoden und Instanzvariablen lexikon, kompendium, computer, it, elektronik

Gemäß anliegender Darstellung ist eine Klasse A mit 3 Methoden m1(), m2() und m3() gegeben, die jeweils auf bestimmten Instanzvariablen operieren.

Beispiel Klasse mit Methoden und Instanz-variablen:

Paare: m1/m3, m1/m2, m2/m3, mit m1/m2 als gemeinsame Instanzvariable c.

Paare von Methoden ohne gm. Instv. = 1+0+1, Paare von Methoden mit gm. Instv. = 0+1+0

LCOM(A) = 2-1 = 1.

Anwendung: Ansatz zur Überprüfung der Kapselung einer Klasse. Dies aus der Überlegung heraus, dass ein hoher Wert von LCOM auf eine schlechte Kapselung hindeutet, da offensichtlich viele Methoden auf disjunkten Attributmengen operieren.

Kritik/Bewertung

[Bearbeiten | Quelltext bearbeiten]
  • Kopplung wird nicht transitiv betrachtet -> Problematisch bei gettern und settern
  • Besser: LCOM+

Chidamber, S.R., Kemerer, C.F.: A metrics suite for object oriented design. In IEEE Transactions on Software Engineering (Volume:20 , Issue: 6 ). S. 476 - 493.


Softwaremetrik