FURCHURS WEBSITE
m@il schicken
 
    Inhalt  |  Informatik Reisen  |  über mich | Historie
 verwandte Themen 
 

DB & SWT - Machbarkeitsanalyse

Helge Janicke
Niels-Peter de Witt
Karsten Wolke

Die Aufgabe der Gruppe Datenbank Support ist die Erarbeitung und Dokumentation einer Anbindungsmöglichkeit der verwendeten relationalen Datenbank [glossar] an ein, in JAVA [glossar] implementiertes, Frontend [glossar]. Die anderen Gruppen werden bei der Anbindung des JAVA-Programms an die Datenbank von uns unterstützt. Desweiteren wird ein Konzept zur Kopplung der objektorientierten [glossar] JAVA-Welt an die relationale Welt der Datenbanken erarbeitet.

   
Anforderungen
Randbedingungen
Qualitätsmerkmale
Lösungen
Risiken
Glossar

zum Hauptstudium
 

Anforderungen

Konzepte:

Spezielle Anbindung von JAVA an eine relationale Datenbank

Erarbeitung der von JAVA zur Verfügung gestellten Anbindungsmöglichkeiten an Datenbanken. Speziell ist dies für eine Mircosoft Access Datenbank zu realisieren (fAccess). Erarbeitet werden soll eine Schnittstelle, die es JAVA-Programmen ermöglicht mit Datenbanken zu kommunizieren. Die Kommunikation soll über SQL [glossar] geschehen (fSQL).

Entity-Relationship-Model für Studienplanproblem

Erstellen eines ER-Modells für das im Praktikum Datenbanken gestellte Studienplanproblem (fERM).
Da dies nicht der Hauptteil der uns gestellten Aufgabe ist, sondern dazu dient uns auch mit dem ER-Modell vertraut zu machen und uns mit der Aufgabe auseinanderzusetzen, gehen wir hier nicht näher auf die damit verbundenen Anforderungen ein. Diese sind in den Anforderungsanalysen der von uns betreuten Gruppen nachzulesen.

Allgemeine Umsetzung von Entities in JAVA-Objekte

Es soll eine Klassenstruktur [glossar] entworfen werden, die es ermöglicht JAVA-Objekte aus speziellen Informationen zu generieren, welche von der Datenbank bereitgestellt werden (fUmsetzungRelObj). Die Klassenstruktur sollte weitestgehend unabhängig vom Typ der Objekte sein.

Allgemeine Umsetzung von JAVA-Objekten in Entities

Es soll eine Klassenstruktur entworfen werden, die es ermöglicht bestehende JAVA-Objekte in einer Datenbank abzulegen, so daß auf die Attribute der Objekte noch zugegriffen werden kann (fUmsetzungObjRel).


Prototypen:

[Glossar: Prototypen]

Schnittstelle für die spezielle Anbindung

Aus den konzeptionellen Überlegungen soll eine Schnittstelle (Interface) erstellt werden. Diese Schnittstelle soll Methoden definieren mit denen JAVA-Programme auf eine Datenbank zugreifen können (fProtSchnittstelle).

Datenbank für Studienplanproblem

Es soll ein Prototyp einer Datenbank erstellt werden, die die Datenstruktur des Studienplanproblems beispielhaft wiedergibt. Anhand dieser Datenbank soll der Zugriff auf Datenbanken erklärt werden (fProtDB).

Eine spezielle Anbindung an eine gegebene Datenbank

Es ist die Anbindungs-Schnittstelle zu implemetieren (fProtImplement).

Eine spezielle Umsetzung von Entities in JAVA-Objekte

Erstellen einer Klasse, die es erlaubt die in der Datenbank bereitgestellten Daten in spezielle JAVA-Objekte zusammenzufassen (fProtBroker).


Präsentationen:

Vortrag über spezielle Anbindung

In einem Vortrag soll den anderen Praktikumsgruppen vermittelt werden wie man von einem JAVA-Programm auf eine Datenbank zugreifen kann. Desweiteren sollen Verfahren zur Umsetzung von Entities auf spezielle JAVA-Objekte vermittelt werden. Der Vortrag baut damit auf den konzeptionellen Überlegungen und den erstellten Prototypen auf (fPräsVortrag).


