Mehr Ordnung in der SAP-ABAP-Welt

DesignTime: das Tool für mehr Ordnung in der UML-Modellierung
Kommentare

Die Spezifikation wurde endlich geschrieben, der Scope ist klar definiert und die Entwickler scharren mit den Füßen – motiviert und ambitioniert, bereit zur Umsetzung. Käme jetzt direkt der Implementierungsstartschuss, wäre das Chaos vorprogrammiert. Damit das nicht passiert, haben nicht-iterative Vorgehensmodelle, wie das Wasserfallmodell, vor die Implementierung das Design gestellt.

In dieser auch als Entwurf bezeichneten Phase erstellen Designer die Datenmodellierung (->ERM), objektorientierte Analyse und Design (OOAD ->ERM ->UML) und ergänzen die fachlichen Prozesse mit technischem Kontext (->BPMN). Domänen werden gebildet, einheitliche Schnittstellen entstehen – Arbeitspakete werden geschnürt und weitere Voraussetzungen erkannt. Es entstehen aber auch Fragen zu Detailanliegen. „Haben wir auch dies und jenes berücksichtigt?“, „Wollen wir die erkannte Herausforderung innerhalb des Designs mit einem Prototyp belegen?“. Dieses Design bildet die Basis und Übersicht für alle Projektbeteiligten und bildet zugleich eine Kommunikationsebene.

Was ist UML?
Die UML (Unified Modeling Language) definiert eine allgemein verwendbare Modellierungssprache (auch Notation genannt), seit Ende der 90er Jahre standarisiert durch die Object Management Group (OMG), ein Konsortium, das derzeit über 800 Unternehmen umfasst. Das Einsatzgebiet von UML ist die grafische Modellierung der Spezifikation, Konstruktion (Design) und Dokumentation von Software.
In UML 2.3 stehen für die Modellierung insgesamt 14 Diagrammtypen zur Verfügung. Dabei ist das Klassendiagramm die meistgenutzte Modellsicht. Es dient zur Darstellung von Klassen und Schnittstellen mit ihren Attributen, Methoden und deren Parameter, Vererbungen, Beziehungen und Kardinalitäten.
Sequenz-, Aktivitäts- und Anwendungsfalldiagramme (Letzteres auch bekannt als Use Case) folgen in der Nutzungshäufigkeit und sind mitunter die bekanntesten Diagramme. UML ist in der objektorientierten Programmierung (OOP) nicht mehr wegzudenken und hat sich in vielen Entwicklungsprojekten als Standard etabliert.

Ohne die gezielten Vorbereitungen der Designphase geriete die Softwareentwicklung schnell zum Glücksspiel. So aber entsteht eine verlässliche Grundlage für das Projektmanagement und -controlling, die Qualitätssicherung sowie für die Kommunikation und Interaktion der Entwickler untereinander.
Aufgrund dieser Vorzüge spielt die Modellierung bei der iBS AG, einem Hersteller von SAP-Standardsoftware, traditionell eine zentrale Rolle. Und das unabhängig davon, ob ein spezielles Entwicklungsprojekt dem klassischen Wasserfallmodell oder agilen Methoden folgt. Denn ohne professionelle Designs ließe sich die Qualität der vom Unternehmen entwickelten Standardsoftware nicht realisieren, ihre langfristige Wartbarkeit und Erweiterbarkeit nicht darstellen.
Bei der praktischen Umsetzung stieß die iBS immer wieder auf das Problem, dass es am Markt keine UML- und ERM-Tools gab, die auf die ABAP-Entwicklung abgestimmt oder gar in SAP integrierbar sind. In vergangenen Projekten musste die Entwicklungsabteilung deshalb die Modellierungen manuell ins SAP übertragen und in der Gegenrichtung vorhandene Objekte im System händisch in Diagramme übernehmen. Das war entsprechend zeitaufwändig und führte manchmal auch zu Ungenauigkeiten, die später wieder mühsam beseitigt werden mussten. Aus diesem Grund hat sich das Unternehmen letztendlich entschlossen, selbst ein UML-Werkzeug zu entwickeln, das sich an den spezifischen Bedürfnissen der SAP-ABAP-Entwicklung orientiert.

