Mitarbeiter

Dr. Benjamin Hummel


… ist Mitbegründer der CQSE GmbH und Berater für Software-Qualität. Er studierte Informatik an der Technische Universität München und promovierte im Bereich Software Engineering.

Blog Posts


Teamscale comes equipped with its own task manager. As most development teams already use an issue tracker (such as Jira or Redmine), a common question is how Teamscale tasks relate to tickets in the issue tracker and whether one should replace the other. Not surprisingly, this is not a simple yes/no answer.

Read more...


Contacting customer support with a technical issue can feel like you are in a quiz show, with the support agent going through a list of standard questions. As you don’t know these questions, providing the information bit by bit can get very tedious.

You: Hello, customer support. The FooBar server is not running as expected. I’m getting errors when updating user information.

Customer Support: Hi, pleased to help you. Which version of the server are you running?

You: Version 17.5.33

Customer Support: Great. Maybe this is a configuration issue. Can you send me the configuration file?

Read more...


The term technical debt is often used to explain the nature of software quality and quality decay: the option to decide for reduced quality (taking debt) in exchange for more features or faster time-to-market, the fact that some quality issues will hit you hard later on (interest), or the problem that accumulation of too many quality issues might make further development of a software system impossible (just as too much debt might break a company). Still, we try to avoid the actual term technical debt, both in our own tools and when dealing with our customers. Our main reason is that the metaphor is often overdone and its users tend to see too many parallels to its financial counterpart.

Read more...


Save the Semicolon

Posted on 09.12.2015 by Dr. Benjamin Hummel

These days, it seems that a modern programming language is required to not use semicolons at all, or at least make them optional. While this might be a good trend from the perspective of a keyboard vendor (less stress on the single semicolon key), from a code quality perspective, this does not look like progress at all.

Read more...


Every software system has been built by copy & paste at least to some degree. Some of this redundancy is caused by technical limitations in the languages and tools. Some is caused by time pressure, where duplicating and modifying an existing piece of code is faster than developing suitable abstractions. Some is also caused by the laziness of the developers or missing awareness of possible long-term consequences. While these duplications often work fine when they are created, they typically cause additional maintenance overhead during software evolution, as duplicates have to be changed consistently. But the real risk of these duplications is in inconsistent changes, as this frequently leads to actual bugs in the system.

Read more...


Have you ever used static analysis tools? Then you probably know how they tend to flood you with so many analysis results (findings), that you don’t know where to even start reading and resolving them. Instead of turning these tools off again, read on for some strategies for dealing with the findings flood.

Read more...


In the previous part we introduced the notion of code clones and discussed, whether and under which circumstances cloning in your code base can be a problem for development and maintenance. In this post, I will introduce ways and tools to deal with code clones in your code base. After reading this, you should be able to select and apply a detection tool to inspect the clones in your own code base.

Read more...


One well known principle in software engineering states don’t repeat yourself, also known as the DRY principle. A very obvious violation of DRY is the application of copy/paste to create duplicates of large portions of source code within the same code base. These duplicate pieces of code, also known as code clones, have been subject to lots of research in the last two decades. In this two-part post I want to summarize those parts of the current knowledge that I find most relevant to the practitioner, especially the impact of clones on software development and how to deal with them in terms of tools and processes.

Read more...


In nearly every audience we present our analysis and quality management tools to, there is at least one person asking whether we also measure Cyclomatic Complexity. After all, almost every existing software quality tool calculates this metric and so it is very well known. Much to their surprise, our answer is usually no and I want to explain our rationale in this post.

Read more...


Many consider manual code reviews to be the premium solution to quality control, as they can locate and eliminate all kinds of issues ranging from functional bugs over security deficits to maintainability problems and have many other benefits as a side-effect. When installing code reviews in your development project, there are a couple of flavours to choose from. This post highlights one of these variation points, namely the granularity of the artifact being reviewed.

