In dieser Phase wird die Aufgabenstellung analysiert, um die Bedürfnisse des Kunden besser verstehen zu können. In einer Prioritätenliste werden Muß- und Wunschkriterien aufgestellt, die durch das zu erstellende Programm realisiert werden sollen. Anhand von Use-Case-Diagrammen wird aufgezeigt, welche Personen agieren und welche Dienste des Programms sie in Anspruch nehmen sollen. Im Anschluß daran findet das Kundengespräch statt, in dem die festgelegten Funktionen des Programms mit dem Kunden abgesprochen und ggf. an seine Wünsche angepaßt werden. Mit Hilfe von CRC-Karten werden erste Klassenkandidaten aufgestellt und in einem Klassendiagramm miteinander in Beziehung gesetzt. Die veränderte Prioritätenliste und die CRC-Karten sind Grundlage für die Erstellung eines Pflichtenheftes. Einige Sequenzdiagramme zur Darstellung komplizierter Anwendungsfälle bilden den Abschluß der Analyse-Phase.

Am Anfang des Projektes wird die Aufgabenstellung analysiert. Diese liegt meist in Prosa vor und die Wünsche des Kunden kommen oft nicht eindeutig zum Ausdruck. Mit Hilfe der Analyse versucht man die Wünsche des Kunden herauszufiltern, zu präzisieren und stichpunktartig in einer Prioritätenliste zusammenzufassen. Dabei wird vom Team entschieden, welche Anforderungen als Muß-, und welche als Wunschkriterien aufgelistet werden. Mußkriterien umfassen die zentralen Funktionen des Programms, die auf jeden Fall realisiert werden müssen, um das Programm lauffähig zu machen. Unter Wunschkriterien werden die Punkte zusammengefaßt, die eher die Ausbaumöglichkeiten des Programm beschreiben. Das Team sollte sich bemühen sowohl die Muß-, als auch die Wunschkriterien in der Implementationsphase zu realisieren. In Analyse und Entwurf sind alle Kriterien zu berücksichtigen!

Die Aufgabenstellung für das Restaurant gliedert sich in drei große Bereiche: die Kunden, die Kellner und die Verwaltung. Aus den einzelnen Bereichen werden die Anforderungen herausgesucht und in eines der zwei Kriterien einsortiert.

Es wird mit den Kunden begonnen. Sie sollen Speisen und Getränke bestellen können. Ohne diese Funktion wird das Restaurant nicht seinen Zweck erfüllen, deshalb wird der Punkt in die Mußkriterien aufgenommen. Die Identifizierung der Speisen und Getränke durch Nummern zählt ebenfalls zu den wichtigen Bestandteilen des Programms. Die geforderte freie Zusammenstellung der Speisen ist weniger wichtig. Ein Programm kann auch ohne diese Flexibilität arbeiten. Das mag wenig kundenfreundlich sein, aber der Punkt wird trotzdem in die Wunschkriterien aufgenommen. Um ein funktionierendes Abrechnungssystem bei den Bestellungen zu schaffen, ist folgender Punkt unerlässlich: Tische und ggf. Kunden werden durch Nummern identifiziert. Das Erstellen der Rechnung ist ebenfalls ein Mußkriterium, da das Restaurant sonst in kurzer Zeit Konkurs anmelden muß.

Die Kunden

Die Prioritätenliste sieht nach diesem Schritt wie folgt aus:

Die Prioritätenliste


          
Mußkriterien:
          
  • Kunden bestellen Speisen und Getränke
  • Speisen und Getränke werden durch Nummern identifiziert
  • Bestellung pro Tisch(nummer) bzw. pro Kunde (Tischnummer/Kundennummer) mit Weiterleitung an die Küche
  • Rechnungserstellung durch den Kellner
Wunschkriterien:
  • Sonderwünsche

Der Bereich der Kunden ist damit abgedeckt. Der nächste Schritt führt zu Funktionen, die das Programm für die Kellner bieten soll.

