Anforderungsdefinition Integration - diko-project.de
Anforderungsdefinition Integration - diko-project.de
Anforderungsdefinition Integration - diko-project.de
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
<strong>Anfor<strong>de</strong>rungs<strong>de</strong>finition</strong> <strong>Integration</strong><br />
Tim Brüggemann, Helge Saathoff, Ralph Stuber, Guido Zen<strong>de</strong>l<br />
15. Mai 2003<br />
1
Inhaltsverzeichnis<br />
1 Ausgangssituation und Zielsetzung 3<br />
2 Systemeinsatz und Systemumgebung 3<br />
3 Funktionale Anfor<strong>de</strong>rungen 3<br />
4 Nichtfunktionale Anfor<strong>de</strong>rungen 4<br />
5 Benutzerschnittstellen 4<br />
6 Dokumentationsanfor<strong>de</strong>rungen 4<br />
7 Abnahmekriterien 5<br />
8 Anhang 5
1 Ausgangssituation und Zielsetzung<br />
Ziel <strong>de</strong>r <strong>Integration</strong> ist es, die Daten aus verschie<strong>de</strong>nen Händlerdatenbanken in eine Kartenanbieterdatenbank<br />
zu importieren. Als Arbeitsgrundlage hierfür dienen die bereits<br />
angelegten Datenbanken <strong>de</strong>r zwei Händler und die <strong>de</strong>s Kartenanbieters, die im Rahmen<br />
<strong>de</strong>s ersten Teilprojektes entstan<strong>de</strong>n sind. Für je<strong>de</strong> <strong>de</strong>r bei<strong>de</strong>n Händlerdatenbanken ist<br />
ein separater Loa<strong>de</strong>r zu implementieren.<br />
Die Überlegung, ein zusätzliches Datenbankschema zu erstellen, welches als Zwischendatenbank<br />
zwischen <strong>de</strong>n Händler- und Kartenanbieterdatenbanken fungieren soll, wird<br />
aufgrund <strong>de</strong>s zusätzlichen, hohen Arbeitsaufwands nicht implementiert. Ein Vorteil einer<br />
solchen Zwischendatenbank wäre die einfachere Erweiterbarkeit <strong>de</strong>s Szenarios bzgl.<br />
mehrerer Kartenanbieter. Mit existieren<strong>de</strong>r Zwischendatenbank müßte für einen zusätzlichen<br />
Kartenanbieter lediglich ein Loa<strong>de</strong>r zur Zwischendatenbank implementiert wer<strong>de</strong>n<br />
und nicht ein Loa<strong>de</strong>r pro existieren<strong>de</strong>m Händler. Nachteil einer Zwischendatenbank ist,<br />
daß im Falle nur eines Kartenanbieters ein zusätzlicher Loa<strong>de</strong>r von <strong>de</strong>r Zwischendatenbank<br />
zum Kartenanbieter geschrieben wer<strong>de</strong>n müßte, was eine erhebliche Steigerung<br />
<strong>de</strong>s Arbeitsaufwan<strong>de</strong>s darstellt. Zu<strong>de</strong>m entstün<strong>de</strong>n erhöhte Kosten durch redundante<br />
Datenhaltung und zusätzlichen administrativen Aufwand. Es stellte sich die Frage, ob<br />
einer <strong>de</strong>r Händler o<strong>de</strong>r <strong>de</strong>r Kartenanbieter für die Verwaltung <strong>de</strong>r Zwischendatenbank<br />
verantwortlich ist.<br />
2 Systemeinsatz und Systemumgebung<br />
Als DB dient eine Oracle-Datenbank, die unter Solaris läuft. Die Loa<strong>de</strong>r wer<strong>de</strong>n in Java<br />
implementiert, woraus eine Plattformunabhängigkeit resultiert, da das Ausführen auf<br />
geeigneten Systemen mit einer Java-Laufzeitumgebung gewährleistet wird.<br />
3 Funktionale Anfor<strong>de</strong>rungen<br />
Es wer<strong>de</strong>n alle Daten aus <strong>de</strong>n bei<strong>de</strong>n Händlerdatenbanken ausgelesen, um sie anschließend<br />
in die Datenbank <strong>de</strong>s Kartenanbieters einzufügen. Es besteht die Möglichkeit per<br />
Kommandozeilenparameter Einfluss auf die <strong>Integration</strong> zu nehmen. Dabei können die<br />
Namen <strong>de</strong>r Quell- und Zieldatenbank, die erfor<strong>de</strong>rlichen Zugangsdaten zu <strong>de</strong>n Datenbanken,<br />
<strong>de</strong>r Treiber <strong>de</strong>r zum Zugriff auf die Datenbank nötig ist sowie <strong>de</strong>r Name <strong>de</strong>s<br />
Rechensystems auf <strong>de</strong>m die Datenbank läuft übergeben wer<strong>de</strong>n. Eine genauere Schnittstellen<strong>de</strong>finition<br />
erfolgt im Glie<strong>de</strong>rungspunkt Benutzerschnittstellen.// Das Programm<br />
besteht aus insgesamt vier Klassen, wobei eine Klasse für die Datenbankverbindung,<br />
eine Klasse zur Steuerung <strong>de</strong>s Programmablaufs und jeweils eine Klasse für <strong>de</strong>n Import<br />
<strong>de</strong>r Daten eines Händlers zuständig ist. Das Schema für die Datenübertragung zwischen<br />
Händlerdatenbanken und Kartenanbieterdatenbank wird in Tabellenform im Angang<br />
dargestellt.
4 Nichtfunktionale Anfor<strong>de</strong>rungen<br />
Nichtfunktionale Anfor<strong>de</strong>rungen für das System sind<br />
Portabilität (Plattformunabhängigkeit)<br />
Stabilität (leichtes Abfangen von Fehlern)<br />
Benutzerfreundlichkeit (Übergabe von Steuerungsparametern)<br />
Wart- und Erweiterbarkeit (Übersichtliche Programmstruktur + Dokumentation)<br />
Sicherheit (Zugriff auf die Datenabnken nur für berechtigte Nutzer)<br />
Großer Wert wird zu<strong>de</strong>m auf eine umfassen<strong>de</strong> Dokumentation <strong>de</strong>s Systems gelegt.<br />
5 Benutzerschnittstellen<br />
Das Programm läßt sich aus einer Kommandozeile mit Kommandozeilenparametern starten.<br />
So können die folgen<strong>de</strong>n acht Parameter int sourceDB, int targetDB, String hostNameSDB,<br />
String driverSDB, String userSDB, String passwdSDB, String hostNameTDB,<br />
String driverTDB, String userTDB und String passwdTDB optional übergeben wer<strong>de</strong>n.<br />
In diesem Falle wer<strong>de</strong>n diese Parameter für die <strong>Integration</strong> genutzt. Weiterhin existiert<br />
die Möglichkeit, nur die sechs Kommandozeilenparameter int sourceDB, int targetDB,<br />
String usersSDB, String passwdSDB, String userTDB und String passwdTDB zu übergeben.<br />
Bei dieser Lösung wer<strong>de</strong>n die Werte für hostNameSDB, hostNameTDB sowie<br />
driverSDB und driverTDB fest im Programm codiert. Schließlich kann bei initialem<br />
Import auch <strong>de</strong>r Kommandozeilenparamter init aufgerufen wer<strong>de</strong>n, um die Kartenanbieterdatenbank<br />
auf die Importe <strong>de</strong>r Daten aus <strong>de</strong>n Händlerdatenbanken vorzubereiten<br />
(Anlegen von Werten für LOV-Tabellen usw.). Auf das Auftreten von Fehlern soll das<br />
Programm mit Programmabbruch und Ausgabe eines Fehlertextes reagieren. Folgen<strong>de</strong><br />
Fehler können auftreten:<br />
1. Fehlerhafte Zugangsdaten. Verhalten: kein Verbindungsaufbau.<br />
2. Fehler in <strong>de</strong>r Datenbank (z.B. Attributname geän<strong>de</strong>rt). Verhalten: Angabe <strong>de</strong>r<br />
Fehlerquelle.<br />
3. Verbindungsabbruch. Verhalten: Fehlermeldung<br />
6 Dokumentationsanfor<strong>de</strong>rungen<br />
Die Dokumentation <strong>de</strong>s Programms umfaßt folgen<strong>de</strong> Punkte:<br />
<strong>Anfor<strong>de</strong>rungs<strong>de</strong>finition</strong> (dieses Dokument)<br />
Entwurf
Dokumentierter Sourceco<strong>de</strong><br />
System-Dokumentation bestehend aus Benutzer- und Developer-Handbuch<br />
Die Dokumentation soll in elektronischer Form erfolgen.<br />
7 Abnahmekriterien<br />
Die funktionalen Anfor<strong>de</strong>rungen sollen erfüllt wer<strong>de</strong>n, nichtfunktionale Anfor<strong>de</strong>rungen<br />
sollen möglichst vollständig implementiert wer<strong>de</strong>n. Sämtliche für <strong>de</strong>n Kartenanbieter relevanten<br />
Daten aus <strong>de</strong>n Händlerdatenbanken sollen von <strong>de</strong>m Programm in die Kartenanbieter-<br />
Datenbank übernommen wer<strong>de</strong>n. Der Kartenanbieter hat dabei keine Möglichkiet auf<br />
die Auswahl <strong>de</strong>r Daten Einfluss zu nehmen, da die Auswahl <strong>de</strong>r Daten fest in <strong>de</strong>n Metho<strong>de</strong>n<br />
<strong>de</strong>r Importklassen codiert sind. Somit ist auch keine Metadatensteuerung, die<br />
prinzipiell möglich wäre, vorgesehen.<br />
8 Anhang<br />
Die im Anhang enthaltenen Tabellen dienten als Ausgangslage für die Arbeit <strong>de</strong>r <strong>Integration</strong>.<br />
Sie beinhalten alle Attribute und Wertebereiche <strong>de</strong>r bei<strong>de</strong>n Händlerdatenbanken.<br />
Diese wer<strong>de</strong>n nun <strong>de</strong>n entsprechen<strong>de</strong>n Attributen <strong>de</strong>r Kartenanbieterdatenbank<br />
gegenübergestellt, wobei einzelne Attribute im Kartenanbieterschema erst noch generiert<br />
wer<strong>de</strong>n mussten (generieren).
Abbildung 1: Relation kun<strong>de</strong> mit karte
Abbildung 2: Relation kun<strong>de</strong> ohne karte<br />
Abbildung 3: Relation Filiale<br />
Abbildung 4: Relation Kategorie<br />
Abbildung 5: Relation Preis
Abbildung 6: Relation Artikel<br />
Abbildung 7: Relation Position<br />
Abbildung 8: Relation Bon
Abbildung 9: Relation Kun<strong>de</strong><br />
Abbildung 10: Relation Adresse
Abbildung 11: Relation Profil<br />
Abbildung 12: Relation Produkt
Abbildung 13: Relation Kategorie<br />
Abbildung 14: Relation Hersteller
Abbildung 15: Relation Produkt Warenkorb<br />
Abbildung 16: Relation Warenkorb
Abbildung 17: Relation Attribut<br />
Abbildung 18: Relation Text Attribut