Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Software

Software ist ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben. · Software sind Programme sowie die zugehörige …

Inhalt6 Abschnitte
  1. 1. Grundbegriff und Bedeutung
  2. 2. Definitionen und Abgrenzung
  3. 3. Eigenschaften und Verhältnis zur Hardware
  4. 4. Ausführung, Entwicklung und Betrieb
  5. 5. Arten und Kategorien
  6. 6. Lizenzen, Qualität und wirtschaftliche Sicht

Grundbegriff und Bedeutung

Software ist ein Sammelbegriff für Computerprogramme und die zugehörigen Daten. Je nach Definition können auch weitere Bestandteile dazugehören, zum Beispiel die Softwaredokumentation als digitales oder gedrucktes Handbuch. Software bestimmt, was ein softwaregesteuertes Gerät tut und wie es das tut. Die Hardware, also das Gerät selbst, führt die Software aus und setzt ihre Anweisungen in reale Vorgänge um.

Software macht es möglich, dass eine gleichartige oder starre Hardware unterschiedliche Aufgaben erfüllen kann. Dieses Prinzip gilt nicht nur für klassische Computer, sondern auch für viele eingebettete Systeme, etwa Waschmaschinen, Fernsehgeräte, Mobiltelefone und Navigationssysteme. Im Kern ist Software die Gesamtheit der Informationen, die der Hardware hinzugefügt werden müssen, damit ein Gerät für ein bestimmtes Aufgabenspektrum nutzbar wird.

Definitionen und Abgrenzung

Der Begriff Software ist nicht einheitlich und nicht eindeutig definiert. Im allgemeinen Sprachgebrauch meint er oft nur Programme. In anderen Zusammenhängen gehören auch Quelltext, weitere Daten oder Dokumentation dazu.

Die ISO/IEC-Norm 24765 nennt mehrere Definitionen: Software ist „ein Programm oder eine Menge von Programmen, die dazu dienen, einen Computer zu betreiben“; Software sind „Programme sowie die zugehörige Dokumentation“; Software sind „Programme und ggf. die zugehörige Dokumentation und weitere Daten, die zum Betrieb eines Computers notwendig sind“. Welche Definition passt, hängt vom Zusammenhang ab.

In der Softwaretechnik umfasst Software Computerprogramme in jeder Erscheinungsform, vom Quelltext bis zum direkt ausführbaren Maschinencode. Im Softwarerecht kann Software als Softwareprodukt verstanden werden, zu dem auch Dokumentation gehört. Im Urheberrecht gehört auch Entwurfsmaterial wie der Quelltext, auch Quellprogramm genannt, zur Software. Manche Definitionen zählen außerdem nicht-ausführbare Bestandteile dazu, zum Beispiel Schriftarten, Grafiken, Audio- und Videoaufzeichnungen, Vorlagen, Wörterbücher, Dokumente und Datenbank-Datensätze.

Eigenschaften und Verhältnis zur Hardware

Software ist immateriell. Sie besteht aus Sprachen und Notationen, in denen sie formuliert ist. Sie kann auf Datenträgern gespeichert, gedruckt, angezeigt oder übertragen werden, aber diese Medien sind nicht die Software selbst, sondern enthalten sie nur.

Die Grenze zwischen Software und Daten ist fließend. Zur Verarbeitung bestimmte Daten zählen im Alltag meist nicht zur Software. Es gibt aber Mischformen, zum Beispiel Office-Dokumente oder Tabellenkalkulationsdateien, die sowohl bearbeitete Daten als auch funktionale Anweisungen wie Makros oder Zellformeln enthalten. Auch ein Quellprogramm kann je nach Rolle Software oder Daten sein: Ein Compiler verarbeitet es als Daten und erzeugt daraus Maschinen- oder Zwischencode.

Zur Unterscheidung von Hardware gibt es mehrere Sichtweisen: Software ist die leicht veränderbare Komponente, Hardware die schwer veränderbare; Software ist Instruktionscode, Hardware die universelle Maschine; Software ist nicht greifbar, Hardware besteht aus greifbaren Komponenten. Diese Gegensätze entsprechen den englischen Begriffen soft und hard.

Ausführung, Entwicklung und Betrieb

