Wiederbelebung des MDD4All.de Blogs

Lange war es still auf meinem Blog. Viele andere Dinge, sowohl beruflicher als auch privater Natur, hatten höhere Priorität. Ich habe mir nun aber vorgenommen ab diesem Jahr wieder öfter Beiträge zu den Themen Systems und Software Engineering zu schreiben.

Vor einigen Monaten habe ich außerdem firmenintern meine Rolle verändert. Ich bin seit Februar nun als hauptamtlicher Ausbilder bei KARL MAYER für die Ausbildung im Bereich Informatik und IT für die Berufsausbildung der Fachinformatikerinnen und Fachinformatiker verantwortlich.  Hier gehört es zu meinen Aufgaben Themen und Wissen zu vermitteln. Daher fügt sich mein Blog als eine zusätzlich nutzbare Informationsquelle hier auch ganz gut ein.

Themen der letzten Jahre

In den letzten drei Jahren habe ich mich insbesondere mit zwei Themen auseinandergesetzt, über die ich in kommenden Beiträgen detaillierter schreiben will:

Software Engineering mit .NET

Softwareentwicklung mit .NET und hier insbesondere auch der Anwendung der relativ neuen Blazor-Technologie für Web-Frontend-Anwendungen mit C# und HTML war eines der Themen welches ich sowohl beruflich, als auch ehrenamtlich vorangetrieben habe.

SpecIF

Als aktives Mitglied der Arbeitsgruppe PLM4MBSE (Product-Lifecycle Management for Model Based Sytems Engineering) innerhalb der Gesellschaft für Systems Engineering (GfSE e.V.) habe ich an der Definition, Weiterentwicklung und Standardisierung der Specification Integration Facility (SpecIF) gemeinsam mit meinem lieben Kollegen Dr. Oskar von Dungern mitgewirkt. Die Initiative adressiert die Problematik des schwierigen Datenaustausches innerhalb des Produktlebenszyklus eines Produktes. Mit SpecIF sollen Probleme wie der Datenaustauch zwischen verschiedenen Werkzeugen und verschiedenen Projektbeteiligten und damit entstehende Medienbrüche zukünftig vermieden werden. Weitere Informationen zu SpecIF sollen später hier folgen.

An dieser Stelle nur so viel: SpecIF ist ein Datenformat und ein Begriffsmodell/Vokabular mit dem man Daten und Informationen, die während der Entwicklung und dem Betrieb eines Produktes/Systems entstehen, abbilden, austauschen und integrieren kann. Im letzten Jahr habe ich auch ein Tutorial beim Tag des Systems Engineering gehalten. Die Folien dazu gibt es hier: SpecIF Tutorial

SpecIF und .NET praktisch kombiniert

Durch Kombination der beiden Themen – SpecIF und .NET-Entwicklung – habe ich in den letzten Jahren eine umfangreiche Sammlung von Softwarebibliotheken und Anwendungen realisiert, welche als SpecIF-Referenzimplementierung gelten können. Diese Werkzeuge und Bibliotheken – durchweg realisiert mit .NET – ermöglichen praktische Anwendungen mit SpecIF wie die Erstellung von Anforderungsspezifikationen, Testfällen oder anderer Projektdokumentationen und -spezifikationen.

Alles ist Open-Source

Sämtliche Ergebnisse dieser Entwicklungen stehen als Open-Source auf Github unter MIT-Lizenz zur Verfügung und können damit für kommerzielle und nichtkommerzielle Zwecke genutzt werden.

Weitere Informationen

Weitere Informationen zu SpecIF und der von mir entwickelten Software „SpecIFicator“ finden sich auf www.specificator.com.

TypeScript–das bessere JavaScript!

Ich habe mich mit Webprogrammierung immer schwer getan. Insbesondere mit JavaScript konnte ich mich nie richtig anfreunden. Warum das so ist? Na ja. Ich habe von Anfang an seit ich programmiere, immer mit streng typisierten Programmiersprachen wie Java oder C# gearbeitet. Hier ist alles genau definiert und man muss – zumindest vor der Einführung von var – immer angeben von welchem Typ genau eine Variable ist.

Auch die Eigenart von JavaScript die Sichtbarkeit von Variablen nicht an einen durch geschweifte Klammern definierten Block zu koppeln, ist etwas, was ich erst mal ungläubig zur Kenntnis nehme.

Ich habe schon ein paar Anläufe gemacht mich mit JavaScript näher zu befassen, aber irgendwie wurden wir nie richtige Freunde. Anfang des Jahres habe ich ein neues Projekt übernommen, bei welchem die JavaScript-Umgebung Node.js zum Einsatz kam. In dem Projekt wurde allerdings nicht mit JavaScript programmiert, sondern mit TypeScript. Diese Sprache kannte ich vorher nicht und ich musste mich erst mal schlau machen, um was es sich dabei handelt.

TypeScript ist eine von Microsoft vorangetriebene Programmiersprache und eine Obermenge von JavaScript. Das bedeutet, dass JavaScript komplett in TypeScript enthalten ist. Aber das tolle daran ist, dass TypeScript genau das bietet was Leute wie ich an JavaScript vermissten, nämlich die Möglichkeit der Typisierung, Blocksichtbarkeit von Variablen mit dem Schlüsselwort let, die Möglichkeit Klassen und Sichtbarkeiten zu definieren wie in einer objektorientierten Sprache und noch vieles mehr.

Der TypeScript-Compiler liest dann die TypeScript Dateien ein und macht daraus wieder JavaScript Code. Dieser kann ganz normal bei Webseiten, Servern oder in Node.js verwendet werden, denn alle erweiterten Konstrukte werden in pures JavaScript übersetzt.

Ich habe selbst mehrfach die Erfahrung gemacht mit JavaScript schier zu verzweifeln, aber mit TypeScript schneller und sauberer ein Ergebnis zu erreichen. Der Code ist dabei viel verständlicher und  besser wartbar als JavaScript mit der selben Funktionalität. Daher kann ich, sofern Sie es nicht bereits kennen und irgendetwas im JavaScript Umfeld machen wollen, nur empfehlen sich auf jeden Fall TypeScript einmal genauer anzusehen.

Hier noch ein paar Links: