Slide 1

Slide 1 text

Software-Architektur-Meetup München 19.07.2017 Prof. Dr. Stefan Wagner Entwicklerzentrierte Software-Evolution

Slide 2

Slide 2 text

Sie dürfen diesen Vortrag kopieren, teilen und verändern, filmen und fotografieren, bloggen, live-bloggen und twittern unter der Voraussetzung, dass Sie ihn dem Autor zuordnen und die Rechte und Lizenzen der Teile respektieren. basiert auf Vorlagen von @SMEasterbrook und @ethanwhite

Slide 3

Slide 3 text

Software Engineering kümmert sich oft um sehr technische und formale Dinge.

Slide 4

Slide 4 text

Der Mensch hat aber einen großen Einfluss auf den Erfolg im Software Engineering!

Slide 5

Slide 5 text

Glücksgefühl und Persönlichkeit beeinflussen die Leistungsfähigkeit. Graziotin D, Wang X, Abrahamsson P. (2014) Happy software developers solve problems better: psychological measurements in empirical software engineering. PeerJ 2:e289 https://doi.org/10.7717/peerj.289 Karimi, Z., Baraani-Dastjerdi, A., Ghasem-Aghaee, N. Wagner, S. (2016) Links between the personalities, styles and performance in computer programming. Journal of Systems and Software 111. p. 228–241. doi:10.1016/j.jss.2015.09.011

Slide 6

Slide 6 text

„ Der Mensch muss beim Software Engineering im Mittelpunkt stehen!

Slide 7

Slide 7 text

Gekoppelte Änderungen Salutogenesis-basierte statische Analyse Agenda Agenda

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

Screenshot von amazon.de

Slide 10

Slide 10 text

Quelltextdatei A Quelltextdatei B Quelltextdatei C Explizite Abhängigkeit Implizite, versteckte Abhängigkeit Gall, H., Hajek, K., Jazayeri, M. Detection of Logical Coupling Based on Product Release History. In: Proceedings of the International Conference on Software Maintenance (ICSM ’98). IEEE, 1998. Hinweis: Häufige gemeinsame Änderung der Dateien

Slide 11

Slide 11 text

Developer 1 49e350a 13.12.2011 12:08 FileA, FileB, File C Developer 2 521d325 14.12.2011 11:07 FileD, FileE, FileF Developer 1 501d4a5 15.12.2011 17:12 FileA, FileB Developer 2 21408ef 16.12.2011 9:08 FileD, FileE Im Versionsmanagment haben wir Informationen darüber, was geändert wurde. Versions- management- System

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

Frequent Itemset Mining To identify sets of items which occur together frequently in a given database is one of the most basic tasks in data mining Data Mining / Repository Mining FP-Tree-Growth Algorithm Efficient algorithm to detect frequent patterns even in large databases by using the FP-tree data structure, avoids costly generation of a large number of candidate sets and a decomposition of the mining tasks to reduce the search space Han, J., Pei, J., Yin, Y., Mao, R. Mining frequent patterns without candidate generation: A frequent-pattern tree approach. Data Mining and Knowledge Discovery 8(1):52–87, 2004.

Slide 14

Slide 14 text

Richtige Vorhersagen Besonders auf der Ebene von Dateien können gute Vorhersagen gemacht werden: In 90% aller Empfehlungen enthalten die drei oberen vorgeschlagenen Dateien eine korrekte, noch zu ändernde Datei. Aber was bringt es? Aber entwickelt man damit wirklich bessere Software? Zimmermann, T., Zeller, A., Weissgerber, P., Diehl, S. Mining version histories to guide software changes. IEEE Transactions on Software Engineering 31(6):429–445, 2005

Slide 15

Slide 15 text

Experiment-Design Ramadani J, Wagner S. (2016) Are coupled file changes suggestions useful? PeerJ Preprints 4:e2492v1 https://doi.org/ 10.7287/peerj.preprints.2492v1 Experimentgruppe mit Vorschlägen für gekoppelte Änderungen Kontrollgruppe 4 Wartungsaufgaben Vergleich der Korrektheit der Lösung und der benötigten Zeit

