<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Softwaretechnik</id>
	<title>Softwaretechnik - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Softwaretechnik"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Softwaretechnik&amp;action=history"/>
	<updated>2026-05-20T07:47:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Softwaretechnik&amp;diff=48231&amp;oldid=prev</id>
		<title>imported&gt;Millbart: 2 Versionen von 262745386 bis 262754090 rückgängig gemacht, unbrauch gem. WP:Belege und WP:KI</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Softwaretechnik&amp;diff=48231&amp;oldid=prev"/>
		<updated>2026-04-06T14:23:22Z</updated>

		<summary type="html">&lt;p&gt;2 Versionen von &lt;a href=&quot;/index.php/Spezial:Diff/262745386&quot; title=&quot;Spezial:Diff/262745386&quot;&gt;262745386&lt;/a&gt; bis &lt;a href=&quot;/index.php/Spezial:Diff/262754090&quot; title=&quot;Spezial:Diff/262754090&quot;&gt;262754090&lt;/a&gt; rückgängig gemacht, unbrauch gem. &lt;a href=&quot;/index.php?title=WP:Belege&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:Belege (Seite nicht vorhanden)&quot;&gt;WP:Belege&lt;/a&gt; und &lt;a href=&quot;/index.php?title=WP:KI&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;WP:KI (Seite nicht vorhanden)&quot;&gt;WP:KI&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Die &amp;#039;&amp;#039;&amp;#039;Softwaretechnik&amp;#039;&amp;#039;&amp;#039; bzw. &amp;#039;&amp;#039;&amp;#039;Softwaretechnologie&amp;#039;&amp;#039;&amp;#039; oder das &amp;#039;&amp;#039;&amp;#039;Software-Engineering&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;SE&amp;#039;&amp;#039;&amp;#039;) beschäftigt sich mit der Herstellung oder Entwicklung von [[Software]], der Organisation und Modellierung der zugehörigen [[Datenstruktur]]en und dem Betrieb von [[Softwaresystem]]en. Eine Definition von [[Helmut Balzert]] beschreibt das Gebiet als&lt;br /&gt;
