@book{Mauerer, author = {Mauerer, Wolfgang}, title = {Textverarbeitung mit LATEX 2e [2 epsilon] unter UNIX}, publisher = {Hanser}, address = {M{\"u}nchen}, isbn = {9783446189096}, language = {de} } @article{Mauerer, author = {Mauerer, Wolfgang}, title = {Gimp-Perl: Gimp scripting for the rest of us}, series = {Linux Gazette}, journal = {Linux Gazette}, number = {51}, issn = {1934-371X}, language = {en} } @inproceedings{MurrMauerer, author = {Murr, Florian and Mauerer, Wolfgang}, title = {McFSM: Globally Taming Complex Systems}, series = {2017 IEEE/ACM 3rd International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS), 21-21 May 2017, Buenos Aires, Argentina}, booktitle = {2017 IEEE/ACM 3rd International Workshop on Software Engineering for Smart Cyber-Physical Systems (SEsCPS), 21-21 May 2017, Buenos Aires, Argentina}, publisher = {IEEE}, doi = {10.1109/SEsCPS.2017.7}, pages = {26 -- 29}, abstract = {Industrial computing devices, in particular cyber-physical, real-time and safety-critical systems, focus on reacting to external events and the need to cooperate with other devices to create a functional system. They are often implemented with languages that focus on a simple, local description of how a component reacts to external input data and stimuli. Despite the trend in modern software architectures to structure systems into largely independent components, the remaining interdependencies still create rich behavioural dynamics even for small systems. Standard and industrial programming approaches do usually not model or extensively describe the global properties of an entire system. Although a large number of approaches to solve this dilemma have been suggested, it remains a hard and error-prone task to implement systems with complex interdependencies correctly. We introduce multiple coupled finite state machines (McFSMs), a novel mechanism that allows us to model and manage such interdependencies. It is based on a consistent, well-structured and simple global description. A sound theoretical foundation is provided, and associated tools allow us to generate efficient low-level code in various programming languages using model-driven techniques. We also present a domain specific language to express McFSMs and their connections to other systems, to model their dynamic behaviour, and to investigate their efficiency and correctness at compile-time.}, language = {en} } @inproceedings{RamsauerKiszkaMauerer, author = {Ramsauer, Ralf and Kiszka, Jan and Mauerer, Wolfgang}, title = {A Novel Software Architecture for Mixed Criticality Systems}, series = {Digital Transformation in Semiconductor Manufacturing: Proceedings of the 1st and 2nd European Advances in Digital Transformation Conference, EADTC 2018, Zittau, Germany and EADTC 2019, Milan, Italy}, booktitle = {Digital Transformation in Semiconductor Manufacturing: Proceedings of the 1st and 2nd European Advances in Digital Transformation Conference, EADTC 2018, Zittau, Germany and EADTC 2019, Milan, Italy}, editor = {Keil, Sophia and Lasch, Rainer and Lindner, Fabian and Lohmer, Jacob}, publisher = {Springer International Publishing}, address = {Cham}, doi = {10.1007/978-3-030-48602-0_11}, pages = {121 -- 128}, abstract = {The advent of multi-core CPUs in nearly all embedded markets has prompted an architectural trend towards combining safety critical and uncritical software on single hardware units. We present a novel architecture for mixed criticality systems based on Linux that allows us to consolidate critical and uncritical parts onto a single hardware unit. CPU virtualisation extensions enable strict and static partitioning of hardware by direct assignment of resources, which allows us to boot additional operating systems or bare metal applications running aside Linux. The hypervisor Jailhouse is at the core of the architecture and ensures that the resulting domains may serve workloads of different criticality and can not interfere in an unintended way. This retains Linux's feature-richness in uncritical parts, while frugal safety and real-time critical applications execute in isolated domains. Architectural simplicity is a central aspect of our approach and a precondition for reliable implementability and successful certification. While standard virtualisation extensions provided by current hardware seem to suffice for a straight forward implementation of our approach, there are a number of further limitations that need to be worked around. This paper discusses the arising issues, and evaluates the suitability of our approach for real-world safety and real-time critical scenarios.}, language = {en} } @inproceedings{RamsauerKiszkaLohmannetal., author = {Ramsauer, Ralf and Kiszka, Jan and Lohmann, Daniel and Mauerer, Wolfgang}, title = {Look Mum, no VM Exits! (Almost)}, series = {Proceedings of the 13th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '17)}, booktitle = {Proceedings of the 13th Annual Workshop on Operating Systems Platforms for Embedded Real-Time Applications (OSPERT '17)}, doi = {10.48550/arXiv.1705.06932}, abstract = {Multi-core CPUs are a standard component in many modern embedded systems. Their virtualisation extensions enable the isolation of services, and gain popularity to implement mixed-criticality or otherwise split systems. We present Jailhouse, a Linux-based, OS-agnostic partitioning hypervisor that uses novel architectural approaches to combine Linux, a powerful general-purpose system, with strictly isolated special-purpose components. Our design goals favour simplicity over features, establish a minimal code base, and minimise hypervisor activity. Direct assignment of hardware to guests, together with a deferred initialisation scheme, offloads any complex hardware handling and bootstrapping issues from the hypervisor to the general purpose OS. The hypervisor establishes isolated domains that directly access physical resources without the need for emulation or paravirtualisation. This retains, with negligible system overhead, Linux's feature-richness in uncritical parts, while frugal safety and real-time critical workloads execute in isolated, safe domains.}, language = {en} } @inproceedings{PichaBradaRamsaueretal., author = {Picha, Petr and Brada, Premek and Ramsauer, Ralf and Mauerer, Wolfgang}, title = {Towards Architect's Activity Detection through a Common Model for Project Pattern Analysis}, series = {First International Workshop on the Social and Organization Dimensions of Software, 5-7 April 2017, Gothenburg, Sweden}, booktitle = {First International Workshop on the Social and Organization Dimensions of Software, 5-7 April 2017, Gothenburg, Sweden}, publisher = {IEEE}, doi = {10.1109/ICSAW.2017.46}, pages = {175 -- 178}, abstract = {Software development projects leave a large amount of data in repositories of Application Lifecycle Management (ALM) tools. These data contain detailed histories of their respective projects, their results and decisions made along the way. Analysis of such data helps uncover various interesting facts about projects, e.g. their socio-technical structures and the actual (vs. purported) roles of team members. Based on experiences with tools supporting our research we are convinced that it is feasible to consolidate data from different ALM tools, tapping into the situation common in real-life projects. In this paper we report on our work towards a shared common data model and tool integration aimed at improved project analysis. We discuss how this can help in the identification of architects in the project organizational structures, their activity patterns and collaboration with other team roles.}, language = {en} } @inproceedings{RamsauerLohmannMauerer, author = {Ramsauer, Ralf and Lohmann, Daniel and Mauerer, Wolfgang}, title = {Observing Custom Software Modifications: A Quantitative Approach of Tracking the Evolution of Patch Stacks}, series = {Proceedings of the 12th International Symposium on Open Collaboration (OpenSym '16)}, booktitle = {Proceedings of the 12th International Symposium on Open Collaboration (OpenSym '16)}, editor = {Wassermann, Tony}, publisher = {ACM}, address = {New York}, doi = {10.1145/2957792.2957810}, pages = {1 -- 4}, abstract = {Modifications to open-source software (OSS) are often provided in the form of "patch stacks" -- sets of changes (patches) that modify a given body of source code. Maintaining patch stacks over extended periods of time is problematic when the underlying base project changes frequently. This necessitates a continuous and engineering-intensive adaptation of the stack. Nonetheless, long-term maintenance is an important problem for changes that are not integrated into projects, for instance when they are controversial or only of value to a limited group of users. We present and implement a methodology to systematically examine the temporal evolution of patch stacks, track non-functional properties like integrability and maintainability, and estimate the eventual economic and engineering effort required to successfully develop and maintain patch stacks. Our results provide a basis for quantitative research on patch stacks, including statistical analyses and other methods that lead to actionable advice on the construction and long-term maintenance of custom extensions to OSS.}, language = {en} } @inproceedings{HofmannRiehleKolassaetal., author = {Hofmann, Gottfried and Riehle, Dirk and Kolassa, Carsten and Mauerer, Wolfgang}, title = {A Dual Model of Open Source License Growth}, series = {Open Source Software: Quality Verification : 9th IFIP WG 2.13 International Conference, OSS 2013, Koper-Capodistria, Slovenia, June 25-28, 2013, Proceedings}, volume = {404}, booktitle = {Open Source Software: Quality Verification : 9th IFIP WG 2.13 International Conference, OSS 2013, Koper-Capodistria, Slovenia, June 25-28, 2013, Proceedings}, publisher = {Springer}, address = {Berlin}, doi = {10.1007/978-3-642-38928-3_18}, pages = {245 -- 256}, abstract = {Every open source project needs to decide on an open source license. This decision is of high economic relevance: Just which license is the best one to help the project grow and attract a community? The most common question is: Should the project choose a restrictive (reciprocal) license or a more permissive one? As an important step towards answering this question, this paper analyses actual license choice and correlated project growth from ten years of open source projects. It provides closed analytical models and finds that around 2001 a reversal in license choice occurred from restrictive towards permissive licenses.}, language = {en} } @misc{MauererWagner, author = {Mauerer, Wolfgang and Wagner, Daniel}, title = {Cyclic Tests Unleashed: Large-Scale RT Analysis with Jitterdebugger}, series = {Open Source Summit, North America, 17.07.2019}, journal = {Open Source Summit, North America, 17.07.2019}, language = {en} } @inproceedings{Mauerer, author = {Mauerer, Wolfgang}, title = {Are any big brothers watching you, and if yes, what can they tell about Debian}, series = {DebConf18 Hsinchu, Taiwan}, booktitle = {DebConf18 Hsinchu, Taiwan}, abstract = {Debian, as a collection of software packages and components, is known to be one of the largest software projects in the history of mankind. Combined with a traceable history over many years, the artefacts created by Debian developers and users make it one of science's favourite targets to quantitatively or qualitatively understand how real-world software development works (or does not), how people collaborate, and many other other related questions. Unfortunately, while scientists make ample use of the resources and artefacts created by FLOSS and friends, the exchange of insights and ideas does not seem to extend in both directions: Developers, users and integrators are often unaware of results obtained in science. This talk will introduce the Debian community to a selection the most important results obtained by scientific (software engineering) research, with a special focus on large-scale socio-technical analysis of projects like Debian, and the possible implications and improvements these may bring to Debian development itself.}, language = {en} } @misc{MauererRamsauer, author = {Mauerer, Wolfgang and Ramsauer, Ralf}, title = {Torturing Git for Fun and Profit}, series = {Microsoft Developer Meetup Regensburg 02.04.2019}, journal = {Microsoft Developer Meetup Regensburg 02.04.2019}, abstract = {In diesem Talk blicken Prof. Dr. Wolfgang Mauerer und Ralf Ramsauer unter die Haube des verteilten Versionskontrollsystems Git. Neben einer genauen Beschreibung der Strukturen und Plumbing APIs, mit denen Git intern Commits erzeugt und verkn{\"u}pft, gehen die Vortragenden auch auf n{\"u}tzliche Features und Standards ein, welche die Kollaborition in großen Open-Source Projekten erleichtern.}, language = {en} }