19.05.2005, 20:00 Uhr

Software Factories unter J2EE

Software Factories ermöglichen es, weite Teile einer Applikation zu modellieren statt auszuprogrammieren. «Fleissarbeit» wird aus dem Entwicklungsprozess entfernt. Eine Softwarelösung ist so schneller und günstiger gebaut. VON ANDRÉ NAEF*
JET Software Factory von Ergon ermöglicht die modellgetriebene Realisierung von daten- und prozessorientierten Applikationen auf der J2EE Plattform (Illustration 1). Die Software Factory besteht aus Framework Komponenten für die Datenintegration und Workfl ow Prozesse sowie die Präsentation im Web. Diese Framework Komponenten werden durch Modelle parametrisiert. Die Modelle enthalten die applikationsspezifi schen Aspekte der Lösung, das heisst insbesondere die konkreten Datenmodelle und Prozesse des Kunden. Folgende Modelle stehen zur Verfügung:
o Relationales Datenmodell: Dieses Modell beschreibt die Tabellen und Views der Lösung in der relationalen Datenbank. Das Modell ist dicht mit weiteren Modellen integriert.
o Prozesse: Dieses Modell beschreibt die Workfl ow-Prozesse der Lösung.
o Berechtigungen: Dieses Modell beschreibt die Berechtigungen der Benutzer bezüglich der angebotenen Daten, Funktionen und Prozesse.
o Data Dictonary: Dieses Modell ermöglicht die Integration verschiedener Datenquellen wie relationale Datenbanken, aber auch Prozesse, Directories, XML und Web Services. Es können Bezüge zwischen den Daten defi niert werden, berechnete Felder erstellt werden und vielfältige Parameter für die Präsentation festgelegt werden.
o Web Masken: Web Masken erlauben es, Elemente aus dem Data Dictionary herauszugreifen und für die Präsentation im Web aufzubereiten. Masken können zu diesem Zweck datengebundene Felder, Tabellen, Bäume und weitere Elemente zur Gliederung und Steuerung enthalten. Das Maskenmodell beschränkt sich auf die Defi nition der zu präsentierenden Information und Struktur. Das Feinlayout in HTML wird automatisch vom Framework erstellt.
o Auswertungen: Auswertungen erlauben die Defi nition von Reports basierend auf dem Data Dictionary. Die Reports können anschliessend im PDF Format angezeigt werden. Auch dieses Modell beschränkt sich auf die Defi nition der zu präsentierenden Information und Struktur. Das Layout wird anhand des Data Dictionary und der umgesetzten CI/CD Anforderungen des Kunden automatisch erstellt.

Die JET Software Factory reduziert den Aufwand für die Umsetzung der «Datenwanderung » von allen integrierten Datenquellen zum Endbenutzer und zurück auf ein absolutes Minimum. Dieser zentrale Aspekt von Informationslösungen kann weitestgehend durch Modellierung abgedeckt werden, was die schnelle Umsetzung und Anpassung von Lösungen ermöglicht.

Integrierte Werkzeuge in Eclipse

Für die Bearbeitung der verschiedenen Modelle stehen Werkzeuge in Form von Plug- Ins in die Eclipse IDE zur Verfügung. Die Werkzeuge erlauben das einfache Editieren der Mode lle. Sie stellen überdies sicher, dass die Modelle untereinander konsistent sind. Beispielsweise wird automatisch erkannt, wenn ein Feldbezug auf einer Maske durch eine Veränderung im Datenmodell ungültig wird, so dass der Entwickler entsprechend reagieren kann (Screen1).
Die Werkzeuge der Software Factory umfassen weiter Generatoren. Code Generatoren erstellen für das Datenmodell die entsprechenden Java Klassen. Diese Java Klassen bilden die Brücke für die Programmierung von Geschäftsfunktionalität (Verbuchungen, usw.) auf dem Datenmodell. SQL DDL Generatoren erstellen die Skripte für die Erstellung und Migration des relationalen Datenbankschemas der Lösung.

Software Factories im Detail

