Team Member

Dr. Lars Heinemann


… is consultant for software quality at CQSE. After studying computer science at the University of Stuttgart, he worked for four years as a software engineer in a medium-sized software company. Before he joined CQSE in 2012, he was a research assistant in Software Engineering at Technische Universität München, from which he received a PhD in 2012.

  • +49 space::176 space::10589773
  • heinemann@invalid::cqse.eu
  • @lars_heinemann

Blog Posts


In this blog post I’d like to highlight a small yet very handy feature of Teamscale’s metric trend charts that assists you in effectively finding the root cause for conspicuous changes of quality in the history of your code base.

Teamscale’s metric trends allow you to inspect how your source code evolved with regards to different quality criteria. With its incremental analysis engine, Teamscale analyses the effects of every single commit on the quality metrics and thereby providing detailed trend information. For instance, to analyze how the amount of copy and paste programming changed, you can easily bring up a trend chart for the clone coverage by clicking on the respective metric value in the metrics perspective.

Looking at such a trend, it’s easy to spot significant decays or increases. Given such a peculiarity in the trend, the instant question arises: »What caused this?« The metric trend chart provides an easy way to answer this question within

Read more...


A Growing User Base

In the early days of Teamscale when the number of users was still moderate, we used a rather ad hoc way of providing support to our customers. In most cases, support requests were directly handled by the Teamscale product development team. This worked perfectly fine at that time. Customers and evaluators got the most qualified help possible and the development team in turn received unfiltered feedback from Teamscale users.

Fortunately, the user base of Teamscale grew significantly over the past years and, as expected, we were facing an increased number of support requests with a broad variety of topics ranging from general questions regarding installation, configuration, and usage to feature requests and bug reports.

As a consequence, the work load on the product development team grew, occupying resources for further evolution of Teamscale as a product. We felt it was about time to rethink the way we do

Read more...


If you are controlling software quality in a continuous manner, the absolute values of the quality measures at a specific point in time are often not the most important thing. What matters more, is the direction in which you are going. While there may be short-term decreases in quality over time, e.g. due to larger refactorings, the general trend should be towards improvement. An effective way to determine this trend is a Delta Analysis.

A Delta Analysis compares two snapshots of the code base and determines how the changes in the time frame affected the software quality. To do this correctly, a tool has to be able to differentiate between old and new quality deficits (we call them findings). Many existing tools have major limitations in their tracking of findings. For instance, renaming a class or moving a method from one class to another will usually result in all findings being reported as

Read more...


Talks


Lars Heinemann:

Kontinuierliches Qualitätscontrolling: Mit schnellem Feedback gegen den Qualitätsverfall in Softwareprojekten.

Talk at ASQF Fachgruppe Agilität, 2014.

Lars Heinemann:

Challenges of the Dynamic Detection of Functionally Similar Code Fragments.

Talk at the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.

Lars Heinemann:

Facilitating Reuse in Model-Based Development with Context-Dependent Model Element Recommendations.

Talk at the Third International Workshop on Recommendation Systems for Software (RSSE’12), 2012.

Lars Heinemann:

Identifier-Based Context-Dependent API Method Recommendation.

Talk at the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.

Lars Heinemann:

On the Extent and Nature of Software Reuse in Open Source Java Projects.

Talk at the 12th International Conference on Software Reuse (ICSR’11), 2011.

Lars Heinemann:

Recommending API Methods Based on Identifier Contexts.

Talk at the 3rd International Workshop on Search-driven development: Users, Infrastructure, Tools and Evaluation (SUITE’11), 2011.

Lars Heinemann:

Flexible Architecture Conformance Assessment with ConQAT.

Talk at the 32nd ACM/IEEE International Conference on Software Engineering (ICSE’10), 2010.

Lars Heinemann:

Utilizing Web Search Engines for Program Analysis.

Talk at the 18th IEEE International Conference on Program Comprehension (ICPC’10), 2010.

Publications


Stefan Wagner, Andreas Goeb, Lars Heinemann, Michael Kläs, Constanza Lampasona, Klaus Lochmann, Alois Mayr, Reinhold Plösch, Andreas Seidl, Jonathan Streit, Adam Trendowicz:

Operationalised product quality models and assessment: The Quamoco approach.

Information and Software Technology, Vol. 62, 2015.

Lars Heinemann, Benjamin Hummel, Daniela Steidl:

Teamscale: Software Quality Control in Real-Time.

Proceedings of the 36th ACM/IEEE International Conference on Software Engineering (ICSE’14), 2014.

Benedikt Hauptmann, Maximilian Junker, Sebastian Eder, Lars Heinemann, Rudolf Vaas, Peter Braun:

