Komplexität beherrschen: Modellbasierte Softwareentwicklung von Enterprise Software

Bei der Entwicklung von komplexer langlebiger Unternehmenssoftware sind Lösungen gefragt, die über den gesamten Lifecycle zuverlässig und skalierbar sind. Eine Möglichkeit, Enterprise Software langfristig flexibel zu halten und die zunehmende Komplexität zu beherrschen, bietet die modellbasierte Softwareentwicklung.

Kurz & knapp

  • Modellbasierte Softwareentwicklung vereinfacht die Komplexität von Enterprise Software durch die Verwendung unabhängiger Modelle.
  • Mitarbeiter und Business Analysten können ohne Programmierkenntnisse Modelle erstellen und pflegen und werden so zu “Citizen Developers” oder Co-Entwicklern.
  • Entwickler können auf einer modellbasierten Plattform aufbauen, die die Zuverlässigkeit erhöht und die Entwicklung beschleunigt. Zudem ermöglicht die modellbasierte Trennung von Geschäftslogik und Technologie eine effiziente Implementierung von Neuerungen, ohne dass die Anwendung komplett neu entwickelt werden muss.
  • Diese modellbasierte Herangehensweise kombiniert die Enterprise Low Code-Plattform A12 mit einem “Data First”-Ansatz, der für hohe Flexibilität bei der langfristigen Weiterentwicklung und Pflege von komplexer langlebiger Unternehmenssoftware in komplexen IT-Umgebungen sorgt.
  • A12 integriert nahtlos Low-Code-Anwendungen und professionelle Individual-Softwareentwicklung zu vollständig integrierten Unternehmensanwendungen. Dieser Ansatz bietet Konsistenz, Wiederverwendbarkeit, vereinfachtes Release- und Abhängigkeitsmanagement sowie reduzierten Testaufwand.

Kunden erwarten heute umfassende Funktionalität und langfristige Anpassungsfähigkeit ihrer Geschäftsanwendungen. Fortschrittliche Technologien und Plattformen eröffnen zwar neue Möglichkeiten, bringen aber auch zusätzliche Komplexität in den Entwicklungsprozess langlebiger Unternehmenssoftware.

Neue Komplexitäts-Dimensionen in Enterprise Software

  1. UI/UX

Bei einer komplexen Geschäftsanwendung spielt gutes UI/UX-Design eine besonders wichtige Rolle. Ziel ist es, den Benutzer:innen eine optimale Benutzererfahrung zu bieten, ohne sie von der Komplexität der zugrunde liegenden Systeme abzulenken. Dies wird durch die Entwicklung einer leicht verständlichen und benutzerfreundlichen Benutzeroberfläche (UI) erreicht.

  1. Sicherheit

Angesichts der zunehmenden Bedrohung durch Cyber-Angriffe müssen Entwickler außerdem immer anspruchsvollere Sicherheitsmaßnahmen implementieren, um die Integrität und Vertraulichkeit von Daten zu gewährleisten.

  1. Cloud/Containerisierung

In den letzten Jahren hat sich zudem die traditionelle Aufgabenverteilung zwischen Softwareentwicklung und Anwendungsbetrieb grundlegend verändert. Viele Aufgaben, die früher im Rechenzentrum im Rahmen des Betriebs durchgeführt wurden, sind heute integraler Bestandteil der Projekte. Dabei wird davon ausgegangen, dass die Anwendungen in Containern ausgeführt und in verschiedenen Cloud-Umgebungen bereitgestellt werden können. Um dieser Anforderung gerecht zu werden, entsteht innerhalb der Projekte eine zusätzliche, deutlich umfangreichere Anwendungsschicht, die es in der Vergangenheit nicht gegeben hat.

Erweiterung der Komplexitäts-Dimensionen: Neue Faktoren erhöhen die Komplexität in der Softwareentwicklung von bereits komplexer langlebiger Enterprise Software.

Nicht zuletzt spielt auch die Globalisierung eine entscheidende Rolle: Softwareprojekte werden häufig von Teams durchgeführt, die über die ganze Welt verteilt sind. Die Koordination dieser Teams und die Integration ihrer Beiträge in ein einheitliches System erhöhen die Komplexität nochmal erheblich. Insgesamt führt die Kombination dieser Faktoren dazu, dass die Entwicklung moderner Enterprise Software immer komplexer wird.

Hamarz Mehmanesh, CEO von mgm technology partners: „Enterprise Softwareanwendungen mit komplexen Geschäftsmodellen, -prozessen und -daten sind immer in die Anwendungslandschaft des Unternehmens eingebunden. Man muss sich darüber im Klaren sein, dass die neu hinzugekommenen Dimensionen der Komplexität die ohnehin schon komplexe Situation von Großprojekten weiter verschärfen. Mehmanesh ist überzeugt: „In der heutigen Zeit sind große, isolierte Enterprise Softwareprojekte nicht mehr vertretbar. Die Kosten sind enorm und steigen ständig, während das Projektrisiko zunimmt.“

