Vorgehensmodell zur Softwareentwicklung – Wikipedia

Was ist Softwareentwicklung?

Softwareentwicklung bezieht sich auf einen Reihe von Aktivitäten im Bereich Informatik, die der Erstellung, Gestaltung, Bereitstellung und Unterstützung von Software dienen."

Software selbst beschreibt die Anweisungen oder Programme, die einem Computer sagen, was er tun soll. Es ist unabhängig von Hardware und macht Computer programmierbar. Es gibt drei grundlegend Typen:

Systemsoftware für Kernfunktionen wie Betriebssysteme, Plattenverwaltung, Dienstprogramme, Hardware-Management – und andere, für den Betrieb notwendige.

Programmierungssoftware gibt Programmierern Tools wie Texteditoren, Compiler, Linker, Debugger und andere Tools, die Code erzeugen.

Anwendungssoftware (Anwendungen oder Apps), die Benutzern dabei helfen, Aufgaben auszuführen. Beispiele sind Produktivitäts-Suites für den Bürobetrieb, Datenverwaltungssoftware und Sicherheitsprogramme. Anwendungen bezieht sich auch auf Web- und mobile Anwendungen, wie sie beim Einkauf auf Amazon.de, dem Teilen von Inhalten auf Facebook oder dem Veröffentlichen von Bildern auf Instagram verwendet werden.1

Ein möglicher vierter Typ ist die eingebettete Software. Software für eingebettete Systeme wird zur Steuerung von Maschinen und Geräten verwendet, die normalerweise nicht als Computer bezeichnet werden — unter anderem Telekommunikationsnetze, Autos und Industrieroboter. Diese Geräte und ihre Software , können miteinander verbunden sein im Rahmen des Internet der Dinge (IoD).2

An der Softwareentwicklung sind in erster Linie Programmierer sowie Softwaretechniker und Softwareentwickler beteiligt. Die Verantwortlichkeiten überschneiden sich dabei und die Dynamik der Zusammenarbeit kann je nach Abteilung und Community stark variieren.

Programmierer oder Codierer schreiben Quellcode, um Computer für bestimmte Aufgaben zu programmieren, etwa das Zusammenführen von Datenbanken, die Bearbeitung von Online-Bestellungen, das Weiterleiten von Kommunikation, Durchführen von Suchvorgängen oder die Anzeige von Text oder Grafiken. Normalerweise interpretieren Programmierer Anweisungen von Softwareentwicklern und -technikern und verwenden Sprachen wie C++ oder Java, um sie umzusetzen.

Softwaretechniker wenden Grundsätze aus dem Ingenieurwesen an, um Software und Systeme zur Problemlösung zu gestalten. Sie setzten eine Modellierungssprache und andere Tools ein, um Lösungen zu entwickeln, die oft auf Probleme im Allgemeinen angewandt werden können, im Gegensatz zu situations- oder kundenspezifischen Lösungen. Software-Engineering-Lösungen basieren auf wissenschaftlichen Methoden und müssen in der Praxis funktionieren, wie etwa bei Brücken oder Aufzügen. Ihre Verantwortung ist gewachsen, da Produkte durch die Verwendung von Mikroprozessoren, Sensoren und Software immer intelligenter werden. Produkte sind nicht mehr nur zu Zwecken der Marktdifferenzierung auf Software angewiesen; vielmehr muss die entsprechende Softwareentwicklung muss mit der mechanischen und elektrischen Produktentwicklung koordiniert werden.

Softwareentwickler haben eine weniger festgelegte Rolle als die Techniker und können sich im Detail mit bestimmten Projektbereichen befassen – einschließlich dem Schreiben von Code. Gleichzeitig bestimmen Sie den Softwareentwicklungslebenszyklus – einschließlich der Umwandlung von Anforderungen in Features im Rahmen funktionsübergreifender Teamarbeit, dem Management von Entwicklungsteams und -prozessen sowie Softwaretests und -wartung.3

