Veröffentlicht: von

Dieses Thema kann als Praxisprojekt mit Option auf anschließende Bachelorarbeit bearbeitet werden, oder aber direkt als Bachelorarbeit. Praxisprojekte und/oder Bachelorarbeiten können auch im Verbund mit mehreren Studierenden bearbeitet werden.

Worum geht es?

Microservices ermöglichen eine sehr lose gekoppelte und daher potentiell gut dezentral änderbare Architektur. Konsequent auf eine gesamte IT-Landschaft angewendet, gewinnt man ein hohes Maß an Flexibilität.

Diese Art der losen Kopplung passt zunächst einmal nicht gut auf IT-Landschaften, die von sehr langen, komplexen Prozessen geprägt ist, die sich quer durch die gesamte Landschaft ziehen. Diese Art von Strukturen findet man beispielsweise bei Versicherungen. Ein Schadensprozess läuft durch viele komplexe IT-Systeme (Vertragsmanagement, CRM, Schadensystem, In-/Exkasso, etc.). Daher sind Versicherungs-IT-Landschaften in der Regel von einem klassischen SOA-Ansatz geprägt, bei dem Prozesse zentral in einer Prozess-Engine abgebildet werden und von dort dann die dedizierten IT-Systeme über Service-Schnittstellen aufrufen. Man spricht hier von Orchestrierung des Prozesses, da dieser zentral gesteuert abläuft.

Wie modelliert man so eine IT-Landschaft als Microservices? Ist das überhaupt sinnvoll? Die Frage ist von hoher praktischer Relevanz. Die Standard-Antwort der MS-Community ist das Prinzip der Choreographie, bei dem die einzelnen MS durch passendes Servicedesign den Prozess implizit abbilden, z.B. mit dedizierten Abort-Events.

Zwei einander widersprechende Ansätze sind in den nachfolgenden beiden Blog-Posts (der zweite ist eine Antwort auf den ersten) abgebildet.

Kurz zusammengefasst skizziert der erste Post einen Hybrid-Ansatz, der Microservices und eine SOA-ähnliche Orchestrierung zusammenführt. Der zweite Post skizziert die Entsprechung als reine MS-Choreographie. Beide Posts widersprechen einander. Wer hat Recht? Dazu soll diese Arbeit eine Antwort geben.

Inhalt

Die Arbeit sollte zunächst analysieren, ob man Geschäftsprozesse nach bestimmten Kriterien klassifizieren kann, anhand deren man eine Entscheidung für eins der beiden Paradigmen „Orchestrierung“ vs. „Choreographie“ treffen kann. Ein praktisches Prozessbeispiel sollte definiert werden, das eine gewisse realistische Komplexität simuliert, gern anhand eines Versicherungs-Beispiels.

Dann sollte für die Bewertung ein Kriteriensystem definiert werden, anhand dessen sich die beiden Paradigmen bewerten lassen. Beide Paradigmen sollten prototypisch implementiert und anhand der Kriterien verglichen werden. Abschließend sollte eine Empfehlung ausgesprochen werden.

Ein praktischer Anwendungsfall, in dem die gewählte Lösung anhand eines Beispiels (als Prototyp) in einem Produktivsystem umgesetzt wird, kann die Arbeit abrunden. Als Produktivsystem kann dabei die konsequent und kompromisslos als System von Microservices ausgelegte Lehr- und Lernplattform ArchiLab darstellen.

Bei Interesse

