SE1: Technische Systeme

In diesem Semester bin ich Hiwi für die Lehrveranstaltung SE1. Dabei darf ich Übungsstunden halten und Übungsblätter korrigieren und abnehmen. Wenn das von „meinen“ Studenten entsprechend angenommen wird, werde ich hier das ein oder andere online stellen. Und vielleicht ist das ja auch für andere interessant.

Hinweis für die SE1-Leute

Das, was ich hier schreibe ist inoffizielles Zusatzmaterial. Es kann euch vielleicht für die Klausur (und/oder darüber hinaus) helfen, aber ihr werdet euch vermutlich nicht darauf berufen können. Im Zweifel gilt nicht das, was hier steht, sondern das Skript bzw. die Vorlesung.

Anmerkungen jeglicher Art sind gerne gesehen. Persönlich, per Mail oder auch als Blog-Kommentar. Wie immer gilt: Bei Fragen: fragen.

Bei der Korrektur des ersten Übungsblattes ist mir aufgefallen, dass vielen die Definition von System, technischem System und Softwaresystem nicht ganz klar war. Im Skript wird das leider nicht ganz so deutlich. Ich habe das in der Übungsstunde schon erklärt, aber hier nochmal für die Akten:

System

Ein System ist ein Ganzes, das aus Teilen besteht, die miteinander interagieren. Das System lässt sich dabei klar von seiner Umgebung abgrenzen.

Das hört sich schwammig an und das ist es auch in einer gewissen Weise. Aber das ist nunmal ein System. In gewisser Weise hängt es also vom Betrachter ab, was ein System ist und was nicht.

Beispiele: Ökosystem, Auto, Mensch, Nervensystem, Herzschrittmacher, Computer, Internet, WWW, Firefox, Taschenrechner, …

Ein Stück Kreide ist hingegen kein System. Besser gesagt: Ein Stück Kreide wird normalerweise nicht als System betrachtet, weil es keine Teile hat, die miteinander wechselwirken.

Von einem gewissen Standpunkt aus gesehen kann man aber selbst das Stück Kreide als System betrachten. Kreide besteht (laut Wikipedia) aus Gips oder Magnesiumoxid. Gehen wir vom chemisch einfacheren Magnesiumoxid aus. Unser Stück Kreide besteht demnach aus Mg^{2+}– und O^{2-}-Ionen, die aufgrund ihrer unterschiedlichen Ladung eine Gitterstruktur bilden. So gesehen ist das Stück Kreide ein Ganzes. Es besteht aus verschiedenen Teilen (den genannten Ionen) und diese Teile wechselwirken aufgrund ihrer elektrischen Anziehungskräfte. Außerdem lässt sich das Stück Kreide leicht von seiner Umgebung abgrenzen. Es ist klar, was zur Kreide gehört und was nicht. So gesehen erfüllt das Stück Kreide alle Anforderungen.

Normalerweise betrachtet man ein Stück Kreide jedoch nicht als System. Was also nun ein System ist und was nicht hängt vom Betrachter ab.

Ähnlich ist es mit einem Haufen Steine. Dieser besteht zwar aus Teilen, aber man betrachtet selten eine Interaktion zwischen den Steinen. Ein Haufen Steine ist kein System.

„Die Menge der Studenten, die eine Brille tragen“ würde man i.d.R. auch nicht als System auffassen. Hier gibt es zwar Teile, die miteinander interagieren (eben die Studenten), aber diese Menge ist nicht hinreichend abgegrenzt. Es gibt keinen Grund, warum Studenten mit Brille sich gegenüber Studenten ohne Brille anders verhalten sollten. Die Brillentragenden Studenten bilden kein gemeinsames Ganzes. Auch das ist natürlich betrachterabhängig, sollte aber intuitiv klar sein.

Subsystem

Ein Subsystem ist ein Teil eines anderen Systems, wobei dieser Teil wiederum ein System ist bzw. als System betrachtet wird. Ein Auto ist ein System. Und ein Motor ist auch ein System. Dabei ist das System Motor Teil des Systems Auto und demnach ein Subsystem. Eine Schraube (die sich in einem Auto befindet) betrachtet man i.d.R. aber nicht als System. Ähnlich wie das Stück Kreide im obigen Beispiel. Demnach ist eine Schraube also auch kein Subsystem.

Auch hier gibt es natürlich viel Raum für die Interpretation durch den Betrachter: Zu fast jedem System findet sich ein Subsystem und ein System zu dem es Subsystem ist.

Technisches System

Ein technisches System ist ein System, das schlicht und einfach technisch ist. Es ist von Menschen auf technische Weise geschaffen. Ein technisches System ist also eine spezielle Art von System. Zudem kann ein technisches System Teil eines weiteren technischen oder nicht-technischen Systems sein. Das technische System Motor ist Teil des technischen Systems Auto. Und das Auto ist Teil des nur teilweise technischen Verkehrssystems.

Softwaresystem

Ein Softwaresystem ist ein technisches System, das auf Software basiert. Da Software nicht aus sich selbst heraus funktionsfähig ist, sondern immer eine Hardware-Plattform braucht, ist ein Softwaresystem immer Teil eines größeren technischen Systems, das aus Hardware und Software besteht. Wie oben erwähnt ist aber fast jedes System Teil eines anderen.

