Mitarbeiter

Dr. Florian Deißenböck


… ist Mitgründer und geschäftsführender Gesellschafter der CQSE GmbH. Er hat an der Technischen Universität München sowie am Asian Institute of Technology, Bangkok studiert und im Bereich Software Engineering promoviert.

  • +49 space::179 space::7857188
  • deissenboeck@invalid::cqse.eu
  • @deissenboeck

Blog Posts


In our code audits we primarily focus on issues that affect the maintainability of the code, e.g., code duplication caused by copy&paste programming. When presenting the audit results, a common reaction by the development team is: »Yes, you’re right. This is ugly. However, it is not a problem for us because we will never change this code!« My reaction: »Great. Compile the code to a binary library and delete the source.« This always provokes second thoughts. Not only because source code also serves as documentation that would be lost but also because the team suddenly doubts its own assessment of the stability of the code. So far, not a single development team followed my suggestion.

With examples of real-world systems this post discusses the multitude of reasons for code to change and explains why the assumption that code won’t change can be dangerous.

Read more...


C/C++ programs often use conditional compilation to implement variations of a program. While conditional compilation is extremely flexible and easy to use, it leads to code that is hard to maintain. Using examples from open-source systems, this post demonstrates why such code is often referred to as the »#ifdef Hell« and what can be done to keep conditional compilation in check.

Read more...


While there are numerous excellent articles, blog posts and books about the correct handling of character encodings in software systems, many systems still get it wrong because their architects and developers never understood what this is all about. I suspect that is due to the fact that many systems work more or less correctly even if you don’t care about character encodings. Moreover, character encodings in general and Unicode in particular is a topic of overwhelming complexity (if you want to fully understand it). The combination of these two facts—it mostly works even if I don’t care and really understanding the thing is hard—allows laziness to set in; resulting in software systems that handle text correctly under the most trivial circumstances only. This blog post aims to remedy this by focusing on the single most important rule for developers while abstracting away everything that is not required to understand this rule.

Read more...


Almost everybody agrees that having a consistent setup for compiler errors, warnings and the code formatter across all team members is crucial. However, many development projects still fail to achieve this. Surprisingly, the main reason for this seems to be that most developers are not aware that this can be easily enforced with Eclipse and use cumbersome »How to setup your workspace« descriptions in the developer wiki instead. In most cases these descriptions are outdated or generally ignored. As this is an issue that I have repeatedly discussed with our customers (and recently at the BITKOM Workshop in Frankfurt) I explain how enforcing a consistent setup for compiler errors, warnings and the code formatter works with Eclipse.

Read more...


On Friday, February 21st Apple published an update for iOS that fixed a serious security issue. What makes this issue interesting, is not only its severity but also the fact that the issue can be nicely pinned down two a single line of code. Conveniently, this code is open-source and available for analysis! In this post I’ll explain why this major security issue is, after all, the result of a number of quality issues, which are often undervalued as minor flaws.

Read more...


Vorträge


Florian Deissenboeck:

Concise and Consistent Naming — 10 years later.

Talk at ICPC, 2015.

Florian Deissenboeck:

Vertrauen ist gut...

Talk at Bitkom Arbeitskreis Software Engineering, 2014.

Florian Deissenboeck:

Facts & Fallacies of Software Measurement.

Talk at Bitkom Arbeitskreis Qualitätsmanagement, 2013.

Florian Deissenboeck:

Code-Qualität.

Talk at AE Kolloquium of the Versicherungskammer Bayern, 2011.

Florian Deissenboeck:

Software Product Quality Control .

Talk at the Google Developer Day 2010, 2010.

Florian Deissenboeck:

Produktivität –- Begriffsklärung.

Talk at HSE-Workshop »Produktivität in der Software-Entwicklung«, 2008.

Florian Deissenboeck:

Erfassung, Strukturierung und Überprüfung von Qualitätsanforderungen durch aktivitätenbasierte Qualitätsmodelle.

Talk at Workshop zur Erhebung, Spezifikation und Analyse nichtfunktionaler Anforderungen in der Systementwicklung, 2008.

Florian Deissenboeck:

Abstractness, Specificity, and Complexity in Software Design.

Talk at the International Workshop on the Role of Abstraction in Software Engineering, 2008.

Florian Deissenboeck:

Qualität und Qualitätsmodelle.

Talk at Workshop Software-Produktqualität @ Software & Systems Engineering Essentials (SEE), 2007.

Florian Deissenboeck:

Qualität und Qualitätsmodelle.

Talk at Workshop Software-Qualität @ Euroforum-Konferenz »Software im Automobil«, 2007.

Florian Deissenboeck:

An Activity-Based Quality Model for Maintainability.

Talk at the International Conference on Software Maintenance, 2007.

Florian Deissenboeck:

Demystifying Maintainability.

Talk at the Workshop on Software Quality, 2006.

Florian Deissenboeck:

Skalierbare Redundanzanalyse.

Talk at the Workshop Reengineering @ Technische Universität München, 2005.

Florian Deissenboeck:

Erweiterbare Architekturen.

