www.wikidata.de-de.nina.az
Die Softwaretechnik bzw Softwaretechnologie oder das Software Engineering SE beschaftigt sich mit der Herstellung oder Entwicklung von Software der Organisation und Modellierung der zugehorigen Datenstrukturen und dem Betrieb von Software Systemen Eine Definition von Helmut Balzert beschreibt das Gebiet als Zielorientierte Bereitstellung und systematische Verwendung von Prinzipien Methoden und Werkzeugen fur die arbeitsteilige ingenieurmassige Entwicklung und Anwendung von umfangreichen Softwaresystemen Lit Balzert S 36 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 Ansatze unter anderem den Guide to the Software Engineering Body of Knowledge SWEBOK der IEEE Computer Society Die IT Disziplin Softwaretechnik wird im Sprachgebrauch und als Synonym mit Softwareentwicklung bezeichnet 1 im sprachlich engeren Sinn steht Softwareentwicklung jedoch fur die Tatigkeiten die innerhalb der Disziplin Softwaretechnik ausgefuhrt werden In erweitertem Sinn versteht man unter Softwaretechnik neben dem Entwickeln auch das Betreiben von Software unter Nutzung der Informationstechnik und oder die technischen Gerate und die Systemsoftware die dazu oder zur Softwareentwicklung verwendet werden Inhaltsverzeichnis 1 Teilgebiete 1 1 Projektmanagement 1 2 Qualitatsmanagement 1 3 Risikomanagement 1 4 Anforderungserhebung 1 5 Systemdesign technische Konzeption 1 6 Implementierung 1 7 Softwaretest 1 8 Softwareeinfuhrung 1 9 Wartung Pflege 2 Methoden zur Softwareentwicklung 3 Literatur 4 Weblinks 5 EinzelnachweiseTeilgebiete BearbeitenAufgrund des hohen Aufwandes zur Erstellung und Wartung komplexer Software erfolgt die Entwicklung durch Softwareentwickler anhand eines strukturierten Projekt Planes Dieser Plan das Vorgehensmodell unterteilt den Entwicklungsprozess in uberschaubare zeitlich und inhaltlich begrenzte Phasen Die Software wird somit Schritt fur Schritt fertiggestellt Die Phasen sind wahrend des ganzen Entwicklungsprozesses eng miteinander verzahnt In der Praxis werden auch Verfahren eingesetzt welche die Mehrstufigkeit von Systemanalyse Systemdesign Konzept und anschliessender Implementierung und Testen aufgeben beispielsweise unter Prototyping Agile Softwareentwicklung Die Softwaretechnik beinhaltet den gesamten Prozess von der Identifizierung des Bedarfs bis hin zur Inbetriebnahme einer konkreten IT Losung zum Teil auch daruber hinaus Hauptgegenstand ist die Bereitstellung und Einfuhrung einer Anwendungssoftware teilweise zzgl der benotigten Hardware und Netzwerke Die zu implementierende Software kann entweder eine Individualsoftware oder eine Kombination und Konfiguration von Standardsoftware sein Projekte werden oftmals von oder mit externen Dienstleistungsunternehmen haufig aber auch als Eigenentwicklung geleistet Dementsprechend vielfaltig auch abhangig von der Projektart sind auch die Vorgehensweisen bei der Projektentwicklung Von einer sehr strukturierten Herangehensweise siehe Wasserfallmodell uber verschiedene Mischformen bis hin zu sehr flexiblen offenen Methoden wie der Agilen Softwareentwicklung Entsprechend wird auch zwischen Top Down und Bottom Up Ansatzen unterschieden Im Folgenden werden einige wichtige Aspekte und typische Stufen Phasen der Projektentwicklung beschrieben die in der Praxis mehr oder weniger ausgepragt zum Tragen kommen Die Phasen und ihre Aufgabenstellungen sind in der folgenden Tabelle aufgefuhrt Kernprozesse1 Planung Anforderungserhebung Lastenheft Anforderungsdefinition Pflichtenheft Mit technischen Ansatzen verfeinertes Lastenheft Aufwandsschatzung z B mittels Function Point Verfahren oder COCOMO Vorgehensmodell2 Analyse Auswertung Mock up Prozessanalyse Prozessmodell Systemanalyse Strukturierte Analyse SA Objektorientierte Analyse OOA 3 Entwurf Softwarearchitektur Strukturiertes Design SD Objektorientiertes Design OOD Fundamental Modeling Concepts FMC 4 Programmierung Normierte Programmierung Strukturierte Programmierung Objektorientierte Programmierung OOP Funktionale Programmierung5 Validierung und Verifikation Modultests Low Level Test Integrationstests Low Level Test Systemtests High Level Test Akzeptanztests High Level Test Unterstutzungsprozesse6 Anforderungsmanagement7 Projektmanagement Risikomanagement Projektplanung Projektverfolgung und steuerung Management von Lieferantenvereinbarungen8 Qualitatsmanagement Capability Maturity Model SPICE Software Process Improvement and Capability Determination Incident Management Problem Management Softwaremetrik Messung von Softwareeigenschaften statische Analyse Berechnung von Schwachstellen Software Ergonomie9 Konfigurationsmanagement Versionsverwaltung Anderungsmanagement Veranderungsmanagement Releasemanagement Application Management ITIL 10 Softwareeinfuhrung11 Dokumentation Technische Dokumentation Softwaredokumentation Systemdokumentation Weiterentwicklung und Fehlerbehebung Betriebsdokumentation Betreiber Service Bedienungsanleitung Anwender Geschaftsprozesse Konzeption der Weiterentwicklung Verfahrensdokumentation Beschreibung rechtlich relevanter Softwareprozesse Die oben genannten Teilschritte der Softwareentwicklung werden nicht zwangslaufig bei jedem Projekt komplett durchlaufen Vielmehr werden einzelne Prozesse spezifisch fur die jeweilige Anforderung gewahlt Dies ist aus Sicht der Kosten und Verwaltungsreduzierung notwendig Projektmanagement Bearbeiten Der gesamte Prozess einer Projektentwicklung unterliegt meist einem mehr oder weniger stark ausgepragten Projektmanagement Im Falle der Realisierung durch einen IT Dienstleister wird meist sowohl auf Auftraggeber als auch auf Auftragnehmer Seite ein jeweils eigenstandiges Projektmanagement betrieben Um Konflikte zwischen den beiden Projektleitern aufzulosen wird dem ubergeordnet oftmals noch ein aus dem Management von Auftraggeber und Auftragnehmer zusammengesetztes Kontrollgremium Lenkungsausschuss eingesetzt Typischerweise wird fur grossere Projekte auch ein grosserer Projektmanagement Aufwand betrieben wahrend mittlere oder kleinere Projekte haufig nebenbei abgewickelt werden Oft werden externe IT Berater zur Erganzung und Unterstutzung der an der Projektabwicklung beteiligten Personen herangezogen Qualitatsmanagement Bearbeiten Das Qualitatsmanagement innerhalb des Projekts wird als Teilbereich des Projektmanagements verstanden 2 Es umfasst die Teilgebiete Qualitatsplanung das heisst Identifizierung der fur das Projekt relevanten Qualitatskriterien und der Methoden mit denen sie erfullt werden konnen Qualitatssicherung das heisst regelmassige und regelgerechte Bewertung der Projektleistung damit das Projekt die Qualitatsstandards erfullt Qualitatslenkung das heisst Uberwachen der Projektergebnisse um festzustellen ob die Qualitatsstandards erfullt werden und um die Ursachen unzureichender Leistungen zu beseitigen Das Qualitatsmanagement im Projekt muss sowohl die Leistung des Projekts als auch die Qualitat des Projektprodukts ansprechen Modernes Qualitatsmanagement und modernes Produktmanagement erganzen sich Beide Disziplinen erkennen die Bedeutung von Kundenzufriedenheit Pravention geht vor Uberprufung Managementverantwortungan Qualitatsverbesserungsprogramme die von der Tragerorganisation durchgefuhrt werden beispielsweise nach TQM oder nach ISO 9000 konnen integriert werden um die Qualitat des Projekts und die des Produkts zu verbessern 2 Magisches DreieckWie generell im Projektmanagement ist dem permanenten Zielkonflikt zwischen Qualitat Kosten und Zeit Rechnung zu tragen 3 Speziell in Softwareprojekten steht die Projektleitung haufig unter hohem Termindruck und ist einem besonders hohen Risiko ausgesetzt die Qualitat zu vernachlassigen 4 Risikomanagement Bearbeiten Aufgrund der Komplexitat von Informationssystemen sind absolute Sicherheit oder Qualitat nicht okonomisch realisierbar Daher werden zur Kategorisierung und Priorisierung haufig Methoden des Risikomanagements eingesetzt um fur das jeweilige Projekt ein adaquates Mass an Systemsicherheit und qualitat zu gewahrleisten Aspekte des Risikomanagements sollten uber den gesamten System Lebenszyklus also beginnend mit dem Konzept uber die Entwicklung oder Programmierung Implementierung und Konfiguration und wahrend des Betriebes bis hin zur Stilllegung des Systems berucksichtigt werden Anforderungserhebung Bearbeiten Im Zusammenhang mit der Projektentwicklung ist hier die Systemanalyse zur Projektvorbereitung gemeint Gegenstand ist die inhaltliche Erfassung der Anforderungen durch Befragung kunftiger Anwender sowie die systematische Untersuchung weiterer sachlicher und technischer Anforderungen und Randbedingungen Schnittstellen zu Drittsystemen gesetzliche Anforderungen u dgl Ergebnis ist meist ein Fachkonzept oftmals auch ein Lastenheft Ein Pflichtenheft enthalt samtliche Funktionen und Anforderungen an ein Programm Darin wird festgelegt welche Funktionen verlangt sind und was diese genau tun Anhand dieser Ubersicht werden die grundlegenden technischen Entwurfsentscheidungen getroffen und daraus wird die Systemarchitektur abgeleitet Im Falle einer Beauftragung eines Dienstleistungsunternehmens ist das Pflichtenheft die vertragliche Grundlage fur die vereinbarten Leistungen Deshalb ist die Vollstandigkeit und Richtigkeit der darin getroffenen Festlegungen und Anforderungen von besonderer Bedeutung fur den Auftraggeber Systemdesign technische Konzeption Bearbeiten Ein Systemanalytiker oder designer bei kleineren Projekten auch der Programmierer legt anhand des Pflichtenhefts die Programmarchitektur fest Soweit Standardsoftwareprodukte zum Einsatz kommen erfolgt in dieser Phase auch eine Spezifikation der geplanten Produkteinbindung oder anpassung Fur neu zu entwickelnde Software erfolgt der Entwurf des Datenmodells und der einzelnen Funktionen und Algorithmen oder der Objekt und Klassenstruktur Falls bereits vorhandene Software angepasst adaptiert werden muss so wird in dieser Phase festgelegt welche Veranderungen und Erweiterungen erforderlich sind Das Ergebnis des Systemdesigns wird auch DV Konzept genannt Implementierung Bearbeiten In der Implementierungsphase wird die zuvor konzipierte Anwendungslosung technisch realisiert indem Softwareprodukte konfiguriert vorhandene Software angepasst oder Programme Programmteile vollstandig neu erstellt werden Eine Neuerstellung von Software erfolgt meist durch Programmierung d h die einzelnen Funktionen Objekte Klassen usw werden in einer Programmiersprache mit Hilfe einer integrierten Entwicklungsumgebung codiert Softwaretest Bearbeiten Die Software wird im Softwaretest in zweierlei Hinsicht getestet zum einen technisch d h auf eine korrekte Umsetzung des DV Konzepts und auf Programmfehler und zum anderen inhaltlich d h auf Vollstandigkeit bezuglich des Pflichtenhefts und Eignung fur den vorgesehenen Zweck Wahrend der Systemtest eine alleinige Angelegenheit des Auftragnehmers ist erfolgt der Verfahrenstest meist in Zusammenarbeit mit den Endanwendern des Auftraggebers Es gilt in der Softwareentwicklung als normal dass Programme fehlerhaft sind Gelegentlich mussen sogar ganze Teile vollstandig neu umgesetzt also neu programmiert werden Da in komplexeren Applikationen nicht mit Sicherheit ausgeschlossen werden kann dass geanderte Programmteile nicht etwa andere Programmfunktionen beeinflussen konnen Nebeneffekte sollte nach der Fehlerbeseitigung ein erneuter vollstandiger Test des Gesamtsystems erfolgen Bis zur endgultigen Freigabe der Software sind meist mehrere Test und Fehlerbeseitigungszyklen iteratives Vorgehen erforderlich Softwareeinfuhrung Bearbeiten Die fertiggestellte Software nebst eventuell erforderlicher Standardsoftwareprodukte Hardware u A wird sodann im Zuge der Installation auf den Computersystemen des Auftraggebers oder des Betreibers eines Application Service Providers aufgespielt und betriebsbereit gemacht Hierbei wird oftmals zwischen parallelen Produktiv Test Schulungs und Entwicklungs Installationen unterschieden Je nach technischer Plattform erfolgt die Installation auf Zentralrechnern Server oder auf den Arbeitsplatzrechnern oder beides Bei Datenbankanwendungen erfolgt ggf noch ein Tuning der Datenbank In einigen Fallen erfolgt noch eine Migration aus alteren Anwendungslosungen Bei grosseren Projekten erfolgt oftmals zunachst nur eine Installation auf einem Testsystem oder bei wenigen Pilot Anwendern Die nachfolgende Ausweitung Installation und Inbetriebnahme auf weitere Standorte nennt man Rollout Wesentlicher Teil des Projekts ist die Einfuhrungsunterstutzung insbesondere in Form von Schulung oder Einweisung der Endanwender Power User und Administratoren Es gibt sehr unterschiedliche Schulungskonzepte Eine grossere Anzahl von Benutzern wird oftmals uber sogenannte Multiplikatoren geschult Multiplikatoren sind Anwender die wiederum weitere Anwender schulen Dieses Verfahren nennt man auch Train the Trainers Zunehmend erfolgt die Anwenderschulung auch uber das Internet mit entsprechenden Trainingsanwendungen Wartung Pflege Bearbeiten Nach der Inbetriebnahme einer Softwarelosung ist eine kontinuierliche Weiterbetreuung erforderlich und ublich Diese umfasst sowohl eine Unterstutzung der Anwender z B per Hotline im laufenden Betrieb als auch Erweiterungen der Software bei Bedarf Bei externer Softwareerstellung Projektabwicklung wird beides in einem Support Vertrag geregelt Dabei wird zwischen einem First level Support und einem Second level Support unterschieden Der First level Support auch Helpdesk ist erste Anlaufstelle fur alle eingehenden Unterstutzungsfragen und nimmt alle Problemmeldungen entgegen Er leitet aber nur schwerwiegende Probleme an den Second level Support bei Standardsoftware z B beim Produkthersteller weiter Die laufende Anpassung der Software an sich andernde Anforderungen oder Umgebungsbedingungen z B an neue Versionen verwendeter Standardsoftware wird als Softwarepflege bezeichnet Grossere Veranderungen werden uber eigene Wartungsprojekte bearbeitet kleinere Anpassungen haufig als Wartungsaufgaben mit einfacheren Prozessregeln Das Management des nachtraglichen Einbringens von Anderungen in ein laufendes System nennt man Veranderungsmanagement Wahrend 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 5 Methoden zur Softwareentwicklung BearbeitenDie gangigsten Workflow Methoden sind 6 Wasserfall oder traditionell Bei der Wasserfall Methode sieht der Entwicklungsprozess wie ein Strom aus der die einzelnen Phasen nacheinander durchlauft Jede Phase muss abgeschlossen sein bevor die nachste Phase beginnen kann Lean IT Lean ist die Anwendung der Prinzipien von Lean Manufacturing oder Schlanke Produktion und Lean Services 7 bei der Entwicklung und Verwaltung von IT Produkten Obwohl Lean eine grossartige Philosophie ist bietet sie keine besondere Methodik an Daher kann es nur als Erganzung zum Wasserfallmodell oder zu einigen der agilen Modelle betrachtet werden Agile Agile Methoden sind eine Alternative zu Waterfall oder traditioneller sequenzieller Entwicklung Es handelt sich um eine zeitorientierte Philosophie die es ermoglicht ein Projekt inkrementell zu erstellen und in kleine Stucke zu unterteilen Es gibt keine genauen Phasen die Zeit wird in Sprints eingeteilt Ein Sprint ist eine Zeitspanne die fur bestimmte Aufgaben vorgesehen ist Der Wert der Aufgaben sollte von einem Kunden definiert werden der tief in den Webentwicklungsprozess eines neuen Produkts involviert ist Wie Lean ist auch Agile keine Methodik sondern eher ein Ansatz oder sogar eine Philosophie Scrum 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 Das Scrum Team wird von einem Scrum Master und einem Product Owner PO betreut Der Scrum Master ist eine Art Coach der das Entwicklungsteam unterstutzt Der PO ist ein Vertreter der Kundenseite der die Vision des Kunden widerspiegelt und die Prioritaten 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 prasentieren Kanban Die Hauptidee von Kanban ist die Visualisierung von Arbeitsablaufen Es besteht darin eine physische Tafel Kanban Tafel zu erstellen auf welcher der Fortschritt visuell markieren werden kann Eine Kanban Tafel kann von mehreren Teams oder Einzelpersonen gemeinsam genutzt werden Es ist Scrum ziemlich ahnlich Literatur BearbeitenHelmut Balzert Lehrbuch der Software Technik Bd 1 Software Entwicklung Spektrum Akademischer Verlag Heidelberg 1996 1998 2001 ISBN 3 8274 0480 0 Thomas Grechenig Mario Bernhart Roland Breiteneder Karin Kappel Softwaretechnik Mit Fallbeispielen aus realen Entwicklungsprojekten Pearson Studium Hallbergmoos 2010 ISBN 978 3 86894 007 7 Jochen Ludewig Horst Lichter Software Engineering Grundlagen Menschen Prozesse Techniken 3 Auflage dpunkt Heidelberg 2013 ISBN 978 3 86490 092 1 Gustav Pomberger Wolfgang Pree Software Engineering Architektur Design und Prozessorientierung 3 Auflage Hanser Munchen 2004 ISBN 3 446 22429 7 Ian Sommerville Software Engineering 9 Auflage Pearson Hallbergmoos 2012 ISBN 978 3 86894 099 2 Joachim Goll Entwurfsprinzipien und Konstruktionskonzepte der Softwaretechnik Strategien fur schwach gekoppelte korrekte und stabile Software 2 aktualis Aufl Springer Vieweg Wiesbaden 2019 ISBN 978 3 658 25974 7 Weblinks Bearbeiten Wikibooks Softwaretechnik Lern und Lehrmaterialien Einfuhrung in die SoftwaretechnologieEinzelnachweise Bearbeiten Lerne programmieren Programmierung vs Softwareentwicklung a b The Project Management Institute Hrsg A Guide to the Project Management Body of Knowledge PMBOK Guide Deutsche Ausgabe 2000 Newton Square Penn Project Management Institute ISBN 978 1 930699 21 2 S 95 103 Kessler Heinrich Winkelhofer Georg Projektmanagement 4 Auflage Heidelberg 2004 Springer S 55 56 Wendt Dierk Sprecher der Arbeitsgruppe Klassische Fehler in der Software Entwicklung TU Ilmenau Version vom 6 Oktober 2005 abgerufen am 9 Februar 2011 Ian Sommerville Software Engineering PEARSON Version 9 2012 S 276 ISBN 978 3 86894 099 2 Julia Gapunenko Web development methodologies and approaches 16 Mai 2023 abgerufen am 19 Mai 2023 englisch Scott Sampson Lean Services Sometimes Less Is More In OpEx Learning Abgerufen am 19 Mai 2023 englisch Normdaten Sachbegriff GND 4116521 4 lobid OGND AKS Anmerkung Ansetzungsform GND Software Engineering Abgerufen von https de wikipedia org w index php title Softwaretechnik amp oldid 233874458