Hunting for Smells in Natural Language Tests.

Proceedings of the 35th International Conference on Software Engineering (ICSE’13), 2013.

Veronika Bauer, Lars Heinemann, Benjamin Hummel, Elmar Juergens, Michael Conradt:

A Framework for Incremental Quality Analysis of Large Software Systems.

Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM’12), 2012.

Veronika Bauer, Lars Heinemann, Florian Deissenboeck:

A Structured Approach to Assess Third-Party Library Usage.

Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM’12), 2012.

Florian Deissenboeck, Lars Heinemann, Benjamin Hummel, Stefan Wagner:

Challenges of the Dynamic Detection of Functionally Similar Code Fragments.

Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.

Lars Heinemann:

Effective and Efficient Reuse with Software Libraries.

Dissertation. Technische Universität München, 2012.

Lars Heinemann:

Facilitating Reuse in Model-Based Development with Context-Dependent Model Element Recommendations.

Proceedings of the Third International Workshop on Recommendation Systems for Software (RSSE’12), 2012.

Lars Heinemann, Veronika Bauer, Markus Herrmannsdoerfer, Benjamin Hummel:

Identifier-Based Context-Dependent API Method Recommendation.

Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.

Stefan Wagner, Klaus Lochmann, Lars Heinemann, Michael Kläs, Adam Trendowicz, Reinhold Plösch, Andreas Seidl, Andreas Goeb, Jonathan Streit:

The Quamoco Product Quality Modelling and Assessment Approach.

Proceedings of the 34th ACM/IEEE International Conference on Software Engineering (ICSE’12), 2012.

Stefan Wagner, Klaus Lochmann, Sebastian Winter, Florian Deissenboeck, Elmar Juergens, Markus Herrmannsdoerfer, Lars Heinemann, Michael Kläs, Adam Trendowicz, Jens Heidrich, Reinhold Plösch, Andreas Goeb, Christian Körner, Korbinian Schoder, Christian Schubert:

The Quamoco Quality Meta-Model.

Report TUM-I128. Technische Universität München, 2012.

Veronika Bauer, Lars Heinemann:

Understanding API Usage to Support Informed Decision Making in Software Maintenance.

Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.

Michael Kläs, Klaus Lochmann, Lars Heinemann:

Evaluating a Quality Model for Software Product Assessments – A Case Study.

Proceedings of 4. Workshop zur Software-Qualitätsmodellierung und -bewertung (SQMB’11), 2011.

Klaus Lochmann, Lars Heinemann:

Integrating Quality Models and Static Analysis for Comprehensive Quality Assessment.

Proceedings of 2nd International Workshop on Emerging Trends in Software Metrics (WETSoM’11), 2011.

Lars Heinemann, Florian Deissenboeck, Mario Gleirscher, Benjamin Hummel, Maximilian Irlbeck:

On the Extent and Nature of Software Reuse in Open Source Java Projects.

Proceedings of the 12th International Conference on Software Reuse (ICSR’11), 2011.

Lars Heinemann, Benjamin Hummel:

Recommending API Methods Based on Identifier Contexts.

3rd International Workshop on Search-driven development: Users, Infrastructure, Tools and Evaluation (SUITE’11), 2011.

Florian Deissenboeck, Lars Heinemann, Markus Herrmannsdoerfer, Klaus Lochmann, Stefan Wagner:

The Quamoco Tool Chain for Quality Modeling and Assessment.

Proceedings of the 33rd ACM/IEEE International Conference on Software Engineering (ICSE’11), 2011.

Florian Deissenboeck, Lars Heinemann, Benjamin Hummel, Elmar Juergens:

Flexible Architecture Conformance Assessment with ConQAT.

Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE’10), 2010.

Benjamin Hummel, Elmar Juergens, Lars Heinemann, Michael Conradt:

Index-Based Code Clone Detection: Incremental, Distributed, Scalable.

Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM’10), 2010.

Lars Heinemann, Christian Neumann, Birgit Penzenstadler, Wassiou Sitou (editors):

Software Architecture in Depth.

Report TUM-I1007. Technische Universität München, 2010.

Manfred Broy, Christian Leuxner, Daniel Méndez Fernández, Lars Heinemann, Bernd Spanfelner, Wolfgang Mai, Rainer Schlör:

Towards a Formal Engineering Approach for SOA.

Report TUM-I1024. Technische Universität München, 2010.

Daniel Ratiu, Lars Heinemann:

Utilizing Web Search Engines for Program Analysis.

Proceedings of the 18th IEEE International Conference on Program Comprehension (ICPC’10), 2010.