Was ist ERM?
Das ERM (Entity-Relationship-Modell, auch ER-Modell) beschreibt und visualisiert auf abstrakte Weise eine relationale Datenbank. Es dient zur Darstellung von Tabellen mit ihren Elementen (Felder) und deren Typen, Beziehungen und Kardinalitäten. Dabei kann es in der konzeptionellen Phase als Verständigung zwischen Fachabteilung und Anwendungsentwicklung eingesetzt werden. In der Implementierungsphase bildet es die Grundlage für das Erstellen der Datenbank. Auch können Zugriffsoperationen (zum Beispiel komplexe SQL-Befehle) auf die Datenbank im Detail dokumentiert werden, womit es zu einer idealen Ergänzung zu den UML-Diagrammen wird. Der Einsatz von ERM ist der Industriestandard für die Datenmodellierung, wobei die Notation nicht zentral festgelegt ist und kein Konsortium darüber wacht. Weit verbreitet ist insbesondere die Martin-Notation, aufgrund der typischen Form der n-Beziehung auch als „Krähenfuß“ bekannt. Sie wird von den meisten Modellierungswerkzeugen unterstützt, so auch von iBS DesignTime.
Steckbrief iBS DesignTime
Mit iBS DesignTime for ABAP hat der Softwareanbieter iBS ein in SAP integrierbares Modellierungs- und Dokumentationswerkzeug auf den Markt gebracht, das erstmals ABAP-Code selektiv visualisieren sowie ABAP-Code automatisiert in UML überführen kann. DesignTime richtet sich an SAP-Berater, -Entwickler, Softwarearchitekten und Datenmodellierer in Softwarehäusern und Unternehmen. Als derzeit einziges Werkzeug ermöglicht es mittels Direktanbindung an das SAP, eine Brücke zwischen UML und der ABAP-Welt und zurück zu schlagen. Firmen, SAP-Partner und -Entwickler können damit die Entwicklungszeiten und -kosten senken, die Compliance-konforme Dokumentation erleichtern sowie die Softwarequalität und den Bedienkomfort erhöhen. iBS DesignTime automatisiert die Überführung von UML in ABAP-Code und umgekehrt – wohingegen bislang bei herkömmlichen UML-Tools ohne ABAP-Unterstützung vieles manuell erledigt werden musste. Verschiedene Komfortfunktionen und Workflow-optimierte Oberflächen unterstützen den Anwender bei der Erstellung von Sequenz-, Aktivitäts- und Klassendiagrammen sowie ERMs.

Anforderungen für die ABAP-Welt

Die Grundüberlegung für die Entwicklung von DesignTime war, dass sich durch die Optimierung der Toolpipeline innerhalb der Design- und Entwicklungsphase einerseits die Konsistenz zwischen Code und Modellen und damit die Softwarequalität erhöhen lässt. Zum anderen sollte die Entwicklungs- und Dokumentationsgeschwindigkeit verbessert werden, indem man Entwickler und Designer von Routineaufgaben entlastet und ihnen ermöglicht, bestehende Problemlösungen leichter wiederverwenden beziehungsweise adaptieren zu können. Denn als erfahrener Designer wird man sich beim Erstellen von Klassendiagrammen an ähnliche Aufgaben in vorherigen Entwicklungsprojekten und ihre Realisierungen erinnern. Ist es möglich, darauf nach bestehenden Klassen- und Schnittstellenmustern zu suchen und diese ganz oder in Teilen wiederzuverwenden, so muss man das Rad nicht neu erfinden.
Das zu entwickelnde Tool sollte dazu eine Direktanbindung an das SAP-System haben mit der Möglichkeit, darin zu suchen und Klassen, Schnittstellen, DDIC-Elemente und Tabellen aus dem SAP-System in das Design zu übernehmen und entsprechend in die Notation von UML bzw. ERM darzustellen. Die intern in Anlehnung an das Zurückspulen beim Videorecorder als rewind bezeichnete Funktion würde den Entwicklern ferner bei Add-on-Entwicklungen helfen, sich schnell einen Überblick über die im System vorhandenen Module und Programmierschnittstellen zu verschaffen. Gleichzeitig können Designer damit während der Implementierungsphase wesentlich schneller einen Soll/Ist-Vergleich zu den Vorgaben erstellen. Dem Entwickler und auch dem Mitarbeiter aus der Wartung wird später nach Ende des Projekts das Dokumentieren mit den Diagrammen schlussendlich auf die gleiche Weise grundlegend erleichtert.
Als dritte wesentliche Anforderung neben Systemanbindung und rewind-Funktion sollte das Tool die Entwickler bei der Realisierung entlasten, indem es aus den erstellten Modellen automatisiert ABAP-Rahmencode und DDIC-Tabellen erzeugt und anlegt.

