Dienstag, 7. Oktober 2008

Kooperierende Softwareteile

In der Softwarewelt der Zukunft wird es nicht mehr einen Lieferanten von "Standardsoftware" geben, an dessen langem Arm die gesamte IT-Welt hängt. SAP selbst hat sich schon seit Jahren von einem solchen Konzept der "Standardsoftware" verabschiedet. Man spricht heute moderater von Best Practices. SAP liefert gewisse Best Practices aus. Die Unternehmen haben ebenfalls spezifische, in langjährigen Prozessen entstandene Best Practices für ihre Geschäftsprozesse. Es kommt für die eingesetzte IT lediglich darauf an, dass eine möglichst flexible Plattform geboten wird, um die verschiedenen Best Practices effizient miteinander kooperieren zu lassen und zu einer praktikablen Gesamtlösung zusammenzusetzen.

Die Business Server Pages sind - übrigens ebenso wie der im SAP Web Application Server enthaltene Java Stack - ganz in diesem Geiste. Sie ermöglichen es, den SAP-Lösungen eigene, nicht von SAP kommende Standards (keine proprietären GUI-Definitionen, keine proprietäre Programmiersprache, sondern gängige, verbreitete Sprachen wie HTML, CSS, JavaScript und Java) hinzuzufügen. So kann beispielsweise eine Gesamtlösung aus einer kundeneigenen Web-Oberfläche und einer angeschlossenen SAP-Geschäftslogik kombiniert werden, um das beste aus beiden Welten zu nehmen: Die Integration der Geschäftsprozesse ist die Stärke von SAP ERP, der eine auf das Unternehmen massgeschneiderte Benutzeroberfläche hinzugefügt wird. Auch die Geschäftsprozesse selbst sind schon seit langem offen für unternehmensspezifische Erweiterungen und Anpassungen - dank der BAdI-Technologie bzw. des neuen Enhancement Frameworks.

Entscheidender Bestandteil, damit diese kooperative Philosophie gedeiht, ist eine echte Modularisierung. Für SAP bedeutet dies: Man sollte in Zukunft nicht zig Systeme hinzukaufen müssen, nur damit das eine System, an dem man wirklich interessiert ist, funktioniert. Ein Modul ist ein separat lauffähiger Baustein. Wer sich für die Integration mit anderen Bausteinen interessiert, wird schon selbst nach diesen anderen Bausteinen fragen – wenn sie wirklich gut sind. Er soll aber nicht gezwungen sein, eigentlich nicht benötigte Bausteine zu beschaffen und zu betreiben.

Eine der meines Erachtens wichtigsten Forderungen, auf die trotz eines zunehmenden Interesses immer noch viel zu wenig Augenmerk gerichtet wird, ist die Testbarkeit: Alle Module müssen durch automatische Tests abgesichert sein.

Das gilt wie für SAP auch für die vom Kunden hinzugefügten Best Practices. Eine ideale Voraussetzung der Modularität ist es, die Programme automatisch testbar zu machen. Dazu gehören auf Code-Ebene vor allem Unit Tests. Die Hauptarbeit beim Zusammensetzen von Modulen aus verschiedenen Quellen liegt natürlich darin, den Datenfluss zwischen ihnen einzurichten, also im Mapping. Wenn für jede Komponente Modultests vorliegen, wird diese Arbeit enorm erleichtert. Die Tests dokumentieren den Gebrauch der Schnittstelle: sie zeigen, welche Daten in welcher Form erwartet werden und beweisen zugleich die Funktionsfähigkeit des Moduls. Sollten sich bisher unentdeckte Fehler im Modul herausstellen, so wird es leicht, auch hierfür einen automatischen Test zu schreiben, und dank der bereits vorliegenden Testsammlung wird die Fehlerbehebung beschleunigt.

Keine Kommentare :