Read more...


Vorträge


Benjamin Hummel:

A Framework for Incremental Quality Analysis of Large Software Systems.

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

Benjamin Hummel:

Model Clone Detection in Practice.

Talk at the 4th International Workshop on Software Clones (IWSC’10), 2010.

Benjamin Hummel:

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

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

Benjamin Hummel:

Integrated Behavior Models for Factory Automation Systems.

Talk at the 12th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA’09), 2009.

Benjamin Hummel:

CloneDetective: A Workbench for Clone Detection Research.

Tool Demo at the 31st International Conference on Software Engineering (ICSE’09), 2009.

Benjamin Hummel:

A Semantic Model for Computer-Based Spatio-temporal Systems.

Talk at the 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS’09), 2009.

Benjamin Hummel:

Towards an integrated system model for testing and verification of automation machines.

Talk at the 2008 International Workshop on Models in Software Engineering (MiSE’08), 2008.

Benjamin Hummel:

Acyclic type-of-relationship problems on the internet: an experimental analysis.

Talk at the 7th ACM SIGCOMM Conference on Internet Measurement (IMC’07), 2007.

Veröffentlichungen


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.

Daniela Steidl, Benjamin Hummel, Elmar Juergens:

Incremental Origin Analysis of Source Code Files.

Proceedings of the 11th Working Conference on Mining Software Repositories (MSR’14), 2014.

Daniela Steidl, Benjamin Hummel, Elmar Juergens:

Quality Analysis of Source Code Comments.

Proceedings of the 21st IEEE Internation Conference on Program Comprehension (ICPC’13), 2013.

Nils Göde, Benjamin Hummel, Elmar Juergens:

What Clone Coverage Can Tell.

Proceedings of the 6th International Workshop on Software Clones (IWSC’12), 2012.

Daniela Steidl, Benjamin Hummel, Elmar Jürgens:

Using Network Analysis for Recommendation of Central Software Classes.

Proceedings of the 19th Working Conference on Reverse Engineering (WCRE’12), 2012.

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.

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, 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.

Bakr Al-Batran, Bernhard Schätz, Benjamin Hummel:

Semantic Clone Detection for Model-Based Development of Embedded Systems.

Proceedings of the 14th International Conference on Model Driven Engineering Languages and Systems (MODELS’11), 2011.

Benjamin Hummel, Elmar Jürgens, Daniela Steidl:

Index-based model clone detection.

Proceedings of the 5th ICSE International Workshop on Software Clones (IWSC’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.

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.

Elmar Jürgens, Benjamin Hummel, Florian Deissenboeck, Martin Feilkas, Christian Schlögel, Andreas Wübbeke:

Regression Test Selection of Manual System Tests in Practice.

Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR’11), 2011.

Oliver Bastert, Benjamin Hummel, Sven Vries:

A Generalized Wedelin Heuristic for Integer Programming.

INFORMS Journal on Computing, Vol. 22, 2010.

Elmar Juergens, Florian Deissenboeck, Martin Feilkas, Benjamin Hummel, Bernhard Schaetz, Stefan Wagner, Christoph Domann, Jonathan Streit:

Can Clone Detection Support Quality Assessments of Requirements Specifications?

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

Elmar Juergens, Florian Deissenboeck, Benjamin Hummel:

Code similarities beyond copy & paste.

Proceedings of the 14th European Conference on Software Maintenance and Reengineering (CSMR’10), 2010.

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.

Florian Deissenboeck, Benjamin Hummel, Elmar Juergens, Michael Pfaehler:

Model Clone Detection in Practice.

Proceedings of the 4th International Workshop on Software Clones (IWSC’10), 2010.

Markus Herrmannsdörfer, Benjamin Hummel:

Library Concepts for Model Reuse.

Electronic Notes in Theoretical Computer Science, Vol. 253, 2010.

Jewgenij Botaschanjan, Benjamin Hummel:

