P P f f l l i i c c h h t t e e n n h h e e f f t t
W W ir i rt ts s c c h h af a f t t s s -S - S c c h h w w er e r p p u u nk n k t t - - P P ra r ak k t t ik i k um u m I I n n f f o o r r m m a a t t i i k k
S S S S 2 2 0 0 0 0 4 4
2
I I n n h h a a l l t t s s ve v e r r z z e e i i c c hn h ni i s s
1. Auftraggeber 3
2. Auftragnehmer 4
3. Vorwort 5
4. Aufgabenstellung 6
5. Zielbestimmungen 7
5.1. Musskriterien 5.2. Wunschkriterien
6. Produkteinsatz 8
6.1. Anwendungsbereiche 6.2. Zielgruppen
7. Produktdaten 9
7.1. Mindestanforderungen 7.2. Produkt-Übersicht
8. Qualitätsanforderungen 10
9. Entwicklungsumgebung 11
10. Glossar
12
3
1 1 . . A A u u f f t t r r a a g g g g e e b b e e r r
Prof. Dr. Kaufmann Wiesenstraße 14 35390 Gießen Büro F203
Email: Achim.H.Kaufmann@mni.fh-giessen.de
Telefon (dienstlich): 0641 / 309-2332
4
2 2 . . A A u u f f t t r r a a g g n n e e h h m m e e r r
PHP-Gruppe:
Ansorg, Matthias matthias@ansorgs.de Kräling, Andreas akraeling@t-online.de Möckl, Susanne rezsiadione@web.de .Net-Gruppe:
Cebulla, Martin martin.cebulla@web.de
Müller, Daniela danimue@aol.com
Schäfer, Nadja queen-shit@gmx.de
5
3 3 . . V V o o r r w w o o r r t t
Um den Studenten einen Einblick in die industrielle Fertigung von Software zu ermöglichen, findet im Rahmen des Informatikstudiums ein Schwerpunktpraktikum statt. Hier sollen sie lernen im Team und unter Verwendung bisher erworbener Kenntnisse – besonders aus der Softwareentwicklung und den Techniken des Softwareentwurfs – ein umfangreiches Softwareprodukt selbständig zu erstellen.
Dieses Pflichtenheft, welches einen Teil des Softwaretechnikpraktikums darstellt, soll die Ergebnisse der ersten Entwicklungs-Phase, sowie weitergehender Planung ausführlich darlegen und ein möglichst genaues Bild der zu erstellenden Software geben. Die Inhalte sind bis auf weiteres als verbindlich anzusehen, jedoch sind kleinere Änderungen nicht auszuschließen, darum sei hier darauf hingewiesen, dass Abweichungen des Endproduktes zu den hier vorgestellten Fakten möglich sind.
.Net- / PHP - Team
6
4 4 . . A A u u f f g g a a b b e e n n s s t t e e l l l l u u n n g g
Ziel des Projekts ist die Nachbildung der .NET DataSets in PHP. Für diesen Zweck soll das Team gesplittet werden. Es werden zwei Gruppen à drei Personen gebildet.
Der eine Teil soll sich der Analyse der original .NET DataSets widmen und der andere mit der Einarbeitung und Umsetzung in PHP beschäftigen.
Der Codegenerator soll möglichst parallel zu seinem Pendant im Microsoft Visual Studio .NET arbeiten, kann aber Vereinfachungen enthalten.
7
5 5 . . Z Z i i e e l l b b e e s s t t i i m m m m u u n n g g
5.1 Musskriterien
• prototypische Implementierung eines Codegenerators
• Dokumentation zum Design und dem Prototypen des Codegenerators
• Dokumentation zum Vorgehen für die weitere, vollständige Implementierung des Codegenerators
5.2 Wunschkriterien
• Einfacher Einstieg für Weiterentwicklung
• Vollständige Implementierung: grafische Oberfläche und eigene Implementierung des XML-Parsers
8
6 6 . . P P r r o o d d u u k k t t e e i i n n s s a a t t z z
6.1 Anwendungsbereiche
• Die Datenbanken werden abgefragt, die Abfrage liegt im Hauptspeicher und kann offline bearbeitet werden.
6.2 Zielgruppen
• Datenbank-User, die Verbindungskosten sparen wollen
• Personen, die betriebssystemunabhängig arbeiten wollen
• Personen, die sich nicht in die umfangreiche Materie von .NET einarbeiten wollen
• Personen, denen nur ein minimalistisches System zur Verfügung steht, das die Voraussetzung von .NET-Nutzung nicht erfüllt (z.B. kein XP)
9
7 7 . . P P r r o o d d u u k k t t d d a a t t e e n n
7.1 Mindestanforderung an den Computer
installiert sein muss:
• PHP 4
• Webserver
7.2 Produkt-Übersicht
• von PHP-Gruppe (d.h. Zustandsdiagramm der Anw., Steuerung durch Programm und durch Benutzer, USE-Case
7.3 Produkt-Leistungen
• von PHP-Gruppe
7.4 Produkt-Funktionen
• von PHP-Gruppe
10
8 8 . . Q Q u u a a l l i i t t ä ä t t s s a a n n f f o o r r d d e e r r u u n n g g e e n n
Zuverlässigkeit:
Es muss möglich sein Zeilen zu erstellen, deren Spalten die Konventionen einer Tabelle einhalten, damit sie später zu einer bestimmten Tabelle hinzugefügt werden können. Weiterhin müssen Beziehungen zwischen Tabellen hergestellt werden können. Fehlerhafte Einträge sollen erkannt werden. Tabellen sollen zu einem DataSet zugeordet werden können.
Fehlerhafte Eingaben in Feldern müssen abgefangen werden (Fehlerbehandlung).
Benutzbarkeit:
Ohne Erfüllung des Wunschkriteriums der GUI ist die PHP-Implementierung nur über Testprogramme benutzbar.
Effizienz:
Im Gegensatz zu der Benutzung von DataSets mit .NET ist die DataSet- Implementierung in PHP sehr viel kosteneffizienter.
Änderbarkeit:
Ein strukturierter Programmaufbau ermöglicht die einfache Analyse und Anpassung des bestehenden Quelltextes an die Umgebung. Stabilität steht im Mittelpunkt.
Übertragbarkeit:
Durch eine Installation von PHP ist die Einrichtung auf verschiedensten Computersystemen durchführbar.
11
9 9 . . E E n n t t w w i i c c k k l l u u n n g g s s u u m m g g e e b b u u n n g g
PHP-Gruppe
• LINUX / UNIX-Rechner
o Arbeit mit PHP-Doc und PHP-Unit
o PHP 4 Entwicklung mit einem Webserver
• Windows
o PHP 4 Entwicklung mit einem Webserver (mit Apache)
o Arbeit mit PHP-Doc und PHP-Unit theoretisch möglich, schlecht dokumentiert
o ab Windows 98
.Net-Gruppe
• Windows XP Professional
o MS .NET zur Codeerzeugung und -analyse
12
1 1 0 0 . . G G l l o o s s s s a a r r
Apache-Webserver Der im Internet am weitesten verbreitete Webserver, ist für viele gängige Betriebssysteme verfügbar .
Codegenerator Computerprogramm, dass Quellcode von Computerprogrammen erzeugt.
DataColumn grundlegender Baustein bei der Erstellung des Schemas einer DataTable; besitzt eine DataType-Eigenschaft, die die Art der in der DataColumn enthaltenen Daten
bestimmt.
DataRelation verknüpft zwei DataTable-Objekte über DataColumn- Objekte
DataRow DataRow-Objekt wird verwendet, um die Eigenschaften, Methoden und Werte in der DataTable abzurufen,
auszuwerten, einzufügen, zu löschen und zu aktualisieren.
DataSet ein aus einer Datenquelle abgerufener Datencache im Arbeitsspeicher.
DataTable Komponenten eines DataSets, die die Daten enthalten.
.NET Softwareplattform von Microsoft. Eine
programmiersprachenneutrale Umgebung, in der Programme geschrieben werden können. Anstatt eine spezifische Hardware- und Betriebssystem-Kombination anzusprechen, greifen die Programme auf ein .NET- Framework zurück, das auf einer Vielzahl von
Umgebungen läuft. .NET ist im Gegensatz zu Java sprachenunabhängig – d. h. die Programme können prinzipiell in jeder beliebigen Programmiersprache entwickelt werden.
Parser Programm, das entscheidet, ob eine Eingabe zur Sprache einer bestimmten Grammatik gehört. Er benutzt dabei in der Regel einen separaten Scanner, um eine
zeichenweise vorliegende Eingabe vorher inToken (zusammengehörende Einheiten, z. B. Schlüsselwörter, Bezeichner usw.) zu konvertieren.
13
PHP ProfessionalHomePage bzw. HypertextPreprocessor, ermöglicht mittels serverseitiger Skriptsprache die Gestaltung dynamischer Webseiten und
Datenbankunterstützung. PHP ist Open Source.
typisierte Sprache Sprache, bei der der Programmier gezwungen wird, die einzelnen Datentypen zu deklarieren und die Verwendung dieser Typen nur typgerecht durchzuführen.
untypisierte Sprache Den Variablen wird kein Datentyp zugeordnet - jede Variable kann Objekte von einem beliebigen Typ repräsentieren. Der Compiler keine Typentests durchführen. Es wird zur Compilierzeit nicht
nachgeprüft, ob gewisse Operationen erlaubt sind.
Unerlaubte Operationen führen zu Laufzeitfehlern.
Webserver Auf dem Server, der eine eindeutige Domain und IP- Adresse besitzt, laufen die Internetdienste. Der Webserver muss kein eigener Rechner sein; die Server-Software macht einen Computer zum Server.
XML Extensible Markup Language, "Tag"-Sprache ähnlich HTML. Allerdings können die Tags bei XML
benutzerdefiniert ausgeprägt werden und damit ein selbstbeschreibendes, textbasierendes Datenformat für strukturierte Dokumente generiert werden. Zu XML-
Dokumenten gehört eine explizite Definition der benötigten Tags und Ihrer Struktur, die Document Type Definition (DTD).
XSD Format unter MS.NET, um bestimmte Daten
abzuspeichern