
SOFTWARE MEETS BUSINESS:
Die Konferenz für Software-Architektur
31.01. - 04.02.2022
SOFTWARE MEETS BUSINESS:
Die Konferenz für Software-Architektur
31.01. - 04.02.2022
Die im Konferenzprogramm der OOP 2022 Digital angegebenen Uhrzeiten entsprechen der Central European Time (CET).
Unser Programm gibt es auch als praktische PDF-Datei >>Zum Download
This training has been designed for developers who want to start working with Rust professionally and already have a solid background in programming from other C-like languages like Java, C++, C#, or JavaScript/TypeScript. It is not specialized on a specific field of use but should rather equip attendees with fundamental knowledge to successfully get started with Rust.
Target audience: Developers, Architects
Prerequisites: Solid background in programming from other C-like languages
Level: Practic…
Als Entwickler kann man ihnen fast nicht ausweichen – den Microservice-Architekturen. Die Entscheidung für deren Einsatz ist oft schon getroffen, bevor es die erste User-Story im Backlog und die erste Zeile Code im Repository gibt.
„Microservice“ lautet scheinbar die Antwort auf alle Fragen nach der besten Umsetzung heutiger Business-Probleme. Netflix und andere dienen als schillerndes Beispiel für den Erfolg dieser Architektur.
Aber sind sie wirklich der einzige Weg ins Ziel? Sind sie Fluch oder…
C++20 is now a year old. Time to take a closer look at the benefits you get when using C++ for standards 11 to 20. You learn about Coroutines by building a coroutine-based parser. The new ranges and the spaceship operator help you write less code. You will learn how Concepts help you to express constraints better and improve error messages. Doing things at compile-time saves run-time. Let‘s see how C++20 improves your code with the new features consteval and constinit. After this talk, you…
While Rust is typically pitched as systems programming language, it is equally adept at application development thanks to its high level features and great tooling. In addition to increased performance, native code has the advantage that it can easily be reused across different system components, an advantage even more pronounced in polyglot environments. In this talk, we would like to present our experience of using Rust to write core components in such a polyglot system.
Target Audience:…
C++ class design has been error prone since the beginning, until Scott Meyers told us about the Rule-of-Three. But even that is not enforced by the language. In addition, C++11 changed the set of compiler-provided special member functions and the intrinsic rules have become more complicated. However, instead of starting from the rules for special member functions, we will look at what role a class type plays and how that maps on what special member functions to define and how, if any. Examples…
For many embedded C++ applications, compliance with the AUTOSAR or Misra rules is required. Among them is AUTOSAR Rule A18-5-5 which does not allow memory allocations with new. Since new and delete violate A18-5-5, the default STL containers must not be used in applications requiring AUTOSAR compliance. This holds for many embedded applications. With the allocators available since C++17 in the namespace std::pmr (polymorphic memory resources) these requirements can often be satisfied.
Target…
Der verstärkte Einsatz von Microservices führt zu einer erhöhten Kommunikation zwischen den Systemkomponenten. Bei der technischen Realisierung sind REST-Schnittstellen für die synchrone und Message Broker für die asynchrone Informationsverteilung weit verbreitet. Wenn es aber um den Inhalt und die syntaktische Struktur der Nachrichten geht, kann es leicht zu einer babylonischen Sprachverwirrung kommen. In diesem Vortrag betrachten wir verschiedene Ansätze, um einer solchen Sprachverwirrung…
New MISRA C++ 202x are coming. This release will address modern C++ and thus is relevant not only for safety critical code in the automotive sector, but also for day-to-day C++ development. Expect the new MISRA rules to be less "miserable" for your day-to-day coding and use static analysis tooling to enforce them. Understand what kind of C++ will be considered unsafe, get examples of guidelines and learn which rules better to suppress in static analysis tools in non-safety-critical software.
Targ…
The adoption of static analysis of C++ and Java requires that the findings and errors can be prioritised in an efficient way. Our work shows that Machine learning (ML) can support this presentation of static analysis results to end-users. The ML engine learns from the codebase itself, and also observes the violations that the user fixes and which he ignores. The ML uses this to suggest the next best violations to fix, relying on probability of violations to be harmful or most likely to be a…
Maintaining a database containing millions of products can be very challenging, especially when the information you require of these products is subject to changes over time.
We show how we used state of the art Deep Learning methods (such as Transformers, BERT) in connection with smart text matching in order to extract relevant information from free-form text.
We also explain how we leveraged the existing database to create an automatically labelled training dataset.
Our model enables us to…
Some codebases are nicer to work with than others. This is true for applications, services, libraries, frameworks, even programming languages themselves. Is this a purely personal choice or are there universal characteristics of software that can make code a joy to work with? Daniel has been thinking about this for a long time, especially since he poked a stick at the SOLID principles for fun a few years ago and people came after him with pitchforks.
Extended Abstract
His recent post about why…
Architektonische Konzepte in Code abzubilden, bleibt in Java-Applikationen meist eine Herausforderung, ebenso wie die Trennung von fachlichem Code und Applikationsframework. Der Vortrag gibt einen Überblick über das jMolecules API und zeigt, wie Entwickler:innen die bereitgestellten Abstraktionen nutzen können, um Architektur-Konzepte auszudrücken. Darüber hinaus wird konkrete Integration mit Technologien sowie die Generierung von Dokumentation am praktischen Beispiel beschrieben.
Zielpublikum:…
It is very easy to get stuck in one way of doing things. This is as true of programming as it is of life. Although a programming paradigm represents a set of stylistic choices, it is much more than this: a programming paradigm also represents a way of thinking. It represents a set of patterns of problem framing and solving and contains the ingredients of software architecture.
This session explores the strengths and weaknesses of different programming styles, patterns and paradigms across…
Reactive Streams sind eine Schlüsseltechnologie für hochskalierbare verteilte Systeme, sie automatisieren Parallelität und Nebenläufigkeit transparent. Aber wie erziele ich ein ganz bestimmtes Parallelitätsverhalten? Wann laufen Datenproduktion oder Pipeline-Stufen parallel? Wie optimiere ich Performance und Skalierbarkeit?
Im Tutorial lernen Sie, Parallelität in Reactor und RxJava effizient auf nichtfunktionale Anforderungen Ihres Systems zuzuschneiden und lernen den grundlegenden Einsatz und…