Programmierung eines Online-Warenkorbs mit Java


Studienarbeit, 2017

26 Seiten, Note: 1,0


Leseprobe

Inhaltsverzeichnis

Abkürzungsverzeichnis

Abbildungsverzeichnis

Glossar

1 Einleitung
1.1 Problemstellung
1.2 Ziel dieser Arbeit
1.3 Aufbau der Arbeit

2 Grundlagen Java-Programmierung
2.1 Definition und Ursprung von Java
2.2 Merkmale von Java
2.3 Java-Plattform
2.4 Objektorientierung

3 Konzeption der Java-Anwendung Online-Warenkorb
3.1 Programmaufbau und -entwurf
3.2 Spezifikation der Programmklassen

4 Implementierung des Online-Warenkorbs
4.1 Allgemein
4.2 Klasse Artikel
4.3 Klasse Warenkorb
4.4 Klasse MainOnlineWarenkorb (Hauptprogramm)

5 Zusammenfassung und Reflexion
5.1 Fazit
5.2 Kritische Würdigung und Ausblick

Anhang

Literaturverzeichnis

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten1

Abbildungsverzeichnis

Abbildung 1: Bestandteile der Java-Plattform

Abbildung 2: Säulen der objektorientierten Programmierung

Abbildung 3: Konzeption Online-Warenkorb

Abbildung 4: Klassendiagramm Artikel (verschlankt)

Abbildung 5: Klassendiagramm Warenkorb (verschlankt)

Abbildung 6: Auswahlmenü für Warenkorbfunktionalitäten

Abbildung 7: Quellcodeauszug – Validitätsprüfung Menüeingabe

Abbildung 8: Quellcodeauszug – while-Bedingung

Abbildung 9: Screenshot CMD – Fall 2: alle Warenkorbartikel entfernen

Abbildung 10: Screenshot CMD – Fall 3: Warenkorb entfernen

Abbildung 11: Java Conceptual Diagram

Abbildung 12: Klassendiagramm Online-Warenkorb

Abbildung 13: Quellcodeauszug – Artikel-Konstruktoren

Abbildung 14: Programmablauf – Teil 1

Abbildung 15: Programmablauf – Teil 2

Abbildung 16: Screenshot CMD – Warenkorb ausgeben

Abbildung 17: Screenshot CMD – Fall 1: Warenkorbartikel entfernen

Glossar

Abbildung in dieser Leseprobe nicht enthalten2 3 4 5 6 7

1 Einleitung

1.1 Problemstellung

Für das Modul JAV40 (Programmieren in Java) soll mittels der Programmiersprache Java eine einfache Anwendung zur Erstellung eines Online-Warenkorbs mit grundlegenden Warenkorbfunktionalitäten entwickelt werden. Dabei sollen Java-Grundlagen sowie die Prinzipien der Objektorientierung berücksichtigt werden. Die konkrete Anforderung an diese Java-Anwendung besteht darin, dass für mehrere Anwender jeweils ein Warenkorb erstellt und anschließend mit verschiedenen Artikeln gefüllt werden kann. Zudem sollen sowohl alle im Warenkorb gespeicherten Artikel mit ihren relevanten Informationen als auch dessen Nettound Bruttogesamtpreis ausgegeben werden können. Das Hauptprogramm bzw. die Main-Methode, inklusive eines Beispielszenarios, soll über die Kommandozeile aufgerufen und angezeigt werden.8

1.2 Ziel dieser Arbeit

Das Ziel dieser Arbeit ist die Erläuterung der Konzeption und Implementierung der JavaAnwendung. Die Entwicklung des Online-Warenkorbs wird wie gefordert unter Anwendung des objektorientiertem Konzepts realisiert. Dabei verwendete Prinzipien und Komponenten werden in dieser Arbeit ebenfalls erläutert, sodass ein ganzheitliches Bild von den Grundlagen, über die Konzeption bis zur Implementierung gezeichnet wird.