Slide 16

Slide 16 text

Korrektheit Mit Vorschlägen Ohne Vorschläge Häufigkeit 0 72 28 10 28 12 16 50 Gelöst Teilweise Nicht gelöst

Slide 17

Slide 17 text

Benötigte Zeit

Slide 18

Slide 18 text

Benötigte Zeit (incl. Ident.)

Slide 19

Slide 19 text

• Mit Vorschlägen zu gekoppelten Änderungen haben die Teilnehmer fast dreimal so häufig eine vollständige Lösung erreicht als ohne. • Im Zeitbedarf kann kein wesentlicher Unterschied festgestellt werden. 19 Zusammenfassung

Slide 20

Slide 20 text

Gekoppelte Änderungen Salutogenesis-basierte statische Analyse Agenda Agenda

Slide 21

Slide 21 text

Werkzeuge zur statischen Analyse werden wenig genutzt.

Slide 22

Slide 22 text

Vielleicht hilft Salutogenese? • Geprägt in den 1980er von Aaron Antonovsky • Ist das Gegenteil von Pathogenese. • Versteht die Gesundheit als Prozess und nicht als Zustand.

Slide 23

Slide 23 text

Krankheit Gesundheit Gesund Sehr Gesund Angeschlagen Kränklich • Gesundheit ist beeinflusst vom Koheränzgefühl • Einflussfaktoren • Verstehbarkeit, Handhabbarkeit, Bedeutsamkeit

Slide 24

Slide 24 text

Ein „gesunder“ Umgang mit der ASA durch Verbesserung der: • Verstehbarkeit • Handhabbarkeit • Bedeutsamkeit der Befunde.

Slide 25

Slide 25 text

No content

Slide 26

Slide 26 text

No content

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

Experiment-Design Ostberg, J. P., Graziotin, D., Wagner, S., & Derntl, B. (2017) Towards the assessment of stress and emotional responses of a salutogenesis-enhanced software tool using psychophysiological measurements. In Proc. 2nd International Workshop on Emotion Awareness in Software Engineering (pp. 22-25). IEEE Press. Experimentgruppe mit HaST Kontrollgruppe nur mit FindBugs Aufgabe: Fehler beheben Fix-Index Stress-Niveau

Slide 30

Slide 30 text

No content

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

• Schlimmste Verschlimmbesserung verhindert, aber wenig Unterschied. • Schwache Indikation, dass Stress reduziert werden kann. 32 Zusammenfassung

Slide 33

Slide 33 text

„ Der Mensch muss beim Software Engineering im Mittelpunkt stehen!

Slide 34

Slide 34 text

Prof. Dr. Stefan Wagner e-mail [email protected] phone +49 (0) 711 685-88455 WWW www.iste.uni-stuttgart.de/se Twitter @prof_wagnerst ORCID 0000-0002-5256-8429 Institut für Softwaretechnologie

Slide 35

Slide 35 text

Pictures Used in this Slide Deck • Software engineering intern by Arkady Arkagorodsky under public domain (https://en.wikipedia.org/wiki/ File:Software_engineering_intern.png) • Source code security plugin by Christiaan Colen under CC BY-SA 2.0 (https://www.flickr.com/photos/ 132889348@N07/20013034943) • Programmer writing code with Unit Tests by Joonspoon under CC BY-SA 4.0 (https:// commons.wikimedia.org/wiki/File:Programmer_writing_code_with_Unit_Tests.jpg) • Happy Programmers by Jesper Ronn-Jensen (https://flic.kr/p/oi9kA) • 18043 under public domain (https://pixabay.com/de/schöne-geschäft-computer-weiblich-15704/) • Rusty Spatula under public domain (http://maxpixel.freegreatpicture.com/Rusty-Spatula-Metal-Rust- Handle-Old-Peeler-1693905) • Happy Tuesday by slworking2 under CC BY-NC-SA 2.0 (https://www.flickr.com/photos/slworking/ 8592067439)