Jede Kellner verwaltet seinen eigenen Geldbeutel. Bezahlen die Kunden ihre Rechnung, fließt das Geld inklusive der Trinkgelder dort hinein. Für die Kontrolle der Kellner und eine Abgrenzung ihres Arbeitsbereichs untereinander ist dieser Punkt genauso wichtig, wie die personengebundene Abrechnung am Schichtende. Die Prioritätenliste wird wie folgt erweitert:

Die Kellner


          
Mußkriterien:
          
  • Kunden bestellen Speisen und Getränke
  • Speisen und Getränke werden durch Nummern identifiziert
  • Bestellung pro Tisch(-nummer) bzw. pro Kunde (Tischnummer/Kundennummer) mit Weiterleitung an die Küche
  • Rechnungserstellung durch den Kellner
  • Kellner besitzen ihren eigenen Geldbeutel (enthält Einnahmen, Trinkgeld und Wechselgeld)
  • personengebundene Abrechnung am Schichtende
Wunschkriterien:
  • Sonderwünsche

Der letzte Bereich, der in die Prioritätenliste einfließen soll, ist die Verwaltung des Restaurants.

Die Aufgabenstellung des Kunden sieht vor, beim Tagesabschluß die Vorräte an Speisen und Getränken wieder aufzufüllen. Ohne diesen Schritt könnte das Restaurant bald schließen, denn in der Küche können ohne die Zutaten keine Gerichte angefertigt werden. Der Punkt wird in die Mußkriterien aufgenommen. Zusätzlich soll der Umsatz ermittelt werden. Der Besitzer des Restaurants sieht an diesen Zahlen zwar wie gut sein Geschäft läuft, es hat aber keine Auswirkungen auf die Lauffähigkeit der Anwendung. Deshalb wird die Umsatzermittlung ein Wunschkriterium. Der letzte Wunsch des Kunden ist, daß jederzeit Veränderungen in der Speisekarte vorgenommen werden können. Diese Funktion ist sehr wichtig, da Lebensmittel verderben bzw. die Vorräte erschöpft sein können. Die betroffenden Gerichte sollten dann sofort aus dem Angebot genommen werden.

