Software-Metriken. Wolfgang Globke. Seminar Moderne Softwareentwicklung SS 2005. Software-Metriken. Wolfgang Globke. Metriken und Qualitätsmodelle



Ähnliche Dokumente
Verwendung von OO-Metriken zur Vorhersage

Zeichen bei Zahlen entschlüsseln

Klassenentwurf. Wie schreiben wir Klassen, die leicht zu verstehen, wartbar und wiederverwendbar sind? Objektorientierte Programmierung mit Java

Was meinen die Leute eigentlich mit: Grexit?

Software-Metriken. Moderne Softwareentwicklung SS Software-Metriken. Wolfgang Globke. Betreuer: Olaf Seng. 18. Juni 2005

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

SWE12 Übungen Software-Engineering

SCHRITT 1: Öffnen des Bildes und Auswahl der Option»Drucken«im Menü»Datei«...2. SCHRITT 2: Angeben des Papierformat im Dialog»Drucklayout«...

Klausur WS 2006/07 Programmiersprache Java Objektorientierte Programmierung II 15. März 2007

How to do? Projekte - Zeiterfassung

Software Engineering in der Praxis

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Lichtbrechung an Linsen

Grundzüge der Programmierung. Konzepte der objektorientierten Programmierung (oop) OBJEKTE - KLASSEN

Aufgabe 1 Berechne den Gesamtwiderstand dieses einfachen Netzwerkes. Lösung Innerhalb dieser Schaltung sind alle Widerstände in Reihe geschaltet.

Die Post hat eine Umfrage gemacht

5.12. Variable Temperaturgradienten über dem Scheibenzwischenraum

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

Arbeitshilfe "Tipps für Gespräche mit Vorgesetzten und KollegInnen" Was gilt für mich?

Fragebogen: Abschlussbefragung

SOZIALVORSCHRIFTEN IM STRAßENVERKEHR Verordnung (EG) Nr. 561/2006, Richtlinie 2006/22/EG, Verordnung (EU) Nr. 165/2014

Mit dem Tool Stundenverwaltung von Hanno Kniebel erhalten Sie die Möglichkeit zur effizienten Verwaltung von Montagezeiten Ihrer Mitarbeiter.

Comparison of Software Products using Software Engineering Metrics

Dokumentation für Inventur

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Kapitalerhöhung - Verbuchung

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

Erstellen und Bearbeiten von Inhalten (Assets)

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Mediumwechsel - VR-NetWorld Software

Media Teil III. Begriffe, Definitionen, Übungen

1 topologisches Sortieren

Objektorientierter Software-Entwurf Grundlagen 1 1. Analyse Design Implementierung. Frühe Phasen durch Informationssystemanalyse abgedeckt

Welche Unterschiede gibt es zwischen einem CAPAund einem Audiometrie- Test?

Kapiteltests zum Leitprogramm Binäre Suchbäume

Zahlen und das Hüten von Geheimnissen (G. Wiese, 23. April 2009)

Allgemeiner Leitfaden zum Einfügen suchmaschinenoptimierter Texte

Gimp Kurzanleitung. Offizielle Gimp Seite:

Aufgaben zur Flächenberechnung mit der Integralrechung

Kurzanweisung für Google Analytics

Lehrer: Einschreibemethoden

Kurze Anleitung zum Guthaben-Aufladen bei.

Arbeiten mit dem Outlook Add-In

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Objektorientierte Programmierung. Kapitel 12: Interfaces

1. Weniger Steuern zahlen

Informationsblatt Induktionsbeweis

Wichtig ist die Originalsatzung. Nur was in der Originalsatzung steht, gilt. Denn nur die Originalsatzung wurde vom Gericht geprüft.

Nicht über uns ohne uns

GeODin 7 Installationsanleitung

Damit auch Sie den richtigen Weg nehmen können die 8 wichtigsten Punkte, die Sie bei der Beantragung Ihrer Krankenversicherung beachten sollten:

Informatik 2 Labor 2 Programmieren in MATLAB Georg Richter

Die Rückgabe kann über folgende, von uns getestete Programme / Apps vorgenommen werden: Adobe Digital Editions Sony Reader for PC Bluefire Reader

Leitbild. für Jedermensch in leicht verständlicher Sprache

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Die Größe von Flächen vergleichen

Die Beschreibung bezieht sich auf die Version Dreamweaver 4.0. In der Version MX ist die Sitedefinition leicht geändert worden.

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

Erfahrungen mit Hartz IV- Empfängern

Microsoft Update Windows Update

Bedienungsanleitung für den Online-Shop

Internet Explorer Version 6

SEP 114. Design by Contract

In diesem Tutorial lernen Sie, wie Sie einen Termin erfassen und verschiedene Einstellungen zu einem Termin vornehmen können.

Internet online Update (Internet Explorer)

ACDSee 10. ACDSee 10: Fotos gruppieren und schneller durchsuchen. Was ist Gruppieren? Fotos gruppieren. Das Inhaltsverzeichnis zum Gruppieren nutzen

Wichtige Information zur Verwendung von CS-TING Version 9 für Microsoft Word 2000 (und höher)

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

SDD System Design Document

Installation der Eicon Diva PCI Karte unter Windows XP

Anmeldung und Zugang zum Webinar des Deutschen Bibliotheksverbandes e.v. (dbv)

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Auktionen erstellen und verwalten mit dem GV Büro System und der Justiz Auktion

Zimmertypen. Zimmertypen anlegen

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

Step by Step Webserver unter Windows Server von Christian Bartl

Zeit- und Feriensaldoberechnung TimeSafe Leistungserfassung

AUTOMATISCHE -ARCHIVIERUNG. 10/07/28 BMD Systemhaus GmbH, Steyr Vervielfältigung bedarf der ausdrücklichen Genehmigung durch BMD!

Die nachfolgende Anleitung zeigt die Vorgehensweise unter Microsoft Windows Vista.

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Probeklausur Softwareengineering SS 15

BMW ConnectedDrive. connecteddrive. Freude am Fahren BMW CONNECTED DRIVE. NEUERUNGEN FÜR PERSONALISIERTE BMW CONNECTED DRIVE DIENSTE.

Wie importiere ich mehrere Dateien gleichzeitig?

Leichte-Sprache-Bilder

SMS-Versand in MACS Einrichtung des SMS-Versand Verwendung des SMS-Versandes Der SMS-Versand Empfängerfeld Empfänger-Rufnummer Inhalt der SMS

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

ARCO Software - Anleitung zur Umstellung der MWSt

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Code wiederverwenden: Objektorientierte Programmierung (OOP) sinnvoll nutzen Roland Wagner Automatisierungstreff IT & Automation 2015

Checkliste. Erfolgreich Delegieren

Microsoft Office 365 Domainbestätigung

Ein Vorwort, das Sie lesen müssen!

Lineare Gleichungssysteme

BEISPIELKLAUSUR Softwareentwicklung:

LSF-Anleitung für Studierende

Ihr Mandant möchte einen neuen Gesellschafter aufnehmen. In welcher Höhe wäre eine Vergütung inklusive Tantieme steuerrechtlich zulässig?

2.1 Erstellung einer Gutschrift über den vollen Rechnungsbetrag

Transkript:

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