Die Herausforderung bei der Gestaltung eines Steuerformulars liegt in seiner Komplexität.

Modellbasierte Softwareentwicklung: Komplexität vereinfachen

Um die Komplexität dieser Art von Unternehmenssoftware zu vereinfachen, bietet sich der Einsatz von Techniken aus dem Bereich der modellbasierten Softwareentwicklung (engl. Model-Based Software Development (MBSD)) an. Bei diesem Ansatz stehen Modelle im Mittelpunkt des Entwicklungsprozesses und treiben diesen aktiv voran.

Modelle sind nicht an eine bestimmte Technologie gebunden und ermöglichen eine vereinfachte Darstellung der technischen Details einer Lösung. Sie verwenden eine formalisierte Sprache, die sowohl von Menschen als auch von Computern verstanden wird, um die Funktionsweise der Software und ihre Aufgaben zu beschreiben.

Build-Prozess in der modellbasierten Softwareentwicklung

Die entstehenden Modelle lassen sich dann als primäre Eingaben für eine Werkzeugkette der modellbasierten Softwareentwicklung verwenden. Sie kann die Konformität der verschiedenen Modelle überprüfen, sie analysieren und automatisch Teile der zu entwickelnden Software generieren. In der modellbasierten Softwareentwicklung ist dies eine Abfolge oder Sammlung von Softwarewerkzeugen, die zur Unterstützung des gesamten Entwicklungsprozesses von Softwaremodellen bis hin zum generierten Quellcode eingesetzt werden. Die Werkzeugkette dient dazu, den Entwicklungsprozess zu automatisieren und die Zusammenarbeit zwischen den verschiedenen Modellierungs- und Implementierungsphasen zu erleichtern.

Werden Modelle angepasst, wird der entsprechende Quellcode automatisch und ohne zusätzlichen Aufwand neu generiert. Dies führt einerseits dazu, dass sich die manuellen Aufwände und Entwicklungskosten reduzieren, zum anderen, dass die Softwarequalität durch die systematische Umsetzung der modellierten Konzepte in Quellcode erhöht.

Empowerment: vom Fachexperten zum Co-Entwickler

Der Clou: Auch Mitarbeiter in den Unternehmen und Business Analysten sind in der Lage die Modelle weitgehend eigenständig zu erstellen und zu pflegen, denn diese Fachexperten benötigen dazu keine Programmierkenntnisse. Die Modellierungswerkzeuge sind nicht schwieriger zu bedienen als Microsoft Excel.

Für den fachlichen Teil der Anwendung entfällt somit die Arbeit der Softwareentwickler. Die Fachtester hingegen können schon Teile der Anwendung anhand der Modelle testen. Dies bedeutet, dass sich der Schwerpunkt der Entwicklung von den Programmierer auf die als „Citizen Developers“ bezeichneten Experten verlagert. Dies gibt ihnen große Gestaltungsfreiheit und macht sie praktisch zu Co-Entwickler.

Ablauf und Rollenverteilung in einem klassischen Softwareentwicklungsprozess
Ablauf und Rollenverteilung in einem modellbasierten Softwareentwicklungsprozess

Gemeinsame Anforderungen und Sprache beschleunigen die Softwareentwicklung

Die technische Basis von Enterprise Software ist in vielen Fällen sehr ähnlich und vergleichbar. Wenn die Spezifikationen in Modellen erfasst werden, können die Entwickler auf eine modellunterstützende Plattform zurückgreifen, anstatt jedes Mal bei Null anzufangen. Dies beschleunigt nicht nur den Entwicklungsprozess erheblich, sondern erhöht auch die Zuverlässigkeit der Software. Das ist wichtig, um große Softwaresysteme effizient entwickeln zu können – gerade in komplexen Organisationen, in denen die reibungslose Zusammenarbeit verschiedener Abteilungen und Teams unerlässlich ist, um langfristig erfolgreiche Softwarelösungen zu entwickeln.

Trennung von fachlichen und technischen Inhalten

Die Verwendung von Modellen hat einen weiteren interessanten Effekt: Da die Geschäftslogik – die fachlichen Aspekte – in einer Modellierungssprache geschrieben wird, ist sie vollständig von der technischen Basis der Anwendung getrennt. „Das ist eine sehr effektive Eigenschaft“, so Mehmanesh. „Es bedeutet, dass technologische Neuerungen implementiert werden können, ohne dass die gesamte fachliche Komponente der Anwendung neu konzipiert werden muss.“ So können zum Beispiel neue Techniken für das Design und die Implementierung der Benutzeroberfläche, für die Serververarbeitung oder für die Persistenz eingeführt werden.

