Column #col2

ConsultingProjektbeschreibungenHandel/Warenwirtschaft

Handel/Warenwirtschaft

Unsere Projekte

Datenmigration zwischen Warenwirtschaftssystemen im pharmazeutischen Bereich

Kunde
Der Kunde ist ein führender Hersteller von pharmazeutischer Warenwirtschaftssoftware für Apotheken. Das Warenwirtschaftssystem ist bei einigen 1000 Kunden im Einsatz mit jeweils mehreren Clients sowie einem Application- und DB-Server.

Projektbeschreibung
Ziel des Projektes ist die automatische Migration aller Daten der Bestandskunden auf ein komplett neu entwickeltes Warenwirtschaftssystem mit Stammdatenpflege, Bestellwesen, Lagerhaltung, Inventur sowie Absatz- und Einkaufsplanung. Das bestehende System und die Neuentwicklung unterscheiden sich dabei in fast allen technischen und fachlichen Eigenschaften. Dazu gehören vor allem Betriebssystem (Linux->Windows), Programmiersprachen (4GL-Eigenentwicklung ->.NET/C#), Datenbanksystem (Datei-basierte DB ->SQL-Server), Datenmodellierung (flache Strukturen -> komplexe OO-Modelle).
Da die Einführung des neuen Warenwirtschaftssystem über mehrere Jahre erfolgt, müssen bei der Migration auf beiden Seiten unterschiedliche Softwareversionen unterstützt werden.

Anforderungsanalyse
Bei der Migration werden alle Bewegungsdaten mehrerer Jahre mit mehreren Millionen Datensätzen übernommen. Dafür konnten ca. 50 verschiedene Datenstrukturen ermittelt werden, die für die Migration relevant sind. Jede Datenstruktur besteht aus mehreren Klassen und enthält zwischen 5 und 100 Attributen. Teile des Projektes sollen auch für Migrationen von Warenwirtschaftssystemen anderer Hersteller verwendet werden.

Pro Jahr kann aus Kapazitätsgründen bei maximal 1000 Kunden eine Migration durchgeführt werden. Während der gesamten Migrationsphase (>4 Jahre) werden beide Warenwirtschaftssysteme kontinuierlich weiter entwickelt. Dadurch verändern oder erweitern sich auch fortwährend die Datenstrukturen der Migration.

Die eigentliche Migration soll ohne Ausfallzeit des Gesamtsystems erfolgen. Nach der Migration dürfen im neu entwickelten System keine ungültigen Datenbestände existieren. Ggf. inkonsistente Datensätze müssen bei der Migration repariert oder entfernt werden.

Softwarearchitektur
Auf Grund der gewünschten Entkopplung der beteiligten Systeme während der Migrationsphase wurde für den kompletten Datenbestand eine XML-Schema-basierte Schnittstelle definiert und das Projekt in 3 Teile zerlegt:

  • Definition der dem Zielsystem nahen XML-Schema-Schnittstelle sowie Definition der technischen Abläufe im Migrationsprozess,
  • Realisierung des Datenexports aus dem Ist-System,
  • Realisierung des Datenimports in das neu entwickelte Warenwirtschaftssystem.

Design und Implementierung
Bei der Definition der XML-Schema-Schnittstelle wurden möglichst viele Validierungen direkt in der Schnittstelle definiert, so dass der Aufwand für manuelle Plausibilitätsprüfungen minimiert wird.

Der Datenexport wurde in der systemeigenen 4GL-Programmierspache des bestehenden Systems realisiert.

Die Importpipeline (.NET/C#) wird durch ein umfangreiches Framework unterstützt. Codegeneratoren werden benutzt, um aus der XML-Schema-Schnittstelle Objektmodelle für einzelne Importer zu generieren.

Werkzeuge
Enterprise Architekt, Altova XMLSpy, Altova MapForce, XSLT, C#3.0, VisualStudio 2005 & 2008, C++, 4GL-Sprache, Team Foundation Server, NUnit

Unsere Aufgaben
Cortex Brainware GmbH war für die Analyse und das Gesamt-Design sowie für entscheidende Teile der Realisierung verantwortlich und übernahm in diesem Projekt die Rollen Projektleiter, Architekt, Framework-Designer, Framework-Entwickler.

Dauer/Größe
3-4 Personenjahre

Neuentwicklung eines Warenwirtschaftssystems für Apotheken

Kunde
Der Kunde ist ein führender Hersteller von pharmazeutischer Warenwirtschaftssoftware für Apotheken. Das Warenwirtschaftssystem ist bei einigen 1000 Kunden im Einsatz mit jeweils mehreren Clients sowie einem Application- und DB-Server.

Projektbeschreibung
Ziel des Projektes ist die komplette Neuentwicklung des gesamten Warenwirtschaftssystems mit Komponenten in den Bereichen

  • Kassensysteme (Point-Of-Sale),
  • Faktura,
  • Bestellwesen mit Einkaufs- und Absatzplanung sowie Lieferantenkonditionen,
  • Wareneingang,
  • Lagerhaltung,
  • dezentrale und zentrale Pflege von Stammdaten,
  • Kundeninformationssysteme,
  • Anbindung an vorhandene Data-Warehouse- und Informationssysteme usw.

Grundlegende Anforderung ist, dass strategische und organisatorische Maßnahmen (z. B. Filialkettenbildung oder gemeinsame Einkaufs- oder Marketing-Initiativen) nicht durch technische Schranken (Verteilung der Daten, Aufstellung und Vernetzung der Server) behindert werden dürfen. Daher muss die Lösung mehrsystemfähig und mandantenfähig sein.

Systemarchitektur
Je Einsatzort besteht eine sternförmige Client-Server-Struktur (Clients: POS- und Backoffice-Systeme; Server: Application-Server unter .NET und SQL-Server, gedoppelt für Ausfallsicherheit) mit zusätzlichen Endgeräten (z. B. Kommissionier-Automat).
Mehrere solche Sterne können an Kooperationen teilnehmen, die über gemeinsame, in kurzen Zeitabständen synchronisierte Daten verfügen.
Ein Zentralsystem verwaltet Softwarestände sowie zyklisch (z. B. wöchentlich) neu auszuliefernde Daten aus heterogenen externen Datenquellen, die automatisch an die Server verteilt werden.

Softwarearchitektur
Die Schichtenarchitektur besteht aus vier aktiven funktionalen Schichten, die jeweils über Schnittstellen vollständig entkoppelt sind:

  • GUI (Präsentation),
  • Screenflow (Maskenfolge, Reaktion auf Events),
  • Businesslogik,
  • Persistenz (SQL-Server-Datenbank, angebunden über NHibernate).

In allen Schichten werden die wesentlichen Strukturen (Masken, Navigationsabläufe, Entities) über eigene Sprachen definiert, aus denen über Codegenerierung ca. 50% des Gesamtcodes erzeugt werden. Dieses Vorgehen hat sich bei einigen großen Erweiterungen der Funktionalität zur Aufwandsminimierung bewährt.
Die Batch-Anteile (v. a. Daten-Import und -Export) folgen derselben Schichtenarchitektur, allerdings ohne GUI- und Screenflow-Schicht. Ein skalierendes Framework erlaubt die fehlertolerante und speichereffiziente Verarbeitung von großen Datenmengen mit beliebiger, in C# programmierter Applikationslogik mit automatischer Zerlegung in optimal angepasste Transaktionen.
Die Applikationsmodule sind in einer nicht-strikten Applikations-Schichtenarchitektur angeordnet, wobei jedes Modul intern gemäß den funktionalen Schichten zerlegt ist. Alle Dienste der Applikation in allen funktionalen Schichten und Applikationsschichten sind über das Pattern „Dependency Injection“ entkoppelt.
Die Basisfunktionalitäten für alle Schichten sind in ein applikationsunabhängiges Framework herausgelöst, das u. a. die Abstraktion von Transportschichten, Laufzeitumgebungen für die verschiedenen generierten Klassen und Standardfunktionalitäten für Collections, Validierung usw. zur Verfügung stellt.

Werkzeuge
VisualStudio 2005 & 2008, C#2.0/3.0, Team Foundation Server 2005 & 2008, Enterprise Architect 6.x und 7.x, SQL Server 2005 & 2008; dotTrace; Webservices; WCF; ANTLR; NUnit; MSBuild und weitere .NET-Tools.

Unsere Aufgaben
Cortex Brainware GmbH war für folgende Punkte verantwortlich:

  • System- und Softwarearchitektur,
  • Framework-Design und –Implementierung,
  • GUI-Konzepte,
  • Applikations-Design und –Implementierung,
  • Schulung,
  • Teamführung,
  • Verantwortung für Ressourcen¬planung und Terminplanung/Termineinhaltung,
  • fachliche Anleitung von Analysten, Softwarearchitekten, Designern, Entwicklern und QA-Teams,
  • „Evangelisieren“ für die Einführung moderner Modellierungs- und Entwicklungsprozesse und -tools, für Definition und Einhaltung einer sauberen Architektur, für Einführung und Verwendung eines Frameworks inkl. „COTS“-Komponenten wie NHibernate,
  • technisches sowie Projekt- und Konfliktmanagement

und nahm dabei u.a. folgende Rollen wahr:

  • Gesamtarchitekt,
  • Teilsystem-Architekt,
  • Framework- und Applikations-Designer,
  • Framework- und Applikations-Entwickler.

Dauer/Größe
> 100 Personenjahre

Datenmigration eines Warenwirtschaftssystems mit MDD/DSM-Technologie

Kunde
Der Kunde ist ein Anbieter von Warenwirtschaftssystemen für Apotheken.

Projektbeschreibung
Ziel des Projekts war die Entwicklung eines Metamodells mittels MDD/DSM-Technologie für die Übernahme der Datenbestände aus dem bislang vom Kunden vertriebenen System in das neue, derzeit in der Pilotphase befindliche System. Dies beinhaltete sowohl die Entwicklung der Software für die Extraktion der Daten aus dem Ursprungssystem als auch für deren Aufbereitung und Übergabe an das Zielsystem unter Verwendung der Schnittstellen des Zielsystems. Die Datenübernahme musste so realisiert werden, dass sie für jede der zahlreichen (~3000) Installationen der Systeme automatisch erfolgen kann.

Vorgehensmodell / Softwareentwicklungsprozess
Da sowohl das Ursprungssystem als auch das Zielsystem während des Projekts weiter entwickelt wurden, war ein hochgradig agiler Ansatz erforderlich. Zur Unterstützung dieses Ansatzes wurden Techniken der modellgetriebenen Entwicklung eingesetzt, die es erlaubten, durch Neugenerierung von Code rasch auf Änderungen zu reagieren.

Softwarearchitektur
Aufgrund der heterogenen Systeme wurde die Datenextraktion als Service realisiert, der die extrahierten und fachlich aufbereiteten Daten als XML-Dokumente exportierte.
Die Komponenten für das Laden der Daten in das Zielsystem wurden auf Basis des Command-Patterns als C#-Anwendung implementiert. Die technisch aufbereiteten Daten wurden an die vorhandene Schnittstelle der Zielanwendung übergeben, die ihrerseits fachliche Prüfungen und die Übergabe an die NHibernate-basierte Persistenzschicht übernahm.

Aus technischen Eigenschaften des Ursprungssystem resultierte eine Schnittstelle des Extraktionsservices, die technisch relativ stark vom Typsystem des Zielsystems abwich. Deswegen wurde eine Transformationsfunktionalität benötigt, die wenig fachlichen Inhalt hatte, aber vom reinen Codeumfang sehr umfangreich war. Diese Aufgabe wurde derart gelöst, dass die Transformationsschicht fast vollständig aus Modellen generiert wurde. Diese Anwendung von Techniken der modellgetriebenen Softwareentwicklung erforderte ein domänenspezifisches Metamodell, welches seinerseits mithilfe der Microsoft-DSL-Tools als VS-Erweiterung entwickelt wurde.

Design und Implementierung
Die Systemkomponenten zur Datenextraktion auf der Seite des Ursprungssystems wurden mit den Mitteln einer vorhandenen proprietären Scriptsprache realisiert. Soweit möglich wurden verwendetet Datentypdeklarationen hierzu aus dem Modell generiert.

Die Systemkomponenten zum Laden auf der Seite des Zielsystems wurden als C#-Klassen implementiert. Das angesprochene Zielsystem selbst war ebenfalls in C# realisiert.

Darüber hinaus wurden auch die projektspezifischen Werkzeuge, insbesondere das Metamodell der domänenspezifischen Sprache und die darauf basierenden Generatoren in C# implementiert.

Werkzeuge
Entwicklungsumgebung, Zielsystem: .Net, C#, MS-VS, MS-TFS.
Entwicklungsumgebung, Ursprungssystem: Linux, proprietäre Scriptsprache.
Modellierung: Modellgetriebene Entwicklung (MDD) zur Generierung eines Großteils des Codes. Modellierung mit Mitteln einer domänenspezifischen Sprache.
Metamodellentwicklung: Microsoft-DSL-Tools.

Unsere Aufgaben
Cortex Brainware GmbH war für Solution-Design, Architektur, Toolentwicklung und technische Projektleitung verantwortlich.

Dauer / Größe
Der Umfang des Projekts betrug insgesamt ca. 4 Personenjahre.

Neuentwicklung eines CRM-Systems für Apotheken zur Planung und Verwaltung herstellerbezogener und patientenorientierter Verkaufsaktionen

Kunde
Der Kunde ist ein führender Softwarehersteller für die deutsche Pharma- und Gesundheitsbranche.

Projektbeschreibung
Ziel des Projektes war die Neuentwicklung eines CRM-Systems für Apotheken zur Planung und Verwaltung herstellerbezogener und patientenorientierter Verkaufsaktionen. Dabei sollten alle Phasen einer Verkaufsaktion von der Planung über die Durchführung bis hin zur Auswertung der Aktion unterstützt sowie die Anbindung des CRM-Systems an existierende Systeme aus der Pharmaindustrie ermöglicht werden. Aufgrund dieser notwendigen Integration mit heterogenen Systemen aus der Pharmaindustrie und mit dem eigenen Warenwirtschaftssystem schieden für dieses Projekt auf dem Markt erhältliche CRM-Systeme aus.

Vorgehensmodell / Softwareentwicklungsprozess
Ein agiler Entwicklungsprozess mit sehr engen Iterationszyklen verbesserte die Zusammenarbeit zwischen dem Analyse-, Entwicklungs-, Qualitätssicherungs- und Dokumentationsteam.

Softwarearchitektur
Die Softwarearchitektur orientiert sich an den Aufgaben der Planung, Durchführung und Auswertung der Werbeaktionen. Insbesondere die Planung einer Werbeaktion erfordert viele einzelne Schritte, die wie ein Workflow durchlaufen werden. Dies spiegelt sich in der Architektur wider.
Die Architektur beinhaltet folgende Schichten:

  • GUI: Windows Forms mit UserControls als Vorlagen für Assistenten zur Erhöhung der Wiederverwendbarkeit und Einheitlichkeit der Benutzerführung.
  • Workflow: Steuerung der Navigation durch einzelne Schritte der Aktionsplanung. Dabei werden Abhängigkeiten zwischen Schritten automatisch berücksichtigt, so dass einzelne Schritte nur durchgeführt werden können, wenn alle Voraussetzungen erfüllt sind. Dies vereinfacht die Entwicklung komplexer Planungsassistenten und vermeidet interne Abhängigkeiten.
  • Business-Objekte: Behandlung der Geschäftslogik in allen angesprochenen Bereichen.
  • Webservices zur Abfrage und Speicherung von Daten in das vorhandene Warenwirtschaftssystem sowie zur Anbindung und Integration von Aktionen externer Zulieferer aus der Pharmaindustrie.
  • Dabei greifen Business-Services sowohl auf die Webservice- als auch die Persistenz-Schicht zu. Für Workflow-, Persistenz- und Util-Komponenten wurde ein eigenes Framework entwickelt, das mit einem bestehenden Framework für ein Warenwirtschaftssystem integriert wurde.
  • Persistenz: Datenmodell über Business-Objekte und Datenzugriff über O/R-Mapping. Modellgetriebener Ansatz, bei dem aus dem Klassenmodell die Implementierung der Business-Objekte, das OR-Mapping sowie die Datenbank generiert werden. Dadurch können Erweiterungen und Änderungen in kürzester Zeit vorgenommen werden, was bei der laufenden Pflege neuer Aktionen wichtig ist.

Design und Implementierung

  • Generische und modulare Implementierung von Aktionsvorlagen und zugehöriger Dokumente zur Erfüllung folgender Anforderungen: Flexible Konfiguration und Anbindung heterogener Aktionsvorlagen, Aktionen und Dokumente von verschiedenen Adressaten und Geschäftspartnern aus der Pharmaindustrie; Webservice-Anbindung an Portale von Pharmaanbietern, die bei einzelnen Planungsschritten (z. B. zur Konfiguration von Werbeanschreiben an Kunden) mit den Standardplanungsschritten vernetzt sind; Unterstützung von herstellerspezifischen alternativen Abläufen (Basis vs. Premium) und von vorgegebenen Bestellformaten für Materialien/Arzneimittel, die zur Aktionsdurchführung erforderlich sind.
  • Mehrstufiges Caching und komplexe Aggregationen über Kunden- und Beratungsprotokolldaten der jeweiligen Aktionen zur Konfiguration und Darstellung von Auswertungsinformationen.
  • Asynchrone Webservices zur Performancesteigerung der Zugriffe auf das eigene Warenwirtschaftssystem.
  • Automatische Installation von Programm und Datenbank mit Integration in Microsoft Office (zur Verwaltung von Vorlagen und Versand von Werbemails): Automatische Installation inkl. Deinstallation von Vorgängerversionen und automatischer Datenbankmigration ohne Datenverlust; Migrationsframework zur Unterstützung von DB-Schemaänderungen bei Versionsupdates.
  • Webservice-Fassaden und -Mock-Objekte dienen der Isolation der Anwendungsteile und erleichtern das Erstellen automatisierter Unittests der Business-Service-Schicht.
  • ASP.NET-Anwendung zur Verwaltung des Online-Lizenzservers mit Anbindung an das hauseigene ERP-System.

Werkzeuge
MS .NET-Framework 2.0 (Visual Studio 2005, C#), WinForms (mit Infragistics-Controls), MS Team Foundation Server (TFS) für Versionscontroller und Verwaltung aller Projekt-Items, NHibernate OR-Mapping, MS SQLServer (2005 + Express) inkl. Reporting Tools, Enterprise Architect, Windows-Installer.

Unsere Aufgaben
Cortex Brainware GmbH übernahm in diesem Projekt nicht nur die Projektleitung, die Definition der Architektur und die Definition des Softwareentwicklungsprozesses, sondern auch kritische Teile bei der Realisierung.

Entwicklung eines neuen Warenwirtschaftssystems in Java

Kunde
Unser Kunde ist ein europaweit führendes Handelsunternehmen für Elektro- und Elektronikartikel mit mehr als 550 Filialen in mehr als 10 Ländern.

Projektziele
Ziel des Projektes war die Neuentwicklung einer neuen Generation der zentral eingesetzten Verwaltungssoftware mit Komponenten in den Bereichen

  • Artikelverwaltung,
  • Lieferantenverwaltung,
  • EDI-Anbindung für elektronische Übergabe der von Lieferanten zur Verfügung gestellten Artikeldaten und andere Daten,
  • Verteilung der Daten an alle Filialsysteme in 10 europäischen Ländern.

Wesentlich für das Gelingen des Gesamtprojekts war die Einführung der neuen Modellierungskonzepte und Java-Technologien in den vorhandenen Teams und Abteilungen. Cortex Brainware trug hier u. a. durch

  • projektübergreifende Modellierung,
  • Realisierung eines Feature-reichen Frameworks,
  • intensive Schulung,
  • Einführung und Vertiefung moderner Methoden und Technologien,
  • Realisierung komplexer zentraler Framework-Teile

dazu bei, einen Projekterfolg zu erzielen.

Softwarearchitektur
Die Software ist als Rich-Client-Anwendung auf der Basis von Java-Swing realisiert. Der EJB-Application-Server führt zentrale Business-Operationen für EDI und Datenverteilung durch und ist für das möglichst transparente Mapping von Java-Business-Objekten in eine relationale Datenbank zuständig.
Für alle Bereiche vom GUI bis zur Persistenzschicht (OR-Mapping und Datenbank) bietet ein Framework mit integrierten Code-Generatoren notwendige Standardfunktionalitäten an.

Design und Implementierung
Die Entwicklung erfolgte auf Basis moderner objektorientierter Methoden, die Realisierung erfolgte vorrangig in Java 2 mit EJB 1.x und 2.x und unter Einsatz einer kommerziellen OR-Mapping-Lösung.

Das entwickelte Framework stellt Basis-Funktionalitäten für alle entwickelten Anwendungen bereit und ist u. a. gekennzeichnet durch

  • hochperformanten Datentransfer von Datenbank über Server bis zum Client,
  • komplexe Rechtevergabe, u. a. mit daten- und standortabhängigen Rechten,
  • Mehrsprachfähigkeit (Internationalisierung),
  • hohe Konfigurierbarkeit,
  • Standard-GUI-Komponenten mit vorgefertigtem Data-Binding für alle Komponenten der verwendeten Infragistics-Komponenten-Library.

Beim Design des Frameworks waren folgende Hauptgesichtspunke ausschlaggebend:

  • hochgradige Modularisierung mit geringen Abhängigkeiten zwischen den Framework-Teilen,
  • Performanz,
  • Einsatz etablierter Design-Patterns,
  • „minimalistischer Ansatz" (möglichst vorhandene Funktionalitäten wiederverwenden).

Werkzeuge
Als Werkzeuge wurden u. a. eingesetzt:

  • Together für OO-Modellierung,
  • JBuilder, später Eclipse als zentrale Entwicklungsumgebung,
  • eigene Codegeneratoren für effizientes Model-driven Development (MDD),
  • Borland-Starteam als Source-Control- und Build-Umgebung.

Unsere Aufgaben
Cortex Brainware war im Bereich der neu entwickelten Teile für

  • das initiale Architektur-Design,
  • die initiale Entwicklung aller Kernfunktionen des Java-Frameworks,
  • intensive allgemeine Schulungen (OOAD, Java, verteilte Systeme, EJB) sowie projektspezifische Schulungen und Dokumentation (kundenspezifisches Framework, Prozesse und Vorgehensweisen),
  • Design- und Code-Review

verantwortlich.

Im Zuge der Methoden- und Technologie-Einführung coachte Cortex Brainware

  • Projektleiter, Teilprojektleiter (Projektplanung, risikobasierte Planung, Abschätzungen, Tracking),
  • Analysten (UML-Use-Cases und Datenmodellierung),
  • Entwickler (Java, Design- und Code-Reviews, Testen),
  • QM-Team (Prozesseinführung)

und übernahm zeitweise die Projektleitung im Entwicklungsteam.

Dauer / Größe
Der Umfang des Projekts betrug bis zur europaweiten Inbetriebnahme ca. 30 Personenjahre.

Neuentwicklung und Enterprise-Application-Integration (EAI) von Software für POS, Faktura und Supply-Chain

Kunde
Für denselben Kunden wie im vorherigen Projekt leistete Cortex Brainware Unterstützung bei der Neuentwicklung wesentlicher Teile der Warenwirtschaft.

Projektziele
Ziel des Projektes war die Neuentwicklung einer neuen Generation der eingesetzten Warenwirtschaft mit Komponenten in den Bereichen

  • Kassensysteme (Point-Of-Sale),
  • Faktura,
  • Supply-Chain (Lieferantenkonditionen, Bestellwesen, Wareneingang),
  • Lagerhaltung,
  • dezentrale Pflege von Stammdaten,
  • Kundeninformationssysteme,
  • Anbindung an vorhandene Systeme für Inventur, Kundenbetreuung, Lagerhaltung usw.

Die Entwicklung erfolgte ebenfalls auf Basis moderner objektorientierter und EAI-Methoden, die Realisierung erfolgte vorrangig in Java 2 mit EJB 1.1 und 2.x und unter Einsatz von

  • CORBA zur Anbindung von C++-Software im Bereich POS (Kasse),
  • Webservices zur Anbindung vorhandener Gupta/Centura-Software,
  • kommerziellen und proprietären OR-Mapping-Lösungen.

Grundlegende Anforderung war, dass strategische und organisatorische Maßnahmen (z. B. gemeinsame Einkaufs- und Marketing-Initiativen) nicht durch technische Schranken (Verteilung der Daten, Aufstellung und Vernetzung der Server) behindert werden.

Wesentlich für das Gelingen des Gesamtprojekts war, dass die komplexe Interaktion vieler Projekte gemeistert wird. Cortex Brainware trug hier u. a. durch

  • projektübergreifende Modellierung,
  • Wissenstransfer zwischen verschiedenen Projekt- und Technik-Kulturen,
  • Einführung und Vertiefung moderner Methoden und Technologien,
  • Realisierung komplexer zentraler Framework-Teile

dazu bei, einen Projekterfolg zu erzielen.

Softwarearchitektur
Die Software ist als 3-Tier-Applikation (Application-Server-zentriert) auf der Basis von EJB realisiert. Vorhandene und neue UI-Anwendungen werden über Webservices oder eigene Protokolle angebunden.
Wesentliche Teile des Application-Server-Tiers werden vom hausinternen Framework unterstützt, wobei gemeinsam mit anderen Projekten Code-Generatoren und große Teile des Frameworks wiederverwendet werden.

Design und Implementierung
Zentral eingesetzte Technologie ist Java 2 mit EJB 2.0 unter Verwendung eines eigens entwickelten OR-Mappings. Im Zuge des Projekts wurde das kundenspezifische Framework für den allgemeinen Einsatz sowohl in Rich-Client-Applikationen als auch in Application-Server-zentrierten Anwendungen verallgemeinert. Die vorhandenen Merkmale wie

  • hochgradige Modularisierung mit geringen Abhängigkeiten zwischen den Framework-Teilen,
  • Performanz,Einsatz etablierter Design-Patterns,
  • „minimalistischer Ansatz" (möglichst vorhandene Funktionalitäten wiederverwenden)

wurden dabei durch eine saubere Architektur erhalten.

Werkzeuge
Als Werkzeuge wurden u. a. eingesetzt:

  • Together für OO-Modellierung, Sybase Powerdesigner für E/R-Modellierung,
  • Eclipse 2.x…3.x als zentrale Entwicklungsumgebung,
  • eigene Codegeneratoren für effizientes Model-driven-Development (MDD),
  • Borland-Starteam als Source-Control- und Build-Umgebung.

Unsere Aufgaben
Cortex Brainware war im Bereich der neu entwickelten Teile für

  • das initiale Architektur-Design,die Anpassung und Entwicklung vorhandener Java-Frameworks an die erweiterte Architektur,
  • die Erstellung eines kompletten OR-Mappings sowie
  • die Erstellung einer Abstraktionsschicht für den Austausch der proprietären Lösung gegen eine Standardlösung

verantwortlich. Darüber hinaus wurden von uns

  • andere Teams in die Architektur eingeführt,
  • stabile team- und standortübergreifende Build- und Übergabeprozesse etabliert,
  • Design- und Code-Reviews durchgeführt.

Dauer / Größe
Der Umfang des Gesamtprojekts betrug mehr als 200 Personenjahre.

Entwicklung verschiedener Intranet- und Internet-Anwendungen auf Basis eines Web-Frameworks unter J2EE

Kunde
Der Kunde ist die IT-GmbH eines weltweit führenden Anbieters von Elektrogeräten im Büro-/Haushalts- und Unterhaltungsbereich, deren zentral und dezentral betriebene Software europaweit in über 550 Filialen eingesetzt wird. Die Aufgabe der IT-GmbH ist die Entwicklung, die Akquisition, die Wartung und der Betrieb von Softwarelösungen, die für den heterogenen Bedarf der Filialen und Organisationseinheiten des Anbieters maßgeschneidert werden.

Projektbeschreibung
In mehreren Projekten wurde das existierende Warenwirtschaftssystem um verschiedene Internet- und Intranetanwendungen erweitert. Alle Anwendungen wurden objektorientiert (OOA, OOD, OOP) realisiert, wobei Wiederverwendung, Flexibilität und Skalierbarkeit besonders berücksichtigt wurden.
Folgende Ziele sollten erreicht werden:

  • Erweiterung des beim Kunden entwickelten Basisframeworks um die Web-Fähigkeit. Dazu wurde ein an Struts angelehntes Web-Framework entwickelt, das technische Komponenten sowie Businesskomponenten beinhaltet. Dieses integriert auch Kommunikationsmodule für Web-Service- und Cold-Fusion-Clients und verkapselt verschiedene Authentifizierungs- und Autorisierungsmechanismen.
  • Entwicklung einer Web-Framework-basierten Intranet-Anwendung für die Erzeugung von Preisschildern. Diese Anwendung bildet den Geschäftsprozess, bestehend aus der Planung, der Erstellung von Layouts, der Daten-Aggregation und -Konfiguration sowie aus dem Drucken, vollständig ab. Dazu wurde auch ein Modul entwickelt, das die Eigenschaften aller Konzernprodukte definiert und deren Daten auf Warengruppen- und Artikelebene flexibel verwalten kann. Das Modul unterstützt auch selbst-lernende Eigenschaftswertelisten und wird von Web- und Desktop-Anwendungen eingebunden.
  • Entwicklung einer Web-Framework-basierten Internet-Anwendung für die Erstellung von Newsletters (Planung, Erstellung von Layouts, Daten-Aggregation und -Konfiguration, Versand) in verschiedenen Formaten.
  • Entwicklung der Architektur einer neuen Internetplattform, die auf dem Enterprise-Service-Bus und auf dem Web-Framework aufbaut und die die Basis der Mandanten-spezifischen Internet-Auftritte und dazugehörigen Pflege-CMS darstellt.

Vorgehensmodell / Softwareentwicklungsprozess
Der Softwareentwicklungsprozess basiert auf einer Kombination aus dem „Rational Unified Process“ (RUP) und aus Test-Driven- bzw. XP-Vorgehensweisen

  • Iterativ, inkrementell, Einsatz der UML und von Use-Cases
  • Lasttestpflicht in der Alpha-Testphase
  • Code-Review-Strategien: automatisiert und nach dem Rotationsprinzip

Softwarearchitektur
Die Architektur der Anwendungen ist eine n-tier, Framework-basierte, Service-orientierte Architektur unter J2EE.
Technologien:
Servlets/JSP/Customtags, Struts/JSF, XML/XSL/FO, PDF, FOP, Web-Services/Axis, HTML/JavaScript, Cold Fusion, JUnit, FIT, Enterprise- Service-Bus
Datenbanken, O/R-Mapping:
IBM DB2, Solid, MySQL, TeraData, TopLink, Hibernate, hauseigenes O/R-Mapping, Connection-Pools

Anforderungsanalyse und Analyse
Die Analyse ergab einige besonders zu berücksichtigende Anforderungen:

  • Unterstützung der vollen Mandantenhierarchie inkl. der unterschiedlichen Feature-Ausprägungen pro Mandant (flexibel konfigurierbar)
  • Vollständige Internationalisierbarkeit
  • Erste Intranet-Anwendung, die zentral betrieben wird und auf die von allen dezentralen Filialen – differenziert nach der jeweiligen Version der Filialsoftware – zugegriffen wird.

Design und Implementierung
Komponenten- bzw. Service-orientiertes Design mit MDA-Ansätzen wie z. B. umfassende Codegenerierung
Realisierung mit J2EE 1.4, Einsatz etablierter Patterns
Integration vieler heterogener angrenzender Systeme

Werkzeuge
Modellierung: TogetherJ, MagicDraw UML, Aris
Entwicklungsumgebung, Compiler: Eclipse + Plugins, IntelliJ, ant, JDK 1.4.x – 1.5.x (SUN und IBM)
Konfigurationswerkzeug: Starteam, Subversion
Application-/Web-Server: Apache Webserver, Tomcat, JBoss, IBM WebSphere
Datenbank: DBVisualizer, Sybase PowerDesigner, IBM DB2 Client,
Projektplanungswerkzeug: MS Projekt, NDime, Hyperwave
Performance: AkStress, Webtrainer, WebTrends, WebAlyzer, Loadbalancer, JMeter, IBM HeapDump, IBM HeapAnalyzer, PerformaSure, JProbe, JProfiler, YourKit
Sonstige: XSLfast, XMLSpy

Unsere Aufgaben
Cortex Brainware GmbH war hauptsächlich für die Architektur, die Analyse und für das Design verantwortlich und unterstützte das Team durch Schulung und Coaching bei der Technologieauswahl sowie bei der erfolgreichen Realisierung der Projekte. Darüber hinaus übernahm Cortex Brainware auch Projektleitungsaufgaben.

Dauer / Größe
Insgesamt: 70 Personenjahre, unser Anteil: ca. 3 Personenjahre