Software
{{Begriffsklärungshinweis}}
Software [{{IPA|'s?f(t)w??}}] (dt. = weiche Ware [von] soft = leicht veränderbare Komponenten [...], Komplement zu 'Hardware' für die physikalischen Komponenten)Duden Informatik ISBN 3-411-05232-5 ist ein Sammelbegriff für ausführbare Programme und die zugehörigen Daten.Wolfgang Lassmann: Wirtschaftsinformatik. ISBN 978-3-409-12725-7 Sie dient dazu, Aufgaben zu erledigen, indem sie von einem Prozessor ausgewertet wird und so softwaregesteuerte Geräte in ihrer Arbeit beeinflusst.Ludewig/Lichter: Software Engineering, Ausgabe 2010, ISBN 978-3-89864-662-8, Leseproben Kapitel 2.3 [http://dpunkt.de/buecher/3354.html]
In diesem Sinne wurde der Begriff erstmals 1958 von John W. Tukey benutzt.[http://www.linfo.org/software.html linfo.org – Software Definition], 1958, Januar-Ausgabe des American Mathematical Monthly (Titel: The Teaching of Concrete Mathematics). Tukey schreibt: „Today the "software" comprising the carefully planned interpretive routines, compilers, and other aspects of automative programming are at least as important to the modern electronic calculator as its "hardware" of tubes, transistors, wires, tapes and the like.“ Durch das softwaregesteuerte Arbeitsprinzip kann eine starre Hardware individuell arbeiten. Es wird heutzutage nicht nur in klassischen Computern angewendet, sondern auch in vielen anderen Systemen, wie beispielsweise in Waschmaschinen, Handys, Navigationssystemen und modernen Fernsehgeräten.
Entgegensetzungen
Als Terminus wird 'Software' in zwei typischen Entgegensetzungen gebraucht:
Software als Gegenstück zu Hardware
Die physischen Bestandteile eines Computersystems (die Geräte selbst, zuzüglich Kabel, etc.) werden unter dem Begriff 'Hardware' zusammengefasst. Ein Datenträger ist Teil der Hardware. Auf ihm wird Software zu Informationszwecken gespeichert. Sie ist dafür gedacht, von einem Prozessor interpretiert zu werden: Sie beschreibt in Form von Anweisungen, was der Prozessor tun soll (z. B. "x + y") und konkretisiert darüber hinaus den genauen Verlauf der Abarbeitung anhand weiterer Daten (z. B. "5 + 3"). In diesem vollen Umfang wird Software von einem Prozessor interpretiert, weshalb in der Veranschaulichung von Software als Gegenstück zur Hardware der Programmcode und die zur Verarbeitung bestimmten Daten zusammen als Software betrachtet werden.[http://www.linfo.org/software.html linfo.org – Software Definition], Zitat: „[…] In a broader sense it can also refer to all information (i.e., both programs and data) in electronic form, and it can provide a distinction from hardware, which refers to media and systems on which software can exist and be used […]“ Software umfasst beispielsweise die Firmware (z. B. das BIOS), das Betriebssystem, die Anwendungsprogramme bis hin zu allen (möglichen) Dateien eines softwaregesteuerten Gerätes.
Je nach Zusammenhang ist hierbei eine oder mehrere der folgenden Bedeutungen mehr oder minder gemeint:
* Leicht veränderbare Komponente (Software) vs. schwer veränderbare Komponente (Hardware) in einem Computerdesign* Universelle Maschine (Hardware) vs. Instruktionskode (Software)
* Abstrakt oder nicht-physisch im Sinne von Funktionsbestandteilen eines Computersystems, die sich „nicht anfassen lassen“ (Software) im Gegensatz zu den konkreten oder physischen Komponenten (Hardware). Damit ist Folgendes gemeint: Datenträger als Teil der Hardware weisen eine bestimmte Beschaffenheit auf. In einem für Computer üblichen Binärsystem manifestiert sich die gemeinte Beschaffenheit in Form von gesetzten oder gelöschten Bits (den digitalen Daten, also der Software), die darauf gespeichert werden. Elektronisch gesetzte Bits haben für sich keine Substanz. Software lässt sich somit „nicht anfassen“. Die Beschaffenheit eines Datenträgers lässt sich zwar faktisch nicht von der Hardware trennen, denn die Beschaffenheit einer Sache gehört zur Sache selbst. Ungeachtet dessen ist es seit John Wilder Tukey üblich, dass Software und Hardware getrennt voneinander betrachtet werden.
Zur Veranschaulichung des nicht-physischen Charakters von Software und deren Einfluss auf die Arbeitsweise der Geräte lässt sich ein Computer vorstellen, auf dem eine andere Variante des Betriebssystems installiert wird. Dafür muss die Hardware nicht erweitert oder ausgetauscht werden, was bedeutet, dass das Gerät äußerlich unverändert wirkt. Tatsächlich wird nur die Eigenschaft der Datenträger verändert; es werden Bits gesetzt beziehungsweise gelöscht. Dennoch arbeitet das System dank der aktualisierten Software anders als zuvor, weil die gesetzten (geänderten) Eigenschaften vom Prozessor interpretiert werden.
Die Gegensätze sind in der englischsprachigen Begriffprägung (soft=weich, hard=hart) beabsichtigt.
Der Übergang zwischen Hard- und Software lässt sich an den ersten Spielhallenspielen verdeutlichen, wie das Spiel Breakout. Einstmals bestand deren komplettes Programm (der Ablauf, die Logik) bildlich gesehen aus „vorverdrahteten Schalttafeln“.Steve Wozniak: iWoz – Wie ich den Personal Computer erfand und Apple mitgründete. Deutscher Taschenbuchverlag 2008, ISBN 978-3-423-34507-1, S. 144-149 Sie verwendeten keinen Prozessor. Erst später, als solche Spiele für Computer programmiert wurden, gab es diese Spiele als Software. Das Spiel bestand nicht mehr aus „vorverdrahteten Schalttafeln“, sondern aus Anweisungen für einen Prozessor inklusive der für die Abarbeitung notwendigen weiteren Informationen, die gemeinsam auf einem Datenträger hinterlegt wurden.
Software in Abgrenzung zu den zur Verarbeitung bestimmten Daten
Im allgemeinen Sprachgebrauch und in der Literatur zu Softwaretechnik wird die Definition von 'Software' eingeschränkt auf Computerprogramme und die mit ihnen eng verbundenen Ressourcen, wie z. B. Konfigurationsdaten neben Icons und Schriftarten, die zum Betrieb notwendig sind.http://www.wissen.de/wde/generator/wissen/ressorts/technik/computer/index,page=1207964.html Die zur Verarbeitung bestimmten Daten (z. B. digitalisierte Musikstücke) werden hier meist nicht als Software verstanden.Auszug aus lexikon.meyer.de: „[...] Im allgemeinen Sprachgebrauch wird die Bezeichnung Software meist nur auf Programme bezogen, nicht aber auf andere Daten [...]“ (eine Verlinkung dahin ist nicht mehr möglich, da „Meyers Lexikon Online“ zum 23. März 2009 eingestellt wurde). Nach dieser Definition wird Software auch als Softwaresystem oder Softwareprodukt bezeichnet,Stefan Schneider: Empirische Evidenz für die Relevanz des Geschäftsmodells Softwareentwicklung und -absatz. ISBN 978-3-8350-0197-8. das als Beiwerk zusätzlich Bestandteile wie z. B. die Softwaredokumentation in der digitalen oder gedruckten Form eines Handbuchs enthalten kann.[http://books.google.de/books?id=ML4SwN6Rc_QC Lehr- und Übungsbuch Informatik 1. Hanser Verlag, 2003, Seite 311]
Auch die Begriffe Programm und Daten können einander entgegensetzt gebraucht werden, wobei 'Programm' dann die Funktion des Programms im Sinne als ausführende Instanz meint, 'Daten' das Bearbeitete.
Diese Rollen können ggfls. je nach Lage der Dinge vertauscht werden. Ein Quellprogramm, das von einem Übersetzer in ein Maschinenprogramm umgewandelt wird, tritt wie das erzeugte Binärprogramm als Daten auf. Ähnlich wie Hardware ein (als Daten aufgefasstes) Binärprogramm in dessen Funktion (Aktivität) umwandelt, kann dies auch ein Interpreter mit einem Quellprogramm oder ein Emulator mit dem Binärprogramm.
Dieser Zusammenhang, dass ein Programm sowohl als Daten als auch als Funktion auftreten kann, ist zentral in verschieden Disziplinen der Informatik, darunter die theoretische Informatik (u. a. Rekursionstheorie, Automatentheorie, Domaintheorie), und die technische Informatik (z. B. Von-Neumann-Architektur).
Wesen und Eigenschaften von Software
Software ist im Voraus geleistete geistige Arbeit
Abhängig vom Einsatzzweck kann Software aus (betriebs-)wirtschaftlicher Sicht als 'im Voraus geleistete geistige Arbeit', also als Investition betrachtet werden. Zum Beispiel erarbeiten die Programmautoren ein Lösungsverfahren für die korrekte Trennung aller deutschen Wörter in einem Textverarbeitungsprogramm. Damit ist im Voraus, also bevor diese Tätigkeit überhaupt anfällt, schon für alle Schreiber, die mit diesem Textverarbeitungsprogramm arbeiten, die geistige Arbeit „korrektes Trennen deutscher Wörter“ geleistet. Dabei wird die Eigenschaft von Computern genutzt, auf sie verlagerte Aufgaben erheblich schneller und zuverlässiger ausführen zu können - als dies bisher Menschen möglich wäre. Auch bei der Softwareentwicklung kann mitunter auf „im Voraus“ von Dritten entwickelte Algorithmen zurückgegriffen werden.
Software als vergegenständlichte Kopfarbeit
Eine ähnlicher Zusammenhang zwischen Software und Kopfarbeit wird in der Arbeitssoziologie gesehen.
::Hierin liegt der qualitative Unterschied gegenüber herkömmlichen Rationalisierungsinstrumenten wie beispielsweise Tischrechenmaschinen oder Buchungsautomaten. [...] Die menschliche Arbeit blieb Träger des Informationsverarbeitungsprozesses, Maschinen dienten lediglich als Hilfsmittel zur Rationalisierung der Rechen- und Schreibprozesse. Bei der Automatisierung der Informationsverarbeitung durch EDV wird dagegen lebendige Kopfarbeit in vielfältigen Angestelltenfunktionen beseitigt. Die Kopfarbeit ist in tote Arbeit in Gestalt von Programmen eines EDV-Systems umgewandelt. Die Programme eines EDV-Systems stellen sozusagen »materialisierte« Kopfarbeit dar.
::– Brödner et al: Der programmierte Kopf, 1982, S.53Der programmierter Kopf. Eine Sozialgeschichte der Datenverarbeitung. P.Brödner, D.Krüger, B.Senf, 1982, ISBN 3-8031-2082-9
Weitere Eigenschaften von Software
Weitere Eigenschaften von Software sind:
* Einmal erzeugte Software kann mit verhältnismäßig geringen Kosten vervielfältigt werden, die meist durch Datenträger, Werbung und dem Herstellen von Verpackung und zu Papier gebrachten Dokumentationen anfallen.
* Software verschleißt nicht durch Nutzung, unterliegt jedoch mit der Zeit der Softwarealterung.
* Software ist meist austauschbar, aktualisierungsfähig, korrigierbar und erweiterbar, insbesondere dann, wenn Richtlinien eingehalten werden und der Quelltext verfügbar ist.
* Mitunter kann Software vorkonfiguriert werden, um so eine Neuinstallation zu beschleunigen und um Fehler bei der Konfiguration zu minimieren.
* Software tendiert dazu, umso mehr Fehler zu enthalten, je komplexer sie ist. Fehler werden in aktualisierten Softwareversionen oder mithilfe eines Patches behoben. Softwarefehler bezeichnet man auch als Bugs.
* Der Beweis der Fehlerfreiheit ist in der Regel nicht zu erbringen. Nur bei formaler Spezifikation der Software ist der mathematische Beweis ihrer Korrektheit theoretisch überhaupt möglich.
Geschichte
In den 1950er Jahren waren Software und Hardware noch verbunden und als Einheit wahrgenommen. Die Software war dabei Teil der Hardware und wurde als Programmcode bezeichnet. 1958 prägte der Statistiker John W. Tukey den Begriff Software erstmalig.
Später sorgte dann die Entscheidung der US-Regierung in den 1970er Jahren für eine Neuheit, dass IBM auf Rechnungen Software und Hardware getrennt zu berechnen und aufzuführen habe. Dies entsprach einer Anerkennung der Einzelhaftigkeit von Software von offizieller Seite und einer endgültigen Aufspaltung von Hardware und Software bzw. einer Abgrenzung der Software von der Hardware.
Dieser Entwicklung folgte dann in den 1980er Jahren die Gründung von Firmen, die erstmalig nur mit Software handelten und nur Software und keine Hardware entwickelten. Zu diesen Firmen gehörte in den USA Microsoft und in Deutschland SAP. Die Existenz solcher Firmen erscheint im 21. Jahrhundert als Selbstverständlichkeit, stellte damals jedoch eine erhebliche Neuentwicklung dar.
Arten von Software
Software lässt sich nach verschiedenen Kriterien unterscheiden.
;Unterteilung nach der Nähe zur Hardware beziehungsweise Anwender:* Systemsoftware, die für grundlegende Funktionen des Computers erforderlich ist. Hierzu zählen insbesondere das Betriebssystem sowie Gerätetreiber.
* systemnahe Software, der Bereich zwischen Betriebssystem und Anwendungssoftware z. B. Dienstprogramme, Datenbank-Verwaltungswerkzeuge, Programmierwerkzeuge und Middleware.
* Anwendungssoftware, die den Benutzer bei der Ausführung seiner Aufgaben unterstützt und ihm dadurch erst den eigentlichen, unmittelbaren Nutzen stiftet
;Unterteilung nach Art des Auftraggebers:* Standardsoftware: Wird von einem Softwareanbieter erstellt, und kann von Kunden erworben werden
* Individualsoftware: für einen (oder von einem) einzelnen Anwender individuell erstellt
Rechtlich wird zwischen Individualsoftware und Standardsoftware unterschieden: Bei dem Erwerb von Individualsoftware wird ein Werkvertrag bzw. Werklieferungsvertrag abgeschlossen, der Erwerb von Standardsoftware gilt als Sachkauf.
Siehe auch: Seriennummer, Spyware, Langzeitarchivierung, Gebraucht-Software
;Software nach der Art der Einbettung:* nicht eingebettete Software (Software, die installiert wird)
* fest in einem Gerät zu dessen Steuerung untergebrachte Software (z. B. in einem ROM), bezeichnet man als Firmware oder auch Eingebettete Software.
;Einstufung nach Nutzungsrecht (Lizenz):* Adware
* Beerware
* Cardware (auch Postcardware)
* Careware
* Crippleware
* Donationware
* Freeware
* Nagware
* Shareware
;Unterteilung nach Quellcode-Veränderbarkeit:
* Freie Software
* Open Source
;Einstufung nach Verfügbarkeit:
* Abandonware
;Andere Unterteilungen:
* Portable Software
* Bananenware (unausgereifte Software)
* Schlangenöl (Programm ohne echte Funktion, wird aber als Wundermittel angepriesen)
* Shovelware (Sammlung von Software, wobei die Quantität zählt)
* Riskware
* Bloatware (mit Funktionen ohne synergetischen Nutzen überladene Software)
Lizenzmodelle
Die Verbreitung und Nutzung von Software unterliegt dem Urheberrecht. Es gibt in diesem Zusammenhang mehrere typische Überlassungsmodelle:
;Verkauf:Der vollständige Verkauf von Software, inklusive der Überlassung von Weiterverbreitungsrechten, kommt praktisch nur zwischen Unternehmen vor, in der Regel im Rahmen von Auftragsprogrammierung oder beim Verkauf eines Softwareentwicklungsunternehmens.;Nutzungsrecht:Bei der meisten Software, die zum Beispiel für PCs „gekauft“ werden kann, wird in Wirklichkeit nur ein Nutzungsrecht überlassen. Dieses Modell ist auch bei der Auftragsprogrammierung üblich, bei der ein Unternehmen ein Programm für den Eigengebrauch eines anderen Unternehmens speziell entwickelt. Bei Freeware ist dieses Recht kostenlos, was nicht mit freier Software verwechselt werden darf.
;Software as a Service:Die Software wird bei einem Dienstleister gehostet, die eigentliche Nutzung der Software kann entweder pro Zeitraum oder pro Nutzungseinheit berechnet werden und kann oft mit einem einfachen PC und z. B. per Webbrowser genutzt werden.
;Freie Software/Open Source/GPL:Freie Software darf von jedem genutzt, beliebig verändert und weiterverbreitet werden. Oft unterliegt dieses Recht gewissen Einschränkungen, wie zum Beispiel der Nennung des Autors oder die Verpflichtung, veränderte Versionen unter die gleiche Lizenz zu stellen (GPL). Software, die nicht zu dieser Gruppe zählt, wird proprietär genannt.
Zwischen den oben genannten Hauptformen der Softwareverbreitung gibt es zahlreiche Zwischen- und Mischstufen.
Siehe auch: Lizenzen der freien Software, Lizenzmanagement
Freie Software und Open Source
→ Hauptartikel: Freie Software und Open Source
‚Freie Software’ ist eine soziale Bewegung, die unfreie Software als gesellschaftliches Problem begreift.[http://www.gnu.org/philosophy/free-software-for-freedom.de.html The Selected Essays of Richard Stallman] (aktualisierte Fassung): "Open Source ist ein Entwicklungsmodell. Freie Software ist eine soziale Bewegung. Für die Open-Source-Bewegung ist nicht-freie Software eine suboptimale Lösung. Für die Freie-Software-Bewegung ist nicht-freie Software ein soziales Problem und freie Software ist die Lösung."; [http://www.gnu.org/philosophy/open-source-misses-the-point.de.html ursprüngliche Fassung]: "Für die Freie-Software-Bewegung ist freie Software ein ethisches Gebot ... nicht-freie Software ist ein gesellschaftliches Problem ..." Wobei „frei“ hier nicht „kostenlos“ bedeutet (‚Freie Software’ ist nicht dasselbe wie ‚Freeware’), sondern die Freiheiten für die Gesellschaft meint, die ein derart lizenziertes (auch kommerzielles) Produkt bietet. In den Augen der von Richard Stallman 1985 gegründeten Free Software Foundation (FSF) ist die Entscheidung für oder gegen freie Software deshalb primär eine ethische und soziale Entscheidung.
Dagegen begreift die 1998 gegründete Open Source Initiative (OSI) quelloffene Software als bloßes Entwicklungsmodell, wobei die Frage, ob Software quelloffen sein sollte, dort eine rein praktische und keine ethische Frage ist. Die FSF wirft der OSI daher eine Ablenkung von den wesentlichen Punkten vor.http://www.gnu.org/philosophy/free-software-for-freedom.de.html Eric S. Raymond hat den Begriff ‚Open Source’ in der Annahme eingeführt, dass das unpopuläre Thema ‚Freiheit’ Geldgeber für solche Projekte abschrecken könne.
Auch wenn es sich heute um zwei unterschiedliche Bewegungen mit unterschiedlichen Ansichten und Zielen handelt, verbindet sie die gemeinsame Wertschätzung für quelloffenen Code, was in zahlreichen Projekten mündet, in denen sie zusammenarbeiten.
Erstellung von Software
→ Hauptartikel: Softwaretechnik
Die Entwicklung von Software ist ein komplexer Vorgang. Dieser wird durch die Softwaretechnik, einem Teilgebiet der Informatik, systematisiert. Hier wird die Erstellung der Software schrittweise in einem Prozess von der Analyse über die Softwaremodellierung bis hin zum Testen als wiederholbarer Prozess beschrieben.
In aller Regel wird die Software nach der Entwicklung mehrfach angepasst und erweitert. Der Software-Lebenszyklus kann durchaus mehrere Jahre betragen.
Siehe auch
* Softwareunternehmen
* Softwarekrise
* Green IT
* Softwarequalität
Literatur
* John W. Tukey: The Teaching of Concrete Mathematics. In: The American Mathematical Monthly. Vol. 65, no. 1 (Jan. 1958), pp 1–9. (Erstmalige Verwendung des Begriffs Software im heutigen Sinn)
* F. R. Shapiro: Origin of the term software: Evidence from the JSTOR electronic journal archive. In: IEEE Annals of the History of Computing. 22 (April–June 2000), 69.
* Sebastian von Engelhardt: [http://ideas.repec.org/p/jen/jenasw/2006-14.html Die ökonomischen Eigenschaften von Software.] In: Jenaer Schriften zur Wirtschaftswissenschaft. 14/2006, Friedrich-Schiller-Universität Jena, Wirtschaftswissenschaftliche Fakultät, {{ISSN|1611-1311}}.
Weblinks
{{Commons|Software}}
{{Wiktionary}}
{{Wikiquote}}
{{Portal|Software}}
* Software Wiki
* [http://perspektive89.com/2006/12/21/geschichte_der_softwareprogrammierung_freie_software_fur_freiheit_und_gerechtigkeit Geschichte der Softwareprogrammierung]
* [http://www.sciencenews.org/articles/20000729/mathtrek.asp Software’s origin] (englisch)
* [http://www.niquette.com/books/softword/part4.htm Ursprung des Wortes Software] (englisch)
Einzelnachweise
als:Software
an:Software
ar:برمجية
arz:سوفت وير
ast:Programa d'ordenador
az:Proqram təminatı
bat-smg:Pruogramėnė īronga
be:Праграмнае забеспячэнне
be-x-old:Праграмнае забесьпячэньне
bg:Софтуер
bn:কম্পিউটার সফটওয়্যার
br:Meziant
bs:Softver
ca:Programari
cs:Software
cy:Meddalwedd
da:Computerprogram
el:Λογισμικό
Software
eo:Programaro
es:Software
et:Tarkvara
eu:Software
fa:نرمافزار
fi:Ohjelmisto
fo:Ritbúnaður
Logiciel
ga:Bogearraí
gd:Bathar-bog
gl:Software
gu:સૉફ્ટવેર
he:תוכנה
hi:सॉफ़्टवेयर
hr:Programska podrška
hsb:Softwara
hu:Szoftver
ia:Programmatura
id:Perangkat lunak
ilo:Software
is:Hugbúnaður
it:Software
iu:ᐊᕿᑦᑐᖅ ᖃᕆᑕᐅᔭᐅᑉ ᑎᑎᕋᕐᕕᖓ
ja:ソフトウェア
kk:Программалық жасақтама
kn:ತಂತ್ರಾಂಶ
ko:컴퓨터 소프트웨어
ku:Nermalav
la:Programmatura computratralis
lb:Software
lmo:Prugramadura
ln:Litámbwisi
lo:ຊອຟຕ໌ແວຣ໌
lt:Programinė įranga
lv:Programmatūra
mg:Rindrankajy
mhr:Программе вораҥдыш
mk:Програмска опрема
ml:കമ്പ്യൂട്ടർ സോഫ്റ്റ്വെയർ
mn:Програм хангамж
mr:सॉफ्टवेअर
ms:Perisian
my:ကွန်ပျူတာ ဆော့ဖ်ဝဲလ်
nds:Software
ne:सफ्टवेयर
new:सफ्टवेर
nl:Software
nn:Programvare
no:Programvare
oc:Logicial
pl:Oprogramowanie
pnb:سوفٹ وئر
pt:Software
qu:Llamp'u kaq
ro:Software
ru:Программное обеспечение
rue:Проґрамове забезпечіня
sah:Софтуэр
scn:Software
sh:Softver
si:පරිගණක මෘදුකාංග
simple:Computer software
sk:Softvér
sl:Programska oprema
so:Software
sq:Software
sr:Софтвер
sv:Programvara
ta:மென்பொருள்
te:కంప్యూటర్ సాఫ్ట్వేర్
th:ซอฟต์แวร์
tl:Software
tr:Yazılım
tt:Программа белән тәэмин ителеш
uk:Програмне забезпечення
ur:مصنع لطیف
vec:Programatura
vi:Phần mềm
war:Software
yi:ווייכווארג
zh:软件
zh-min-nan:Nńg-thé
zh-yue:電腦軟件
Text und Bilder dieses Beitrags stammen aus dem Artikel Software der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License. Die Liste der Autoren ist in der Wikipedia unter dieser Seite verfügbar, der Original-Artikel lässt sich hier bearbeiten.