@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} }