|
Software [ˈsɒftweə(ɹ)]
bezeichnet alle nichtphysischen Funktionsbestandteile eines Computers.
Dies umfasst vor allem Computerprogramme sowie die zur Verwendung mit
Computerprogrammen bestimmten Daten.
Software wird häufig in
Gegensatz zu Hardware gesetzt, welche den
physischen Träger bezeichnet, auf dem Software
existiert und funktioniert und allein mit Hilfe dessen sie ihre
Funktion erfüllen kann. In diesem Sinne wurde der Begriff
erstmalig
1957 von John W. Tukey
benutzt. Umgangssprachlich wird "Software" oft auch
ausschließlich für
"aktive" Daten, also ausführbare Computerprogramme gebraucht,
"passive"
Daten fallen dabei weg.
Inhaltsverzeichnis
Arten von Software
Software lässt sich nach verschiedenen
Kriterien unterscheiden. Eine
mögliche orientiert sich an einer büroorientierten
Anwendersicht,
welche eine konkrete Sicht auf die Funktionalisierung gibt.
- Systemsoftware, die
für das ordentliche Funktionieren des Computers erforderlich
ist (hierzu zählen insbesondere das Betriebssystem als auch
zusätzliche Programme wie Virenschutz-Software), und
- Anwendungssoftware, die
den Benutzer bei der Ausführung seiner Aufgaben
unterstützt und ihm dadurch erst den eigentlichen,
unmittelbaren Nutzen stiftet.
Software, die fest in einem Gerät zu dessen
Steuerung untergebracht ist (z. B. in einem ROM), bezeichnet man auch
als Firmware.
Erstellung von Software
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 bis hin zum Testen als wiederholbarer
Prozess beschrieben.
Wesen und Eigenschaften von Software
Software ist vergegenständlichte, im voraus
geleistete geistige Arbeit:
- Vergegenständlicht heißt: die
Ergebnisse der geistigen menschlichen
Tätigkeit liegen in Form eines Gegenstandes vor; hier in Form
des auf
dem Datenträger (CD-ROM, Magnetband, ...) gespeicherten
Programms.
- Im voraus geleistet meint: die Programmautoren
erarbeiten z.B. 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 kann ein Softwareentwickler mitunter auf "im voraus"
von Dritten entwickelte Algorithmen zurückgreifen.
Weitere Eigenschaften von Software sind:
- Standardsoftware (im Gegensatz zu Individualsoftware)
wird nur einmalig erzeugt und kann dann mit
verhältnismäßig geringen
Kosten kopiert und verteilt werden und breite Wirkung entfalten; Kosten
entstehen durch den Datenträger, Werbung, Herstellen von
Schulungsunterlagen und durch etwaige Lizenzen.
- Software verschleißt nicht durch Nutzung.
Auch verbesserte Software
(neue Versionen) lässt die bisherigen Versionen nicht
unbedingt
veralten, solange sie ihren Zweck erfüllen.
- Software ist austauschbar,
aktualisierungsfähig, korrigierbar und
erweiterbar, insbesondere dann, wenn Standards eingehalten und der
Quellcode verfügbar ist.
- Software tendiert dazu, um so mehr Fehler
zu enthalten, je neuer und je komplexer sie ist. Außer bei
Software von
trivialem Funktionsumfang ist daher nicht von Fehlerfreiheit
auszugehen. Fehler werden häufig erst nach
Veröffentlichung einer neuen
oder funktionserweiterten Software bekannt. Diese werden dann oftmals
durch Veröffentlichung einer um die bekannt gewordenen Fehler
bereinigten Softwareversion oder 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 (Software)
theoretisch überhaupt möglich.
Juristische Definition
In der Rechtsprechung wird zwischen Individualsoftware
und Standardsoftware unterschieden: Bei dem Erwerb von
Individualsoftware wird ein Werkvertrag bzw. Werklieferungsvertrag
abgeschlossen, der Erwerb von Standardsoftware gilt als Sachenkauf.
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
Firmen vor, in der Regel im Rahmen von Auftragsprogrammierung oder beim
Verkauf einer Softwareentwicklungsfirma.
- 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 eine Firma ein Programm für den
Eigengebrauch einer
anderen Firma speziell entwickelt. Bei Freeware ist dieses Recht
umsonst, was nicht mit Freier Software verwechselt werden darf.
- Freie Software/Open-Source-Software:
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
Verflichtung veränderte Versionen unter die gleiche Lizenz zu
stellen.
Software, die nicht frei ist, wird proprietär
genannt. Zwischen den oben genannten Hauptformen der
Softwareverbreitung gibt es zahlreiche Zwischen- und Mischstufen.
Software in der Betriebswirtschaft
In der Betriebswirtschaft spricht man von Standardsoftware,
wenn für die Abwicklung der Geschäftsprozesse
eine bei einem Fremdhersteller gekaufte, anpassungsfähige
Software
benutzt wird. Vorteile der Benutzung von Standardsoftware sind die
wesentlich geringeren Kosten (Keine eigene Projektierung, keine eigene
DV-Abteilung notwendig) und die Funktionsgarantie. Nachteile sind die
geringere Flexibilität der Software, die zu
Anpassungsschwierigkeiten
führen kann und die Abhängigkeit vom Fremdhersteller
(bei dessen
Insolvenz meist der Garantieanspruch verfällt).
Häufig in großen
Unternehmen eingesetzte Standardsoftware ist R/3 von SAP. Entwickeln
Firmen ihre Software selbst, geschieht dies meist mit Werkzeugen wie
ARIS,
einem Architekturmodell, das die komplexen Vorgänge in einem
Unternehmen abbilden kann. Selbst entwickelte Software muss
sorgfältig
geplant, aber auch zügig realisiert werden. Jede
Standardsoftware oder
selbst entwickelte Software hat einen bestimmten Softwarelebenszyklus,
innerhalb dessen sie gewinnbringende Wirkung hat.
Antivirenprogramm
Ein Antivirenprogramm
(auch Virenscanner oder Virenschutz
genannt) ist eine Software, die bekannte Computerviren,
Computerwürmer und Trojanische Pferde aufspüren,
blockieren und gegebenenfalls beseitigen soll.
Arbeitsweise
Um schädliche Software zu erkennen, hat jeder
Virenscanner eine
Liste mit Beispielen aller ihm bekannten Viren und anderer
schädlicher
Software (Virensignaturen oder auch Virendefinitionen
genannt), mit der er die zu überprüfende Software
vergleicht. Stimmt
eine Datei oder ein Teil einer Datei mit einem Beispiel aus der Liste
überein, werden Schritte zur Neutralisierung und
gegebenenfalls zur
Reparatur der infizierten Datei und zur Beseitigung der
schädlichen
Software unternommen. Da ständig neue Viren und
Würmer auftauchen,
müssen die entsprechenden Listen ständig aktualisiert
werden. Viele
Scanner unterstützen heutzutage automatische
Aktualisierungsmethoden.
Das Scannen von Dateien geschieht meist auf zwei Arten:
Einmal geben
nahezu alle Antivirenprogramme die Möglichkeit, im Hintergrund
aktiv zu
sein und alle Dateien und Programme, auf die auf dem Rechner
zugegriffen wird, auf schädliche Software zu prüfen
(on access). Zum
zweiten kann ein gezieltes Durchsuchen von Dateien, Ordnern oder
Datenträgern auch von Hand gestartet werden (on demand).
Findet ein
Scanner dann schädliche Software, gibt es in den meisten
Fällen eine
Warnung an den Nutzer mit der Frage, was als nächstes
geschehen kann.
Die möglichen Optionen reichen von einem Löschen der
infizierten Datei
über einen Reparaturversuch bis hin zur Quarantäne
der Datei.
Eine Ausnahme stellen Virenscanner dar, die
über das Internet
gestartet werden – die Besonderheit liegt darin, dass sie
helfen
können, wenn man selbst keinen Virenscanner hat oder eine
bestimmte
Datei mit verschiedenen Scannern testen möchte.
Erfolgswahrscheinlichkeit
Kein Virenscanner kennt alle Viren und Würmer.
Zudem sind die meisten Antivirenprogramme lediglich auf das
Aufspüren
von Viren und Würmern ausgerichtet. Oft werden keine Trojaner,
Dialer
oder gar Rootkits
erkannt. Auch sind ganz neue oder kaum verbreitete Viren und
Würmer
nicht in den Virendefinitionen enthalten und so für den
Virenscanner
nicht erkennbar.
Engines
In Tests stieg die Erkennungswahrscheinlichkeit bei
Programmen mit
mehreren Engines, das sind die Programmteile, die für das
Scannen und
die Erkennung zuständig sind. Verfügt eine
Antivirusprogramm über
mehrere Engines wie z.B F-Secure,
das mit 3 unterschiedlichen Engines sucht, kann eine Engine Viren
finden, die eine andere übersieht. Oft kauft ein Unternehmen
die
Nutzungsrechte einer Engine bei einem anderen Hersteller, daher gibt es
Software unterschiedlicher Hersteller, die zum Teil die gleiche Engine
nutzen.
Bei berechtigtem Virenverdacht sollten mehrere
Virenschutzprogramme
zum Einsatz kommen, um sicher zu gehen, kein schädigendes
Programm zu
übersehen. Dabei sollte darauf geachtet werden, das nicht 2
Programme
mit der gleichen Engine benutzt werden, damit die
Erkennungswahrscheinlichkeit steigt, Gleiche Engines in
unterschiedlichen Programmen haben ähnliche Schwachstellen.
Wichtig ist auch, nie mehrere Antivirenprogramme
gleichzeitig zu
installieren, weil das zu Störungen führen kann. Die
Automatisch
startenden Sevices behindern sich eventuell gegenseitig, dazu
gehören
der Hintergrundscan, der Echtzeitscan, der alle neuen Dateien wie
Anhänge von Emails und Downloads scannt und auch der beim
Booten
einsetzende Bootsektorenscan, eventuell läßt sich
der PC nicht mehr
starten.
Autoupdate
Die soganannte Autoupdatefunktion, mit der automatisch
beim
Hersteller aktuelle Virensignaturen heruntergeladen werden, ist bei
Virenscannern von besonderer Bedeutung. Wenn sie aktiviert ist, wird
der Benutzer regelmäßig daran erinnert, nach
aktuellen Updates zu
suchen bzw. die Software sucht selbständig danach, je nach
Einstellungsoption. Es empfiehlt sich, diese Option zu nutzen, um
sicher zu gehen, das das Programm wirklich auf dem aktuellen Stand ist.
Heuristik
Zwar verfügen einige Virenscanner über
die Möglichkeit, auch nach allgemeinen Merkmalen zu suchen
(Heuristik),
um unbekannte Viren zu erkennen, oder sie bringen ein
rudimentäres Intrusion Detection System
mit sich, jedoch sind diese Lösungen auch nicht immer
ausreichend. Zu
guter Letzt kann es auch passieren, dass ein Angreifer für
einen
Computer einen eigenen Wurm, ein Virus oder auch häufig einen
eigenen
Trojaner schreibt, der nur einen bestimmten Rechner infiziert
– von
diesem Virus (Wurm, Trojaner) wird der Hersteller der Virenscanner
natürlich nie erfahren (es gibt ja nur einen Vertreter),
weshalb die
Virenscanner diesen auch nie finden können.
Somit sollte kein Nutzer vergessen, dass ein
Virenscanner nur als
Ergänzung zu allgemeinen Vorsichtsmaßnahmen gelten
kann (z. B. sollte
ein Computerbenutzer nicht völlig unkritisch jeden Dateianhang
einer Mail öffnen oder jede Software von unbekannten Webseiten
starten).
Hinzu kommt, dass in letzter Zeit immer mehr
Würmer und Viren die
Fähigkeit aufweisen, Sicherheitssoftware auf infizierten
Rechnern
auszuschalten. Ist die schädliche Software also erst einmal
gestartet
worden, ist es meist schon zu spät, da der Virenscanner dann
vom Virus
oder Wurm deaktiviert wird. Meist wird der Virenscanner vom Virus nur
für den speziellen Virentyp „blind“
gemacht, um unauffällig zu bleiben.
Somit sollte man einen Virenscanner nicht ohne weiteres als Werkzeug
verstehen, mit dem man infizierte Rechner säubern kann, denn
dies ist
nur dann möglich, wenn der Virenscanner außerhalb
des Systems des
Rechners läuft, also z. B. von CD gebootet wird.
Kein Virenscanner kennt alle Viren und Würmer,
die Erkenngsrate liegt nie bei 100%.
Ein infiziertes System muss also als kompromittiertes
System aufgefasst und dementsprechend behandelt werden.
Anwenderprogramm
Ein Anwendungsprogramm (kurz
"Anwendung") ist ein Computerprogramm, das eine für den
Anwender nützliche Funktion ausführt, z. B.
Buchhaltung, Informationssysteme, Computer Aided Design,
Textverarbeitung, Tabellenkalkulation oder auch Spiele. Aus dem
englischen Begriff Application hat sich in der
Alltagssprache auch die Bezeichnung "Applikation" für
Anwendungsprogramm eingebürgert.
Der Begriff steht im Gegensatz zum Betriebssystem und
allen System- und Hilfsprogrammen, die "nur" den Betrieb
ermöglichen, aber noch keinen "Nutzen" bringen. Auch
Programmiersprachen und Werkzeuge zur Softwareerstellung
gehören im engeren Sinne nicht zu den Anwendungsprogrammen.
Die Trennung zwischen Anwendung und Betriebssystem ist
unscharf. So kann man Programmbibliotheken
sowohl als Teil eines Betriebssystems, als Teil einer Anwendung oder
auch als eine Schicht zwischen Anwendung und Betriebssystem betrachten.
Anwendungsprogramme werden in erheblichem Umfang zur
Unterstützung
der Verwaltung in Behörden und Unternehmen eingesetzt.
Anwendungssoftware ist nur zum Teil Standardsoftware. Zu einem
großen Teil werden auf den jeweiligen Anwendungsfall
zugeschnittene Branchenlösungen oder
Individuallösungen eingesetzt.
Systemsoftware
Der Begriff Systemsoftware findet
häufig in der Wirtschaftsinformatik Anwendung. Zur
Systemsoftware gehören laut Definition Betriebssysteme (z.B
Windows, Macintosh..), Systemnahe Software und
Übersetzungsprogramme.
Unter systemnaher Software versteht der
Wirtschaftsinformatiker z.B. Datenbank-Verwaltungswerkzeuge,
Software-Entwicklungswerkzeuge
und Middleware.
Mit Übersetzungsprogrammen sind in diesem Kontext Assembler
und Compiler gemeint |
|