Beim Ausführen von Software arbeitet die Hardware die Anweisungen ab. Auf unterster Ebene wird Maschinencode unter Nutzung des Betriebssystems in den Hauptspeicher geladen und dem Rechenwerk Schritt für Schritt zur Ausführung zugeführt. Auch Interpreter, Compiler, Makroprozessoren und andere Systemsoftware folgen letztlich diesem Prinzip, weil auch sie selbst als Maschinencode ausgeführt werden.

Bei modernen Computern wirken viele Schichten zusammen. Einfache Funktionen in höheren Programmiersprachen können intern Hunderttausende oder Millionen von Maschinenbefehlen auslösen. Das parallele Ausführen mehrerer Programme oder Prozesse wird im Wesentlichen durch das Betriebssystem organisiert, zum Beispiel durch Multitasking. Software beeinflusst außerdem, wie effizient Hardware genutzt wird: Unterschiedliche Algorithmen können mit derselben Hardware unterschiedliche Systemleistungen erreichen.

Softwareentwicklung ist ein komplexer Vorgang und wird durch die Softwaretechnik systematisiert. Typische Schritte reichen von Analyse über Softwaremodellierung bis zum Testen. Während der Entwicklung entstehen verschiedene Zwischenstände, etwa Entwicklungsdokumente, Quellcode und ausführbarer Code. Software wird nach der Entwicklung meist mehrfach angepasst und erweitert; ihr Lebenszyklus kann mehrere Jahre betragen. Sie verschleißt nicht durch Nutzung, kann aber altern. Fehler, auch Programmfehler oder „Bugs“ genannt, werden durch neue Versionen, Patches und Softwaretests behoben.

Der Betrieb von Software erfordert je nach Einsatzbereich Organisation, etwa beim Ablösen alter durch neue Versionen im Releasemanagement. Software kann vorkonfiguriert werden, um Neuinstallationen zu beschleunigen und Konfigurationsfehler zu verringern.

Arten und Kategorien

Nach ISO/IEC 2382 wird Software unter anderem in Systemsoftware, Unterstützungssoftware und Anwendungssoftware gegliedert. Systemsoftware ist anwendungsunabhängige Software, die das Ausführen von Anwendungssoftware ermöglicht oder unterstützt, zum Beispiel Betriebssysteme, Gerätetreiber und Dienstprogramme. Unterstützungssoftware hilft bei Entwicklung und Wartung oder erbringt nicht-anwendungsspezifische Leistungen, etwa Editoren, Compiler, Virenscanner oder Datenbankmanagementsysteme. Anwendungssoftware unterstützt Benutzer direkt bei ihren Aufgaben, zum Beispiel eine Tabellenkalkulation.

Nach dem Grad der Individualität unterscheidet man Standardsoftware und Individualsoftware. Standardsoftware wird für mehrere oder viele Kunden erstellt. Individualsoftware wird für einen einzelnen Anwender zur Lösung einer speziellen Aufgabe entwickelt oder angepasst. Rechtlich wird beim Erwerb ebenfalls unterschieden: Für Individualsoftware wird ein Werkvertrag oder Werklieferungsvertrag abgeschlossen, der Erwerb von Standardsoftware gilt als Sachkauf.

Weitere Einteilungen betreffen die Form der Ergebnisse, zum Beispiel Quellcode, Zwischencode, Maschinencode, Installationsprogramme und Dokumentation. Nach der Einbettung unterscheidet man nicht eingebettete Software von fest in einem Gerät untergebrachter Software. Diese fest integrierte Software heißt Firmware oder eingebettete beziehungsweise embedded Software. Außerdem gibt es Einordnungen nach Nutzungsrecht, Quellcode-Verfügbarkeit und Verfügbarkeit, etwa Freeware, Freie Software, Open Source, proprietäre Software, Abandonware oder Vaporware.

Lizenzen, Qualität und wirtschaftliche Sicht

Die Verbreitung und Nutzung von Software unterliegt dem Urheberrecht. Beim Verkauf wird Software vollständig inklusive Weiterverbreitungsrechten übertragen; das kommt praktisch nur zwischen Unternehmen vor, etwa bei Auftragsprogrammierung oder beim Verkauf eines Softwareentwicklungsunternehmens. Häufiger wird nur ein Nutzungsrecht überlassen, auch wenn Software im Alltag scheinbar „gekauft“ wird. Bei Software-as-a-Service wird Software bei einem Dienstleister gehostet und pro Zeitraum oder Nutzungseinheit genutzt.

