Published 30 October 2008

Focus on research: software engineer Paul Klint

Fotograaf: Bob Bronshoff

From lampposts and mobile telephones to digital cameras and ticket machines at the train station: software is everywhere. Professor of Software Engineering Paul Klint investigates ways to link different software systems together, creates new computer languages and sets newly acquired knowledge to work. He recently received the Netherlands ICT Research and Innovation Authority Award for his work and his company has been nominated for the prestigious Koning Willem I Prize.  

Software engineering stands central to Klint's research. He is a computer expert who designs and develops computer programmes. "If you printed all the software there is in ten-point font, you could wrap the earth in it ten times over," says Klint. "Because there is so much software, it is becoming ever more important to understand existing software and systematically improve it where we can. Our research is about making tools to help with that process."

Vacuum cleaner academy

"Information science is not sexy," says Paul Klint, summarising popular opinion. He goes on to compare a PC to a vacuum cleaner - both are appliances that people can manage quite well. "Software's runaway success has made the PC such a consumer item that people can't imagine that there is still a myriad of difficult issues to study. After all, there's no such thing as a vacuum cleaner academy, is there?" Klint believes that IT lacks the popular appeal that a lot of other fields have. "With astronomy or biology it's easier to understand that there are unanswered questions. Information science is a phenomenal success. It has an incredible influence on both everyday life and science, yet not many people recognise it as a science. Their only concern is whether their PC works."

One of the most well-known software analysis challenges was the quest to fight the millennium bug, based on the assumption that date-dependent computer processes would not be able to transition from 99 to 00. "We went looking for pieces in the code that had something to do with the date. There are plenty of places to start, for instance by looking for variables with the word "year" or "date". If you then run the information through the programme, you can see which parts are affected and that's where you adjust the code. Huge numbers of people worked day and night on every large system there was. After the fact, people said it turned out better than they had expected, but that is down to years of hard work."

Software engineers are also applying themselves to other difficult problems. The parallelising problem, for example: writing codes in such a way that they can simultaneously be run on different processors. This is an important issue, given that increasingly more computers have several cores or arithmetic units which, provided the software is good, can calculate independently of each other and are therefore faster. "Just about everyone has a dual core on their desk, but one of the cores sits there doing nothing while the other works. If we're not careful, in a couple of years we'll have PCs with 80 cores, of which 79 sit there doing nothing."

According to Klint, the greatest challenge is analysing software in such a way as to reveal which sections can be executed simultaneously. "Games are the most capacity-intensive applications there are, but most game codes are written for use on just one core. This needs to be addressed so that things can be entirely parallelised. The industry has been working on the problem for 25 years now, it's probably the most difficult issue they're facing and the significance of the task is growing ever larger."

The type of technology that Klint is developing can be applied to more than just parallelisation issues.  It can also be used to analyse complicated security systems, which is of importance to public transport chipcard systems, and for banks. "The analysis outlines the exact paths the information takes through the programme so we can then make sure it doesn't flow to places where it can be seen by unauthorised people."

Largest Master’s programme

Klint leads the Software Engineering programme at the UvA. This is the largest Master's programme in the faculty with 50 students a year. An increasing number of participants in the Master's programme are part-time students that work four days a week and study one day a week. "I want to train as many people as possible to be better at creating software." As of next year, Klint will start a new programme: a two-year Master, of which one year consists of physics-related subjects and one year of software engineering. With this programme he hopes to satisfy demand in the world of physics research and supply researchers that are strong in designing large software systems.

Klint himself started his academic career with physics because he knew by the time he was twelve years old that was the direction he wanted to take. However, he found the practicals very unfulfilling so he went on to complete his Bachelor in Mathematics. In his Master's programme, he took as many computer science subjects as possible and effectively he obtained his doctoral degree from Eindhoven in information science, even though that did not exist as a subject at the time. "What's so wonderful about software is that the distance between what you think up and its realisation is smaller than anywhere else. There is no complicated equipment between what you imagine and the experiment. I was fascinated by that, and still am, actually."

Fotograaf: Bob Bronshoff

Computer language

Different applications require their own programming languages. There are different computer languages for scientific calculations, for business applications, architectural software, for operating electronic equipment and so on. "People who work in a specialised field develop a specialised language to describe what they do. We have one word for snow, but the Inuit have ten to describe different types of snow and that's how it is with programming too. We create special purpose programming languages making it much easier to describe the problem you want to solve." For his PhD Klint developed a language to work with sets of words in a text. Since then he has created languages to describe grammar and to transform software. He is currently working on a new language to describe refactoring.

Refactoring is the art of restructuring or further simplifying a programme. This includes relatively simple tasks such as consistently finding and replacing a procedure name, but also large-scale code restructuring. "A newly designed software system has cohesion and a good structure, but is subject to the law of entropy. The chaos in the system increases, and constant tinkering with the code gradually causes the structure and the comprehensibility to disintegrate. The ideal would be to restructure the system every time you change something so as to keep its structure visible: a sort of micro-renovation of the code, if you will. The idea is that if you make a tool for this purpose that is easy to apply, programmers will make the effort to use it, thereby better maintaining the code's structure and quality."

Klint loves functional design, and not just in software. As an example, he points to the door to his office: it has a highly visible hinge, you can see from which side it opens. There are no "Push here" stickers on it. "If the thing needs an instructional sticker, something has gone wrong - it should be obvious at a glance how it works, and that's how it should be with software too." Blackboard gives Klint the horrors. "You have to click 17 times just to execute one task." He believes design is the determining factor in a product's success. "Take a company like Apple: design is high on their list of priorities. There's not one button too many on the iPod, it's beautiful and functional and that's what works."

Award

The Software Improvement Group (SIG) that Klint co-founded in 2000 as a spin-off of the Centre for Mathematics and Computer Science (CWI) recently won the ICT Regie Award and he was nominated for the prestigious Koning Willem I Prize. The company focuses on turning scientific research results into usable technology. They developed software that analyses a code and makes a website from it with click-through overviews of what the code does. "This improves the code's comprehensibility and accessibility," says Klint. "In the meantime the system has evolved and can make all kinds of quality assessments on software systems. It is interesting, for example, that we can study software's history and analyse how it has grown. We can see when certain parts have needed an inordinate amount of maintenance and that can be indicative of something needing renovation."

A number of large companies commission SIG to analyse their software. "Years of work go into showing companies the use of this sort of thing, but recently orders have come flooding in, from ministries, banks, insurance companies, the Dutch Tax Administration and the police." He adds, laughing: "And I'm sure they could use it."

Author(s)


Source: Communications