Entwicklung der Lösung

Der bewährten 80/20-Regel folgend hat sich das Entwicklerteam der iBS bei der Toolentwicklung vorerst auf die wichtigsten Diagramme mit den in der Praxis am meisten genutzten Elementen konzentriert. Das heißt, iBS DesignTime unterstützt konkret aus der UML-Notation die Klassen-, Sequenz- und Aktivitätsdiagramme sowie das ER-Modelling. Darüber hinaus können Anwendungsfalldiagramme (Use Case) und einfache Prozesse abgebildet werden.

Das Innenleben, die Technik

DesignTime ist arbeitsteilig von einem kleinen Team aus ABAP-, UML- und C#-Experten entwickelt worden. Der Client wurde komplett unter Visual Studio 2010 in C# mit .NET 4 geschrieben. Für die UI-Oberfläche wurde das WPF- (Windows-Presentation-Foundation-)Framework verwendet. Die Verbindung zum SAP-Server wird über den von der SAP bereitgestellten NCo-Connector hergestellt – also die klassische und altbewährte RFC-Verbindung. Hierzu richtet man in DesignTime lediglich einmal die Systemparameter ein und kann sich dann mit seinem Benutzernamen und Passwort am Anwendungsserver anmelden. Das dort aktive Gegenstück, der DesignTime Connector, wurde in ABAP realisiert.
Für die Generierung von Diagrammen wurde in C# eigens ein Code-Parser entwickelt. Dieser ist aktuell auf ABAP ausgelegt, ist aber offen dafür, später auch andere Sprachen zu unterstützen. Eingesetzt wird er unter anderem für die automatische Generierung von Aktivitätsdiagrammen aus vorhandenen Methoden auf dem SAP-System oder auch aus der Zwischenablage.

Aufmacherbild: Young businessman sitting and deciding in front of a chalkboard with sketched arrows and signs in different directions von Shutterstock / Urheberrecht: ra2studio

[ header = Seite 2: DesignTime in der Praxis ]

DesignTime in der Praxis

Modellieren: Es gibt viele Tools, mit denen man modellieren kann. Egal ob Klassendiagramme oder die Darstellung von Abläufen per Sequenz- oder Aktivitätsdiagramm (Abb. 1) – letztendlich erfüllt irgendwie jedes Tool im ersten Schritt seinen Zweck: die Visualisierung des groben Designs. Danach wird dann das Ganze auch im Detail beschrieben. Doch selbst hier kann, wie schon beschrieben, ein Zugriff auf das SAP-System sehr hilfreich sein, um nach Datenelementen suchen und auch das Design auswählen zu können. Zudem wurde der Workflow optimiert. Shortcuts und Radial-Menü (auch bekannt als Pie-Menü) beschleunigen das Arbeiten. Verbindungen von Elementen mit den Kantentypen lassen sich durch wenige Handgriffe bewerkstelligen. So reicht schon ein ALT+Klick, um eine selektierte Klasse eine Schnittstelle mit passendem Kantentypen (Typ Implementierung) auf dem Bildschirm zu zaubern. Wir nennen es die iBS Rapid Modeling Technology.

Abb. 1: Automatische Generierung eines Aktivitätsdiagramms aus vorhandenem ABAP-Code

Demonstrieren wir das Ganze an einem Aktivitätsdiagramm anhand eines Beispiels, indem es aus vorhandenem ABAP-Quellcode generiert und gezeichnet wird. Dazu muss das Diagramm mit einem Initial State-Element beginnen. Hierbei muss das Element in der Palette ausgewählt und auf dem Blatt per Mausklick platziert werden. Jetzt stehen zwei Möglichkeiten zur Verfügung: entweder einen Klassentyp und die dazugehörige Methode in den Eigenschaften des Initial State-Elements eintragen beziehungsweise mithilfe der Suchmaske aus dem verbundenen SAP-System auswählen oder einfach ABAP-Code in die Zwischenablage kopieren. Es muss kein vollständiger Code sein; Block-Fragmente reichen aus. Ein Klick auf das Kontextmenü erzeugt sofort und automatisch das Diagramm. Verzweigungen, Schleifen und Blöcke werden mit den entsprechenden Elementen gezeichnet. Interessant und hilfreich dabei: Es ist auch mit Pseudocode möglich. So lassen sich mit wenigen Codezeilen auf einfache Weise komplexe Bedingungen erstellen (Abb. 2 und 3).

