Programming is predictable

Learn more about the Ctrlflow Insights Code Analysis & Mining Platform

The big challenge developers face today

Software is complex.
And so is software development.

Today’s software systems consist of thousands of components all talking to each other over APIs. In these highly-interconnected systems, even simple tasks often require the use of multiple APIs. But keeping all the nitty-gritty details of every API in mind is impossible — even for senior developers.

Increasing system complexity

Good documentation is key for success

To correctly use an API, it needs to be documented. But writing good documentation is a challenge. Often developers only document the bare minimum, if anything at all. In particular, key details like API contracts or code examples are frequently missing.

Good documentation is key for success

How developers compensate for poor documentation

Poor documentation is the productivity killer № 1 as developers have to resort to studying source code to learn how to use an API. But this approach is time-consuming and error-prone. Reading source code accounts for up to half of a developer’s time. Moreover, using a poorly understood API all too often requires trial-and-error and may even introduce new bugs while fixing old ones.

How developers compensate for poor documentation

How Ctrlflow Insights changes how we develop software

Source code is the ultimate truth

The patterns how to use an API correctly manifest themselves in source code. But code was never meant to serve as documentation. Hence, gleaning patterns manually from source code is hard work. The question is thus how tools can automate this process, fill the gaps in the documentation, prevent bugs, and thus, save developer time. This is where Ctrlflow Insights comes in.

Source code is the ultimate truth, but…

Static code analysis meets machine learning

Static code analysis help to extract various information from your code, e.g., whether a null value is passed to a method call. But while current tools use such atomic information to spot simple bugs or to compute basic metrics about your code, Ctrlflow Insights further applies machine learning to this information to detect patterns and rules — or their violations — in your code.

Static code analysis meets machine learning

Analyzing your company’s source code

Each night Ctrlflow Insights analyzes your company’s Maven or P2 code repositories to extract all API patterns and contracts from your code. This mined knowledge then fuels your bug detectors, code quality metrics, and API documentation. And because it is directly inferred from your code, it is always up-to-date and helps your developers to produce high-quality software every day.

Analyzing your company’s source code

Redefining the i in IDE

Ctrflow Insights integrates with your CI tools to detect bugs and compute code quality metrics. But it delivers its full potential when integrated into the tool where your code is crafted: the IDE. By enriching its built-in code completion, bug detection, and documentation browser with the mined knowledge, Ctrlflow Insights not just integrates with the IDE — it makes it truly intelligent.

Learn more about Ctrlflow Insights for Eclipse
Redefining the i in IDE