sap-port-header-sonderdruck 2012-12
     S@pport Sonderdruck aus Heft 12/2012 vom 07. Dezember 2012 · www.sap-port.de

UML-Modellierungs- und Dokumentations-Tool für die „SAP ABAP“-Welt

Mehr Softwarequalität wagen

sap-port-sonderdruck 2012-12

icon pdf Download als PDF

Während die Vorteile von Standardsoftware gegenüber Individualsoftware in der Regel überwiegen, sollten deswegen die Nachteile nicht aus dem Blick geraten. Gerade auch bei Einsatz von SAP-Standardsoftware passt mitunter die fertige Lösung nicht genau zu den betrieblichen Abläufen und Anforderungen. Oder es sind nicht alle Geschäftsprozesse bedacht. Ein möglicher Weg zur Anpassung führt über ABAP. Von Sven Lettau.

SAP bietet etliche Möglichkeiten, Software zu erweitern und/oder an bestehende Prozesse anbinden zu können. Da alle Module auf der Programmiersprache ABAP basieren, können diese entsprechend mit dem Einsatz von ABAP auch erweitert werden. Schnittstellen, Erweiterungspunkte und Konfigurationsmöglichkeiten (Customizing)stehen dafür zur Verfügung. Allerdings können Anpassungen und Erweiterungen der Software an die speziellen Bedürfnisse des Kunden sehr schnell enorme Kosten verursachen.

Entwicklungszeit verkürzen

Es muss also ein Weg gefunden werden, die Kosten zum einen zu reduzieren. Zum anderen müssen auch die Kosten kalkulierbarer werden. Letzteres kann dadurch erreicht werden, dass nicht sofort mit der Entwicklung begonnen wird, sondern die Anforderungen in ein entsprechendes Design umgesetzt werden. Hierbei spielen UML (Unified Modeling Language - Vereinheitlichte Modellierungssprache) und ERM (Entity-Relationship- Modell – Gegenstand-Beziehung- Modell) eine wichtige Rolle – beides etablierte Standards für die grafische Modellierung und Dokumentation von moderner und wartbarer Software. 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.

In der Softwareentwicklung lassen sich Kosten insbesondere durch Verkürzen der Entwicklungszeit reduzieren. Vorzüge des objektorientierten Paradigmas sind eine verbesserte Wartbarkeit und Wiederverwendbarkeit des Quellcodes. Durch den Einsatz von „ABAP Objects“ (auch häufig „ABAP OO“ genannt), der objektorientierten Erweiterung der Programmiersprache ABAP, wird die technische Grundlage dafür gesetzt. Ein entscheidender Vorteil: UML unterstützt den Einsatz einer objektorientierten Programmiersprache durch eine Vielzahl von Diagrammarten wie den Klassen- und Sequenzdiagrammen. Somit können Vorgaben besser dargestellt und kommuniziert werden. Die Erweiterungen lassen sich aus technischer Sicht besser, eindeutiger, vollständig und verständlich dokumentieren. Eine Optimierung des Arbeitsprozesses bei der Erstellung von Modellierungen einerseits, aber auch Unterstützung bei der Umsetzung der Designvorgaben und bei der Dokumentation der Entwicklung andererseits sind folgerichtig ein weiterer Schritt, um die Kosten reduzieren zu können. Dazu bedarf es aber den Einsatz von speziellen Tools, die sich perfekt in die Toolchain der vorhandenen Entwicklungsumgebung und Systeme eingliedern, Code und Tabellen aus den Diagrammen generieren und – wichtig für die Nachdokumentation – Diagramme aus dem Quellcode und ERM aus den Tabellen in der Datenbank erstellen.

UML / ERM in ABAP

Klassen- und Sequenzdiagramme, aber auch Aktivitätsdiagramme und ERM für Datenbanken sind wichtige Bestandteile, wenn die Entwicklung modelliert und dokumentiert wird. Unterstützung für die grafische Umsetzung erhält der Softwarearchitekt oder -designer durch eine Vielzahl von auf dem Markt erhältlichen UML- und ERM-Tools oder mit diversen Visualisierungsprogrammen. Suchte man allerdings nach einem speziell auf die SAP-Entwicklung zugeschnittenen Werkzeug, welches ermöglicht, per Live- Anbindung ans System nach Datenobjekten zu suchen, aus Modellierungen ABAP-Code oder DDIC-Tabellen zu erzeugen oder aus ABAP-Code Diagramme zu erstellen, so gab es hierfür bis vor Kurzem erstaunlicherweise keine Lösung. Aus diesem Grund hat die iBS, Hersteller von SAP-Standardsoftware für Banken, ein entsprechendes Tool für den Eigenbedarf entwickelt und im September 2012 als Produkt „iBS DesignTime for ABAP“ veröffentlicht.