1.3 Aufbau der Arbeit

Anknüpfend an die Einleitung im ersten Kapitel folgt die Erarbeitung der Grundlagen im zweiten Teil der Arbeit. In diesem sind zum einen die Definition sowie die Merkmale der Programmiersprache Java aufgeführt. Zum anderen folgt eine Erläuterung des objektorientierten Konzepts bei der Modellierung und Implementierung sowie dessen Umsetzung in Java. Auf den Grundlagen aus den vorherigen Kapiteln aufbauend, bilden Kapitel 3 und 4 den Schwerpunkt der Arbeit. Dort wird die eingangs formulierte Problemstellung bearbeitet. Zunächst befasst sich Kapitel 3 mit der Konzeption der Java-Anwendung, hinsichtlich der Erarbeitung der entsprechenden Spezifikation und des Entwurfs der Lösung. Bezogen auf die dabei erarbeiteten Ergebnisse folgt im Kapitel 4 die Beschreibung der Umsetzung bzw. Entwicklung der Anwendung in Java. Im fünften und letzten Kapitel dieses Assignment findet sowohl ein Fazit der Arbeit als auch eine Reflexion des Arbeitsergebnisses statt.

2 Grundlagen Java-Programmierung

In diesem Kapitel wird primär ein einheitliches Verständnis der Programmiersprache Java, inklusive ihrer relevanten Merkmalen und Eigenheiten bei der Programmierung, vermittelt. Ferner wird noch ein kurzer Einblick in die Objektorientierung gegeben, dessen Anwendung bei der Konzeption und Implementierung von Java-Programmen elementar ist.

2.1 Definition und Ursprung von Java

Java ist eine objektorientierte und plattformunabhängige Programmiersprache, die vom ehemaligen amerikanischen Unternehmen Sun Microsystems entwickelt und 1995 in ihrer ersten Version veröffentlicht wurde.9 Im Jahr 2009 hat der ebenfalls amerikanische Hardund SoftwareHersteller Oracle Coporation die Firma Sun Microsystems mit allen Produkten und Patenten übernommen10 und entwickelt Java seitdem kontinuierlich weiter (aktuell: Java 1.8). Das Sprachkonzept von Java leitet sich aus unterschiedlichen älteren Programmiersprachen ab. Vorrangig von C++ bzw. C, von denen einfache Datentypen und Operatoren übernommen wurden.11

2.2 Merkmale von Java

Das Hauptmerkmal und gleichzeitig der größte Vorteil von Java, ist die Plattformunabhängigkeit bzw. Portierbarkeit. Im Gegensatz zu vielen anderen Programmiersprachen wird bei der Kompilierung des Java-Quellcode nicht direkt prozessorspezifischer Maschinencode sondern ein Zwischencode, der sogenannte Bytecode, generiert. Dieser wird in einer class -Datei abgelegt und kann von der sogenannten Java Virtual Machine, die im nachfolgenden Kapitel konkret erläutert wird, verarbeitet und ausgeführt werden.12 Da diese virtuelle Maschine auf der OracleHomepage für jedes gängige Betriebssystem zum Download zur Verfügung steht, können JavaAnwendungen sowohl unabhängig vom installierten Betriebssystem als auch von der Rechnerarchitektur ausgeführt werden.13 Ein weiteres entscheidendes Merkmal ist die Verteilbarkeit nach dem Prinzip der Client-Server-Architektur. Dabei werden entweder Daten oder die komplette Java-Client-Anwendung direkt vom Server abgerufen und somit stets aktuell gehalten. Eine inzwischen veraltete Technologie stellen hierbei die sogenannten Applets dar, die in ComputerNetzwerken eingesetzt und von Webservern bereitgestellt werden.14

