Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Entwicklerzentrierte Software-Evolution

Entwicklerzentrierte Software-Evolution

Die Forschung in der Informatik und Softwaretechnik ist oft sehr formal und technisch. Diese Arbeiten haben ihren Platz, aber aus praktischer Sicht sollte im Mittelpunkt eigentlich immer der Mensch stehen. Ein wichtiges Forschungsgebiet der Softwaretechnik ist die Software-Evolution, also die Weiterentwicklung bereits bestehender, vielleicht sehr großer Systeme. Hier sollte also der Entwickler oder die Entwicklerin im Zentrum stehen, also möglichst gut unterstützt werden. In diesem Vortrag stelle ich zwei Beispiele aus meinem Lehrstuhl vor, die dazu einen Beitrag leisten. Die eine Arbeit untersucht Methoden zur Empfehlung von gekoppelten Änderungen. Also das System schlägt vor: „Wer die Datei A geändert hat, hat auch oft die Datei B geändert.“ Wir haben hier zum Teil neue Methoden entwickelt und diese empirisch untersucht. Dabei hat sich gezeigt, dass Studierende mit dieser Unterstützung Wartungsaufgaben korrekter durchführen können als ohne. Die zweite Arbeit beschäftigt sich mit der Anwendung von statischer Analyse zum Auffinden typischer Fehler. Die existierenden Werkzeuge sind hier bereits sehr gut, werden aber nicht angewendet. Wir haben uns hier mit Hilfe der psychologischen Theorie der Salutogenese genähert und daraus eine neue Oberfläche für das Java-Werkzeug FindBugs abgeleitet. Im Experiment hat sich gezeigt, dass mit dieser neuen Oberfläche der Stress bei Studierenden während des Behebens von Fehlern in unbekanntem Code reduziert werden kann. Insgesamt zeigt sich also, dass Software-Evolution durch eine gezielte Unterstützung der beteiligten Menschen einfacher und besser gemacht werden kann.

Stefan Wagner

July 19, 2017
Tweet

More Decks by Stefan Wagner

Other Decks in Programming

Transcript

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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.
  6. 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
  7. 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
  8. Korrektheit Mit Vorschlägen Ohne Vorschläge Häufigkeit 0 72 28 10

    28 12 16 50 Gelöst Teilweise Nicht gelöst
  9. • 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
  10. 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.
  11. Krankheit Gesundheit Gesund Sehr Gesund Angeschlagen Kränklich • Gesundheit ist

    beeinflusst vom Koheränzgefühl • Einflussfaktoren • Verstehbarkeit, Handhabbarkeit, Bedeutsamkeit
  12. Ein „gesunder“ Umgang mit der ASA durch Verbesserung der: •

    Verstehbarkeit • Handhabbarkeit • Bedeutsamkeit der Befunde.
  13. 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
  14. 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
  15. 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)