Was ist Software-Engineering? Definition, Grundlagen, Eigenschaften
Was ist Software Engineering?
Software-Engineering ist definiert als ein Prozess, bei dem Benutzeranforderungen analysiert und anschließend Softwareanwendungen entworfen, erstellt und getestet werden, die diese Anforderungen erfüllen.
Schauen wir uns die verschiedenen Definitionen von Software Engineering an:
- In seinem Standard 610.12-1990 definiert IEEE Software-Engineering als die Anwendung eines systematischen, disziplinierten und berechenbaren Ansatzes für die Entwicklung, den Betrieb und die Wartung von Software.
- Fritz Bauer definierte es als „die Einrichtung und Anwendung standardisierter technischer Prinzipien“. Es hilft Ihnen, kostengünstig Software zu erhalten, die zuverlässig ist und effizient auf den realen Maschinen arbeitet.
- Boehm definiert Software-Engineering wie folgt: „Die praktische Anwendung wissenschaftlicher Erkenntnisse auf die kreative Gestaltung und Erstellung von Computerprogrammen. Dazu gehört auch die zugehörige Dokumentation, die für die Entwicklung, den Betrieb und die Wartung dieser Programme erforderlich ist.“
Warum Software Engineering? Softwarekrise und ihre Lösung
Was war die Softwarekrise?
- Es war in den späten 1960er Jahren, als viele Softwareprojekte scheiterten.
- Bei vielen Softwareprogrammen wurde das Budget überschritten. Ausgabe war eine unzuverlässige Software, deren Wartung teuer ist.
- Größere Software war schwierig und recht teuer in der Wartung.
- Viele Softwareprogramme können die wachsenden Anforderungen der Kunden nicht erfüllen.
- Die Komplexität von Softwareprojekten nahm immer dann zu, wenn die Leistungsfähigkeit der Hardware zunahm.
- Die Nachfrage nach neuer Software stieg schneller als die Fähigkeit, neue Software zu generieren.
Alle oben genannten Probleme führen zur „Softwarekrise“.
Die Lösung
Die Lösung des Problems bestand darin, unorganisierte Programmieranstrengungen in eine Softwareentwicklungsdisziplin umzuwandeln. Diese Entwicklungsmodelle halfen Unternehmen, ihre Abläufe zu optimieren und Software zu liefern, die den Kundenanforderungen entsprach.
- In den späten 1970er Jahren kam es zu einer weitverbreiteten Anwendung softwaretechnischer Prinzipien.
- In den 1980er Jahren kam es zur Automatisierung des Software-Engineering-Prozesses und zum Wachstum des (CASE) Computer-Aided Software Engineering.
- In den 1990er Jahren wurde der Schwerpunkt zunehmend auf die „Management“-Aspekte von Projekten, Qualitäts- und Prozessstandards wie ISO 9001 gelegt
Warum ist Software Engineering beliebt?
Hier sind wichtige Gründe für die Beliebtheit des Software-Engineerings:
- Große Software – In unserem wirklichen Leben ist es viel bequemer, eine Mauer zu bauen als ein Haus oder Gebäude. Auf die gleiche Weise hilft Ihnen das Software-Engineering bei der Erstellung von Software, wenn die Größe der Software zunimmt.
- Skalierbarkeit- Wenn der Softwareentwicklungsprozess auf wissenschaftlichen und technischen Konzepten basiert, ist es einfacher, neue Software zu erstellen und so die vorhandene zu skalieren.
- Flexibilität: Wann immer der Softwareprozess auf wissenschaftlicher und technischer Grundlage basierte, ist es mit Hilfe der Softwareentwicklung einfach, neue Software neu zu erstellen.
- Kosten- Die Hardware-Industrie hat ihr Können unter Beweis gestellt und durch die Massenproduktion die Kosten für Computer und elektronische Hardware gesenkt.
- Dynamische Natur– Die Software wächst und passt sich ständig an. Dies hängt von der Umgebung ab, in der der Benutzer arbeitet.
- Quality Management: Bietet eine bessere Methode der Softwareentwicklung, um qualitativ hochwertige Softwareprodukte bereitzustellen.
Verhältnis von Software Engineering zu anderen Disziplinen
Hier, wie Software-Engineering mit anderen Disziplinen zusammenhängt:
- Computerwissenschaften: Gibt der Software die wissenschaftliche Grundlage, da die Elektrotechnik maßgeblich von der Physik abhängt.
- Managementwissenschaft: Softwareentwicklung ist eine arbeitsintensive Arbeit, die sowohl technische als auch betriebswirtschaftliche Kontrolle erfordert. Daher wird es häufig in der Managementwissenschaft verwendet.
- Wirtschaft: In diesem Bereich hilft Ihnen Software Engineering bei der Ressourcenschätzung und Kostenkontrolle. Es muss ein Computersystem entwickelt werden und die Daten sollten innerhalb eines vorgegebenen Budgets regelmäßig gepflegt werden.
- System Entwicklung: Die meiste Software ist Bestandteil eines viel größeren Systems. Zum Beispiel die Software in einem Industrieüberwachungssystem oder die Flugsoftware in einem Flugzeug. Für die Untersuchung dieser Art von Systemen sollten Methoden des Software-Engineerings angewendet werden.
Herausforderungen des Software-Engineerings
Hier sind einige kritische Herausforderungen, denen sich Softwareentwickler gegenübersehen:
- In sicherheitskritischen Bereichen wie der Raumfahrt, der Luftfahrt, Kernkraftwerken usw. können die Kosten eines Softwareausfalls enorm sein, da Menschenleben gefährdet sind.
- Erhöhte Marktanforderungen an schnelle Durchlaufzeiten.
- Umgang mit der zunehmenden Komplexität des Softwarebedarfs für neue Anwendungen.
- Die Vielfalt der Softwaresysteme soll miteinander kommunizieren.
Attribute für Softwareprodukte
Zu den Merkmalen eines Softwareprodukts gehören Funktionen, die das Produkt bei der Installation und Inbetriebnahme aufweist.
Es handelt sich dabei nicht um die Leistungen, die das Produkt bereitstellt. Stattdessen beziehen sie sich auf das dynamische Verhalten des Produkts und die Verwendung des Produkts.
Beispiele für diese Attribute sind:
Efficiency, reliability, robustness, maintainability, etc.
Die relative Bedeutung dieser Merkmale variiert jedoch von Softwaresystem zu Softwaresystem.
| Product Characteristics | Beschreibung |
|---|---|
| Wartbarkeit | Die Software sollte sich weiterentwickeln, um den sich ändernden Anforderungen der Kunden gerecht zu werden. |
| VERLÄSSLICHKEIT | Zur Zuverlässigkeit gehören verschiedene Eigenschaften. Zuverlässige Software sollte zum Zeitpunkt eines Systemausfalls niemals physische oder wirtschaftliche Schäden verursachen. |
| Wirkungsgrad | Die Softwareanwendung sollte Systemressourcen wie Speicher und Prozessorzyklus überbeanspruchen. |
| Intuitive Bedienung | Die Softwareanwendung sollte über eine spezifische Benutzeroberfläche und Dokumentation verfügen. |
Die Optimierung des oben genannten Attributs ist eine große Herausforderung. Beispielsweise kann das Anbieten einer besseren Benutzeroberfläche die Systemeffizienz verringern.
Merkmale guter Software
Jede Software sollte danach beurteilt werden, was sie bietet und welche Methoden Ihnen bei der Verwendung helfen.
Jede Software muss folgende Eigenschaften erfüllen:
- Betrieblich
- Übergangs-
- Wartung
Hier sind einige wichtige Merkmale guter Software, die von Softwareprofis entwickelt wurde
Betrieblich
Diese Eigenschaft gibt Aufschluss darüber, wie gut die Software im Betrieb funktioniert. Dies lässt sich anhand folgender Merkmale messen:
- Budget
- Wirkungsgrad
- Intuitive Bedienung
- VERLÄSSLICHKEIT
- Richtigkeit
- Funktionalität
- Sicherheit
- Sicherheit
Übergangs-
Dies ist ein wesentlicher Aspekt, wenn die Software von einer Plattform auf eine andere verschoben wird:
- Flexibel Kommunikation
- Wiederverwendbarkeit
- Tragbarkeit
- Flexibilität
Wartung
Bei diesem Aspekt geht es darum, wie gut Software in der Lage ist, sich an die sich schnell verändernde Umgebung anzupassen:
- Flexibilität
- Wartbarkeit
- Modularität
- Skalierbarkeit
Zusammenfassung
- Beim Software-Engineering handelt es sich um einen Prozess, bei dem Benutzeranforderungen analysiert und anschließend Softwareanwendungen entworfen, erstellt und getestet werden, die diese Anforderungen erfüllen
- Wichtige Gründe für den Einsatz von Software Engineering sind: 1) große Software, 2) Skalierbarkeit, 3) Anpassungsfähigkeit, 4) Kosten und 5) dynamische Natur.
- In den späten 1960er Jahren überstiegen viele Softwareprogramme das Budget. Daher bietet es unzuverlässige Software, deren Wartung teuer ist.
- In den späten 1970er Jahren kam es zu einer weitverbreiteten Anwendung softwaretechnischer Prinzipien.
- Software-Engineering-Konzept 1) Informatik 2) Managementwissenschaft 3) Systemtechnik und 4) Wirtschaftswissenschaften
- Die gestiegenen Anforderungen des Marktes an schnelle Durchlaufzeiten sind die größten Herausforderungen im Bereich Software-Engineering.
- 1) Wartbarkeit, 2) Zuverlässigkeit, 3) Effizienz und 4) Benutzerfreundlichkeit sind die wichtigsten Merkmale von Softwareprodukten.
- Die drei wichtigsten Merkmale guter Software sind 1) Opera2)Übergang 3)Wartung.

