Was soll denn dieses Buch?

Dieses Buch sammelt verschieden Ideen, Aspekte und Themen resultierend aus meiner täglichen Arbeit im Büro und Gedanken von zu Hause. Dieses Buch enthält natürlich keine konkreten Interna meines Arbeitgebers oder identifizierbare Anekdoten.

Fokussiert wird sich hier auf das Systems Engineering, die Modellierung von Elemeenten, Schnittstellen und Eigenschaften komplexer Systeme. Zerlegung ist die Kunst. Hierbei betrachten wir auch die großen Standards wie UML, SysML and MOF. Weiterhin gibt es hier Anforderungen, Architektur, Aufgaben, Projektmanagement und anderer bekloppeter Dinger.

Das komplette Buch ist zur besseren Verständlichkeit in deutsch geschrieben. Erreiche ich nicht das weltweite Publikum besser? Darüber habe ich lange nachgedacht, aber mich aus folgenden Gründen doch für die deutsche Sprache entschieden:

  • Ich schreibe eleganter uns effizienter

  • Die Erläuterungen sind plastischer und besser verständlich

  • Es gibt ausreichend gute Übersetzungsmaschinen

Die Quelle des Buchs ist verfügbar unter The source of the book is available in Github und Pull Requests sind immer willkommen.

Aber nun…​ lass uns einfach starten!

Gute Tools

Asciidoctor

https://asciidoctor.org/

Ein Konvertierungstool um aus .adoc-Dateien ein Html zu erzeugen. Auch das Geschriebene, welches du gerade liest, ist ein .adoc-Dokument. In Kombination mit Jenkins ein einfach gutes Tool.

Jenkins

https://www.jenkins.io/

Mittlerweile das Standard-Tool der automatisierten Ausführung von Skripten, wie zum Beispiel Build-Skripte, Test-Ausführungs-Skripte oder Konvertierungs-Skripte.

Visual Studio Code

https://code.visualstudio.com/

Ein sehr populärer Editor zum Bearbeiten von Code-, Markup und Daten-Dateien welcher unter allen großen Betriebssystemen läuft. Nutze ich täglich, wenn ich nicht Rider oder Visual Studio für C# nutze.

Visual Studio

https://visualstudio.microsoft.com/de/

Das Tool für Windows-Entwicklung, allerdings für C# nutze ich persönlich den Rider

JetBrains Rider

https://www.jetbrains.com/de-de/rider/

Ein platform-übergreifendes Tool zur C#/.Net Entwicklung unter Windows und Linux. Mein persönliches Entwicklungstool.

Kostet ein wenig Geld, aber ist in meinen Augen das Abo wert.

DotNet Benchmark

https://github.com/dotnet/BenchmarkDotNet

Gehört mit NUnit zu einer der Standard-Tools für die Bestimmung der Laufzeit von Methoden. Das Tool kümmert sich automatisch um die Analyse des Overheads und der notwendigen Wiederholraten um eine gewisse Konfidenz zu erreichen. Bevor man mit "StopWatch" sein eigenes Benchmarking aufbaut, empfehle ich eine Prüfung dieser Bibliothek.

SmartGit

https://www.syntevo.com/smartgit/

Aktuell mein Lieblings-Git-Tool. Sieht nicht hypig aus, funktioniert sehr zuverlässig und besitzt eine gute grafische Darstellung der Revisions-Logs. Insgesamt auch, wie Git halt so ist, sehr schnell.

Alkoholfreie Bier

Anbei ein Rating verschiedener alkoholfreier Biere…​ Welche mag ich, welche mag ich nicht…​

Mönchshof - Original Naturtrüb’s Alkoholfrei

Getrunken habe ich es gut gekühlt. 6/10 Punkte

Gibt es in einer 0,5er Ploppflasche. Den Plopp-Test hat das Bier gut überstanden, es ploppt. Ausreichen Kohlensäure, schmeckt ein wenig dünn und verstopft nicht den Geschmack…​ Der Alkohol fehlt. Vom Geschmack her ist das Bier bierig, schmeckt beim Abgang nur leicht süßlich und eine Malznote findet sich, bei herbigem Grundgeschmack. Nach dem Genuss einer vollen Flasche habe ich spontan keine Lust auf ein zweites Bier.

System Engineering

Objekte

Lass uns mit den Objekten starten. In diesen Kapitel lernen wir etwas über die Schwierigkeite Dinge zu Objekten zu machen und zwar in einer Art und Weise, dass die beabsichtigte Aussage über das Objekt auch deutlich kommunizierbar ist.

Fragt man 10 verschiedene Persoenen über die Definition eines konkreten Objektes, kann man, vereinfacht gesagt, 10 verschiednee Antworten erhalten, die sich teilweise überlappen, aber auch teilweise völlig widersprechen.

Wir werden hier auch eine angemessene Definition des Terminus "Objekt" reden. Aber bevor wir das tun sollten wir darüber nachdenken, ob es überhaupt Sinn ergibt, eine Definition für das "Objekt" suchen. Wäre das Leben nicht schön, wenn wir einfach die Nicht-Definition akzeptieren und jeden mit seine eigenen Mindset denken, reden und handeln lassen.

Ja, das Leben ist schön…​ je unkonkreter, des besser…​ allerdings fangen die Schwierigkeiten an, wenn wir mit Menschen zusammenarbeiten und jeder versteht, warum man ein Objekt genau so beschreibt, wie man es tut und wie man es am Besten beschreiben soll und warum es für eine sachliche Diskusssion wichtig ist, ein Objekt sauber zu beschreiben und abzugrenzen.

Einige Dinge sind einfach…​ Wie ein Fahrzeug, aber selbst ein Fahrzeug kann in völlig unterschiedlichen Formen auftreten. Ist ein Auto ein Fahrzeug? Ist ein Fahrrad ein Fahrzeug oder ist ein Inline-Skater ein Fahrzeug? Oder reden wir über ein 'Eis'. Ist eine Eis zum Schlecken oder Gletscher-Eis genannt?

Hier gibt es eine Definition:

Some 'things' are obvious…​ Like a car, but even a car can have a total different shapes. Some 'things' seem to be clear for everyone. Talking about 'ice' has a different meaning while sitting on the beach and looking for a good and tasteful icecream or sitting in the antarctis and analysing glaciers.

Hier haben wir eine Definition: Ding an sich - OK, die Definition ist so hübsch, dass sie anstrengend ist…​ befassen wir uns nicht damit.

Suchen wir was Anderes: Res. Gefällt mir irgendwie, holen wir das für uns Relevante heraus:

  • Eine Sache kann körperlich oder unkörperlich sein

  • Eine Sache ist beschreibbar

  • Der Name einer Sache ist zweitrangig zu der Sache selbst

Damit kann man schon ein wenig anfangen, aber reicht mir noch nicht.

Der DatenMeister

Inhalte

Dieses Dokument gibt dir einen kurzen, ungeordneten Überblick über verschiedene Aspekte des DatenMeisters.

Jedes Feature wird in einem Kapitel des Dokumentes behandelt und ist in jeweils drei Unterbereiche unterteilt:

  1. Eine Beschreibung für den Endnutzer

  2. Eine Beschreibung für den Modellierer des Datenmodells

  3. Eine Beschreibung des internen Verhaltens des DatenMeisters für Entwickler