Des Weiteren bringt Java mit dem Java-Security-Model als mehrstufiges Sicherheitskonzept eine weitere vorteilhafte Eigenschaft standardma.Big mit. Dieses bietet dem Anwender eine sichere Ausfiihrung von Java-Anwendungen. Begonnen beim Verifier, zur Uberpriifung des Bytecode, iiber die virtuelle Maschine bis hin zum sog. Security-Manager wird auf unterschiedlichen Ebe­ nen der Quellcode auf Schadcode gepriift und deren Ausfiihrung ggf. verhindert.15

Wie in der Definition bereits beschrieben, setzt sich Java zum GroBteil aus den Sprachkompo­ nenten von C bzw. C++ zusammen. Dies bewahrt die Einfachheit der Programmiersprache. Ebenfalls wurde die Objektorientierung der Programmiersprache iibemommen, sodass auch in Java Objekte und Methoden eingesetzt und zwingend zusammen verwendet werden. Hinsichtlich der Stabilitiit wurden allerdings problemanfallige Sprachkonstrukte nicht iibemommen. Dies betrifft bspw. die von C bekannten Zeiger, sodass in Java die Referenzierung und Dereferenzie­ rung automatisch stattfindet.16

2.3 Java-Plattform

Java umfasst neben der Programmiersprache auch ein umfangreiches Repertoire an Komponen­ ten, die zur Entwicklung respektive Ausfiihrung von Java-Anwendungen erforderlich sind. Unter dem Begriff Java-Plattform werden die Programmiersprache Java, spezielle Entwicklungswerk­ zeuge, wie der Java-Compiler Gavac), die Java Virtual Machine (JVM) und die Java-API, eine umfangreiche Klassenbibliothek, zusammengefasst. 17 Die heiden bekanntesten Formen der Java­ Plattform sind die Java Standard (Java SE) und die Enterpreise Edition (Java EE).

Bestandteil jeder Plattform ist die sogenannte Java Runtime Environment (JRE). Diese kann entweder eigenstiindig oder im Rahmen des Java Development Kit (JDK) verwendet wer­ den. Die JRE dient ausschlieBlich der Ausfiih­ rung von Java-Programmen auf einem System und umfasst hauptsachlich die Java­ Klassenbibliothek sowie die JVM fiir das entsprechende Betriebssystem.19

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 1: Bestandteile der Java-Plattform 18

Das JDK stellt in diesem Zusammenhang noch zusätzliche Tools zur Entwicklung von Java-Anwendungen zur Verfügung. In Abbildung 11 werden dabei die konkreten Komponenten gezeigt. Die JVM fungiert als Schnittstelle zwischen der Java-Anwendung und dem Rechnersystem, auf dem sie ausgeführt werden soll. Dabei kommen zum einen der Java-Interpreter sowie der JustIn-Time-Compiler, die als Ausführungseinheit bezeichnet werden und für die Ausführung des Bytecodes zuständig sind, zum Einsatz. Zum anderen ist der sogenannte Klassenlader der dritte wesentliche Bestandteil der JVM, welcher im Code nach dem Programmeinstiegspunkt bzw. der main() -Methode sucht und sie lädt.20 Des Weiteren zählen noch der Garbage-Collector zur Speicherplatzfreigabe bzw. Löschung obsoleter Objekte auf dem Heap21 und der BytecodeVerifizierer, zur Überprüfung des Bytecode, zur JVM und charakterisieren Java.

2.4 Objektorientierung

Die Objektorientierung ist ein Konzept zur Darstellung von Phänomenen aus der realen Welt in einem Modell und anschließend in der digitalen Welt. Dabei entspricht ein Realweltobjekt jeweils einem Modellobjekt. Diese besitzen als Pendant zu den Eigenschaften und dem Verhalten von Realweltobjekten Attribute und Methoden, durch diese sie auch identifiziert werden.22 Ebenso besitzt jedes Objekt Zustände, die die aktuellen Werte von Attributen abbilden und nur über die Methoden des Objektes geändert werden können. Thematisch zusammengehörende Objekte werden durch Klassen definiert, die als Schablonen fungieren. Nach dem Baukastenprinzip werden diese wiederum Teilsystemen einer Lösung zugeordnet und somit komplexe Sachverhalte abstrahiert und verdeutlicht.23 Speziell in Java existieren hierfür zusätzliche sog. Java-Packages, die u. a. einzelne Klassen zusammenfassen und dem Programm eine verständlichere Struktur geben. I. d. R. bilden diese eine hierarchische Baumstruktur aus Hauptund Unterpaketen.24

