Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Modellbasierte Analyse von Open Source- Projekten Seminararbeit Gereon Bürvenich Lehrstuhl Software Engineering RWTH Aachen

Ähnliche Präsentationen


Präsentation zum Thema: "Modellbasierte Analyse von Open Source- Projekten Seminararbeit Gereon Bürvenich Lehrstuhl Software Engineering RWTH Aachen"—  Präsentation transkript:

1 Modellbasierte Analyse von Open Source- Projekten Seminararbeit Gereon Bürvenich Lehrstuhl Software Engineering RWTH Aachen http://www.se-rwth.de/

2 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 2 Gliederung Einleitung und Motivation 1. Systementwurf2.Evaluierung und Ergebnisse 3. Zusammenfassung und Ausblick 4.

3 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 3 Einleitung und Motivation  Steigende Nachfrage nach qualitativ hochwertiger Software  Steigende Nachfrage nach Bestimmung der Qualität von Software  Metriken als Maßzahlen  Anwendung der Metriken meist auf Code-Ebene  Auch auf Klassendiagramm-Ebene einsetzbar? Ist auch auf Modell-Ebene eine ausreichende Bewertung der Qualität von Software möglich?

4 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 4 Was ist Qualität?  Im ursprünglichen Wortlaut lediglich eine Eigenschaft  Mittlerweile jedoch Qualität = „gute Qualität“  „Gesamtheit von Eigenschaften und Merkmalen eines Produktes oder einer Tätigkeit, die sich auf die Eignung zur Erfüllung gegebener Erfordernisse beziehen“ (DIN 55350)  Nicht nur Korrektheit  Weitere Eigenschaften wie Wartbarkeit und Effizienz  Muss messbar gemacht werden

5 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 5 Herangehensweise  Nutzung von Open Source-Projekten als Grundlage  Generierung von Klassendiagrammen  Qualitätsanalyse auf Basis der Klassendiagramme Implementierung von Metriken  Statische Analyse des Quellcodes  Vergleich zwischen modellbasierter und statischer Analyse

6 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 6 Metriken  Maßzahlen zur quantitativen Bestimmung von Softwarequalität  Vergleichbar, kurz, präzise  Einfache Metriken Lines of Code (LOC) Number of Children (NOC)  Komplexe Metriken Response for a Class (RFC) Lack of Cohesion in Methods (LCOM)

7 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 7 Auswahl der Projekte  Kriterien für die Auswahl: komplett in Java Open Source Maximalgröße von 50 Klassen aktive Entwicklung und Nutzung  Ausgewählte Projekte: picasso jUnit

8 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 8 MontiCore  Modellierungsframework zur schnellen und effektiven Erstellung von domänen- spezifischen Sprachen (DSL)  Stellt Parser zur Verfügung  Bietet Generatoren zur Code- Generierung aus Modellen  Parser erzeugt einen Abstrakten Syntaxbaum (AST)  Repräsentation des geparsten Programms als Baum

9 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 9 Parsen von Java als AST ast:ASTCompilationUnit importDeclaration:ASTImportDeclaration packageDeclaration:ASTPackageDeclaration name = [„pkg“] :ASTClassDeclaration extendedClass = null implementedInterfaces = null name = „Example“ :ASTMemberDeclarationList :ASTMethodDeclaration name = „getName“ parameters = null returnType:ASTSimpleReferenceType name = [„String“] :ASTFieldDeclaration declaration:ASTVariableDeclaration :ASTVariableDeclarator name = „name“ type:ASTSimpleReferenceType name = „String“ OD :ASTPrimitiveModifier modifier = 11 :ASTPrimitiveModifier modifier = 8 package pkg; public class Example { private String name; public String getName() { return this.name; }

10 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 10 Systementwurf Java-Parser Java- AST Generator CD-Parser CD- AST MetrikenERGEBNIS Open Source- Projekt Java- Code Free- marker- Temp- lates Java- Code Klassen dia- gramm e Klassen dia- gramm unterstützt durch MontiCore

11 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 11 Generierungsprozess junit extensionsrunner extensionsCD. cd runnerCD.cd junitCD.cd junit extensions ActiveTest Suite.java RepeatedTest.java RepeatedTest.java runner BaseTest Runner.java TestRun Listener.java Version.java junit extensions ActiveTest Suite.cd.part RepeatedTest.cd.part RepeatedTest.cd.part runner BaseTest Runner.cd.part TestRun Listener. cd.part Version.cd.part Java-Klassen in Paket-Struktur Klassendiagramm-Fragmente in gleicher Paket-Struktur Klassendiagramme für jedes Paket Vollständiges Klassendiagramm des Projektes

12 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 12 Klassendiagramm (Ausschnitt) package cd; classdiagram MyCD { class Action { Picasso picasso; Request request; java.lang.ref.WeakReference target; boolean skipCache; void error(); void cancel(); //... } class Picasso { static java.lang.String TAG; static android.os.Handler HANDLER; boolean indicatorsEnabled; boolean loggingEnabled; boolean shutdown; public void cancelRequest(android.widget.ImageView view); public void cancelRequest(Target target); //... } association Action->Picasso; association Action->Request; //... }

13 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 13 Klassendiagramm (Ausschnitt) - Editor

14 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 14 Modellbasierte Analyse  Auswahl der geeigneten Metriken Kein Quellcode vorhanden  Depth of Inheritance Tree (DIT)  Number of Children (NOC)  Cohesion among Methods in a Class (CAMC)  Coupling between Object Classes (CBO)  Parsen der Klassendiagramme mit Parser aus MontiCore  AST des Klassendiagramms  Ausführung der Metriken auf AST  Ausgabe der Werte in Datei

15 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 15 Evaluierung  Zunächst statische Analyse der Projekte Softwaremetriken (mithilfe des Eclipse-Plugins Metrics) Kommentare/Tests  Anschließend Generierung der Klassendiagramme  Modellbasierte Analyse der Klassendiagramme mit Softwaremetriken

16 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 16 Statische Code-Analyse – Ergebnis (jUnit) Class name DITNOCLCOMWMC ActiveTestSuite 20010 RepeatedTest 3502 TestDecorator 2304 TestSetup 3004 Assert 10096 AssertionFailedError 4104 ComparisonCompactor 100,5144 ComparisionFailure 500,3334 JUnit4TestAdapter 100,62511 JUnit4TestAdapterCache 3003 … Average 1,8940,5780,17620,684

17 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 17 Modellbasierte Analyse – Ergebnis (jUnit) Class name DITNOCCAMCCBO ActiveTestSuite 200,1953 RepeatedTest 350,4383 TestDecorator 230,54 TestSetup 300,53 Assert 100,2190 AssertionFailedError 210,8333 ComparisonCompactor 100,53 ComparisionFailure 300,6256 JUnit4TestAdapter 100,1345 JUnit4TestAdapterCache 200,53 … Average 1,6320,5780,4173,316

18 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 18 Vergleich Metriken jUnitpicasso statischmodellbasiertstatischmodellbasiert DIT1,8941,6321,7151,629 NOC0,578 0,444 WMC20,684-13,5- LCOM0,176-0,178- CAMC-0,417-0,35 CBO-3,316-3,481

19 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 19 Vergleich  Kommentare und Tests auf Model-Ebene nicht untersucht  Nicht alle Metriken auf Modell-Ebene anwendbar  DIT-Metrik leichte Abweichung, NOC gleich  LCOM und CAMC analoge Ergebnisse  Insgesamt ähnliche Aussagen auf Modell- und Code- Ebene

20 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 20 Zusammenfassung/Ausblick Zusammenfassung  Toolstack Reverse-Engineering von Modellen  Statische Analyse auf Code-Ebene differenzierter Ausblick  Genauerer Vergleich durch weitere Metriken  Vergleich weiterer (größerer) Projekte Dennoch deckende Aussage auf Modell-Ebene

21 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 21 Vielen Dank für Ihre Aufmerksamkeit!

22 Gereon Bürvenich Lehrstuhl für Software Engineering RWTH Aachen Seite 22 Literaturverzeichnis [BBM96]Victor R. Basili, Lionel C. Briand, and Walcélio L. Melo. A validation of object- oriented design metrics as quality indicators. IEEE Trans. Softw. Eng., 22(10):751–761, October 1996. [CK94]S. R. Chidamber and C. F. Kemerer. A metrics suite for object oriented design. IEEE Trans. Softw. Eng., 20(6):476–493, June 1994. [CSC06]Steve Counsell, Stephen Swift, and Jason Crampton. The interpretation and utility of three cohesion metrics for object-oriented design. ACM Trans. Softw. Eng. Methodol., 15(2):123–149, April 2006. [JL07]Horst Lichter Jochen Ludewig. Software Engineering - Grundlagen, Menschen, Prozesse, Techniken, volume 1st Edition. dpunkt, 2007. [McC76]H. Krahn. MontiCore: Agile Entwicklung von domänenspezifischen Sprachen im Software-Engineering. Shaker, 2010. [Rum11]Bernhard Rumpe. Modellierung mit UML, volume 2nd Edition. Springer, 2011. Weitere Quellen können der Seminararbeit entnommen werden.


Herunterladen ppt "Modellbasierte Analyse von Open Source- Projekten Seminararbeit Gereon Bürvenich Lehrstuhl Software Engineering RWTH Aachen"

Ähnliche Präsentationen


Google-Anzeigen