Software Entwicklung

Programmentwicklung

Sie arbeiten als Software-Tester (w/m) in agilen Software-Entwicklungsteams. Die Softwareentwicklung kompakt und verständlich: Wie Softwaresysteme entstehen. Informieren Sie sich mit unseren Büchern über Softwareentwicklung.

mw-headline" id="Teilgebiebiete">Teilgebiete[Bearbeiten | < Quelltext bearbeiten]

"Zielvorstellung und systematischer Einsatz von Grundsätzen, Verfahren und Tools zur Arbeitsteilung, ingenieurmäßigen Entwicklung und Einsatz umfangreicher Softwaresysteme. "Das Software-Engineering besteht aus einer großen Anzahl von Teilbereichen, die in ihrer Ganzheit die Software-Entwicklung ausmachen. Eine weitere wichtige Aufgabe ist die versuchsweise Erforschung der Software-Engineering, um ihren Praxisnutzen zu erfassen und zu optimieren.

Für die Darstellung des "state of the art" der Fachrichtung gibt es unterschiedliche Herangehensweisen, darunter den Leitfaden für den Software Engineering Body of Knowledge (SWEBOK) der IEEE-Computergesellschaft. Der IT-Bereich Software-Engineering wird im sprachlichen Gebrauch und als Sprachsynonym "Software-Entwicklung" genannt;[1] im sprachlichen Sinne steht "Software-Entwicklung" jedoch für die Aktivitäten, die innerhalb des Bereichs Software-Engineering durchgeführt werden.

Im weiteren Sinne bedeutet Software-Engineering - neben der Entwicklung - auch den Betrieb von Software mit Hilfe der Informationstechnologie und/oder der zu diesem Zweck oder für die Software-Entwicklung verwendeten technologischen Einrichtungen und System-Software. Wegen des großen Aufwands bei der Entwicklung und Pflege von komplexen Softwareprodukten wird die Entwicklung von Softwareentwicklern auf der Grundlage eines detaillierten (Projekt-)Plans durchgeführt.

Diese Planung (das Prozessmodell) teilt den gesamten Herstellungsprozess in übersichtliche Abschnitte, die zeit- und inhaltsmäßig begrenzt sind. So wird die Software schrittweise vervollständigt. Im Laufe des gesamten Entstehungsprozesses sind die einzelnen Schritte stark ineinandergreifen. Auch in der Praktik werden Vorgehensweisen angewendet, die auf die Mehrschichtigkeit von Systemanalyse, Systemdesign/Konzept und nachfolgender Umsetzung und Testung verzichten, z.B. beim Prototypenbau, der agilen Software-Entwicklung.

Das Software-Engineering umfasst den kompletten Prozessverlauf von der Bedarfsermittlung bis zur Beauftragung einer spezifischen IT-Lösung, in einigen Fällen sogar darüber hinaus. Bei der zu implementierenden Software kann es sich entweder um Einzelsoftware oder um eine kombinierte und konfigurierte Standard-Software handeln. Oft werden die Arbeiten von oder mit einem anderen Dienstleister durchgeführt, oft aber auch als Eigenentwicklungen.

Entsprechend unterschiedlich sind die Verfahren der Projektabwicklung, auch je nach Projekttyp: von einem sehr gut durchdachten Ansatz, vgl. Gewässermodell, über unterschiedliche Hybridformen bis hin zu sehr variablen, offen gestalteten Verfahren wie Agile Organisation. Nicht in jedem Fall sind die oben beschriebenen Arbeitsschritte der Software-Entwicklung in jedem Fall abgeschlossen. In der Regel steht der Gesamtprozess der Projektentwicklung unter mehr oder weniger ausgeprägter Projektleitung.

Bei der Umsetzung durch einen IT-Dienstleister wird in der Regel ein unabhängiges Projektmanagment sowohl durch den Kunden als auch durch den Auftragnehmer durchgeführt. Zur Lösung von Konflikten zwischen den beiden Projektmanagern wird häufig ein Aufsichtsorgan (Lenkungsausschuss), das sich aus der Leitung des Auftraggebers und des Auftragnehmers zusammensetzt, als übergeordnetes Organ eingerichtet. Risikomanagementaspekte sollten während des gesamten Systemlebenszyklus betrachtet werden, d.h. von der Konzeption, Entwicklung oder Programmgestaltung, über die Umsetzung und Projektierung bis hin zum Betrieb und der Außerbetriebnahme des Geräts.