Dokumentationen:

Anforderungen

Die Anforderungen werden in diesem Dokument beschrieben (fDocAnforderung).

Konzepte

Alle erarbeiteten Konzepte werden dokumentiert (fDocKonzept).

Schnittstellen

Die entstandenen Schnittstellen (Interfaces) werden ausführlich dokumentiert (fDocSchnittstelle).

Prototypen

Alle implementierten Prototypen werden dokumentiert (fDocPrototyp).

Testprogramme

Die entstandenen Testprogramme werden soweit dokumentiert, das sie nachvollzogen werden können (fDocTestprogramm).

Testdokumentation

Zu den durchgeführten Tests müssen Testprotokolle erstellt werden (fDocTest).

Managementdokumentation

Über den Projektverlauf wird ein Managementdokument erstellt, daß den Projekt-Fortschritt dokumentiert (fDocManagement).

 

Randbedingungen

  • Implementierungssprache JAVA
  • Relationale Datenbankanbindung über ODBC (JDBC) [glossar]
  • Vorführbarkeit im Labor SWT oder DB
  • Ein Vortrag über das Thema muß bis spätestens 11.05.2001 vorbereitet sein.
 

Qualitätsmerkmale

Erlernbarkeit / Verständlichkeit:

Es ist wichtig den anderen Praktikumsgruppen die erarbeiteten Kenntisse weiterzuvermitteln.

  qErlernbarkeit
Beschreibung Vermittlung von Kenntnissen
Maß Notenskala von 1 - 6
Ist -
Soll 3
Wunsch 1
Schlechtestens 4
Test Bewertung durch Praktikumsgruppen.

Zuverlässigkeit / Robustheit:

Es wird Wert auf eine zuverlässige Implemetierung der Schnittstelle gelegt, da diese von den anderen Praktikumsgruppen oft verwendet wird. Das Maß für die Zuverlässigkeit ist Anzahl der reklamierten nicht eindeutig auf Anwendungsfehler zurückführbaren Fehler, die uns im Verlauf des Praktikums mitgeteilt werden.

  qZuverlässigkeit
Beschreibung Anzahl der reklamierten Programmfehler.
Maß Die Anzahl
Ist 0
Soll 10
Wunsch 0
Schlechtestens 20
Test Bewertung durch Auswertung der Reklamation..

Testbarkeit:

Zu Testen ist die Implementierung der Datenbankschnittstelle (im folgenden Datenbank-Adapter genannt). Als Maß für die Testbarkeit dient der Umfang (LOC) der Testklassen, sowie der Zeitaufwand der zur Analyse aller denkbaren möglichen Testfälle benötigt wird.

  qTestbarkeit
Beschreibung Durchschnittlicher Aufwand für das Testen einer implemtierten Methode.
Maß LOC
Ist -
Soll 60
Wunsch 20
Schlechtestens 180
Test Zählen der Zeilen.

Erweiterbarkeit:

Der von uns zur Verfügung gestellte Datenbank-Adapter sollte leicht um eigene (spezielle) Methoden erweiterbar sein. Als Maß hierfür ist der Aufwand (LOC) der notwendig ist, um den Adapter um eine Funktionalität zu erweitern.

  qErweiterbarkeit
Beschreibung Durchschnittlicher Aufwand für das Erweitern um ein neue Funktionalität.
Maß LOC
Ist -
Soll 50 (ohne funktionseigenen Code)
Wunsch 2 (ohne funktionseigenen Code)
Schlechtestens 120 (ohne funktionseigenen Code)
Test Zählen der Zeilen.

Portierbarkeit:

[Glossar: Portierbarkeit]

