… 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.
Posted on 30.07.2018 by Dr. Benjamin Hummel
ConQAT was designed as a toolkit for rapid development and execution of software quality analyses. We started it as a vehicle for performing research on automated software quality analysis back in 2005 at TUM and it also was one of the corner stones of CQSE when we started the company in 2009.
Posted on 22.02.2018 by Dr. Benjamin Hummel
With Teamscale 4.0 we finally released pre-commit analysis, a feature that we and many of our customers have been looking forward to for quite some time. In this post, I will give you a brief overview of the feature and explain, why we are so excited about it.
Posted on 04.05.2017 by Dr. Benjamin Hummel
Today, I would like to focus on an exciting new feature we added to Teamscale with the latest version: issue metrics. While Teamscale could connect to your issue tracker (such as Jira or Redmine) and link commits to individual issues already, this new feature provides deeper insights into your existing issue data.
Posted on 03.08.2016 by Dr. Benjamin Hummel
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.
Posted on 12.05.2016 by Dr. Benjamin Hummel
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?
Posted on 13.04.2016 by Dr. Benjamin Hummel
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.
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.
Posted on 10.06.2015 by Dr. Benjamin Hummel
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.
Posted on 03.12.2014 by Dr. Benjamin Hummel
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.
Posted on 30.07.2014 by Dr. Benjamin Hummel
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.
Posted on 16.07.2014 by Dr. Benjamin Hummel
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.
Posted on 21.05.2014 by Dr. Benjamin Hummel
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.
Posted on 19.03.2014 by Dr. Benjamin Hummel
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.
Incremental Software Quality Analysis for Embedded Systems.
Talk at embedded world Conference 2015, 2015.
Real-Time Continuous Inspection: Erfahrungen aus 2 Jahren inkrementeller Analyse.
Talk at Workshop on Hotspots of Software Engineering 2015, 2015.
A Framework for Incremental Quality Analysis of Large Software Systems.
Talk at the 28th IEEE International Conference on Software Maintenance (ICSM’12), 2012.
Index-Based Code Clone Detection: Incremental, Distributed, Scalable.
Talk at the 26th IEEE International Conference on Software Maintenance (ICSM’10), 2010.
Model Clone Detection in Practice.
Talk at the 4th International Workshop on Software Clones (IWSC’10), 2010.
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.
CloneDetective: A Workbench for Clone Detection Research.
Tool Demo at the 31st International Conference on Software Engineering (ICSE’09), 2009.
Integrated Behavior Models for Factory Automation Systems.
Talk at the 12th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA’09), 2009.
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.
Acyclic type-of-relationship problems on the internet: an experimental analysis.
Talk at the 7th ACM SIGCOMM Conference on Internet Measurement (IMC’07), 2007.
Machine Learning of Bug Pattern Detection Rules.
Master’s Thesis. Technische Universität München, 2018.
Deriving Extract Method Refactoring Suggestions for Long Methods.
Software Quality Days 2016 (SQD’16), 2016.
Incremental Software Quality Analysis for Embedded Systems.
embedded world Conference 2015, 2015.
Incremental Origin Analysis of Source Code Files.
Proceedings of the 11th Working Conference on Mining Software Repositories (MSR’14), 2014.
Qualität in Echtzeit mit Teamscale.
Softwaretechnik-Trends, Vol. 34, 2014.
Teamscale: Software Quality Control in Real-Time.
Proceedings of the 36th ACM/IEEE International Conference on Software Engineering (ICSE’14), 2014.
Quality Analysis of Source Code Comments.
Proceedings of the 21st IEEE Internation Conference on Program Comprehension (ICPC’13), 2013.
A Framework for Incremental Quality Analysis of Large Software Systems.
Proceedings of the 28th IEEE International Conference on Software Maintenance (ICSM’12), 2012.
Challenges of the Dynamic Detection of Functionally Similar Code Fragments.
Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.
Identifier-Based Context-Dependent API Method Recommendation.
Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’12), 2012.
Using Network Analysis for Recommendation of Central Software Classes.
Proceedings of the 19th Working Conference on Reverse Engineering (WCRE’12), 2012.
Proceedings of the 6th International Workshop on Software Clones (IWSC’12), 2012.
Index-based model clone detection.
Proceedings of the 5th ICSE International Workshop on Software Clones (IWSC’11), 2011.
Integrated Behavior Modeling of Space-Intensive Mechatronic Systems.
Dissertation. Technische Universität München, 2011.
Kontinuierliches Qualitäts-Controlling: Mittel gegen den Qualitätsverfall in der Softwarewartung.
OBJEKTSpektrum, Vol. 05, 2011.
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.
Recommending API Methods Based on Identifier Contexts.
3rd International Workshop on Search-driven development: Users, Infrastructure, Tools and Evaluation (SUITE’11), 2011.
Regression Test Selection of Manual System Tests in Practice.
Proceedings of the 15th European Conference on Software Maintenance and Reengineering (CSMR’11), 2011.
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.
A Generalized Wedelin Heuristic for Integer Programming.
INFORMS Journal on Computing, Vol. 22, 2010.
Can Clone Detection Support Quality Assessments of Requirements Specifications?
Proceedings of the 32nd International Conference on Software Engineering (ICSE’10), 2010.
Code similarities beyond copy & paste.
Proceedings of the 14th European Conference on Software Maintenance and Reengineering (CSMR’10), 2010.
Flexible Architecture Conformance Assessment with ConQAT.
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering (ICSE’10), 2010.
Index-Based Code Clone Detection: Incremental, Distributed, Scalable.
Proceedings of the 26th IEEE International Conference on Software Maintenance (ICSM’10), 2010.
Library Concepts for Model Reuse.
Electronic Notes in Theoretical Computer Science, Vol. 253, 2010.
Material Flow Abstraction of Manufacturing Systems.
Proceedings of the 7th International Colloquium on Theoretical Aspects of Computing (ICTAC’10), 2010.
Model Clone Detection in Practice.
Proceedings of the 4th International Workshop on Software Clones (IWSC’10), 2010.
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.
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.
Clone Detection Beyond Copy & Paste.
Proceedings of the 3rd International Workshop on Software Clones (IWSC’09), 2009.
CloneDetective: A Workbench for Clone Detection Research.
Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.
Proceedings of the 31st International Conference on Software Engineering (ICSE’09), 2009.
Integrated Behavior Models for Factory Automation Systems.
Proceedings of the 12th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA’09), 2009.
Interdisziplinäre Funktionsmodellierung im Anlagenbau.
ZWF Zeitschrift für wirtschaftlichen Fabrikbetrieb, Vol. 01-02, 2009.
Simulationsmodelle für die virtuelle Inbetriebnahme.
ATZproduktion, Vol. 05-06, 2009.
Specifying the worst case: orthogonal modeling of hardware errors.
Proceedings of the Eighteenth International Symposium on Software Testing and Analysis (ISSTA’09), 2009.
Clone detection in automotive model-based development.
Proceedings of the International Conference on Software Engineering (ICSE’08), 2008.
ConQAT - Ein Toolkit zur kontinuierlichen Qualitätsbewertung.
Tagungsband der Software-Engineering-Konferenz, 2008.
Selected Topics in Software Quality.
Report TUM-I0824. Technische Universität München, 2008.
Static Bug Detection Through Analysis of Inconsistent Clones.
Proceedings of SE’08, 2008.
Tool Support for Continuous Quality Control.
IEEE Software, Vol. 25, 2008.
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.
Acyclic type-of-relationship problems on the internet: an experimental analysis.
Proceedings of the 7th ACM SIGCOMM Conference on Internet Measurement (IMC’07), 2007.
CoCoME - The Common Component Modeling Example.
The Common Component Modeling Example: Comparing Software Component Models, 2007.
Automata-based IP Packet Classification.
Diploma Thesis. Technische Universität München, 2006.