Software

Sammelbegriff für ausführbare Programme und die zugehörigen Daten
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 23. Mai 2012 um 00:58 Uhr durch Thomas Scholten (Diskussion | Beiträge) (Lizenzmodelle: Absatz "Proprietäre Software" hinzugefügt - www.softwareresearches.net/index_de.php). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Software ['s?f(t)w??] (dt. = weiche Ware [von] soft = leicht veränderbare Komponenten [...], Komplement zu 'Hardware' für die physischen Komponenten)[1] ist ein Sammelbegriff für ausführbare Programme und die zugehörigen Daten.[2] Sie dient dazu, Aufgaben zu erledigen, indem sie von einem Prozessor ausgewertet wird und so softwaregesteuerte Geräte in ihrer Arbeit beeinflusst.[3]

In diesem Sinne wurde der Begriff erstmals 1958 von John W. Tukey benutzt.[4] Durch das softwaregesteuerte Arbeitsprinzip kann eine starre Hardware individuell arbeiten.[3] 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

Eine uneingeschränkte Definition beschreibt Software als 'Gegenstück zu Hardware', wobei Software hier jede Art von digitalen Daten umfasst, die auf einer Hardware gespeichert sein können,[5] von der Firmware (z. B. dem BIOS), dem Betriebssystem, den Anwendungsprogrammen bis hin zu allen (möglichen) Dateien eines softwaregesteuerten Gerätes.

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.

Je nach Zusammenhang ist bei der Entgegensetzung eine oder mehrere der folgenden Bedeutungen gemeint:

  • Leicht veränderbare Komponente (Software) vs. schwer veränderbare Komponente (Hardware) in einem Computerdesign[1]
  • Universelle Maschine (Hardware) vs. Instruktionskode (Software)
  • Nicht-greifbar im Sinne von Funktionsbestandteilen eines Computersystems, die sich „nicht anfassen lassen[6] (Software) im Gegensatz zu den greifbaren Komponenten (Hardware). Software ließe sich über eine Telefonleitung übertragen, Hardware dagegen nicht.

Die Gegensätze sind in der englischsprachigen Begriffprägung (soft=weich, hard=hart) beabsichtigt.

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.[7] Die zur Verarbeitung bestimmten Daten (z. B. digitalisierte Musikstücke) werden hier meist nicht als Software verstanden.[8] Nach dieser Definition wird Software auch als Softwaresystem oder Softwareprodukt bezeichnet,[9] das als Beiwerk zusätzlich Bestandteile wie z. B. die Softwaredokumentation in der digitalen oder gedruckten Form eines Handbuchs enthalten kann.[10]

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).

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 erstmals.[4]

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 1970er Jahren die Gründung von Firmen, die erstmals 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.

Der logische Ü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“.[11] Sie verwendeten keinen Prozessor. Erst später, als solche Spiele für Computer programmiert wurden, und man anfing bei prozessorgesteuerten Geräten zwischen den Begriffen 'Hardware' und 'Software' zu unterscheiden, 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.

Besondere Merkmale von Software

Software ist immateriell

Software ist immateriell[6] und besteht aus den Sprachen und Notationen, in denen sie formuliert ist.[3] Software kann zwar auf bestimmten Medien gespeichert, gedruckt, angezeigt oder transportiert werden. Diese sind aber nicht die Software, sondern enthalten sie nur.

Auch physisch gesehen können sogar die Bits, die die Software abbilden, immateriell sein. So weisen Datenträger als der Teil der Hardware 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), die darauf gespeichert werden. Elektronisch gesetzte Bits haben für sich keine Substanz und lassen sich somit „nicht anfassen“. Zur Veranschaulichung 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 elektronisch 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.

Es ist zwar vorstellbar, Bits sichtbar und greifbar auf einem Trägermedium zu hinterlegen, doch grundsätzlich ist 'Software' ein abstrakter, von Trägermedien unabhängiger Begriff. Das trifft für den Gattungsbegriff ohnehin zu, aber auch für konkrete Ausprägungen wie ein bestimmtes Anwendungsprogramm.[12] Als Analogie dazu ist es für den Begriff 'Oper' oder 'Zauberflöte' nicht begriffsbestimmend, ob sie im Theater aufgeführt, über Radio/TV übertragen oder als CD verkauft oder gehört wird, ob sie im Opernführer beschrieben oder in der Partitur aufgezeichnet ist.

