A 5 star system!

My presentation on JFall 2009 went very well, there was a big audience (they barely fit into the room) and there was lot's of interaction going on during the talk. People where asking critical questions and provided good comments.

The topic seemed to make people pretty enthusiastic. Especially the examples of a really complex method, the biggest method and a method with a lot of parameters.

In the presentation I answered the following two questions: 1) what is a 5-star system, and 2) how can I get one? The answer to the first question is: "a system that receives the highest rating in the TUVit Trusted Product Maintainability Certification". I explained what this certificate entails and how the complete procedure works (something which is also summarized over here).

The second question is answered by the following mantra: "make sure that your code is small, simple and specific".

If you cannot make your code small, simple and specific, take a step back and look at the abstract picture (the overall design) of your project. Why does this design disallow you to make your code small, simple and specific?

Can you model stuff differently? Is there a way to abstract over details that clutter your code? How can this type of functionality be grouped in a better way? Try to determine why the design (or your framework) is restricting you and solve that problem. The result will be a more maintainable system.

Naturally, these answers are just the core of the talk, a more complete overview of the presentation is provided by the Atos Application and Development blog (Dutch). For those interested, the slides can be found here.

All and all a nice experience, on to JSpring 2010!?

A 5 star system?

This week I received notice that my proposal for a presentation at the J-Fall 2009 was accepted. So on the 11th of November I will be discussing what a 5-star system is and how to get it. For those of you who cannot wait to find out what it means to get stars for your system can take a quick look over here.

The full abstract of the presentation can be found here (in Dutch). If you want to attend you should register yourself over here.

Hope to see you in Bussum!

I present, you present ....

Last week I was in Canada for the ICSM 2009 (combined with a very relaxing vacation btw) where I got to present my first paper of my PhD. The room was a filled with about 50 attendees and, even though I was a bit nervous, the presentation went pretty well. There where some interesting questions and comments, and even a small discussion that had to be taken off-line (which is now again on-line).

During the rest of the ICSM I talked to various people about the presentation and the paper and it seems that the topic certainly appeals to several people. Which is good to know since I think I will be spending some more time in researching it.

For those of you that are interested in the slides, please take a look at the slides page of the ICSM, or just follow the direct link.

To be honest, these slides are not exactly the ones I used during the presentation. I cheated a little bit by splitting a slide 22 in two slides, just so that you can actual see the contents of a table. In the original version there was an animation that removes the numbers before showing the crosses, but this behavior is not transferred to the pdf-version of the slides. I can tell you from personal experience that it will increase your blood pressure if you notice this when you are giving your presentation.

Anyhow, at least I learned now to check the pdf-version of my slides before I give I a presentation, just in case the laptop on which I made the presentation does not play nicely with the available beamer :)

A first chapter

Yesterday morning at about 5.48 am I received an email with the following message:

We are pleased to inform you that your paper, entitled
Criteria for the Evaluation of Implemented Architectures
has been accepted for publication as a FULL RESEARCH PAPER in the conference proceedings.

The e-mail was send by the ICSM 2009 Research Program Co-Chairs. It also explained that out of the 162 research papers submitted, 35 were accepted as full research papers (21.6% acceptance ratio). A nice beginning of my PhD thesis :)


Software architecture evaluation methods aim at identifying potential
maintainability problems for a given architecture. Several of these
methods exist, which typically prescribe the structure of the
evaluation process. Often left implicit, however, are the concrete
system attributes that need to be studied in order to assess the
maintainability of implemented architectures.

To determine this set of attributes, we have performed an empirical
study on over 40 commercial architectural evaluations conducted during
the past two years as part of a systematic ``Software Risk Assessment''.
We present this study and we explain how the identified attributes can be
projected on various architectural system properties, which provides an
overview of criteria for the evaluation of the maintainability of implemented software architectures.

Solving bad smells

Last week I took some time to checkout the JDeodorant Eclipse plugin. The plugin was introduced to me at CSMR 2009 by Nikolaos Tsantalis. The demo he gave me already showed some potential, and playing around with the plugin confirmed this first impression.

Installing the plugin was easy, I just followed the installation instructions on the website. At first I used the tool on one of our smaller projects to find refactorings for long methods. After some minutes the results showed a long list of refactor-candidates. Unfortunately, this lists also contained many propositions to move, for example, all statements of a method to a new method. Even though it is a theoretically correct proposition it does not really make sense in general.

Since I did not feel like analyzing the complete list I tried a different approach. I first used checkstyle to find potential candidate methods and let JDeodorant analyze these files one at a time. This does not only speed up the process of finding the candidates, it also provides a list that is way easier to handle. Using this approach I found some new ideas for a several smaller refactorings in just a few minutes.

In the end I think that, even though it still has some rough edges, this plugin can be very useful. Anyway, the plugin is definitely put onto my watch list.

SQM and CSMR 2009

Last week, I was in Kaiserslautern to attend the 2009 version of SQM and CSMR. Both the workshop and the main conference were hosted at Fraunhofer IESE, which turned out to be an excellent host.

All of the conferences I have attended up until now lasted only for a day, so I did not really know what to expect of four days of presentations. I was a little bit afraid that I would not be able to pick up any new information on the last day, but everything turned out to be fine. Every day brought at least two interesting presentations, and definitely one interesting conversation about the current research somebody is doing. I have met several interesting people (who might be interested in doing some research together), and picked up quite a few new ideas. Unfortunately, it is too much to write down all at once, but I will try to post updates on this on a more regular basis.

What I found particularly interesting was the fact that several people mentioned the same two things on various occasions. The first one is that PhD students should not start from scratch when they are implementing their ideas. Although some students are using more generic development frameworks (like for example Eclipse), there are still people out there that start everything from scratch. This does tend to take up a lot of time and usually results in tools that "should be publicly available before I finished my thesis, I just want to clean it up a bit first". I am not really sure how this problem can be solved (and neither did the people at the Industry Panel Discussion), but I do hope that my future tools will not suffer the same fate.

The second thing that was repeated a few times is the call for more empirical evidence for the usefulness of ideas and tools. However, the lack of publicly available industrial systems and cost-data makes it hard for the average researcher to provide this evidence. Fortunately, there are ways to overcome this issue. One could, for example, work together with companies that have access to this type of data. Just a matter of sending and e-mail and explain your ideas and needs to the right person I guess... ;)

Migration to the nine-headed monster

After some recent activity on the psat-dev mailinglist I became aware of the (lack of) available builds for php-sat. Even though the development speed is not what I would want it to be (so much fun things to do, so little hours in a day!) I still believe it is important to release early and often.

Fortunately, Eelco Dolstra had some time to migrate php-front, php-sat and php-tools to Hydra, the new Nix-based continuous build system. After some tweaking we now again have access to unstable build for all PSAT-projects. Go Hydra!

[Trivia] generating eclipse project dependencies with maven2

When we migrated to maven2 a few months back we had little problems, accept that we could not figure out how to automatically generate project dependencies for eclipse. Apparently, maven1 has a special tag for this, but this did not make it into maven2.

Recently, (and by that I mean a few weeks back, just didn't bother to post this yet) one of my co-workers found out that you can simple pass the location to your eclipse-workspace to the eclipse:eclipse tag:

mvn eclipse:eclipse -Declipse.workspace=/path/to/your/workspace

and we all lived happily ever after ...