Die Schnittstelle soll so allgemein gehalten sein, das sie unabhängig von der verwendeten Datenbank ist. Desweiteren soll auch ein Betriebsystem unabhängiger Zugriff auf die Datenbank möglich sein. Die Portierung soll auf gängige Datenbanken möglich sein, die sich in eine ODBC Schnittstelle einbinden lassen, und für die JDBC Treiber existieren. Die Portierung auf ein anderes Betriebssystem geschieht unter der Voraussetzungen, das auf dem System ein Java Runtime Environment 1.2 oder höher lauffähig ist und eine ODBC Schnittstelle zur Verfügung gestellt wird.

  qPortierbarkeit
Beschreibung Dauer für das Anpassen an eine neue Umgebung.
Maß Minuten
Ist -
Soll 120
Wunsch 20
Schlechtestens 1200
Test Messen der Arbeitszeit

 

 

Lösungen

Erlernbarkeit / Verständlichkeit:

Um eine gute Verständlichkeit gewährleisten zu können wird eine Präsentation zur Datenbankanbindung gehalten (lsgVortrag). Desweiteren werden Schulungen (lsgSchulung) für die einzelnen Praktikumsgruppen angeboten. Durch eine von uns gepflegte Website (lsgWeb) können aktuelle Informationen und Tips, sowie Dokumentationen (lsgDoku) online nachgelesen werden.

Zuverlässigkeit / Robustheit:

Häufige Inspektionen [glossar] (lsgInspekt) und ausgiebige Test (lsgTest) sollen eine optimale Zuverlässigkeit des von uns erarbeiteten Produkts gewährleisten.

Testbarkeit:

Eine vernünftige, den Standards (lsgStandards) entsprechende Implementation des Datenbank-Adapters soll eine gute Testbarkeit sicherstellen.

Erweiterbarkeit:

Da als Implementationssprache JAVA (lsgJava) verwendet wird, können wir die Vorteile, die eine objektorientierte Programmiersprache bietet, voll ausnutzen. Eine gute Erweiterbarkeit wird durch den Mechanismus der Vererbung [glossar] und der Kapselung [glossar] von Objekten sichergestellt.

Portierbarkeit:

Durch die Verwendung von JDBC - Treibern (lsgJDBC) des Typs 4 kann eine vollständige Unabhängigkeit vom Betriebsystem erreicht werden. JDBC ist eine Normung die sich an stark ODBC orientiert. Es gibt eine Vielzahl von verschieden JDBC-Treibern auf dem Markt, die auch verschiedene Datenbanken unterstützen. Von den meisten Datenbankanbietern werden eigene JDBC-Treiber zur Verfügung gestellt.
Eine Portierung in eine andere Programmiersprache schließen die oben genannten Randbedingungen aus.

Lösungsbewertung

 
lsgVortrag
lsgSchulung
lsgWeb
lsgDoku
lsgInspekt
lsgTest
lsgStandards
lsgJava
lsgJDBC
qErlernbarkeit
++
++
++
0
+
0
+
0
0
qZuverlässigkeit
0
0
-
0
++
++
++
+
-
qTestbarkeit
0
0
0
+
+
0
++
-
-
qErweiterbarkeit
0
0
0
++
+
0
++
++
-
qPortierbarkeit
0
0
0
+
+
0
++
++
+

++ Lösung wirkt sich positiv auf Qualitätsmerkmal aus.
-- Lösung wirkt sich negativ auf Qualitätsmerkmal aus

 

Risiken

  • Termin für einen Vortrag Anfang Mai muß eingehalten werden (rskTermin)
  • Mangel an sozialer Kompetenz (rskSozKompetenz)
  • Kompetenzmangel, unzureichende Kenntis über das Fachgebiet (rskFachKompetenz)
  • Anforderungen der beiden Auftraggeber nicht in einem Produkt zu realisieren (rskAuftraggeber)
  • Unzureichende JAVA-Kenntnisse der zu Lehrenden (rskJavaKompetenz)

Risikobewertung

 
rskTermin
rskSozKompetenz
rskFachKompetenz
rskAuftraggeber
rskJavaKompetenz
lsgVortrag
xxx
++
+
-
0
lsgSchulung
+
++
++
0
++
lsgWeb
++
--
+
-
-
lsgDoku
++
--
++
-
-
lsgInspekt
++
++
+
-
--
lsgTest
+
--
++
-
--
lsgStandards
0
--
+
0
--
lsgJava
-
--
+
+ / -
--
lsgJDBC
-
--
+
-
--