Unterschiedliche Bedeutungen

Innerhalb der Softwaretechnik wird eine einheitliche solide, konsistente und systematische Begriffsbildung durch eine hohe Innovationsgeschwindigkeit und Praxisnähe behindert.[13] So wird je nach gegebenem Zusammenhang unter 'Software' Unterschiedliches verstanden, zum Beispiel:

  • Im Zusammenhang mit der Ausführung auf einem Computer wird unter Software primär alles verstanden, was auf dem Rechner ausgeführt werden kann (das Programm im engeren Sinn, bestehend aus Befehlen und Datendefinitionen). Hinzu kommen die „mit [den Programmen] eng verbundenen Ressourcen, die zum Betrieb der Software zwingend erforderlich sind“.[14] Dies sind zum Beispiel Konfigurationsdateien, Schriftart-Dateien, Lookup-Tabellen, Datenstrukturen für Datenbanken und Datenbestände.
  • In engstem Sinn wäre unter 'Software' nur von der Hardware ausführbarer Maschinencode zu verstehen. Jedoch fällt darunter auch alles, was durch beliebige 'interpretierende Systeme', die Teil der Systemsoftware sind, ausgeführt werden kann, wie das bei Verwendung höherer Programmiersprachen und Entwicklungsumgebungen nahezu immer der Fall ist.[3]
  • Weiterhin können mit 'Software' unterschiedliche Mengen gemeint sein: Im engeren Sinn ist einzelnes Programm 'Software'. Jedoch wird etwa eine aus einer Vielzahl von Einzelprogrammen bestehende Buchhaltungsanwendung ebenfalls 'Software' genannt. Ebenso ein (nicht selbstständig lauffähiges) Unterprogramm, alle Anwendungen eines Unternehmens als Gesamtheit, die zum Betrieb der Programme gehörenden Daten(bank)strukturen und die verschiedensten Komponenten der Systemsoftware inkl. dem Betriebssystem.[15]
  • Im Zusammenhang mit dem Urheberrechtsschutz für Software gilt i. d. R. der 'Quellcode' als Schutzgegenstand.[16]
  • Im Kontext Erwerb von Software (als 'Softwareprodukt') gehört auch die Dokumentation zur 'Software'.[17]
  • Im weitesten Sinn und aus der Entstehungsgeschichte abgeleitet, ist Software alles, was nicht Hardware ist.[3] In diesem Zusammenhang gilt zum Beispiel auch jede Form von Daten als Software.

Der Begriff 'Software' wird also sowohl für konkrete einzelne Aspekte benutzt, als Gattungsbegriff für unterschiedliche Arten von Software und als Sammelbegriff für beliebige Mengen.

Verschiedene Blickwinkel auf Software

Software kann aus vielen unterschiedlichen Gesichtspunkten betrachtet werden, zum Beispiel:

Zusammenwirken mit der Hardware (Execution)

 
Softwar: Typisierung, Zusammenhänge, Überblick

„Zwischen Hard- und Software besteht eine gewisse Aufgabenverteilung: Die Hardware garantiert [...] Quantität, also Tempo und Speicherkapazität, die Software sorgt für [...] die Abbildung der Anforderungen [...] auf die strukturell primitive Hardware“.[3]

Obwohl dem Begriff 'Software' teilweise Attribute wie Flexibilität, Individualität, Leistungsfähigkeit etc. zugeschrieben werden, wird letztlich alles, was der Computer 'tatsächlich tut', nicht von der Software, sondern ausschließlich durch die Hardware ausgeführt. Software 'beschreibt' lediglich, was getan werden soll und in welcher Form dies geschieht.

Dazu wird auf unterster Ebene der Maschinencode der Software über das Betriebssystem (d. h. ebenfalls durch dessen Maschienbefehle) in den Hauptspeicher des Computers geladen und dem Rechenwerk Schritt für Schritt (siehe Befehlszähler) zur Ausführung zugeführt.

Der Maschinencode muss hierzu in einer Form/Struktur vorliegen, die von der Hardware über deren darin implementierte Schnittstelle interpretiert und ausgeführt werden kann.[18] Inhalt und Struktur der Befehle zeigen an, was zu tun ist, welche Datenbereiche im Hauptspeicher dabei benutzt oder verändert werden sollen (über die im Befehlscode enthaltenen Registerangaben) und ggf. an welcher Stelle das Programm fortzusetzen ist.

