Forensisches Reverse Engineering - Marco Siegert - E-Book

Forensisches Reverse Engineering E-Book

Marco Siegert

0,0

Beschreibung

In der digitalen Forensik setzen Sicherheitsbehörden im zunehmenden Maße auch Reverse Engineering ein. Auf den ersten Blick scheint der Fokus hierbei auf der Analyse von Schadsoftware und dem Aufspüren und Ausnutzen von systemseitigen Fehlern und Schwachstellen zu liegen. Bei genauerer Betrachtung lassen sich mittels Reverse Engineering jedoch vor allem auch forensische Erkenntnisse über Softwaresysteme und digitale Spuren in solchen Systemen gewinnen. Reverse Engineering ist für die digitale Forensik daher von fundamentaler Bedeutung. Durch den Autor wird die These vertreten, dass sich in der digitalen Forensik ein Fachgebiet "Forensisches Reverse Engineering" abgrenzen lässt. Auf dieser Grundlage wird herausgearbeitet, welche besonderen Herausforderungen im forensisch motivierten Reverse Engineering bestehen. Analog zur Softwaretechnik zeigen sich diese offensichtlich in der Kommunikation zwischen Menschen bei der Modellierung und Beschreibung von Softwaresystemen. Im Weiteren werden Ansätze vorgestellt, wie Systemmodellierung im forensischen Reverse Engineering eingesetzt werden kann. Das Buch bietet eine Einführung in die Systemmodellierung, in die klassische und digitale Forensik bzw. Kriminaltechnik sowie in das klassische und forensische Reverse Engineering.

Sie lesen das E-Book in den Legimi-Apps auf:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 484

Veröffentlichungsjahr: 2017

Das E-Book (TTS) können Sie hören im Abo „Legimi Premium” in Legimi-Apps auf:

Android
iOS
Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Marco Siegert, geboren 1978 in Lutherstadt Wittenberg. 1996 Abitur am Albert-Schweitzer-Gymnasium in Coswig (Anhalt). 1997 bis 2000 Studium an der Fachhochschule der Polizei des Landes Brandenburg im Studiengang für den gehobenen Polizeivollzugsdienst. Abschluss als Diplom-Verwaltungswirt. 2002 bis 2006 Studium am Hasso-Plattner-Institut für Softwaresystemtechnik der Universität Potsdam. Abschluss als Bachelor of Science in Software Engineering. 2011 bis 2016 Studium im Masterstudiengang Digitale Forensik an der Hochschule Albstadt-Sigmaringen. Abschluss als Master of Science in Digitale Forensik. 2005 bis 2011 Projektleiter für die Internetwache der Polizei des Landes Brandenburg. 2012 bis 2013 Sachbearbeiter im Landeskriminalamt der Polizei des Landes Brandenburg mit dem Arbeitsschwerpunkt Mobilfunkforensik. Seit 2014 Sachbearbeiter im Bundespolizeipräsidium für Grundsatzangelegenheiten und Systementwicklung in der digitalen Forensik.

Inhalt

Abstract

Danksagung

Geleitworte

Abkürzungen

Abbildungen

Tabellen

Definitionen

Einleitung

Systemmodellierung

Klassische Forensik

Reverse Engineering

Forensisches Reverse Engineering

Fazit

Glossar

Literatur

Register

Abstract

Polizeibehörden setzen in der digitalen Forensik im zunehmenden Maße auch Reverse Engineering ein. Auf den ersten Blick scheint hierbei der Fokus auf der Analyse von Schadsoftware und dem Aufspüren und Ausnutzen von systemseitigen Fehlern und Schwachstellen zu liegen. Hierbei wird jedoch übersehen, dass sich mittels Reverse Engineering auch forensische Erkenntnisse über Softwaresysteme und digitale Spuren in solchen Systemen gewinnen lassen. Reverse Engineering ist für die digitale Forensik daher von fundamentaler Bedeutung. In der Arbeit wird die These vertreten, dass sich ein entsprechendes Fachgebiet Forensisches Reverse Engineering abgrenzen lässt. Es wird herausgearbeitet, dass sich aus einem forensisch motivierten Reverse Engineering eine Reihe von besonderen Herausforderungen ergeben. Analog zur Softwaretechnik zeigen sich diese insbesondere bei der Modellierung, Beschreibung und Kommunikation über Softwaresysteme. Die Arbeit befasst sich auch mit der Rolle der Systemmodellierung bei der Bewältigung dieser Herausforderungen. Im ersten Teil der Arbeit werden zunächst die erforderlichen Grundlagen der Systemmodellierung, der klassischen Forensik und des Reverse Engineerings aufbereitet. Hierbei wird auf eine bewährte Systemtheorie für programmierte digitale Systeme und eine allgemeine Modelltheorie zurückgegriffen. Die Grundlage für die klassische Forensik bilden deren Einbettung in das deutsche Strafverfahren sowie eine Theorie über klassische Spuren. Im zweiten Teil der Thesis wird ein eigener Ansatz zur Abgrenzung eines Fachgebietes Forensisches Reverse Engineering entwickelt. Auf der Basis einer erweiterten Theorie über digitale Spuren wird nicht nur den Gegenstand des Fachgebietes präzisiert, sondern auch dessen innere Systematik. Hierbei bilden die zuvor eingeführte Systemtheorie, Modelltheorie und die klassische Spurentheorie den begrifflichen und konzeptionellen Rahmen. Die Bezüge zur Systemmodellierung, zur klassischen Forensik sowie zum Reverse Engineering werden hergestellt und die kommunikativen Herausforderungen beschrieben. Abschließend wird herausgearbeitet, wie Systemmodellierung bei deren Bewältigung helfen kann.

Danksagung

Nachdem ich im Oktober 2011 das berufsbegleitende Masterstudium „Digitale Forensik“ an der Hochschule Albstadt-Sigmaringen begonnen hatte, wurde mir sehr schnell bewusst, dass dieses Vorhaben weniger mit einem „Kurzstreckenlauf“, sondern vielmehr mit einem „Marathon“ vergleichbar ist. Meine Vermutungen haben sich bestätigt. Nach nunmehr fünf interessanten sowie anregenden, jedoch auch aufopferungsvollen und entbehrungsreichen Jahren lege ich mit dieser Arbeit nun zum Abschluss des Studiums meine Masterthesis vor.

Dass mir die hierfür erforderlichen Ressourcen und Freiräume zur Verfügung standen, wodurch die Unternehmung letzten Endes auch nur gelingen konnte, verdanke ich vielen Menschen in meinem familiären, persönlichen und beruflichen Umfeld. Den größten Dank schulde ich meiner Frau Stephanie, die mich bereits seit 20 Jahren bei meinen „Projekten“ unterstützt und mit der ihr eigenen selbstlosen und sehr liebenswerten Art den Rücken stärkt. Ich kann mir keinen anderen Menschen vorstellen, der über einen so langen Zeitraum so viel Geduld aufbringt. Ich danke auch meinem Sohn Maximilian, der häufig auf seinen Vater verzichten musste. Gleiches gilt für meine Familie sowie meine Freunde und Bekannte, die mich in dieser Zeit nicht so häufig zu Gesicht bekamen. Ich bedanke mich zudem bei meinen ehemaligen und aktuellen Vorgesetzten, die dem berufsbegleitenden Studium aufgeschlossen gegenüberstanden und Verständnis für die Mehrbelastung aufbrachten.

Ohne die richtige Ausbildung und ohne entsprechende geistige Anregung hätte ich das Thema meiner Thesis nicht finden und bearbeiten können. Mein besonderer Dank geht an Siegfried Wendt und Peter Tabeling, die meine Lehrer am Hasso-Plattner-Institut der Universität Potsdam waren. Sie haben mir eine Sichtweise auf Softwaresysteme vermittelt, die mir bei der Bewältigung des Themas sehr geholfen hat. Darüber hinaus danke ich Peter Tabeling, dass er sich bereiterklärt hat, für die Thesis die Rolle des zweiten Prüfers zu übernehmen. Bei der Bearbeitung des Themas hat er mir stets mit seinem Fachwissen und seiner Erfahrung in der Systemmodellierung zur Seite gestanden.

Weiterer Dank geht an Felix Freiling, Andreas Dewald und Werner Massonne, die meine Lehrer an der Friedrich-Alexander-Universität Erlangen-Nürnberg waren. Felix Freiling und Andreas Dewald haben ganz wesentliche Beiträge zur theoretischen Fundierung der digitalen Forensik geleistet und das Fachgebiet in der deutschen Hochschullandschaft etabliert. Ohne diese Vorarbeiten würden meiner Thesis ganz wesentliche Grundlagen fehlen. Felix Freiling danke ich, dass er für die Thesis die Rolle des ersten Prüfers übernommen hat. Mein besonderer Dank gilt Werner Massonne, der sich von einer Idee begeistern ließ und mich bei der theoretischen Ausrichtung der Thesis unterstützt sowie während der Bearbeitungszeit in der ihm eigenen ruhigen und freundlichen Art betreut hat.

Durch Felix Freiling wurde meine Arbeit für den „Zukunftspreis Polizeiarbeit 2017“ vorgeschlagen, der jährlich im Rahmen des Europäischen Polizeikongresses vergeben wird. Durch die Mitglieger der Expertenjury wurde die Arbeit zusammen mit fünf weiteren Abschlussarbeiten (3x Bachelor, 3x Master) in die engere Auswahl für die Preisverleihung genommen. Leider konnte sich meine Arbeit bei der Expertenjury nicht gegen die Konkurrenz durchsetzen. Bemerkenswert bleibt jedoch, dass im Bereich der Masterarbeiten alle Abschlussarbeiten aus dem berufsbegleitenden Masterstudiengang „Digitale Forensik“ der Hochschule Albstadt-Sigmaringen eingereicht wurden. Ich freue mich für die Preisträger 2017 und spreche Ihnen meine Anerkennung für ihre Leistung und ihren wissenschaftlichen Beitrag aus.

Die deutschen Polizei- und Sicherheitsbehörden tun sich mit der dienstlichen Unterstützung von berufsbegleitenden Studiengängen derzeit noch immer schwer. Aus Gesprächen weiß ich, dass nur einige wenige Kommilitonen aus dem öffentlichen Dienst von ihren Arbeitgebern finanzielle und zeitliche Unterstützung erhalten. Auf der anderen Seite suchen die gleichen Arbeitgeber auf einem stark umworbenen Arbeitsmarkt händeringend IT-Spezialisten für die digitale Forensik. Liegt es da nicht auf der Hand, die dienstlichen Rahmenbedingungen für berufsbegleitende Studiengänge und engagierte Mitarbeiterinnen und Mitarbeiter zu verbessern?

Marco Siegert

Geleitworte

Niemand versteht mehr, wie komplexe Softwaresysteme genau funktionieren. Wenn wir wissen wollen, wie es zu einem bestimmten Systemverhalten kam, dann beginnt die Spurensuche am und im System: Mit Methoden des „Reverse Engineering“ werden die internen Wirkzusammenhänge der Softwaresysteme offengelegt. Je komplexer das System, desto mühseliger ist die Aufgabe – heute mehr Kunst als Handwerk. Wenn jedoch die untersuchten Systeme Beweismittel in Gerichtsverfahren sind, dann muss man systematisch und nachvollziehbar vorgehen. Und man muss die Ergebnisse angemessen dokumentieren und kommunizieren können. Wie das geht, zeigt auf eindrucksvolle Art und Weise das vorliegende Buch von Marco Siegert. Das Werk ist außerordentlich gehaltvoll. Es vereinigt lehrbuchartige Übersichten dreier Gebiete (Systemmodellierung, Forensik, Reverse Engineering) und entwickelt mit dem Ansatz des Forensischen Reverse Engineering eine zentrale Grundlage für die Polizeiarbeit im digitalen Zeitalter – denn ein präzises, nachvollziehbares und dokumentiertes Verständnis für die Funktionsweise technischer Geräte ist die Voraussetzung für qualifizierte Einsichten und Hilfestellung im Rahmen der Strafverfolgung. Praktikern rate ich dazu, dieses Werk in moderaten Häppchen zu konsumieren, denn die Menge an Definitionen, Konzepten und Literaturverweisen mag nach anfänglicher Lektüre schwer verdaulich wirken. Jedoch lassen sich die Kapitel durchaus auch einzeln lesen; umfangreiche Querverweise und ein hilfreiches Register erleichtern zudem die Navigation, einem Nachschlagewerk gleich. So wird mit zunehmender Seitenzahl das (auch wiederholte) Lesen zum Genuss voller differenzierter Einsichten. Ein Buch, das dem Gebiet der digitalen Forensik guttut.

Felix C. Freiling

Miss Marple hatte es leicht. Um ein Verbrechen aufzuklären und den Täter zu überführen genügten ihr scharfer Verstand und ihre Sinne. Der Tatort war meist die Stelle, an der man das arme Opfer vorgefunden hat. Die Spur, mit der man den Täter überführen konnte, zeigte sich als Abdruck seines Stiefels. Das mögliche Tatwerkzeug, z. B. eine in der Nähe gefundene Flinte, war als solches schnell zu erkennen. In der heutigen modernen Welt hätte es die berühmte Detektivin sicherlich schwerer. Der Fortschritt der Digitalisierung und Vernetzung hat neue Formen der Kriminalität ermöglicht, bei denen die Tat im virtuellen Raum der Rechner und Datenströme stattfindet. Der „Einbruch“ in einen Server hinterlässt keinen Stiefelabdruck. Hier sind die Beweismittel nicht mehr „handfest“ im wörtlichen Sinne, sondern nur mit profunden Kenntnissen der Informationstechnik und den geeigneten Werkzeugen zu finden. Für die digitale Forensik stellen sich damit grundsätzliche Fragen. Sind Begriffe und Methoden übertragbar, die aus einer Zeit stammen, als das Internet noch in den Kinderschuhen steckte? Welche Bedeutung haben z. B. „Tatort“ oder „Spur“ in einer digitalen Umgebung, die weltweit vernetzt ist und in der Informationen beliebig kopiert oder verändert werden können - und bestenfalls deren kryptisches, binäres Abbild in Speichern von Computersystemen physisch nachweisbar ist? Marco Siegert findet Antworten auf diese Fragen, indem er Begriffe und Methoden des Reverse Engineering und der klassischen Forensik aufgreift und zusammenführt. Mit beeindruckender Sorgfalt und Gründlichkeit zeigt er nicht nur die Relevanz und Nützlichkeit des Reverse Engineering für ein Gebiet auf, das im Ursprung gar nicht dessen Gegenstand war. Er findet darüber hinaus erweiterte (Be-)Deutungen für die bewährten Konzepte der Forensik, sodass diese ihre Anwendbarkeit behalten - auf einem Feld, wo es heute umso wichtiger ist. Entsprechend seinem wissenschaftlichen Anspruch geht Marco Siegert jedoch weiter und benennt mit dem Forensischen Reverse Engineering einen neuen Schwerpunkt für Forschung und Lehre, für den er auch die sich ergebenden Fragestellungen aufzeigt. Für ihn als Polizeibeamten gehört dazu natürlich die Frage, wie das Forensische Reverse Engineering seine Ergebnisse am effektivsten in die Praxis einbringen kann. Er schlägt vor, auf bewährte Methoden der Systemmodellierung zurückzugreifen. Diese gäben dem Forensiker die nötigen Mittel an die Hand, um seine Erkenntnisse verständlich und präzise aufzubereiten, etwa bei gutachterlichen Tätigkeiten in Gerichtsverfahren.

Peter Tabeling

Abkürzungen

ASCII

American Standard Code for Information Interchange

BSI

Bundesamt für Sicherheit in der Informationstechnik

BtMG

Betäubungsmittelgesetz

CD

Compact Disc

CF

CompactFlash

DFRWS

Digital Forensic Research Workshop

DNA

Deoxyribonucleic acid

DVD

Digital Versatile Disc

EMRK

Europäische Menschenrechtskonvention

ER-Modell

Entity-Relationship-Modell

FMC

Fundamental Modeling Concepts

GG

Grundgesetz

HTML

Hypertext Markup Language

IEEE

Institute of Electrical and Electronics Engineers

I.e.S.

Im engeren Sinne

I.w.S.

Im weiteren Sinne

IP

Internet Protocol (Internetprotokoll)

IT

Informationstechnik

IuK

Information und Kommunikation

MAC

Media Access Control

NAS

Network Attached Storage

RAM

Random-Access Memory

ROM

Read-Only Memory

SD

Secure Digital

StGB

Strafgesetzbuch

StPO

Strafprozessordnung

TAM

Technical Architecture Modeling

TCP

Transmission Control Protocol

UDP

User Datagram Protocol

UML

Unified Modeling Language

URL

Uniform Resource Locator

USB

Universal Serial Bus

UTC

Coordinated Universal Time (Koordinierte Weltzeit)

VM

Virtuelle Maschine

Abbildungen

Abbildung 1.2-1: Einordnung des Themas

Abbildung 2.1-1: Mehrstufige Interpretation

Abbildung 2.1-2: Beschreibung versus Beschriebenes

Abbildung 2.2-1: Klassenzuordnung für programmierte digitale Systeme

Abbildung 2.2-2: Übersetzung versus Abwicklerschichtung

Abbildung 2.3-1: Methoden der Systemmodellierung

Abbildung 3.1-1: Paradigma der Forensik

Abbildung 3.2-1: Zentrale Begriffe der Spurentheorie (Klassische Forensik)

Abbildung 4.1-1: Abstraktionsebenen in der Softwaretechnik

Abbildung 4.1-2: Forward Engineering, Reverse Engineering und Reengineering

Abbildung 4.3-1: Grundbegriffe und Methoden des Reverse Engineering

Abbildung 5.1-1: Zentrale Begriffe der Spurentheorie (Digitale Forensik)

Abbildung 5.1-2: Paradigma der Forensik (Erweiterte Fassung)

Abbildung 5.1-3: Transfertheorie nach Locard mit Erweiterung von Casey

Abbildung 5.1-4: Transfertheorie nach Locard mit eigener Erweiterung

Abbildung 5.1-5: Zusammenhang zwischen Formveränderung/Spurensicherung

Tabellen

Tabelle 2.2-1: Rollensysteme, Abwicklersysteme, Programmiersprachen

Tabelle 4.1-1: Merkmale von Reverse Engineering

Tabelle 5.1-1: Merkmale von Digitalen Spuren

Tabelle 5.4-1: Studiengänge mit Bezug zur digitalen Forensik

Tabelle 5.4-2: Lehrveranstaltungen zum Reverse Engineering

Tabelle 5.4-3: Fortbildungsangebote zum Reverse Engineering

Definitionen

Definition 2.1-1: Statisches System

Definition 2.1-2: Dynamisches System

Definition 2.1-3: Materiell-energetisches System

Definition 2.1-4: Informationelles System

Definition 2.1-5: Wissen

Definition 2.1-6: Information

Definition 2.1-7: Daten

Definition 2.1-8: Kodierung

Definition 2.1-9: Interpretation / Dekodierung

Definition 2.1-10: Interpretationsvereinbarung

Definition 2.1-11: Mehrstufige Interpretation

Definition 2.1-12: Systemmodell

Definition 2.1-13: Systemmodellbeschreibung / Systembeschreibung

Definition 2.1-14: Implementierungsmodell

Definition 2.1-15: Anschauungsmodell

Definition 2.2-1: Digitales System / Digitales Systemmodell

Definition 2.2-2: Programmiertes System

Definition 2.2-3: Programmiertes digitales System

Definition 2.2-4: Software (im engeren Sinne)

Definition 2.2-5: Übersetzung

Definition 2.2-6: Abwicklerschichtung / Interpretation

Definition 2.3-1: Zerlegung

Definition 2.3-2: Abstraktion

Definition 2.3-3: Sichten

Definition 2.4-1: Aspektmodell

Definition 2.4-2: Szenariomodell

Definition 3.2-1: Spur im forensischen Sinne (Klassische Forensik)

Definition 3.2-2: Spurenverursacher (Klassische Forensik)

Definition 3.2-3: Spurenträger (Klassische Forensik)

Definition 3.2-4: Spurenüberkreuzung (Klassische Forensik)

Definition 3.2-5: Tatort im forensischen Sinne (Klassische Forensik)

Definition 3.4-1: Gruppenidentifizierung / Classification

Definition 3.4-2: Identifikation / Identification

Definition 3.4-3: Individualidentifizierung / Individualization

Definition 3.4-4: Assoziation / Association

Definition 3.4-5: Rekonstruktion / Reconstruction (Klassische Forensik)

Definition 4.1-1: Forward Engineering

Definition 4.1-2: Reverse Engineering

Definition 4.1-3: Reengineering

Definition 4.2-1: Statische Analyse

Definition 4.2-2: Dynamische Analyse

Definition 4.2-3: Evolutionäre Analyse

Definition 4.3-1: Rückübersetzung

Definition 4.3-2: Disassemblierung

Definition 4.3-3: Disassemblierer (Disassembler)

Definition 4.3-4: Dekompilierung

Definition 4.3-5: Dekompilierer (Decompiler)

Definition 4.3-6: Redokumentation

Definition 4.3-7: Restrukturierung

Definition 4.3-8: Rekonstruktion (Reverse Engineering)

Definition 4.3-9: Respezifikation

Definition 5.1-1: Spur im forensischen Sinne (Digitale Forensik)

Definition 5.1-2: Spurenverursacher (Digitale Forensik)

Definition 5.1-3: Spurenträger (Digitale Forensik)

Definition 5.1-4: Tatort im forensischen Sinne (Digitale Forensik)

Definition 5.2-1: Forensisches Reverse Engineering

Definition 5.2-2: Digitale Forensik

Definition 5.2-3: Forensische Informatik

1 Einleitung

Inhalt

1.1 Motivation für die Thesis

1.2 Eingrenzung des Themas

1.3 Abgrenzung des Themas

1.4 Überblick über die Thesis

1.5 Gestaltung und Form

1.6 Thesis versus Buch

1.1 Motivation für die Thesis

Als Bestandteil des Masterstudiengangs „Digitale Forensik“ der Hochschule Albstadt-Sigmaringen habe ich 2013 im Rahmen einer Hausarbeit im Modul „Reverse Engineering“ ein Windows Binärprogramm analysiert. Dabei waren mir weder der Hochsprachen-Quelltext noch die Dokumentation des analysierten Programms bekannt. Das Programm forderte als Eingabe eine Seriennummer und prüfte diese auf Gültigkeit. Ich habe das Programm mittels IDA1 analysiert und den Prüfalgorithmus für die Seriennummer ermittelt. Des Weiteren habe ich meine Vorgehensweise dokumentiert und die von mir über das Programm gewonnenen Erkenntnisse auf der Grundlage von Assembler-Quelltext erläutert sowie mittels der Fundamental Modeling Concepts (vgl. Knöpfel et al. 2005; Tabeling 2006, S. 253-321) modelliert.

Im Rahmen der Hausarbeit wurden durch mich ca. 170 Zeilen Assemblercode analysiert und dokumentiert. Die zu Grunde liegende Programmdatei war knapp 9 Kilobyte groß und kann somit als „kleines“ Programm bezeichnet werden. Die Funktionsweise des Programms zu verstehen, bewerte ich im Nachgang als beherrschbare Herausforderung. Obwohl beherrschbar, war die Erstellung der Hausarbeit für mich dennoch mit einem verhältnismäßig hohen Aufwand verbunden. Dieser Aufwand ergab sich nicht aus der eigentlichen Analysetätigkeit, sondern vielmehr aus der geforderten Dokumentation der Vorgehensweise und der Ergebnisse sowie dem Anspruch, das mittels Reverse Engineering gewonnene Wissen über das System angemessen zu kommunizieren.

Bei der Hausarbeit hat mir u.a. auch mein Wissen über Softwaresysteme und ihre Modellierung geholfen, welches mir im Rahmen meines Studiums der „Softwaresystemtechnik“ am Hasso-Plattner-Institut der Universität Potsdam insbesondere durch Prof. Dr.-Ing. Siegfried Wendt und Dr.-Ing. Peter Tabeling vermittelt wurde. Speziell bei der Dokumentation und der Modellierung konnte ich hinsichtlich der Anforderungen einige Parallelen zur Softwaretechnik erkennen. Die Hausarbeit hat für mich einige grundsätzliche Fragen aufgeworfen:

Welche Bedeutung hat Reverse Engineering für die digitale Forensik?

Welche forensisch relevanten Informationen können mittels Reverse Engineering gewonnen werden?

Kann Reverse Engineering als Methode der Softwaretechnik unverändert für forensische Zwecke übernommen werden?

Ist der Aufwand für Dokumentation, Modellierung und Kommunikation in der Praxis gerechtfertigt?

Wie können Erkenntnisse im Reverse Engineering angemessen modelliert, beschrieben und kommuniziert werden?

Können etablierte Methoden und Techniken aus der Softwaretechnik und insbesondere aus der Systemmodellierung bei der Modellierung, Beschreibung und Kommunikation helfen?

Lässt sich eine Verbindung zwischen der Systemtheorie der Softwaretechnik und der Theorie über digitale Spuren herstellen?

Auf Grund meiner beruflichen Tätigkeit2 war mir bekannt, dass durch die deutschen Sicherheitsbehörden in der Praxis bereits Methoden und Techniken des Reverse Engineering für forensische Zwecke (unabhängig von der Schadsoftwareanalyse oder der Umgehung von Sicherheitsmechanismen) eingesetzt werden. Nach meiner persönlichen Einschätzung wird der Bedarf an Reverse Engineering und entsprechend ausgebildeten Spezialisten in den kommenden Jahren zunehmen. Eine theoretische Fundierung des Reverse Engineering innerhalb der digitalen Forensik erscheint mir daher nicht nur aus wissenschaftlicher Sicht, sondern auch für die Strafverfolgungspraxis der deutschen Sicherheitsbehörden relevant. Bei einer groben Sichtung der Fachliteratur stellte ich Folgendes fest:

Reverse Engineering als eine grundlegende Methode aufzufassen, mittels der forensisch relevante Information über digitale Systeme gewonnen werden können (beispielsweise Erkenntnisse über digitale Spuren), ist nicht verbreitet.

Innerhalb der digitalen Forensik wird Reverse Engineering derzeit überwiegend als Methode für die Analyse von Schadsoftware und zur Umgehung von Sicherheitsmechanismen eingesetzt.

In der digitalen Forensik ist die Anwendung von Methoden und Techniken der Systemmodellierung und eine damit einhergehende systemorientierte Sichtweise nicht verbreitet.

Aus den vorgenannten Gründen habe ich mich dazu entschlossen, die Anwendung von Reverse Engineering in der digitalen Forensik unter besonderer Berücksichtigung der Systemmodellierung als Gegenstand meiner Masterthesis zu wählen.

1.2 Eingrenzung des Themas

Unter dem Begriff „Reverse Engineering“ werden üblicherweise Methoden und Techniken zur Analyse von Systemen zusammengefasst. Die Ziele von Reverse Engineering bestehen im Allgemeinen darin, die inneren Strukturen eines Systems und deren wechselseitige Abhängigkeiten zu identifizieren sowie eine Repräsentation des betrachteten Systems in einer anderen Form oder auf einem anderen Abstraktionsniveau zu gewinnen. Innerhalb der Softwaretechnik wird Reverse Engineering überwiegend der Softwarewartung zugerechnet und als Vorstufe zum Reengineering gesehen. Daher wird Reverse Engineering in diesem Anwendungsbereich primär durch die Perspektive eines Ingenieurs bestimmt, der für einen Auftraggeber ein neues System erstellen oder ein bereits bestehendes System modifizieren soll. Die Systemmodellierung stellt dabei entsprechende Methoden, Verfahren und Standards zur Beschreibung und Modellierung von Systemen bereit. Sie hat sich in der Softwaretechnik insbesondere als Hilfsmittel zur Komplexitätsbeherrschung, Dokumentation, Kommunikation und Arbeitsteilung bewährt.

In der digitalen Forensik werden Methoden der Informatik zur gerichtsfesten Sicherung und Auswertung digitaler Beweismittel angewendet. Forensiker greifen dabei in ihrer praktischen Arbeit auch auf Methoden und Techniken aus dem Bereich des Reverse Engineering zurück. Im Gegensatz zur Sichtweise eines konstruierenden Ingenieurs wird dieser Anwendungsbereich durch die Perspektive eines analysierenden Forensikers bestimmt. Dessen Aufgabe besteht in der Regel darin, spezielle forensische Problemstellungen zu lösen bzw. forensische Fragestellungen eines juristisch oder kriminalistisch motivierten Auftraggebers zu beantworten. In Abgrenzung zur Softwaretechnik reichen die Einsatzszenarien für Reverse Engineering hierbei von der Unterstützung der Kryptoanalyse, der Überwindung von Sicherheitsmechanismen und der Schadsoftwareanalyse über die Analyse unbekannter Dateiformate, Datenbankstrukturen und Netzwerkprotokolle bis hin zu umfangreichen Untersuchungen „regulärer“ System- und Anwendungssoftware.

Nach eigenen Erfahrungen ist die praktische Vorgehensweise im Reverse Engineering aktuell dadurch gekennzeichnet, dass forensisch relevante Systeme und Datenstrukturen in der Regel durch einzelne Spezialisten analysiert werden. Eine Kommunikation über Analyseergebnisse mit anderen Spezialisten sowie Außenstehenden ist die Ausnahme. Wenn eine Kommunikation stattfindet, erfolgt diese üblicherweise sehr nahe an der technischen Realisierung (Assemblersprachen und hexadezimale Repräsentationen). Eine systematische und strukturierte Modellierung und Beschreibung findet man selten. In den Anwendungsbereichen Kryptoanalyse, Überwindung von Sicherheitsmechanismen und Schadsoftwareanalyse werden zielgerichtet statische und dynamische Analysemethoden eingesetzt und Systeme häufig als „Whitebox“ untersucht. Bei der Analyse regulärer System- und Anwendungssoftware zur Ermittlung forensisch relevanter digitaler Spuren hingegen dominiert die „Blackbox“-Methodik. In einigen wenigen Anwendungsgebieten, beispielsweise in der Mobilfunk- und Netzwerkforensik, ist bereits vereinzelt ein arbeitsteiliges Vorgehen zwischen einzelnen Spezialisten und auch zwischen verschiedenen Sicherheitsbehörden zu beobachten.

Als eine mögliche Folge der gesellschaftlichen und technologischen Veränderungen ist es nach eigener Bewertung nicht unwahrscheinlich, dass der Bedarf für Reverse Engineering in der digitalen Forensik zunehmen wird. So wird beispielsweise der herkömmliche stationäre Computer mit einer überschaubaren Anzahl von klassischen Anwendungsprogrammen zunehmend durch mobile und smarte Endgeräte mit einer unüberschaubaren Masse an mobilen Anwendungen („Apps“) verdrängt. Dadurch vervielfacht sich die Anzahl der forensisch relevanten Software. Zugleich ist Anwendungssoftware „kleiner“ geworden, die Innovations- und Entwicklungszyklen haben sich verkürzt und die Anzahl der Entwickler erhöht. Auf der anderen Seite ermöglichen die wachsenden Speichergrößen sowie zunehmende Prozessorleistungen und Netzwerkbandbreiten größere und komplexere Systemsoftware sowie die Realisierung komplexer und verteilter Anwendungen.

Die Hersteller von forensischen Werkzeugen können mit diesen Veränderungen sowie der Dynamik nur schwer Schritt halten. In der Folge nehmen die Defizite bei der werkzeuggestützten und automatisierten forensischen Arbeit zu. Die Sicherheitsbehörden versuchen diese Defizite mit eigenem Personal, Fachwissen und einer Arbeitsteilung bei der Analyse forensisch relevanter Systeme und Anwendungen auszugleichen. Die steigende Nachfrage nach sicheren Systemen und Verschlüsselung erhöht die Komplexität und den Aufwand für forensische Analysen zunehmend. Die zuvor beschriebenen Aspekte und Zusammenhänge lassen sich grundsätzlich auch auf den Bereich der Schadsoftwareanalyse übertragen.

Aus der forensischen Perspektive ergeben sich eine Reihe spezieller Anforderungen an das Reverse Engineering. So müssen forensische Erkenntnisse auf einer wissenschaftlichen Vorgehensweise beruhen sowie objektiv nachprüfbar und ggf. auch wiederholbar sein. Dies gilt grundsätzlich auch für Erkenntnisse, die mittels Reverse Engineering gewonnen werden. Des Weiteren muss ein Forensiker in der Lage sein, über seine Analyseerkenntnisse sowohl mit anderen Spezialisten als auch mit seinen Auftraggebern zu kommunizieren. Hierfür bedarf es geeigneter Dokumentations- und Kommunikationsmöglichkeiten.

Die aus den gesellschaftlichen und technologischen Veränderungen resultierenden Herausforderungen für das Reverse Engineering machen zukünftig unter Umständen eine noch intensivere Arbeitsteilung erforderlich. In diesem Fall wäre ein weiterer Anstieg des Aufwandes für Modellierung, Beschreibung und Kommunikation zu erwarten. Erschwerend kommt hinzu, dass im forensischen Kontext häufig sehr wenige Informationen als Ausgangspunkt für eine Analyse vorliegen. So kann in der Regel nicht auf einen kommentierten Quellcode in einer Hochsprache oder Systemdokumentation zurückgegriffen werden.

Mit den aktuellen Ansätzen der Praxis (und hier insbesondere die nur unzureichend ausgeprägten Fähigkeiten zur Modellierung, Beschreibung und Kommunikation) können nach eigener Einschätzung die beschriebenen Herausforderungen langfristig nicht zufriedenstellend bewältigt werden. Die für die Zwecke der Softwaretechnik entwickelten Methoden und Standards der Systemmodellierung könnten entsprechende Lösungsansätze liefern.

Die Hauptthesen der Arbeit werden wie folgt formuliert:

Innerhalb der digitalen Forensik kann ein Teilgebiet „Forensisches Reverse Engineering“ mit spezifischen Merkmalen abgegrenzt werden.

Im forensischen Reverse Engineering bestehen besondere Herausforderungen bei der Modellierung, Beschreibung und Kommunikation über Strukturen von programmierten digitalen Systemen.

Diese Herausforderungen lassen sich durch die Anwendung von Systemmodellierung beherrschen.

Das Ziel der vorliegenden Arbeit besteht darin, entsprechende Beziehungen zwischen Systemmodellierung, Reverse Engineering und digitaler Forensik aufzuzeigen. Des Weiteren sollen charakterisierende Merkmale von forensisch motivierten Reverse Engineering herausgearbeitet werden. Die Abbildung 1.2-1zeigt schematisch die Einordnung des Themas in eine Struktur der Wissenschaften. Die Teilgebiete, die im Fokus dieser Arbeit stehen, wurden mit grauer Schattierung hervorgehoben.

Abbildung 1.2-1: Einordnung des Themas

1.3 Abgrenzung des Themas

Die Masterthesis ist als theoretische sowie interdisziplinäre Literaturarbeit angelegt. Zu den im Abschnitt 1.1 aufgeworfenen Problem- und Fragestellungen sollen allgemeingültige Antworten und Lösungen erarbeitet werden. Hierzu erfolgen grundlegende Betrachtungen zur Systemmodellierung (inklusive Systemtheorie), zur klassischen und digitalen Forensik (inklusive Spurentheorie) und zum Reverse Engineering. Zwischen den verschiedenen Gebieten werden Zusammenhänge aufgezeigt und neue Verknüpfungen hergestellt. Die nachfolgenden Punkte umfassen Aspekte, die im Rahmen der Masterthesis nicht betrachtet werden:

In den Themenbereichen Systemmodellierung, klassische Forensik, digitale Forensik und Reverse Engineering erfolgen keine historischen Ausführungen. Historische Zusammenhänge werden nur in dem Maße erörtert, wie sie für das Grundverständnis erforderlich sind.

Da die Masterthesis als theoretische Arbeit konzipiert wurde, erfolgt keine Betrachtung von Werkzeugen und ausführlichen Beispielen zur Systemmodellierung und zum Reverse Engineering. Die Ausführungen zur Systemmodellierung werden möglichst unabhängig von bestimmten Modellierungsansätzen oder Modellierungssprachen gehalten.

Die Betrachtungen konzentrieren sich auf die Klasse der „programmierten digitalen Systeme“. Reverse Engineering von nicht programmierten Systemen bildet keinen Schwerpunkt.

Bei den Einsatzszenarien für Reverse Engineering erfolgt eine Beschränkung auf solche mit forensischem Hintergrund aus dem Bereich der staatlichen Strafverfolgung. Hierbei wird das Thema im Wesentlichen aus der Perspektive deutscher Polizei- bzw. Sicherheitsbehörden betrachtet.

1.4 Überblick über die Thesis

Neben der Einleitung (im aktuellen Kapitel 1) und dem abschließenden Fazit (Kapitel 6) besteht die Arbeit im Kern aus den folgenden vier Kapiteln:

Kapitel 2 – Systemmodellierung: In diesem Kapitel werden die erforderlichen Grundlagen der Systemmodellierung vermittelt. Auf der Basis einer bewährten Systemtheorie über programmierte digitale Systeme sowie einer allgemeinen Modelltheorie werden zentrale Grundbegriffe eingeführt und Zusammenhänge zwischen den Begriffen erörtert. Einen Schwerpunkt bilden hierbei klassische Methoden und Vorgehensweisen zur Modellierung solcher Systeme sowie deren Anwendung in der Softwaretechnik.

Kapitel 3 – Klassische Forensik: Anschließend werden wesentliche Grundlagen der Forensik ausgeführt, wobei der Fokus auf der klassischen (nicht-digitalen) Forensik liegt. Danach werden auf der Basis eines eigenen Entity-Relationship-Modells zentrale Grundbegriffe, Konzepte und Zusammenhänge einer klassischen Spurentheorie eingeführt. Abschließend werden die Funktion der Forensik im Strafverfahren sowie die klassischen forensischen Methoden erläutert.

Kapitel 4 – Reverse Engineering: Im letzten Grundlagenkapitel liegt der Schwerpunkt auf den für die Arbeit erforderlichen Grundlagen des Reverse Engineering aus der Sichtweise der Softwaretechnik. Hierbei bilden die im Kapitel 0 eingeführte System- und Modelltheorie das begriffliche Fundament. In einem ersten Schritt wird der Begriff Reverse Engineering herausgearbeitet und vom Forward Engineering und Reengineering abgegrenzt. Anschließend konzentrieren sich die Ausführungen auf die Programm- und Softwareanalyse, die eine Reihe von Basismethoden und -techniken für das Reverse Engineering bereitstellen. Darauf aufbauend erfolgt dann die Beschreibung der Kernmethoden des Reverse Engineerings.

Kapitel 5 – Forensisches Reverse Engineering: Dieses Kapitel bildet den inhaltlichen Schwerpunkt der vorliegenden Arbeit. Zuerst wird ein eigener Ansatz zur Abgrenzung eines Fachgebietes Forensisches Reverse Engineering innerhalb der digitalen Forensik präsentiert. Als Gegenstand des Fachgebiets werden auf der Basis eines eigenen Entity-Relationship-Modells zentrale Grundbegriffe, Konzepte und Zusammenhänge einer digitalen Spurentheorie eingeführt. Hierbei bilden insbesondere die System- und Modelltheorie aus Kapitel 2 sowie die klassische Spurentheorie aus Kapitel 3 die konzeptionelle und begriffliche Grundlage. Darauf aufbauend wird das Fachgebiet definiert und Möglichkeiten zu seiner Binnenstrukturierung sowie Außenabgrenzung vorgestellt. Einen weiteren Schwerpunkt bilden die Bezüge zur klassischen Forensik, zum Reverse Engineering und zur Systemmodellierung. Schließlich werden die für das forensische Reverse Engineering prägenden Kommunikationsaspekte und -herausforderungen beschrieben und es wird aufgezeigt, wie die Systemmodellierung bei deren Bewältigung helfen kann.

1.5 Gestaltung und Form

Die Kapitel gliedern sich in Abschnitte und Unterabschnitte. Diese dreistufige numerische Basisgliederung der Arbeit bildet die Grundlage für Querverweise im Text. Als ergänzende Orientierungshilfe dienen nach Bedarf weitere Zwischenüberschriften.

Jedem Kapitel wird ein eigenes Inhaltsverzeichnis vorangestellt, welches neben der dreistufigen Basisgliederung auch die Zwischenüberschriften umfasst. Um eine bessere Orientierung zu ermöglichen, werden die Kapitel und Abschnitte jeweils mit einer kurzen Inhaltsbeschreibung eingeleitet.

Da der Text viele Definitionen enthält, wurde zusätzlich zum Abbildungs- und Tabellenverzeichnis ein eigenes Definitionsverzeichnis erstellt. Definitionen werden im Text zusätzlich durch einen umschließenden Rahmen optisch hervorgehoben.

Um das Auffinden von Abbildungen, Tabellen und Definitionen im Text zu erleichtern, enthalten deren Beschriftungen als Präfix jeweils die Kombination aus Kapitel- und Abschnittsnummer. So bezeichnet die Beschriftung „Abbildung 5.1-4“ beispielsweise die vierte Abbildung im ersten Abschnitt von Kapitel 5. Das aktuelle Kapitel wird in der Kopfzeile von geraden Seiten (oben links) und der aktuelle Abschnitt in der Kopfzeile von ungeraden Seiten (oben rechts) wiederholt.

Die verwendete Zitiermethode basiert auf einer modifizierten Version des Autor-Jahr-Systems (Harvard-Zitierweise) mit Kurznachweis im Text. Direkte Zitate werden mit Chevrons (»«) ausgezeichnet.

Das Literaturverzeichnis, ein Glossar sowie ein Register finden sich am Ende der Arbeit. Die Einträge im Literaturverzeichnis sind alphabetisch aufsteigend nach dem Nachnamen des erstgenannten Autors sortiert.

1.6 Thesis versus Buch

Die Originalversion der Masterthesis habe ich am 4. April 2016 an der Hochschule Albstadt-Sigmaringen zur schriftlichen Bewertung eingereicht. Am 24. Mai 2016 absolvierte ich die mündliche Verteidigung an der Friedrich-Alexander-Universität Erlangen-Nürnberg.

Um den höheren Ansprüchen für eine Buchveröffentlichung zu genügen, habe ich die zur Bewertung eingereichte Originalversion (1. Auflage) überarbeitet. Die vorliegende Buchversion (2., überarbeitete Auflage) ist das Ergebnis dieser Überarbeitung und unterscheidet sich in den folgenden Punkten von der ursprünglichen Fassung:

Im

Unterabschnitt 5.1.1

wurden die Definitionen für „Digital Evidence“ und „Digitale Spur“ von

Carrier

,

Casey

und

Dewald/Freiling

aus dem Definitionsverzeichnis ausgeschlossen. Die Definitionen finden sich nun als direkte Zitate ausschließlich im Fließtext. Das Definitionsverzeichnis enthält nur noch die eigene

Definition 5.1-1

für digitale Spuren.

Der Haupttext (

Kapitel 1

bis

6

) wurde durchgehend sprachlich überarbeitet und an einigen Stellen auch ergänzt oder gekürzt. Die zahlreichen Aufzählungen im Fließtext wurden zur besseren Lesbarkeit in nummerierte Listen umformatiert. Im Zuge einer weiteren Korrekturlesung wurden des Weiteren übermäßig lange Absätze in kleinere Absätze aufgeteilt. Das Seitenformat wurde auf 17 cm x 22 cm verkleinert. Alle Abbildungen wurden überarbeitet und auf das kleinere Seitenformat optimiert.

Das umfangreiche Inhaltsverzeichnis am Anfang der Arbeit wurde durch eine kurze Inhaltsübersicht ersetzt, in der lediglich auf die Kapitel (erste Ebene der Gliederung) verwiesen wird. Als Ergänzung zu dieser Inhaltsübersicht enthält jedes Kapitel am Anfang nun ein eigenes (umfangreiches) Inhaltsverzeichnis, welches neben der dreistufigen Basisgliederung auch die Zwischenüberschriften umfasst.

Felix Freiling und Peter Tabeling haben als Prüfer der Masterthesis zu meiner großen Freude jeweils ein Geleitwort für die Buchveröffentlichung geschrieben. Diese Geleitworte wurden nach der Danksagung eingefügt.

Nach dem Literaturverzeichnis wurde ein Glossar eingefügt. Das Glossar enthält als Glossareinträge alle Definitionen des Haupttextes (

Kapitel 1

bis

6

) in alphabetischer Reihenfolge.

Des Weiteren wurde ein Register erstellt und nach dem Glossar eingefügt. Das Register enthält als Registereinträge wichtige in der Arbeit behandelte Stichworte und Schlagworte in alphabetischer Reihenfolge. Bei der Erstellung des Registers wurden die

Kapitel 2

bis

6

und das Glossar berücksichtigt.

Auf meiner privaten Website

http://www.marco-siegert.de/

werde ich nach und nach ergänzende Informationen und Material zu diesem Buch und zum forensischen Reverse Engineering veröffentlichen. In einem ersten Schritt werde ich die Abbildungen aus diesem Buch in einer höheren Auflösung zum Download bereitstellen, um eine unkomplizierte Weiterverwendung für Lehrzwecke zu ermöglichen.

1https://www.hex-rays.com/products/ida/index.shtml (Abgerufen: 14. Februar 2016).

2 Informationen zum akademischen und beruflichen Werdegang des Autors finden sich auf Seite II.

2 Systemmodellierung

In diesem Kapitel werden die für die Arbeit relevanten Grundlagen der Systemmodellierung vermittelt. Das Kapitel ist in vier Abschnitte gegliedert. Im ersten und zweiten Abschnitt werden wichtige Grundbegriffe eingeführt und Beziehungen zwischen den Begriffen aufgezeigt. Die Basis bilden hierbei die von Wendt ausgeführte und von seinen Schülern fortgeführte Theorie über programmierte digitale Systeme (Wendt 1989; 1991b; Bungert 1998; Tabeling 2000; 2006; Knöpfel et al. 2005) sowie die allgemeine Modelltheorie von Stachowiak (1973). Der dritte Abschnitt dient zur Erörterung von Methoden und Vorgehensweisen bei der Modellierung solcher Systeme. Im letzten Abschnitt liegt der Schwerpunkt auf der Anwendung der Systemmodellierung in der Softwaretechnik.

Inhalt

2.1 Grundbegriffe der Systemmodellierung

2.1.1 System

Statisches versus dynamisches System

Materiell-energetisches versus informationelles System

2.1.2 Wissen, Information, Daten

Wissen, Information

Daten, Kodierung, Interpretation, Interpretationsvereinbarung

Mehrstufige Interpretation

2.1.3 Systemmodell

Allgemeine Modelltheorie

Definition Systemmodell

2.1.4 Systembeschreibung

Definition Systembeschreibung

Beschreibung versus Beschriebenes

Definition für Implementierungsmodell

Definition für Anschauungsmodell

2.2 Programmiertes digitales System

2.2.1 Digitales System

Definition für digitales System

Digitales Systemmodell

2.2.2 Programmiertes System

Definition für programmiertes System

Definition für programmiertes digitales System

Klassenzuordnung für programmierte digitale Systeme

Beispiele für programmierte digitale Systeme

2.2.3 Abwicklersystem versus Rollensystem

2.2.4 Systembeschreibungen von Rollensystemen

2.2.5 Übersetzung versus Abwicklerschichtung

Definition Übersetzung

Definition Abwicklerschichtung / Interpretation

Übersetzung und Interpretation von Programmen

2.3 Methoden der Systemmodellierung

2.3.1 Zerlegung

Begriffsbestimmung aus der Literatur

Definition für Zerlegung

Bezug zur allgemeinen Modelltheorie

2.3.2 Abstraktion

Begriffsbestimmung aus der Literatur

Definition für Abstraktion

Bezug zur allgemeinen Modelltheorie

Formalabstraktion versus Interpretationsabstraktion

Modellübergang durch Veränderung der Auflösung

Modellübergang durch Veränderung der Betrachtungsebene

Modellübergänge bei programmierten Systemen

2.3.3 Sichten

Begriffsbestimmung aus der Literatur

Definition für Sichten

Bezug zur allgemeinen Modelltheorie

2.4 Kombination der Methoden

2.4.1 Komplexität programmierter Systeme

2.4.2 Modellhierarchieansatz für komplexe Systeme

Abstraktion in der Modellhierarchie

Sichten in der Modellhierarchie

Zerlegung in der Modellhierarchie

2.4.3 Implementierungsmodelle im Modellhierarchieansatz

2.4.4 Anschauungsmodelle im Modellhierarchieansatz

2.4.5 Aspektmodelle und Szenariomodelle

Aspektmodell

Szenariomodell

2.1 Grundbegriffe der Systemmodellierung

In diesem Abschnitt werden Grundbegriffe der Systemmodellierung definiert und für die Zwecke der Arbeit eingeschränkt sowie Beziehungen zwischen den Begriffen erläutert. Die primären Begriffe sind hierbei System und Modell, welche sich unmittelbar aus dem zusammengesetzten Wort Systemmodellierung ergeben. Weitere Begriffe sind Systembeschreibung sowie Wissen, Information, Daten und Form.

2.1.1 System

Der Systembegriff wird in vielfältiger Weise sowohl im allgemeinen Sprachgebrauch als auch im wissenschaftlichen Bereich verwendet. So spricht man beispielsweise allgemein von Gesellschafts-, Wirtschafts- oder Computersystemen sowie vom Periodensystem der Elemente in der Chemie, dem Dezimalsystem in der Mathematik, dem Rechtssystem in den Rechtswissenschaften oder vom Planetensystem in der Astrophysik (vgl. Tabeling 2006, S. 1; Wendt 1991a, S. 136).

a) Statisches versus dynamisches System

Nach Wendt kann man zwischen statischen Systemen und dynamischen Systemen unterscheiden:

Ein statisches System ist eine »regelhafte Zusammenstellung von Objekten zum Zwecke der Strukturierung des Wissens über diese Objekte und über ihre Beziehungen untereinander« (Wendt 1991a, S. 136).

Definition 2.1-1: Statisches System

Ein dynamisches System ist ein »konkretes oder zumindest […] ein konkret vorstellbares Gebilde, welches ein beobachtbares Verhalten zeigt, wobei dieses Verhalten als Ergebnis des Zusammenwirkens der Systemteile angesehen werden kann« (Wendt 1991a, S. 136).

Definition 2.1-2: Dynamisches System

Entsprechend dieser Definitionen sind das Periodensystem der Elemente (Chemie) und das Dezimalsystem (Mathematik) statische Systeme. Zu den dynamischen Systemen hingegen zählen das Planetensystem (Astrophysik) sowie die Wirtschafts- und Computersysteme.

b) Materiell-energetisches versus informationelles System

Nach Tabeling sind dynamische Systeme sehr häufig Maschinen oder elektrische Geräte, die vom Menschen für einen bestimmten Zweck erschaffen wurden (vgl. Tabeling 2006, S. 2). Die vorliegende Arbeit beschäftigt sich ausschließlich mit diesen von Menschen geschaffenen Systemen. Hier kann eine weitere Klassifizierung vorgenommen werden, indem man zwischen materiell-energetischen Systemen und informationellen Systemen differenziert:

Materiell-energetische Systeme sind dynamische Systeme, deren Zweck in der Verarbeitung von Materie oder Energie besteht (vgl. Tabeling 2006, S. 2).

Definition 2.1-3: Materiell-energetisches System

Informationelle Systeme sind dynamische Systeme, »die nur verstanden werden können, indem man die Wertebereiche oder die Werteverläufe bestimmter Schnittstellen- oder Zustandsvariablen interpretiert« (Wendt 1991a, S. 244).

Definition 2.1-4: Informationelles System

Entsprechend dieser Definitionen gehören zu den materiell-energetischen Systemen beispielsweise Maschinen für die Herstellung von Spritzgussteilen (Verarbeitung von Materie) oder Kraftwerksgeneratoren (Erzeugung von elektrischer Energie).

Auf der Basis von materiell-energetischen Systemen lassen sich informationelle Systeme entwickeln. Hierzu gehören insbesondere auch Computer- und Softwaresysteme. Deren primärer Zweck liegt nicht in der Verarbeitung von Materie oder Energie, sondern in der „Verarbeitung“ von Informationen.

Die Informationsverarbeitung wird dadurch realisiert, dass materiell-energetische Sachverhalte verarbeitet werden, zu denen eine Interpretationsvereinbarung gegeben ist. Die Verarbeitung von Materie oder Energie ist hier nur Mittel zum Zweck. Kurz gesagt: Informationelle Systeme entstehen durch die menschliche Interpretation von materiell-energetischen Systemen. Der Fokus der weiteren Ausführungen liegt auf informationellen Systemen.

2.1.2 Wissen, Information, Daten

Informationelle Systeme werden vom Menschen zum Zweck der (maschinellen) Informationsverarbeitung geschaffen. Es ist daher erforderlich, drei weitere Fachbegriffe zu klären, die in dieser Arbeit von besonderer Bedeutung sind: Wissen, Information und Daten.

a) Wissen, Information

In Anlehnung an Tabeling wird Wissen wie folgt definiert:

Unter Wissen ist das zu verstehen, was ein bestimmter Mensch zu einem bestimmten Zeitpunkt tatsächlich weiß (vgl. Tabeling 2006, S. 5).

Definition 2.1-5: Wissen

Wissen ist demnach kontextabhängig, subjektiv und mit einem menschlichen Individuum verknüpft. Was der eine Mensch weiß, kann einem anderen Menschen völlig unbekannt sein. Erworbenes Wissen kann auch wieder verloren gehen, beispielsweise durch Vergessen. Der Mensch ist zudem in der Lage, durch die Verknüpfung von bereits vorhandenem Wissen, zu neuem Wissen zu gelangen. Um die Brücke von der menschlichen Wissensverarbeitung zur maschinellen Informationsverarbeitung zu schlagen, muss der Begriff der Information präzisiert werden.

Information wird in Anlehnung an Wendt wie folgt definiert:

Information ist potenzielles Wissen (Wissbares). Information ist also etwas, das ein Mensch wissen kann (vgl. Wendt 1991a, S. 17).

Definition 2.1-6: Information

Im Gegensatz zu Wissen ist Information vom menschlichen Individuum abgekoppelt, d.h. sie ist im Grunde unabhängig von einer konkreten menschlichen Existenz. Wenn eine Information durch einen Menschen inhaltlich aufgenommen wird, dann wird das bis zu diesem Zeitpunkt vorliegende potenzielle Wissen (Wissbares) in tatsächliches Wissen überführt. Den Übergang von Information zu Wissen kann man auch als Wissenserwerb auffassen.

b) Daten, Kodierung, Interpretation, Interpretationsvereinbarung

Es liegt in der Natur von informationellen Systemen, dass zwischen Informationen und materiell-energetischen Gegebenheiten bzw. Sachverhalten entsprechende Verbindungen geschaffen werden. Nach Wendt und Tabeling entstehen durch die vom Menschen bewusst vorgenommene Bindung von Informationen an materiell-energetische Sachverhalte Daten:

Informationen, die mittels einer Interpretationsvereinbarung an eine technische Form gebunden wurden, bezeichnet man als Daten (vgl. Wendt 1991a, S. 18; Tabeling 2006, S. 7).

Definition 2.1-7: Daten

Es wird hier bewusst der von Tabeling verwendete Begriff der »technischen Form« genutzt. Wendt spricht in diesem Zusammenhang von »materiell-energetischen Mustern«, die sich als eine Variante einer technischen Form auffassen lassen. In jedem Fall sind hier technische Sachverhalte gemeint, d.h. das menschliche Gehirn wird als Datenträger per Definition ausgeschlossen (vgl. Tabeling 2006, S. 8). Aus der Begriffsdefinition für Daten lassen sich nun weitere Grundbegriffe ableiten:

Der Vorgang des Bindens einer Information an eine technische Form bezeichnet man als Kodierung. Durch Kodierung erfolgt der Übergang von Information zu einer technischen Form (vgl. Tabeling 2006, S. 6).

Definition 2.1-8: Kodierung

Der Vorgang der Gewinnung einer Information aus einer technischen Form wird als Interpretation oder Dekodierung bezeichnet. Durch Interpretation erfolgt der Übergang von einer technischen Form zu einer Information (vgl. Tabeling 2006, S. 6).

Definition 2.1-9: Interpretation / Dekodierung

Die Regeln, welche technische Form welche Information (Bedeutung) tragen soll, wird als Interpretationsvereinbarung (alternativ: Dekodierungsvorschrift oder Kodierungsvorschrift) bezeichnet (vgl. Tabeling 2006, S. 7).

Definition 2.1-10: Interpretationsvereinbarung

Informationelle Systeme dienen zwar dem menschlichen Zweck der Informationsverarbeitung, verarbeiten aber im eigentlichen Sinne keine Informationen, sondern deren materiell-energetische Repräsentationen, die als Daten vorliegen. Informationelle Systeme leisten somit auf der materiell-energetischen Ebene eine Formverarbeitung, die als Informationsverarbeitung interpretierbar ist, d.h. menschliche Informationsverarbeitung wird mittels Kodierung und Interpretation auf eine maschinelle Formverarbeitung abgebildet (vgl. Tabeling 2006, S. 10).

c) Mehrstufige Interpretation

Bei modernen informationellen Systemen werden häufig nacheinander verschiedene Interpretationen angewendet. Es existieren also in aller Regel mehrere Interpretationsvereinbarungen bzw. Kodierungsvorschriften, die aufeinander aufbauen. Wendt spricht in diesem Zusammenhang bildlich zutreffend von einer Interpretationskette (vgl. Wendt 1991a, S. 54). Tabeling verwendet in Anlehnung an Wendt den Begriff der mehrstufigen Interpretation bzw. mehrstufige Interpretationsvereinbarung:

Bei einer mehrstufigen Interpretation »wird die Information, die bei einer untergeordneten Interpretation aus der dort zugrundeliegenden Form ermittelt werden kann, erneut interpretiert, d.h. die Information der untergeordneten Stufe bildet die Form der übergeordneten Stufe« (Tabeling 2006, S. 13).

Definition 2.1-11: Mehrstufige Interpretation

Eine mehrstufige Interpretation besteht somit aus mindestens zwei Interpretationsstufen. Den Ausgangspunkt einer mehrstufigen Interpretation bilden stets technische Formen auf der Basis von materiell-energetischen Sachverhalten. Auf den höheren Stufen liegen keine materiell-energetischen Sachverhalte mehr vor. Die hier existierenden technischen Formen sind rein informationeller Art. Tabeling unterteilt technische Formen daher zutreffend in materiell-energetische Formen und informationelle Formen (vgl. Tabeling 2006, S. 14-15).

Damit existieren grundsätzlich auch zwei Kategorien von Daten, nämlich Daten auf der Basis von materiell-energetischen Formen und solche auf Basis von informationellen Formen. Sofern in der vorliegenden Arbeit der Datenbegriff ohne weitere Einschränkung verwendet wird, sind stets beide Bedeutungen umfasst.

Abbildung 2.1-1, S. → zeigt das Konzept der mehrstufigen Interpretation am Beispiel einer E-Mail, die auf einer herkömmlichen magnetischen Festplatte gespeichert ist. Als materiell-energetischer Sachverhalt liegt hierbei eine entsprechende Magnetisierung der Oberfläche der Festplatte vor. Durch eine Interpretation dieser materiell-energetischen Form erhält man als Information entsprechende Bits. Diese Bits sind Daten und werden als informationelle Form im nächsten Schritt als ASCII-Zeichen interpretiert, die ihrerseits wieder Daten darstellen usw. Am Ende der Interpretationskette findet sich dann die E-Mail.

In Anlehnung an: Dewald/Freiling 2011, S. 36; Tabeling 2006, S. 15, Abb. 2.11. Abbildung 2.1-1: Mehrstufige Interpretation

2.1.3 Systemmodell

a) Allgemeine Modelltheorie

Die Annäherung an Systemmodelle erfolgt zunächst über einen allgemeinen Modellbegriff. Stachowiak ist durch empirische Untersuchungen zu der Erkenntnis gelangt, dass sich Modelle durch ein Abbildungsmerkmal, ein Verkürzungsmerkmal und ein pragmatisches Merkmal auszeichnen (vgl. Stachowiak 1973, S. 131-133).

Das Abbildungsmerkmal beschreibt Stachowiak wie folgt: »Modelle sind stets Modell von etwas, nämlich Abbildungen, Repräsentationen natürlicher oder künstlicher Originale, die selbst wieder Modelle sein können [Hervorhebungen im Original]« (Stachowiak 1973, S. 131).

Bei einer Abbildung müssen sich nicht zwangsweise alle Attribute des Originals im Modell wiederfinden. Das daraus resultierende Verkürzungsmerkmal umschreibt Stachowiak folgendermaßen: »Modelle erfassen im allgemeinen nicht alle Attribute des durch sie repräsentierten Originals, sondern nur solche, die den jeweiligen Modellerschaffern und/oder Modellbenutzern relevant scheinen [Hervorhebungen im Original]« (Stachowiak 1973, S. 132).

Hier wird bereits die subjektive Seite einer Original-Modell-Abbildung sichtbar, welche durch Stachowiak im pragmatischen Merkmal deutlich hervortritt: »Modelle sind ihren Originalen nicht per se eindeutig zugeordnet. Sie erfüllen ihre Ersetzungsfunktion […] für bestimmte […] Subjekte, […] innerhalb bestimmter Zeitintervalle und […] unter Einschränkung auf bestimmte gedankliche oder tatsächliche Operationen [Hervorhebungen im Original]« (Stachowiak 1973, S. 132-133).

Bei der Auswahl von Originalen sieht Stachowiak grundsätzlich keine Beschränkungen: Originale finden sich sowohl in der physischen Welt der Objekte und Gegebenheiten als auch in der gedanklichen Welt der menschlichen Vorstellungen. Ein Original aus der physischen Welt kann auf natürliche Weise entstanden oder technisch hergestellt worden sein. Denkbar sind auch materiell-energetische Objekte mit raum-zeitlichen Vorgängen oder räumliche Konfigurationen (vgl. Stachowiak 1973, S. 131).

Nach Stachowiak verfügen Originale und Modelle jeweils über eigene Attribute, d.h. sie bilden Attributklassen: »Unter Attributen sind Merkmale und Eigenschaften von Individuen, Relationen zwischen Individuen, Eigenschaften von Eigenschaften, Eigenschaften von Relationen usw. zu verstehen« (Stachowiak 1973, S. 134). Durch die Modellbildung erfolgt eine Zuordnung von Attributen des Modells zu Attributen des Originals. Diese Zuordnung kann man mathematisch als Abbildung auffassen. Bei dieser Abbildung kommt es durch die Auswahl relevanter Attribute und einem damit einhergehenden Weglassen irrelevanter Attribute zu einer Verkürzung.

Attribute des Originals, die bei einer Original-Modell-Abbildung übergangen bzw. ausgelassen werden, bezeichnet Stachowiak als präterierte Attribute. Ein präteriertes Attribut ist also dadurch gekennzeichnet, dass es ausschließlich beim Original existiert und beim Modell nicht zu finden ist (vgl. Stachowiak 1973, S. 155).

Attribute, die bei einer Original-Modell-Abbildung dem Modell neu hinzugefügt werden, bezeichnet er als abundante Attribute. Ein abundantes Attribut ist also dadurch gekennzeichnet, dass es ausschließlich beim Modell existiert und beim Original nicht zu finden ist (vgl. Stachowiak 1973, S. 156).

Des Weiteren ist es üblich, in Modellen bestimmte Züge und Beschaffenheiten des Originals in einer besonderen Weise hervorzuheben bzw. bestimmte Aspekte zu betonen. Die besondere Hervorhebung von bestimmten Attributen und die damit einhergehende Abgrenzung zu anderen Attributen bezeichnet Stachowiak als Kontrastierung und die hervorgehobenen Attribute entsprechend als kontrastierte Attribute (vgl. Stachowiak 1973, S. 156-157).

Modelle werden von Menschen für Menschen erschaffen. Die Relevanz von Attributen ergibt sich nicht willkürlich, sondern beruht entweder auf den Interessen der Modellbenutzer oder den Zielen des Modellerstellers (vgl. Stachowiak 1973, S. 132). Für Stachowiak sind hier neben dem Menschen, als natürlicher Modellbenutzer, grundsätzlich auch künstliche Modellbenutzer denkbar (vgl. Stachowiak 1973, S. 133).

Daraus folgt zwangsläufig, dass Modelle stets für einen bestimmten Zweck geschaffen werden. Es ist daher stets eine subjektive Feststellung, ob ein Modell zweckmäßig ist oder nicht. Ersteller und verschiedene Nutzer von Modellen können die Zweckmäßigkeit eines Modells durchaus sehr unterschiedlich beurteilen. Erschwerend kommt hinzu, dass sich der Zweck eines Modells auch ändern kann. Modelle erfüllen ihren Zweck nicht zeitlich unbegrenzt. Zu einer anderen Zeit kann ein anderes Modell zweckmäßig sein.

b) Definition Systemmodell

Der allgemeine Modellbegriff nach Stachowiak lässt für Originale auch informationelle Systeme zu. Für Modelle von dynamischen Systemen wird innerhalb dieser Arbeit der Begriff Systemmodell verwendet. Es wird die folgende Definition von Tabeling übernommen:

»Ein Systemmodell […] ist eine Abstraktion zu einem System (im Sinne des Systemgebildes), welche nur eine Menge ausgewählter, gerade interessierender Sachverhalte des betrachteten Systems aufweist [Hervorhebung im Original]« (Tabeling 2006, S. 37).

Definition 2.1-12: Systemmodell

Die von Stachowiak geforderte Abbildung (Abbildungsmerkmal) wird bei Systemmodellen durch Abstraktion realisiert. Die Originale sind hierbei konkrete oder zumindest konkret vorstellbare Systemgebilde. Ebenso wie Stachowiak weist auch Tabeling darauf hin, dass ein Systemmodell nur ausgewählte Sachverhalte (Attribute, Prädikate) des Originals enthält (Verkürzungsmerkmal) und die Auswahl der Sachverhalte zu einem bestimmten Zeitpunkt anhand von Zweckmäßigkeitsüberlegungen erfolgt, die sich aus den Interessen von (menschlichen) Modellerstellern und Modellnutzern ergeben (pragmatisches Merkmal).

Darüber hinaus stellt Tabeling fest, das Systemmodelle abstrakte Gebilde sind und somit nur in der Gedankenwelt eines Menschen als gedankliches Gebilde existieren können (vgl. Tabeling 2006, S. 37-38). Da informationelle Systeme auf der Interpretation von materiell-energetischen Systemen beruhen, kann man des Weiteren nicht allein durch Abstraktion zu einem Systemmodell kommen, sondern benötigt zusätzlich die Interpretation der beobachtbaren materiell-energetischen Sachverhalte (vgl. Tabeling 2006, S. 40).

2.1.4 Systembeschreibung

Im Unterabschnitt 2.1.3 wurde bereits herausgestellt, dass ein Systemmodell ein abstraktes Modell eines konkreten oder konkret vorstellbaren Systems ist. Ein Systemmodell kann nur gedacht werden und ist per Definition nicht wahrnehmbar.

a) Definition Systembeschreibung

Nach Bungert werden Beschreibungsformen benötigt, um ein Systemmodell wahrnehmbar zu machen (vgl. Bungert 1998, S. 34-35). Diese Beschreibungsformen werden von Tabeling als Systemmodellbeschreibungen (verkürzt: Systembeschreibungen) bezeichnet und dienen primär Zwecken der Aufbewahrung oder der Weitergabe von Wissen.

In dieser Arbeit wird der kürzere Begriff der Systembeschreibung verwendet. Eine Systembeschreibung ohne gedankliches Systemmodell ist nicht möglich (vgl. Tabeling 2006, S. 38). Nach Tabeling lässt sich Systembeschreibung wie folgt definieren:

»Eine Systembeschreibung ist ein konkretes Gebilde, welches (als) Form ein Systemmodell (als Bedeutung) identifiziert [Hervorhebung im Original]« (Tabeling 2006, S. 39).

Definition 2.1-13: Systemmodellbeschreibung / Systembeschreibung

Für ein Systemmodell kann es verschiedene Systembeschreibungen geben, wobei die Form der Darstellung nicht vorgegeben ist; üblicherweise werden Text oder grafische Darstellungen verwendet (vgl. Tabeling 2006, S. 39-40).

b) Beschreibung versus Beschriebenes

In Abbildung 2.1-2, S. → werden die Zusammenhänge zwischen System, Systemmodell und Systembeschreibung bei informationellen Systemen verdeutlicht.

Von einem materiell-energetischen System wird durch Abstraktion ein materiell-energetisches Systemmodell gewonnen. Dieses gedankliche Modell wird in Form eines entsprechenden „Dokumentes“ beschrieben, welches eine Systembeschreibung enthält.

Von dem materiell-energetischen Systemmodell wird dann durch Interpretation ein informationelles Systemmodell gewonnen. Hier erfolgt in etwa der Übergang von der Elektrotechnik zur Informationstechnik und im weiteren Verlauf dann zur Digitaltechnik, Informatik und Softwaretechnik. Das informationelle Systemmodell ist ebenfalls ein gedankliches Modell zu dem eine entsprechende Systemmodellbeschreibung existiert. Gleiches gilt für die verbindende Interpretationsvereinbarung.

Es erfolgt eine deutliche Trennung zwischen dem Beschriebenen und der Beschreibung. Beschrieben werden grundsätzlich Systemmodelle. Diese Systemmodelle sind gedacht und abstrakt. Die Beschreibungen der Systemmodelle und das modellierte materiell-energetische System hingegen sind konkrete und real existierende Dinge.

Bei informationellen Systemen werden Systemmodelle im Entwicklungsprozess eingesetzt. Hinterfragt man hierbei den Zweck bzw. die primäre Zielstellung solcher Beschreibungen, lassen sich Systembeschreibungen für Maschinen und Systembeschreibungen für Menschen differenzieren.

In Anlehnung an: Tabeling 2006, S. 42, Abb. 3.8. Abbildung 2.1-2: Beschreibung versus Beschriebenes

c) Definition für Implementierungsmodell

Nach Bungert liegen Systembeschreibungen für Maschinen in speziellen Formen vor, die es im Rahmen einer maschinellen Verarbeitung insbesondere ermöglichen, automatische Transformationen durchzuführen (vgl. Bungert 1998, S. 16). Diese Transformationen bilden als maschinelle Informationsverarbeitung eine wesentliche Grundlage für die Fertigung informationeller Systeme.

Systembeschreibungen für Maschinen müssen in formalen Sprachen formuliert werden. Auf Grund der formalen Eigenschaften können Operationen auf Systemmodellen stellvertretend auf Systembeschreibungen durchgeführt werden (vgl. Bungert 1998, S. 47-48). Nach Bungert kommt hierbei den Systembeschreibungen von sogenannten Implementierungsmodellen eine besondere Bedeutung zu:

»Als Implementierungsmodelle [Hervorhebung im Original] werden diejenigen formalen Systemmodelle bezeichnet, deren zugehörige Beschreibungsformen einer automatischen Fertigung für informationelle Systeme als Eingabeformen übergeben werden« (Bungert 1998, S. 48).

Definition 2.1-14: Implementierungsmodell

d) Definition für Anschauungsmodell

Im Gegensatz zu Maschinen dienen Systembeschreibungen für Menschen primär der zwischenmenschlichen Kommunikation. Zu diesem Zweck wird die gedankliche Vorstellung von einem zu schaffenden System (das Systemmodell) unter Beachtung einer Assoziationsvereinbarung in einer Systembeschreibung festgehalten, die zu einem späteren Zeitpunkt eine erneute Assoziation des Systemmodells ermöglicht (vgl. Bungert 1998, S. 15-16).

Bei der Entwicklung informationeller Systeme müssen zwischen den Beteiligten am Konstruktions- und Fertigungsprozess insbesondere Konstruktionsentscheidungen kommuniziert werden. Je anschaulicher eine Systembeschreibung ist, desto schneller können Assoziationen hergestellt und Konstruktionsentscheidungen verstanden werden (vgl. Bungert 1998, S. 51-52). Es wird folgende Definition für Anschauungsmodelle abgeleitet:

Als Anschauungsmodelle werden diejenigen Systemmodelle bezeichnet, deren zugehörige Beschreibungsformen primär der zwischenmenschlichen Kommunikation und der Veranschaulichung von Konstruktionsentscheidungen dienen.

Definition 2.1-15: Anschauungsmodell

Systembeschreibungen für Maschinen können grundsätzlich auch als Systembeschreibungen für Menschen verwendet werden. Da diese jedoch nicht auf Anschaulichkeit ausgerichtet sind, können sie die zwischenmenschliche Kommunikation natürlich nicht wie Anschauungsmodelle unterstützen.

2.2 Programmiertes digitales System

Dieser Abschnitt dient auf der Grundlage des informationellen Systembegriffs der weiteren Eingrenzung der betrachteten Systemklasse auf programmierte digitale Systeme. Es werden wichtige Grundprinzipien dieser speziellen Systemklasse beschrieben, zu denen insbesondere die Trennung von Abwickler- und Rollensystem sowie die Abwicklerschichtung und die Übersetzung gehören.

2.2.1 Digitales System

Die bisherigen Ausführungen bezogen sich ausschließlich auf informationelle Systeme. Auf dieser Grundlage wird nun die betrachtete Systemklasse weiter auf sogenannte programmierte digitale Systeme eingegrenzt. Die vorliegende Arbeit wird sich im weiteren Verlauf ausschließlich mit diesen speziellen Systemen beschäftigen, da diese Systemklasse den größten Teil der in der Praxis anzutreffenden Systeme repräsentiert. Der Begriff programmiertes digitales System enthält die beiden Bestandteile programmiert und digital.

a) Definition für digitales System

In einem ersten Schritt wird der Begriff des digitalen Systems geklärt. In Anlehnung an Tabeling lassen sich digitale Systeme wie folgt umschreiben:

Ein digitales System basiert auf einem digitalen Systemmodell (vgl. Tabeling 2006, S. 64). Ein Systemmodell wird als digital bezeichnet, wenn es sowohl wertdiskret als auch zeitdiskret ist (vgl. Wendt 1991a, S. 142-143).

Definition 2.2-1: Digitales System / Digitales Systemmodell

b) Digitales Systemmodell

Digitale Systeme sind eine Unterklasse von informationellen Systemen. In einem wertdiskreten Systemmodell werden alle betrachteten Schnittstellengrößen mittels Abstraktion oder Interpretation 1:1 auf die Menge oder eine Teilmenge der natürlichen Zahlen abgebildet (vgl. Tabeling 2006, S. 61). In einem zeitdiskreten Systemmodell werden alle Verläufe der betrachteten Schnittstellengrößen als relative zeitliche Abfolge ausgewählter Werte betrachtet (vgl. Tabeling 2006, S. 63).

2.2.2 Programmiertes System

a) Definition für programmiertes System

Im nächsten Schritt sind die Besonderheiten von programmierten Systemen zu beschreiben. Hier kann auf eine Definition von Wendt zurückgegriffen werden:

»Wenn man ein System als programmierbar bezeichnet, dann meint man damit, dass man dieses System durch Vorgabe eines Programmes dazu bringen kann, die Rolle eines gewünschten Systems zu spielen […]. Programmierung verbindet also immer zwei Systeme miteinander, nämlich zum einen dasjenige System, welches in der Lage ist, unterschiedliche Programme abzuwickeln […] und zum anderen dasjenige System, dessen Rolle durch Abwicklung eines aktuellen Programmes gespielt werden soll […]. Diese beiden bei der Programmierung untrennbar miteinander verbundenen Systeme werden […] als Abwickler und als Rollensystem [Hervorhebungen im Original] bezeichnet.« (Wendt 1991a, S. 315)

Definition 2.2-2: Programmiertes System

Das zugrundeliegende informationelle System, in welches die Beschreibung eingebracht wird, bezeichnet man auch als programmierbares System oder Abwicklersystem. Die einzubringende Beschreibung wird üblicherweise auch als Programm oder Software bezeichnet.

b) Definition für programmiertes digitales System

Die Definitionen für digitales System (Definition 2.2-1, S. →) und programmiertes System (Definition 2.2-2, S. →) lassen sich nun zu einer Gesamtdefinition für programmierte digitale Systeme zusammenführen:

Ein programmiertes digitales System ist dadurch gekennzeichnet, dass es auf einem digitalen Systemmodell basiert und mittels Programmierung realisiert wird.

Definition 2.2-3: Programmiertes digitales System

c) Klassenzuordnung für programmierte digitale Systeme

Die Abbildung 2.2-1, S. → zeigt die in dieser Arbeit verwendete Klassifikation für den Systembegriff in Form einer Baumstruktur sowie die Klassenzuordnung für programmierte digitale Systeme. Die Klassifikation ergibt sich, wenn man in der Abbildung von oben nach unten geht.

Die Klasse „System“ zerfällt zunächst in die Teilklassen „Dynamisches System“ und „Statisches System“. Die Klasse „Dynamisches System“ wiederum lässt sich in die Teilklassen „Informationelles System“ und „Materiell-energetisches System“ aufteilen. Die Klasse „Informationelles System“ zerfällt dann in die Teilklassen „Programmiertes System“ und „Nicht-programmiertes System“. Abschließend wird die Klasse „Programmiertes System“ in die Teilklassen „Programmiertes digitales System“ und „Programmiertes nicht-digitales System“ aufgeteilt.

Die Klassen, denen ein programmiertes digitales System angehört, wurden durch eine graue Schattierung hervorgehoben. Es sind hierarchisch von oben nach unten die Klassen: System – Dynamisches System – informationelles System – Programmiertes System – Programmiertes digitales System.

Abbildung 2.2-1: Klassenzuordnung für programmierte digitale Systeme

d) Beispiele für programmierte digitale Systeme

Die Tabelle 2.2-1 enthält einige Beispiele für Typen von programmierten digitalen Systemen. In der Tabelle werden für jeden Typ die Bezeichnung des Rollensystems sowie des Abwicklersystems und die für die Systembeschreibung verwendete Sprache angegeben.

Bezeichnung des Rollensystems

Bezeichnung des Abwicklersystems

Sprache der Systembeschreibung

Betriebssystem

Prozessor

Maschinensprache

Native Windows-Anwendung

Prozessor

Maschinensprache

Java Anwendung

Java VM

Bytecode

Android Anwendung

Dalvik VM

Dalvik Bytecode

.NET Anwendung

Common Language Runtime

Common Intermediate Language

Tabelle 2.2-1: Rollensysteme, Abwicklersysteme, Programmiersprachen

Digitale Systeme, die nicht mittels Programmierung realisiert werden, sind elementare digitale Schaltung, wie sie beispielsweise in modernen Computerprozessoren zu finden sind.3 Der Schwerpunkt dieser Arbeit liegt auf programmierten digitalen Systemen. Soweit nicht explizit erwähnt, beziehen sich die weiteren Ausführungen ausschließlich auf diese Systemklasse.

2.2.3 Abwicklersystem versus Rollensystem

Die Fertigung von programmierten und nicht-programmierten Systemen unterscheidet sich in wesentlichen Punkten und kann in Anlehnung an Tabeling grob wie folgt skizziert werden:

Bei der Fertigung eines programmierten Systems wird durch einen Menschen zunächst ein Systemmodell erdacht. Anschließend wird auf der Grundlage der Modellvorstellung eine Systembeschreibung in Form eines Programms (Software im engeren Sinne) erstellt. Das Programm wird übersetzt, gebunden und in den Speicher des Abwicklersystems geladen. Sobald das Programm zur Ausführung gebracht wird, verhält sich das Abwicklersystem wie das Rollensystem und zeigt ein entsprechend beobachtbares Verhalten.

Bei der Fertigung eines nicht-programmierten Systems wird ebenfalls zunächst ein Systemmodell erdacht. Anschließend wird die Systembeschreibung jedoch nicht in Form eines Programms, sondern in Form eines Schaltplans erstellt. Auf der Grundlage dieses Schaltplans wird dann mittels vorgefertigter Systemkomponenten die fertige Schaltung produziert. Durch Einschalten wird das System zum Leben erweckt. Nach dem Einschalten zeigt die Schaltung das gewünschte Verhalten.

Auch bei programmierten Systemen werden vorgefertigte Komponenten eingesetzt. Sowohl die eingesetzte Hardware (Computer und Peripheriegeräte) als auch die ggf. verwendeten Programmbibliotheken sowie ein Betriebssystem mit entsprechenden Betriebssystemdiensten kann man bei programmierten Systemen als vorgefertigte bzw. bereitgestellte Komponenten auffassen (vgl. Tabeling 2006, S. 187-189).

Tabeling weist darauf hin, dass bei programmierten Systemen das Abwicklersystem, das Rollensystem und das zur Realisierung erstellte Programm verschiedene Dinge sind. Insbesondere stellen Software und Programmcode keine informationellen Systeme dar, sondern sind lediglich Beschreibungen solcher Systeme (vgl. Tabeling 2006, S. 187).

Nach Tabeling hat Software im Sinne von Programmcode hierbei eine Doppelfunktion. Zum einen beschreibt der Programmcode ein informationelles Systemmodell und ist somit eine autonome Systembeschreibung. Zum anderen kann der Programmcode (ggf. nach entsprechender Transformation bzw. Übersetzung) in den Speicher eines Abwicklersystems eingebracht werden und von diesem maschinell verarbeitet werden (vgl. Tabeling 2006, S. 40).

Aus den vorgenannten Überlegungen wird folgende Definition für Software (im engeren Sinne) abgeleitet:

Die Systembeschreibung eines Rollensystems, die zur Abwicklung einem Abwicklersystem übergeben werden kann (ggf. nach entsprechender Übersetzung), wird als Software im engeren Sinne bezeichnet.

Definition 2.2-4: Software (im engeren Sinne)

Programmierte digitale Systeme werden in dieser Arbeit synonym auch als Softwaresysteme bezeichnet.

2.2.4 Systembeschreibungen von Rollensystemen

Systembeschreibungen von Rollensystemen, die für die maschinelle Abwicklung bestimmt sind, können nach verschiedenen Aspekten klassifiziert werden. Nach Wendt und Tabeling lassen sich der primäre Zweck eines Rollensystems sowie die Art der Formulierung der Systembeschreibung für eine Klassifizierung heranziehen:

Der Zweck eines Rollensystems kann Wendt zufolge entweder in einer Ergebnisorientierung oder in einer Prozessorientierung liegen. Bei ergebnisorientierten Rollensystemen wird aus einer Eingabe ein Resultat (Ergebnis) erzeugt. Hierbei ist primär nicht der Vorgang der Ergebniserzeugung, sondern nur das Ergebnis relevant. Ein Beispiel hierfür ist ein System, welches eine Menge von Zahlen sortiert. Im Gegensatz dazu steht bei prozessorientierten Rollensystemen die Ausführung eines bestimmten Prozesses im Vordergrund. Beispiele hierfür wären eine Ampelsteuerung oder ein Betriebssystem (vgl. Wendt 1991a, S. 108-109; Tabeling 2006, S. 191).

Angesichts der grundsätzlichen Möglichkeit, Programme prozedural oder funktional oder deklarativ zu formulieren, weist Tabeling zu Recht darauf hin, dass bei modernen programmierten Systemen die prozedurale Programmierung und somit auch der Einsatz prozeduraler Abwickler dominiert. Die Ursache dafür sieht er insbesondere darin, dass sich mittels prozeduraler Programmierung sowohl ergebnisorientierte als auch prozessorientierte Rollensysteme realisieren lassen. Da die funktionale und deklarative Programmierung ausschließlich ergebnisorientierte Systeme unterstützt, ist die prozedurale Programmierung somit universeller einsetzbar.

Funktionale und deklarative Abwickler werden daher häufig als Rollensystem durch einen prozeduralen Abwickler realisiert. In der Praxis ist dieses Konzept beispielsweise bei LISP-Interpretern (funktionale Programmierung) und PRO-LOG-Interpretern (deklarative Programmierung) zu finden (vgl. Tabeling 2006, S. 192-193). Eine ausführliche Beschreibung der verschiedenen Abwicklertypen findet sich bei Wendt (1991a, S. 382-478).

2.2.5 Übersetzung versus Abwicklerschichtung

Es wurde gezeigt, dass programmierte Systeme stets ein Abwicklersystem benötigen. Da programmierte Systeme eine Unterklasse der informationellen Systeme bilden, muss das zu Grunde liegende materiell-energetische System zwangsläufig die Funktion eines Abwicklersystems erfüllen. Dieses Abwicklersystem wird bei heutigen Computersystemen auf der untersten Ebene in Hardware und in der Regel als prozeduraler Abwickler realisiert. Innerhalb dieser Arbeit werden hierfür die Begriffe Prozessor oder Hardwareabwickler verwendet.

Die Programmierung eines Prozessors erfolgt in einer spezifischen hardwarenahen Programmiersprache, die auch als Maschinensprache bezeichnet wird. Der hierbei verwendete Befehlssatz ist sehr detailliert, wenig anschaulich und hat ein geringes Abstraktionsniveau, was die maschinennahe Programmierung sehr aufwändig macht. Dies führte zur Entwicklung von Hochsprachen. In einer Hochsprache lassen sich Systembeschreibungen für Rollensysteme auf einer höheren Abstraktionsebene sowie problemorientierter formulieren.

Prozessoren können Programme in Hochsprachen nicht direkt ausführen. Daher haben sich zwei grundsätzliche Verfahrensweisen herausgebildet, um die hardwarebasierte Abwicklung von Hochsprachenprogrammen zu ermöglichen. Die Verfahrensweisen sind in der Informatik allgemein als Übersetzung und Interpretation (Abwicklerschichtung) bekannt, vgl. Abbildung 2.2-2, S. →.

a) Definition Übersetzung

Bei einer Übersetzung wird ein Programm in der Quellsprache L2 in ein Programm in der Zielsprache L1 übersetzt. Die automatische Übersetzung erfolgt hierbei durch ein spezielles System, welches man als Übersetzer oder Kompilierer (engl. Compiler) bezeichnet (vgl. Tabeling 2006, S. 234-235).

Definition 2.2-5: Übersetzung

Eine Übersetzung kann auch in mehreren Schritten erfolgen. Am Ende der Übersetzungskette liegt dann ein Programm in einer Maschinensprache vor, welches von einem Prozessor abgewickelt werden kann (vgl. Tabeling 2006, S. 234-235).

b) Definition Abwicklerschichtung / Interpretation

Das Prinzip der Interpretation wird durch Wendt bildlich als „Rollenhuckepack“ bezeichnet (vgl. Wendt 1991a, S. 380). Tabeling verwendet hierfür den Begriff der Abwicklerschichtung, der hier übernommen wird.

Bei der Abwicklerschichtung wird ein Abwickler für eine Sprache L2 (L2-Abwickler) als Rollensystem in einer Sprache L1 für einen bereits vorhandenen Abwickler (L1-Abwickler) formuliert. Der so realisierte L2-Abwickler ist dann in der Lage, die Sprache L2 direkt abzuwickeln bzw. zu interpretieren (vgl. Tabeling 2006, S. 235-236).

Definition 2.2-6: Abwicklerschichtung / Interpretation

Diese durch Programmierung eines bereits vorhandenen Abwicklers realisierten Abwicklersysteme werden üblicherweise als Interpreter bezeichnet. Interpreter werden durch Abwickler auf tieferer Stufe abgewickelt. Daraus kann eine Schichtung von Abwicklern entstehen, die über mehrere Stufen geht und daher als Abwicklerschichtung bezeichnet wird (vgl. Tabeling 2006, S. 235-236). Die unterste Ebene bei einer Abwicklerschichtung wird immer durch einen Hardwareabwickler (Prozessor) realisiert.

Insbesondere basiert die in Unterabschnitt 2.2.4 angesprochene Realisierung funktionaler und deklarativer Abwickler auf dem Konzept der Abwicklerschichtung.

In Anlehnung an: Tabeling 2006, S. 235, Abb. 9.44. u. Abb. 9.45. Abbildung 2.2-2: Übersetzung versus Abwicklerschichtung

In Anlehnung an: Tabeling 2006, S. 235, Abb. 9.44. u. Abb. 9.45. Abbildung 2.2-2: Übersetzung versus Abwicklerschichtung

c) Übersetzung und Interpretation von Programmen

Sowohl bei der Übersetzung als auch bei der Interpretation handelt es sich um Transformationen, wie sie in Definition 2.1-14, S. → beschrieben werden. Die in diesem Zusammenhang angesprochenen Programme sind folglich stets Systembeschreibungen für Implementierungsmodelle auf der Basis formaler Programmiersprachen. Diese formalen Programmiersprachen sind nur bedingt für die Beschreibung von Anschauungsmodellen im Sinne der Definition 2.1-15, S. → geeignet.

In Abbildung 2.2-2, S. → werden die Zusammenhänge von Abwicklerschichtung und Übersetzung dargestellt. In der Abbildung wird auf der linken Seite das Grundprinzip der Übersetzung und auf der rechten Seite jenes der Abwicklerschichtung bzw. Interpretation verdeutlicht:

Bei der Übersetzung wird das Programm des gewünschten Rollensystems in L2-Sprache durch einen Menschen mittels eines geeigneten Editors erstellt. Das Programm wird anschließend an einen Übersetzer von L2-Sprache in L1-Sprache übergeben, der es nach L1-Sprache übersetzt. Nach der Übersetzung kann das Programm des Rollensystems durch einen Abwickler für L1-Sprachen abgewickelt werden. Durch die Abwicklung entsteht dann das gewünschte Rollensystem.