Skip to content

Latest commit

 

History

History
104 lines (70 loc) · 8.44 KB

entwickler_doku.adoc

File metadata and controls

104 lines (70 loc) · 8.44 KB

Entwicklerdokumentation

Einführung und Ziele

Aufgabenstellung

IT-Dienstleister CompuTech

Die Firma CompuTech beliefert seine Kunden mit PC-Komplettsystemen sowie mit Zubehör und Verbrauchsmaterialien (CDs, Druckerpatronen, Toner, etc.). Die Firma kennt zwei Arten von Kunden, Privat - und Geschäftskunden(B2C & B2B). Ein neues IT-System soll die Beziehung zum Kunden vereinfachen und einen Wettbewerbsvorteil für seine Geschäftskunden bieten. Geschäftskunden können, wenn sie angemeldet sind, Bestellungen (nur Erweiterungen von Bestehender Hardware oder Upgrade) aufgeben sowie ihren derzeitigen EDV-Bestand einsehen. In der Bestandsanzeige soll der Kunde Geräte auswählen und mit Reparatur- oder Serviceaufträgen versehen können. Keine Aktion geschieht ohne Auftrag! Geschäftskunden werden von einem Mitarbeiter angelegt und mit einem vorläufigen Kennwort versehen welches der Kunde danach ändern kann. Privatkunden können sich selbst am System anmelden. Eine Überprüfung der Email und Postadresse (ähnlich Web.de) kann helfen die Gültigkeit einer Adresse zu prüfen. Hat sich der Kunde angemeldet so ist es ihm möglich sein, aus einer vorgegebenen Auswahl von Geräten ein Basismodell auszuwählen und dieses nach seinen Wünschen zu konfigurieren. Privatkunden sollen zudem die Möglichkeit bekommen gebrauchte Geräte wieder an CompuTech verkaufen zu können. Jeder Geschäftskunde hat einen bestimmten Verkaufsleiter als Ansprechpartner. Dieser wird zugeordnet wenn der Verkaufsleiter den Geschäftskunden in der Datenbank anlegt. Der Verkaufsleiter nimmt alle eingehenden Bestellungen und Serviceanfragen entgegen prüft diese und erstellt dann einen Auftrag an das Lager und den Service. Zudem entscheidet der Verkaufsleiter, zu welchem Preis Geräte von Privatkunden zurückgekauft werden. Das Lager verwaltet den Bestand aller Geräte und Verbrauchsmaterialien. Für alle Posten gibt es Mindestbestände. Werden diese unterschritten, bestellt das Lager automatisch aus einer Auswahl von Händlern zu den günstigsten Konditionen nach. Geht ein Auftrag von einem Verkaufsleiter ein, stellt das Lager die Bestellung zusammen (Kommissionierung) und erstellt dann einen Auftrag für den Versand, welcher sich dann um Auslieferung und Aufstellung der Gerät kümmert. Für den letzten Punkt muss ein Auftrag für den Service erstellt werden. Das System soll zudem ein „Kassenbuch“ führen, welches die Buchhaltung und den Jahresabschluss vereinfachen soll. Hierzu sollen alle Transaktionen gespeichert und nach bestimmten Filterkriterien gedruckt werden können. Auf diese Daten hat natürlich nur der Geschäftsführer und die Buchhaltung Zugriff. Dem Kunden ist es besonders wichtig, dass seine Geschäftsprozesse von dem zu entwickelnden IT-System vollständig abgebildet werden.

Qualitätsziele

Die Software soll für den Anwender benutzerfreundlich und übersichtlich sein. Dies wurde mit der übersichtlichen Benutzeroberfläche versucht umzusetzen. Fehler sollen bei der Navigation durch die einzelnen Punkte oder während des Gebrauchs elementarer Funktionen nicht auftreten. Desweiteren trägt eine Beschränkung der Ladezeit einzelner Seiten und Aktionen auf ein Minimum zur Bedienfreundlichkeit bei.

Randbedingungen

Hardware-Vorgaben

Ein handelsüblicher internetfähiger PC ist ausreichend. Maus, Tastatur und ein Monitor werden als Musskriterium gesetzt. Empfohlen sind folgende Spezifikationen:

  • min. Intel Pentium 4-Prozessor o.ä.; besser Dual-Core-Prozessor

  • min. 15-Zoll-Monitor mit 1024*768 Pixel Auflösung

  • min. 1GB Arbeitsspeicher

  • integrierte Grafikkarte