Eine objektorientierte Vorgehensweise wird bereits bei der Modellierung einer Anwendung verlangt. Modelliert werden dabei die Anforderungen an die Programmlösung in Form von Anwendungsfällen (use cases).25 D. h. die Aktionen und Prozesse, die ein potentieller Nutzer mit der Anwendung realisieren kann. Für die Konzeption einer Lösung stehen unterschiedliche Werkzeuge zur Verfügung, unter denen die sog. UML-Diagramme eine wesentliche Rolle spielen. Diese dienen der grafischen Modellierung und stellen Beziehungen zwischen den einzelnen UML-Elementen des Diagramms dar. Konkret zahlen hierzu u. a. die Klassendiagramme, zur Darstellung von Klassen und deren Beziehungen untereinander, die Anwendungsfalldiagramme, zur Darstellung der verschiedenen Akteure und deren Aktionen sowie die Sequenzdiagramme.26

Das objektorientierte Konzept steht dadurch im Gegensatz zu der klassischen imperativen Vor­ gehensweise zur Entwicklung von Programmen. Durch die Untergliederung der Anwendung und der somit einhergehenden Auflosung der Komplexitiit, werden die bekannten Probleme klassi­ scher Programmierkonzepte gelost.27 Wie in der nachfolgenden Abbildung dargestellt, basiert die objektorientierte Programmierung auf vier Saulen.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 2: Siiulen der objektorientierten Programmierung 28

Ein wichtiges Element der ob­ jektorientierten Programmierung:I ist die Generalisierung. Unter ihr versteht man die konkrete Zusammenfassung verschiedener Objekte mit gemeinsamen Eigen­ schaften zu einer sogenannten Superbzw. Elternklasse. Sie dient der Klassifizierung und somit auch der Verdeutlichung der Gemeinsamkeiten von Objek­ ten. Eine jeweils untergeordnete Klasse wird als Subbzw. Kindklasse bezeichnet und ist von ihr abgeleitet. In einem Atemzug mit Generalisierung wird die Spezialisierung als entgegengesetzter Schritt genannt.29 1m direkten Zusammenhang mit der Generalund Spezialisierung steht die Vererbung. Sie dient zum einen der Gruppierung sowie zum anderen auch der Hierarchiebildung von Objekten. Dabei werden alle Attribute und Methoden einer Superklasse an die dazugehori­ gen Subklassen iibertragen bzw. vererbt. In Java wird eine Vererbung durch das Einffigen der Kombination aus dem Schliisselwort extend und dem Namen der Superklasse in die Subklasse realisiert.30 Ein weiteres wichtiges Prinzip der objektorientierten Programmierung ist die Daten­ kapselung. Hierbei geht um die Zugriffssteuerung durch die Kapselung von Daten und Methoden von Objekten in einer Klasse. Die Kapselung umfasst ebenfalls die Idee, dass dem Anwender nur so viele Informationen transparent gemacht werden wie unbedingt notwendig.

Nur die Schnittstellenmethoden eines Objektes sind sichtbar. Dieses bewusste Verbergen von Informationen wird daher als Information Hiding bezeichnet.31 Die vierte Säule der objektorientierten Programmierung ist Polymorphismus, welches ebenfalls der Verallgemeinerung und Vereinfachung von Anwendungen dient. Konkret wird darunter die Vielgestaltigkeit von Methoden verstanden.32 Somit schafft es die Möglichkeit, dass Methoden verschiedener Klassen zwar den gleichen Methodenkopf besitzen aber unterschiedlich implementiert sind. Realisiert wird Polymorphismus indem sowohl in der Superklasse, als auch in der Subklasse eine Methode mit identischem Methodenkopf definiert ist. Durch diese erneute Definition wird die geerbte Methode der Superklasse in der Subklasse überschrieben und liefert ein anderes Ergebnis.33

