seminar - philipps-universität marburg · 2016-04-22 · s. afshinmansouri, yuanyuanzhang, acm...

24
Seminar Analyse von Softwaresystemen Einführung Gabriele Taentzer Christoph Bockisch

Upload: others

Post on 10-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

SeminarAnalyse von Softwaresystemen

Einführung

Gabriele TaentzerChristoph Bockisch

Page 2: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

2 Seminar "Analyse von Softwaresystemen"

Übersicht

• Organisatorisches• Wie kann man Softwaresysteme analysieren? –

Eine kleine Einführung• Referatsthemen

Page 3: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

3

Organisatorisches

• Umfang: 2 SWS– BSc StPO 2010/MSc StPO 2004: 3 LP; Lehramt: 4 LP – BSc StPO 2004: 5 LP (Proseminar: zusätzliche Leistungen) – Diplom: Hauptstudium (ab 5. Semester)

• Veranstalter:– Gabriele Taentzer: [email protected]– Christoph Bockisch: [email protected]

• Website: www.uni-marburg.de/fb12/swt/

Seminar "Analyse von Softwaresystemen"

Page 4: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

4 Seminar "Analyse von Softwaresystemen"

Organisatorisches

• Themenvergabe– Bis Ende April– 1 Person pro Thema– Individuelle Vorbesprechung

• Blockseminar– am Ende der Vorlesungszeit (1-2 Tage im Juli)

• Studienleistung– Vortrag + schriftl. Ausarbeitung– Aktive Teilnahme an Diskussionen– Anwesenheitspflicht

Page 5: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

5

WIE ANALYSIERT MAN SOFTWARESYSTEME: EINE KLEINE EINFÜHRUNG

Seminar "Analyse von Softwaresystemen"

Page 6: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

6

Softwaresysteme

• System aus kommunizierenden Komponenten, getrieben durch Software

• Verschiedene Softwareartefakte können analysiert werden– Dokumente, die während der Softwareentwicklung erstellt werden

(Z.B. Anforderungsbeschreibungen, Modelle, Programme, Tests, Benutzerhandbuch, Tutorials)

– Generatoren (Z.B. Compiler, Modelltransformationen)– Profile über die Ausführung des Softwaresystems

• Wir konzentrieren uns auf:– Modelle und Modelltransformationen– Programmcode– Ausführungsprofile

Seminar "Analyse von Softwaresystemen"

Page 7: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

7

Drei Verfahren, um abstraktere Informationen zu gewinnen

• Aus Beispielen lernen– Eingabe: eine Menge von Beispielen– Ausgabe: ein Verfahren (Algorithmus)

• Das Systemdesign herausfinden– Eingabe: Programmcode eines existierenden Softwaresystems– Ausgabe: das Design (ohne Implementierungsdetails)

• Gemeinsamkeiten und Unterschiede durch empirische Untersuchungen finden– Eingabe: eine Auswahl von Open-Source-Projekten, Code in

verschiedenen Versionen– Ausgabe: Erkenntnisse über Softwareentwicklung

Seminar "Analyse von Softwaresystemen"

Page 8: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

8

Thema 1: Transformationen aus Beispielen lernen

• Spezielle Transformationssprachen helfen mit speziellen Strukturen umzugehen:– XML: Transformationen mit XSLT– UML-Modelle: Transformationen mit QVT, etc.– Smalltalk-Programme: Transformationen von abstrakten

Syntaxbäumen• Entwickler müssen neue Transformationssprachen nicht

lernen.• Sie geben eine Menge von Beispielen an, anhand derer die

Transformation gelernt wird.

Seminar "Analyse von Softwaresystemen"

Page 9: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

9

Beispiel: Transformation-by-example

Seminar "Analyse von Softwaresystemen"

Schema: Beispiel:

Finde Korrespondenzen

Page 10: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

10

Thema 1: Transformationen aus Beispielen lernen(3 Studierende)

• Aufgabenstellung: – Wie kann man aus Beispielen Transformationen lernen? Was