Dieses Arbeitsprinzip gilt für jede Art von Software, auch wenn sie z. B. von Interpretern ausgeführt wird: Diese sind ebenfalls Software, die über ihren Maschinencode an der Hardwareschnittstelle wie beschrieben ausgeführt wird, was auch für Compiler und jede andere Systemsoftware gilt. Bei der Ausführung wirken also viele Schichten zusammen und führen als Gesamtheit zu Zustandsänderungen in der Hardware bzw. final zu den vorgesehenen Ergebnissen, etwa der Ausgabe einer Druckzeile, einem Datenzugriff oder der Anzeige eines Feldinhalts am Bildschirm. Bei in höheren Programmiersprachen entwickelten Anwendungen können so schon für relativ einfache Funktionen (wie Lesen aus der Datenbank) oft Hunderttausende oder Millionen von Maschinenbefehlen durchlaufen werden.

Das in modernen Computern mögliche parallele Ausführen mehrerer Programme/Prozesse wird im Wesentlichen durch das Betriebssystem bewirkt, das bei bestimmten Ereignissen den Wechsel von einer zur anderen 'Task einleitet und verwaltet. Siehe auch Multitasking.

Im systematischen Zusammenwirken vieler Komponenten, das nur unter Anwendung klar definierter Schnittstellen möglich ist, „gehört Software also zu den komplexesten Artefakten, die Menschen bislang geschaffen haben“.[3]

Herstellung von Software

  • Software wird unter Nutzung bestimmter Verfahren, Methoden und 'Werkzeuge' entwickelt. Dabei werden unterschiedliche Entwicklungsstadien durchlaufen, in denen jeweils unterschiedliche Zwischenstände der Software entstehen: Analysetätigkeiten (zahlreiche Entwicklungsdokumente) > Programmierung (Quellcode) > im Betrieb (Maschinencode oder ausführbarer Code). Im engeren Sinn der Ausführung auf dem Computer gilt lediglich Letzteres als 'Software'. Siehe auch Softwareentwicklung.
  • In diesem Zusammenhang ist Software Bearbeitungsgegenstand von Systemprogrammen: Wenn z. B. ein Compiler den Quellcode eines Programms liest, verarbeitet und einen Maschinen- oder Zwischencode erzeugt, so sind das aus dessen Sicht 'Daten'.
  • 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, fähig zur Aktualisierung, korrigierbar und erweiterbar, insbesondere dann, wenn bestehende Richtlinien eingehalten werden und der Quelltext verfügbar ist.
  • Software tendiert dazu, umso mehr Fehler zu enthalten, je komplexer sie ist. Fehler werden in aktualisierten Softwareversionen oder mithilfe eines Patches und i.d.R. nach Durchführung von Softwaretests behoben. Softwarefehler bezeichnet man auch als Bugs.
  • Weil Software unter Einsatz vieler unterschiedlicher Programmiersprachen und in vielen unterschiedlichen Betriebssystemen und Systemumgebungen entwickelt werden kann, sind Softwarestandards erforderlich, um Informationen system- und unternehmensübergreifend 'verstehbar' und austauschbar zu machen. Siehe auch Elektronischer Datenaustausch (Beispiele), Programmierstil.

Auswahl von Software

In der Entscheidung zur Anschaffung von Software lässt sich i. W. der Einsatz von Standardsoftware oder die eigene Herstellung (Individualsoftware) unterscheiden. Besonders im betrieblichen Umfeld zieht diese Entscheidung häufig hohe Kosten nach sich. Auch können solche Entscheidungen Grundlage zur Umsetzung der Unternehmensstrategie sein oder sollen Unternehmensprozesse maßgeblich verbessern. Zur Vermeidung von Fehlinvestitionen sollte der Anschaffung ein systematischer Entscheidungsprozess vorausgehen.

Betrieb von Software

  • Der Einsatz von Software erfordert je nach Einsatzbereich ein gewisses Maß an Organisation, um die zusammengehörenden Teile richtig einzusetzen und durch neue Versionen abzulösen (zum Beispiel in größeren Unternehmen im Releasemanagement).
  • Mitunter kann Software vorkonfiguriert werden, um so eine Neuinstallation zu beschleunigen und um Fehler bei der Konfiguration zu minimieren.

Software aus Sicht der Betriebswirtschaft und Arbeitssoziologie