Sie haben allgemeine Rückfragen, konkretes Interesse oder sogar Änderungs-/Erweiterungsvorschläge? Bitte vereinbaren Sie unverbindlich einen Termin mit mir (am einfachsten über https://bente.youcanbook.me/), und wir können die praktische Ausgestaltung des Themas diskutieren.

Veröffentlicht: von

Dieses Thema kann als Praxisprojekt mit Option auf anschließende Bachelorarbeit bearbeitet werden, oder aber direkt als Bachelorarbeit. Praxisprojekte und/oder Bachelorarbeiten können auch im Verbund mit mehreren Studierenden bearbeitet werden.

Worum geht es?

Microservices sind von ihrer Definition her Technologie-agnostisch. Das Umsetzungsteam hat – im Rahmen der strategischen Leitplanken der IT-Organisation – Freiheit in der Technologiewahl. Das schließt natürlich auch die Programmiersprache ein.

Aber gibt es tatsächlich signifikante Unterschiede, wenn man auf diese Ebene heruntersteigt? Oder ist „Java doch für alles gut“? Es gibt eine Anzahl zu klärender Fragen:

  • Welche Standards muss eine Programmiersprache mitbringen, damit man sinnvoll überhaupt einen Microservice implementieren kann?
  • Gibt es signifikante Vorteile / Nachteile bei verschiedenen Sprachen?
  • Wie sieht es mit der Verfügbarkeit von Frameworks in bestimmten Sprachen aus?
  • Wie gut funktioniert die Einbindung in eine Continuous-Integration-Pipeline?

Inhalt

In dieser Arbeit soll eine Bewertungsmethodik für Microservice-Teams entstehen, mit der diese schnell entscheiden können, welche Sprache für die Problemstellung interessant ist.

Dazu sollten Evaluierungskriterien vorab festgelegt werden. Weiterhin müssen sinnvolle „Klassen“ von Services definiert werden (nach Literaturrecherche und/oder empirischen Expertenbefragungen).

Darauf aufbauend werden eine Anzahl von Proof-of-Concept-Implementationen umgesetzt und gemäß der Kriterien bewertet. Abschließend wird daraus die Methodik definiert, die z.B. aus einem Satz von „wenn – dann“ Regeln bestehen kann, gepaart mit Technologieempfehlungen.

Bei Interesse

Sie haben allgemeine Rückfragen, konkretes Interesse oder sogar Änderungs-/Erweiterungsvorschläge? Bitte vereinbaren Sie unverbindlich einen Termin mit mir (am einfachsten über https://bente.youcanbook.me/), und wir können die praktische Ausgestaltung des Themas diskutieren.

Veröffentlicht: von

Problemstellung

Für die Erstellung mobiler Web Clients stehen unzählige Tools zur Auswahl, bei denen Vor- und Nachteile nicht immer klar erkennbar sind. Es ist nicht immer klar welches Tool sich für welchen Anwendungsfall eignet, so erfolgt bei der Umsetzung die Technologiewahl oft zufällig oder nur bedingt fundiert. Auch lassen sich Gemeinsamkeiten bei verschiedenen Technologien nicht immer erkennen.

In der Praxis kann Dies insbesondere dann zu Problemen führen, wenn sich im Nachgang herausstellt, dass es für das umgesetzte Projekt eine passendere Technologiewahl gegeben hätte und das Projekt im schlimmsten Fall noch einmal für eine weitere Plattform implementiert werden muss.

Abgeleitete Forschungsfrage

  • Welche wesentlichen Unterschiede gibt es bei der Erstellung von mobilen Web Clients zwischen Responsive Web Clients, nativem App Design und Cross Plattform Development?
  • Lassen sich Anwendungen in Kategorien einteilen, für die eine fundierte Technologieentscheidung getroffen werden kann?
  • Welches der Konzepte eignet sich für welchen Anwendungsfall besser?

Vorgehen

Um eine Entscheidungshilfe bei der Erstellung eines Web Clients zu leisten sollen wesentliche Unterschiede bei der Entwicklung herausgearbeitet werden. Relevante Konzepte für Mobile Web Clients sind die native App Entwicklung auf der jeweiligen Plattform, die Cross Plattform Entwicklung unter Zuhilfenahme entsprechender Tools sowie die plattformunabhängige Entwicklung von Responsive Web Clients, diese drei Konzepte werden als Forschungsgegenstand genommen.

Es sollen Unterschiede und Gemeinsamkeiten herausgestellt werden. Dies geschieht durch Recherche über die jeweiligen Konzepte in Literatur und einschlägigen Internetforen.

Im Anschluss werden durch Recherche in den App Stores verschiedener Anbieter, Entwicklerforen und Literatur mobile Applikationen in Kategorien eingeteilt basierend auf den Anforderungen, die sie an das jeweilige Gerät stellen und ihrer Funktionsweise. Relevante Unterscheidungsfragen hierzu könnten sein:

  • Liest/schreibt der Client aus/in den Speicher?
  • Benötigt der Client Zugriff auf weitere Apps?
  • Benötigt der Client Zugriff auf Gerätefunktionen (Kamera, Mikrofon etc.)

Erkenntnisse über die Vor- und Nachteile der verschiedenen Konzepte werden durch Implementierung erzielt. Für die verschiedenen Anwendungskategorien wird jeweils ein Prototyp definiert, diese prototypischen Anwendungen werden dann je einmal in einem Cross Plattform Development Tool, einem nativem App Development Tool und als Responsive Web Client implementiert. So kann für die verschiedenen Anwendungsfälle das passendste Konzept ermittelt werden. Bewertet wird hierbei nach Entwicklungsaufwand und genereller Umsetzbarkeit.

Abschließend werden alle Ergebnisse zusammengefasst so dass eine mögliche Empfehlung für ein Konzept je Anwendungsfall ausgesprochen werden kann.

Bearbeitung durch

Merlin Bodis

Abschluss

Mai 2019

Veröffentlicht: von

Modellierung komplexer Sachverhalte ist ein elementarer Teil des Software-Spezifikationsprozesses. Als Standard hat sich dabei UML etabliert. In den Informatik-Bachelor-Studiengängen am Campus Gummersbach werden etwa die Hälfte der 14 UML-Diagrammtypen theoretisch und praktisch gelehrt.

Obwohl die Studierenden die Übungen und Praktika auch ohne Tool-Unterstützung bearbeiten können, ist die Benutzung eines UML-Editors im Sinne einer praxisnahen Ausbildung sinnvoll. Wenn in realen Softwareprojekten UML eingesetzt wird, dann in aller Regel unterstützt durch ein professionelles Tool. Durch die Komplexität von UML sind diese Tools allerdings entweder funktional unvollständig, oder sind schwer erlernbar und weisen Mängel in der User Experience auf (oder beides).

In Fortsetzung einer Bachelorarbeit zum gleichen Thema sollen in dieser Arbeit gebräuchliche und für die Softwaretechnik verfügbare UML-Tools bezüglich ihrer Eignung für die Lehre untersucht und verglichen werden. Der Fokus soll dabei auf User Experience und funktionaler Vollständigkeit liegen. Die Untersuchung soll empirische Methoden nutzen und so breit angelegt sein, dass das Ergebnis für die allgemeine Softwaretechnik-Hochschullehre anwendbar ist.

Dies umfasst mindestens die folgenden Schritte:

  • Vorauswahl geeigneter UML-Tools auf Basis objektiver Kriterien
  • Definition eines Forschungsdesigns, bei dem auch die Softwaretechnik-Lehrveranstaltung (Bachelor) der betreuenden Professoren einbezogen werden sollen. So wäre etwa denkbar, verschiedenen Praktikumsgruppen verschiedene Tools zuzuweisen und deren Lernerfolg geeignet zu messen.
  • Mitwirkung an der Betreuung von Bachelor-Projekten und –Abschlussarbeiten, die dann Detailaspekte genauer untersuchen können
  • Mitarbeit an der Veröffentlichung der Ergebnisse

Das Vorhaben kann als Masterarbeit oder als Guided Project (GP) im Master ausgeführt werden. Bei einem GP gelten die üblichen Regeln (Mindestteilnehmerzahl zwei Personen, offene Ausschreibung). Nach Absprache ist es auch möglich, nur Teile des Vorhabens zu bearbeiten, dies dann aber in größerer Tiefe.

Die Betreuung erfolgt gemeinsam durch die Professoren Stefan Bente und Mario Winter sowie ggfs. Mitarbeiter.

 

 

Veröffentlicht: von

Die Digitalisierung hat inzwischen alle wirtschaftlichen und gesellschaftlichen Facetten in Deutschland erfasst. Die Frage ist nicht mehr ob, sondern wie der digitale Wandel erfolgt. Wie können wir die Digitalisierung gestalten, um vom Getriebenen zum Treiber des digitalen Wandels zu werden? Welche Chancen ergeben sich für die Wirtschaft und die Region?

Die TH Köln, die Kreise Rhein-Sieg, Rhein-Berg und Oberberg, die IHK Köln, die REGIONALE 2025 Agentur GmbH  und OPITZ CONSULTING veranstalten diese Konferenz gemeinsam am 23. Juni 2018 auf unserem Campus Gummersbach. Es wird ca. 70 Vorträge, Keynotes und Diskussionsrunden geben. Eingeladen sind alle Studenten und Dozenten, Vertreter der lokalen Wirtschaft, Politik und Organisationen und alle Interessierten am Thema Digitalisierung in der Region Bergisches-RheinLand haben. Die Teilnahme ist kostenfrei.

Das ist für uns an der TH eine einmalige Chance, als „Heimspiel“ interessante Themen, Forschungsergebnisse und Abschlussarbeiten zu präsentieren – vor einem fachkundigen Publikum, aber auf eigenem Boden und somit mit viel weniger Aufwand als sonst bei Konferenzen. Folgende Tracks gibt es:

  • Business: Digitalisierung als Treiber für Innovation und Geschäftsmodelle
  • Business: Veränderung der lokalen Wirtschaft durch die Digitalisierung
  • Methoden: New Work Patterns
  • Methoden: Auf dem Weg zur agilen Organisation
  • Methoden: Hubs, Labs, klassisch – modernes Innovationsmanagement
  • Tech: Cloud Computing
  • Tech: Moderne SW-Architekturen / Development
  • Tech: Machine Learning / KI
  • Tech: Industrie 4.0, IOT
  • Tech: Big Data / Analytics
  • Hands-On: Digitalisierung und IOT zum anfassen

Bis zum 16.03.2018 können Beiträge eingereicht werden. Das Programmkomitee bestehend aus Vertretern der TH-Köln und OPITZ CONSULTING freut sich auf viele spannende Beiträge. Bitte denkt / denken Sie auch an interessante, hochwertige Projekte oder Abschlussarbeiten von Studierenden: auch Studierende können einen Vortragsvorschlag einreichen, oder Studierende zusammen mit Mitarbeiter oder Dozenten!

Beitrag einreichen: https://express.converia.de/frontend/index.php?sub=205

Mehr Informationen zum DigitalXchange: www.digital-xchange.de

Veröffentlicht: von

Susanne Gotzen und Antonia Wunderlich und ich haben am 28.2.2018 einen Vortrag auf der Jahrestagung der Deutschen Gesellschaft für Hochschuldidaktik (dghg 2018) gehalten, mit dem Titel Gefangen in der Lehr- und Lernmaschine – wo bleibt „New Work“ in der Hochschullehre?

„New Work“ ist in aller Munde – Unternehmensberatung und Coaching, Blogs und andere Publikationen, TED Talks und Konferenzen greifen das Thema auf und verkünden neue Möglichkeiten des Arbeitens. Ob Design Thinking, Co-Creation oder Inkubator – die Suche nach den „Happy Working People“ in der Wirtschaft wird flankiert von einigen wegweisenden wissenschaftlichen Publikationen. Im Kern geht es darum, Arbeitnehmer und Führungskräfte als eigenverantwortliche Akteure aufzufassen, deren Handlungsfreiheit für Organisationen eine wichtige Ressource sein kann.

Unser Vortrag fragt, was Lehrende und Forschende an Hochschulen darüber denken und was Studierende einfordern. Welche Themen und Methoden finden ihren Weg in die Lehre? Wir stellen die für die Hochschullehre inspirierenden Strömungen und Akteure der „New Work“ vor und gehen auf die Suche nach Diskursen, die einen Bezug zu Themen der Lehre erkennen lassen. Als Praxisbeispiel stellen wir den Studiengang „Code & Context“ vor, der derzeit an der TH Köln wird konzipiert wird.

Vortrags-Folien (bitte Passwort bei Prof. Bente erfragen): Download dghd2018 Vortrag

Veröffentlicht: von

In unserer Fachgruppe arbeiten wir an der Lehr- und Lernplattform ArchitLab (https://www.archi-lab.io/), die konsequent als Microservice-Architektur ausgelegt ist und die uns auch als Forschungsgegenstand zu diesem Architekturstil dient.

Wenn Sie in diesem Umfeld an Projekten (Praxisprojekt, Bachelorarbeit, Informatikprojekt) interessiert sind: Wir machen eine Info-Veranstaltung mit Vorstellung von möglichen Themen im Bereich Microservices und ArchiLab am Fr 2.3. um 14:00 in Raum 1522.

Es wäre nett, wenn Sie bei Interesse eine kurze formlose Email schicken könnten (mit der Info, für welche Projektform Sie sich interessieren). Das hilft uns dabei, genügend Themenvorschläge zu haben.

Veröffentlicht: von

Problemstellung

Für die Module Softwaretechnik 1 und 2 werden die Studierenden an die Unified Modeling Language(UML) herangeführt. UML unterstützt den Softwareentwicklungsprozess in verschiedenen Bereichen, besonders in der Architekturspezifikation. Den Studierenden werden daher verschiedene Kernkonzepte und ausgewählte UML Notationen beigebracht. Im Modulpraktikum werden verschiedene UML Diagramme erstellt und bearbeitet. Um den Lernerfolg zu unterstützten, wird ein Tool benötigt das diesen Prozess erleichtert. Zum jetzigen Zeitpunkt wird von den Studierenden die Open Source Software  Modelio für diese Aufgabe verwendet. Erfahrung aus vergangenen Semestern zeigt, dass Modelio nicht alle Anforderungen ausreichend erfüllt.

Im Vorfeld wurde ein Praxisprojekt abgeschlossen, in dem die Anforderungen an das System ermittelt wurden. Die Anforderungen wurden priorisiert. Außerdem wurde dem eine Marktanalyse durchgeführt um mögliche Softwarekandidaten zu identifizieren. Es wurde eine Vorauswahl getroffen, indem die Systeme auf die Erfüllung der bestimmter Anforderungen überprüft wurden. Die Bachelorarbeit befasst sich damit die ausgewählten Editoren auf die Erfüllungsgrade der wichtigsten Anforderungen zu überprüfen. Am Ende steht eine Auswahlempfehlung für das beste Tool.

Abgeleitete Forschungsfrage

  • Wie weit erfüllen die getesteten Editoren die ermittelten Anforderungen
  • Welches UML Tool ist am geeignetsten für den Lehrkontext St1/St2?

Vorgehen

Aus den im Vorfeld entstandenen Anforderungen wird eine Teilmenge ausgewählt, deren Erfüllungsgrade getestet werden. Die Eingrenzung erfolgt über die vorhandene Priorisierung um einen angemessenen Zeitrahmen zu shcaffen. Es werden Evaluationsverfahren für alle ausgewählten Anforderungen aufgestellt. Wenn es sinnvoll ist, werden Usability Tests für die nichtfunktionalen Anforderungen  durchgeführt. Funktionale Anforderungen werden auf Vorhandensein überprüft, und eventuell wie gut sie zu verwenden sind. Wie die einzelnen Anforderungen zu testen sind wird im Laufe der Bachelorarbeit recherchiert. Es werden dann genaue Testverfahren konzipiert.

Die Usability Tests werden im Usabilty Lab der Fakultät durchgeführt. Für die Usability Tests werden Probanden aus den drei primären Nutzergruppen ausgewählt (Studierende, wissenschaftliche Mitarbeiter, Professoren). Die Studierenden werden hauptsächlich aus dem Modul ST1 WS 17/18 rekrutiert. Sie nehmen im Rahmen einer QQ2 Veranstaltung an den Usability Tests teil. Es werden auch Probanden gesucht, die das Praktikum bereits absolviert haben. Zusätzlich werden wissenschaftliche Mitarbeiter, Studentische Hilfskräfte und Professoren herangezogen, die an St1/St2 oder ähnlichen Modulen beteiligt sind. Aus der Vorarbeit gehen 6 Editoren hervor, die getestet werden: Visio, IBM Rational Architect, Sparx Enterprise Architect, Modelio, Gliffy, Draw.io. Auf jedes Tool werden die gefundenen Methoden angewandt um die Erfüllungsgrade zu ermitteln.

Die Ergebnisse aller Evaluationen werden im letzen Schritt ausgewählt. Idealerweise lassen sich den einzelnen Erfüllungsgraden numerische Werte zuordnen. Die Ergebnisse aller Test werden ausgewertet und gemeinsam mit der Anforderungspriorisierung verrechnet. Das Ergebnis der Auswertung wird verwendet, um eine Auswahlempfehlung bereitzustellen.

Bearbeitet von

Lukas Büscher

Abgabe

Februar 2018

Links zur Arbeit (bitte Passwort bei Prof. Bente anfordern)

 

Veröffentlicht: von

Problembeschreibung

„Warum ist im ThoughtWorks TechRadar das UI-Framework ReactiveX auf Status ‚Adopt‘, während Angular2 nur den Status ‚Assess‘ hat?“

Auf eine Frage wie diese werden die Teilnehmer dieses Guided Projects am Ende vermutlich eine Antwort haben. Das ThoughWorks TechRadar (https://www.thoughtworks.com/radar) ist als Bewertung von innovativen Technologien mittlerweile in die obersten Liga der industrieweit beachteten Ratings vorgestoßen. Es bewegt sich auf einer etwas detaillierteren, programmiernäheren Ebene als beispielsweise der Gartner® Magic Quadrant  oder Forrester Wave™.

Wie soll man aber als „einfacher Entwickler“ mit den Aussagen solcher Marktübersichten umgehen? Muss / soll / kann man diese einfach so hinnehmen? Da es immer gut ist, sich sein eigenes fundiertes Bild zu machen, werden wir in diesem Guided Project genau dies tun.

Projektdefinition

ThoughtWorks bietet an, ihr Tool zu nutzen, um eine eigene Version des TechRadars zu erstellen (https://info.thoughtworks.com/visualize-your-tech-strategy-guide.html). Dies wird der Inhalt dieses Projekts sein.

Fokussiert auf einen bestimmten, im Rahmen der verfügbaren Zeit machbaren Ausschnitt aus aktueller Entwicklungstechnologie wird das Team einen methodischen Bewertungsansatz für diese Technologien entwickeln, und diesen Bewertungsansatz dann auf das gewählte Segment anwenden. Als Klassifikation werden wir dabei der Einfachheit halber den ThoughtWorks-Ansatz übernehmen.

Dies bedeutet die folgenden Schritte, die das Team eigenständig durchführt:

  • Auswahl von 1…n geeigneten Technologiesegmenten, je nach Machbarkeit
  • Definition von Kriterien und Auswertungsmethoden zur Klassifikation, z.B.
    • Auswertung von Quellen wie Literatur, Blogs, …
    • Umfragen
    • Kurze Spikes / Proof-of-Concepts
  • Durchführung der Klassifikation
  • Bewertung, Dokumentation, Präsentation

Learning Outcomes

  • Selbstorganisiertes, methodisches Vorgehen
  • Durchführung eines Technologie-Auswahlprozesses
  • Verteidigung von Bewertungen gegen fachliche Kritik
  • Tiefgehende Beschäftigung mit aktuellen Entwicklungstechnologien
  • Einsicht in aktuelle Trends und Marktentwicklungen

Voraussetzungen

  • Programmier-Affinität
  • Interesse an Software-Technologie
  • Spaß an methodischem Arbeiten (langes Stehen an Whiteboards mit viel Diskussion)
  • Hartnäckigkeit, um eigene Einschätzungen wirklich „wasserdicht“ bewerten zu können

Externe Projektpartner