Softwareentwicklung phasen: Lebenszyklus – Teil 1
Für viele Menschen ist ein Leben ohne Smartphone unvorstellbar. Wir benutzen es, um zu kommunizieren, zu navigieren und ein nettes italienisches Restaurant oder eine Tankstelle in der Nähe zu finden. Die Unternehmen haben die Vorteile von Geschäftsanwendungen erkannt. Die Nutzer wollen den gleichen Service und Nutzen wie bei ihren eigenen Anwendungen.
Nutzen Ihre Mitarbeiter Geschäftsanwendungen? Da sind Sie nicht allein. Laut einer Adobe-Studie nutzen 67 % der befragten firmen den USA, Großbritannien, Deutschland, Indien und China mobile Unternehmensanwendungen. In Deutschland sind es sogar 75 %.
Stellen Sie sich einen durchschnittlichen Tag von Rainer Müller vor, der als Qualitätsprüfer für ein großes Versandunternehmen arbeitet.
7:00 Uhr morgens. Sein Handy ist das erste, worauf er nach dem Aufwachen schaut. Beim Frühstück liest Herr Müller die Nachrichten des Tages, die er über eine App zusammenfasst. Er hat fast keine Zeit mehr. Auf dem Weg zur Arbeit checkt er den Verkehr und bekommt Entwarnung. Er bekommt eine kostenlose Mitfahrgelegenheit und kommt um 8:00 Uhr bei der Arbeit an. Im Lager nutzt er ein Tablet, um auf das Ticketing System zuzugreifen. Er prüft die Bauteile und trägt seine Ergebnisse in eine Formularvorlage ein. Auf dem Tablet erscheint eine Fehlermeldung, und Herr Müller ruft aus der Ferne einen Experten an, der die Anlage repariert.
Herr Müller hat bereits bis zu sechs Anwendungen genutzt, die ihm sowohl im privaten als auch im beruflichen Bereich helfen. Die meisten Menschen kennen es so.
Hier sind ein paar ähnliche Artikel: https://tcbe.ch/2021/10/07/v-modell-softwareentwicklung-konzeptionierung-und-qualitatskontrolle/
https://tcbe.ch/vorgehensweise-softwareentwicklung-agiler-softwareentwurf/
Softwareentwicklung phasen: Aktionsplan
Vorgehensmodell Da komplizierte Software schwer zu erstellen und zu warten ist, wenden Softwareingenieure eine Strategie an. Das Vorgehensmodell unterteilt den Entwicklungsprozess in überschaubare zeitliche und inhaltliche Etappen. So wird das Programm aufgebaut. Projektmanagement und Qualitätssicherung unterstützen den eigentlichen Entwicklungsprozess.
Vorgehensmodelle teilen im Entwicklungsprozess bestimmte Handlungen in Stufen ein, die dann einmal oder mehrmals durchlaufen werden (z.B. Spiral-Design Mehrere Durchläufe ermöglichen die iterative (wiederholte) Verbesserung bestimmter Programmkomponenten. Über optimale Vorgehensmodelle herrscht Uneinigkeit. Auf der einen Seite werden Geschäftsprozesse (unabhängig von der programmiertechnischen Umsetzung) analysiert (Geschäftsprozessmodell und Datenmodell), auf der anderen Seite wird die EDV implementiert (Design und Programmierung).
Die Entwicklung von Rational Unified Process Anwendungen
etc. sind umfassende Prozesse, die den Entwicklern spezifische Arbeitsanweisungen geben. Das V-Modell ist in der Tat ein Hybrid: Es ist sowohl ein Konzept (jeder Entwicklungsschritt entspricht einer Testphase) als auch ein umfassendes Modell.
Die agile Softwareentwickler befasst sich mit Techniken, die den Entwickler von administrativen Aufgaben entlasten. Alternative Softwaretechnologien (universelle Anwendungssoftware-Fabrik usw.) beginnen damit, dass vorgefertigte universalisierte Software durch Konfiguration an die entsprechenden Bedürfnisse angepasst wird.
Softwareentwicklung phasen: Typen von Vorgehensmodellen
Vorgehensmodelle gibt es in drei Varianten:
Von der Konzeption bis zum Einsatz im Echtbetrieb regeln Softwareentwicklung Verfahren die Softwareentwicklung. Das Wasserfallmodell ist eines der ältesten und geht von einer strikten Abfolge von Phasen aus. Das Spiralmodell beispielsweise sieht Iterationen vor, bei denen ein und derselbe Arbeitsschritt (z. B. eine Analyse) mehrmals wiederholt wird, wobei die Ergebnisse bei jedem Durchlauf verbessert werden.
Das Software-Lebenszyklus Management umfasst alle Phasen des Lebenszyklus einer Software. Das Vorgehensmodell spezifiziert die betrieblichen Prozessanforderungen (das “WAS”) und erläutert die EDV-implementierten Prozesse (das “WIE”). Diese Art kombiniert deskriptive und normative Elemente. Auf der Grundlage von Normen werden verschiedene Entwicklungsstufen angegeben. Externe Organisationen projekten können die Entwicklungsstufen eines Unternehmens zertifizieren.
Integration des Reifegradmodell (Capability Maturity Model)
Die Softwareentwicklung Philosophie ist eine Denkweise darüber, wie Software erstellt werden sollte. Diese Ideologien werden häufig als Prozessmodelle bezeichnet, da sie Prozessaspekte enthalten.
Softwareentwicklung phasen: Vorteile der CMM
Prozessmodelle verknüpfen die Prozesse des Projektmanagements, der Qualitätssicherung und der Produkterstellung.
Eine zielorientierte Strategie verbessert die Übersichtlichkeit des Projekts, die Zusammenarbeit im Team und die frühzeitige Erkennung von Fehlern. Dies verbessert die Qualität des Gesamtsystems oder ermöglicht eine genaue Rekonstruktion des Entwicklungsprozesses und der Entscheidungen.
Vorteile der Verfolgung eines Prozessmodells:
- Trennung von Geschäftsprozessanalyse (WAS) und EDV-Implementierung (WIE).
- Leitfaden zur Systementwicklung
- projektbezogene Dokumente
- Autonomie der Personen
- Tests zur Fehlerfrüherkennung
Vorgehensmodelle bieten eine Grundlage für das Projektmanagement. Das Vorgehensmodell skizziert den Softwareentwicklungsprozess und die Dokumentation. Die Qualität der gelieferten Software hängt auch von den Projektbeteiligten ab. Sie müssen über umfangreiche Vorkenntnisse verfügen, effektiv zusammenarbeiten und den gesunden Menschenverstand einsetzen. Das Hauptziel ist der Projekterfolg, nicht das Vorgehensmodell.
Softwareentwicklung phasen:Nachteile der CMM
Es gab mehrere Ideen gleichzeitig, von denen sich keine in der Realität durchsetzen konnte.
Prozessmodellierer sind voreingenommen. Prozessmodelle sind ein Geschäft, daher berät der Entwickler in seinem eigenen Interesse. Die Anbieter preisen ihren Ansatz als Allheilmittel an. Dies ist die Grundlage für eine “Verfahren ist OK”-Haltung. Ein Projekt scheitert, wenn die Beteiligten die Objektivität verlieren und einfach vorgegebenen Checklisten folgen. Bei der Projektstruktur des Vorgehensmodells können Unternehmensberatungen für jede Aufgabe spezialisierte Experten bereitstellen. Der Koordinationsaufwand steigt proportional an, wenn die Aufgaben unter den Experten aufgeteilt werden.
Kritiker behaupten, Software sei nichts anderes als “ausführbares Wissen”, und daher sei eine “technische Produktion” unmöglich.
Wissen wird jedoch durch einen kreativen Prozess entdeckt, nicht durch Technik (so wie ein Turm eine Brücke bauen kann). Der gegenteilige Standpunkt ist, dass Wartungsprobleme und strukturelle Unreinheiten genau im “kreativen Prozess” entstehen. Das Argument der Gegner gilt nicht für andere technische Entwicklungsprozesse (z. B. Brücke, Haus, Fabrik).
Teil 1: Phasenmodelle der Software entwicklung
“Eine einmalige Aufgabe, die unter Zeit-, Ressourcen- und Qualitäts Beschränkungen durchgeführt wird”. Aber jedes Projekt hat seinen eigenen Ansatz: Investitionsprojekte werden anders gehandhabt als Produktentwicklungsprojekte, und organisatorische Initiativen werden anders angegangen als Softwareprojekte.
Phase 1: EINFÜHRUNG IN DIE UNTERSUCHUNG (Denken)
Diese Phase (software development life cycle) dient dazu, die Aufgabe zu erklären, die Projektanforderungen festzulegen und Zeit und Aufwand abzuschätzen.
In der Voruntersuchung wird Folgendes festgehalten:
Die zu bewertenden Aufgaben und ihre Ziele werden festgelegt. Der Kunde überprüft und genehmigt die Anforderungen nach Abschluss der Analyse anhand eines vordefinierten Fragebogens.
Die grundsätzlichen Lösungsmöglichkeiten werden vorgestellt und bewertet, eine Zeit- und Aufwandsschätzung wird erstellt.
Phase 2: ROUGH CONCEPT (Denken)
Die Funktionalitäten des it system, der Datenhaushalt, etc. Der Kunde muss eine umfassende Spezifikation vorlegen.
Nach Vorlage und Genehmigung des Pflichtenhefts (das die Zielvorstellung, die Umsetzungsstrategie und die formalisierte Systemspezifikation enthält) sollten Auftraggeber und Auftragnehmer einen Vertrag unterzeichnen.
Vor der Festlegung eines Modellierungskonzepts/einer Beschreibungsmethode (z.B. SA oder OO) werden die Daten und funktionalen Zusammenhänge untersucht. Die systemrelevanten Daten werden organisiert und stereotypisiert, bevor die Systemfunktionen strukturiert und hierarchisiert werden. Dann kann die Leitidee vorgestellt und die Hardware- und Softwareanforderungen definiert werden.
PHASE 3: ENTWURF/SYSTEM/COMP (Denken)
In dieser Phase wird die Architektur des IT-Systems definiert. Es gilt, die Hardware- und Software-Architektur festzulegen, die Komponenten (spezifische Baugruppen innerhalb der Software-Architektur) zu definieren und ihre Verbindung untereinander zu planen. Schließlich werden die Systemarchitektur und der Projektplan festgelegt.
Es ist beabsichtigt, diese Ziele zuerst zu erreichen:
Das gesamte System wird je nach Bedarf unterteilt. Jedem Teilsystem werden Teile der Anforderungsspezifikation zugeordnet und es wird ein softwareentwicklungsprozesse
der Teilsysteme erstellt.
Dieser Entwurf stellt die Funktionen und Datenstrukturen in einer geeigneten Form zur Darstellung in einer Programmiersprache dar. Jetzt kennen wir die Programmiersprache.
Phase 4: SYSTEMENTWICKLUNG (Build)
Konzeption und Design werden in dieser Phase durchgeführt.
Nun beginnt die Programmierung. Diese Phase endet mit codierten und getesteten Modulen (jedem Programmierer wird eine Komponente zugewiesen).
Die begleitende Dokumentation (Modul-, Programm- und Testdokumentation) dient als Nachweis, dass alle Kriterien der vorangegangenen Phasen erfüllt wurden.
Das System wird in einer Computerumgebung realisiert, die das Produktivsystem nachahmt (Entwicklungsumgebung).
Phase 5: SYSTEMTEST/IMPLEMENTIERUNG
In der Realisierungsphase werden zahlreiche Tests durchgeführt. Es werden Modul-, Komponenten- und Integrationstests durchgeführt. Dabei werden die Funktionalität und die Lauffähigkeit der Module einer Komponente validiert und ihre Interoperabilität getestet.
Jetzt, wo das System fertig ist, wird es anhand aller Kriterien (der funktionalen und nicht-funktionalen Anforderungen) getestet. Mit dem Systemtest wird die Akzeptanz der Software durch den Kunden bestätigt.
Diese Genehmigung ist vorläufig, solange sich das Programm noch in der Entwicklung befindet.
Eine endgültige Freigabe ist erst nach erfolgreichem Betrieb möglich. Der Übergang von der Entwicklung zur Produktion kann nahtlos oder schrittweise erfolgen.
Das erste Szenario ist die “Big Bang”-Strategie: Das Programm ist zu einem bestimmten Zeitpunkt voll einsatzfähig und zugänglich. Ein Rollback erfolgt, wenn erhebliche Fehler auftreten, die nicht behoben werden.
Nach der vorläufigen Genehmigung wird in der Regel der Implementierungsplan gewählt.
Phase 6: Systemtest, Nutzung und Wartung (Operate)
Anschließend wird das System analysiert und optimiert. Auch wenn es gut getestet wurde, können neue Probleme auftreten. Neue Versionen sind im Kommen. Es ist wichtig, die Programmdokumentation aktuell zu halten.
Sie umfasst:
- Programmierhandbücher (Quellcode)
- Methoden Dokumente (allgemeine Beschreibung der Prinzipien, auf denen die Software basiert)
- Gebrauchsanweisungen (für die Administratoren)
- Benutzerhandbücher (für die Benutzer)
- Doku-Daten (Datenstruktur, Schnittstellen, etc.)
- test records (Testbeschreibung)
- docs dev (Versionsverwaltung)