Im Wesentlichen für betriebliche Anwendungssoftware geltend 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 tatsächlich 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 war. Besonders auch in der Softwareentwicklung wird intensiv auf „im Voraus“ entwickelte Algorithmen und Codeteile zurückgegriffen werden ('Software-Wiederverwendung').

Ein ähnlicher Zusammenhang wird in der Arbeitssoziologie gesehen: Derartige softwarebasierte Maßnahmen sind geeignet, Arbeitsinhalte und -Abläufe erheblich zu verändern. Die Bandbreite reicht dabei vom Bereitstellen einfacher Hilfsmittel (etwa zur Summierung oder Durchschnittsermittlung) bis hin zur völligen Umgestaltung von Prozessen (durch Konzentration früher getrennter oder durch Zerlegung früher zentralisierter Arbeitsabläufe) – oder gar bis zu deren vollständigen Ersatz durch IT-Lösungen. Brödner et al nennen dies in[19] »materialisierte« Kopfarbeit. Siehe auch Rationalisierung, Optimierung, Taylorismus.

Arten von Software

Software lässt sich nach verschiedenen Kriterien unterscheiden.

Unterteilung nach der Nähe zur Hardware beziehungsweise Anwender
Unterteilung nach Art der Herstellung

Rechtlich wird beim Erwerb von Software zwischen Individualsoftware und Standardsoftware unterschieden: Für 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
Einstufung nach Nutzungsrecht (Lizenz)
Unterteilung nach Quellcode-Veränderbarkeit
Einstufung nach Verfügbarkeit
Andere Unterteilungen

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

Proprietäre Software

Software-Hersteller bieten verschiedene Lizenzmodelle an. Lizenziert wird gewöhnlich per Single User (Named User, Client, Node) bzw. per User in der entsprechenden Mengenrabatt-Staffel, wobei einige Hersteller bestehende Lizenzen anrechnen/kumulieren. Diese offenen Volumen-Lizenzprogramme heißen oft Open License Program (OLP), Transactional License Program (TLP), Volume License Program (VLP) usw. und stehen im Gegensatz zu dem Contractual License Program (CLP), bei dem sich der Kunde verpflichtet, in einem bestimmten Zeitraum (z.B. zwei Jahre) eine bestimmte Menge Lizenzen zu erwerben. Eine Lizenzierung per Concurrent/Floating User ist auch möglich. Hier haben alle User in einem Netzwerk Zugriff auf das Programm, jedoch nur eine bestimmte Anzahl gleichzeitig. Ein weiteres Lizenzmodell ist die Lizenzierung per Dongle, die den Inhaber des Dongles das Programm auf jedem Computer nutzen lässt. Lizenzierung per Server, CPU oder Punkte, unabhängig der Anzahl User, ist ebenso üblich wie Standort- (Site License) oder Firmenlizenzen (Company License). Manchmal können Sie zwischen Dauer- und Jahreslizenz wählen. Bei Dauerlizenzen ist oft ein Jahr Wartung Pflicht, dafür werden Wartungsverlängerungen (Subscription Renewals) rabattiert. Bei Jahreslizenzen/Abos gibt es keine Verlängerung, nach Ablauf muss eine neue Lizenz gekauft werden. Lizenziert wird auch, je nachdem wie das Programm genutzt wird, pro Host/Client (oder Guest), Mailbox, IP-Adresse, Domain usw. Zusätzliche User werden u.a. lizenziert per Extension Pack (z.B. bis zu 99 User), welches das Base Pack (z.B. 5 User) inkludiert. Manche Programme sind modular, so dass Sie erst ein Basisprodukt kaufen müssen, bevor Sie weitere Module nutzen können.

Software-Lizenzierung umfasst auch Wartung (Maintenance). Diese, meist mit einer Laufzeit von einem Jahr, ist entweder enthalten oder optional, muss aber oft mit der Software gekauft werden. Der Wartungsvertrag beinhaltet Minor Updates (V.1.1 => 1.2), manchmal auch Major Updates (V.1.2 => 2.0) und nennt sich z.B. Update Insurance, Upgrade Assurance. Für ein Major Update muss man ein Upgrade kaufen, falls nicht in der Wartung enthalten. Bei der Wartungsverlängerung berechnen einige Hersteller eine Reinstatement (auch Reinstallment) Fee rückwirkend pro Monat, falls die derzeitige Wartung abgelaufen ist. Wartung umfasst normalerweise keinen technischen Support. Hier unterscheidet man zwischen E-Mail- und tel. Support, auch kann die Verfügbarkeit (z.B. 5x8, also an fünf Arbeitstagen mit je acht Stunden) und die Reaktionszeit (z.B. drei Stunden) eine Rolle spielen. Dies nennt sich gerne Gold-, Silver- und Bronze Support. Support wird auch per Ereignis als Incident Pack (z.B. fünf Supportfälle pro Jahr) lizenziert.

