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:

  • IEEE definiert in seinem Standard 610.12-1990 Software-Engineering als die Anwendung eines systematischen, disziplinierten, also 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 als „die praktische Anwendung wissenschaftlicher Erkenntnisse bei der kreativen Gestaltung und Erstellung von Computerprogrammen“. Es umfasst auch die zugehörige Dokumentation, die für deren Entwicklung, Betrieb und Wartung 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 sind nicht in der Lage, die Anforderungen der Benutzer zu erfüllenwing Anforderungen des Kunden.
  • MitplexDie Komplexität von Softwareprojekten nahm zu, wenn die Hardwarekapazität 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, den unorganisierten Codierungsaufwand in eine Software-Engineering-Disziplin umzuwandeln. Diese Engineering-Modelle halfen Unternehmen, Abläufe zu rationalisieren und Software bereitzustellen, die den Kundenanforderungen entspricht.

  • 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:

Warum Software Engineering beliebt ist

  • 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 basieren würde, ist es einfacher, neue Software neu zu erstellen, um eine bestehende 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 Hardwareindustrie hat ihr Können unter Beweis gestellt und die enorme Produktion hat die Kosten für Computer und elektronische Hardware gesenkt.
  • Dynamische Natur– Immer growing und Anpassungscharakter der Software. 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: Bietet die wissenschaftliche Grundlage für die Software, da die Elektrotechnik hauptsächlich auf der Physik basiert.
  • 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 erhöhten KomplexGröße 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 anzeigt, wenn es installiert und verwendet wird.

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.
effizienz Die Softwareanwendung sollte Systemressourcen wie Speicher und Prozessorzyklus überbeanspruchen.
Handhabung 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 Folgendes erfüllen:wing Attribute:

  • Operatives
  • Übergangs-
  • Wartung

Hier sind einige wichtige Merkmale guter Software, die von Softwareprofis entwickelt wurde

Operatives

Diese Eigenschaft gibt uns Aufschluss darüber, wie gut Software in den Abläufen funktioniert, die gemessen werden können an:

  • Preis
  • effizienz
  • Handhabung
  • VERLÄSSLICHKEIT
  • Richtigkeit
  • Funktionalität
  • Sicherheit
  • Sicherheit

Übergangs-

Dies ist ein wesentlicher Aspekt, wenn die Software von einer Plattform auf eine andere verschoben wird:

  • Flexible 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) betriebsbereit, 2) vorübergehend und 3) wartungsfähig.