3 Konzeption der Java-Anwendung Online-Warenkorb

Inhalt dieses Kapitels ist die Erläuterung der Konzeption sowie der Aufbau und Gliederung des entwickelten Java-Programms. Des Weiteren werden die laut Aufgabenstellung vorgegebenen Anforderungsspezifikationen der einzelnen Klassen dargestellt.

3.1 Programmaufbau und -entwurf

Der Online-Warenkorb gliedert sich in insgesamt drei Klassen. Zwei davon bilden die wesentlichen Objekttypen Warenkorb und Artikel eines Online-Warenkorbs ab und werden laut Objektorientierung als Warenkorb.class und Artikel.class angelegt.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 3: Konzeption Online-Warenkorb

Wie in nebenstehender Abbildung konzeptionell dargestellt, besteht zwischen diesen beiden Klassen eine m:n-Beziehung. D. h., dass sowohl in einem Warenkorb kein, ein oder mehrere Artikel existieren können als auch, dass ein Artikel in keinem, einem oder mehreren Warenkörben enthalten bzw. zugeordnet sein kann. Die Assoziation zwischen der Klasse Warenkorb und Artikel ist eine Aggregation. Im konkreten Fall kann ein Warenkorbobjekt als Ganzes ein Artikelobjekt als einen Teil davon enthalten. Diese lockere Verbindung bedeutete auch, dass ein Objekt vom Datentyp Artikel auch ohne ein Warenkorbobjekt seine Individualität behält und existieren kann.34 Der Warenkorb ist im vorliegenden JavaProgramm anwenderspezifisch und ein Anwender kann immer nur einen Warenkorb besitzen.

Der Warenkorbeigentümer ist jedoch kein eigenständiger Objekttyp, sondern wird lediglich durch eine individuelle fünfstellige Nummer, die im nachfolgenden Text als Kundennummer bezeichnet wird, charakterisiert. Diese wird in jedem Warenkorbobjekt gespeichert. Die dritte Klasse stellt das Hauptprogramm dar und dient dem Testen der einzelnen Methoden sowie deren Zusammenspiel untereinander. Zusammengefasst werden diese drei Klassen im Java-Paket warenkorb, das mittels package -Anweisung stets zu Beginn einer Klasse definiert wird.

3.2 Spezifikation der Programmklassen

Die Spezifikationen der beiden hauptsächlichen Programmklassen Warenkorb und Artikel werden im Anhang in Abbildung 12 der Anlage 2 in Form eines Klassendiagramm detailliert abgebildet. Im Wesentlichen sind diese den Anforderungen der Aufgabenstellung entnommen. Gemäß der dort beschriebenen Spezifikation sollen in einem Warenkorb Artikel gespeichert, verwaltet, d. h. hinzugefügt und gelöscht sowie ausgegeben werden können. Des Weiteren sollen Methoden zur Berechnung und Ausgabe des Gesamtpreises sowie der Anzahl der Warenkorbartikel bereitgestellt werden.

Für einen Artikel sollen typische Eigenschaften, wie bspw. Artikelnummer oder Nettopreis sowie Methoden zu deren Änderung und Ausgabe implementiert werden. Dabei soll das zuvor erläuterte Prinzip des Information Hiding gelten.

Im Hauptprogramm sollen die zur Verfügung gestellten Methoden bzw. Funktionalitäten getestet werden. Realisiert wird dies in der Form, dass für mehrere Anwender je ein Warenkorb erstellt und nacheinander mit Artikeln gefüllt wird. Anschließend folgt eine Ausgabe der Warenkorbinformationen mitsamt der darin gespeicherten Artikel sowie dessen Nettound Bruttopreis. Neben diesen vorgegeben Testanforderungen wurde das Mainprogramm noch um die Tests zum Löschen eines ausgewählten Artikels, aller Artikel sowie die Löschung eines gesamten Warenkorbs erweitert.

