Software- und smodelle Software- Klassische Objektorientierte Seminar Moderne Softwareentwicklung SS 2005
Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte 3
Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte 3
Software- und smodelle Wir betrachten hier die innere von Software: Verständlichkeit Wiederverwendbarkeit nicht: Funktionalität, Produktivität... Aufgaben der ssicherung: sziele ermitteln damit smerkmale bestimmen Teile des Systems auf smerkmale prüfen Klassische Objektorientierte
Das FCM-Modell Software- und smodelle smodelle machen greifbar. Modell (kurz: FCM) Relevante smerkmale (factors) herausarbeiten Aufteilen in messbare Teilmerkmale (criteria) sind Funktionen, die Eigenschaften eines Programmelementes numerische Werte zuweisen und so Informationen über Teilmerkmale liefern Klassische Objektorientierte
FCM-Modell schematisch Software- und smodelle Factor Maintainability Criteria Analyzability Changeability Stability Testability Metrics WMC NBC DepMeth FanIn FanOut COMF Encap Usable Special Autonom NOC COBC CDUsers Klassische Objektorientierte Testab CDUsed
Eigenschaften von Software- und smodelle Eine Metrik misst eine Eigenschaft von Programmelementen Intuitives Verständnis der Eigenschaft erforderlich empirische Ordnung zum Vergleich zweier Programmelemente Darstellungsbedingung: Metrik soll diese empirische Ordnung wiedergeben Validierung: experimentelle Überprüfung, ob die Darstellungsbedingung erfüllt ist Klassische Objektorientierte
Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte 3
Die Lines Of Code-Metrik Software- und smodelle Annahme: Unübersichtlichkeit des Codes steigt mit seiner Länge. Die Lines of Code-Metrik (kurz: LOC) zählt die Quellcodezeilen eines Programms. Probleme: Annahme vereinfacht stark Kommentarzeilen mitzählen? Code in verschiedenen Sprachen nicht vergleichbar Klassische Objektorientierte
Die McCabe-Metrik Software- und smodelle Die McCabe-Metrik soll die strukturelle Komplexität eines Programms messen. Aus dem Kontrollflussgraphen G des Programms wird die zyklomatische Zahl berechnet: zyk(g) = #Kanten #Knoten + 2 #Programmelemente Klassische Objektorientierte
Die McCabe-Metrik Software- Wenn das Programm nur aus einem Teil besteht: zyk(g) = #Verzweigungen + 1 und smodelle Klassische Schleife Auswahl Objektorientierte zyk(schleife) = 1 + 1 = 2 zyk(auswahl) = 1 + 1 = 2
Die McCabe-Metrik Software- und smodelle Die McCabe-Metrik ist ein leicht zu berechnendes Komplexitätsmaß. Probleme: Komplexität wird auf eine einzige Zahl reduziert Jede Verzweigung im Quellcode wird gleich bewertet Klassische Objektorientierte
Neue für OOP Software- und smodelle Klassische entspringen einer funktionsorientierten Sichtweise der Programmierung. Bei OOP kommen neue Freiheitsgrade hinzu, die die klassischen nicht erfassen können. Daher wurden viele für OO-Systeme vorgeschlagen. Meistens sind dies einfache Zählmetriken, die in Kombination wirkungsvoll sind. Klassische Objektorientierte
Kopplung Die Kopplung beschreibt die Verbundenheit von Klassen oder Paketen.Klasse1 Klasse3 Klasse2 Kopplung Software- und smodelle Klassische Objektorientierte
Kopplung Software- und smodelle starke Kopplung entspricht starken Abhängigkeiten Wiederverwendung erschwert niedrige Kopplung wünschenswert : Coupling Between Objects = Anzahl der Klassen, die von einer bestimmten Klasse benutzt werden Number Of Services = Anzahl der Methoden, die von einer bestimmten Klasse aufgerufen werden Klassische Objektorientierte
Kohäsion Klasse1 Klasse3 Kohäsion ist der Grad an Verknüpfung zwischen den einzelnen Teilen einer Klasse (oder eines Paketes). Klasse2 Kohäsion Software- und smodelle Klassische Objektorientierte
Kohäsion Software- niedrige Kohäsion lässt darauf schließen, dass in einer Klasse mehrere Funktionalitäten implementiert wurden erschwert Verständnis und Wiederverwendbarkeit hohe Kohäsion wünschenswert : Lack Of Cohesion in Methods = Differenz aus Anzahl der Methodenpaare, die gemeinsame Variable verwenden, und Anzahl derjenigen, die das nicht tun Tight Class Cohesion = relative Anzahl der Methoden in einer Klasse, die mindestens eine gemeinsame Variable verwenden und smodelle Klassische Objektorientierte
Vererbung Software- und smodelle Annahme: Gut strukturierte Vererbungshierarchie ist ein Wald von Vererbungsbäumen, keine lange Kette. Denn eine Klasse weit unten erbt viel Funktionalität von ihren Vorgängern größere Fehlerwahrscheinlichkeit : Depth Of Inheritance = Anzahl der Oberklassen einer bestimmten Klasse Number Of Descendants = Anzahl der Klassen, die eine bestimmte Klasse als Oberklasse haben Klassische Objektorientierte
Größe und strukturelle Komplexität Software- für Größe und strukturelle Komplexität machen Klassen ausfindig, die eine wichtige Rolle im Entwurf spielen, aber auch Klassen von übermäßiger Größe oder Komplexität. : Weighted Methods per Class misst Komplexität einer Klasse mit n Methoden: WMC = n j=1 κ j und smodelle Klassische Objektorientierte κ j ist Komplexitätsmaß für Methoden
Gliederung Software- und smodelle 1 und smodelle Klassische Objektorientierte 2 Klassische Objektorientierte 3
Entwurfsprobleme Software- und smodelle Ein Entwurfsproblem ist eine strukturelle Eigenschaft eines Programmelementes, die abweicht von gewissen Kriterien, die eine Regel für den guten Entwurf charakterisieren. Klassische Objektorientierte
Strategien zur Erkennung von Problemen Software- und smodelle Einzelne haben nur begrenzte Aussagekraft. Geeignete Kombination von ist notwendig, um Entwurfsprobleme aufzudecken. Klassische Objektorientierte
Strategien zur Erkennung von Problemen Software- und smodelle Eine Erkennungsstrategie für ein konkretes Entwurfsproblem beinhaltet einen Satz von, die charakteristische Eigenschaften des Problems vermessen für jede Metrik: das Herausfiltern der Programmelemente, die auffällige Werte aufweisen aus diesen Programmelementen Auswahl derjenigen, die das Entwurfsproblem haben Klassische Objektorientierte
Ordne den smerkmalen anstelle von Teilmerkmalen zu. Factor Strategy Metric Q-Merkmal 1 Q-Merkmal 2. Q-Merkmal n s 1 s 2. s k m 1 m 2. Software- und smodelle Klassische Objektorientierte m l Vorteil gegenüber FCM-Modell: smängel können Entwurfsproblemem zugeordnet werden, Verbesserungsansätze klar.
Software- und smodelle ermöglichen die quantitative Beschreibung von subjektiven sbegriffen. Es gibt viele für viele verschiedene Messziele. Bei geeigneter Kombination und Interpretation können sie ein sehr mächtiges Hilfsmittel der ssicherung sein. Klassische Objektorientierte