Freie Software darf von jedem genutzt, beliebig verändert und weiterverbreitet werden. „Frei“ bedeutet hier nicht kostenlos und ist nicht dasselbe wie Freeware. Die von Richard Stallman 1985 gegründete Free Software Foundation versteht freie Software vor allem als ethische und soziale Frage. Die 1998 gegründete Open Source Initiative sieht quelloffene Software dagegen eher als praktisches Entwicklungsmodell. Beide Bewegungen unterscheiden sich in ihren Zielen, teilen aber die Wertschätzung für offenen Quellcode.

Für Softwarequalität werden funktionale und nicht-funktionale Eigenschaften betrachtet, darunter Funktionalität, Zuverlässigkeit, Benutzbarkeit, Effizienz, Änderbarkeit und Übertragbarkeit. Genauere Angaben nennt zum Beispiel die Norm ISO/IEC 9126. Für konkrete Softwareprojekte muss festgelegt werden, welche Anforderungen im Detail gelten.

Aus betriebswirtschaftlicher Sicht kann besonders betriebliche Anwendungssoftware als im Voraus geleistete geistige Arbeit verstanden werden. Ein Textverarbeitungsprogramm kann zum Beispiel die Trennung deutscher Wörter automatisieren, sodass diese Arbeit für viele Nutzer bereits vorab in Software umgesetzt wurde. In der Arbeitssoziologie wird Software auch als Mittel gesehen, Arbeitsinhalte und Arbeitsabläufe stark zu verändern, von einfachen Hilfsmitteln bis zur vollständigen Ersetzung bestimmter Tätigkeiten durch IT-Lösungen.

Lernvideos zu Software

Weiterlesen

Hardware Unterteilung · Ausgabegeräte (Drucker, Bildschirm, Beamer, Lautsprecher …) · Eingabegeräte (Tastatur, Maus, Joystick …) · Einlesegeräte (Mikrofone, … Daten Daten bezeichnet als Plural von Datum Fakten, Zeitpunkte oder kalendarische Zeitangaben. Als Pluralwort steht es für durch Beobachtungen, Messungen u. a. Computer Ein Computer (englisch; deutsche Aussprache [kɔmˈpjuːtɐ]) oder Rechner ist ein Gerät, das mittels programmierbarer Rechenvorschriften Daten verarbeitet. John W. Tukey John Wilder Tukey (* 16. Juni 1915 in New Bedford, Massachusetts; † 26. Juli 2000 in New Brunswick (New Jersey)) war ein US-amerikanischer Statistiker. Quelltext Quelltext, auch Quellcode (englisch source code) oder unscharf Programmcode genannt, ist in der Informatik der für Menschen lesbare, in einer … Datenstruktur In der Informatik und Softwaretechnik ist eine Datenstruktur ein Objekt, welches zur Speicherung und Organisation von Daten dient. Es handelt sich um eine … Prozessor Aufbau und Funktionale Einheiten · Hauptprozessor (CPU) und Mehrprozessorkerne · Steuer- bzw. Leitwerk · Rechenwerk und Register · Datenleitungen · Caches und MMU. Partitur Heute hat die Partitur zentrale Bedeutung für das Komponieren, Überliefern und Aufführen mehrstimmiger Musik. In der Zeit vor 1600 waren noch andere … Lookup-Tabelle Lookup-Tabellen (LUT) bzw. Umsetzungstabellen werden in der Informatik und in der Digitaltechnik verwendet, um Informationen statisch zu definieren und … Datenbank Eine Datenbank, auch Datenbanksystem genannt, ist ein System zur elektronischen Datenverwaltung. Die wesentliche Aufgabe einer Datenbank ist es, große … Höhere Programmiersprache Eine höhere Programmiersprache ist eine Programmiersprache zur Abfassung eines Computerprogramms, die in Abstraktion und Komplexität von der Ebene der … Integrierte Entwicklungsumgebung Eine integrierte Entwicklungsumgebung (IDE, von englisch integrated development environment) ist eine Sammlung von Computerprogrammen, mit denen die …