1,721,060 research outputs found

    Ernst Denert Award for Software Engineering 2019

    Get PDF
    This open access book provides an overview of the dissertations of the five nominees for the Ernst Denert Award for Software Engineering in 2019. The prize, kindly sponsored by the Gerlind & Ernst Denert Stiftung, is awarded for excellent work within the discipline of Software Engineering, which includes methods, tools and procedures for better and efficient development of high quality software. An essential requirement for the nominated work is its applicability and usability in industrial practice. The book contains five papers describing the works by Sebastian Baltes (U Trier) on Software Developers’Work Habits and Expertise, Timo Greifenberg’s thesis on Artefaktbasierte Analyse modellgetriebener Softwareentwicklungsprojekte, Marco Konersmann’s (U Duisburg-Essen) work on Explicitly Integrated Architecture, Marija Selakovic’s (TU Darmstadt) research about Actionable Program Analyses for Improving Software Performance, and Johannes Späth’s (Paderborn U) thesis on Synchronized Pushdown Systems for Pointer and Data-Flow Analysis – which actually won the award. The chapters describe key findings of the respective works, show their relevance and applicability to practice and industrial software engineering projects, and provide additional information and findings that have only been discovered afterwards, e.g. when applying the results in industry. This way, the book is not only interesting to other researchers, but also to industrial software professionals who would like to learn about the application of state-of-the-art methods in their daily work

    Ernst Denert Award for Software Engineering 2022

    No full text
    This open access book provides an overview of the dissertations of the five nominees for the Ernst Denert Award for Software Engineering in 2022. The prize, kindly sponsored by the Gerlind & Ernst Denert Stiftung, is awarded for excellent work within the discipline of Software Engineering, which includes methods, tools and procedures for better and efficient development of high quality software. An essential requirement for the nominated work is its applicability and usability in industrial practice. The book contains five papers that describe the works by Jannik Fischbach (Netlight Consulting GmbH and fortiss GmbH), who won the award, entitled Conditional Statements in Requirements Artifacts: Logical Interpretation, Use Cases for Automated Software Engineering, and Fine-Grained Extraction, Christian Kirchhof's (RWTH Aachen University) From Design to Reality: An Overview of the MontiThings Ecosystem for Model-Driven IoT Applications, Sven Peldszus's (Ruhr University Bochum) research about Security Compliance in Model-driven Development of Software Systems in Presence of Long-Term Evolution and Variants, Florian Rademacher's (RWTH Aachen University) work on Model-Driven Engineering of Microservice Architectures, and Alexander Trautsch's (University of Passau) Usefulness of Automatic Static Analysis Tools: Evidence from Four Case Studies. The chapters describe key findings of the respective works, show their relevance and applicability to practice and industrial software engineering projects, and provide additional information and findings that have only been discovered afterwards, e.g. when applying the results in industry. This way, the book is not only interesting to other researchers, but also to industrial software professionals who would like to learn about the application of state-of-the-art methods in their daily work

    Why We Need an Explicit Forum for Negative Results

    No full text
    Current Computer Science (CS) research is primarily focused on solving engineering problems. Often though, promising attempts for solving a particular problem fail for non-avoidable reasons. This is what I call a negative result: something that should have worked does not. Due to the current CS publication climate such negative results today are usually camouflaged as positive results by non-evaluating or mis-evaluating the research or by redefining the problem to fit the solution. Such publication behavior hampers progress in CS by suppressing some valuable insights, producing spurious understanding, and misleading further research efforts. Specific examples given below illustrate and back up these claims. This paper is the announcement of a (partial) remedy: a permanent publication forum explicitly for negative CS research results, called the Forum for Negative Results, FNR. FNR will be a regular part of J.UCS

    The Forum for Negative Results (FNR)Guest Editorial

    No full text
    In September 1997, J.UCS published an article titled "Why we Need an Explicit Forum for Negative Results" [Prechelt, 1997]. It argued that when a plausible approach for solving a computer science or software engineering problem had failed to work out, it was silly for the scientific system not to publish the attempt iff a useful insight had been gained along the way nevertheless. Due to the strong bias of essentially all Computer Science publication venues towards "successful" research results, it was thus required to call for such negative results explicitly in order to avoid that those results would either be misleadingly disguised as successes or disappear in some closet. The article declared that J.UCS had thus agreed to create the "Forum for Negative Results (FNR)" as a permanent special section of J.UCS

    Industriell anwendbare verteilte Paarprogrammierung

    No full text
    Context: Pair programming is a common agile software development practice. It means that two developers sit in front of one computer, working on the same task. They share their thoughts and jointly work out the solution. Another present trend in the software industry is global software development, where teams work on a project but from different locations around the world. Regarding the physical closeness of the individuals, both approaches are diametral. Motivation: Although the close collaboration of pair programming and the distance of distributed teams appear to be incompatible, the biggest challenges of virtual teams are strongly encouraged by pair programming: communication, trust, and knowledge transfer. Thus, a crucial question is whether and how distributed teams can profit from pair programming by doing distributed pair programming. The little research in that field has been conducted in university contexts, and mostly focused on comparing the efficiency of pair programming and distributed pair programming. However, a consistent picture could not yet be drawn in that regard. Moreover, they have mostly utilized technical means that limited the participants’ interaction possibilities. Objective: This study is groundwork for establishing an understanding of how distributed pair program- ming of professional developers looks like when using a dedicated tool. Such a tool facilitates equal interaction possibilities for both participants, enabling them to separately browse their workspaces. This in turn bears the risk that they visually and mentally decouple, thereby thwarting the principles of pair programming. Accordingly, the overarching research goal is to sensitize participants to beneficial con- textual conditions and behavioral patterns that avoid decoupling and other obstacles during distributed pair programming. This work is a first step towards that goal. Method: This dissertation is a single-case study using elements of Grounded Theory methodology to conceptualize observations of a pair of professional software developers that used a dedicated tool for distributed pair programming called Saros. Results: The surprisingly positive findings show that, contrary to popular opinion, distributed pair programming can work well. The flexible interaction possibilities facilitated by a dedicated tool led to new, subtle interactions of the pair that had positive effects on the collaboration process and that usually are not possible in pair programming that unobtrusively. First of all, these new interaction phenomena are conceptualized and described. Furthermore, personality traits, behaviors, and circumstances that appeared to be relevant for distributed pair programming are discussed. Finally, the results raised new research questions like whether distributed pair programming is a better form of pair programming or whether the expressiveness of source code can be considered a ‘magic’ basis for remote interaction. Apart from the above, this work tries to encourage tool evaluation for distributed collaboration from a different perspective. Often, the yardstick for evaluating tools of remote collaboration is their degree of imitating the classical, non-distributed situation. This involves the risk of not adequately addressing the complexity of the new situation in the distributed setting with its own and new interaction channels and dynamics and thus not to discover their individual potential. In light of this, the results of my research show that distributed pair programming is a different work mode to just doing pair programming in a distributed fashion.Kontext: Paarprogrammierung (engl. pair programming (PP)) ist eine verbreitete Praktik der agilen Softwareentwicklung, bei der zwei Programmierer gemeinsam an einem Computer an einer Aufgabe arbeiten – sie teilen sich ihre Gedanken mit und erarbeiten gemeinsam die Problemlösung. Ein weiterer gegenwärtiger Trend in der Softwareindustrie ist global verteilte Softwareentwicklung (engl. global software development (GSD)), bei der Teams von unterschiedlichen Standorten aus zusammen an einem Projekt arbeiten. Unter dem Aspekt der Nähe der Beteiligten Personen sind beide Ansätze diametral. Motivation: Obwohl die enge Zusammenarbeit bei der Paarprogrammierung und die Entfernung der verteilten Teams konträr erscheinen, adressiert die Paarprogrammierung doch genau die größten Probleme von globaler Softwareentwicklung: Kommunikation, Vertrauen und Wissenstransfer. Eine wesentliche Frage ist daher, ob und wie verteilte Teams von den Vorteilen der Paarprogrammierung profitieren können, indem sie verteilte Paarprogrammierung machen (engl. distributed pair programming (DPP)). Die wenige Forschung in diesem Bereich wurde im universitären Umfeld durchgeführt und konzentrierte sich hauptsächlich auf die Frage der Effizienz von verteilter Paarprogrammierung im Vergleich zu klassischer Paarprogrammierung. Bislang konnten diesbezüglich jedoch keine konsistenten Aussagen getroffen werden. Auch wurden für die Durchführung der Studien weitgehend technische Hilfsmittel verwendet, die die Interaktionsmöglichkeiten der Teilnehmer stark beschränkten. Zielsetzung: Diese Arbeit ist Grundlagenforschung, um ein Verständnis dafür zu entwickeln, wie die verteilte Paarprogrammierung bei professionellen Softwareentwicklern funktioniert, wenn sie ein dediziertes Tool dafür nutzen. Mit einem Tool dieser Art sind sie in ihrer Interaktion gleichberechtigt und können sich unabhängig voneinander in ihren Arbeitsbereichen bewegen. Dies wiederum birgt das Risiko, dass sich die beiden auch visuell und mental entkoppeln können. Dies würde jedoch die Prinzipien der Paarprogrammierung konterkarieren und damit deren Vorteile, die sich aus der Gedankensynthese bei der Problemlösung ergeben. Das übergeordnete Forschungsziel dieser Arbeit ist daher, virtuelle Teams für Verhaltensweisen und Kontextbedingungen zu sensibilisieren, die Entkopplung und andere Prozessprobleme bei der verteilten Paarprogrammierung vermeiden helfen. Diese Arbeit ist ein erster Schritt im Hinblick auf dieses Ziel. Methode: Die vorliegende Studie ist eine Einzellfall-Analyse. Sie basiert auf Beobachtungen eines Paares professioneller Softwareentwickler, die mittels eines dedizierten Tools für die verteilte Softwa- reentwicklung, Saros, zusammen gearbeitet haben. Unter Zuhilfenahme von Elementen der Grounded Theory methodology (GTM) wurden aus den konkreten Beobachtungen Konzepte gebildet. Ergebnisse: Die überraschend positiven Ergebnisse zeigen, dass, entgegen der verbreiteten Ansicht, verteilte Paarprogrammierung sehr gut funktionieren kann. Die flexiblen Interaktionsmöglichkeiten, die ein dediziertes Tool bietet, führten zu neuen, subtilen Interaktionen des Paares. Diese wirkten sich positiv auf den Prozess aus und sind in dieser Dezenz bei der klassischen Paarprogrammierung oft nicht möglich. Diese neuen Interaktionsweisen werden in dieser Arbeit zunächst konzeptualisiert und beschrieben. Darüber hinaus werden Persönlichkeitseigenschaften, Verhaltensweisen und Kontextfaktoren beschrieben, die für eine gute verteilte Paargrogrammierung als relevant erkannt wurden. Die vorliegenden Ergebnisse führten wiederum zu neuen Forschungsfragen, wie beispielsweise ob verteilte Paarprogrammierung die bessere Paarprogrammierung ist oder ob die Ausdruckskraft von Quell- code eine ‘magische’ Basis für die verteilte Kollaboration ist. Auch möchte diese Arbeit den Impuls geben, Werkzeuge für die verteilte Zusammenarbeit aus einem anderen Blickwinkel als bisher zu evaluieren. Bislang ist der Maßstab für die Bewertung eines Tools für die verteilte Zusammenarbeit dessen Grad an Nachahmung der klassischen, nicht verteilten Situation. Dies birgt jedoch die Gefahr, nicht der Komplexität der neuen, verteilten Situation mit neuen Interaktionskanälen und Dynamiken gerecht zu werden und deren Potential zu entdecken. Unter diesem Aspekt zeigen die Ergebnisse dieser Arbeit, dass die verteilte Paarprogrammierung etwas anderes ist als nur Paarprogrammierung mit verteilt sitzenden Teilnehmern

    Ernst Denert Software Engineering Awards 2019

    No full text
    The need to improve software engineering practices is continuously rising and software development practitioners are highly interested in improving their software systems and the methods to build them. And well, software engineering research has numerous success stories. The Ernst Denert Software Engineering Award specifically rewards researchers that value the practical impact of their work and aim to improve current software engineering practices. This chapter summarizes the awards history as well as the current reward process and criteria.</p

    Ein Modell zum Konzept Klarheit gewinnen und dessen Ursachen und Auswirkungen auf die Zusammenarbeit in selbstorganisierten Softwareentwicklungsteams

    Get PDF
    Hintergrund: Agile Softwareentwicklungsteams setzen Scrum unterschiedlich und individuell in der Praxis um. Anleitungen, Leitfäden und Handreichungen aus der Praxis und Forschung verlieren sich in den Details einzelner Werkzeuge,Faktoren oder Teile. Forschungsfrage: Was hält selbstorganisierte Softwareentwicklungsteams zusammen und fördert eine gute Zusammenarbeit? Methode: Es wurde mit Grounded-Theory-Methodologie nach Charmaz geforscht. Es wurden in 5 Scrum-Teams aus der Praxis intensiv Daten erhoben und weitere Interviews und Validierungen mit Expert_innen durchgeführt. Ergebnisse: Es wurde ein Modell entwickelt, das als zentrales Konzept "Klarheit gewinnen" enthält. Erstmals werden bekannte und neue Erkenntnisse zu einem gemeinsamen Modell verbunden und erklären Grundlagen funktionierender Zusammenarbeit in agilen Softwareentwicklungsteams. Fazit: In der Validierung wird deutlich, dass agile Teams das Modell anwenden können, um ihre Zusammenarbeit zu analysieren und zu stärke

    Qualitative Analyse des Wissenstransfers bei der Paarprogrammierung

    No full text
    Pair programming (PP) is the practice of two developers working closely together on one computer to solve a technical task. It is used by developers in industry in order to tackle difficult problems, to produce code with better design and fewer defects, and to learn together and from another. The transfer and acquisition of knowledge is central to all these expectations, but whether and how they actually come to pass is an open question. My goal is to understand the mechanisms of knowledge transfer in PP in order to formulate practically relevant results and advice for software developers. I perform a qualitative analysis based on the Grounded Theory Methodology and the Base Layer for pair programming research. I analyze 27 industrial PP sessions recorded in ten companies: The developers work on their everyday tasks covering different aspects of software development, with whom and for as long they want, totaling 40 hours of material. I performed supporting field observations and ad hoc interviews in two of the companies. My results are a detailed bottom-up conceptualization of knowledge transfer processes in pair programming, ranging from individual utterances, over knowledge transfer episodes, to overall session dynamics that are shared across different types of pairings. In particular, I find that: 1. Knowledge is transferred in basically all PP sessions, not just in supposed “expert/novice” constellations. 2. Knowledge regarding the software system is by far the most commonly transferred type, and most developers appear familiar with transferring it to or from the partner and to acquire it together. 3. General software development knowledge is also transferred between partners, but less than system knowledge and only after the pair dealt with its system knowledge needs. 4. Additional types of knowledge, such as application domain concepts, were not explicit topics but merely showed up as identifiers in the source code. 5. Pairs that maintain a shared understanding of the system and software development in general may have short,but highly productive focus phases; others may suffer from a breakdown of the pair process when such a shared understanding is lacking. A missing shared plan, reduced workspace awareness, or language barriers further reduce their togetherness. I validated the high-level concepts with practitioners from four companies—two from the original data collection and two additional—and developed three ideas for how to put my results to use in everyday software development.Die Idee der Paarprogrammierung (PP) besteht darin, dass zwei Softwareentwickler gemeinsam an einem Computer an einer technischen Aufgabe arbeiten. In der Berufspraxis wird sie eingesetzt um schwierige Probleme anzugehen, um bessere Programmentwürfe und Programmcode mit weniger Defekten zu erzielen, und damit Entwickler Neues gemeinsam oder voneinander lernen können. Der Transfer und die Aneignung von Wissen ist zentral für all diese Erwartungen; ob und wie sie aber tatsächlich erfüllt werden, ist eine offene Forschungsfrage. Mein Ziel ist es, zunächst zu verstehen wie Wissenstransfer bei der PP tatsächlich funktionert, um dann praktisch relevant Ergebnisse für Softwareentwickler zu formulieren. Meine qualitative Analyse basiert auf der Methode der Grounded Theory und der Basisschicht für Paarprogrammierungsforschung. Ich habe 27 industrielle PP-Sitzungen mit einer Gesamtlaufzeit von 40 Stunden analysiert. Das Material stammt aus zehn Firmen, wobei die Paare bei ihren alltäglichen Softwareentwicklungsaufgaben mit selbstgewählten Partnern und selbstbestimmter Sitzungsdauer aufgezeichnet wurden. Unterstützend habe ich in zwei der Firmen Feldbeobachtungen und Ad-Hoc-Interviews durchgeführt. Das Ergebnis meiner Arbeit ist eine Bottom-Up-Konzeptionalisierung von Wissenstransferprozessen bei der Paarprogrammierung, angefangen bei einzelnen Äußerungen, über Episoden von Wissenstransfer bis hin zu einer Gesamtdynamik, die Sitzungen verschiedener Paarkonstellationen gemein ist. Meine Erkenntnisse im Einzelnen: 1. Wissenstransfer erfolgt in allen PP-Sitzungen, nicht nur in Konstellationen eines vermeintlichen “Experten” mit einem “Neuling”. 2. Wissen über das Softwaresystem wird mit Abstand am häufigsten transferiert. Die meisten Entwickler scheinen den Austausch und den gemeinsamen Erwerb dieses Wissens gewohnt zu sein. 3. Wissen über Softwareentwicklung im Allgemeinen wird ebenfalls in PP-Sitzungen transferiert, allerdings in einem geringeren Maße als System-Wissen und auch erst dann, wenn das Paar seinen Bedarf an System-Wissen geregelt hat. 4. Weitere Wissensarten, wie etwa Wissen über die Anwendungsdomäne, waren keine ausdrücklichen Themen in den Sitzungen, sondern traten lediglich in Form von Bezeichnern im Quellcode in Erscheinung. 5. Paare, die im Laufe ihrer Sitzung ein gemeinsames Verständnis von ihrem konkreten Softwaresystem und von Softwareentwicklung allgemein erarbeiten und pflegen, können kurze, aber sehr produktive Fokus-Phasen haben. Der Paarprogrammierungsprozess kann allerdings auch völlig zusammenbrechen, wenn ein solches gemeinsames Verständnis zu schwach ist und der Zusammenhalt des Paares weiter geschwächt ist durch das Fehlen eines gemeinsamen Plans, durch mangelndes Gewahrsein des Arbeitsplatzes (etwa bei räumlich verteilter Paaprogrammierung, aber auch durch zu kleine Schrift), oder durch Sprachbarrieren. Ich habe die wichtigsten Konzepte meiner Arbeit sowie drei konkrete Ideen zu ihrer Einbettung in den Entwicklungsalltag mit Praktikern aus zwei der ursprünglichen Unternehmen sowie zwei weiteren Firmen erfolgreich validiert

    Ernst Denert Software Engineering Award 2020

    No full text
    Ths is the introductory chapter of the book on the Ernst Denert Software Engineering Award 2020. It provides an overview of the 11 nominated PhD theses, the work of the award winner, and the structure of the book
    corecore