Software-Vorgaben

  • beliebiges Betriebssystem (Windows ab XP, Mac OS ab Version 10.6, Linux oder ein anderes unixoides System)

  • beliebiger Browser (Firefox ab Version 4, Chrome ab Version 5, Opera ab Version 15, Internet Explorer ab Version 10/Edge)

  • IntelliJ (mindestens die Community Edition), Eclipse oder STS (Spring Tool Suite; speziell für Spring angepasste Eclipse-Version) als Programmierumgebung

  • Maven 3

  • Git

  • Java

    • Java SE Runtime Environment (Version 8) zum bloßen Ausführen des Programms (z.B. falls nur eine Jar-Datei ausgeführt werden soll)

    • Java SE Development Kit (Version 8) zum Kompilieren des Codes

Vorgaben zum Betrieb der Software

Grundlagen für dieses Programm sind Java 8 und Maven 3, beides muss installiert sein. Mittels Git wird der Code von GitHub auf den PC übertragen (via "git clone"-Befehl). In der gewünschten Programmierumgebung wird nun der soeben gepullte Codeordner importiert. Maven kommt nun ins Spiel. Beim Importieren wird festgelegt, dass der Code auf Maven basiert. Automatisch werden weitere Abhängigkeiten installiert. Dazu zählen:

  • Spring Boot

  • Spring

  • Spring Data JPA

  • Thymeleaf

  • und SalesPoint

Mittels "run" kann nun der Code kompiliert werden. Unter http://localhost:8080 ist die Weboberfläche sichtbar und steht zum Einsatz bereit.

Kontextabgrenzung

Externe Schnittstellen

Keine vorhanden.

Lösungsstrategie

Der zentrale Ansatz der Programmarchitektur folgt dem Entwurfsmuster "MVC" (Model-View-Controller). Die Anwendung wurde mit Hilfe des Frameworks SpringMVC implementiert, welches dieses Entwurfsmuster für Webanwendungen umsetzt. Zusammen mit dem Framework Thymeleaf wird der größte Teil der View- und Controllerfunktionalität von Spring bereitstellt. Den Vorgaben des Frameworks wurde weitestgehend gefolgt und die Struktur der Javapakete entsprechend der Aufteilung Model-View-Controller festgelegt.

Dem Model entsprechen die Pakete "computech.model". Die Klassen im Paket “computech.model“ stellen das Domänenmodell dar und bilden die Struktur der persistierten Daten. Dem Controller entspricht das Paket "computech.controller", welches alle programmrelevanten Spring-Controller beinhaltet. Dem View entsprechen die Webressourcen, insbesondere alle html-Dateien sowie die CSS-Datei, die im Rahmen der Gestaltung eine Rolle spielen. Validierung und Konvertierung von Nutzereingaben in Form von Text zu den entsprechenden Objektstrukturen werden von Validierungsmethoden in den Klassen im Paket "computech.model.validation" durchgeführt.

Der Bereich des Verkaufs wurde hauptsächlich mit Hilfe des Frameworks SalesPoint implementiert, da man viele angebotene Funktionalitäten dieses Frameworks sehr gut nutzen konnte, um einen effizienten und sauberen Aufbau des Bereiches zu realisieren. Für das Anlegen eines Sortiments wurde der "Catalog" von SalesPoint verwendet, der als Repository dient, um Article-Objekte zu persistieren. Die, ebenfalls von SalesPoint zur Verfügung stehende Klasse “Product“, wurde als Superklasse von Article-Objekten verwendet, da es den Umgang mit Attributen wie Preis/Währung und Stückzahl erleichtert und die Verwendung einer weiteren Salespoint-Funktionalität, dem "Cart", wesentlich komfortabler macht.

Bausteinsicht

Package-Diagramme

Übersicht über Packages
Packagediagramm: Übersicht (allgemeiner Javaordner)
Controller
Packagediagramm: Controller
Model
Packagediagramm: Model
Validation
Packagediagramm: Validation

Entwurfsentscheidungen

Persistenz

Die Datenspeicherung im System übernimmt Spring Data JPA auf Basis des Java Frameworks Hibernate. Daten, die in unserem Projekt zur Laufzeit gespeichert werden müssen, werden in einer relationellen Datenbank mit Hilfe von CRUD Repositories abgelegt.

Benutzeroberfläche

Die Benutzeroberfläche lässt sich in verschiedene Teilbereiche untergliedern. Im Header der Anwendung befindet sich ein Logo, ein Registrierungs- und ein Loginbutton, sowie die Navigationsleiste, mit deren Hilfe die Bedienung erleichtert wird. Sowohl Layout als auch Design weisen klare und immer wiederkehrende Strukturen auf, so dass der Kunde die Übersicht über die Anwendung behält. Auch die Tabellen und Buttons sind dementsprechend durch ein einheitliches basierendes Design auf jeder Unterseite für den Kunden angepasst.

Umgesetzt wurde die Oberfläche mit:

  • HTML5

  • CSS3

  • und JavaScript

Appendix A: Glossar