&lt;br /&gt;
{{Zitat&lt;br /&gt;
 |Text=Zielorientierte Bereitstellung und systematische Verwendung von [[Prinzip]]ien, Methoden und [[Werkzeug]]en für die arbeitsteilige, ingenieurmäßige Entwicklung und Anwendung von umfangreichen Softwaresystemen.&lt;br /&gt;
 |Autor=&lt;br /&gt;
 |Quelle=[[#Literatur|Lit.]]: Balzert, S. 36}}&lt;br /&gt;
&lt;br /&gt;
Softwaretechnik umfasst eine Vielzahl von Teilgebieten, die in ihrer Gesamtheit die Softwareentwicklung begleiten. Wichtig ist auch die experimentelle Untersuchung von Softwaretechnik, um ihren praktischen Nutzen zu messen und zu verbessern. Zur Beschreibung des „Standes der Technik“ des Fachgebiets gibt es verschiedene Ansätze, unter anderem den &amp;#039;&amp;#039;Guide to the [[Software Engineering Body of Knowledge]] (SWEBOK)&amp;#039;&amp;#039; der [[IEEE Computer Society]].&lt;br /&gt;
&lt;br /&gt;
Die IT-Disziplin Softwaretechnik wird im Sprachgebrauch und als Synonym mit „Softwareentwicklung“ bezeichnet;&amp;lt;ref&amp;gt;[https://www.lerneprogrammieren.com/blog/theorie/programmierung-vs-softwareentwicklung Lerne programmieren &amp;#039;&amp;#039;Programmierung vs. Softwareentwicklung&amp;#039;&amp;#039;]&amp;lt;/ref&amp;gt; im sprachlich engeren Sinn steht „Softwareentwicklung“ &amp;lt;!--als substantiviertes Verb--&amp;gt;jedoch für die Tätigkeiten, die innerhalb der Disziplin Softwaretechnik ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
In erweitertem Sinn versteht man unter Softwaretechnik –&amp;amp;nbsp;neben dem Entwickeln&amp;amp;nbsp;– auch das Betreiben von Software unter Nutzung der [[Informationstechnik]]&amp;lt;!--gibts dazu einen Beleg? man kennt das eher so wie nachfolgend beschrieben:--&amp;gt; und/oder die technischen Geräte und die [[Systemsoftware]], die dazu oder zur Softwareentwicklung verwendet werden&amp;lt;!--Beleg (leider Werbung): siehe [http://www.software--entwicklung.de/] u.v.a.--&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Teilgebiete ==&lt;br /&gt;
Aufgrund des hohen Aufwandes zur Erstellung und Wartung komplexer Software erfolgt die Entwicklung durch [[Softwareentwickler]] anhand eines strukturierten (Projekt-)Planes. Dieser Plan (das [[Vorgehensmodell zur Softwareentwicklung|Vorgehensmodell]]) unterteilt den Entwicklungsprozess in überschaubare, zeitlich und inhaltlich begrenzte Phasen. Die Software wird somit Schritt für Schritt fertiggestellt. Die Phasen sind während des ganzen Entwicklungsprozesses eng miteinander verzahnt. In der Praxis werden auch Verfahren eingesetzt, welche die Mehrstufigkeit von Systemanalyse, Systemdesign/Konzept und anschließender Implementierung und Testen aufgeben, beispielsweise unter [[Prototyping (Softwareentwicklung)|Prototyping]], [[Agile Softwareentwicklung]].&lt;br /&gt;
&lt;br /&gt;
Die Softwaretechnik umfasst den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten IT-Lösung, zum Teil auch darüber hinaus. Hauptgegenstand ist die Bereitstellung und Einführung einer [[Anwendungssoftware]], teilweise zuzüglich der benötigten [[Hardware]] und [[Netzwerk]]e.&lt;br /&gt;
&lt;br /&gt;
Die zu implementierende Software kann entweder eine [[Individualsoftware]] oder eine Kombination und Konfiguration von [[Standardsoftware]] sein.&lt;br /&gt;
&lt;br /&gt;
Projekte werden oftmals von oder mit externen Dienstleistungsunternehmen, häufig aber auch als Eigenentwicklung geleistet. Dementsprechend vielfältig, auch abhängig von der [[Projekt#Projektarten|Projektart]], sind auch die [[Vorgehensmodell|Vorgehensweisen]] bei der Projektentwicklung: Von einer sehr strukturierten Herangehensweise, siehe [[Wasserfallmodell]], über verschiedene Mischformen bis hin zu sehr flexiblen, offenen Methoden wie der [[Agile Softwareentwicklung|Agilen Softwareentwicklung]]. Entsprechend wird auch zwischen [[Top-Down- und Bottom-Up-Design|Top-Down- und Bottom-Up]]-Ansätzen unterschieden.&lt;br /&gt;
&lt;br /&gt;
Im Folgenden werden einige wichtige Aspekte und typische Stufen/Phasen der Projektentwicklung beschrieben, die in der Praxis mehr oder weniger ausgeprägt zum Tragen kommen.&lt;br /&gt;
&lt;br /&gt;
Die Phasen und ihre Aufgabenstellungen sind in der folgenden Tabelle aufgeführt:&lt;br /&gt;
{| cellspacing=&amp;quot;15&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Kernprozesse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. [[Planung]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Anforderungserhebung]]&lt;br /&gt;
* [[Lastenheft]] ([[Anforderung (Informatik)|Anforderungsdefinition]])&lt;br /&gt;
* [[Pflichtenheft]] (mit technischen Ansätzen verfeinertes [[Lastenheft]])&lt;br /&gt;
* [[Aufwandsschätzung (Softwaretechnik)|Aufwandsschätzung]] (z.&amp;amp;nbsp;B. mittels [[Function-Point-Verfahren]] oder [[COCOMO]])&lt;br /&gt;
* [[Vorgehensmodell zur Softwareentwicklung|Vorgehensmodell]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. [[Analyse]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Auswertung (Informatik)|Auswertung]]&lt;br /&gt;
* [[Mock-up]]&lt;br /&gt;
* [[Prozessanalyse]] / [[Vorgehensmodell zur Softwareentwicklung|Prozessmodell]]&lt;br /&gt;
* [[Systemanalyse]]&lt;br /&gt;
* [[Strukturierte Analyse (Methode im Rahmen der Softwareentwicklung)|Strukturierte Analyse]] (SA)&lt;br /&gt;
* [[Objektorientierte Analyse und Design|Objektorientierte Analyse]] (OOA)&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. [[Softwaredesign|Entwurf]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Softwarearchitektur]]&lt;br /&gt;
* [[Strukturiertes Design]] (SD)&lt;br /&gt;
* [[Objektorientierte Analyse und Design|Objektorientiertes Design]] (OOD)&lt;br /&gt;
* [[Fundamental Modeling Concepts]] (FMC)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. [[Programmierung]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Normierte Programmierung]]&lt;br /&gt;
* [[Strukturierte Programmierung]]&lt;br /&gt;
* [[Objektorientierte Programmierung]] (OOP)&lt;br /&gt;
* [[Funktionale Programmierung]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. [[Softwaretest|Validierung und Verifikation]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Modultest]]s (Low-Level-Test)&lt;br /&gt;
* [[Integrationstest]]s (Low-Level-Test)&lt;br /&gt;
* [[Softwaretest|Systemtests]] (High-Level-Test)&lt;br /&gt;
* [[Akzeptanztest (Softwaretechnik)|Akzeptanztests]] (High-Level-Test)&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Unterstützungsprozesse&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6. [[Anforderungsmanagement]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7. [[Projektmanagement]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Risikomanagement#Software-Risiken|Risikomanagement]]&lt;br /&gt;
* [[Projektplanung]]&lt;br /&gt;
* Projektverfolgung und -steuerung&lt;br /&gt;
* Management von Lieferantenvereinbarungen&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8. [[Qualitätsmanagement]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Capability Maturity Model]]&lt;br /&gt;
* [[ISO/IEC 15504|SPICE]] (Software Process Improvement and Capability Determination)&lt;br /&gt;
* [[Incident Management]]&lt;br /&gt;
* [[Problem-Management]]&lt;br /&gt;
* [[Softwaremetrik]] ([[Messung]] von Softwareeigenschaften)&lt;br /&gt;
* [[Statische Code-Analyse|statische Analyse]] (Berechnung von Schwachstellen)&lt;br /&gt;
* [[Software-Ergonomie]]&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9. [[Konfigurationsmanagement]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Versionsverwaltung]]&lt;br /&gt;
* [[Änderungsmanagement]] / [[Veränderungsmanagement]]&lt;br /&gt;
* [[Releasemanagement]]&lt;br /&gt;
* [[Application-Management]] ([[ITIL]])&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;10. [[Softwareeinführung]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;11. [[Dokumentation]]&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* [[Technische Dokumentation]]&lt;br /&gt;
* [[Softwaredokumentation]]&lt;br /&gt;
* [[Systemdokumentation]] (Weiterentwicklung und Fehlerbehebung)&lt;br /&gt;
* [[Betriebshandbuch|Betriebsdokumentation]] (Betreiber/Service)&lt;br /&gt;
* [[Bedienungsanleitung]] (Anwender)&lt;br /&gt;
* [[Geschäftsprozess]]e (Konzeption der Weiterentwicklung)&lt;br /&gt;
* [[Verfahrensdokumentation]] (Beschreibung rechtlich relevanter Softwareprozesse)&lt;br /&gt;
|}&lt;br /&gt;
Die oben genannten Teilschritte der Softwareentwicklung werden nicht zwangsläufig bei jedem Projekt komplett durchlaufen. Vielmehr werden einzelne Prozesse spezifisch für die jeweilige Anforderung gewählt. Dies ist aus Sicht der Kosten- und Verwaltungsreduzierung notwendig.&lt;br /&gt;
&lt;br /&gt;
=== Projektmanagement ===&lt;br /&gt;
Der gesamte Prozess einer Projektentwicklung unterliegt meist einem mehr oder weniger stark ausgeprägten [[Projektmanagement]]. Im Falle der Realisierung durch einen IT-Dienstleister wird meist sowohl auf [[Auftraggeber]]- als auch auf [[Auftragnehmer]]-Seite ein jeweils eigenständiges Projektmanagement betrieben. Um Konflikte zwischen den beiden Projektleitern aufzulösen, wird dem übergeordnet oftmals noch ein aus dem Management von Auftraggeber und Auftragnehmer zusammengesetztes Kontrollgremium ([[Lenkungsausschuss]]) eingesetzt.&lt;br /&gt;
&lt;br /&gt;
Typischerweise wird für größere Projekte auch ein größerer Projektmanagement-Aufwand betrieben, während mittlere oder kleinere Projekte häufig „nebenbei“ abgewickelt werden.&lt;br /&gt;
&lt;br /&gt;
Oft werden externe [[IT-Berater]] zur Ergänzung und Unterstützung der an der Projektabwicklung beteiligten Personen herangezogen.&lt;br /&gt;
&lt;br /&gt;
=== Qualitätsmanagement ===&lt;br /&gt;
Das Qualitätsmanagement innerhalb des Projekts wird als Teilbereich des Projektmanagements verstanden.&amp;lt;ref name=&amp;quot;PMBOK&amp;quot;&amp;gt;&amp;#039;&amp;#039;A Guide to the Project Management Body of Knowledge (PMBOK Guide).&amp;#039;&amp;#039; Deutsche Ausgabe 2000. The Project Management Institute, Newton Square PA, ISBN 978-1-930699-21-2, S. 95–103.&amp;lt;/ref&amp;gt; Es umfasst die Teilgebiete:&lt;br /&gt;
* [[Qualitätsplanung]], das heißt Identifizierung der für das Projekt relevanten Qualitätskriterien und der Methoden, mit denen sie erfüllt werden können.&lt;br /&gt;
* Qualitätssicherung, das heißt regelmäßige und regelgerechte Bewertung der Projektleistung, damit das Projekt die Qualitätsstandards erfüllt.&lt;br /&gt;
* Qualitätslenkung, das heißt Überwachen der Projektergebnisse, um festzustellen, ob die Qualitätsstandards erfüllt werden, und um die Ursachen unzureichender Leistungen zu beseitigen.&lt;br /&gt;
&lt;br /&gt;
Das Qualitätsmanagement im Projekt muss sowohl die Leistung des Projekts als auch die Qualität des Projektprodukts ansprechen. Modernes Qualitätsmanagement und modernes [[Produktmanagement]] ergänzen sich. Beide Disziplinen erkennen die Bedeutung von&lt;br /&gt;
* Kundenzufriedenheit&lt;br /&gt;
* Prävention geht vor Überprüfung&lt;br /&gt;
* Managementverantwortung&lt;br /&gt;
&lt;br /&gt;
an. Qualitätsverbesserungsprogramme, die von der Trägerorganisation durchgeführt werden, beispielsweise nach [[Total-Quality-Management|TQM]] oder nach [[ISO 9000]], können integriert werden, um die Qualität des Projekts und die des Produkts zu verbessern.&amp;lt;ref name=&amp;quot;PMBOK&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Datei:Magischesdreieck.gif|mini|Magisches Dreieck]]&lt;br /&gt;
Wie generell im Projektmanagement ist dem permanenten Zielkonflikt zwischen Qualität, Kosten und Zeit Rechnung zu tragen.&amp;lt;ref&amp;gt;Heinrich Kessler, Georg Winkelhofer: &amp;#039;&amp;#039;Projektmanagement&amp;#039;&amp;#039;. 4. Auflage. Heidelberg 2004, Springer. S. 55–56.&amp;lt;/ref&amp;gt; Speziell in Softwareprojekten steht die Projektleitung häufig unter hohem Termindruck und ist einem besonders hohen Risiko ausgesetzt, die Qualität zu vernachlässigen.&amp;lt;ref&amp;gt;Dierk Wendt: [http://pi.informatik.uni-siegen.de/stt/15_4/15_4_tb_cefe/15_4_se-errors-2.html Klassische Fehler in der Software-Entwicklung.] [[Technische Universität Ilmenau|TU Ilmenau]], 6. Oktober 2005, pi.informatik.uni-siegen.de; abgerufen am 9. Februar 2011.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Risikomanagement ===&lt;br /&gt;
Aufgrund der Komplexität von [[Informationssystem]]en sind „absolute“ Sicherheit oder Qualität nicht ökonomisch realisierbar. Daher werden zur Kategorisierung und Priorisierung häufig Methoden des [[Risikomanagement]]s eingesetzt, um für das jeweilige Projekt ein adäquates Maß an Systemsicherheit und -qualität zu gewährleisten.&lt;br /&gt;
&lt;br /&gt;
Aspekte des Risikomanagements sollten über den gesamten [[Software-Lebenszyklus|System-Lebenszyklus]], also beginnend mit dem Konzept, über die Entwicklung oder Programmierung, Implementierung und Konfiguration und während des Betriebes bis hin zur Stilllegung des Systems berücksichtigt werden.&lt;br /&gt;
&lt;br /&gt;
=== Anforderungserhebung ===&lt;br /&gt;
Im Zusammenhang mit der Projektentwicklung ist hier die [[Systemanalyse]] zur Projektvorbereitung gemeint. Gegenstand ist die inhaltliche Erfassung der Anforderungen durch Befragung künftiger Anwender, sowie die systematische Untersuchung weiterer sachlicher und technischer Anforderungen und Randbedingungen (Schnittstellen zu Drittsystemen, gesetzliche Anforderungen und dergleichen). Ergebnis ist meist ein [[Fachkonzept]], oftmals auch ein [[Lastenheft]].&lt;br /&gt;
&lt;br /&gt;
Ein [[Pflichtenheft]] enthält sämtliche Funktionen und Anforderungen an ein Programm. Darin wird festgelegt, welche Funktionen verlangt sind und was diese genau tun. Anhand dieser Übersicht werden die grundlegenden technischen Entwurfsentscheidungen getroffen, und daraus wird die Systemarchitektur abgeleitet.&lt;br /&gt;
Im Falle einer Beauftragung eines Dienstleistungsunternehmens ist das Pflichtenheft die vertragliche Grundlage für die vereinbarten Leistungen. Deshalb ist die Vollständigkeit und Richtigkeit der darin getroffenen Festlegungen und Anforderungen von besonderer Bedeutung für den Auftraggeber.&lt;br /&gt;
&lt;br /&gt;
=== Systemdesign/technische Konzeption ===&lt;br /&gt;
Ein Systemanalytiker oder -designer, bei kleineren Projekten auch der Programmierer, legt anhand des [[Pflichtenheft]]s die Programmarchitektur fest. Soweit [[Standardsoftware]]produkte zum Einsatz kommen, erfolgt in dieser Phase auch eine [[Spezifikation]] der geplanten Produkteinbindung oder -anpassung.&lt;br /&gt;
Für neu zu entwickelnde Software erfolgt der Entwurf des [[ER-Modell|Datenmodells]] und der einzelnen Funktionen und [[Algorithmus|Algorithmen]] oder der Objekt- und Klassenstruktur. Falls bereits vorhandene Software angepasst (adaptiert) werden muss, so wird in dieser Phase festgelegt, welche Veränderungen und Erweiterungen erforderlich sind.&lt;br /&gt;
Das Ergebnis des Systemdesigns wird auch [[DV-Konzept]] genannt.&lt;br /&gt;
&lt;br /&gt;
=== Implementierung ===&lt;br /&gt;
In der [[Implementierung]]sphase wird die zuvor konzipierte Anwendungslösung technisch realisiert, indem Softwareprodukte konfiguriert, vorhandene Software angepasst oder Programme/Programmteile vollständig neu erstellt werden.&lt;br /&gt;
&lt;br /&gt;
Eine Neuerstellung von Software erfolgt meist durch [[Programmierung]], d.&amp;amp;nbsp;h. die einzelnen Funktionen, Objekte, Klassen usw. werden in einer [[Programmiersprache]] mit Hilfe einer [[Integrierte Entwicklungsumgebung|integrierten Entwicklungsumgebung]] codiert.&lt;br /&gt;
&lt;br /&gt;
=== Softwaretest ===&lt;br /&gt;
Die Software wird im [[Softwaretest]] in zweierlei Hinsicht getestet, zum einen&lt;br /&gt;
* technisch, d.&amp;amp;nbsp;h. auf eine korrekte Umsetzung des DV-Konzepts und auf [[Programmfehler]], und zum anderen&lt;br /&gt;
* inhaltlich, d.&amp;amp;nbsp;h. auf Vollständigkeit bezüglich des Pflichtenhefts und Eignung für den vorgesehenen Zweck.&lt;br /&gt;
&lt;br /&gt;
Während der [[Softwaretest#Systemtest|Systemtest]] eine alleinige Angelegenheit des Auftragnehmers ist, erfolgt der [[Softwaretest#Abnahmetest|Verfahrenstest]] meist in Zusammenarbeit mit den Endanwendern des Auftraggebers.&lt;br /&gt;
&lt;br /&gt;
Es gilt in der Softwareentwicklung als normal, dass Programme fehlerhaft sind. Gelegentlich müssen sogar ganze Teile vollständig neu umgesetzt, also neu programmiert werden. Da in komplexeren Applikationen nicht mit Sicherheit ausgeschlossen werden kann, dass geänderte Programmteile nicht etwa andere Programmfunktionen beeinflussen können (Nebeneffekte), sollte nach der Fehlerbeseitigung ein erneuter vollständiger Test des Gesamtsystems erfolgen. Bis zur endgültigen Freigabe der Software sind meist mehrere Test- und Fehlerbeseitigungszyklen (iteratives Vorgehen) erforderlich.&lt;br /&gt;
&lt;br /&gt;
=== Softwareeinführung ===&lt;br /&gt;
Die fertiggestellte Software nebst eventuell erforderlicher Standardsoftwareprodukte, Hardware u.&amp;amp;nbsp;Ä. wird sodann im Zuge der [[Installation (Computer)|Installation]] auf den Computersystemen des Auftraggebers oder des Betreibers (eines [[Application Service Provider]]s) aufgespielt und betriebsbereit gemacht. Hierbei wird oftmals zwischen parallelen „Produktiv“-, „Test“-, „Schulungs“- und „Entwicklungs“-Installationen unterschieden.&lt;br /&gt;
&lt;br /&gt;
Je nach technischer Plattform erfolgt die Installation auf Zentralrechnern ([[Server]]) oder auf den Arbeitsplatzrechnern oder beides. Bei [[Datenbankanwendung]]en erfolgt ggf. noch ein [[Tuning (Datenbank)|Tuning]] der Datenbank. In einigen Fällen erfolgt noch eine [[Migration (Informationstechnik)|Migration]] aus älteren Anwendungslösungen.&lt;br /&gt;
&lt;br /&gt;
Bei größeren Projekten erfolgt oftmals zunächst nur eine Installation auf einem Testsystem oder bei wenigen Pilot-Anwendern. Die nachfolgende Ausweitung (Installation und Inbetriebnahme) auf weitere Standorte nennt man [[Rollout]].&lt;br /&gt;
&lt;br /&gt;
Wesentlicher Teil des Projekts ist die Einführungsunterstützung, insbesondere in Form von Schulung oder Einweisung der Endanwender, [[Power-User]] und [[Administrator (Rolle)|Administratoren]].&lt;br /&gt;
&lt;br /&gt;
Es gibt sehr unterschiedliche Schulungskonzepte. Eine größere Anzahl von Benutzern wird oftmals über sogenannte „Multiplikatoren“ geschult. Multiplikatoren sind Anwender, die wiederum weitere Anwender schulen. Dieses Verfahren nennt man auch [[Train the Trainers]].&lt;br /&gt;
Zunehmend erfolgt die Anwenderschulung auch über das Internet mit entsprechenden Trainingsanwendungen.&lt;br /&gt;
&lt;br /&gt;
=== Wartung/Pflege ===&lt;br /&gt;
Nach der Inbetriebnahme einer Softwarelösung ist eine kontinuierliche Weiterbetreuung erforderlich und üblich.&lt;br /&gt;
Diese umfasst sowohl eine Unterstützung der Anwender z.&amp;amp;nbsp;B. per [[Hotline]] im laufenden Betrieb als auch Erweiterungen der Software bei Bedarf. Bei externer Softwareerstellung / Projektabwicklung wird beides in einem [[Support (Dienstleistung)|Support]]-Vertrag geregelt.&lt;br /&gt;
&lt;br /&gt;
Dabei wird zwischen einem [[Support (Dienstleistung)#Kompetenzen-Aufteilung|First-level-Support]] und einem [[Support (Dienstleistung)#Kompetenzen-Aufteilung|Second-level-Support]] unterschieden. Der First-level Support (auch [[Helpdesk]]) ist erste Anlaufstelle für alle eingehenden Unterstützungsfragen und nimmt alle Problemmeldungen entgegen. Er leitet aber nur schwerwiegende Probleme an den Second-level-Support –&amp;amp;nbsp;bei Standardsoftware z.&amp;amp;nbsp;B. beim Produkthersteller&amp;amp;nbsp;– weiter.&lt;br /&gt;
&lt;br /&gt;
Die laufende Anpassung der Software an sich ändernde Anforderungen oder Umgebungsbedingungen, z.&amp;amp;nbsp;B. an neue [[Version (Software)|Versionen]] verwendeter [[Standardsoftware]], wird als „[[Softwarepflege]]“ bezeichnet. Größere Veränderungen werden über eigene [[Projekt|Wartungsprojekte]] bearbeitet, kleinere Anpassungen häufig als Wartungsaufgaben mit einfacheren Prozessregeln. Das Management des nachträglichen Einbringens von Änderungen in ein laufendes System nennt man [[Veränderungsmanagement]].&lt;br /&gt;
&lt;br /&gt;
Während bis zum Anfang des Jahrtausends von einer strikten Trennung zwischen Softwareentwicklung und -wartung ausgegangen wurde, verschwindet diese Grenze zunehmend. Allgemein wird noch von [[Software-Evolution]] gesprochen.&amp;lt;ref&amp;gt;Ian Sommerville: &amp;#039;&amp;#039;Software Engineering&amp;#039;&amp;#039;. Version 9. PEARSON, 2012, ISBN 978-3-86894-099-2, S. 276.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methoden zur Softwareentwicklung ==&lt;br /&gt;
Die gängigsten Workflow-Methoden sind:&amp;lt;ref&amp;gt;{{Internetquelle |autor=Julia Gapunenko |url=https://www.adcisolutions.com/knowledge/web-development-methodologies-and-approaches |titel=Web development methodologies and approaches |werk=adcisolutions.com |datum=2023-05-16 |sprache=en |abruf=2023-05-19}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Wasserfallmodell|Wasserfall]]&amp;#039;&amp;#039;&amp;#039; (oder &amp;#039;&amp;#039;&amp;#039;traditionell&amp;#039;&amp;#039;&amp;#039;). Bei der Wasserfall-Methode sieht der Entwicklungsprozess wie ein Strom aus, der die einzelnen Phasen nacheinander durchläuft. Jede Phase muss abgeschlossen sein, bevor die nächste Phase beginnen kann.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Schlanke Produktion|Lean IT]]&amp;#039;&amp;#039;&amp;#039;. Lean ist die Anwendung der Prinzipien von Lean Manufacturing (oder Schlanke Produktion) und Lean Services&amp;lt;ref&amp;gt;{{Internetquelle |autor=Scott Sampson |url=https://opexlearning.com/resources/lean-services/ |titel=Lean Services: Sometimes Less Is More |werk=OpEx Learning |sprache=en |abruf=2023-05-19}}&amp;lt;/ref&amp;gt; bei der Entwicklung und Verwaltung von IT-Produkten. Obwohl Lean eine großartige Philosophie ist, bietet sie keine besondere Methodik an. Daher kann es nur als Ergänzung zum Wasserfallmodell oder zu einigen der agilen Modelle betrachtet werden.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Agile Softwareentwicklung|Agile]]&amp;#039;&amp;#039;&amp;#039;. Agile Methoden sind eine Alternative zu Waterfall oder traditioneller sequenzieller Entwicklung. Es handelt sich um eine zeitorientierte Philosophie, die es ermöglicht, ein Projekt inkrementell zu erstellen und in kleine Stücke zu unterteilen.&lt;br /&gt;
&lt;br /&gt;
Es gibt keine genauen Phasen; die Zeit wird in Sprints eingeteilt. Ein Sprint ist eine Zeitspanne, die für bestimmte Aufgaben vorgesehen ist. Der Wert der Aufgaben sollte von einem Kunden definiert werden, der tief in den Webentwicklungsprozess eines neuen Produkts involviert ist.&lt;br /&gt;
&lt;br /&gt;
Wie Lean ist auch Agile keine Methodik, sondern eher ein Ansatz oder sogar eine Philosophie.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Scrum]]&amp;#039;&amp;#039;&amp;#039;. Scrum ist eine agile Entwicklungsmethodik, die auf der Agile-Philosophie basiert. Dabei entscheidet das Team, wie eine Aufgabe umgesetzt werden soll, die Dokumentation und das Schreiben von Spezifikationen entfallen.&lt;br /&gt;
&lt;br /&gt;
Das Scrum-Team wird von einem Scrum Master und einem Product Owner (PO) betreut. Der Scrum Master ist eine Art Coach, der das Entwicklungsteam unterstützt. Der PO ist ein Vertreter der Kundenseite, der die Vision des Kunden widerspiegelt und die Prioritäten auf der „Wunschliste“ der Aufgaben setzt. Auch hier wird die Zeit in Sprints eingeteilt. Sobald ein Sprint vorbei ist, muss das Team ein marktreifes Produkt präsentieren.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;[[Kanban]]&amp;#039;&amp;#039;&amp;#039;. Die Hauptidee von Kanban ist die Visualisierung von Arbeitsabläufen. Es besteht darin, eine (physische) Tafel (Kanban-Tafel) zu erstellen, auf welcher der Fortschritt visuell markiert werden kann. Eine Kanban-Tafel kann von mehreren Teams oder Einzelpersonen gemeinsam genutzt werden. Es ist Scrum ziemlich ähnlich.&lt;br /&gt;
&lt;br /&gt;
== Literatur ==&lt;br /&gt;
* [[Helmut Balzert]]: &amp;#039;&amp;#039;Lehrbuch der Software-Technik.&amp;#039;&amp;#039; Band 1: &amp;#039;&amp;#039;Software-Entwicklung&amp;#039;&amp;#039;. Spektrum Akademischer Verlag, Heidelberg 1996, 1998, 2001, ISBN 3-8274-0480-0.&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Thomas Grechenig, Mario Bernhart, Roland Breiteneder, Karin Kappel&lt;br /&gt;
   |Titel=Softwaretechnik. Mit Fallbeispielen aus realen Entwicklungsprojekten&lt;br /&gt;
   |Verlag=Pearson Studium&lt;br /&gt;
   |Ort=Hallbergmoos&lt;br /&gt;
   |Datum=2010&lt;br /&gt;
   |ISBN=978-3-86894-007-7}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=Jochen Ludewig, Horst Lichter&lt;br /&gt;
   |Titel=Software Engineering. Grundlagen, Menschen, Prozesse, Techniken&lt;br /&gt;
   |Auflage=3.&lt;br /&gt;
   |Verlag=dpunkt&lt;br /&gt;
   |Ort=Heidelberg&lt;br /&gt;
   |Datum=2013&lt;br /&gt;
   |ISBN=978-3-86490-092-1}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=[[Gustav Pomberger]], [[Wolfgang Pree]]&lt;br /&gt;
   |Titel=Software Engineering. Architektur-Design und Prozessorientierung&lt;br /&gt;
   |Auflage=3.&lt;br /&gt;
   |Verlag=Hanser&lt;br /&gt;
   |Ort=München&lt;br /&gt;
   |Datum=2004&lt;br /&gt;
   |ISBN=3-446-22429-7}}&lt;br /&gt;
* {{Literatur&lt;br /&gt;
   |Autor=[[Ian Sommerville]]&lt;br /&gt;
   |Titel=Software Engineering&lt;br /&gt;
   |Auflage=9.&lt;br /&gt;
   |Verlag=Pearson&lt;br /&gt;
   |Ort=Hallbergmoos&lt;br /&gt;
   |Datum=2012&lt;br /&gt;
   |ISBN=978-3-86894-099-2}}&lt;br /&gt;
* Joachim Goll: &amp;#039;&amp;#039;Entwurfsprinzipien und Konstruktionskonzepte der Softwaretechnik: Strategien für schwach gekoppelte, korrekte und stabile Software.&amp;#039;&amp;#039; 2., aktualis. Auflage. Springer Vieweg, Wiesbaden [2019], ISBN 978-3-658-25974-7.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
{{Wikibooks|Softwaretechnik}}&lt;br /&gt;
{{Wiktionary|Softwareentwicklung}}&lt;br /&gt;
* [http://www.kreissl.info/download.php?Downloadname=Softwaretech_hokr.pdf Einführung in die Softwaretechnologie.] (PDF) kreissl.info&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Normdaten|TYP=s|GND=4116521-4|REMARK=Ansetzungsform GND: „Software Engineering“.}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Softwaretechnik| ]]&lt;br /&gt;
[[Kategorie:Ingenieurwissenschaftliches Fachgebiet]]&lt;br /&gt;
[[Kategorie:Technisches Fachgebiet]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Millbart</name></author>
	</entry>
</feed>