Yuriy Tymchuk

I am jack of IT trades, Pharo evangelist, and storyteller. I started my PhD research in the REVEAL group in the University of Lugano. Now I’m continuing it in Software Composition Group in the University of Bern. My research topic is about software quality. More specifically: how do you define quality rules and communicate detected critics with a developer? A big motivation behind my projects is to find a better way to develop software. Many tools and approaches that we use nowadays were invented in the previous century and there has to be a better way to solve the problems. For more information check my website or curriculum vitae

Research and Related Projects

Software evolution is a complicated process that involves changes capable of breaking requirements and corrupting code quality. However many of these issues can be automatically detected by various analyzers that continuously monitor the software system. Only recently researchers and developers started to agree that in order to be truly useful the analysis has to be tailored for each individual system. This in turn requires plenty of work to be done, as one has to create a complete stack starting from an analysis engine, and ending with a reporting interface or plugins for existing development tools.

Our solution is the Renraku meta-model which defines a communication protocol between the analysis engines and tools that want to display the results. The goal we pursue is to forge an agile ecosystem where the need to integrate a new analysis will be not turned down by a high cost. I invite you to watch the recent presentation that will guide you over the features of Renraku.


There are six branches of Renraku project that can be followed by bachelor or master projects:

Tools need to be updated to make use of Renraku model. At the moment the main editor and a few small browsers embed the Renraku information. But there are more that can still benefit: debugger, diff browser, ci-server. Related projects:

External Properties can be generated by other engines and transferred to the tools alongside with critiques. The possible candidates are related issues from the tracker or code coverage data. Related projects:

Object Critiques can cary an important information about objects in the same way they do for classes and methods. Interesting candidates are dependency configuration objects (that are misconfigured), or exception objects that can predict what was the issue and how to solve it.

User-Friendliness is an important of Renraku, as critiques have no value if users cannot understand them, or cannot work with them efficiently. Some ways to improve this aspect include aggregation and prioritization of the critiques, or to re-validate code after and auto-fix, and suggest another solution if the previous on was not good.

Developer-Friendliness may be even more important as it’s "user-" counterpart, as we rely on developers to create dedicated rules for a software system. We investigate the tools that can aid developers to create new rules efficiently.

Usage Analysis is an important task to perform in the end of the day to ensure that everything that we’ve built is indeed useful. So far we analyzed the feedback developers gave, and the changes to rules that they’ve made. Still there are many questions to be answered such as: "Do developers really pay attention to the critiques in their everyday work?" or "Can we deduce a set of useful rules per-developer?".

The following mind-map tries to outline the main concerns of Renraku:

Other Seminar, Bachelor, and Master Project Proposals

Most of the following projects can be scaled from seminar project to a master thesis. But in the end these are all guidelines, if you are interested we should talk in person and see what suits you better



  1. Teseo Schneider, Yuriy Tymchuk, Ronie Salgado, and Alexandre Bergel. CuboidMatrix: Exploring Dynamic Structural Connections in Software Components using Space-Time Cube. In VISSOFT'16: Proceedings of the 4th IEEE Working Conference on Software Visualization, IEEE, 2016. To Appear. PDF 
  2. T. Schneider, Y. Tymchuk, R. Salgado, and A. Bergel. CuboidMatrix: Exploring Dynamic Structural Connections in Software Components Using Space-Time Cube. In 2016 IEEE Working Conference on Software Visualization (VISSOFT), p. 116-125, October 2016. DOI 
  3. Yuriy Tymchuk, Leonel Merino, Mohammad Ghafari, and Oscar Nierstrasz. Walls, Pillars and Beams: A 3D Decomposition of Quality Anomalies. In VISSOFT'16: Proceedings of the 4th IEEE Working Conference on Software Visualization, IEEE, 2016. To Appear. PDF 
  4. Yuriy Tymchuk, Mohammad Ghafari, and Oscar Nierstrasz. When QualityAssistant Meets Pharo: Enforced Code Critiques Motivate More Valuable Rules. In IWST '16: Proceedings of International Workshop on Smalltalk Technologies, p. 5:1—5:6, 2016. DOI PDF 


  1. Yuriy Tymchuk, Andrea Mocci, and Michele Lanza. Code Review: Veni, ViDI, Vici. In SANER'15: Proceedings of the 22rd IEEE International Conference on Software Analysis, Evolution, and Reengineering, p. 151—160, IEEE, March 2015. DOI PDF 
  2. Yuriy Tymchuk, Andrea Mocci, and Michele Lanza. ViDI: The Visual Design Inspector. In ICSE'15: Proceedings of the 37th International Conference on Software Engineering, Tool Demonstration, 2 p. 653—656, IEEE, May 2015. DOI PDF 
  3. Yuriy Tymchuk. Treating software quality as a first-class entity. In ICSME'15: Proceedings of the 31st International Conference on Software Maintenance and Evolution, Doctoral Symposium, 2 p. 871—874, IEEE, 2015. DOI PDF 
  4. Yuriy Tymchuk. What if Clippy Would Criticize Your Code?. In BENEVOL'15: Proceedings of the 14th edition of the Belgian-Netherlands software evoLution seminar, December 2015. PDF 


  1. Yuriy Tymchuk, Andrea Mocci, and Michele Lanza. Collaboration in open-source projects: myth or reality?. In MSR'14: Proceedings of the 11th Working Conference on Mining Software Repositories, p. 304—307, ACM, May 2014. DOI PDF 


  1. Yuriy Tymchuk, Benjamin Arezki, Anne Etien, Nicolas Anquetil, and Stéphane Ducasse. Generic Name Resolution with Metamodels. In BENEVOL'13: Proceedings of the 12th edition of the Belgian-Netherlands software evoLution seminar, December 2013. PDF 

Last changed by yt on 15 November 2016