Nahtloser Übergang von der Modellierung zur Implementierung in der modellbasierten Softwareentwicklung

Eine Besonderheit des Projektprozesses in der modellbasierten Softwareentwicklung besteht darin, dass bei Projektbeginn nicht nur Spezifikationen geschrieben werden, sondern auch eine Plattform zur Verfügung steht. Auf dieser Plattform können die erstellten Modelle getestet werden. Da es eine reale Plattform ist, auf der die Modelle laufen, gibt es keinen Unterschied zwischen einer Prototyping-Umgebung und einer realen Umgebung.

Dann folgt die Implementierungsphase, und in der ersten Implementierungsphase ist der Anteil der Softwareentwicklung im Vergleich zur Softwaremodellierung noch vergleichsweise hoch. Aber die technische Basis ist mehr oder weniger vorhanden. Sie ist noch nicht vollständig abgeschlossen, hat aber eine stabile Basis erreicht. Ausgehend von dieser stabilen Basis wächst der Modellierungsumfang kontinuierlich und nachhaltig. Am Ende des Tages wird viel mehr Code von Business Analysten in den Modellen geschrieben als von Entwicklern, die die Plattform entsprechend den Projektanforderungen vervollständigen.

Der Anteil der Projektkomponenten in der modellbasierten Softwareentwicklung in den verschiedenen Phasen eines Lebenszyklus.

Enterprise Low Code-Entwicklung

Seit einigen Jahren ist Low Code in aller Munde: Viele Effekte der modellbasierten Softwareentwicklung finden sich auch in diesem Ansatz wieder. In der Regel sind Low Code-Plattformen mit benutzerfreundlichen grafischen Benutzeroberflächen (GUI) und Drag-and-Drop-Funktionen ausgestattet. Sie ermöglichen es auch Personen, die keine umfangreichen Programmierkenntnisse haben, visuelle Modelle und Konfigurationen zu erstellen, die dann automatisch in ausführbaren Programmcode umgewandelt werden.

Insbesondere für die Entwicklung von Enterprise-Anwendungen gibt es sehr gute Einsatzmöglichkeiten für Low-Code-Lösungen. Doch hier gilt es zu unterscheiden, denn die existierenden Low-Code-Ansätze sind sehr unterschiedlich. Einige Anbieter stellen Plattformen als geschlossene Ökosysteme zur Verfügung, in denen Nutzer kleine Anwendungen zusammenklicken und veröffentlichen können. Dieses Prinzip hat den Vorteil, dass einsatzbereite Ergebnisse schnell sichtbar werden. Der Einarbeitungsaufwand ist gering und Vorkenntnisse sind kaum erforderlich. Um komplexe Unternehmensanwendungen langfristig abbilden zu können, sind sie nicht geeignet – anders als A12, eine Low Code-Plattform zur Realisierung von Enterprise Software in komplexen IT-Landschaften.

Modellierungsansatz „Data First“ in der Enterprise Low Code-Plattform A12

Die A12-Plattform wurde als offene Entwicklungsumgebung konzipiert, die sich eng an den modernen Werkzeugkasten eines Softwareentwicklers anlehnt. Sie bietet die Flexibilität, verschiedene Ansätze je nach den spezifischen Anforderungen eines Projektes zu verwenden.

Was den Modellierungsansatz von A12 deutlich von anderen Low-Code-Plattformen unterscheidet, ist der „Data First“-Ansatz. Anstatt zuerst eine Benutzeroberfläche zu erstellen, beginnt die Modellierung in A12 mit der Definition der fachlichen Zusammenhänge. Dieser Ansatz ermöglicht eine klare Trennung zwischen der fachlichen Beschreibung der jeweiligen Domäne und einer spezifischen Anwendung. Dies eröffnet die Möglichkeit, die Fachlichkeit in unterschiedlichen Anwendungen und Kontexten zu nutzen, was wiederum eine hohe Flexibilität für die Weiterentwicklung und Pflege einer langfristig angelegten Unternehmenssoftware mit sich bringt.

Folgende Modelltypen werden in A12 eingesetzt:

1. Datenmodelle

