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 des Software-Engineerings an:
- IEEE definiert in seinem Standard 610.12-1990 Software Engineering als die Anwendung eines systematischen, disziplinierten Ansatzes, der ein berechenbarer Ansatz für die Entwicklung, den Betrieb und die Wartung von Software ist.
- Fritz Bauer definierte es als "das Establishment" und verwendete Standard-Engineering-Prinzipien. Es hilft Ihnen, wirtschaftlich Software zu erhalten, die zuverlässig ist und effizient auf den realen Maschinen arbeitet.
- Böhm definiert Software-Engineering, das die praktische Anwendung wissenschaftlicher Erkenntnisse auf das kreative Entwerfen und Erstellen von Computerprogrammen umfasst. Es enthält auch die zugehörige Dokumentation, die für deren Entwicklung, Betrieb und Wartung erforderlich ist. '
In diesem Software-Engineering-Tutorial lernen Sie:
- Was ist Software Engineering?
- Warum Software Engineering? Software-Krise und ihre Lösung
- Warum ist Software Engineering beliebt?
- Beziehung von Software Engineering zu anderen Disziplinen
- Herausforderungen des Software Engineerings
- Attribute für Softwareprodukte
- Eigenschaften guter Software
Warum Software Engineering? Software-Krise und ihre Lösung:
Was war die Software-Krise?
- Es war in den späten 1960er Jahren, als viele Softwareprojekte scheiterten.
- Viele Software hat das Budget überschritten. Die Ausgabe war eine unzuverlässige Software, deren Wartung teuer ist.
- Größere Software war schwierig und recht teuer in der Wartung.
- Viele Software kann die wachsenden Anforderungen des Kunden nicht erfüllen.
- Die Komplexität von Softwareprojekten nahm mit zunehmender Hardwarefähigkeit zu.
- Die Nachfrage nach neuer Software stieg schneller als die Möglichkeit, neue Software zu generieren.
Alle oben genannten Probleme führen zu "Software-Krise".
Die Lösung
Die Lösung für das Problem bestand darin, unorganisierten Codierungsaufwand in eine Software-Engineering-Disziplin umzuwandeln. Diese technischen Modelle halfen Unternehmen, den Betrieb zu rationalisieren und Software bereitzustellen, die den Kundenanforderungen entspricht.
- In den späten 1970er Jahren wurden die Prinzipien der Softwareentwicklung weit verbreitet.
- In den 1980er Jahren wurden der Software-Engineering-Prozess automatisiert und das computergestützte Software-Engineering (CASE) ausgebaut.
- In den neunziger Jahren wurden die Managementaspekte von Qualitäts- und Prozessstandards wie ISO 9001 verstärkt in den Vordergrund gerückt
Warum ist Software Engineering beliebt?
Hier sind wichtige Gründe für die Popularität des Software-Engineerings:
- Große Software - In unserem wirklichen Leben ist es viel komfortabler, eine Wand zu bauen als ein Haus oder ein Gebäude. Auf die gleiche Weise hilft Ihnen das Software-Engineering beim Erstellen von Software, wenn die Größe der Software größer wird.
- Skalierbarkeit - Wenn der Softwareentwicklungsprozess auf wissenschaftlichen und technischen Konzepten basiert, ist es einfacher, neue Software neu zu erstellen, um eine vorhandene zu skalieren.
- Anpassungsfähigkeit : Wann immer der Softwareprozess auf Wissenschaft und Technik basierte, ist es einfach, mit Hilfe des Software-Engineerings neue Software neu zu erstellen.
- Kosten - Die Hardware-Industrie hat ihre Fähigkeiten unter Beweis gestellt und die enorme Fertigung hat die Kosten für Computer und elektronische Hardware gesenkt .
- Dynamische Natur - Wächst und passt die Natur der Software ständig an. Dies hängt von der Umgebung ab, in der der Benutzer arbeitet.
- Qualitätsmanagement : Bietet eine bessere Methode zur Softwareentwicklung, um hochwertige Softwareprodukte bereitzustellen.
Beziehung von Software Engineering zu anderen Disziplinen
Hier, wie Software-Engineering mit anderen Disziplinen zusammenhängt:
- Informatik: Gibt die wissenschaftliche Grundlage für die Software, da die Elektrotechnik hauptsächlich von der Physik abhängt.
- Management Science: Software Engineering ist eine arbeitsintensive Arbeit, die sowohl technische als auch Managementkontrolle erfordert. Daher ist es in der Managementwissenschaft weit verbreitet.
- Wirtschaftlichkeit: In diesem Bereich hilft Ihnen das Software-Engineering bei der Ressourcenschätzung und Kostenkontrolle. Das Computersystem muss entwickelt werden, und die Daten sollten regelmäßig innerhalb eines bestimmten Budgets gepflegt werden.
- System Engineering: 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 der Softwareentwicklung angewendet werden.
Herausforderungen des Software Engineerings
Hier sind einige kritische Herausforderungen für Softwareentwickler:
- In sicherheitskritischen Bereichen wie Weltraum, Luftfahrt, Kernkraftwerken usw. können die Kosten für Softwarefehler massiv sein, da Leben in Gefahr sind.
- Erhöhte Marktanforderungen für eine schnelle Durchlaufzeit.
- Umgang mit der zunehmenden Komplexität des Softwarebedarfs für neue Anwendungen.
- Die Vielfalt der Softwaresysteme sollte miteinander kommunizieren.
Attribute für Softwareprodukte
Zu den Merkmalen eines Softwareprodukts gehören Funktionen, die vom Produkt angezeigt werden, wenn es installiert und verwendet wird.
Sie sind nicht die Dienstleistungen, die vom Produkt erbracht werden. Stattdessen haben sie sich auf das dynamische Verhalten des Produkts und die Verwendung des Produkts bezogen.
Beispiele für diese Attribute sind:
Efficiency, reliability, robustness, maintainability, etc.
Die relative Bedeutung dieser Merkmale variiert jedoch von Softwaresystem zu Softwaresystem.
Produkteigenschaften | Beschreibung |
Wartbarkeit | Die Software sollte sich weiterentwickeln, um den sich ändernden Anforderungen der Kunden gerecht zu werden. |
Zuverlässigkeit | Die Zuverlässigkeit umfasst verschiedene Merkmale. 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. |
Benutzerfreundlichkeit | Die Softwareanwendung sollte über eine spezifische Benutzeroberfläche und Dokumentation verfügen. |
Die Optimierung des obigen Attributs ist sehr schwierig. Zum Beispiel kann das Anbieten einer besseren Benutzeroberfläche die Systemeffizienz verringern.
Eigenschaften guter Software
Jede Software sollte danach beurteilt werden, was sie bietet und welche Methoden Ihnen bei der Verwendung helfen.
Jede Software muss die folgenden Attribute erfüllen:
- Betriebsbereit
- Übergang
- Instandhaltung
Hier sind einige wichtige Merkmale guter Software, die von Softwareprofis entwickelt wurden
Betriebsbereit
Diese Eigenschaft lässt uns wissen, wie gut Software in den Vorgängen funktioniert, an denen gemessen werden kann:
- Budget
- Effizienz
- Benutzerfreundlichkeit
- Zuverlässigkeit
- Richtigkeit
- Funktionalität
- Sicherheit
- Sicherheit
Übergang
Dies ist ein wesentlicher Aspekt, wenn die Software von einer Plattform auf eine andere verschoben wird:
- Interoperabilität
- Wiederverwendbarkeit
- Portabilität
- Anpassungsfähigkeit
Instandhaltung
Dieser Aspekt spricht darüber, wie gut Software in der Lage ist, sich in der sich schnell ändernden Umgebung anzupassen:
- Flexibilität
- Wartbarkeit
- Modularität
- Skalierbarkeit
Zusammenfassung
- Software-Engineering ist ein Prozess, bei dem Benutzeranforderungen analysiert und anschließend Softwareanwendungen entworfen, erstellt und getestet werden, die diese Anforderungen erfüllen
- Wichtige Gründe für die Verwendung 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 wird viele Software über das Budget hinaus. Daher bietet es unzuverlässige Software, deren Wartung teuer ist.
- In den späten 1970er Jahren wurden die Prinzipien der Softwareentwicklung weit verbreitet.
- Software-Engineering-Konzept 1) Informatik 2) Management-Wissenschaft 3) System-Engineering und 4) Wirtschaft
- Die gestiegenen Marktanforderungen nach einer schnellen Durchlaufzeit sind die größten Herausforderungen im Bereich Software-Engineering.
- 1) Wartbarkeit, 2) Zuverlässigkeit, 3) Effizienz und 4) Benutzerfreundlichkeit sind die wichtigsten Attribute von Softwareprodukten.
- Drei wichtige Merkmale guter Software sind 1) Betrieb 2) Übergang 3) Wartung.