Code quality is a very important measure of a developer’s work. To make it inspectable, our team applies a static analyser and quality management platform called SonarQube. Thanks to its features we can find out where our code should be improved and refactored, and also a lot of bugs can be detected before runtime. Although SonarQube provides exact numeric metrics about quality, reviewing and comparing them is not always easy and obvious if we want to spot salient values in huge software systems.
Visualizing the code is a practical way to solve this problem. It also makes the metrics more perspicuous thus much easier to understand. The CodeMetropolis project, which is developed by the University of Szeged, is an open-source visualization tool based on Minecraft. We modified and configured it to serve our demands properly and get a simpler and cleaner view of our projects. Our modification will be contributed to the repository of the project, so it will be easily accessible.
This tool makes SonarQube analysis data tourable as a big metropolis and because of the huge project size it is divided into cities along component borders. A city contains gardens and there are buildings in each garden. Here, using our own mapping a garden means one package, and a floor means one class.
The most important metrics for us to visualize are the number of critical violations and duplications, so these are by far the most emphasized properties of the generated cities. In the metropolis the color of the external walls changes in accordance with the number of violations (within a class) and the color of the windows changes in accordance with the number of duplicated lines. As the value increases their color transforms to yellow, orange and finally red in case of relatively high values.
Test coverage of a package can be seen as the flower ratio of a garden (larger ratio means better coverage). Class complexity is a major metric too which is now represented by the width of a floor. We expect that most violations will take place in relatively complex classes.
As you can see it has become easy to spot messy pieces of code and compare them even in case of huge projects.
We have also created an overview map for the entire project. However, because of the project size another mapping is being used: here a garden represents a project and a building floor represents a package.
As demonstrated above the blocker violations, being by far the most serious issues (red, glowing grass in a garden), are eye-catching and at that point changes are definitely needed in the source. It is easy to locate the problems by checking the package and class name on the signposts.
By using this visualization tool the most important weaknesses in quality are easily noticeable. The metropolis can be generated automatically from time to time and everyone in the team can reach the latest cities of the actual components. Hopefully this visualization will motivate everyone of us to improve, learn and write as clean code as possible.
Written by Krisztian Mozsi
Connect and partners Findwise and Precognox will be in force at WoHIT 2016 - the new HIMSS Europe World of Health IT Conference & Exhibition, taking place on 21–22 November 2016 in Barcelona, Spain.
Hope to see you there at stand 124!
See more information at WoHIT page.
KConnect will also be at HIMSS17, Orlando next February
If you cannot entirely comprehend how these topics are related to each other, you are right, they are not. Simply these were the three mini projects of our latest Hackathon at Precognox.
The Hackathon had been organized to give our collegues a new experience, just to get out of the rut for a day and to learn finding alternative solutions on particular problem types. We were working in teams on three very exciting issues, on a kind of mini projects, each one required a number of different experts from various fields (developers for the frontend and backend to-dos, QAs, NLP experts). The atmosphere was more supportive than competitive, especially that our projects were so different.
• Multimodal emotion analysis of video material, including text and voice
• Building an interactive chatbot app that helps the users to buy a present, posing and answering relevant questions
• Cleansing and visualizing data in the database of the distributed area-based agricultural subsidies from the period between 2010-2015 with the help of Google Maps API
For the multimodal emotion analysis project we needed 2 minute short videos in Hungarian and English with easy-to-parse textual, audio and visual information. Each type of data analysis required a different tool and we chose APIs in general. The identified emotions were added onto the videos as annotations: the female speakers’ emotions popped up in a pink and the males’ in a blue bubble on the screen. For the processing of visual emotions we were using another API. Having the results we've just collected in our pocket we were examining the interconnectedness of the three analysed parts. We assumed that the combination of the three multimodal analitic tools effectively complements each-other's shortcomings and together they can display emotions which would be lost in a type of analysis that finds merely one factor. In our future plans we consider to find out what may the multimodal analysis show in cases of tricky phenomena like lying, gloating, irony or scorn.
The chatbot project went well and the team has pieced together a nice app. For first we decided over the categories of gifts the app would recommend, then we set up the structure of the application. A thesaurus has been built up to back the interface for which we chose a dancing, cheeky-eyed little Disney figure we named Eugene. In the meanwhile the frontend and the backend functions were also developped. Having these done the team tested the app by creating a number of alternate user personas, like an old lady wishing to buy a mug to her grandson, or a young lad planning to go out hiking with his friends, needing some equipment.The whole project was very inspiring and fun to make!
In the agricultural project we attempted to visualize the cleaned data that we obtained from the K-Monitor. The goal of the project was only partly achieved because of the scope of the required data, though it still gave us a good amount of insight and precious experience. We chose to limit the amount of analysed aids and addresses under 1000. The result of visualization was spectacularly better than with the original database content. All in all we can say that the project was a success and provided us with a good knowledge base for tackling such issues in the future.
Our teams and the day's final report:
The participants of the event had accomplished four different projects.
clustering the most popular recipes by ingredients within the ''Receptkereso”, our recipe-finder app
gender classification of Twitter users
analysis of the facebook sites of the teachers' protesting movement and the protesting meetings before the Election Office
supplementing our company's Hungarian GATE plugin with sentiment - and emotion dictionary and with Hungarian language named entity recognition gazetteeres
We can report that the Hackathon day went by in very good spirits, it ended with a tasty pizza and friendly discussion.
A long time ago, in a galaxy far, far away our data analysts were talking about the upcoming new Star Wars movie. One of them has never seen any eposide of the two trilogies before, so they decided to make the movie more accessible to this poor fellow.
The Star Wars universe is full of strange-looking characters. They are talking and beeping a lot, and sometimes it is hard to track down who talked to whom. So we took the movie scripts and started coding hard.