Offenes System

Ein offenes System interagiert im Gegensatz zu einem geschlossenen System mit seiner Umwelt. In der Informatik werden i.d.R. ausschließlich offene Systeme betrachtet, da sich nur offene Systeme von Menschen benutzen lassen. Geschlossene Systeme sind quasi langweilig, weil sie weder Eingaben entgegen nehmen, noch Ausgaben liefern.

Dass ein Softwaresystem Schnittstellen nach außen hat, ist also nichts, was besonders für ein Softwaresystem wäre. Jedes offene System interagiert mit seiner Umwelt. Nur sind die Schnittstellen bei einem Softwaresystem besonders wichtig.

Was nun noch als geschlossenes System betrachtet wird und was nicht (man erinnert sich vielleicht an den Chemie-Unterricht) liegt auch wieder im Auge des Betrachters. Dennoch kann man sagen, dass (ideale) geschlossene Systeme hauptsächlich theoretische Konstrukte sind.

Programm

Ein Programm ist eine strukturierte Ansammlung von Befehlen, die ein technisches System anweisen, was es tun soll. Programme beschreiben somit das Verhalten von Systemen. Meist ist ein Programm als Text in einer Programmiersprache verfasst. Es lassen sich jedoch auch Programme direkt in Maschinensprache schreiben. (Das tut aber keiner.) Zudem gibt es auch grafische Programmiersprachen, d.h. ein Programm muss nicht zwangsweise ein „Text“ sein.

Nicht ganz richtig

Nicht ganz richtig sind also beispielsweise folgende Aussagen:

  • „Ein Softwaresystem ist ein großes Programm“: Das WWW ist ein Softwaresystem, ist aber kein Programm. Gleichwohl beschreiben viele Programme gemeinsam (Webserver, Browser, etc.) das Verhalten des Systems WWW.
  • „Programme sind Softwaresysteme“: Ein HelloWorld-Programm ist ein Programm, wird aber normalerweise nicht als System betrachtet. Es hat einfach keine nennenswerten Teile.
  • „Technische Systeme lassen sich ohne Softwaresysteme nicht nutzen.“ Ein Fahrrad ist ein technisches System. Software braucht es aber nicht. Umgekehrt kann man aber ein Softwaresystem nur nutzen, wenn aus auf einer Hardwareplattform läuft. Diese Hardwareplattform ist ein technisches System. Wie das Softwaresystem im Übrigen auch.
  • „Ein Programm ist immer in einer Programmiersprache verfasst. Genau genommen ist das in Maschinensprache übersetzte Programm kein Programm mehr.“: Die Sprache spielt keine Rolle. Wichtig ist nur, dass das System, das das Programm ausführt, letztendlich etwas damit anfangen kann. Ein übersetztes Programm ist genauso ein Programm wie das, was der Programmierer eingetippt hat.
  • „Ein technisches System ist ein Gegenstand“: Das WWW ist ein technisches System, aber kein Gegenstand.
  • „Eine typische Eigenschaft eines Softwaresystem ist, dass es sequenziell und nicht verteilt ist.“ Das sind Eigenschaften von *einfachen* Softwaresystemen. Also solchen, wie sie in der SE1 betrachtet werden. Selbstverständlich sind verteilte nebenläufige Softwaresysteme auch Softwaresysteme.
  • „Technische Systeme sind physisch, Softwaresysteme nicht.“: Softwaresysteme sind technische Systeme. Ergo: Es gibt auch nicht-physische technische Systeme.

Definitionen

Noch ein kleiner Hinweis allgemein zu Definitionen: In manchen Vorlesungen erhält man leider den Eindruck, dass Definitionen eine einzig-wahre Lehrmeinung darstellen. Dem ist nicht so. Viele der Definitionen, die man in Vorlesungen als Klausurstoff vorgesetzt bekommt, sind sind eben genau eines: Definitionssache. Sie existieren in diversen Varianten, die sich teilweise nur in der Wortwahl teilweise aber auch inhaltlich unterscheiden. Dabei wird nicht notwendigerweise die am weitesten verbreitete Variante gelehrt, sondern die, die dem Dozenten am sinnvollsten erscheint oder ihm am besten gefällt.

Es ist nicht selten, dass man an der selben Uni für den gleichen Begriff zwei unterschiedliche und sich womöglich sogar widersprechende Definitionen lehrt. Das ist insoweit nicht weiter tragisch, als dass dies eben auch die wissenschaftliche Realität darstellt. Es gibt eben unterschiedliche Meinungen und das ist auch normal und richtig so. Nichtsdestotrotz wäre es schön, wenn in den einzelnen Vorlesungen auch darauf hingewiesen würde. Deshalb tue ich es jetzt hier. 😉

Bei den obigen Definitionen bin ich der Meinung, dass sie die verbreitete Meinung darstellen und außerdem recht intuitiv sind. Ich habe natürlich keine Beweise für die Verbreitung der dargestellten Sichtweise auf die genannten Begriffe und selbstverständlich beanspruchen „meine“ Definitionen nicht mehr Wahrheit als alle anderen. Sie sind nur eine von vielen Sichtweisen. Ich finde sie aber hilfreich.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.