Dienstag, 20. Mai 2014

Was ist ein Software Service

Was ist (ein Software-)Service ?

Allgemein: Im Cafe

Beim Ober eine Portion Sahne für den Kuchen nachbestellen.

Warten.

Der Ober bringt eine passende Portion Sahne in einem Schälchen und setzt es auf die Rechnung für meinen Tisch.

Beim Ober die Rechnung bezahlen.

Mit Ober (Software Service)


Ober ober = call_ober();

Schaelchen schaelchen_sahne = ober.order ("Portion Sahne");

Rechnung rechnung = ober.get_rechnung(this); // this: Daran erkennt der kluge Ober die Tischnummer ...

Geld wechselgeld = ober.bezahlen(rechnung, this->get_geld(rechnung.betrag));

Ohne Ober (alles selbst durchfuehren)

Ober: gibt es nicht, d.h. kein Service verfuegbar.

Man muss selbst die Kueche, darin die Sahne, den Mixer und eine Schuessel suchen. Leider gibts keinen Strom... Daher wird von hand geruehrt, wenn man denn den Schneebesen gefunden hat.

Nach einer zweiwoechigen Schulung hat man innerhalb von einer Stunde selbstaendig die Registrierkasse bedient und bezahlt. Niemand kontrolliert, ob der volle Betrag bezahlt wurde oder nicht. Und keiner raeumt die Kueche auf...

Das Programm, das diesen Pseudocode umsetzt, wird unnoetig komplex und greift auf Interna des Restaurants zu. Man stelle sich vor, der Gast eines echten Restaurants darf an die Kasse!

Konsequenzen fuer die SW Entwicklung

Der Ober nimmt alle Anfragen des Gastes entgegen und ist der Vermittler zwischen dem Restaurant (Kueche, Abrechnung, ...) und dem Gast.

D.h. der Ober implementiert die Service-Schnittstelle zum Restaurant.

Genauso sollte man es auch implementieren:

Der Gast stellt eine Anfrage, und der Ober setzt diese in Aktionen im Restaurant um:

Gast: Bestellung abwickeln

  1. Ober: Bestellung entgegen nehmen
  2. Kueche: Sahne herstellen
  3. Kasse: Sahne auf Rechnung setzen
  4. Ober: Sahne liefern

Gast: Bezahlen

  1. Ober: Zahlwunsch entgegennehmen
  2. Kasse: Rechnung ausdrucken
  3. Ober: Rechnung liefern
  4. Gast: Rechnung beim Ober begleichen
  5. Ober: Geld in Kasse einzahlen
Ralf Peine, 2014