sind die auftretenden Probleme? – Verschiedene Ausprägungen in XML, Modellen und

Programmen: Was sind Gemeinsamkeiten und Unterschiede?• Literatur: [Var], [RL], [KSBO]

Seminar "Analyse von Softwaresystemen"

Page 11: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

11

Thema 2: Optimierungsprobleme in Software Engineering

Während der Softwareentwicklung treten verschiedene Optimierungsprobleme auf, z.B.:• Die kleinste Menge von Testfällen, die den Code überdecken• Die beste Architektur für ein wartbares Softwaresystem• Die beste Sequenz von Refactoringschritten, um Systemstrukturen

zu verbessernGenereller Ansatz: (hier für optimale Modelltransformationen)

Seminar "Analyse von Softwaresystemen"

Page 12: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

12

Thema 2: Optimierungsprobleme in Software Engineering (2 Studierende)

• Aufgabenstellung:– Was ist Search-based Software Engineering (SBSE)? Auf

welche Probleme kann SBSE angewandt werden? Was sind noch offene Probleme?

– Konkrete Beispiele: die beste Modelltransformation aus gegebenen Beispielen ableiten, etc.

• Literatur:– Einführung ins Thema [Har]– Trends [HMZ]– Search-based model transformation [KSBO]

Seminar "Analyse von Softwaresystemen"

Page 13: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

13

Thema 3: Empirische Untersuchungen von Open Source Projekten

• Korreliert die Anzahl gemeinsamer Änderung mehrerer Klassen mit der Anzahl an berichteten Fehlern?

• Wenn ja, korreliert sie mehr mit der Anzahl schwerer oder leichter Fehler?

Seminar "Analyse von Softwaresystemen"

Page 14: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

14

Thema 3: Empirische Untersuchungen von Open Source Projekten (3 Studierende)

• Aufgabenstellung:– Was ist empirisches Software Engineering? Wie führt man

empirische Untersuchungen (richtig) durch? Was sind Probleme?

– Anwendungen: Wie sieht eine konkrete Untersuchung aus? Z.B. die Korrelation von Änderungen und Fehlern. Was ist hier gut und was nicht so gut gelungen?

• Literatur:– Empirische Untersuchungen in Software Engineering:

Einführung und offene Probleme [ESSD] [PPV]– Anwendung: Korrelation von Änderungen und Fehlern [ALR]

Seminar "Analyse von Softwaresystemen"

Page 15: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

15

Thema 4: Lernen von endlichen Automaten

• Beispiel: Beschreibung des Energieverhaltens von Softwaresystemen

• Beschreibungsformalismus: endliche Automaten (FSM)

Seminar "Analyse von Softwaresystemen"

Page 16: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

16

Thema 4: Example - Active Learning

Counterexample-Guided Abstraction Refinement (CEGAR)

Seminar "Analyse von Softwaresystemen"

Model check (initial) FSM

Simulate counterexample

Spurious counterexample

Automatically refine FSM

Success final FSM

Real counterexample key properties or implementation

wrong

Page 17: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

17

Thema 4: Aufgabenstellung (2 Studierende)

• Übersicht über Verfahren zum Lernen von endlichen Automaten zur Beschreibung des Systemverhaltens basierend auf Ausführungsprofilen.

• Mögliche Schwerpunkte/Vergleiche– Aspekt des Systemverhaltens/Profils (Energie, Zeit, Speicher,

etc.)– Aktives/passives Lernen– Deterministische/probabilistische Automaten

• Literatur: [PHZBW][BMBBAK]

Seminar "Analyse von Softwaresystemen"

Page 18: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

18

Thema 5: Reverse Engineering von Design Patterns

• Ziele von Design Patterns– Erweiterbarkeit– Trade-offs und Varianten bekannt– Einfache Dokumentation der Intention hinter dem Design

• Konventionen beim Anwenden von Design Patterns– Erlauben das effiziente Erkennen der Patterns

• Problem: Oft werden Konventionen nicht angewandt dadurch geht der Dokumentationscharakter verloren

Seminar Analyse von Softwaresystemen