++ Lösung wirkt sich stark auf Risiko aus.
-- Lösung wirkt sich nicht auf Risiko aus.

 

Abkürzungsverzeichnis

LOC Lines Of Code

Glossar

Entities

Als Entities bezeichnet man Elemente der realen Datenwelt, die für sich selbst stehen. (Quelle: Skript Fernfachhochschule Hamburg)

ER - Modell

Die Entity-Relationship-Modellierung wurde ca. 1976 von Peter Chen entwickelt. Wegen der Nähe zur Ausgangs-Datenwelt nennt man diese Art der Modellierung auch semantische Datenmodellierung. Bei der ER-Modellierung handelt es sich um eine Analysemethode, mit der alle relevanten Element der betrachteten Datenwelt ermittelt werden. Das Ergebnis der ER-Modellierung ist das ER-Modell (ERM).

Frontend

Hier eine graphische Oberfläche, die den Inhalt der Datenbank visualisiert und evtl. ändert.

Inspektion

Formale Inspektion ist eine Methode der Qualitätssicherung, nach der in genau definierten Phasen mehrere Inspektoren in verschiedenen Rollen ein vorliegendes Dokument unter Einhaltung der Vorgaben detailliert hinsichtlich Vollständigkeit, Korrektheit und Konsistenz begutachten. (Quelle: Prozeßhandbuch SWT)

JAVA

