@inproceedings{LewerentzSimon, author = {Lewerentz, Claus and Simon, Frank}, title = {Metrics-based 3D Visualization of Large Object-Oriented Programs}, abstract = {In this paper a new approach for a metrics based software visualization is presented which supports an efficient and effective quality assessment of large object-oriented software systems. It is based on the combination of software metrics data with structure information to form a virtual information space. This information space is visualized using 3D graph structures that allow to represent in a uniform way many aspects and views on it. The layout approach for these graphs uses a generic similarity measure to calculate geometric distances between the graph nodes and a force-directed mapping into 3D space. A particular strength of the approach is that the resulting geometrical structures can be well interpreted with respect to the architecture and design quality of the analysed software. Such 3D visualizations have been used successfully in several case studies for the quality assessment of industrial C++/Java projects.}, language = {en} } @article{LewerentzRust, author = {Lewerentz, Claus and Rust, Heinrich}, title = {Software-Ingenieure als kompetente Teamworker}, series = {Softwaretechnik-Trends}, volume = {21}, journal = {Softwaretechnik-Trends}, number = {1}, issn = {0720-8928}, pages = {30 -- 35}, language = {de} } @inproceedings{SimonSteinbruecknerLewerentz, author = {Simon, Frank and Steinbr{\"u}ckner, Frank and Lewerentz, Claus}, title = {Anpaßbare, explorierbare virtuelle Informationsr{\"a}ume zur Qualit{\"a}tsbewertung großer Software-Systeme}, series = {3. Workshop Software Reengineering, Bad Honnef, 10./11. Mai 2001}, booktitle = {3. Workshop Software Reengineering, Bad Honnef, 10./11. Mai 2001}, publisher = {Univ., Inst. f{\"u}r Informatik}, address = {Koblenz-Landau}, language = {de} } @inproceedings{BeyerLewerentzSimon, author = {Beyer, Dirk and Lewerentz, Claus and Simon, Frank}, title = {Impact of Inheritance on Metrics for Size, Coupling, and Cohesion in Object Oriented Systems}, series = {New approaches in software measurement, 10th international workshop, proceedings, IWSM 2000, Berlin, Germany, October 4 - 6, 2000}, booktitle = {New approaches in software measurement, 10th international workshop, proceedings, IWSM 2000, Berlin, Germany, October 4 - 6, 2000}, editor = {Abran, Alain and Dumke, Reiner}, publisher = {Springer}, address = {Berlin [u.a.]}, isbn = {3-540-41727-3}, pages = {1 -- 17}, language = {en} } @inproceedings{LewerentzRust, author = {Lewerentz, Claus and Rust, Heinrich}, title = {Die Rolle der Reflexion in Software-Praktika}, series = {Software Engineering im Unterricht der Hochschulen, SEUH 7, Z{\"u}rich 2001}, booktitle = {Software Engineering im Unterricht der Hochschulen, SEUH 7, Z{\"u}rich 2001}, editor = {Lichter, Horst and Glinz, Martin}, publisher = {dpunkt-Verlag}, address = {Heidelberg}, isbn = {3-89864-106-6}, pages = {73 -- 88}, language = {de} } @inproceedings{RustLewerentz, author = {Rust, Heinrich and Lewerentz, Claus}, title = {A Model for Analyzing Measurement Based Feedback Loops in Software Development Projects}, series = {Advances in learning software organizations, third international workshop, proceedings, LSO 2001, Kaiserslautern, Germany, September 12 - 13, 2001}, booktitle = {Advances in learning software organizations, third international workshop, proceedings, LSO 2001, Kaiserslautern, Germany, September 12 - 13, 2001}, editor = {Althoff, Klaus-Dieter}, publisher = {Springer}, address = {Berlin [u.a.]}, isbn = {3-540-42574-8}, pages = {135 -- 149}, language = {en} } @inproceedings{SimonSteinbruecknerLewerentz, author = {Simon, Frank and Steinbr{\"u}ckner, Frank and Lewerentz, Claus}, title = {Metrics Based Refactoring}, series = {Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, 14 - 16 March 2001, Lisbon, Portugal}, booktitle = {Proceedings of the Fifth European Conference on Software Maintenance and Reengineering, 14 - 16 March 2001, Lisbon, Portugal}, editor = {Sousa, Pedro}, publisher = {IEEE Computer Society}, address = {Los Alamitos, Calif. [u.a.]}, isbn = {0-7695-1028-0}, pages = {30 -- 38}, language = {en} } @inproceedings{Lewerentz, author = {Lewerentz, Claus}, title = {Metrics-based Quality Analysis of Large Software Products}, series = {Software-Metriken in der Praxis, Tagungsband des DASMA Software Metrik Kongresses METRIKON 2001, 25. - 26. Oktober, 2001, Dortmund}, booktitle = {Software-Metriken in der Praxis, Tagungsband des DASMA Software Metrik Kongresses METRIKON 2001, 25. - 26. Oktober, 2001, Dortmund}, editor = {Dumke, Reiner}, publisher = {Shaker}, address = {Aachen}, isbn = {3-8322-0470-9}, pages = {133 -- 146}, language = {en} } @incollection{SimonLewerentzBischofberger, author = {Simon, Frank and Lewerentz, Claus and Bischofberger, Walter}, title = {Software Quality Assessments for System, Architecture, Design and Code}, series = {Software quality and software testing in Internet times}, booktitle = {Software quality and software testing in Internet times}, editor = {Meyerhoff, Dirk}, publisher = {Springer Verlag}, address = {Berlin [u.a.]}, isbn = {3-540-42632-9}, pages = {230 -- 249}, abstract = {In this chapter we introduce the concept of structural quality assessments for industrial software systems (especially object-oriented code). Such a quality assessment can be used both to determine the current state with respect to quality and to plan further actions, i.e. reengineering steps, process adjustments or further education of engineers in an ongoing project. The assessment itself is based on an innovative software analysis workbench that integrates multiple interdependent views on a software system into a coherent analysis environment. These views provide information on four aspects: user-defined metrics and query results with high-level information about the system, detailed cross-reference information, browsing views and diagrams to support efficient understanding of the structure. The workbench applies powerful static analysis techniques on the source code under consideration and uses it to generate, access, visualise and browse the different views and analysis results. For practical assessments the workbench is used in a well-defined process such that a first quality assessment of large systems can be done within a very short period of time. The quality assessment described here has been applied in various projects. In order to illustrate the results that such an assessment gives for project management, developers or managers of an outsourced project this paper ends with a short description of a typical example project. This is one of the projects supported jointly by SQS and the Software Systems Engineering Research Group Cottbus}, language = {en} } @inproceedings{BeyerLewerentz, author = {Beyer, Dirk and Lewerentz, Claus}, title = {CrocoPat: Efficient Pattern Analysis in Object-Oriented Programs}, language = {en} } @techreport{BeyerLewerentz, author = {Beyer, Dirk and Lewerentz, Claus}, title = {CrocoPat: A Tool for Efficient Pattern Recognition in Large Object-Oriented Programs}, publisher = {Inst. of Computer Science}, address = {Cottbus}, pages = {10}, language = {en} } @inproceedings{BeyerLewerentzNoack, author = {Beyer, Dirk and Lewerentz, Claus and Noack, Andreas}, title = {Rabbit: A Tool for BDD-based Verification of Real-Time Systems}, series = {Computer aided verification, 15th international conference, proceedings, CAV 2003, Boulder, CO, USA, July 8 - 12, 2003}, booktitle = {Computer aided verification, 15th international conference, proceedings, CAV 2003, Boulder, CO, USA, July 8 - 12, 2003}, editor = {Hunt, Warren A.}, publisher = {Springer}, address = {Berlin [u.a.]}, isbn = {3-540-40524-0}, pages = {122 -- 125}, abstract = {This paper gives a short overview of a model checking tool for real-time systems. The modeling language are timed automata extended with concepts for modular modeling. The tool provides reachability analysis and refinement checking, both implemented using the data structure BDD. Good variable orderings for the BDDs are computed from the modular structure of the model and an estimate of the BDD size. This leads to a significant performance improvement compared to the tool RED and the BDD-based version of Kronos.}, language = {en} } @inproceedings{BeyerNoackLewerentz, author = {Beyer, Dirk and Noack, Andreas and Lewerentz, Claus}, title = {Simple and Efficient Relational Querying of Software Structures}, series = {Proceedings, 10th Working Conference on Reverse Engineering, WCRE 2003, Victoria, B.C., Canada, 13 - 16 November 2003}, booktitle = {Proceedings, 10th Working Conference on Reverse Engineering, WCRE 2003, Victoria, B.C., Canada, 13 - 16 November 2003}, publisher = {IEEE Computer Society}, address = {Los Alamitos, Calif. [u.a.]}, isbn = {0-7695-2027-8}, pages = {216 -- 225}, abstract = {Abstract. Many analyses of software systems can be formalized as relational queries, for example the detection of design patterns, of patterns of problematic design, of code clones, of dead code, and of differences between the as-built and the as-designed architecture. This paper describes the concepts of CrocoPat, a tool for querying and manipulating relations. CrocoPat is easy to use, because of its simple query and manipulation language based on predicate calculus, and its simple file format for relations. CrocoPat is efficient, because it internally represents relations as binary decision diagrams, a data structure that is well-known as a compact representation of large relations in computer-aided verification. CrocoPat is general, because it manipulates not only graphs (i.e. binary relations), but n-ary relations.}, language = {en} } @incollection{LewerentzNoack, author = {Lewerentz, Claus and Noack, Andreas}, title = {CrocoCosmos - 3D Visualization of Large Object-Oriented Programs}, series = {Graph drawing software}, booktitle = {Graph drawing software}, editor = {J{\"u}nger, Michael and Mutzel, Petra}, publisher = {Springer}, address = {Berlin [u.a.]}, isbn = {3-540-00881-0}, pages = {279 -- 297}, language = {en} } @inproceedings{LewerentzSimonSteinbrueckner, author = {Lewerentz, Claus and Simon, Frank and Steinbr{\"u}ckner, Frank}, title = {CrocoCosmos}, language = {en} } @inproceedings{LewerentzSimonSteinbrueckneretal., author = {Lewerentz, Claus and Simon, Frank and Steinbr{\"u}ckner, Frank and Breitling, H. and Lilienthal, C. and Lippert, M.}, title = {External Validation of a Metrics-Based Quality Assessment of the JWAM Framework}, series = {Software-Messung und -Bewertung, Tagungsband Workshop der GI-Fachgruppe 2.1.10, 10./11. September 2001 an der Universit{\"a}t Kaiserslautern}, booktitle = {Software-Messung und -Bewertung, Tagungsband Workshop der GI-Fachgruppe 2.1.10, 10./11. September 2001 an der Universit{\"a}t Kaiserslautern}, publisher = {Dt. Univ.-Verl.}, address = {Wiesbaden}, isbn = {3-8244-7592-8}, pages = {32 -- 49}, language = {en} } @inproceedings{NoackLewerentz, author = {Noack, Andreas and Lewerentz, Claus}, title = {Energy-Based Clustering of Graphs with Nonuniform Degrees}, language = {en} } @inproceedings{NoackLewerentz, author = {Noack, Andreas and Lewerentz, Claus}, title = {A Space of Layout Styles for Hierarchical Graph Models of Software Systems}, series = {Proceedings, SoftVis '05, ACM Symposium on Software Visualization, St. Louis, Missouri, May 14 - 15, 2005}, booktitle = {Proceedings, SoftVis '05, ACM Symposium on Software Visualization, St. Louis, Missouri, May 14 - 15, 2005}, publisher = {Association for Computing Machinery}, address = {New York, NY}, isbn = {1-59593-073-6}, pages = {155 -- 213}, language = {en} } @misc{BalzerNoackDeussenetal., author = {Balzer, Michael and Noack, Andreas and Deussen, Oliver and Lewerentz, Claus}, title = {Software Landscapes: Visualizing the Structure of Large Software Systems}, series = {VisSym 2004, Symposium on Visualization, Konstanz, Germany, May 19- 21, 2004}, journal = {VisSym 2004, Symposium on Visualization, Konstanz, Germany, May 19- 21, 2004}, publisher = {Eurographics Association}, address = {Aire-la-Ville}, pages = {261 -- 266}, language = {en} } @article{BeyerNoackLewerentz, author = {Beyer, Dirk and Noack, Andreas and Lewerentz, Claus}, title = {Efficient Relational Calculation for Software Analysis}, language = {en} } @incollection{BennickeLewerentz, author = {Bennicke, Marcel and Lewerentz, Claus}, title = {Towards Managing Software Architectures with Ontologies}, abstract = {Abstract. Software architectures are key enabling assets within organizationsthat develop complex software systems. Among other purposes,software architectures are useful to maintain intellectual control overa software product. We propose a method to continuously check theconsistency between a specified architecture model and structural informationreverse engineered from the code. We develop criteria that adesign language for architectures should fulfill and show that an ontologybased description has substantial benefits over the standard modelinglanguages MOF/UML/OCL. Using ontologies allows the explicitmodelling of architectural styles as well as concrete system structuresin a single architecture design language. The resulting specifications aremodular, compositional and evolvable. Using ontologies we can apply anontology reasoner to implement consistency checks. Our method integratespreviously separate checks such as checking for allowed dependenciesand coding style into a single framework and enables more powerfuland flexible analyses.}, language = {en} } @inproceedings{SteinbruecknerLewerentz, author = {Steinbr{\"u}ckner, Frank and Lewerentz, Claus}, title = {Representing Development History in Software Cities}, abstract = {Abstract. In this paper we describe a systematic approach to utilize the citymetaphor for the visualization of large software systems asevolving software cities. The main contribution is a new layoutapproach which explicitly takes the development history ofsoftware systems into account and makes history directly visiblein the layouts. These layouts incrementally evolve in a verysmooth and stable way during the development of the representedsoftware system. They are used as a visualization platform forintegrating a large variety of product and process data and thuscreate a coherent set of specialized visualizations. To illustratethis we present some example maps capturing specificdevelopment history aspects.}, language = {en} } @article{BennickeHofmannLewerentzetal., author = {Bennicke, Marcel and Hofmann, Alexander and Lewerentz, Claus and Wichert, Karl-Heinz}, title = {Software Controlling}, abstract = {Abstract. Die Entwicklung von großen Softwaresystemen erfordert ein effektives und effizientes Projektmanagement. Insbesondere muss im Hinblick auf die Softwarequalit{\"a}t in die Entwicklungsprozesse ein zielgerichtetes Risikomanagement integriert werden. Der bisher meist verfolgte "klassische" Ansatz des Projektcontrollings fokussiert vielfach nur auf die Erreichung von externen Qualit{\"a}tseigenschaften des Endprodukts (wie der Erf{\"u}llung funktionaler Anforderungen, die vom Anwender wahrgenommen werden) und die Einhaltung von Zeit- und Budgetvorgaben. Die Erfahrung aus vielen lang laufenden Projekten zeigt, dass im Hinblick auf nachhaltige Entwicklung eine feink{\"o}rnigere und ganzheitlichere Betrachtung der Qualit{\"a}t von Softwaredokumenten und Entwicklungszwischenprodukten notwendig ist, um qualit{\"a}tsbezogene Projektrisiken fr{\"u}hzeitig zu erkennen und geeignete Steuerungsmaßnahmen im Entwicklungsprozess ergreifen zu k{\"o}nnen.Bei Capgemini sd\&m (M{\"u}nchen) wird deshalb gerade unter dem Begriff Software Controlling ein B{\"u}ndel von technischen und organisatorischen Maßnahmen zum ganzheitlichen qualit{\"a}tsbezogenen Risikomanagement in Softwareprojekten eingef{\"u}hrt. Wesentliche Komponenten sind ein Qualit{\"a}tsmodell auf der Grundlage eines aus bisherigen Projekterfahrungen gewonnenen Kennzahlensystems, das interne Produkteigenschaften mit Aufwands-, Test- und Fehlerdaten verkn{\"u}pft, ein in die Entwicklungsumgebung integrierter Projektleitstand und spezifische Prozesselemente zur Qualit{\"a}ts- und Risikobewertung auf der Grundlage der Kennzahlen.}, language = {de} } @inproceedings{SalgerBennickeEngelsetal., author = {Salger, Frank and Bennicke, Marcel and Engels, Gregor and Lewerentz, Claus}, title = {Comprehensive Architecture Evaluation and Management in Large Software Systems}, abstract = {Abstract. The architecture of a software system is both a success and a failure factor. Taking the wrong architectural decisions may break a project, since such errors are often systematic and affect cross-cutting aspects of the system to be built. Moreover, software projects get more and more challenging due to the rising complexity and dynamics of business processes, large team size and distributed development. As the software architecture is the common platform for many project activities, it constitutes a critical success factor. Thus, a comprehensive methodfor evaluating a software architecture and propagating important properties of it downstream to code is needed. At sd\&m, we designed a comprehensive architecture evaluation and management framework in order to satisfy these needs. In this paper, we derive a list of requirements, such a framework should fulfill. We then present the components of our architecture evaluation method and demonstrate, how it fulfills these requirements.}, language = {en} } @techreport{LewerentzSteinbrueckner, author = {Lewerentz, Claus and Steinbr{\"u}ckner, Frank}, title = {SoftUrbs: Visualizing Software Systems as Urban Structures}, publisher = {BTU, Institut f{\"u}r Informatik}, address = {Cottbus}, pages = {8 Bl.}, abstract = {Abstract. SoftUrbs is a systematic approach to utilize the City metaphor for the visualization and interpretation of large software systems as urban structures. The maincontributions are, firstly, a systematic approach to construct and use these visualizations by adopting thethree-staged cartographic modeling chain and, secondly, the use of force-directed layouts of the city map. The latter provides a framework for flexible and incrementally adaptable layouts, which are necessary to preserve a city's overall morphology throughout the structural evolution of the visualized software system. The distinction between different model stages helps to create uniform and consistent visualizations supporting different usage scenarios. The conceptshave been implemented and were successfully applied in some large scale industry projects.}, language = {en} } @inproceedings{SchubanzPleussBotterwecketal., author = {Schubanz, Mathias and Pleuss, Andreas and Botterweck, Goetz and Lewerentz, Claus}, title = {Modeling Rationale over Time to support Product Line Evolution Planning}, series = {Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems, Conference VaMoS 2012, Leipzig, Germany — January 25 - 27, 2012}, booktitle = {Proceedings of the Sixth International Workshop on Variability Modeling of Software-Intensive Systems, Conference VaMoS 2012, Leipzig, Germany — January 25 - 27, 2012}, editor = {Eisenecker, Ulrich W. and Apel, Sven and Gnesi, Stefania}, publisher = {ACM}, address = {New York, NY}, isbn = {978-1-4503-1058-1}, doi = {10.1145/2110147.2110169}, pages = {193 -- 199}, abstract = {Software Product Lines are a strategic long-term investment and must evolve to meet new requirements over many years. In previous work, we have shown a model-driven approach (called EvoPL [21]) for planning and managing long-term evolution of product lines. It allows specifying historic and planned future evolution in terms of changes on feature model level. It provides benefits like abstraction, efficiency through automation, and the capability to perform analysis based on models. In this paper, we argue that specifying changes alone is beneficial but not sufficient. This is because for strategic evolution planning "decision drivers" like goals, requirements, and rationale are essential information as well. Hence, we propose a modeling approach that represents such decision drivers and their interrelationships. The approach is based on concepts from literature (e.g., QOC and goal-oriented requirements engineering) and combines and extends them to address the specific needs of model-driven long-term evolution management. Beyond the basic usage for documentation, the suggested models can be used for systematic future planning and tool-supported analysis, e.g., to evaluate the consistency of planned evolutionary changes.}, language = {en} } @misc{SteinbruecknerLewerentz, author = {Steinbr{\"u}ckner, Frank and Lewerentz, Claus}, title = {Understanding software evolution with software cities}, series = {Information Visualization}, volume = {12}, journal = {Information Visualization}, number = {2}, issn = {1473-8716}, doi = {10.1177/1473871612438785}, pages = {200 -- 216}, abstract = {Software cities are visualizations of software systems in the form of virtual cities. They are used as platforms to integrate a large variety of product- and process-related analysis data. Their usability, however, for real-world software development often suffers from their inability to appropriately deal with software changes. Even small structural changes can disrupt the overall structure of the city, which in turn corrupts the mental maps of its users. In this article we describe a systematic approach to utilize the city metaphor for the visualization of evolving software systems as growing software cities. The main contribution is a new layout approach which explicitly takes the development history of software systems into account. The approach has two important effects: first, it creates a stable gestalt of software cities even when the underlying software systems evolve; thus, by preserving its users' mental maps these cities are especially suitable for use during ongoing system development. Second, it makes history directly visible in the city layouts, which allows for supporting novel analysis scenarios. We illustrate such scenarios by presenting several thematic cities' maps, each capturing specific development history aspects.}, language = {en} } @misc{SchubanzLewerentz, author = {Schubanz, Mathias and Lewerentz, Claus}, title = {What Matters to Students - A Rationale Management Case Study in Agile Software Development}, series = {SEUH 2020: Software Engineering im Unterricht der Hochschulen : Tagungsband des 17. Workshops "Software Engineering im Unterricht der Hochschulen" 2020\$dInnsbruck, {\"O}sterreich, 26.-27.02.2020}, journal = {SEUH 2020: Software Engineering im Unterricht der Hochschulen : Tagungsband des 17. Workshops "Software Engineering im Unterricht der Hochschulen" 2020\$dInnsbruck, {\"O}sterreich, 26.-27.02.2020}, editor = {Krusche, Stephan and Wagner, Stefan}, publisher = {RWTH}, address = {Aachen}, pages = {17 -- 26}, abstract = {Documenting design decisions and their rationale (Design Rationale, DR) in software development projects is vital for supporting the comprehension of the product, product quality, and future maintenance. Although an increasing number of research publications address this topic, systematic approaches and supporting DR tools are found very rarely in practice. In software engineering education, DR is usually not well covered in teaching. The lack of suitable decision documentation is mainly an issue in agile software development. In agile approaches, documentation is regarded as less important than working products. To explore possibilities for integrating decision documentation into Scrum processes for educational software development projects, we conducted a series of eight case studies. These were part of software lab courses in three universities, i.e., BTU Cottbus, PUT Poznan, University of Stuttgart, with about 400 participants in 82 project teams. We introduced additional process elements in Scrum and developed a lightweight capture technique to support the decision capture. This paper describes the case study setup and corresponding implementation and, thus, an example approach of managing rationale in Scrum. Additionally, it presents a data analysis of the students' most relevant decisions documented throughout the case studies. We conclude the paper with a discussion on the observations we made during the case study executions and the applicability of the approach in educational software projects.}, language = {en} }