Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Abgabe: 31. März 2011 Autoren: Igor Bozic (6051794) mail@igor-bozic.com Anke Claußen (6052782) anke_claussen@yahoo.de Leif Dietz (6051239) mail@leifdietz.com Erstellt im Rahmen des Projektes IT-Aneignung, Gender und Diversity (Wintersemester 2010/2011) bei Detlef Rick, Marcel Morisse, Prof. Dr. Ingrid Schirmer Arbeitsgruppe ITG Fachbereich Informatik Universität Hamburg
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Inhaltsverzeichnis 1 Einleitung ................................................................................................................................ 2 1.1 Einleitung ......................................................................................................................... 2 1.2 Problemstellung ................................................................................................................ 2 2 Anwendungskontext Supermarkt ............................................................................................ 5 2.1 Supermarkt Definition ...................................................................................................... 5 2.2 Wissenschaftliche Thesen im Bezug zum Prototyp ......................................................... 7 3 Implementation des Anwendungskontextes in Greenfoot .................................................... 11 3.1 Vorstellung Greenfoot .................................................................................................... 11 3.1.1 Allgemein ................................................................................................................ 11 3.1.2 Aufbau von Greenfoot ............................................................................................. 11 3.1.3 Eignung von Greenfoot ........................................................................................... 13 3.2 Implementation............................................................................................................... 13 3.2.1 Implementationsstufen ............................................................................................ 14 3.2.2 Aktuelle Implementation ......................................................................................... 18 3.2.3 Architektur .............................................................................................................. 19 3.2.4 Zukünftige Erweiterungen....................................................................................... 23 4 Projektorganisation................................................................................................................ 25 4.1 SVN ................................................................................................................................ 25 4.2 Programmierrichtlinien .................................................................................................. 25 4.3 Zeitplan........................................................................................................................... 27 4.4 Test ................................................................................................................................. 27 4.5 Fazit Organisation .......................................................................................................... 28 5 Fazit ....................................................................................................................................... 28 Quellenverzeichnis ................................................................................................................... 30 Abbildungsverzeichnis ............................................................................................................. 32 Anhang ..................................................................................................................................... 33 1
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz 1 Einleitung Die Projektarbeit ist in Zusammenarbeit von den Projektmitgliedern Igor Bozic, Anke Claußen und Leif Dietz unter folgender Aufteilung erstellt worden: Kapitel 1 und 2: Igor Bozic Kapitel 3.1 bis 3.2.3: Leif Dietz Kapitel 3.2.4 bis 4 sowie die EPKs in Kapitel 3.2.3: Anke Claußen 1.1 Einleitung Im Rahmen des Projekts IT-Aneignung, Gender und Diversity soll ein Prototyp in einer Simulationsumgebung entwickelt werden, welcher hauptsächlich in einer Schulprojektwoche zum Einsatz kommt. Der Prototyp soll ein selbständiges Arbeiten ermöglichen, ohne spezielle Informatik Kenntnisse vorauszusetzen. Vielmehr dient er dazu, Menschen die Aufgaben der Informatik deutlich zu machen, um Interesse daran zu wecken. Dabei wird ein Prototyp entwickelt, welcher es ermöglicht, schnell und ohne Hintergrundwissen in das Themengebiet der Programmierung einzusteigen, ohne dabei Vertiefungsmöglichkeiten außer Acht zu lassen. Ziel ist hauptsächlich das Schaffen von Verständnis für die Vielseitigkeit des Aufgabenbereiches der Informatik. Zudem soll ein Bewusstsein geschaffen werden, das in dieser Wissenschaft viele verschiedene Fähigkeiten benötigt werden. Das Beherrschen der technischen Ausführung ist nicht für jeden Bereich aus dieser Disziplin relevant. Diese Projektarbeit beschäftigt sich mit der Planung, Entwicklung und Umsetzung dieses Prototyps. Dabei wird ein Anwendungsbeispiel aus der Realität gewählt, welches mit Hilfe von wissenschaftlichen Methoden zu einem für den Zweck optimierten Modell abstrahiert wird. Ferner sollen Probleme, Optimierungsmöglichkeiten und Erweiterungsmöglichkeiten aufgezeigt werden. Aufgrund des zeitlichen Rahmens dieses Projektes können jedoch nicht alle Gegebenheiten angemessen erforscht und umgesetzt werden. Die Projektarbeit soll deshalb auch Annahmen ohne ausreichende belegbare wissenschaftlichen Quellen begründen. 1.2 Problemstellung Zentrale Anforderung ist die Wahl eines geeigneten Anwendungskontextes. Hierbei liegt das Augenmerk im Titel des Projekts und zwar „Gender“. Das Szenario soll, besonders im Hintergrund der Informatik, geschlechtsunspezifisch daherkommen. Informatik an sich ist eine Wissenschaft, welche in Deutschland mehr Anklang bei Männern als bei Frauen findet. Dies zeigt auch der Studienführer des Departments Informatik der Universität Hamburg, welcher die Studienanfängerquote von Frauen mit 10-15% titelt (vgl. Uni-Hamburg 2009, S. 14). Darum ist hier besonders darauf zu achten dass der Anwendungskontext nicht bereits im Voraus Interessentinnen abschreckt. Aus diesem Grund wurde als Thema ein Supermarkt gewählt. Dieser erfüllt nicht nur obligatorisch die Anforderung des geschlechterneutralen Ortes, sondern bietet zusätzliche Vorteile für Entwickler und Anwender. Für den Anwender erschließt sich der offensichtliche Vorteil der sofortigen Erfassung des Kontextes, welcher durch die tägliche Nutzung impliziert wird. Hier benötigt es keiner langen Einleitungen über Abläufe bei den Aufgabenstellungen, da diese durch die Kenntnis der Domäne für jeden Anwender erschließbar sind. Dies senkt auch die Gefahr, dass das Szenario wegen seiner Komplexität von vornerein abgestoßen wird. Hiermit beschäftigen sich die Theorien des Interaction- und Interfacedesign, sowie Useabillity (vgl. Stapelkamp 2010). Abstoßung durch den Anwender ist ein großes Risiko in der Softwareentwicklung, welche auf 2
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz verschiedenen Ebenen geschehen kann. So kann ein zu großer Funktionsumfang gleichermaßen schlecht wie ein zu geringer aufgenommen werden. Schwer skalierbare Anwendungskontexte erschweren die Abgrenzung eines geeigneten Umfangs. Auch die Entwickler profitieren von diesem spezifischen Szenario. Bei Softwareentwicklung gehört die zeitliche Planung und das Abstecken des späteren Softwareumfangs zu den wichtigsten aber auch schwierigsten Aufgaben (vgl. Kleuker 2011, S. 51 ff). Dieses lässt sich anhand von Vorgehensmodellen sehr gut verdeutlichen. Unabhängig davon, nach was für einem Modell man arbeitet, drückt Abbildung 1 die allgemeinen Phasen aus, welche sich in jedem Softwareprojekt wiederfinden lassen (vgl. Kleuker 2011, S. 24 ff). Abbildung 1 – Vorgehensmodelle – (Eigene Darstellung nach: Kleuker 2011, Abb. 11) Nach Kleuker (vgl. Kleuker 2011, S. 25) lassen sich die einzelnen Phasen folgendermaßen beschreiben. Dabei beginnt man mit einer Anforderungsanalyse, welche dazu dient, die Ziele abzustecken und zu ergründen. Dies verlangt verschiedene Fähigkeiten vom Entwickler. Zum einen muss er alles Relevante erfassen was der Kunde vom fertigen Produkt erwartet. Dabei ist auch darauf zu achten, dass ein begrenztes Wissen über Softwareentwicklung oft dazu führt, dass dem Auftraggeber nicht alle nötigen Implementierungen bewusst sind. Dieses fehlende Wissen muss vom Entwickler kompensiert und kommuniziert werden. Zudem sollten hier realistische Ziele im Anbetracht der Ressourcen vereinbart werden. Es empfiehlt sich, die Ziele für beide Seiten schriftlich festzuhalten. Im Grob- und Feindesign werden die ermittelten Ziele in ein Modell gebracht, welches direkt für die eigentliche Entwicklung dient. Hier werden alle wichtigen Fragen von Funktionalität über Software-Architektur bis zum Design geklärt. Ziel ist es also, beim Programmieren schon eine genau Vorstellung zu haben, wer, was und wie macht. Dies beugt zum einen Fehler vor, da ein genauer Plan zum Vorgehen besteht. Auch können in dieser Phase Gruppensynergien ideal genutzt werden. Durch eine gemeinsame Planung aller Beteiligten fließt alles potentielle Wissen für jeden Arbeitsschritt ein, welches oft die bestmögliche 3
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Lösung hervorbringt. Zuletzt kann auch nur so sichergestellt werden, dass die personellen Ressourcen maximal ausgenutzt werden um Leerläufe und Stillstände zu verhindern. Die Implementierung ist der handwerkliche Teil der Entwicklung, sprich die Programmierung an sich. Hier wird alles Geplante umgesetzt und bei Problemen eventuell noch einmal überdacht. Im Idealfall entsteht in dieser Phase kein großer Planungsaufwand mehr. Alle Ziele und die Art der Umsetzung sollten schon abgesteckt worden sein. Die Implementierung sollte trotzdem nicht blind ablaufen, Kommunikation aller Beteiligten ist auch in diesem Schritt der Entwicklung sehr wichtig. Vor dem Einsatz sollte jede Software noch einmal getestet werden. Die Art der Test und der Umfang hängt stark vom Einsatzgebiet ab. Die Tests können sich auf Fehlersuche im System, Kompatibilität zur geplanten Hard- und Software oder aber auch auf Useabillity beziehen. Viele Vorgehensmodelle binden Tests in allen Phasen des Entwicklungsprozesses ein. So soll sichergestellt werden, dass Fehler nicht erst zum Schluss festgestellt werden, was meist einen erheblichen Aufwand zur Behebung bedeutet. Fehler lassen sich in keinem Projekt vermeiden, deshalb spielt die Qualitätssicherung in jedem Entwicklungsschritt eine zentrale Rolle. Eine gute Qualitätssicherung erkennt die Fehler früh und minimiert so die Mehrarbeit die durch Fehlplanung entsteht. Dabei kann die Qualitätssicherung auf verschiedenste Arten umgesetzt werden. So können Tests prüfen ob die Software auch das tut was sie soll oder frühe Hinzuziehung der Anwender die Abstoßungswahrscheinlichkeit beim Roll-Out verringern. Bei genauer Betrachtung der Abbildung 1 fällt einem jedoch ein großes Risiko auf. Es ist möglich vom letzten Schritt wieder zum ersten zurückzufallen, falls sich herausstellt, dass die Anforderungsanalyse falsch war. Zwar schließt keine Wahl dieses Risiko komplett aus, besonders schwer modellierbare Umstände begünstigen dieses jedoch. Durch die genauen Kenntnisse über die Anwender, lässt sich die Anforderungsanalyse als zentraler Schritt ohne große Fragen bezüglich der Ziele und damit verbunden des Umfangs für den Supermarkt abschließen. Hier ist besonders darauf zu achten ein einsatzfähiges Minimalsystem zu definieren, welches je nach zeitlichen Ressourcen stets erweiterbar sein soll. Zwar lassen sich viele Probleme mit genügend Zeit lösen, deshalb sollte jedoch einer der Eckpfeiler des Projektmanagements nicht außer Acht gelassen werden. Das sogenannte magische Dreieck (vgl. Abbildung 2) zeigt ein typisches Dilemma welches in Projekten Auftritt auf. Abbildung 2 – magisches Dreieck – (Eigene Darstellung nach: Keßler 2002, Abb. 5.5) Diese vereinfachte Darstellung zeigt den Zusammenhang zwischen Zeit, Qualität und Kosten. Im weiteren Sinne fällt unter Zeit auch noch Termin. Zu Qualität zählt auch noch Ziele, 4
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Leistungen und Nutzen. Kosten lässt sich noch mit Personalkapazitäten ergänzen(vgl. Keßler 2002, S. 55-56). Das Ideale Projekt hätte die maximale Qualität bei minimaler Zeit und minimalen Kosten. Dieser Zustand ist in der Realität jedoch niemals erreichbar. Die Maxi- beziehungsweise Minimierung einer Kenngröße wirkt sich gleichzeitig immer auf die anderen Kenngrößen aus. So kann ich in einem Bereich keine Verbesserung herbeiführen ohne gleichzeitig auch in einem anderen eine Verschlechterung herbeizuführen. Es müssen also immer Kompromisse eingegangen werden. Unter Berücksichtigung dieser Aspekte wird hier zudem deutlich welche Rolle die Modellierung hat. Ein Modell ist laut Definition immer nur eine vereinfachte Darstellung der Realität (vgl. Fink 2005, S. 91). Es muss also sorgsam abgewägt werden welche Teile des realen Supermarktes erfasst werden müssen. Dabei geht es nicht nur darum alle wichtigen Details für den Prototypen einzubeziehen, sondern auch Möglichkeiten für spätere Erweiterungen zu bieten. Bei diesem Projekt ist jedoch die knappe Zeit die zentrale Größe welche zwangsläufig den Umfang bei fester Personalkapazität diktiert. 2 Anwendungskontext Supermarkt Supermärkte kombinieren viele verschiedene Wissenschaftsfelder um sich ideal auf die Bedingungen der Marktwirtschaft anzupassen. So spielen besonders Teilgebiete der Informatik, Wirtschaftsinformatik und Betriebswirtschaftslehre eine zentraler Rolle im täglichen Ablauf, sowie es in jedem modernen Betrieb heutzutage der Fall ist (vgl. Voß 2001, S. 1 ff) . Für uns ist jedoch lediglich das Marketing als Teil der Betriebswirtschaftslehre sowie Teile der Verhaltensforschung relevant. 2.1 Supermarkt Definition Der Begriff Supermarkt wird häufig für alle Arten von Lebensmittelgeschäften benutzt. Wir wollen uns nun korrekterweise mit der genauen Definition dieses Begriffes und den Unterschied zu ähnlichen Geschäftsarten beschäftigen. Die Einzelhandels Lebensmittelgeschäfte lassen sich nach Anzengruber (vgl. Anzengruber 2007, S. 8ff) in die folgenden vier Vertriebstypen aufteilen. Hypermärkte Hypermärkte besitzen typischerweise Verkaufsflächen von über 1500 m². Das breite Produktangebot dieser Märktet zeichnet sich dadurch aus, dass es sich in erster Linie aus Markenprodukten zusammensetzt. Da diese aufgrund ihrer Größe eine höhere Abnahme an Produkten verzeichnen, können sie durch die größere Verhandlungsmacht auch besser Einkaufspreise erzielen, was sich auch auf den Endabnehmerpreis auswirkt. Supermärkte Supermärkte fallen im Vergleich deutlich kleiner aus als Hypermärkte. Sie haben charakteristisch lediglich eine Größe von bis zu 1500 m². Die flächenmäßige Begrenzung wirkt sich auch auf das Produktangebot aus, welches auch eingeschränkter ist. Auch hier liegt der Hauptfokus auf Markenprodukten, welche jedoch im Vergleich zum Hypermarkt oft zu höhere Preise angeboten werden. Zudem spielt der Frischwarenbereich auch eine zentrale Rolle, kann im Punkt Qualität aber häufig nicht mit Fachgeschäften mithalten. 5
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Discounter Dieser sehr neue Vertriebstyp profiliert sich ausschlaggebend über den Preis. Das Warenangebot ist stark begrenzt und wird stark von Hausmarken dominiert. Es wird überwiegend versucht mit günstigen Preisen die aktuell am größten nachgefragten Produkte im Lebensmittelbereich zur Verfügung zu stellen. Zudem wird versucht eine deutlich besser Kostenstruktur gegenüber anderen Vertriebsformen umzusetzen. Traditionelle Fachgeschäfte In diese Kategorie fallen Lebensmittelhändler welche sich auf wenige Warengruppen spezialisiert haben. Sie können im Bereich Preis und Warenangebot meistens nicht mit den anderen Vertriebsarten mithalten. Dafür bieten sie aber in der Regel Qualitativ deutlich hochwertigere Produkte. Auch besser Beratung, Erfüllung spezielle Kundenwünsche und ein Warenangebot aus regionaler Produktion zeichnet diese Geschäfte oft aus. Zur Einschätzung der Relevanz zeigt Abbildung 3 die Aufteilung des Lebensmittelmarktes nach Vertriebsformen. 3,2 4,4 Selbständige Einzelhändler 7,1 Drogeriemärkte 34 Discounter Große Supermärkte, 26,1 Supermärkte, SB-Geschäfte Verbrauchermärkte, SB Warenhäuser Sonstige Lebensmittelgeschäfte 25,2 Abbildung 3 – Lebensmittelgeschäfte nach Vertriebsart (Eigene Darstellung nach: Anzengruber 2007, Abb.4) Nach dieser Zusammenfassung lässt sich auch die Wahl der Vertriebsart Supermarkt genauer begründen. Ein traditionelles Fachgeschäft ist in aller Regel nur wenige Quadratmeter groß und bietet für dieses Szenario nicht genügend relevanten Modellierungsmöglichkeiten. Die Discounter haben zwar oft eine ähnliche Größe wie Supermärkte, bieten aber durch die starke Fixierung auf den Preis wenige Chancen Verhaltenswissenschaftliche Unterschiede des Kunden aufzudecken. Zwischen Hypermärkten und Supermärkten ist lediglich die Größe ein relevanter Unterschied für uns, aufgrund der Übersichtlichkeit des Prototyps wird also der Supermarkt bevorzugt. 6
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz 2.2 Wissenschaftliche Thesen im Bezug zum Prototyp Im späteren Verlauf der Projektarbeit wird genauer auf den Programmumfang und deren Funktionalitäten eingegangen werden. Hier wird schon einmal im Voraus der Grobe Umfang erläutert um diesen anhand von anerkannten Theorien zu begründen oder fehlende wissenschaftliche Nachweise zu begründen. Unser Ausschnitt eines Supermarktes soll das durchschnittliche Einkaufsverhalten eines Kunden darstellen. Dabei soll ein Kunde sich selbständige durch den Supermarkt bewegen, einkaufen und nach bestimmten Vorgaben auf die Umstände die er vorfindet reagieren. Neben den Kunden an sich, wird es in dem Supermarkt noch Regale und Kassen geben. Regale beinhalten Waren, welche wiederum eine Spontankaufwahrscheinlichkeit besitzen. Zudem spielt die Zeit bei allen Aktionen eine Rolle. Ziel ist es den wirtschaftlich erfolgreichsten Supermarkt zu erstellen. Was diese ungenau Formulierung genau bedeutet sollen die nachfolgenden Erläuterungen deutlich machen. Unter der Grundannahme das eine Person einen Laden betritt um etwas bestimmtes zu kaufen oder ein Bedürfnis zu befriedigen stellt sich die Frage wie ein Mensch einkauft und was ihn alles dazu bewegt bestimmte Produkte zu erwerben. Hierbei können wir uns auf das sogenannte SOR-Paradigma stützen. Dieses Modell erklärt den Prozess der stattfindet, wenn wir uns in einer Kaufentscheidung befinden. Dabei steht SOR für Stimulus, Organismus, Reaktion. Es drückt die drei Stufen des Entscheidungsprozesses aus. Zuerst wirkt ein Stimulus auf den Konsumenten, ein auslösender Reiz, welcher die Aufmerksamkeit auf ein Produkt lenkt. Dieser Stimuli kann dabei sehr vielfältig sein, etwa eine Werbebotschaft oder ein Sonderangebot. Darauf folgt der Organismus, dies ist ein interner Prozess welcher bei jedem Menschen anders ablaufen kann. Prinzipiell bewertet der Mensch unter Zuhilfenahme verschiedener Kriterien wie persönlicher Einstellung, Erfahrungsberichten von Bezugspersonen oder Vergleich der Alternativen. Dieser Prozess lässt sich nicht direkt beobachten und selbst mit Befragungen nicht unbedingt komplett entschlüsseln, da einige Aspekte auch unterbewusst passieren. Als direkte Konsequenz des Organismus folgt die Reaktion. In unserem Fall das Kaufen oder nicht Kaufen des Produktes(vgl. Kuß 2000, S. 2-3). Abbildung 4 – SOR – Paradigma – (Eigene Darstellung nach: Kuß 2000, Abb. 1.1) Dieses Modell lässt sich so auch auf die Supermarkt Simulation übertragen. Ein Kunde läuft selbständig durch den Laden um einen Einkaufszettel abzuarbeiten, dabei geht er an Regalen vorbei. Befindet er sich nah genug an einem Regal, wirkt der Stimulus. In diesem Radius um das Regal wirken die Waren auf den Kunden und er hätte die Möglichkeit sich für diese zu entscheiden. Jede Ware hat eine Spontankaufwahrscheinlichkeit, diese ist Maßgeblich für den Organismus. Umso höher die Spontankaufwahrscheinlichkeit, umso wahrscheinlicher ist es, dass der Kunde dieses Produkt kauft. Als Reaktion folgt das Ergebnis des durch die Spontankaufwahrscheinlichkeit bestimmten Organismus Prozesses, die Entscheidung, ob das Produkt zusätzlich gekauft wird oder nicht. Dieses ist die simpelste Form der Abbildung 7
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz dieses Modelles, da für den Organismus nur eine Stellgröße ausschlaggebend ist. Nichts desto trotz bietet dies die Möglichkeit einer realistischen Nachahmung von Kaufentscheidungen. Bei den Regalen, und damit verbunden auch den Waren, wird es sich um eine sehr vereinfachte Betrachtung handeln. Hier könnte man sich mit der effektivsten Anordnung von Regalen innerhalb des Supermarktes und der sinnvollsten Anordnung der Ware innerhalb eines Regales beschäftigen. Bei den Regalen wird dieses indirekt durch den späteren Anwender geschehen. Diese sollen explorativ die beste Regalanordnung feststellen. Dabei wird jedoch kein bewiesenes Modell zum Einsatz kommen. Der dem Kunden vorgegebene Einkaufszettel wird immer durch einen mathematischen Algorithmus erstellt um eine konstantes Einkaufsverhalten bei mehreren Simulationsläufen sicherzustellen. So kann durch die Statistik der meist besuchten Regale, welche am Ende jedes Simulationslaufes angezeigt wird, der Supermarkt wirtschaftlich sinnvoll gestaltet werden. Das bedeutet, dass der Kunde an möglichst vielen Regalen vorbeikommt und so das SOR-Paradigma möglichst oft zum Einsatz kommt, welches den Mehr Kauf von Artikeln fördert. Bei der ganzen Simulation sollen aber auch nicht die Kundenzufriedenheit außer Betracht gelassen werden. Bestimmte Gegebenheiten die in zwei Supermärkten objektiv gleich sind, können in einem negativ, im anderen jedoch positiv wirken. Bei Kundenzufriedenheit geht es um eine subjektiv wahrgenommenen Zustand des Kunden. So ist es durchaus möglich das Warten in einer Kassenschlange für einen Kunden angenehmer wirken zu lassen. Wir wollen uns in dem umfangreichen Bereich der Kundenzufriedenheit auf die Warteschlangen im Kassenbereich beschränken, diese sollen auch im angemessen Umfang im bestehenden Modell berücksichtig werden. Hierbei werden wir uns mit externen Einflussfaktoren beschäftigen, welche eine negative Wirkung haben können. „ Als externe Einflussfaktoren werden hier Wirkungen bezeichnet, die von ökonomischen Bedingungen (einzel- und gesamtwirtschaftlicher Art), von sozialen Umfeld und von den Besonderheiten der jeweiligen Kaufsituation ausgehen.“ (Kuß 2000, S. 164) Dieser Themenbereich umfasst eine sehr Umfangreiche Betrachtung möglicher Einflussfaktoren, welche sowohl positiv als auch negativ wirken können und deshalb immer von Gestaltern in dieser Domäne beachtet werden sollten (Kuß 2000, S. 164 ff). Wir werden uns hier mit einem kleinen Teil dieses Themas beschäftigen, welches aber einen wichtigen Beitrag zur Realitätsnähe liefern wird. Für uns wird dieser Faktor die Zeit oder spezieller ausgedrückt die Wartezeit an den Kassen sein. 8
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Abbildung 5 – Kundenzufriedenheit – (Eigene Darstellung nach: Kotler 2007, Abb. 2.1 ) Abbildung 5 zeigt den Ansatz von Kotler (vgl. Kotler 2007, S. 43 ff) zur Erklärung von Einflussfaktoren der Kundenzufriedenheit. Demnach entscheidet sich ein Kunde für das Produkt mit dem größten Wertgewinn. Der Wertgewinn errechnet sich aus der Differenz zwischen Wertsumme und Kostensumme. In der Wertsumme werden alle Eigenschaften aufgezählt welche die subjektiven und objektiven Wertzuwächse für das Individuum bedeuten. Die Kostensumme erfasst alle Arten von Kosten welche bei der Anschaffung anfallen. Beide Punkte sind bei jedem Individuum von subjektiven Faktoren abhängig, weshalb für verschiedene Personen bei gleichen Bedingungen, unterschiedliche Wertgewinne entstehen können. Der für uns relevante Ausschnitt findet sich unter der Kostensumme als Kosten für Zeit wieder. Damit lässt sich das Warten in der Schlange, sprich die Konkrete Zeit, direkt als Messgröße für Kundenzufriedenheit anwenden. Überschreitet die Zeit eine bestimmte 9
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Schwelle, sodass die Kostensumme im Vergleich zu anderen Optionen, als negative Empfunden wird, führt das dazu, dass die Kunden sich für ein anderes Angebot entscheiden. In unserem Fall hieße das konkret, dass Kunden beim Betreten des Ladens diesen bei zu langen Schlangen direkt wieder verlassen, da diese eine für ihre Vorstellungen zu lange Wartezeit implizieren. Auch vorstellbar wäre, dass der begonnene Einkauf beim Feststellen der Warteschlangenlänge sofort abgebrochen werden würde. Zurzeit könnte der Eindruck entstehen, dass man durch die Anordnung eines Supermarktes, welcher es erzwingt dass die Kunden möglichst lange im Laden bleiben, ein ideales Modell erstellt das sich wirtschaftlich maximal Auszahlt. Es bedarf keiner großen Wissenschaft um festzustellen, dass ein Supermarkt dieser Art von Kunden gemieden werden würde. Aus diesem Grund soll der eben erläuterte Teilbereich zur Erklärung von Kundenzufriedenheit auch im Prototyp Beachtung finden. Obligatorisch wird dabei die Wartezeit an den Kassen mit einem Bezug auf die Gesamtzeit eines Einkaufes als Messgröße verwendet. Die Kunden laufen durch den Supermarkt und kaufen ein, am Ende ihres Einkaufes begeben sie sich zur Kasse um zu bezahlen und anschließend den Laden zu verlassen. Bei mehreren Personen an der gleichen Kasse bilden sich Schlangen. Übersteigt die Anzahl der Wartenden an allen Schlangen eine bestimmte Zahl, verlassen neue Kunden sofort nach dem Betreten ohne Einkauf den Laden. Das Stauen an den Kassen lässt sich vor allem beobachten, wenn Regalanordnungen gewählt werden, welche den Kunden künstlich im Laden halten. Das heißt besonders enge Gänge Aufstellungen die Laufwege unnötig stark vergrößern. Durch die größere Zahl an sich aktuell im Laden befinden Kunden, strömen auch mehr Kunden gleichzeitig zu den Kassen, welches diese Überlastung hervorruft. Hier sei nochmal erwähnt, dass es durchaus möglich wäre dieses Kundenzufriedenheit auch in einer langen Warteschlange noch positiv zu beeinflussen(vgl. Kotler 2007, S. 43 ff). Dieses wird aufgrund der komplexen Umsetzung in unserem Modell jedoch nicht berücksichtigt. Dieses Szenario ist mit Sicherheit nicht in seiner Art und Ausführen ausschlaggebend für die Akzeptanz von Supermärkten in der Realität. Es bietet jedoch die Möglichkeit für den Anwender, welcher kein Experter der Domäne ist, schnell und eindeutig Rückmeldung darüber zu geben ob seine Überlegungen und Umsetzungen sinnvoll waren. Zudem bietet es für das Lehrpersonal die Möglichkeit der Erklärung von den in dieser Projektarbeit erwähnten wissenschaftlichen Theorien anhand von Praxisübungen. Es ist also für unseren Anwendungskontext mit teilweise bewusstem Verzicht auf realitätsnähe im nötigen Umfang modelliert. Das Modell ist bewusst für Lehrzwecke gewählt und ist deshalb in seiner aktuellen Ausführung nicht für Simulationen, welche die wirkliche Optimierung eines realen Supermarktes zum Ziel haben, geeignet. 10
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz 3 Implementation des Anwendungskontextes in Greenfoot 3.1 Vorstellung Greenfoot 3.1.1 Allgemein Der Prototyp des Supermarktes wird mit einer Entwicklungsumgebung namens Greenfoot erstellt. Diese wurde von den Universitäten University of Kent (England) und Deakin University (Australien) entwickelt und dient zur Ausbildung von Schülern und Studenten in Java (vgl. Kölling 2010, S. 1). Als Grundlage diente das, ebenfalls zu Lehrzwecken entwickelte, Entwicklungstool BlueJ (vgl. Henriksen et.al. 2004, S. 4). Damit kann Greenfoot die Zusammenhänge der Klassen grafisch darstellen. Zusätzlich setzt Greenfoot auf der gesamten Java-Welt auf und bietet damit sämtliche Funktionalitäten von Java. Mit Greenfoot können sowohl grundlegende Konzepte der objektorientierten Programmierung anschaulich dargestellt werden, als auch komplexe Zusammenhänge abgebildet werden. Auf der Idee der diskreten ereignisorientierten Simulation basierend (Johannesmeyer 2010), ist die Entwicklungsumgebung vielseitig einsetzbar. Es soll sowohl dafür geeignet sein, 14 jährigen Schülern die ersten Grundlagen der Programmierung nahe zu bringen, wie auch bei der universitären Ausbildung von Studenten im Bereich der Softwareentwicklung (Kölling 2010, S. 1). Wie dieses Ziel erreicht werden soll, wird im nächsten Abschnitt mit dem Aufbau der Entwicklungsumgebung Greenfoot dargestellt. 3.1.2 Aufbau von Greenfoot Abbildung 6 – Screenshot Greenfoot Entwicklungsumgebung Die Entwicklungsumgebung von Greenfoot besteht im Wesentlichen aus dem in Abbildung 6 gezeigtem Übersichtsbildschirm des aktuellen Szenarios und einem Texteditor zur Bearbeitung der Klassen. Als Szenario wird in Greenfoot ein Projekt bezeichnet. Es wird bei der Erstellung eines Szenarios ein Ordner erstellt, in dem sich alle Projektdateien inklusive der Greenfoot-Szenariostartdatei befindet. 11
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Aufgeteilt ist der Übersichtsbildschirm in drei Bereiche: Den größten Teil nimmt die Greenfoot Welt ein; dort wird das Programm ausgeführt. Rechts ist ein vereinfachtes Klassendiagramm zu sehen, in dem man die Klassenvererbungen erkennen kann. Im unteren Teil der Entwicklungsumgebung ist eine Steuerleiste, mit der man u.a. das Szenario starten kann. Aufbauend auf der kompletten Java Umgebung, die es einem erlaubt, sämtliche Funktionen von Java und deren Bibliotheken zu nutzen, stellt Greenfoot zusätzlich eine eigene Programmierschnittstelle (API - application programming interface) zur Verfügung. Diese API beinhaltet fünf Klassen, die im Folgenden kurz beschrieben werden. Diese Klassen werden dahingehend genutzt, dass sie Grundfunktionalitäten für die Objekte eines Szenarios bereitstellen. Die Grundfunktionalitäten werden durch Vererbung von den API-Klassen an die Szenario-spezifischen Klassen erweitert und spezifiziert. Anschließend wird beschrieben, wie der simulationsähnliche Ablauf eines Szenarios von Greenfoot umgesetzt wird. Greenfoot Die Greenfoot Klasse stellt zum einen die Steuereinheit des aktuellen Szenarios dar. Hier kann z.B. das Szenario gestartet oder gestoppt werden und die Geschwindigkeit des Szenarios eingestellt werden. Zum anderen werden hier auch Funktionalitäten bereitgestellt, die für die Interaktion mit dem Anwender des Szenarios benötigt werden. Darunter fällt z.B. das Abfangen von Tastatureingaben und die Rückgabe eines Mauszeiger-Objektes. Dieses Objekt ist in der MouseInfo Klasse weiter spezifiziert. World Ein Objekt der World Klasse oder einer erbenden Klasse ist die Grundlage eines Szenarios. Man kann dieses Objekt als Spielfeld verstehen, auf dem sich die Akteure bewegen. Die World Klasse bzw. die von der World Klasse erbende Klasse dient dazu, die oben erwähnte Welt des Szenarios zu gestalten. Dazu werden in der World Klasse diverse Funktionalitäten angeboten. Darunter fällt u.a. das Setzen einer Hintergrundgrafik für das Szenario und das Verändern der Größe von den quadratischen Kacheln, in welche die Welt eingeteilt ist. Auf diesen Kacheln bewegen sich die Akteure. Auch zählen das Erstellen und Entfernen von Akteuren aus der Welt sowie Informationen darüber, wie viele Akteure sich in der Welt befinden zu den Funktionen der World Klasse. Actor Die Objekte von den Akteuren stellen die agilen Elemente des Szenarios dar. Sie lassen sich in eine Welt einfügen und können sich dann in den Grenzen dieser Welt bewegen. Akteuren kann man, wie der Welt, eine Grafik zuordnen und somit die sich bewegenden Akteure in der Welt voneinander unterscheiden. Die Agilität erhalten die Akteure dadurch, dass man sie an eine beliebigen Stelle auf der Welt verschieben kann und dass man sie um den eigenen Mittelpunkt drehen kann. Die Grafik wird dabei mitgedreht. Außerdem können Akteure andere Akteure in der Welt erkennen, z.B. durch Überschneidung der eigenen Grafik mit der Grafik eines anderen Akteurs oder durch das Abfragen einer bestimmten Koordinate nach Akteuren. MouseInfo Diese Klasse dient dazu, die Interaktionen des Anwenders, die er mit der Maus im Szenario durchführt, abzufangen. Dazu gehört neben der Position des Mauszeigers und der gedrückten Maustaste auch der Akteur, mit dem die Maus zur Zeit interagiert. 12
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz GreenfootImage Alle Grafiken und Bilder, die in das Szenario eingefügt werden, z.B. Hintergrund- oder Akteurgrafik, sind vom Typ GreenfootImage. Man kann sowohl eine bestehende Grafik einbinden, als auch eine neue Grafik in Greenfoot erstellen. Diese Grafiken kann man zum einen dahingehend manipulieren, dass man z.B. Größe oder Transparenz verändern kann. Es ist jedoch auch möglich, einfache Objekte wie Kreise oder Polygone in der Grafik zu zeichnen und Flächen mit Farbe zu füllen. Interne Ablauforganisation von Greenfoot Nachdem ein Szenario gestartet wurde, erinnert die Struktur, wie die Objekte in Greenfoot bearbeitet werden, an eine diskrete ereignisorientierte Simulation. Das Greenfoot System erzeugt, abhängig von der eingestellten Geschwindigkeit, Ereignisse, sogenannte Acts. Die Klassen World und Actor stellen act-Methoden zur Verfügung, die auf diese Systemereignisse in der Art reagieren, dass die act-Methoden aufgerufen werden und der enthaltende Quellcode ausgeführt wird. Bei jedem Systemereignis wird zunächst die act-Methode der Welt ausgeführt. Anschließend wird nacheinander von jedem Akteur die act-Methode aufgerufen. Die Reihenfolge der Akteure lässt sich über die Welt selbst bestimmen. Sind alle Objekte, die diese Act-Methode bereitstellen, einmal vom System aufgerufen worden, wird die Zeit bis zum nächsten Systemaufruf ohne Aktion abgewartet. Ist in einer Akteur-Klasse keine act-Methode implementiert, werden die Objekte nicht vom System automatisch aufgerufen. 3.1.3 Eignung von Greenfoot Der zu erstellende Prototyp soll in erster Linie dazu dienen, einer Gruppe von Schülern im Alter von ca. 15 Jahren das Thema Programmierung und Informatik näher zu bringen. Wie oben beschrieben, soll das genau ein Ziel von Greenfoot sein, was durch mehrere Konzepte erreicht wird. Die einfache Benutzeroberfläche von Greenfoot ist reduziert auf wenige Elemente, die zur Erstellung und Benutzung von Szenarien ausreichend sind. Der Benutzer steht nicht vor einer Vielzahl an Einstellungsmöglichkeiten oder verschachtelten Menüs, was einen Anfänger eventuell abschrecken könnte. Außerdem ist die Komplexität von objektorientierter Programmierung an vielen Stellen vereinfacht, bzw. sie wird anschaulich dargestellt. Durch das angezeigte Klassendiagramm kann man schnell erkennen, wie die Vererbungsstruktur des Szenarios aufgebaut ist und kann diese Struktur einfacher an Lernende transportieren. Der wichtigste Punkt aus unserer Sicht ist jedoch, dass die grafische Darstellung eines Szenarios einfach umzusetzen ist. Besonders für jüngere Menschen und Menschen ohne Programmierkenntnisse kann es einfacher sein, die Zusammenhänge zu erkennen, wenn man diese grafisch unterstützt. 3.2 Implementation In diesem Kapitel wird beschrieben, wie wir die oben beschriebene Greenfoot Entwicklungsumgebung genutzt haben, um den Anwendungskontext Supermarkt umzusetzen. Für die Realisierung eines Supermarkt Szenarios haben wir uns entschieden, weil die Abläufe in einem Supermarkt mit denen der Kunde in Berührung kommt, für die meisten Menschen bekannt und vertraut sind. Man muss also nicht erst den Anwendungskontext erklären. 13
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Das Kapitel ist folgendermaßen aufgebaut: Zunächst wird auf unterschiedliche Implementationsstufen eingegangen. In jeder Stufe wurden grundlegende Entwicklungen erreicht, die notwendig für weitere Entwicklungen waren. Diese werden in jeder Stufe ausführlich beschrieben. Anschließend wird die aktuelle Implementation erläutert, ohne allerdings auf die Details, die in den Implementationsstufen beschrieben wurden, einzugehen. Als letzten Punkt wird ein Ausblick auf Erweiterungen gegeben, die dem Prototypen in Zukunft hinzugefügt werden könnten. 3.2.1 Implementationsstufen Stufe 1 Abbildung 7 – Screenshot Implemetationsstufe 1 In der ersten Stufe wurden zunächst die grundlegenden Funktionalitäten des Kunden gelegt, damit dieser durch den Supermarkt laufen kann. Dazu ist es nötig, dass der Kunde Ziele im Supermarkt bekommt und diese Ziele eigenständig erreichen kann. Auf eigene Grafiken wurde in dieser Version noch verzichtet; Regale wurden dargestellt durch Autos, Kunden durch Ameisen. Jeder Kunde erhält bei seiner Erstellung eine Einkaufsliste, die er im Supermarkt abarbeiten soll. Dazu wird aus einer vorhandenen Warenliste, in der alle im Supermarkt erhältlichen Waren aufgelistet sind, eine zufällige Anzahl Waren ausgewählt und mit ebenfalls zufällig generierter Stückzahl in die Einkaufsliste geschrieben. Man kann die Einkaufsliste nun fragen, was die nächste zu kaufende Ware ist und kann eine Ware als gekauft markieren. Hat ein Kunde ein Ziel bekommen, werden die X- und Y-Koordinate des Ziels gespeichert. In jedem Aufruf der act-Methode versucht er dann dem Ziel näher zu kommen, was im Folgenden näher beschrieben wird. Lauflogik Als erstes wird geprüft, ob das Ziel bereits erreicht wurde, d.h. ob die aktuellen Koordinaten des Kunden mit denen des Ziels innerhalb einer Toleranz übereinstimmen. Sollte dies der Fall sein, muss ein neues Ziel bestimmt werden. Im negativen Fall wird als nächstes geprüft, welche Kacheln um den Kunden herum frei sind, also in welche Richtungen er laufen könnte. Dann wird ermittelt, in welche Richtung das Ziel relativ zum Kunden liegt. Ist der Weg in 14
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz diese Richtung frei, wird der Kunde um einen Schritt in die Richtung bewegt. Die Bewegungen in X- und Y- Richtung werden unabhängig voneinander betrachtet. Muss in beide Richtungen gelaufen werden und sind beide Richtungen frei, läuft der Kunde diagonal. Ist in X-Richtung ein Hindernis, die Y-Richtung aber frei, läuft der Kunde nur in Y-Richtung. Probleme treten mit dieser Strategie jedoch auf, wenn der Kunde die X-Koordinate seines Ziels bereits erreicht hat und in Y-Richtung ein Hindernis steht. In dem Fall wird dem Kunden eine so genannte ‚Zwangsrichtung’ vorgegeben. Das Hindernis wird dahingehend analysiert, ob der Weg links oder rechts um das Hindernis herum vom aktuellen Standpunkt aus kürzer ist. Ist der kürzere Weg ermittelt, wird dem Kunden eine Zwangsrichtung gesetzt, die ihn zwingt, sich gegen seine eigentliche Lauflogik zu bewegen. Er verlässt also wieder die bereits erreichte X-Koordinate und läuft so lange an dem Hindernis entlang, bis der Weg in Y-Richtung frei ist. Dann wird die Zwangsrichtung aufgehoben und die normale Lauflogik setzt wieder ein. Ein Problem, welches mit dieser Logik auftritt, ist z.B., dass ein Kunde aus einer Sackgasse nicht mehr herausfindet. Dieses Problem besteht auch noch in der aktuellen Implementation. Stufe 2 Abbildung 8 - Screenshot Implemetationsstufe 2 In der nächsten Stufe wurde der komplette Ablauf vom automatischen Erstellen der Kunden über deren Einkauf bis hin zum Kassieren an der Kasse umgesetzt. Zusätzlich wurden die ersten eigens erstellten Grafiken für das Supermarkt Szenario eingepflegt. Dadurch musste die Kollisionsabfrage in der Lauflogik aufgrund der neuen Grafiken neu geschrieben werden, da die ersten Testgrafiken, wie oben beschrieben, unglücklich gewählt wurden. Diese Version war die erste Testversion, die wir im Projekt veröffentlicht haben. Einkaufs- / Kassierlogik Jeder zufällig erstellte Kunde erscheint ausgerüstet mit einem Einkaufszettel im Eingangsbereich und arbeitet autonom seinen Einkaufszettel im Supermarkt ab. Dazu wird die nächste Ware vom Einkaufszettel gelesen und über die Ware die Zielkoordinate des zugehörigen Regals ermittelt. Erreicht der Kunde dann die Zielkoordinate, wird die Ware als 15
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz gekauft gekennzeichnet. Waren, von denen kein Regal im Supermarkt vorhanden ist, werden als nicht-erhältlich gekennzeichnet. Ist der Einkaufszettel abgearbeitet, wird die Kasse als Ziel gesetzt. An der Kasse angekommen, ruft der Kunde die Kasse auf und übergibt den Einkaufszettel. Der Kunde geht dann in einen Wartezustand über bis er von der Kasse mit ‚kassieren-fertig’ aufgerufen wird. In dieser Zeit analysiert die Kasse den Einkaufszettel und errechnet anhand der Stückzahl und den hinterlegten Preisen der Waren den Umsatz für diesen Kunden. In dieser Version war der Kassiervorgang jedoch noch ohne Zeitverzug. Danach ruft die Kasse den Kunden wieder auf und dieser bekommt den Ausgang als nächstes Ziel zugewiesen. Am Ausgang wird der Kunde automatisch aus der Welt entfernt. Stufe 3 Abbildung 9 - Screenshot Implemetationsstufe 3 In Stufe 3 wurde der Supermarkt um weitere Regale und Waren erweitert. Aber es wurden auch unterschiedliche Kundentypen, die sich in ihrer Laufgeschwindigkeit und der Bezahlzeit unterscheiden, eingepflegt. Zudem wurde neben der normalen Kasse auch eine Expresskasse erstellt, die die Kunden nur mit einer maximalen Anzahl von 10 Artikeln ansteuern dürfen. Entscheidend auf dieser Stufe ist die Implementation von Wartezeiten an den Kassen und die Realisierung von Warteschlangen an den Kassen. Bezahlvorgang / Warteschlangenlogik Nachdem eine Kasse von einem Kunden zum Kassieren aufgerufen wird, errechnet sie anhand der übergebenen Einkaufsliste und der kundenspezifischen Bezahlzeit die gesamte Bezahlzeit. Die kundenspezifische Bezahlzeit hängt davon ab, von welchem Kundentyp das aktuelle Kundenobjekt ist. Nachdem die gesamte Bezahlzeit verstrichen ist, ruft die Kasse den Kunden wieder auf und beendet den Kassiervorgang. Die Bezahlzeit ist keine reale Zeit, sondern eine Anzahl von act-Aufrufen, die die Kasse verstreichen lässt. Durch den Zeitverzug beim Bezahlvorgang ist es auch nötig, Warteschlangen an den Kassen zu realisieren. Dazu hat jeder Kunde Variablen für einen Vorgänger und Nachfolger. Ist die Kasse leer und ein Kunde fragt nach den Zielkoordinaten der Kasse, bekommt er die direkten Koordinaten der Kasse. Der erste Kunde stellt sich vor die Kasse und wartet darauf, dass sein 16
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Einkaufszettel kassiert wird. Die Kasse merkt sich in dieser Zeit, welcher Kunde bei ihr steht. Fragt nun ein neuer Kunde nach den Kassenkoordinaten, so bekommt er die Koordinaten des letzten Kunden in der Schlange. Dies ist so realisiert, dass immer der Nachfolger abgefragt wird, bis es keinen mehr gibt. Diese Position muss die letzte in der Schlange sein. Der neue Kunde versucht nun die Position des letzten Kunden zu erreichen, bis er in Berührung mit diesem ist. Ist der erste Kunde in der Schlange abkassiert, löscht er seine Vorgängerposition beim zweiten Kunden und verlässt die Kasse Richtung Ausgang. Der zweite Kunde erkennt, dass er nun der Vorderste in der Schlange ist und rückt auf die ebenfalls gespeicherten Kassenkoordinaten auf und beginnt mit dem Bezahlvorgang. Der neue Zweite in der Schlange erkennt, dass er nicht mehr in Berührung mit dem Vorgänger steht und versucht wieder dessen Position zu erreichen. So zieht sich das durch die komplette Warteschlange durch bis alle aufgerückt sind. Stufe 4 Abbildung 10 - Screenshot Implemetationsstufe 4 In der letzten Stufe vor der aktuellen Version wurden neben der ständig aktualisierten Grafik die ersten Elemente der Wirtschaftlichkeitsbetrachtung und der Statistik eingebaut, sowie die Funktion der Spontankäufe umgesetzt. Wirtschaftlichkeit Wie oben bereits beschrieben, berechnet jede Kasse die Umsätze, die sie an einem Kunden macht. Diese werden ständig aufaddiert und über alle Kassen akkumuliert. Die Kosten in dem Supermarkt ergeben sich aus den Kosten der Kassen und der Regale. Jede Kasse kostet pro Stunde, sofern sie aktiviert ist, einen gewissen Betrag. Auch hat jedes aufgestellte Regal einen Stundensatz, welcher zu den Gesamtkosten beiträgt. Die Kosten für die Kassen und Regale sind jedoch nicht typabhängig, sondern jede Kasse kostet den gleichen Satz und jedes Regal den Gleichen. 17
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Spontankäufe Auf dem Weg durch den Supermarkt ist jeder Kunde nun in der Lage, Waren zu kaufen, die nicht auf seinem Einkaufszettel stehen. Nach einer gewissen Anzahl Schritten scannt der Kunde dazu seine Umgebung mit einem festen Radius. Trifft er dabei auf Regale, wird zufällig eines ausgewählt. Dieses Regal wird nun mit der Methode spontanKauf aufgerufen. Jeder Regaltyp hat als Attribut eine Spontankaufwahrscheinlichkeit, die darüber entscheidet, ob ein Kunde, der einen Spontankauf versuchen will, dies auch wirklich tut. Reagiert das Regal positiv auf den Versuch einen Spontankaufs, so gibt es eine zufällig ermittelte Ware zurück, die in diesem Regal zu kaufen ist. Der Kunde ermittelt dann zufällig eine Stückzahl, welche mit der Ware dem Einkaufszettel als gekauft markiert hinzugefügt wird. 3.2.2 Aktuelle Implementation Abbildung 11 - Screenshot Implemetationsstufe 5 Stufe 5 Die letzte und aktuelle Implementationsstufe zeichnet sich vor allem dadurch aus, dass Fehler beseitigt wurden, fehlenden Grafiken für Objekte erstellt und eingebaut wurden und das Szenario hinsichtlich seines Einsatzzweckes erweitert und optimiert wurde. So soll die Wirtschaftlichkeitsbetrachtung und Optimierung eines Supermarktes durch den Anwender eine große Rolle spielen. Zu diesem Zweck enthält der Prototyp einen Auswertungsbildschirm, der am Ende eines Szenariodurchlaufes angezeigt wird. Der Supermarkt lässt sich anhand einiger Parameter, wie die gesamt zu erstellende Anzahl an Kunden, die Intervalle, in denen Kunden erstellt werden sollen, die Laufgeschwindigkeit der unterschiedlichen Kunden, die durchschnittliche Größe der Einkaufszettel, usw. nach eigenem Ermessen steuern. Die gesamte Anzahl Kunden steuert dabei indirekt die Länge eines Szenariodurchlaufs. Ist die Anzahl erreicht, werden keine neuen Kunden im Supermarkt erstellt. Verlässt dann der letzte Kunde den Supermarkt, wird der Abschlussbildschirm angezeigt, der nützliche Informationen für die Auswertung und eine Optimierung des Supermarkt-Layouts bietet. 18
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Die Wirtschaftlichkeitsinformationen auf der linken Seite des Bildschirms können vor allem für die Auswertung und den Vergleich des Layouts mit anderen Durchläufen oder anderen Mitbewerbern herangezogen werden. Es kann aber auch Informationen darüber geben, wie gut das Kassenlayout gestaltet ist. Der Eintrag „Kunden ohne Einkauf“ weißt auf Kunden hin, deren Produkte in dem Supermarkt nicht vorhanden sind oder darauf, dass die Kassen zu voll waren. Jeder Kunde besitzt eine tolerierte Maximalschlangenlänge. Wird diese Länge an allen Kassen überschritten, während er den Supermarkt betritt, so begibt er sich sofort wieder Richtung Ausgang. Auch gibt die durchschnittliche Wartezeit Hinweise darauf, dass eventuell wenige Kassen im Einsatz sind. Auf der rechten Seite der Auswertung befindet sich eine Top5 der meistbesuchten Regale. Dabei wird jeder Besuch eines Kunden an einem Regal gezählt, ganz gleich ob es sich um einen geplanten Kauf oder einen Spontankauf handelt. Diese Werte geben einen Hinweis darauf, an welcher Stelle die Artikel in der Liste aller Waren stehen. Über diese Liste wird bei der zufälligen Erstellung des Einkaufszettels eine Normalverteilung gelegt, womit jeder Artikel eine andere Wahrscheinlichkeit erhält. Je weiter ein Artikel in der Mitte der Liste steht, desto wahrscheinlicher erscheint er auf dem Einkaufszettel. Stehen also viele Artikel eines Regals mittig in der Warenliste, könnte dies am Ende einen Einfluss auf die Top5 haben. Einen weiteren Hinweis kann man über die Top5 auf die Spontankaufwahrscheinlichkeit eines Regaltyps bekommen. Beim Durchlauf könnte ein gut platziertes Regal mit hoher Spontankaufwahrscheinlichkeit dazu führen, dass dieses Regal viele Zugriffe hat und dadurch auf der Top5 erscheint. 3.2.3 Architektur In diesem Kapitel wird die Architektur des Supermarkt Prototyps zusammengefasst. Zu diesem Zweck werden zunächst ein reduziertes Klassendiagramm und anschließend der schematische Durchlauf eines Kunden durch den Supermarkt in Form einer Ereignis-Prozess- Kette (EPK) dargestellt. Im Anhang befinden sich die hier aufgeführten Grafiken in höherer Auflösung. 19
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Klassendiagramm Abbildung 12 – Klassendiagramm (eigene Darstellung) Das in Abbildung 12 dargestellte Klassendiagramm zeigt ausschließlich die Namen der Klassen und die Vererbungen, die in unserem Prototyp umgesetzt sind. In blau sind die Greenfoot Klassen dargestellt, die von der Entwicklungsumgebung zur Verfügung gestellt werden, in gelb sind unsere umgesetzten Klassen abgebildet. Unser Supermarkt erbt von der World-Klasse und stellt damit die Rahmenbedingungen für unser Szenario dar. Die Akteure des Szenarios erben von der Greenfoot Klasse Actor. Die Klassen Abschlussbildschirm und Textanzeige dienen dazu, Textbausteine an einem beliebigen Platz im Szenario zu platzieren, sowie den Auswertungsbildschirm am Ende eines Durchlaufes anzuzeigen. Mit Hilfe der Uhr werden zeitkonsumierende Aktionen, z.B. das Kassieren, durchgeführt, wie auch die aktuelle Geschwindigkeit des Szenarios in eine für Menschen nachvollziehbare Darstellung gebracht. Die wichtigsten Akteure sind die Kunden und die statischen Akteure. Die Kundenklasse stellt sämtliche Funktionen aller Kundentypen zur Verfügung. In den erbenden Unterklassen werden lediglich die Grafiken für die spezielle Kundenart eingebunden und deren Kundenspezifischen Attribute Laufgeschwindigkeit und Bezahlzeit eingestellt. Statische Akteure sind in unserem Supermarkt Prototyp die Kassen und die Regale. Es gibt mehrere Gründe für die Erstellung dieser Oberklassen. Funktionen, wie das Drehen eines Objektes um 90° müssen nur einmal implementiert werden. Zudem ist die Lauflogik des Kunden darauf ausgelegt, keine Überschneidungen mit statischen Objekten zuzulassen, was bedeutet, dass er versucht, um alle statischen Objekte herum zu laufen. Der dritte Grund ist das Speichern von Szenarien. Klassen, die von keiner Greenfoot Klasse erben, sind das Speichern und Laden, sowie die Einkaufsliste und die Warenliste. Es gibt die Möglichkeit, das aktuelle Layout des entworfenen Szenarios zu speichern. Dabei werden alle statischen Objekte des Szenarios mit Position und Ausrichtung in einer Textdatei gespeichert. Über die Laden Funktion kann man diesen Zustand wieder herstellen. 20
Projektbericht zur Planung und Umsetzung eines Supermarkt Prototypen in Greenfoot Bozic, Claußen, Dietz Ereignis-Prozess-Kette Notation Abbildung 13 - EPK Notation Die Notation entspricht den Vorgaben von Frauenhofer 2011. Szenario-Ablauf Zum besseren Verständnis ist das EPK-Diagramm zweigeteilt. Im ersten Diagramm ist der Durchlauf von der Erstellung bis zum Entfernen des Kunden am Ende seines Einkaufs dargestellt. Die Komplexität der Warensuche und der Spontankäufe sind im zweiten Diagramm abgebildet. Verknüpft sind beide Diagramme über den Prozesspfad „Kunde sucht Ware“ im ersten Diagramm. Es wird darauf hingewiesen, dass eine ausführliche Beschreibung verschiedener Prozesse im Kapitel 3.2.1 zu finden ist. Abbildung 14 - EPK: Kunde kauft ein (eigene Darstellung) 21
Sie können auch lesen