Material Flow Abstraction of Manufacturing Systems.

Proceedings of the 7th International Colloquium on Theoretical Aspects of Computing (ICTAC’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.

Jewgenij Botaschanjan, Benjamin Hummel:

Specifying the worst case: orthogonal modeling of hardware errors.

Proceedings of the Eighteenth International Symposium on Software Testing and Analysis (ISSTA’09), 2009.

Jewgenij Botaschanjan, Thomas Hensel, Benjamin Hummel, Alexander Lindworsky, Michael Friedrich Zäh:

Simulationsmodelle für die virtuelle Inbetriebnahme.

ATZproduktion, Vol. 05-06, 2009.

Jewgenij Botaschanjan, Benjamin Hummel, Alexander Lindworsky:

Interdisziplinäre Funktionsmodellierung im Anlagenbau.

ZWF Zeitschrift für wirtschaftlichen Fabrikbetrieb, Vol. 01-02, 2009.

Jewgenij Botaschanjan, Benjamin Hummel, Thomas Hensel, Alexander Lindworsky:

Integrated Behavior Models for Factory Automation Systems.

Proceedings of the 12th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA’09), 2009.

Elmar Juergens, Florian Deissenboeck, Benjamin Hummel, Stefan Wagner:

Do Code Clones Matter?

Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.

Elmar Juergens, Florian Deissenboeck, Benjamin Hummel:

CloneDetective: A Workbench for Clone Detection Research.

Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.

Elmar Juergens, Florian Deissenboeck, Benjamin Hummel:

Clone Detection Beyond Copy & Paste.

Proceedings of the 3rd International Workshop on Software Clones (IWSC’09), 2009.

Benjamin Hummel:

A Semantic Model for Computer-Based Spatio-temporal Systems.

Proceedings of the 16th Annual IEEE International Conference and Workshop on the Engineering of Computer Based Systems (ECBS’09), 2009.

Benjamin Hummel, Judith Thyssen:

Behavioral Specification of Reactive Systems Using Stream-Based I/O Tables.

Proceedings of the Seventh IEEE International Conference on Software Engineering and Formal Methods (SEFM’09), 2009.

Florian Deissenboeck, Benjamin Hummel, Elmar Jürgens, Bernhard Schätz, Stefan Wagner, Jean-François Girard, Stefan Teuchert:

Clone detection in automotive model-based development.

Proceedings of the International Conference on Software Engineering (ICSE’08), 2008.

Florian Deissenboeck, Elmar Juergens, Benjamin Hummel, Stefan Wagner, Benedikt Parareda, Markus Pizka:

Tool Support for Continuous Quality Control.

IEEE Software, Vol. 25, 2008.

Stefan Wagner, Florian Deissenboeck, Benjamin Hummel, Elmar Juergens, Benedikt Parareda, Bernhard Schaetz (editors):

Selected Topics in Software Quality.

Report TUM-I0824. Technische Universität München, 2008.

Benjamin Hummel, Peter Braun:

Towards an integrated system model for testing and verification of automation machines.

Proceedings of the 2008 International Workshop on Models in Software Engineering (MiSE’08), 2008.

Sebastian Herold, Holger Klus, Yannick Welsch, Constanze Deiters, Andreas Rausch, Ralf Reussner, Klaus Krogmann, Heiko Koziolek, Raffaela Mirandola, Benjamin Hummel, Michael Meisinger, Christian Pfaller:

CoCoME - The Common Component Modeling Example.

The Common Component Modeling Example: Comparing Software Component Models, 2007.

Benjamin Hummel, Sven Kosub:

Acyclic type-of-relationship problems on the internet: an experimental analysis.

Proceedings of the 7th ACM SIGCOMM Conference on Internet Measurement (IMC’07), 2007.

Benjamin Hummel:

Automata-based IP Packet Classification.

Diploma Thesis. Technische Universität München, 2006.