Page 19: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

19

Thema 5: Reverse Engineering von Design Patterns (4 Studierende)

• Aufgabenstellung:– Überblick über Verfahren zum Modellieren und Erkennen von

Design Patterns• Literatur: [BF]

Seminar "Analyse von Softwaresystemen"

Page 20: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

20

Thema 6: Code Recommender

• Moderne IDEs schlagen Code-Vervollständigungen vor– Alle korrekten Möglichkeiten– Basierend auf statischem Kontext

• Code Recommender gewichten Vorschläge basiert auf erlerntem Programmierer-Verhalten

Seminar "Analyse von Softwaresystemen"

Page 21: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

21

Thema 6: Code Recommender

• Analyse von Client Code für API

• Erlernen von Mustern

Seminar "Analyse von Softwaresystemen"

Page 22: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

22

Thema 6: Code Recommender (4 Studierende)

• Aufgabenstellung– Übersicht über Lernalgorithmen in Code Recommendern– Vergleich von berücksichtigtem Kontext

z.B. Kontrollfluss, Datenfluss• Literatur: [BMM]

Seminar "Analyse von Softwaresystemen"

Page 23: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

23

Literatur

• [KSBO] Search-based model transformation by example, Marouane Kessentini, Houari Sahraoui, Mounir Boukadoum, Omar Ben Omar, Softw Syst Model (2012) 11:209–226

• [Var] Model Transformation By Example, Daniel Varro, MoDELS 2006, Vol. 4199 LNCS, Springer• [RL] Example-based Program Transformation, Romain Robbes and Michele Lanza, MoDELS

2008, Vol. 5301 LNCS, Springer• [Har] The Current State and Future of Search Based Software Engineering, Mark Harman, Future

of Software Engineering (FOSE'07), IEEE Comp. Society• [HMZ] Search Based Software Engineering: Trends, Techniques and Applications, Mark Harman,

S. Afshin Mansouri, Yuanyuan Zhang, ACM Computing Surveys, Vol. 45 No 11, 2012• [ALR] On the Relationship Between Change Coupling and Software Defects, Marco D’Ambros,

Michele Lanza, Romain Robbes, 20th Working Conference on Reverse Engineering (WCRE) 2009, IEEE Comp. Society

• [ESSD] Selecting Empirical Methods for Software Engineering Research, Steve Easterbrook, Janice Singer, Margaret-Anne Storey, Daniela Damian, Guide to Advanced Empirical Software Engineering, Springer, 2008

• [PPV] Empirical Studies of Software Engineering: A Roadmap, Dewayne E. Perry, Adam A. Porter, Lawrence G. Votta, Proceedings of the Conference on The Future of Software Engineering, ACM, 2000

Seminar "Analyse von Softwaresystemen"

Page 24: Seminar - Philipps-Universität Marburg · 2016-04-22 · S. AfshinMansouri, YuanyuanZhang, ACM Computing Surveys, Vol. 45 No 11, 2012 • [ALR] On the Relationship Between Change

24

Literatur

• [PHZBW] Abhinav Pathak, Y. Charlie Hu, Ming Zhang, Paramvir Bahl, and Yi-Min Wang. 2011. Fine-grained power modeling for smartphones using system call tracing. In Proceedings of thesixth conference on Computer systems (EuroSys '11). ACM

• [BMBBAK] S. te Brinke, S. Malakuti, C. Bockisch, L. Bergmans, M. Akşit, S. Katz. A Tool-Supported Approach for Modular Design of Energy-Aware Software. In SAC, ACM, 2014

• [BF] Zsolt Balanyi and Rudolf Ferenc. 2003. Mining Design Patterns from C++ Source Code. In Proceedings of the International Conference on Software Maintenance (ICSM '03). IEEE Computer Society

• [BMM] Marcel Bruch, Martin Monperrus, and Mira Mezini. 2009. Learning from examples toimprove code completion systems. In Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations ofsoftware engineering (ESEC/FSE '09). ACM,

Seminar "Analyse von Softwaresystemen"