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
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
13:34
Informatik: Jobeinstieg als Software-Entwickler bei SAP | alpha Uni
alpha Uni · 481.485 Aufrufe
4:18
Digitale Grundlagen: Software einfach und kurz erklärt
erklaerung-und-mehr · 84.636 Aufrufe
11:37
Vom Abfall zum Rohstoff–wie Software die Kreislaufwirtschaft steuert | Welt der Wunder–Das Interview
Welt der Wunder · 49.107 Aufrufe
2:16
Requirements Engineering - Georgia Tech - Software Development Process
Udacity · 35.016 Aufrufe