Software Factories, wie die oben vorgestellte, weisen folgende Eigenschaften auf:
o Fokus auf einen bestimmten Einsatzbereich («Domain»). Die oben beschriebene Software Factory hat daten- und prozessorientierte Lösungen als Domain.
o Entwicklung durch Assemblieren und Wiederverwendung: Die Erstellung von Lösungen erfolgt basierend auf wieder verwendbaren Frameworks und Komponenten.
o Modellgetriebene Entwicklung: Die Realisierung der Lösung erfolgt durch Modellieren der eigentlichen «Business Intention » der Lösung.
o Domain Specifi c Languages: Software Factories verwenden für die Repräsentation ihrer Modelle Sprachen, die spezi- fi sch für die anvisierte Domain sind. Diese Modellsprachen sind aufgrund ihrer Spezialisierung nahe am Business und erlauben, die «Business Intention» sehr direkt auszudrücken. Solche sogenannten Domain Specifi c Languages (DSLs) werden in der Regel basierend auf XML defi niert. Alle oben beschriebenen Modelle der JET Software Factory haben eine entsprechende DSL.
o Integrierte Entwicklungswerkzeuge: Die Werkzeuge sind passend zur Plattform der Software Factory. Sie beinhalten insbesondere Editoren für die DSLs und Generatoren.
o Nutzung der Economy of Scope: SoftwareFactories werden für eine bestimmte Domain erstellt (Scope). Sie ermöglichen da mit die Nutzung der sogenannten Economy of Scope, die in dieser Domain steckt. Dies ist für den Produktivitätsgewinn in der Erstellung und dem Unterhalt von Individualsoftware von Bedeutung, da es in der Individualsoftware keine traditionelle «Economy of Scale» gibt.

Vor- und Nachteile

Software Factories unterscheiden sich von traditionellem MDA in Ihrer Verwendung von Domain Specifi c Languages (DSLs). In MDA sind die Modellsprachen standardisiert. Die bekanntesten Vertreter solcher standardisierten Modellsprachen sind die Unifi ed Modelling Language (UML) und das Common Warehouse Metamodel (CWM). Die Vorteile standardisierter Modellsprachen liegen im breiten Einsatzspektrum und der entsprechend breiten Verfügbarkeit von Werkzeugen, insbesondere auch aus der Open Source Community. Der Nachteil standardisierter Modellsprachen ist, dass sie vergleichsweise technisch sind und weit von den zu realisierenden Business-Konzepten entfernt sind. An dieser Tatsache ändert auch der Einsatz von UML Profi len fundamental nichts.
Der Vorteil von Domain Specifi c Languages ist, dass sie sehr nahe am Business sind und damit am effektivsten die Umsetzung der geforderten Business Konzepte ermöglichen. Dies ist insbesondere deshalb von Bedeutung, weil Änderungen und neue Anforderungen im Life Cycle einer Lösung vom Business ausgehen und durch DSLs auf dem direktesten Weg in die Lösung einfl iessen können. Mittels Software Factories erstellte Lösung sind deshalb sehr änderungsfreundlich. DSLs erreichen eine viel stärkere «Hebelwirkung » als standardisierte Modellsprachen. Der Nachteil von DSLs ist, dass mehr Aufwand in ihre Defi nition und den Unterhalt der entsprechenden Plattformen und Werkzeuge investiert werden muss.
Die Erstellung einer Software Factory für eine Domain lohnt sich dann, wenn innerhalb dieser Domain mit einer grossen Wiederverwendung gerechnet werden kann. In der Praxis bedeutet dies, dass in der Domain über längere Zeit eine Familie von Lösungen realisiert wird (Product Line). Voraussetzung für die erfolgreiche Umsetzung einer Software Factory ist ein ausgeprägtes Verständnis der Ziel-Domain. Eine Software Factory wird nicht direkt erstellt, sondern basierend auf Erfahrungen aus der traditionellen Realisierung von Lösungen in der Domain. Diese Erfahrungen ermöglichen letztlich, die wiederverwendbaren Aspekte der Domain - den Scope der Domain - zu erkennen und dafür geeignete komponentenbasierte Frameworks, Modellsprachen und Entwicklungswerkzeuge zu schaffen.
Software Factories sind somit ein mächtiges Werkzeug für die zunehmend spezialisierten vertikalen Lösungsmärkte in der IT und ermöglichen es auch, Hochpreis-Ländern wie der Schweiz, sehr kosteneffi ziente Lösungen zu bauen und mit Offshore Ansätzen zu konkurrenzieren.


Das könnte Sie auch interessieren