Schiller-Stoff, Sebastian David; sebastian.stoff@uni-graz.at
Im Standard Glossary of Software Engineering Terminology wird Softwareentwicklung als “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software” definiert. (IEEE 1990, S. 67)
Die Disziplin der Softwareentwicklung gilt als eine Gegenreaktion auf die sogenannte Softwarekrise in den 1960er Jahren und versucht Techniken der Ingenieurdisziplinen auf die Entwicklung von Software anzuwenden (Starke et al. 2020, S. 2), um Risiken der Entwicklung (und Betrieb etc.) zu minimieren. Der Begriff wurde im Rahmen eines NATO-Workshops im Jahre 1969 geprägt. (Dowalil 2020 S. 201)
Damals wie heute leiden Softwareprojekte unter dem generellen Problem, viel zu oft zu scheitern. Sie dauern häufig zu lange oder verursachen zu hohe Kosten. (Starke et al. 2020, S. 11) Mehr als 30% aller Softwareprojekte werden vorzeitig abgebrochen und in mehr als 50% der Fälle wird das geplante Finanzbudget nicht eingehalten. (Starke 2020, S. 5) Ganz generell liegt das wohl daran, dass Software wohl zu den kompliziertesten Dingen zählt, die von Menschen gemacht bzw. geschaffen wird. (Lilienthal 2020, S. 1)
Die Softwareentwicklung bietet daher Vorgehens-, Entwicklungs- und Strukturierungsmodelle für Softwareprojekte an. Die Entwicklungsarbeit soll als Summe komplexer arbeitsteiliger Vorgänge verstanden werden, die Standardisierung, Normierung, Qualitätssicherung etc. benötigen. Der entworfene Quellcode soll entlang von Designprinzipien entwickelt werden und damit so gestaltet sein, dass er den Forderungen der Ingenieurwissenschaften entspricht. (Wie zum Beispiel der Überprüfbarkeit in Form der Testbarkeit)
Allerdings fehlen der Softwareentwicklung bis heute (noch?) viele Merkmale reifer Ingenieurdisziplinen. Bauingenieure können beispielsweise viel genauer vorhersagen, ob das Endprodukt funktionieren wird. Die Achillesferse der Softwareentwicklung ist und bleibt die Schätzung. (Richards 2021 S. 15)
In den Digitalen Geisteswissenschaften wird Softwareentwicklung zunehmend unter dem allgemeinen Begriff Research Software Engineering (RSE) diskutiert und das unter anderem aus dem Blickwinkel des dauerhaften bzw. nachhaltigen Betriebs zur Verfügung gestellter abgeschlossener Forschungsprojekte. James Smithies et al. sehen die Digitalen Geisteswissenschaften an einem Wendepunkt angelangt, wonach die Befassung mit Softwareerhaltung in Zukunft deutlich an Bedeutung gewinnen wird. . (Smithies 2019, S. 1)
Ebenso argumentieren Claes Neuefeind et al, die für die Digitalen Geisteswissenschaften ein strukturelles Defizit in Wartung und Betrieb von Research Software diagnostizieren, obwohl in den Digitalen Geisteswissenschaften die Befassung mit RDM (Research Data Management) sehr ausgeprägt ist. (Neuefeind 2020, S. 530)
Literatur:
- Dowalil, Herbert. 2020. Modulare Softwarearchitektur: Nachhaltiger Entwurf durch Microservices, Modulithen und SOA 2.0 Modulare Softwarearchitektur. München.
- 610.12-1990 - IEEE Standard Glossary of Software Engineering Terminology. URL: https://ieeexplore.ieee.org/document/159342
- Lilienthal, Carola. 2019. Langlebige Software-Architekturen. Technische Schulden analysieren, begrenzen und abbauen. Heidelberg. URL: https://www.langlebige-softwarearchitekturen.de.
- Neuefeind, Claes; Mathiak, Brigitte; Schildkamp, Philip; Karadkar, Unmil; Stigler, Johannes; Steiner, Elisabeth; Vasold, Gunter; Tosques, Fabio; Ciula, Arianna; Maher, Brian; Newton, Greg; Arneil, Stewart; Holmes, Martin. 2020. Sustainability Strategies for Digital Humanities Systems. In: Book of Abstracts of the Digital Humanities Conference. Graz, S. 530-537.
- Richards, Mark; Ford, Neal. 2020. Handbuch moderner Softwarearchitektur: Architekturstile, Patterns und Best Practices Handbuch moderner Softwarearchitektur. Heidelberg.
- Smithies, James; Westling, Carina; Sichani, Anna-Maria; Mellen, Pam; Ciula, Arianna. 2019. Managing 100 Digital Humanities Projects: Digital Scholarship & Archiving in King’s Digital Lab. In: Digital Humanities Quarterly 13, S. 1-16.
- Gharbi, Mahbouba; Koschel, Arne; Rausch, Andreas; Starke, Gernot. 2020. Basiswissen für Softwarearchitekten. Aus- und Weiterbildung nach iSAQB-Standard zum Certified Professional for Software Architecture. Heidelberg. URL: https://www.amazon.de/Basiswissen-f-C3-BCr-Softwarearchitekten-Weiterbildung-iSAQB-Standard-dp-3864909848/dp/3864909848/ref=dp_ob_title_bk.
- Starke, Gernot. 2002. Effektive Software-Architekturen: Ein praktischer Leitfaden Effektive Software-Architekturen. München Wien.