Die erste Aufgabe im Modellierungsprozess ist die Definition von Geschäftsentitäten und ihrer Interaktionen – die sogenannte Datenmodellierung. Mithilfe von spezialisierten Modellierungswerkzeugen haben sowohl Business Analysten als auch Fachexperten die Möglichkeit, die Datenstrukturen der repräsentierten Entitäten, wie beispielsweise Verträge oder Produkte, in Dokumentenmodellen zu erstellen und anzupassen. Darüber hinaus besteht die Möglichkeit, Validierungsregeln und Berechnungen mittels einer integrierten Kernel-Sprache zu definieren, um die Anwendungslogik darzustellen. Zudem können Beziehungen zwischen den Datenmodellen mithilfe von Beziehungsmodellen detailliert beschrieben werden.

2. UI-Modelle

Aufbauend auf den Datenmodellen sind Business Analysten und Modellierer in der Lage, mit den Modellierungswerkzeugen von A12 Teile der Benutzeroberflächen zu erstellen. Die UI-Modellierung konzentriert sich auf Bereiche, in denen modellgetriebene Komponenten zum Einsatz kommen. Hierfür stehen eine Reihe von speziellen UI-Modellen zur Verfügung.

3. Workflow

Um Geschäftsprozesse (Workflow) zu modellieren, verwendet A12 den bestehenden und etablierten Standard BPMN 2.0 (Business Process Model and Notation). BPMN-Modelle greifen nahtlos mit A12-Modellen ineinander.

4. App-Modelle

App-Modelle definieren den Rahmen der Anwendung und dienen als eine Art Container für alle weiteren Modelle.

5. Output-Modelle

Mit dem Print-Modell lassen sich Druckvorlagen erstellen, die als Grundlage für die Generierung barrierefreier PDFs dienen.

Der Mehrwert von A12: optimale Integration und Anpassungsfähigkeit

Gleichzeitig ermöglicht die Laufzeitplattform von A12 die nahtlose Integration von Low-Code-Anwendungen mit professioneller Individualsoftware-Entwicklung und Systemintegration zu vollständig integrierten Unternehmensanwendungen.

Hamarz Mehmanesh betont: „Der Anteil von Low Code und Individualentwicklung kann nicht nur von Projekt zu Projekt sehr unterschiedlich sein. Auch innerhalb der Lebensphasen eines IT-Projekts variieren die Aufwände im Bereich der Modellierung sowie der Individualentwicklung und Systemintegration. Jede Komponente der A12-Low-Code-Plattform wurde so entwickelt, dass sie flexibel angepasst werden kann. Das Hauptziel besteht darin, zuverlässige Lösungen für häufig auftretende Probleme bereitzustellen und gleichzeitig die Möglichkeit zu bieten, individuelle Anpassungen für spezifische Anforderungen hinzuzufügen.“

Ein besonderer Vorteil des Einsatzes von A12 zeigt sich in Situationen, in denen verschiedene Anwendungen miteinander interagieren müssen. Dies liegt daran, dass A12 einen Ansatz verfolgt, bei dem fachliches Wissen und Anforderungen in Modellen abgebildet werden, die von verschiedenen Anwendungen genutzt werden können. Dieser Ansatz hat viele positive Auswirkungen:

  • Konsistenz: Die Verwendung derselben Modelle in verschiedenen Anwendungen stellt sicher, dass die Informationen konsistent sind. Es gibt keine widersprüchlichen oder inkonsistenten Daten.
  • Wiederverwendbarkeit: Anstatt ähnliche Informationen in jeder Anwendung separat zu erstellen und zu pflegen, können die Modelle wiederverwendet werden. Dies reduziert den Aufwand und das Risiko doppelter oder inkonsistenter Daten.
  • Vereinfachtes Release- und Abhängigkeitsmanagement: Da die Modelle anwendungsübergreifend genutzt werden können, wird das Management von Aktualisierungen und Abhängigkeiten zwischen Anwendungen vereinfacht. Änderungen in den Modellen wirken sich automatisch auf alle betroffenen Anwendungen aus.
  • Reduzierter Testaufwand: Da die Modelle konsistent sind und Änderungen in einer Anwendung Auswirkungen auf andere Anwendungen haben, lässt sich der Testaufwand reduzieren. Es müssen weniger Tests durchgeführt werden, da viele Szenarien bereits durch die Modelle abgedeckt sind.

Hamarz Mehmanesh, CEO von mgm technology partners, resümiert: „Wir haben uns für A12 als Low-Code-Plattform entschieden, um unsere Unternehmensprojekte effizienter zu gestalten und die Komplexität zu reduzieren. Gleichzeitig haben wir unsere Vorgehensweisen, Methoden und Tools standardisiert und deren Einsatz gezielt optimiert, um die bestmöglichen Geschäftsanwendungen zu entwickeln.“

Insgesamt trägt der modellbasierte Ansatz von A12 dazu bei, die Effizienz und Qualität bei der Entwicklung und Wartung von Software in komplexen Umgebungen zu verbessern.

Weiterführende Informationen