Modellieren

Erweiterung von Software bedeutet, die vorhandenen Schnittstellen zu implementieren und auf vorhandene Elemente zuzugreifen. Schon bei der Modellierung von Klassendiagrammen kann ein Zugriff auf das SAP-System sehr hilfreich sein, um nach Schnittstellen, Klassen und Datenelementen zu suchen, um dann mit wenigen Handgriffen das Gefundene in das Diagramm übernehmen zu können. Diesen Vorgang ohne eine Anbindung an das System vorzunehmen ist fehleranfällig, beschwerlich und kostet unnötig Zeit.

Aktivitätsdiagramme eignen sich gut, um Abläufe, Wiederholungen und Verzweigungen von Aktivitäten darzustellen. Die Demonstration des Diagrammgenerators aus bestehendem Code lässt sich mit DesignTime wie folgt realisieren. Dazu muss das Diagramm mit einem „Initial State“-Element beginnen, wobei das Element in der Palette ausgewählt und auf dem Blatt per Mausklick platziert werden muss. Jetzt stehen zwei Möglichkeiten zur Verfügung: Entweder wird nun ein Klassentyp und die dazugehö rige Methode in den Eigenschaften des Initial-State-Elements eingetragen beziehungsweise mithilfe der Suchmaske, angemeldet am SAP-System, Klasse und Methode ausgewählt oder aber es wird einfach ABAP-Code in die Zwischenablage kopiert. Es muss kein vollständiger Code sein, Blockfragmente 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 und Schleifen erstellen.

Realisieren

Das Klassendiagramm wurde erstellt und durch Sequenzdiagramme ergänzt. Aktivitätsdiagramme und ERM sind auch fertig. Würde der Entwickler diese Vorgaben alle abtippen, er wäre schnell demotiviert. Und aufgrund der unterfordernden Tätigkeit kämen dabei schnell Flüchtigkeitsfehler auf. Text aus einer Grafik im Designdokument abzutippen, ist bei den wenigsten Entwicklern beliebt. Ein Codegenerator, der die ABAP-Sprache und auch das SAP-System kennt, kann ganze Klassen- und ERM-Diagramme, aber auch einzelne designte Klassen und Schnittstellen beziehungsweise Tabellen über das Kontextmenü durch wenige Handgriffe schnell im SAP-System anlegen. Tippfehler werden vermieden, Elemente nicht vergessen und darüber hinaus hat der Entwickler weniger Zeit für das Anlegen benötigt, sodass er sich voll und ganz auf die eigentliche Entwicklung konzentrieren kann.

Dokumentieren

Es gibt viele Gründe, warum Dokumentation wichtig und notwendig ist. Sei es aus Gründen einer revisionssicheren Dokumentation im Entwicklungsprozess, der Nachvollziehbarkeit oder als Quelle für benötigte Informationen. Kurz gesagt, es kann nicht an der Dokumentation selbst und auch nicht an der Qualität gespart werden, aber an der Zeit für die Erstellung. Der Diagrammgenerator kann aus bestehendem Code Klassendiagramme samt Attributen, Methoden und Parametern über eine Suchmaske im Kontextmenü erstellen. Dabei werden mit nur zwei weiteren Mausklicks die dazugehörige Schnittstelle und auch die Superklasse ausgewählt. Diese wird dann inklusive Verbindung mit dem dazugehörigen Kantentyp an der zuvor gewählten Position gezeichnet werden. 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. Durch die automatisierte Diagrammgenerierung können Entwickler die abschließende Detaildokumentation im Schnitt um den Faktor 10 beschleunigen. Im Rahmen eines Erweiterungsprojekts für eine deutsche Hypothekenbank konnte die Dokumentationszeit beispielsweise so von acht Stunden auf unter eine Stunde reduziert werden. Für die Weiterverarbeitung kann das Diagramm in verschiedene Bildformate inklusive Transparenz exportiert werden.

Fazit

UML steht auch der ABAP-Welt offen und es spricht wirklich nichts dagegen, sie anwenden zu wollen. Klassen-, Sequenz- und Aktivitätsdiagramme sind mit ihrer Notation nicht auf eine Sprache begrenzt und unterstützen die Entwicklung insbesondere in den objektorientierten Sprachen. Letztendlich hat es sich in vielen Entwicklungsprojekten als Standard etabliert und sollte deswegen in keinem Projekt mehr fehlen. Der Zeitfaktor lässt sich dabei leicht optimieren, wenn auf ein geeignetes Tool gesetzt wird, welches auch auf die Programmiersprache und das Entwicklungssystem abgestimmt ist. (ap) @