====== Softwareentwicklung ====== Die **Softwareentwicklung** (oft auch: "Softwaretechnik" oder "Software-Engineering"; //englisch: software development//) "beschäftigt sich mit der [...] **Entwicklung** von Software, der [...] **Modellierung** der zugehörigen **Datenstrukturen** und dem **Betrieb von Software-Systemen**" ([[https://de.wikipedia.org/wiki/Softwaretechnik|Wikipedia]]). Oft werden diese Aufgaben in Form von Projekten organisiert. \\ \\ Ein **Projekt** ist ein **einmaliges**, **zeitlich befristetes** Vorhaben mit einem spezifischen **Ziel**. Bei Verwirklichung des Vorhabens sind **zeitliche**, **finanzielle**, **personelle** und andere **Begrenzungen** zu berücksichtigen. Eine **projektorientierte Organisationsform** und die **Komplexität der Zusammenhänge** sind weitere Merkmale eines Projekts. \\ \\ Ein **Software-Projekt** hat die **Erstellung oder Veränderung eines Software-Produkts** als Ziel. Es wird entworfen, entwickelt, getestet und schließlich in Betrieb genommen. Oft gibt es einen **Auftragnehmer**, der das Software-Projekt für einen **Auftraggeber** umsetzt. Sehr viele Software-Projekte haben eine hohe fachliche Komplexität, einen großen Umfang und - bedingt durch die große Zahl mitwirkender Personen - eine hohe organisatorische Komplexität. Dies führt oft zu schwerwiegenden Mängeln. Sie reichen von unklaren Angaben darüber, welche Funktionalitäten enthalten sein sollen über Zeit- und Geldprobleme bei der Entwicklung bis hin zu gravierenden Mängeln (auch Sicherheitsmängeln) im fertigen Produkt. In diesem Kapitel wird beleuchtet, wie diese Mängel zustandekommen und wie man ihrem Entstehen entgegenwirken kann. \\ \\ //(Bemerkung: Zweck der obigen Ausführungen ist, dass Sie sich ein detailliertes Bild von Softwareentwicklung machen, nicht jedoch, dass Sie das alles auswendig lernen!)//