Technology
12. Juli 2017

Software-Architektur: Zerschneide nicht den Elefanten – erschaffe lieber ein Paradies

Passende Themen: Software-Architektur, Software-Design, Softwaremodellierung

Wenn jemand über Software-Architektur nachdenkt, bekommt er häufig die Empfehlung, den Elefanten in Scheiben zu schneiden (“slice the elephant”). Z.B. wenn Du einen kleinen, aber feinen Haustier-Shop entwerfen möchtest, musst Du ihn in einzelne Scheiben schneiden.

Aber für mich klingt „Schneide den Elefanten in Scheiben“ sehr fremd: Auch ein Elefant in Scheiben ist schwierig zu handhaben. Denn auch die Scheiben können sehr groß sein (selbst wenn sie wesentlich kleiner sind, als der ursprüngliche Elefant). Mehr noch: Die Scheiben gehören nur zu einem spezifischen Elefanten.

Statt den Elefanten zu zerteilen, ist es in der Software-Architektur besser, spezifische Funktionen zu entwerfen, die sich woanders wiederverwenden lassen.
Statt den Elefanten zu zerteilen, ist es in der Software-Architektur besser, spezifische Dienste zu entwerfen, die sich überall verwenden lassen.

In diesem Moment denkst Du wahrscheinlich: Worüber redet die eigentlich? Ich rede über Software-Entwurf.Auch wenn Du den Elefanten in Scheiben schneidest und eine sogenannte n-tier Software entwirfst, bekommst Du einen Monolithen am Ende. Auch wenn Du Schnittstellen benutzt, funktionieren diese Schnittstellen nur in Deinem spezifischen Fall von Software. Andere Teile Deiner Infrastruktur können Deine Services nicht benutzen, da sie spezifisch für Deinen Entwurf sind. Das heißt, wenn Du nur Scheiben eines Elefanten hast und Du fügst sie zusammen, dann bekommst Du niemals eine Maus oder noch nicht einmal einen anderen Elefanten.

Wenn Du aber spezifische Funktionen Deines E-Commerce-Shops entwirfst, wie etwa Suche oder Detail-Ansichten, dann wirst Du wahrscheinlich in der Lage sein, sie nicht nur in Deinem Haustier-Shop, sondern z.B. auch in einem virtuellen Kunstmuseum zu verwenden.

Also, erschaffe ein Paradies mit unabhängigen Teilen – Bäume mit Früchten, Affen und Eseln, Blumen und Gras, Katzen und Mäuse, Schafe und Ziegen, der Schlange 🙂 und so weiter. Alle Pflanzen und Tiere können für sich selbst existieren, obwohl sie miteinander interagieren. Die Ziegen fressen das Gras oder die Affen die Früchte von den Bäumen. Aber es ist ein Paradies, daher fressen die Katzen die Mäuse nicht 🙂 . Wir wollen Services entwerfen, die unabhängig voneinander funktionieren, aber die miteinander arbeiten können.

Das Software-Architektur-"Paradies": Services, die unabhängig von einander funktionieren, aber miteinander arbeiten können.
Das Software-Architektur-„Paradies“: Vielfältige Services, die unabhängig von einander funktionieren, aber miteinander arbeiten können.

Also: Schneide den Elefanten nicht in Scheiben, sondern erschaffe ein Paradies, in dem vielleicht auch der Elefant leben kann 🙂 .

annegret

Dr. Annegret Junker

Dr. Annegret Kampe arbeitete bis Ende Oktober 2017 als Enterprise Architect Cloud bei SupplyOn.

2 thoughts on “Software-Architektur: Zerschneide nicht den Elefanten – erschaffe lieber ein Paradies

  1. Marin sagt:

    Hallo, komme leider nicht mit diesem Textteil so draus.

    „Wenn Du aber spezifische Funktionen Deines E-Commerce-Shops entwirfst, wie etwa Suche oder Detail-Ansichten, dann wirst Du wahrscheinlich in der Lage sein, sie nicht nur in Deinem Haustier-Shop, sondern z.B. auch in einem virtuellen Kunstmuseum zu verwenden.“

    Also, ein Kunde von mir hat einen Tierfutter Webshop. Es wäre hilfreich wenn man seine Suchfunktion auf dem Shop so ausbaut damit es zum virtuellen Kunstmuseum wird?

    Ich weis, die Frage ist ein bisschen komisch, ich versuche es mir auch immer bildlich wie im obigen Text zu merken.

    1. Anja Weber sagt:

      Naja, nicht ganz 🙂 Es geht einfach darum, einzelne Funktionen, wie etwa die Suche, möglichst universell zu konzipieren. Denn dann kann man diese Funktionen nicht nur im Tierfutter-Shop verwenden, sondern auch für (nahezu) jede beliebige andere Website oder Webshop. Das macht vor allem dann Sinn, wenn man nicht nur eine Website hat bzw. als Programmierer / Dienstleister / Lösungsanbieter nur einen einzigen Kunden, sondern mehrere (z.B. neben dem Tierfuttershop noch ein Kunstmuseum)… Dann spart man sich nämlich die Arbeit, jedesmal das Rad neu erfinden zu müssen…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

zwei × drei =

Zum Seitenanfang