1 Was ist Software ?? Software ist der Oberbegriff für alle Arten von Computerprogrammen. Software existiert auf verschiedenen Ebenen eines Rechnersystems. Einerseits steuert sie die Synchronisation verschiedener Hardwarekomponenten ( Betriebssystem ) , andererseits er möglicht sie die Kommunikation zwischen Mensch und Maschine ( Anwendungsprogramme ) . Software soll dem Anwender das einfache Bedienen der Rechenanlage und das effiziente Auswerten der Rechenergebnisse ermöglichen. 1.1 Software früher - Software heute In den Anfängen der Computerzeit war die Hardware relativ einfach und nicht besonders leistungsfähig. Die Systeme waren überschaubar, Programmierung und Anwen- dung wurde von den gleichen Personen durchgeführt. Die Programme für die einfachen Maschinen waren nicht besonders umfangreich und konnten von Einzelpersonen erstellt werden. Mit der Erfindung des Transistors wurde die Hardware erheblich leistungsfähiger. Der Umfang der Hardware-Systeme steigerte sich innerhalb kürzester Zeit auf ein Vielfaches. Die Maschinen wurden so komplex, daß sie nicht mehr von Einzelpersonen überschaut werden konnten. Es trat eine Spezialisierung ein, die Hardware und Software gegeneinander abgrenzte und auch Programmierer von Anwendern trennte. Zudem wurden die Computer in zunehmendem Maße nicht nur Fachleuten, sondern auch Privat- und Geschäftsleuten zugänglich gemacht. Das führte zu einem regelrechten Computer - Boom in den 70er Jahren. Nun wurden auch höhere Anforderungen an die Computer und vor allem an die darauf ablaufende Software gestellt. Sie sollte einfach zu bedienen sein, leicht verständlich sein, und sie sollte immer häufiger für immer umfangreichere Probleme eingesetzt werden. 1.2 Die Software - Krise Die Software - Entwickler konnten bei diesem rasenden Tempo der Hardware-Verbesserung nicht mithalten. Es gab keine Erfahrung im Umgang mit großen Software- Systemen und keine Organisationsmethoden zur Erstellung solcher Pakete. Dieses führte zur bekannten Software - Krise ( software - crisis ) in den 60er- und 70er Jahren. Mit den bisher bekannten Techniken ließen sich die neuen Probleme nicht mehr bewältigen. Es mußten neue Programmiersprachen entwickelt werden, die eine strukturierte Programmierung erlauben, es mußten Fachleute ausgebildet werden, die diese Sprachen beherrschen, und es wurde nach neuen Methoden für Organisation und Planung gesucht. Auch heute sind diese Probleme noch nicht gelöst. Heutige Programmpakete umfassen häufig mehrere Millionen Zeilen Programmtext und beanspruchen viele tausend Mannjahre zur Entwicklung. Software - Systeme sind nicht effizient genug zu entwickeln. Während in den 50er Jahren etwa 80 % der Kosten für die Hardware ausgegeben wurden, verschlang die Software in den 80er Jahren fast 90 % der Gesamtkosten. Dieses verdeutlicht nochmals den großen Bedarf an neuen Entwicklungsmethoden. 1.3 Software - Eine erweiterte Sicht Es genügt heute nicht mehr, Software nur als ein Programm auf einer Maschine zu betrachten. Die effiziente Nutzung einer Rechenanlage erfordert mehr als nur Programme. Dieses führt zu einer Sichtweise, in der Software, verschiedene Hardwarekomponenten und Anwender als ein System kommunizierender Elemente betrachtet werden müssen. Es ist erforderlich, sie zu einer harmonisch kooperierenden Einheit zu verbinden. Eine solche Einheit kann jedoch nur durch eine wohlorganisierte Planung und Durchführung im Entwicklungsprozeß erreicht werden. 1.4 Merkmale von Software Software unterscheidet sich von vielen Produkten durch einige Eigenschaften, die schwer handzuhaben sind. o Man kann Software nicht anfassen o Software ist häufig sehr komplex o Software unterliegt keiner Alterung oder Abnutzung o Es gibt keine Ersatzteile für Software o Die Qualität von Software ist schwer zu prüfen o Software wird von vielen ( Industrie- ) Randbedingungen beeinflußt o Software ist kein Serienprodukt Aus dieser Aufzählung wird ersichtlich, daß die Software - Entwicklung nicht in üblicher Produktion erstellt werden kann, sondern einen speziellen Erstellungsprozeß benötigt. Es wird auch deutlich, daß die frühere Haupttätigkeit - das Programmieren - heute nur noch einen kleinen Teil der Software - Entwicklung darstellt. Software wird sozusagen in Einzelanfertigung erstellt. Man erkennt, daß die Software-Erstellung einer Ingenieurstätigkeit gleicht. Genau diese Spezialisierung ist in den letzten Jahren aufgetreten, man bezeichnet die neue Wissenschaft als Software - Engineering.