Quality-Aware Tooling

Quality-Aware Tooling

source: https://doi.org/10.24442/boristheses.822 | downloaded: 7.10.2021 Quality-Aware Tooling Yuriy Tymchuk Quality-Aware Tooling Inauguraldissertation der Philosophisch-naturwissenschaftlichen Fakultät der Universität Bern vorgelegt von Yuriy Tymchuk von Ukraine Leiter der Arbeit: Prof. Dr. O. Nierstrasz Institut für Informatik Universität Bern This dissertation can be downloaded from scg.unibe.ch. Copyright ©2017 by Yuriy Tymchuk yuriy.tymch.uk The contents of this book are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license. You are free: to Share — copy and redistribute the material in any medium or format; to Adapt — remix, transform, and build upon the material for any purpose, even commercially. Under the following conditions: Attribution. You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. Share Alike. If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. The full license is available at https://creativecommons.org/licenses/by-sa/4.0/ Attribution–ShareAlike ISBN: 978-0-244-05081-8 First edition, November 2017 Acknow ledgem ents While this dissertation is just one small step for mankind, it is one giant leap for me. I sincerely thank everyone who supported me on this journey. Although it is nearly impossible to mention every individual who contributed to my Ph.D. experience, I will do my best in the following acknowledgments. *** First of all, I want to express my gratitude to Oscar Nierstrasz who gave me an opportunity to work at the Software Composition Group in gorgeous Bern and who saved my doctoral studies. I thank him for his patience and tolerance for my mistakes, proofreading the papers that had to be ready “for yesterday,” and for the guidance on my Ph.D. trail. I will always admire the way Oscar managed to organize the work in our group and keep track of everything possible. I am going to miss the coffee-break puzzles and the rubber chicken. I am grateful to Radu Marinescu for accepting to be on my Ph.D. committee and for reviewing this dissertation. I thank Paolo Favaro for accepting to chair the examination. I was lucky to spend a couple of years surrounded by smart, fun and friendly members of the Software Composition Group. Big thanks to Andrei for inspiring me with his work and his thesis, Jan for discussing exciting ideas (and letting me know that my Google calendar issue will not be fixed), and Boris for inserting fun transitions between my context switches. Thank you, Manuel, for building Randi, supervising Radi, being a great travel companion, and proofreading this dissertation in a turbo-mode. I am grateful to Nevena who is always caring when it comes to important mat- ters, and for mindful discussions especially the ones over a glass of sangria. I thank Claudio for teaching me how to interact with the Switzerland, Leonel for various parenting ideas, and Mohammad for proving that a deadline of 15 minutes is not dead enough. I also i thank Andrea for leaving the git server in an adequate state, Pascal for the fresh ideas that he brought to the group, and Oli for shar- ing his DIY experience during coffee breaks. I want to express my gratitude to Haidar for giving me a master class of applying for apartments in Bern, giving away lots of baby stuff, recommending me for a new job, and always sharing new swiss life hacks. I also want to thank David, Kevin, Lars, and Radi for the work that we did together and their technical assistance. I thank Iris for helping me to get an apartment, organizing friendly events, and solving plenty of my problems, many of which I did not even know about. I thank Bettina for taking care of my ever-changing contract extensions and for helping me to organize the defense. My Ph.D. journey did not start in Bern though. I am grateful to Michele Lanza for inviting me to the sunny Lugano and supervising my doctoral research. I will always remember the strict presentation rehearsals, writing of the best abstracts in the world, and Fantozzi quotes during the coffee breaks. I want to thank the whole Lugano team: Andrea for involuntarily appearing in the fun photos that I took (and for guidance in my research), Luca for teaching me Italian and learning Ukrainian from me, Roberto for sharing the sense of beauty in technology, and Tommaso for being a good friend. I want to especially thank all the Italians with whom I worked for inspiring me to improve my culinary skills. Who knows how often I am going to benefit from my Ph.D. diploma, but I can always eat a tasty pasta or a delicious tiramisu. I would not have gone this path if Stephane Ducasse did not invite me to his research group for an internship. I thank him for always staying in touch, working with other Ukrainian students, teaching in Ukrainian universities and regularly brainstorming on the future projects. I also appreciate the help and guidance of Nicolas Anquetil and Anne Etien. I thank the people from Smalltalk and Pharo communities with whom I tightly interacted during the last few years. I am espe- cially grateful to Tudor Girba, Marcus Denker, Esteban Lorenzano, Clement Bera, Alexandre Bergel, Gustavo Santos, Dale Henrichs, Aliaksei Syrel, Max Leske, Guillermo Polito, Stephan Eggermont, Tim McKinnon and others with whom I programmed, brainstormed, or simply went out for a beer. ii I am grateful to the APPS Faculty of the Ukrainian Catholic University for keeping a part my consciousness in my homeland. I thank Yaroslav Prytula for warmly welcoming me every time I visit Lviv, and for the engaging discussions over an aromatic cup of coffee. I thank Oleksii Molchanovskyi for giving me an opportunity to teach in the master program for data scientists and for sharing new ideas about education. I am grateful to Myroslava Romaniuk who doubtlessly programmed day and night to release a new version of Renraku. I thank Oleksandr Zaytsev who appeared out of nowhere, started to build cool projects, and organized a Ukrainian Smalltalk Users Group in Lviv. I am sincerely grateful for all the aid of that my extended family provided over the course of my Ph.D. studies. Some family members understood me, and some did not. Some of them agreed with me, and the others did not. But they believed in me, supported me, and prayed for me. I am especially grateful to my parents who gave me a fantastic start in this life and raised me stubborn enough to survive the Ph.D. experience. Finally, I want to thank my wife who proofread my papers, reviewed my slides, challenged my ideas, prepared tasty lunches, and said “Everything is going to be good” while hugging me at the end of a long day. I thank you, Natalia, for your unconditional love that made me move forward and create without limits. This dissertation could never happen without you. There is one more person. My daughter joined me during my doctoral studies and immediately entered most of the activities of our family. Sophia, I thank you for falling asleep on my chest, stubbornly proposing edits to this dissertation, and teaching me more and more every single day. You are not going to remember the presentations that I rehearsed in front of you when you will learn to speak, and I have removed all the characters that you typed into my manuscripts. Nevertheless, you have changed me, and there is a part of you in this book as well. Yuriy Tymchuk November 21, 2017 iii To Natalia and Sophia who always support my crazy ideas and continue loving me. Наталі та Софії, які завжди підтримують мої шалені ідеї та продовжують мене любити. v A b s t r a c t Programming is a fascinating activity that can yield results capable of changing people lives by automating daily tasks or even com- pletely reimagining how we perform certain activities. Such a great power comes with a handful of challenges, with software main- tainability being one of them. Maintainability cannot be validated by executing the program but has to be assessed by analyzing the codebase. This tedious task can be also automated by the means of software development. Programs called static analyzers can process source code and try to detect suspicious patterns. While these pro- grams were proven to be useful, there is also an evidence that they are not used in practice. In this dissertation we discuss the concept of quality-aware tool- ing — an approach that seeks a promotion of static analysis by seamlessly integrating it into development tools. We describe our experience of applying quality-aware tooling on a core distribution of a development environment. Our main focus is to provide live quality feedback in the code editor, but we also integrate static anal- ysis into other tools based on our code quality model. We analyzed the attitude of the developers towards the integrated static analy- sis and assessed the impact of the integration on the development ecosystem. As a result 90% of software developers find the live feedback useful, quality rules received an overhaul to better match the con- temporary development practices, and some developers even exper- imented with a custom analysis implementations. We discovered that live feedback helped developers to avoid dangerous mistakes, saved time, and taught valuable concepts.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    206 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us