Das Resultat ist in der Regel ein technisches Konzept, oft auch ein Pflichtenheft. Bei Verwendung von Standardsoftwareprodukten findet in dieser Stufe auch eine Festlegung der beabsichtigten Produktintegration oder -anpassung statt. Dabei werden für die neuentwickelte Software das Datenmodell und die individuellen Funktionalitäten und Verfahren oder die Objekt- und Gruppenstruktur entworfen. Wenn bereits bestehende Software angepaßt werden muss, bestimmt diese Zeitspanne, welche Änderungen und Ergänzungen notwendig sind.

Durch die Konfiguration von Softwareprodukten, die Anpassung bestehender Software oder die Erstellung ganz neuer Programme/Programmteile wird in der Umsetzungsphase die bereits geplante Applikationslösung technologisch umgesetzt. In der Regel wird eine neue Software durch Programmieren geschaffen, d.h. die individuellen Funktionalitäten, Objekt, Klasse usw. werden mit Unterstützung einer eingebauten Programmierumgebung in einer Programmsprache kodiert, der Inhalt, d.h. die Vollzähligkeit, hinsichtlich der Spezifikation und Zweckmäßigkeit.

Obwohl der System-Test in der alleinigen Verantwortung des Unternehmers liegt, wird der Prozesstest in der Regel in Kooperation mit den Endbenutzern des Kunden durchgeführt. In der Software-Entwicklung wird es als üblich angesehen, dass ein Programmfehler auftritt. In der Regel sind bis zum finalen Release der Software mehrere Test- und Fehlerbehebungszyklen (iteratives Verfahren) notwendig. Dabei wird die fertige Software zusammen mit den erforderlichen Standardsoftwareprodukten, Hard- und Software etc. während der Inbetriebnahme auf den Rechnersystemen des Kunden oder des Anwenders (eines Applikationsdienstleisters ) installiert und einsatzbereit gemacht.

Häufig wird zwischen Parallelinstallationen "produktiv", "testen", "ausbilden" und "entwickeln" differenziert. Abhängig von der technischen Basis findet die Einrichtung auf zentralen Rechnern (Servern) oder auf den Arbeitsplätzen oder beidem statt. Für Datenbankapplikationen kann die Datenbasis noch optimiert werden. Teilweise gibt es noch eine Umstellung von alten Applikationslösungen. Im Falle größerer Projekte findet oft zunächst nur eine Installierung auf einem Prüfsystem oder bei einigen wenigen Pilotanwendern statt.

Der anschließende Ausbau (Installation und Inbetriebnahme) auf weitere Orte wird als Rollout bezeichnet. Häufig wird eine grössere Zahl von Anwendern über so genannte "Multiplikatoren" ausbilden. In zunehmendem Maße findet die Benutzerschulung auch über das Netz mit den dazugehörigen Schulungsanwendungen statt. Im Anschluss an die Einführung einer Software-Lösung ist eine ständige weitere Betreuung notwendig und gängig. Dazu gehört sowohl die Anwenderunterstützung, z.B. durch eine Hotline im laufendem Spielbetrieb, als auch Softwareerweiterungen bei Bedarfen.

Im Falle der externen Softwareentwicklung bzw. des Projektmanagements sind beide in einem Supportvertrag festgelegt. Als " Softwarewartung " wird die kontinuierliche Adaption der Software an sich verändernde Bedürfnisse oder Umweltbedingungen, z.B. an neue Versionsstände der eingesetzten Standard-Software, bezeichnet. Die Softwarewartung wird als "Softwarewartung" eingestuft. Helmuth Balzert: Schulbuch der Softwaretechnologie. Vol. I. Softwareentwicklung. Spektralakademie Verlagshaus, Heidelberg 1996, 1998, 2001, ISBN 3-8274-0480-0. Thomas Grechenig, Mario Bernhart, Roland Breiteneder, Karin Kappel: Softwaresysteme.

Anhand von Fallstudien aus echten Entwicklungsvorhaben. Birnenstudien, 2010, ISBN 978-3-86894-007-7 Jochen Ludewig, Horst Lichter: Software Engineering. Ausgabe. 13. dpunkt, 2013, ISBN 978-3-86490-092-1 Gustav Pomberger, Wolfgang Pree: Software Engineering. Hanser, 2004, ISBN 3-446-22429-7 Ian Sommerville: Software Engineering. Pearson, 2012, ISBN 978-3-86894-099-2 Normenangaben (Begriff): : 4116521-4 (AKS) | | | | Hinweis: Vorbereitungsform GND: "Software Engineering".

Auch interessant

Mehr zum Thema