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
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.
|