4 Implementierung des Online-Warenkorbs

Inhalt der nächsten vier Unterkapitel ist die Erläuterung von allgemeinen Entwicklungsinformationen sowie der Implementierung der drei relevanten Java-Klassen des Online-Warenkorbs. Um eine verbesserte Lesbarund Verständlichkeit des nachfolgenden Textes zu erzielen, befinden sich jeweils zu Beginn ausgewählter Kapitel ein verschlanktes Klassendiagramm.

[...]


1 Eingabeaufforderung unter Windows

2 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2013), S. 711

3 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2013), S. 713

4 Vgl. Sierra, K./Bates, B. (2006), S. 40

5 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2013), S. 717

6 Vgl. Schnabel, P. (2017)

7 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2013), S. 718

8 Schmatzer, F.-K. (2016), S. 1

9 Vgl. Hölzl, M./Raed, A./Wirsing, M. (2013), S. 1

10 Vgl. Oracle 1 (2014)

11 Vgl. Goll, J./Heinisch, C. (2014), S. 70

12 Vgl. Ullenboom, C. (2012), S. 50

13 Vgl. Oracle 3 (2017)

14 Vgl. Goll, J./Heinisch, C. (2014), S. 72

15 Vgl. Ullenboom, C. (2012), S. 57

16 Vgl. Goll, J./Heinisch, C. (2014), S. 72

17 Vgl. Goll, J./Heinisch, C. (2014), S. 73

18 Eigene Darstellung, in Anlehnung an: Deininger, M./Faust, G./Kessel, T. (2009), S. 4

19 Vgl. Goll, J./Heinisch, C. (2014), S. 74

20 Vgl. Goll, J./Heinisch, C. (2014), S. 74

21 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2014), S. 715

22 Vgl. Krypczyk, V./Bochkor, O. (2016)

23 Vgl. Goll, J./Heinisch, C. (2014), S. 35

24 Vgl. Singh, C. (2013)

25 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2014), S. 198

26 Vgl. Ratz, D./Scheffier, J./Seese, D./Wiesenberger, J. (2014), S. 199

27 Vgl. Ratz, D./Scheffier, J./Seese, D./Wiesenberger, J. (2014), S. 188f.

28 Eigene Darstellung, in Anlehnung an: Ratz, D./Scheffier, J./Seese, D./Wiesenberger, J. (2014), S. 190

29 Vgl. Ratz, D./Scheffier, J./Seese, D./Wiesenberger, J. (2014), S. 191

30 Vgl. Ullenboom, C. (2012), S. 548

31 Vgl. Goll, J./Heinisch, C. (2014), S. 44f .

32 Vgl. Goll, J./Heinisch, C. (2014), S. 447

33 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2014), S. 196f.

34 Vgl. Ratz, D./Scheffler, J./Seese, D./Wiesenberger, J. (2014), S. 198

Ende der Leseprobe aus 26 Seiten

Details

Titel
Programmierung eines Online-Warenkorbs mit Java
Hochschule
AKAD University, ehem. AKAD Fachhochschule Stuttgart
Veranstaltung
Informatik - Java-Programmiergrundlagen
Note
1,0
Autor
Jahr
2017
Seiten
26
Katalognummer
V463900
ISBN (eBook)
9783668932302
ISBN (Buch)
9783668932319
Sprache
Deutsch
Schlagworte
java, programmierung, warenkorb, programmieren, entwicklung
Arbeit zitieren
Sandro Kunadt (Autor:in), 2017, Programmierung eines Online-Warenkorbs mit Java, München, GRIN Verlag, https://www.grin.com/document/463900

Kommentare

  • Noch keine Kommentare.
Im eBook lesen
Titel: Programmierung eines Online-Warenkorbs mit Java



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden