Was ist eigentlich Software?
Bei Software handelt es sich um einen Sammelbegriff für Computerprogramme und die dazugehörigen Daten. Ein Softwaresystem ist in der Lage, direkt zu bestimmen, was ein softwaregesteuertes Gerät (in der Regel die Hardware) tut und auf welche Weise es das tut. Moderne Computersysteme setzen sich aus hardware- und softwarebasierten Komponenten zusammen. Die Hardwarekomponenten führen dabei die Befehle von softwarebasierten Computerprogrammen aus und setzen sie so in die Tat um. Eine starre Hardware kann durch das softwaregesteuerte Arbeitsprinzip individuell arbeiten. Software kommt heutzutage nicht mehr ausschließlich in traditionellen Computern zum Einsatz, sondern auch in eingebetteten Computersystemen, wie zum Beispiel in Smartphones, Tablet-PCs, Fernsehgeräten und Waschmaschinen.
Definition von Software
Obwohl wir Computer und Softwaresysteme bereits seit Jahrzehnten nutzen, ist der Begriff Software bis heute nicht einheitlich definiert. Das geht in erster Linie darauf zurück, dass im Kontext der Softwaretechnik die systematische Begriffsdefinition durch eine hohe Innovationsgeschwindigkeit behindert wird. Aus diesem Grund gibt es eine Vielzahl verschiedener Definitionen, die sich je nach Kontext und Autor unterscheiden. Im allgemeinen Sprachgebrauch wird die Bezeichnung Software in den meisten Fällen auf Computerprogramme bezogen. Darüber hinaus wird Software als Gattungsbegriff für unterschiedliche Typen von Computeranwendungen verwendet, wie zum Beispiel:
– Computerspiele
– Systemsoftware
– Textbearbeitungssoftware
– Grafiksoftware
Entwicklungsgeschichte
Hardware und Software waren in den 1950er-Jahren noch konsolidiert und bildeten eine Einheit. Die Software war dabei eine Komponente des Hardwaresystems und wurde als Programmcode bezeichnet. Der US-amerikanische Statistiker John W. Tukey prägte den Begriff Software erstmals im Jahr 1958. Die Entscheidung der US-Regierung, dass der Computerhersteller IBM auf Rechnungen Hardware und Software gesondert zu berechnen habe, sorgte Anfang der 1970er-Jahre für eine kleine Revolution im Bereich der Computertechnik. Das sorgte für eine endgültige Aufspaltung von hardware- und softwarebasierten Komponenten und eine klare Abgrenzung dieser beiden Systemebenen. Im Rahmen dieser Entwicklungen folgte dann die Gründung von Firmen, deren Fokus ausschließlich auf der Entwicklung von Softwaresystemen lag. Zu diesen Firmen gehören IT-Giganten, wie Beispielsweise SAP in Deutschland und Microsoft in den USA.
Wie funktioniert Software?
Softwaresysteme nutzen digitale Informationen, um auf Funktionalitäten der Hardware zuzugreifen und diese zu steuern. Industrielle Maschinen, Hausgeräte, Unterhaltungselektronik und andere Geräte können diese digitalen Informationen nur in ihrer eigenen Sprache erfassen und verarbeiten. Diese Sprache der Maschinen wird auch als Maschinensprache oder Maschinencode genannt. Maschinensprache basiert auf einem Binärcode-System, das wiederum aus einzelnen Anweisungen aufgebaut ist. Diese Anweisungen werden als elektronische Impulse verarbeitet. Softwaresysteme müssen in mühsamer Arbeit programmiert werden, um diese digitalen Informationen verständlich an die Hardwareebene, Maschinen oder andere Computerprogramme weiterzugeben. Da die Maschinensprache für den Menschen äußerst kompliziert und nur schwer verständlich ist, wurden im Laufe der Jahre zahlreiche Programmiersprachen entwickelt, um Computerprogramme schneller und effizienter zu entwickeln.
Programmiersprachen
Moderne Programmiersprachen setzen sich aus textuellen Befehlen und Anweisungen zusammen, die für den Menschen viel leichter verständlich sind als Binärcodes. Diese Befehle werden in einer Textdatei gespeichert, die je nach Sprache eine eigene Dateiendung hat, wie zum Beispiel .class oder .java. Diese textuellen Dateien werden Quellcode oder Quelltext (Source Code) bezeichnet. Der Quelltext wird dann von einem Compiler oder Interpreter in eine Datei übersetzt, die den Maschinencode beinhaltet und sich in einer Umgebung, wie beispielsweise auf einem Betriebssystem, ausführen lässt. Diese Produkte werden Programme genannt. Eine jede ausführbare Datei ist mit einer bestimmten Endung versehen, die explizit anzeigt, für welches System oder Hardware die jeweilige Applikation programmiert wurde. Die beliebtesten Programmiersprachen sind:
– C
– C++
– Java
– Python
Es gibt Programmiersprachen, die für die Entwicklung von Computerprogrammen für ein breites Anwendungsfeld ausgerichtet sind wie Java oder C#. Darüber hinaus gibt es auch sogenannte Skriptsprachen, die in erster Linie für die Programmierung einfacher und wenig umfangreicher Anwendungen genutzt werden, wie zum Beispiel JavaScript oder Python.
Typen von Software
Es gibt eine Vielzahl unterschiedlicher Arten von Software, die sich durch Funktionen und Features, Verfügbarkeit des Quellcodes und Lizenzen unterscheiden. Bei Computern kommt ein breites Spektrum von Software zum Einsatz. So gibt es Firmware für das BIOS, Systemsoftware wie das Betriebssystem und eine große Vielfalt an Anwendungssoftware wie Textbearbeitungsprogramme, Computerspiele oder Videoplayer. Das Nutzungsrecht von Software wird mit sogenannten Lizenzen geregelt. Diese kommen in Form von Freeware, Shareware, proprietärer Software und freier Software vor. Bei proprietärer Software handelt es um Softwareprodukte, wie zum Beispiel Windows oder Microsoft Office. Die Nutzungsbedienungen sind bei dieser Art von Software sehr restriktiv und der Quellcode ist nicht frei verfügbar. Als Open-Source wird Software bezeichnet, deren Quellcode frei verfügbar ist und sich in der Regel nach eigenen Anforderungen und Bedürfnissen anpassen lässt. Aber auch hier können die Nutzungsbedienungen mehr oder weniger durch unterschiedliche Lizenzen eingeschränkt sein. Bei freier Software handelt es sich grundsätzlich um Open-Source-Software, die die Freiheit von Anwendern in den Mittelpunkt stellt und Nutzern uneingeschränkte Nutzungsrechte an der Software gibt.
Bei Software handelt es sich um einen Oberbegriff für ausführbare Computerprogramme, die in erster Linie genutzt werden, um Hardwarekomponenten, Maschinen oder Geräte zu steuern. Moderne Software wird in Programmiersprachen geschrieben, mit denen sich Befehle und Konstrukte nachvollziehbar darstellen und für unterschiedliche Plattformen entwickeln lassen.
- Über den Autor
- Aktuelle Beiträge
Daniel Faust ist Redakteur im Content-Team der Biteno und betreut den Blog der Biteno GmbH.