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:
- Smart Code Area With Critique Support
- Augmenting Diff View With External Code Properties
- ViDI v2 (Visual Design Inspector Reborn)
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: <iframe src="https://my.mindnode.com/QFCcyAG48WN4PGsokckiKx52ZQfzdxrAxhEJTEzN/em#16,-115,0" frameborder="0" marginheight="0" marginwidth="0" style="border: 1px solid rgb(204, 204, 204); width: 560px; height: 320px;" onmousewheel=\"">
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
- GitHubcello Configuration Loader
- API Evolution Mining Service
- YAPaCaMo (Yet Another Pharo Changes Model)
- Visualizing Collaboration Networks