Die Arbeit der Softwareentwicklung beschränkt sich nicht auf Programmierer oder Entwicklungsteams. Auch Fachleute wie Wissenschaftler, Geräte- und Hardwarehersteller erzeugen Software-Code, obwohl sie nicht in erster Linie als Softwareentwickler fungieren. Es beschränkt sich auch nicht auf traditionelle Branchen der Informationstechnologien wie Software- oder Halbleiterunternehmen. Laut Brookings Institute (Link außerhalb stellen diese Unternehmen „weniger als die Hälfte der Unternehmen, die Software entwickeln dar."

Ein wichtiger Unterschied ist der zwischen kundenspezifischer Softwareentwicklung und kommerzieller Softwareentwicklung. Kundenspezifische Softwareentwicklung ist der Prozess des Entwerfens, Erstellens, Bereitstellens und Wartens von Software für eine bestimmte Gruppe von Benutzern, Funktionen oder Organisationen. Dagegen wird Standardsoftware (commercial off-the-shelf ,COTS, software) für eine breite Palette an Anforderungen entwickelt und kann daher kommerziell vermarktet und vertrieben werden.

Was ist Softwareentwicklung? Dinge, die du wissen musst!

Was ist Softwareentwicklung? Dinge, die du wissen musst!

Was ist Softwareentwicklung?

Wir leben in einer Welt, in der Software einen großen Teil unseres täglichen Lebens ausmacht, von Autos über Telefone bis hin zu Kaffeemaschinen, Software spielt eine große Rolle für unseren modernen Lebensstil. Hinter jeder der ausgefallenen Anwendungen, die wir verwenden, sei es auf unseren Handys, Laptops oder auf unseren Autos und Wohnungen, befindet sich eine Software im Backend, die der Anwendung sagt, was sie tun soll. In diesem Leitfaden erfahren Sie mehr über die Softwareentwicklung, wie sie funktioniert? Was das ist? und die Methoden dahinter. Dieses Handbuch richtet sich an alle, die mehr über Softwareentwicklung erfahren möchten, es ist nicht notwendig, einen technischen Hintergrund zu haben, um diesem Handbuch zu folgen. In diesem Leitfaden werden wir uns hauptsächlich auf die wichtigen Aspekte der Softwareentwicklung konzentrieren, wie z.B.:

Softwareentwicklungsprozesse

Softwareentwicklung Lebenszyklus

Methoden der Softwareentwicklung

Softwareentwickler

Programmiersprachen

Unterschiede zwischen Backend und Frontend.

Software-Entwicklung auch bekannt als (Software-Design, Anwendungsentwicklung oder Plattform-Entwicklung) ist in einfachen Worten eine Reihe von Anweisungen oder Programmen, die erstellt wird, um eine Aufgabe oder eine Aktion auszuführen. Nach Angaben der IBM Research: «Softwareentwicklung bezieht sich auf eine Reihe von Informatikaktivitäten, die dem Prozess der Erstellung, des Designs, der Bereitstellung und des Supports von Software gewidmet sind.» In der Tat ist Software-Entwicklung eine Reihe von Prozessen, wie die Software entwickelt werden soll. Jede Software hat einen Lebenszyklus.

Was ist ein Software Development Life Cycle / SDLC Phasen?

Software-Lebenszyklusmodelle beschreiben Phasen des Softwarezyklus und die Reihenfolge, in der diese Phasen ausgeführt werden. Jede Phase produziert Ergebnisse, die für die nächste Phase des Lebenszyklus erforderlich sind. Das Ziel von SDLC oder Software Development Life Cycle ist es, Software mit höchster Qualität und niedrigsten Kosten in kürzester Zeit zu produzieren. Es gibt mehrere Phasen, die in SDLC enthalten sind, es beinhaltet Anforderungsanalyse, Design, Umsetzung, Test, Veröffentlichung und Wartung & Support. Es gibt sechs Phasen in jedem Softwareentwicklungslebenszyklus, die sich wie folgt darstellen:

Anforderungsanalyse: Die erste Phase eines jeden Softwareentwicklungslebenszyklus ist die Sammlung von Anforderungen. Wissen Sie, wer das System benutzen wird? Wie werden sie es nutzen? Welche Art von Daten werden von den Nutzern eingegeben? Welche Daten werden vom System ausgegeben? Und andere wichtige Informationen für die gesamte Entwicklung werden in der Regel in dieser Phase gesammelt. In dieser Phase werden Informationen vom Kunden gesammelt, um ein Produkt zu entwickeln, das auf dessen Spezifikation und Erwartungen basiert.

Sobald die Anforderungen gesammelt sind, werden sie analysiert und untersucht, wie diese Daten in die Systementwicklung einbezogen werden können.

Nachdem die Anforderungen abgeschlossen sind, wird das Dokument Software Requirement Specification erstellt. Sowohl Entwickler als auch Kunden sollten das SRS-Dokument sorgfältig prüfen und können es für zukünftige Referenzen verwenden.

Design: Die Designphase oder wie in der Softwareentwicklung als technisches Design bekannt, wird vom Entwicklungsteam betreut. In der Regel sind leitende Entwickler und Softwarearchitekten für die Entwurfsphase verantwortlich. In dieser Phase entscheiden Sie und das Entwicklungsteam über den Softwarebedarf, das Aussehen und den Zeitrahmen für die Entwicklung der Software. Außerdem werden in dieser Phase Workflows festgelegt, in denen die Ingenieure entscheiden, welche Art von Datenbanken in der Reihenfolge verwendet werden sollen, und ein Datenmodell erstellen. Diese Phase wird Ihnen helfen, für die nächsten Phasen der Softwareentwicklung, die Sie durchlaufen müssen.

Implementierung/Kodierung: Die nächste Phase nach der Designphase ist die Implementierungs- oder Codierungsphase. Nach Erhalt der Systemdesignunterlagen wird die Arbeit in Module aufgeteilt und die Programmierung beginnt. Dies ist in der Regel die zeitaufwändigste Phase des Softwareentwicklungszyklus. Softwareentwickler schreiben den Code basierend auf dem Dokument zur Spezifikation des Systemdesigns. Es ist eine Menge Planung erforderlich, bevor die erste Zeile des Codes geschrieben wird. In dieser Phase werden die Entwicklungsaufgaben aufgeteilt, damit das Projekt in Einzelteile zerlegt werden kann. Stück für Stück zu gehen, gibt uns Zeit, Feedback-Sitzungen zu überprüfen und durchzuführen, um sicherzustellen, dass die Entwicklung auf dem richtigen Weg ist.

Test: Bei der Vizah GmbH wissen wir, dass die Softwareentwicklung besser wird, wenn Sie die Software während des Entwicklungsprozesses testen. Auf diese Weise werden Probleme/Fehler während des Builds gefunden und unsere Entwickler können sie in der Regel in dieser Phase beheben, ohne die anderen Phasen der Softwareentwicklung negativ beeinflussen zu müssen. In dieser Phase werden alle Arten von Tests durchgeführt, wie Unit-Tests, Systemtests, Abnahmetests und Integrationstests. Wir machen einen weiteren Schritt, um sicherzustellen, dass die Testphase abgeschlossen ist. Wir holen eine Gruppe von Benutzern ein, um das Produkt zu testen und uns Feedback zu geben. Benutzertests sind wichtig, da sie helfen, Probleme aufzudecken, die für unsere Entwickler vielleicht nicht offensichtlich sind.

Wartung: Sobald die Kunden mit der Nutzung des entwickelten Systems beginnen, treten die eigentlichen Probleme auf und müssen von Zeit zu Zeit gelöst werden. Dieser Prozess, bei dem die Sorgfalt auf das entwickelte Produkt verwendet wird, wird als Wartung bezeichnet.

Methoden der Softwareentwicklung

Um erfolgreich bei der Verwaltung der Softwareentwicklung zu sein, gibt es nur wenige verschiedene Methoden, die Manager oder Teams für ihren Prozess verwenden können. Alle Methoden sind unterschiedlich und haben ihre Stärken und Schwächen. Hier ist ein Überblick über die am häufigsten verwendeten Methoden der Softwareentwicklung.

Agile Methodik in der Softwareentwicklung

Eine der heutzutage am häufigsten verwendeten Methoden ist Agile. Teams verwenden die agile Entwicklungsmethodik, um Risiken (wie Fehler, Kostenüberschreitungen und sich ändernde Anforderungen) beim Hinzufügen neuer Funktionen zu minimieren. Bei allen agilen Methoden entwickeln Teams die Software in Iterationen, die Mini-Inkremente der neuen Funktionalität enthalten. Es gibt viele verschiedene Formen der agilen Entwicklungsmethode, darunter Scrum, Crystal, Extreme Programming (XP) und Feature Driven Development (FDD).

DevOps Bereitstellungsmethodik

DevOps ist nicht nur eine Entwicklungsmethodik, sondern auch eine Reihe von Praktiken, die eine Unternehmenskultur unterstützen. DevOps konzentriert sich auf organisatorische Veränderungen, die die Zusammenarbeit zwischen den Abteilungen verbessern, die für verschiedene Segmente des Entwicklungslebenszyklus verantwortlich sind, wie Entwicklung, Qualitätssicherung und Betrieb.

Wasserfallmethodik in der Softwareentwicklung

Viele betrachten die Wasserfallmethode als die traditionellste Softwareentwicklungsmethode. Die Wasserfallmethode ist ein starres lineares Modell, das aus sequentiellen Phasen (Anforderungen, Design, Implementierung, Verifikation, Wartung) besteht, die sich auf bestimmte Ziele konzentrieren. Jede Phase muss zu 100% abgeschlossen sein, bevor die nächste Phase beginnen kann. In der Regel gibt es keinen Prozess, bei dem man zurückgehen kann, um das Projekt oder die Richtung zu ändern.

Methodik der schnellen Anwendungsentwicklung

Rapid Application Development (RAD) ist ein verdichteter Entwicklungsprozess, der ein qualitativ hochwertiges System mit geringen Investitionskosten hervorbringt. Scott Stiner, CEO und Präsident von UM Technologies, sagte in Forbes: «Dieser RAD-Prozess ermöglicht es unseren Entwicklern, sich schnell auf sich ändernde Anforderungen in einem schnelllebigen und sich ständig verändernden Markt einzustellen». Die Fähigkeit zur schnellen Anpassung ermöglicht eine so niedrige Investitionskosten.

3. Arten der Softwareentwicklung

Softwareentwicklung ist eine der am schnellsten wachsenden Branchen und das Potenzial für eine Karriere ist endlos. Es gibt verschiedene Arten der Softwareentwicklung und hier sind einige, die Sie wissen sollten:

Back End Development Software Tools Development API Development Embedded Systems Development Security Software Development Cloud Computing Mobile Development Web Development Application Development Data Sciences

3.1. Arten von Programmiersprachen?

Es gibt grundsätzlich zwei Arten von Programmiersprachen, Low-Level-Sprachen oder bekannt als Assembly oder und High-Level-Sprachen wie C#, Java, Python, etc.

Assembly

Procedural Basic C

Object-Oriented C# Java

Declarative Prolog SQL

Functional Lisp Haskell

Unterschiede zwischen Backend und Frontend?

Frontend bezieht sich auf die Client-Seite, während Backend auf die Server-Seite der Anwendung verweist. Beide sind für die Webentwicklung entscheidend, aber ihre Rollen, Verantwortlichkeiten und das Umfeld, in dem sie arbeiten, sind völlig unterschiedlich.

Was macht ein Softwareentwickler?

Softwareentwickler arbeiten oft für Computerfirmen und Hersteller. Ihre Hauptaufgabe ist es, die Grundlagen für operative Systeme zu schaffen, an denen Computerprogrammierer arbeiten. Sie entwerfen, schreiben und testen Code für neue Systeme und Software, um die Effizienz zu gewährleisten. Softwareentwickler führen auch Diagnoseprogramme und Qualitätssicherungsprüfungen (QS) an bestehenden Projekten durch, bevor sie diese starten, um die Wirksamkeit zu bestätigen.

Ein Softwareentwickler ist an allen Prozessen beteiligt, die mit der Erstellung und dem Design neuer Systeme zusammenhängen, von der ersten Planung über die Festlegung von Parametern bis hin zum Design, Schreiben, Codieren, Verschlüsseln und Testen. Dieser Prozess wird in der Regel von einem Team von Softwareentwicklern durchgeführt, wobei jedes Mitglied einen bestimmten Schritt des Prozesses durchführt und ein Supervisor das gesamte Projekt überwacht.

Vorgehensmodell zur Softwareentwicklung – Wikipedia

Ein Vorgehensmodell zur Softwareentwicklung ist ein für die Softwareentwicklung angepasstes Vorgehensmodell bei der professionellen („ingenieursmäßigen“) Anwendungsentwicklung. Es dient dazu, die Softwareentwicklung übersichtlicher zu gestalten und in der Komplexität beherrschbar zu machen.

Da komplexe Software nur schwer zu erstellen und zu warten ist, bedienen sich Softwareentwickler eines Planes zur Entwicklung von Software. Dieser Plan (das Vorgehensmodell) unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen. Die Software wird somit Schritt für Schritt fertiggestellt. Der eigentliche Entwicklungsprozess wird dabei vom Projektmanagement und der Qualitätssicherung begleitet.

Vorgehensmodelle spalten einzelne Aktivitäten auf verschiedene Phasen im Entwicklungsprozess auf und diese werden dann – u. U. mit geringen Modifikationen – einmal (z. B. Wasserfallmodell) oder mehrmals durchlaufen (z. B. Spiralmodell). Bei mehrmaligen Durchläufen erfolgt eine iterative (d. h. wiederholte) Verfeinerung der einzelnen Softwarekomponenten. Um die optimalen Vorgehensmodelle herrscht Uneinigkeit. In der Regel unterscheiden sie beim Entwicklungsprozess mindestens zwei große Tätigkeitsgruppen: die (von der programmiertechnischen Realisierung unabhängige) Analyse von Geschäftsprozessen (Geschäftsprozessmodell und Datenmodell) einerseits und die EDV-technische Realisierung (Design und Programmierung) andererseits.

Vorgehensmodelle unterscheiden sich wesentlich in ihrem Detaillierungsgrad. OOTC-Approach, Rational Unified Process, Rapid Application Development etc. sind detailliert ausgearbeitete Vorgehensweisen, die den an der Entwicklung Beteiligten konkrete Arbeitsanweisungen an die Hand geben. Das V-Modell nimmt diesbezüglich übrigens eine Zwitterstellung ein: Es ist sowohl ein Prinzip (jeder Stufe der Entwicklung entspricht eine Testphase) als auch (wie zumeist gebräuchlich) ein detailliertes Modell.

Die agile Softwareentwicklung beschäftigt sich mit Methoden, die den Entwickler kreativ arbeiten und Verwaltungsaspekte zurücktreten lassen. Alternative Softwaretechnologien (Universal Application, Software factory u. ä.) verfolgen Ansätze, welche die konventionelle Vorgehensweise von Softwareentwurf und anschließender Programmierung grundsätzlich in Frage stellen, indem vorgefertigte universalisierte Software per Konfiguration an die jeweiligen Anforderungen angepasst wird.

Es gibt verschiedene Bewertungsverfahren für den Softwareprozess, u. a. das Capability Maturity Model (Integration) oder „Spice“.

Typen von Vorgehensmodellen [ Bearbeiten | Quelltext bearbeiten ]

Es gibt drei unterschiedliche Typen von Vorgehensmodellen:

Softwareentwicklungsprozesse dienen zur Steuerung einer Softwareentwicklung von der Konzeption bis zum Einsatz im Echtbetrieb inklusive der im Echtbetrieb anfallenden Änderungen einer Software. Eines der ältesten Modelle ist das Wasserfallmodell, das eine starre Abfolge der einzelnen Phasen annimmt. Weiterentwicklungen wie das Spiralmodell sehen hingegen Iterationen vor, d. h. derselbe Arbeitsschritt (z. B. die Analyse) wird mehrmals durchlaufen und die Ergebnisse des Arbeitsschrittes pro Durchlauf verfeinert und verbessert.

Siehe auch: Liste von Softwareentwicklungsprozessen

Softwarelebenszyklusmanagement erweitert die Phasen über den gesamten Lebenszyklus einer Software. Das Vorgehensmodell definiert die Anforderungen an betriebliche Prozesse (das „WAS“) und beschreibt die konkreten, EDV-technisch realisierten Prozesse (das „WIE“). Dieser Typ ist eine Mischung aus Ist-Beschreibung und normativer Vorgabe. Je nach Standardisierungsgrad werden verschiedene Entwicklungsstufen vergeben. Unternehmen können sich diese Entwicklungsstufen von externen Stellen zertifizieren lassen.

Softwareentwicklungs-Philosophie entspricht einer Programmierer-Philosophie, einem bestimmten Ansatz, wie Software nach Ansicht der Proponenten am besten entwickelt werden sollte. Diese Philosophien beinhalten sehr oft auch Prozesselemente und werden daher ebenfalls als Prozessmodell bezeichnet.

gute Belege einfügst.

Dieser Artikel oder nachfolgende Abschnitt ist nicht hinreichend mit Belegen (beispielsweise Einzelnachweisen ) ausgestattet. Angaben ohne ausreichenden Beleg könnten demnächst entfernt werden. Bitte hilf Wikipedia, indem du die Angaben recherchierst und

Ein genereller Vorteil von Vorgehensmodellen ist, dass Projektmanagement-Prozesse, Qualitätssicherungsprozesse und der eigentliche produkterstellende Prozess gemeinsam abgebildet werden.

Ein zielgerichtetes Vorgehen verbessert die Übersichtlichkeit des Gesamtprojektes, die Koordination von Teams und hilft, Fehler frühzeitig zu erkennen. Dies wirkt sich in der Regel positiv auf die Qualität des gesamten Systems aus bzw. erlaubt eine genaue Rekonstruktion des Entwicklungsprozesses und der zu Grunde liegenden Entscheidungen.

Vorteile eines Vorgehens nach einem Vorgehensmodell: Trennung der Analyse von Geschäftsprozessen (WAS) von EDV-technischer Realisierung (WIE) Leitfaden für die Systementwicklung projektbegleitende Dokumentation Personenunabhängigkeit frühzeitige Fehlererkennung durch festgeschriebene Testaktivitäten

Vorgehensmodelle geben einen Rahmen vor, in dem ein Projekt geordnet ablaufen kann. Das Vorgehensmodell hilft dabei, den Ablauf eines Projektes zu strukturieren und nachzuvollziehen, da es den Prozess und die Dokumente der Softwareerstellung beschreibt. Die Güte der zu erstellenden Software ist demgegenüber auch von den Projektbeteiligten abhängig. Es ist wichtig, dass sie ein großes Vorwissen besitzen, gut zusammenarbeiten und ihrem gesunden Menschenverstand vertrauen. Der Projekterfolg und nicht das Vorgehensmodell ist das primäre Ziel.

Es existierten mehrere Vorschläge parallel zueinander, ohne dass sich eines der Vorgehensmodelle in der Praxis mit Breitenwirkung durchgesetzt hätte.

Die Anbieter von Vorgehensmodellen sind voreingenommen. Vorgehensmodelle sind ein Geschäft, daher berät der Entwickler eines Vorgehensmodells in seinem Interesse. Anbieter stellen gerade ihr Modell als das Allheilmittel für alle Probleme dar. Hier liegt der Grundstein für eine Folge dem Prozess und alles wird gut -Mentalität. Ein Projekt scheitert dann, wenn die Beteiligten es nicht mehr objektiv betrachten und beispielsweise nur die vorgegebenen Checklisten abarbeiten.

-Mentalität. Ein Projekt scheitert dann, wenn die Beteiligten es nicht mehr objektiv betrachten und beispielsweise nur die vorgegebenen Checklisten abarbeiten. Aufgrund der Projektstruktur, die ein Vorgehensmodell erzeugt, bietet eine Unternehmensberatung für jede Einzeltätigkeit spezialisierte Berater an. Durch die Zersplitterung der Aufgaben auf Einzelspezialisten steigt der Koordinierungsaufwand überproportional.

Vorgehensmodelle können dem Parkinsonschen Gesetz für Verwaltung und Management zur vollen Blüte verhelfen, da sie die Möglichkeit eröffnen, neue Mitarbeiter für neue Aufgaben nach Vorgehensmodell anzufordern. Betroffen von diesem Phänomen sind besonders solche Einrichtungen, die keiner engen wirtschaftlichen Kontrolle unterliegen, weil sie nicht zahlungsunfähig werden können (Behörde, Amt und Anstalt des öffentlichen Rechts). Als Warnung mögen die bis zum Jahr 2004 gescheiterten, erheblich verzögerten, sich als ungeeignet herausgestellten und/oder erheblich verteuerten Softwareprojekte der öffentlichen Hand, wie INPOL-Neu (Polizei), Nivadis (Polizei Niedersachsen), FISCUS (Finanzamt), Herkules (Bundeswehr), Online-Jobbörse (Arbeitsagentur), Toll Collect, A2LL (Arbeitsagentur, „Hartz IV“-Software), POLIKS (Polizei Berlin) etc. dienen.

Es ist umstritten, ob der Entstehungsprozess von Software so gut verstanden wird, dass eine „ingenieurmäßige Herstellung“ möglich ist: Kritiker argumentieren, dass Software nichts anderes sei als „ausführbares Wissen“. Wissen jedoch lasse sich nicht ingenieurmäßig herstellen (wie sich etwa eine Brücke oder ein Hochhaus herstellen lässt), sondern werde in einem kreativen Prozess gefunden. Die Gegenposition argumentiert, dass gerade in dem „kreativen Prozess“ die Gefahr von Wartungsproblemen und struktureller Unsauberkeit liegt. Das Argument der Kritiker gelte für andere technische Entwicklungsprozesse (z. B. Bau einer Brücke, eines Hauses, einer Fabrik) auch nicht.

Tilo Pfeifer, Robert Schmitt (Herausgeber): Qualitätsmanagement in der Softwareentwicklung, Teil IV in: Masing Handbuch Qualitätsmanagement, Carl Hanser Fachbuchverlag München Wien, 6. überarbeitete Auflage (2014), ISBN 978-3-446-43431-8

Leave A Comment