Viele Hersteller bieten besondere Konditionen für Schulen und Behörden an (EDU/GOV License). Eine Migration von einem anderen Produkt (Crossgrade), auch eines anderen Herstellers (Competitive Upgrade) wird gerne angeboten.

Freie Software und Open Source

Hauptartikel: Freie Software und Open Source

‚Freie Software’ ist eine soziale Bewegung, die unfreie Software als gesellschaftliches Problem begreift.[20] 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.[21] 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

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: Die ökonomischen Eigenschaften von Software. In: Jenaer Schriften zur Wirtschaftswissenschaft. 14/2006, Friedrich-Schiller-Universität Jena, Wirtschaftswissenschaftliche Fakultät, ISSN 1611-1311.
Commons: Software – Album mit Bildern, Videos und Audiodateien
Wiktionary: Software – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen
Wikiquote: Software – Zitate
Portal: Software – Übersicht zu Wikipedia-Inhalten zum Thema Software

Einzelnachweise

  1. a b Duden Informatik ISBN 3-411-05232-5
  2. Wolfgang Lassmann: Wirtschaftsinformatik. ISBN 978-3-409-12725-7
  3. a b c d e f g Ludewig/Lichter: Software Engineering, Ausgabe 2010, ISBN 978-3-89864-662-8, Leseproben Kapitel 2.3 [1]
  4. a b 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.“
  5. 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 […]“
  6. a b Prof. Dr. Helmut Balzert, Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, ISBN 978-3-8274-1705-3, 2009, 3. Auflage, S. 9: „Software ist ein immaterielles Produkt. Software kann man nicht anfassen und nicht sehen.“
  7. http://www.wissen.de/wde/generator/wissen/ressorts/technik/computer/index,page=1207964.html
  8. 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).
  9. Stefan Schneider: Empirische Evidenz für die Relevanz des Geschäftsmodells Softwareentwicklung und -absatz. ISBN 978-3-8350-0197-8.
  10. Lehr- und Übungsbuch Informatik 1. Hanser Verlag, 2003, Seite 311
  11. 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
  12. Rechtliche Rahmenbedingungen von Serviceorientierten Architekturen mit Web Services, ISBN 978-3-941875-29-6, S. 35: „Weil Software Gegenstand einer schöpferischen Leistung ist, die man nicht anfassen kann, wird ihr zum Teil die Sachqualität abgesprochen.“
  13. Prof. Dr. Helmut Balzert, Lehrbuch der Softwaretechnik: Basiskonzepte und Requirements Engineering, ISBN 978-3-8274-1705-3, 2009, 3. Auflage, S. 3
  14. Wissen.de [2]
  15. dpunkt.de, in Kap. "Software spiegelt die Realität": Software-Systeme werden nicht monolithisch gebaut, sondern bestehen aus Modulen oder Komponenten, die miteinander die Gesamtfunktionalität des Systems bieten.
  16. softwarepatents.eu, "Programmcode in seiner linguistischen Form als Sprachwerk"
  17. Hanser Verlag Lehr- und Übungsbuch Informatik 1.' 2003, Seite 311
  18. Klaus Wüst Mikroprozessortechnik Kap. 7.5.4 ISA - Instruction Set Architecture [3] Die ISA [Diese Form] ist genau das, was für die Erstellung von Maschinenprogrammen bekannt sein muss.
  19. Der programmierte Kopf, 1982, S.53. Eine Sozialgeschichte der Datenverarbeitung. P.Brödner, D.Krüger, B.Senf, 1982, ISBN 3-8031-2082-9
  20. 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."; ursprüngliche Fassung: "Für die Freie-Software-Bewegung ist freie Software ein ethisches Gebot ... nicht-freie Software ist ein gesellschaftliches Problem ..."
  21. http://www.gnu.org/philosophy/free-software-for-freedom.de.html