Java ist eine von Sun Microsystems, Inc (http://www.sun.com und http://www.sun.de) entwickelte plattformunabhängige Programmiersprache, die sich besonders für das Internet eignet. Mit Java programmierte Webseiten und Anwendungen können direkt auf allen Plattformen genutzt werden, für die es Java-Unterstützung gibt. Java-Programme werden meist in einer Java-Entwicklungsumgebung geschrieben und dann zu einem "Byte-Code" compiliert. Dabei wird eine .class-Datei erzeugt, die dann als "Java Applet" z. B. in HTML-Seiten eingefügt werden kann. Mehrere .class-Dateien lassen sich zur schnelleren Übertragung auch als .jar oder .zip Archive zusammenfassen - der Java-fähige Web Browser kann den Code auswerten, ohne dass Sie als Anwender die Archive entpacken müssen. Die Java-Programme werden nicht für einen bestimmten Prozessortyp oder ein bestimmtes Betriebssystem entwickelt, sondern für eine Java Virtual Machine (JVM). Diese kann Bestandteil eines Web Browsers sein, der dann "weiß", wie der Byte Code in ausführbaren Code für genau diesen Rechner umgesetzt werden muss. Die JVM kann als Interpreter arbeiten, aber es gibt auch JVMs, die den Byte Code direkt compilieren (Just-In-Time-Compiler, JIT-Engine). Ein Java-Programm kann auf jedem Rechner laufen, der einen Java-Interpreter oder JIT-Compiler hat, unabhängig von Prozessortyp und Betriebssystem. Es gibt sogar schon Java-Prozessoren, die den Byte-Code direkt abarbeiten können. Oft werden JavaScript und Java Applets miteinander verwechselt. JavaScript ist eine einfache, eingeschränkte Skriptsprache für Web Browser, die zum Beispiel für die Anzeige von Laufschrift verwendet wird. JavaScript beschreibt Objekte in einer Java-ähnlichen Sprache und ermöglicht es dem Anwender, seine HTML-Seiten optisch zu verschönern, ohne gleich die komplette Java Sprache zu erlernen. (Quelle StarOffice5.2 Hilfe)

JDBC - ODBC

Open DataBase Connectivity und Java DataBase Connectivity. JDBC baut, wie ODBC auf dem Call Level Interface (CLI) von X/Open auf, was inzwischen international als SQL.92 standardisiert ist. Unterstützt wird sowohl von ODBC als auch von JDBC der sogenannte entry-level, der die Grundfunktionen abdecken soll. Unter JDBC wird eine API verstanden, die aus einer Anzahl von Java-Klassen und -Schnittstellen sowie einem Treiber-Manager und den dazugehörigen Treibern besteht. Diese API ermöglicht die Erstellung von Datenbankapplikationen,die ausschließlich in Java programmiert sind, und somit auf viele Plattformen portierbar sind, ohne großartige Änderungen vornehmen zu müssen.

Kapselung

Unter Kapselung versteht man die Implementierung von Zugriffsmechanismen. Die Daten in einer Klasse können von außen nicht direkt manipuliert werden. Es wird nur sogennante Accessor-Methoden auf die Daten zugegriffen.

Klassenstruktur

Eine Klassenstruktur ist die Beschreibung von Zusammenhängen zwischen den einzelnen Klassen eines Packetes.

Objektorientiertheit

Objektorientierte Programmierung (abgekürzt: OOP), moderne Programmiertechnik, bei der ein Programm als Sammlung einzelner Objekte angesehen wird, die selbstenthaltene Sammlungen von Datenstrukturen und Routinen darstellen. Diese Technik kommt der natürlichen Denkweise näher als die konventionelle Programmierung. Eine Klasse definiert die Datenstrukturen und Routinen eines Objekts, wobei ein Objekt als Variable in einem Programm verwendet werden kann. In einigen objektorientierten Programmiersprachen reagieren die Objekte auf Nachrichten, die das grundsätzliche Kommunikationsmittel darstellen. Es gibt jedoch auch objektorientierte Sprachen, die den traditionellen Prozedur-Aufruf-Mechanismus beibehalten. "Objektorientierte Programmierung." (Microsoft® Encarta® Enzyklopädie 2001. © 1993-2000 Microsoft Corporation. Alle Rechte vorbehalten.)

Portierbarkeit

Hier die Umsetzung auf andere Datenbanken.

Prototyp

Prototyp ist ein provisorisches Software-System, das während der Produktdefinition erstellt wird, um Anforderungsfragen zu klären oder Anforderungen zu veranschaulichen. Man unterscheidet das vertikale Prototyping, in dem nur einige Funktionen vollständig implementiert werden, sowie das horizontale Prototyping, bei dem man die ganze Funktionalität betrachtet, diese aber nur andeutungsweise (Bsp: Grafische Oberfläche) realisiert. (Quelle: Prozeßhandbuch SWT)

relationale Datenbank

Ein RDBMS (relational database management system) ist ein Datenbanksystem, in dem Daten in Form miteinander verbundener Tabellen verwaltet werden. Bei richtiger Planung der Datenbank kann so gewährleistet werden, dass alle Daten nur einmal eingegeben werden müssen, und dass sie trotzdem in unterschiedlichen Verknüpfungen betrachtet werden können. Ein klassisches Beispiel einer relationalen Datenbank besteht aus Tabellen mit Kundendaten, Warendaten und Rechnungsdaten der Kundenbestellungen. Die Rechnungstabelle enthält nicht die Namen der Kunden und der Waren, sondern Verweise auf die entsprechenden Datensätze in den anderen Tabellen. Die Verknüpfung erfolgt über gemeinsame Datenfelder, in denen z. B. die Kundennummer und die Artikelnummer stehen. (Quelle StarOffice5.2 Hilfe)

Schnittstelle (Interface)

Ein Interface ist eine abstrakte Definition von Methoden, über die nur Aussagen über deren Parameterliste und Rückgabewert sowie ihrer Funktionen getroffen werden.

SQL

Die "Structured Query Language" ist eine strukturierte Abfragesprache für Datenbanken.

Studienplanproblem

Das Studienplanproblem ist die Praktikumsaufgabe (Fach Datenbanken und Software-Technik) des 4 Semesters Informatik an der FHOOW.

Vererbung

Unter Vererbung versteht man einen Mechanismus, der es ermöglicht bereits bestehende Funktionalitäten einer Klasse zu benutzen um diese Klasse leicht erweitern zu können.

 

letzte Änderung dieser Seite:  20.03.2002 13:46
nach oben