Talk at Architekturworkshop @ Technische Universität München , 2005.

Florian Deissenboeck:

Concise and Consistent Naming.

Talk at the International Workshop on Program Comprehension, 2005.

Veröffentlichungen


Daniela Steidl, Florian Deissenboeck:

How Do Java Methods Grow?

Proceedings of the 15th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM’15), 2015.

Daniela Steidl, Florian Deissenboeck, Martin Poehlmann, Robert Heinke, Baerbel Uhink-Mergenthaler:

Continuous Software Quality Control in Practice.

2014 IEEE International Conference on Software Maintenance and Evolution (ICSME’14), 2014.

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.

Nils Göde, Florian Deissenboeck:

Delta Analysis.

Softwaretechnik-Trends, Vol. 32, 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.

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, Gerardo Canfora:

Welcome from the Early Research Achievements Chairs.

Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR’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.

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.

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, Martin Feilkas, Markus Herrmannsdoerfer, Florian Deissenboeck, Rudolf Vaas, Karl-Heinz Prommer:

Feature Profiling for Evolving Systems.

Proceedings of the 19th IEEE International Conference on Program Comprehension (ICPC’11), 2011.

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.

Florian Deißenböck:

Kontinuierliches Qualitäts-Controlling langlebiger Softwaresysteme.

Ausgezeichnete Informatikdissertationen 2009. Gesellschaft für Informatik, 2010.

Elmar Juergens, Florian Deissenboeck:

How Much is a Clone?

Proceedings of the 4th International Workshop on Software Quality and Maintainability (WoSQ’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.

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.

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.

Florian Deissenboeck, Elmar Juergens, Klaus Lochmann, Stefan Wagner:

Software Quality Models: Purposes, Usage Scenarios and Requirements.

Proceedings of the 7th International Workshop on Software Quality (WoSQ’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:

Clone Detection Beyond Copy & Paste.

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

Stefan Wagner, Manfred Broy, Florian Deißenböck, Peter Liggesmeyer, Jürgen Münch:

Workshop-Band Software-Qualitätsmodellierung und -bewertung (SQMB ’08).

Proceedings, 2008.

Daniel Raţiu, Martin Feilkas, Florian Deissenboeck, Radu Marinescu, Jan Jürjens:

Towards a Repository of Common Programming Technologies Knowledge.

Proceedings of the International Workshop on Semantic Technologies in System Maintenance, 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 Deißenböck, Martin Feilkas, Elmar Jürgens:

Software-Qualitätsmodelle in der Praxis: Erfahrungen mit aktivitätenbasierten Modellen.

In Proceedings of Workshop Software-Qualitätsmodellierung und -bewertung (SQMB ’08), 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.

Stefan Wagner, Florian Deissenboeck:

Abstractness, specificity, and complexity in software design.

Proceedings of the 2nd International Workshop on The Role of Abstraction in Software Engineering (ROA’08), 2008.

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, Markus Pizka:

Probabilistic Analysis of Process Economics.

Software Process: Improvement and Practice, Vol. 13, 2008.

Florian Deissenboeck, Stefan Wagner, Markus Pizka, Stefan Teuchert, Jean-François Girard:

An Activity-Based Quality Model for Maintainability.

Proceedings of the International Conference on Software Maintenance (ICSM’07), 2007.

Florian Deissenboeck, Stefan Wagner:

Kosten-basierte Klassifikation von Qualitätsanforderungen.

Workshopband der Software-Engineering-Konferenz, 2007.

Florian Deissenboeck, Markus Pizka:

The Economic Impact of Software Process Variations.

Proceedings of the International Conference on Software Process (ICSP’07), 2007.

Florian Deißenböck, Tilmann Seifert:

Kontinuierliche Qualitätsüberwachung mit ConQAT.

Tagungsband der Informatik 2006, 2006.

Manfred Broy, Florian Deissenboeck, Markus Pizka:

Demystifying Maintainability.

Proceedings of the Workshop on Software Quality (WOSQ’06), 2006.

Florian Deissenboeck, Markus Pizka:

Concise and Consistent Naming.

Software Quality Journal, Vol. 14, 2006.

Florian Deissenboeck, Daniel Ratiu:

A Unified Meta-Model for Concept-Based Reverse Engineering.

Proceedings of the 3rd International Workshop on Metamodels, Schemas, Grammars and Ontologies for Reverse Engineering (ATEM’06), 2006.

Manfred Broy, Florian Deissenboeck, Markus Pizka:

A Holistic Approach to Software Quality at Work.

Proceedings of the World Congress for Software Quality (WCSQ’05), 2005.

Florian Deissenboeck, Markus Pizka:

Concise and Consistent Naming.

Proceedings of the International Workshop on Program Comprehension (IWPC’05), 2005.

Florian Deissenboeck, Markus Pizka, Tilmann Seifert:

Tool Support for Continuous Quality Assessment.

Proceedings of the International Workshop on Software Technology and Engineering Practice, 2005.

Gerd Beneken, Florian Deissenboeck:

Inside Java Server Faces.

JavaSpektrum, Vol. 4, 2004.

Forschungsaktivitäten