Abb. 2: Statt Kästchen zu malen, kann man auch mit wenigen Zeilen Pseudocode …

Abb. 3: … schnell und einfach komplexere Verzweigungen erstellen

Realisieren: Das Klassendiagramm wurde erstellt, das ERM ist endlich fertig. Der Entwickler überträgt die Klassen, Schnittstellen und Tabellen. Das dauert lange und führt zu Flüchtigkeitsfehlern. Und mal ganz ehrlich: Text aus einer Grafik im Designdokument abzutippen, ist bei den wenigsten Entwicklern beliebt. In DesignTime sind ganze Klassen- und ERM-Diagramme, aber auch einzelne designte Klassen beziehungsweise Tabellen über das Kontextmenü durch wenige Handgriffe schnell im SAP-System angelegt. Ein Dialogfenster zeigt die vorhandenen Diagramme, die auf dem angemeldeten System erstellt werden können, und das Programm führt vorher eine Prüfung durch. So können bereits vorhandene Objekte im SAP-System nicht versehentlich überschrieben werden. Nach einem weiteren Klick auf den Button Generate sind die gewählten Objekte erstellt und inaktiv.

(Nach-) Dokumentieren: Zwei Klicks im Kontextmenü EINGABE DES TEXTFRAGMENT DER ZU SUCHENDEN KLASSE, ein weiterer Klick im erscheinenden Suchergebnis unterhalb des Kontexts, und die Klasse samt Attributen, Methoden und Parameter wird prompt in der UML-Notation dargestellt. Zwei weitere Klicks, und man hat die dazugehörigen Schnittstelle oder vielleicht auch die Superklasse ausgewählt. Diese wird dann inklusive Verbindung mit dem dazugehörigen Kantentyp an der zuvor gewählten Position gezeichnet. Auf diese Weise werden Klassendiagramme gezielt aus der bestehenden Implementierung generiert. Zuvor war das nur durch eine manuelle Tätigkeit möglich, bei der auch immer die Gefahr bestand, dass sich (Übertragungs-)Fehler einschleichen. In diesem Fall konnte das Entwicklerteam bei den Diagrammen im Prozess der abschließenden Detaildokumentation durch den jeweiligen Entwickler im Schnitt um den Faktor 10 beschleunigen. Für die Weiterverarbeitung kann das Diagramm in verschiedene Bildformate inklusive Transparenz exportiert werden.

Ausblick

In der aktuellen Version 1.0 stellt DesignTime die wichtigsten, wie die meisten UML-Tools jedoch nicht alle Diagrammtypen zur Verfügung. Das ist insofern nicht gravierend, als sich jene mit den vorhandenen Elementen und Kantentypen zumeist hinreichend gut abbilden lassen. Eine entsprechende Unterstützung der Generierung aus ABAP/DDIC beziehungsweise Generierung im SAP-System bleibt jedoch außen vor. Diese Lücke soll künftig durch Unterstützung weiterer Objekt- und Paketdiagramme geschlossen werden und ist bereits Teil der geplanten Roadmap. Ferner wird eine erweiterte Unterstützung der UML2-Notation angestrebt. Darüber hinaus ist als Highlight einer möglichen Version 2.0 die Teamfähigkeit des Produkts angedacht, sodass mehrere Anwender über das Netz verteilt an derselben Datei arbeiten können.

Fazit

DesignTime hat nicht den Anspruch, eine eierlegende Wollmilchsau für UML-Modellierung zu sein. Es ist ein schlankes Tool mit Perspektive, das Softwaredesigner und Entwickler in der SAP-ABAP-Welt dabei unterstützt, ihre Ideen zu visualisieren, umzusetzen und zu dokumentieren.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -