Reuse of existing software components is crucial in today’s software-development projects. This requires software developers to be familiar with these components and with the best practices w.r.t their application. An enormous challenge, considering the number of frameworks, libraries, and technologies that emerged over the past years. Companies often invest considerably to train employees to become effective members of development teams.
In the Software Campus project KaVE my colleague Sebastian Proksch and I built developer-assistance tools that help writing new code, using existing software components. These tools, often referred to as Recommender Systems for Software Engineering (RSSE), help developers get to know and use software components quickly and correctly. The foundation of our RSSEs are machine-learning techniques, which we use to automatically learn programming patterns from existing program code. Thereby, we bring the knowledge of entire developer communities directly into Integrated Development Environments (IDEs).
Today, the software industry not only faces the challenge of developing new software products, but also that of maintaining existing software solutions. Often, such legacy products depend on outdated third-party software components, because as these components change over time, updating the dependencies could introduce bugs due to changed usage patterns.
In my Software Campus project Eko, I want to develop an assistance tool that supports developers in finding and fixing erroneous or non-best-practice usages of software components. With machine-learning approaches similar to those applied in the KaVE project, we can detect anormal usages of software components and suggest changes for them to adhere to the up-to-date usage patterns of the respective component.
With my project partner DHL IT Services, I want to deploy our assistance tools in an industrial setting and evaluate how developers make use of them in their every-day work. Real-world studies like this are very costly, but present an enormous value to the research community. At the same time, the project improves the state-of-the-art tool chain of DHL’s developers, helping them to build and maintain high-quality software even faster.
More information about the project are available on the official website of the Software Campus program (German only).