Die Verwaltung


          
Mußkriterien:
          
  • Kunden bestellen Speisen und Getränke
  • Speisen und Getränke werden durch Nummern identifiziert
  • Bestellung pro Tisch(nummer) bzw. pro Kunde (Tischnummer/Kundennummer) mit Weiterleitung an die Küche
  • Rechnungserstellung durch den Kellner
  • Kellner besitzen ihren eigenen Geldbeutel (enthält Einnahmen, Trinkgeld und Wechselgeld
  • personengebundene Abrechnung am Schichtende
  • Auffüllen der Vorräte beim Unterschreiten gewisser Grenzen durch Bestellungen bei Zulieferern
  • Veränderungen in der Speisekarte
Wunschkriterien:
  • Sonderwünsche
  • Umsatzermittlung

Im Anschluß an die Prioritätenliste werden die Use-Case-Diagramme erstellt. UML unterstützt die Anforderungsdefinition durch Anwendungsfälle (engl. use cases). Ein Anwendungsfall beschreibt ein Stück des Systemverhaltens aus Sicht des Benutzers. Er stellt eine typische Interaktion dar. So wird noch einmal verdeutlicht welche Teile des Programms für welche Nutzer benötigt werden bzw. wie einzelne Teile der Anwendung zusammenarbeiten.

Ein zentraler Bestandteil der Anwendung ist das Bestellen von Speisen und Getränken durch den Kunden. Hat der Kunde seine Auswahl getroffen, gibt er bei einem Kellner seine Bestellung auf. Um dem Kunden eine korrekte Rechnung erstellen zu können, werden alle Kunden in einer Liste (z.B. einem Katalog) verwaltet. Ihnen werden die entsprechenden Bestellungen zugeordnet. Betritt ein neuer Kunde das Restaurant und möchte etwas bestellen, wird er in der Liste angelegt.

Die Bestellung

Der Zutatenbestand wird auf die Verfügbarkeit aller zur Zubereitung benötigten Bestandteile überprüft. Erst wenn alle Zutaten vorhanden sind, gilt die Bestellung als angenommen. Der Kellner leitet die Bestellung an die Küche, hier durch den Koch repräsentiert, weiter. Das folgende Use-Case-Diagramm verdeutlicht diese Zusammenhänge:

Die Bestellung/Nachbestellung
Abbildung 4.1: Die Bestellung/Nachbestellung

Es kann vorkommen, daß ein Kunde z.B. einen wichtigen Anruf erhält und das Restaurant sofort verlassen möchte. In diesem Fall hat er die Möglichkeit seine Bestellung zu stornieren. Wurde die Speise schon gekocht, wird sie als Verlust gemeldet. Anderfalls wird der Koch informiert, daß er die Speise nicht mehr zubereiten muß:

Bestellung stornieren

Eine Bestellung stornieren
Abbildung 4.2: Eine Bestellung stornieren

Will ein Kunde seine Rechnung bezahlen, wird er sie beim zuständigen Kellner anfordern. Dieser stellt sie zusammen und überreicht sie dem Kunden. Der Kunde begleicht seine Rechnung und kann aus der Kundenliste entfernt werden:

Rechnung bezahlen

Die Rechnung erstellen
Abbildung 4.3: Die Rechnung erstellen

Damit die Einnahmen der Kellner individuell abgerechnet werden können, müssen sie sich im Restaurant an- und abmelden können. Ein Kellner kann sich nur abmelden, wenn er keine Tische mehr bedient, d.h. an keinem Tisch von ihm angenommene Bestellungen noch nicht bezahlt wurden. Kann sich der Kellner abmelden, gilt seine Schicht als beendet und seine Einnahmen werden abgerechnet. Das folgende Diagramm stellt die An- und Abmeldung vom Kellner graphisch dar:

An- und Abmeldung der Kellner

Die An- und Abmeldung von Kellnern
Abbildung 4.4: Die An- und Abmeldung von Kellnern

Die Kellner selbst werden vom Manager des Restaurants eingestellt und entlassen:

Angestelltenverwaltung

Der Manager stellt Kellner ein und entläßt sie
Abbildung 4.5: Der Manager stellt Kellner ein und entläßt sie

Beim Zubereiten von Speisen werden die Zutaten aus dem Lager langsam aufgebraucht. Der Manager des Restaurants kann bei Zulieferern die Zutaten bestellen, die benötigt werden. Um ihm die Arbeit etwas zu erleichtern besitzen alle Zutaten als Attribute eine Mindest- und eine Maximalanzahl. Der erste Wert gibt an, wieviel dieser Zutat mindestens benötigt wird, um den Betrieb des Restaurants sicherzustellen. Wird er unterschritten, wird die Zutat automatisch in die Wunschliste aufgenommen. Mit Hilfe der Maximalanzahl, die angibt wieviel dieser Zutat maximal im Lager sein sollte, wird die zu bestellende Menge errechnet. Diese Liste kann vom Manager auch verändert werden um ggf. auf Sonderaktionen, wie "Spargelwochen", einzugehen. Werden die gewünschten Zutaten bestellt, werden sie in die Bestelltliste übernommen. Erfolgt die (Teil-)Lieferung der Zutaten werden sie aus der Bestelltliste entfernt und zum den Lagerbestand hinzugefügt. Bei der Verwaltung des Lagers besteht zusätzlich die Möglichkeit, die Attribute der Zutaten, wie z.B. den Verkaufspreis, zu verändern und verfallene Zutaten zu entfernen.

Lagerverwaltung

Die Lagerverwaltung
Abbildung 4.6: Die Lagerverwaltung

Der Manager kann weiterhin einen Tagesabschluß machen, wenn er das Restaurant am Ende des Arbeitstages schließen möchte. Beim Tagesabschluß kann auf die Lagerverwaltung zugegriffen werden und verschiedene Statistiken können abgefragt werden. Außerdem wird überprüft, ob sich alle Kellner abgemeldet haben.

Tagesabschluß

Der Tagesabschluß
Abbildung 4.7: Der Tagesabschluß

Die Statistiken selbst können angezeigt werden und für geschlossene Zeiträume gelöscht werden:

Statistik

Die Statistik
Abbildung 4.8: Die Statistik

Mit der so erstellten Prioritätenliste und den Use-Case-Diagrammen findet das Kundengespräch statt. Zweck dieser Zusammenkunft ist es, mit dem Kunden die Dokumente durchzusprechen. Dabei wird deutlich, ob es dem Team gelungen ist, alle Wünsche des Kunden aus seiner Aufgabenstellung zu berücksichtigen bzw. ob noch Erweiterungen notwendig sind. Außerdem wird klar, ob der Kunde mit der Aufteilung der einzelnen Punkte in die Muß- und Wunschkriterien einverstanden ist. Am Ende des Gesprächs sollte der Rahmen des Projekts klar umrissen sein. Das Pflichtenheft wird als "Vertrag" zwischen dem Kunden und den Programmierern erarbeitet.

An dieser Stelle wird auf mögliche Veränderungen, die aus dem Kundengespräch hervorgehen können verzichtet.

Mit Hilfe der CRC-Karten-Methode werden erste Klassenkandidaten identifiziert und ihre Aufgaben in der Anwendung festgelegt. Im folgenden sind die enstandenen CRC-Karten aufgelistet. Da die CRC-Karten selbsterklärend sind, wird an dieser Stelle auf weitere Erläuterungen verzichtet.

CRC-Karte: Restaurant
Abbildung 6.1: CRC-Karte: Restaurant

CRC-Karte: Kunde
Abbildung 6.2: CRC-Karte: Kunde

CRC-Karte: Bestellung
Abbildung 6.3: CRC-Karte: Bestellung

CRC-Karte: Rechnung
Abbildung 6.4: CRC-Karte: Rechnung

CRC-Karte: Mitarbeiter
Abbildung 6.5: CRC-Karte: Mitarbeiter

CRC-Karte: Kellner
Abbildung 6.6: CRC-Karte: Kellner

CRC-Karte: Koch
Abbildung 6.7: CRC-Karte: Koch

CRC-Karte: Manager
Abbildung 6.8: CRC-Karte: Manager

CRC-Karte: Tagesabschluß
Abbildung 6.9: CRC-Karte: Tagesabschluß

CRC-Karte: Lager
Abbildung 6.10: CRC-Karte: Lager

CRC-Karte: Zutat
Abbildung 6.11: CRC-Karte: Zutat

CRC-Karte: Speise
Abbildung 6.12: CRC-Karte: Speise

CRC-Karte: Sonderwunsch
Abbildung 6.13: CRC-Karte: Sonderwunsch

Mit Hilfe der Prioritätenliste und den Use-Case-Diagrammen kann das Pflichtenheft erstellt werden.


          
1 Zielbestimmung


Entwicklung einer Software für den Betrieb eines Restaurants im Rahmen des Softwaretechnik-Praktikums

1.1 Mußkriterien
  • Kunden bestellen Speisen und Getränke
  • Kellner nehmen die Bestellung entgegen
  • Rechnungserstellung durch den Kellner
  • Abrechnung einer Bedienungskraft mit dem Restaurant am Ende einer Schicht
  • Tagesabschluß des Restaurants
  • Veränderungen in der Speisekarte
  • Nachbestellung von Zutaten
  • Editieren von Zutaten und Speisen bzw. Getränken
  • Zugriffsrechte
1.2 Wunschkriterien
  • Erstellung von Statistiken
  • Sonderwünsche
1.3 Abgrenzungskriterien
  • keine Echtzeitanwendung
  • keine Beachtung von Wechsel- und Trinkgeldern
  • keine Zuordnung der Nachbestellung zu bestimmte Lieferanten
2 Produkteinsatz

2.1 Anwendungsbereiche
  • Restaurants
2.2 Zielgruppen
  • Mitarbeiter eines Restaurants
2.3 Betriebsbedingungen
  • Restaurantumgebung bzw. PC des Managers
3 Produktumgebung

Das Programm läuft auf einem Arbeitsplatzrechner

3.1 Software
  • Windows NT bzw. 95 (und höher) oder Unix-Betriebssysteme
  • JDK 1.3
  • Framework SalesPoint v3.0
3.2 Hardware
  • PC
4 Produktfunktionen

4.1 Kundebereich

/F10/Kunden bestellen Speisen und Getränke
/F20/Identifizierung von Speisen und Getränken durch Nummern
/F30/die Speisekarte beinhaltet Standardspeisen und Getränke
/F40W/Erfassung von Sonderwünschen bei Zusammenstellung der Speisen
/F50W/Stornierung der Bestellung möglich

4.2 Kellner- und Küchenbereich

/F60/Bestellungsaufnahme mittels Tisch-/Kundennummer
/F70/Abfrage, ob benötigte Zutaten für die Zubereitung der Speise im Lager
/F80/Anzeige bei Eingabe der Bestellung, ob es möglich ist das Gericht bzw. Getränk anzufertigen/auszuliefern
/F90W/änderbarer Preisvorschlag für Sonderwünsche
/F100/Weiterleitung der Bestellung an die Küche und Entfernen der entsprechenden Zutaten aus dem Lager
/F110/Rechnungszusammenstellung nach Tisch-/Kundennummer mit Festhalten der Kellnernummer
/F120W/Stornierung der Rechnung und Meldung als Verlust (wenn die Speise schon zubereitet wurde)
/F130/Anmeldung des Kellners bei Beginn der Schicht mit eigener Kellnernummer
/F140/Abmeldung des Kellners mit automatischer Abrechnung seiner Schicht
/F150W/letzte Abmeldung nur möglich, wenn alles ausgeliefert und alle Bestellungen bezahlt sind
/F160/das Wechselgeld des Kellners verbleibt in seinem Geldbeutel

4.3 Verwaltungsbereich

/F170/die Anzahl der Tische ist bekannt
/F180/pro Tisch laufende ID für unterschiedliche Kundengruppen
/F190/es exisitert ein Lager für die Zutaten
/F200/Restaurantbesitzer nimmt den Lagerbestand auf und verwaltet diesen
/F210/Zutaten können hinzugefügt, gelöscht und in ihren Attributen verändert werden
/F220/die Speisen setzen sich aus Zutaten zusammen
/F230/Speisen können verändert bzw. völlig neu zusammengestellt werden, solange es der Lagerbestand zuläßt
/F240/die Preise für Standardspeisen ergeben sich aus der Summe der Verkaufspreise der einzelnen Zutaten, können aber verändert werden
/F250/Veränderungen in der Speisekarte sind jederzeit möglich
/F260/Tagesabschluß des Restaurants möglich
/F270W/Sonderwünsche werden nicht in der Speisekarte angezeigt und nach Tagesabschluß gelöscht
/F280W/entfernen verfallener Zutaten aus dem Lager bei Tagesabschluß
/F290W/Umsatzstatistik verschiedener Zeiträume
/F300/Verkaufsstatistik
/F310W/Festlegung einer unteren und einer oberen Grenze je Zutat im Lagerbestand
/F320W/bei Unterschreitung der unteren Grenze, Aufnahme in Bestellwunschliste
/F330W/Kontrolle bei Aufnahme der Zutaten in die Wunschliste, ob Zutat schon in der Bestelltliste vorhanden und ob untere Grenze auch mit der noch nachzuliefernden Menge unterschritten ist
/F340W/Bestellwunschliste kann auf Wunsch angezeigt und editiert werden
/F350W/bestellte Zutaten werden aus der Wunschliste entfernt und in der Bestelltliste vermerkt
/F360W/gelieferte Zutaten werden aus der Bestelltliste entfernt und zum Lager hinzugefügt
/F370W/die Lieferkosten der Zutaten werden in der Umsatzstatistik berücksichtigt
/F380/Realisierung von Zugriffsrechten

5 Produktdaten

5.1 Kundendaten

/D10/ein Kunde besitzt eine Kundennummer
/D20/der Kundennummer wird ein Liste mit den Bestellungen des Kunden zugeordnet

5.2 Zutaten

/D30/eine Zutat besitzt einen Namen, eine Mengeneinheit, eine Anzahl, eine Min- und Maxanzahl, einen Einkaufs- und einen Verkaufspreis
/D40/eine Speise besitzt eine Nummer, einen Namen, eine Menge von Zutaten, aus denen sie besteht und einen Verkaufspreis

5.3 Kellner

/D50/Keller werden durch ihre ID eindeutig gekennzeichnet
/D60/jeder Kellner besitzt einen eigenen Geldbeutel

6 Produktleistungen

/L10/
/L20/

7 Benutzungsoberfläche

/B10/standardgemäß ist eine menüorientierte Bedienung vorgesehen
/B20/die Bedienungsoberfläche ist auf Mausbedienung ausgelegt, eine Bedienung ohne Maus soll aber ebenfalls möglich sein

8 Globale Testfälle

Folgende Funktionssequenzen sind zu überprüfen:

/T10/Kellner durch den Manager einstellen, Kellner anmelden und abmelden, Kellner entlassen
/T20/Bestellung eines Kunden inklusive Sonderwunsch durch einen Kellner aufnehmen, einen Teil der Bestellung stornieren, Essen kochen (Koch), Rechnung durch einen Kellner erstellen, Kunde verläßt das Restaurant.
/T30/Tagesabschluß durchführen, Zutatenliste für die Nachbestellung editieren, Zutaten bestellen, Tag weiterschalten, Zutaten werden geliefert
/T40/Statistiken einsehen

Die Sequenzdiagramme zeigen das Zusammenspiel der Klassen.

Funktion

Sequenzdiagramm: Bestellung eines Kunden
Abbildung 8.1: Sequenzdiagramm: Bestellung eines Kunden

Sequenzdiagramm: Rechnung erstellen
Abbildung 8.2: Sequenzdiagramm: Rechnung erstellen

Das Ergebnis der Analysephase ist ein erstes Klassendiagramm (Abbildung 9.1), in dem voraussichtliche Klassen miteinander in Beziehung gesetzt werden. Die Klassen des Frameworks spielen in dieser Phase noch keine Rolle.

Das erste Klassendiagramm
Abbildung 9.1: Das erste Klassendiagramm

Das Restaurant stellt den zentralen Punkt der Anwendung dar. Es beschäftigt Mitarbeiter, die verschiedene Aufgaben zu erfüllen haben. Da sie sich alle durch eine ID und ein Passwort identifizieren müssen, besitzen sie eine gemeinsame Oberklasse. Kunden tätigen Bestellungen und bezahlen Rechnungen in Anwesenheit eines Kellners. Der Manager verwaltet die Bestände und führt einen Tagesabschluß durch. Das Restaurant besitzt ein Lager, in welchem alle vorhandenen Zutaten aufbewahrt werden. Die Speisen setzen sich aus Zutaten zusammen. Werden bestimmte Mindestmengen bei den Zutaten unterschritten, können sie nachbestellt werden.

Restaurant

Aufgabenstellung Entwurf

last modified on 27.02.2002
by ch17