AI-1 Systems Project - Exam
Aufgabe 1)
Während des vergangenen Jahrhunderts hat sich das Feld der künstlichen Intelligenz (KI) von theoretischen Konzepten zu praktisch angewandten Technologien entwickelt. Historische Meilensteine wie die Einführung des Turing-Tests durch Alan Turing im Jahr 1950, die Geburt der KI als Forschungsgebiet auf der Dartmouth-Konferenz 1956, und der Durchbruch im Deep Learning mit AlexNet im Jahr 2012 haben die Entwicklung der KI geprägt. In diesem Kontext werde die Entwicklung und Anwendung der KI analysiert.
a)
- (a) Beschreibe die Bedeutung der Dartmouth-Konferenz im Jahr 1956 für die Entwicklung der künstlichen Intelligenz. Welche Erwartungen hatten die Forscher damals und wie wurden diese im Laufe der Zeit angepasst?
- (b) Analysiere die Auswirkungen des Durchbruchs im Deep Learning mit AlexNet im Jahr 2012 auf die Entwicklung der KI-Technologien. Welche technologischen Fortschritte und gesellschaftlichen Veränderungen wurden durch diesen Durchbruch ermöglicht? Nutze dabei mathematische Modelle, um den Unterschied in der Leistungsfähigkeit von Algorithmen vor und nach der Einführung von AlexNet zu verdeutlichen.
Lösung:
Lasst uns die Aufgaben Schritt für Schritt lösen.
- (a) Bedeutung der Dartmouth-Konferenz im Jahr 1956 für die Entwicklung der künstlichen Intelligenz:
- Die Dartmouth-Konferenz im Jahr 1956 gilt als die Geburtsstunde der künstlichen Intelligenz, da sie das erste organisierte Treffen von Forschern war, die daran interessiert waren, Geräte zu entwickeln, die menschenähnliche Intelligenz zeigen könnten. Die Forscher erhofften sich, dass Maschinen in naher Zukunft lernen, selbstständig denken und Probleme lösen könnten wie Menschen.
- Die Erwartungen der Forscher waren zunächst sehr hoch. Man ging davon aus, dass Maschinen innerhalb weniger Jahre menschenähnliche Intelligenz erreichen würden. Diese Erwartungen mussten jedoch im Laufe der Zeit angepasst werden, da sich herausstellte, dass das Erreichen von menschlicher Intelligenz in Maschinen weitaus komplexer war als ursprünglich gedacht. Viele frühe Versuche scheiterten, was zu einer Phase der Ernüchterung und Skepsis in der KI-Forschung führte.
- Dennoch legte die Dartmouth-Konferenz den Grundstein für alle nachfolgenden Entwicklungen in der KI, indem sie Forscher aus verschiedenen Disziplinen zusammenbrachte und den Grundgedanken der Maschine als denkenfähiges Wesen etablierte.
- (b) Auswirkungen des Durchbruchs im Deep Learning mit AlexNet im Jahr 2012:
- Der Durchbruch im Deep Learning durch AlexNet im Jahr 2012 markierte einen der bedeutendsten Fortschritte in der Geschichte der künstlichen Intelligenz. AlexNet war in der Lage, Bilder mit einer zuvor unerreichten Genauigkeit zu klassifizieren, was einen enormen Sprung in der Leistungsfähigkeit von Algorithmen darstellte.
- Die technologischen Fortschritte durch AlexNet inkludierten die Nutzung tiefer neuronaler Netze und GPUs (Grafikkarten-Prozessoren) zur Beschleunigung des Trainingsprozesses. Dies führte zu einer drastischen Verbesserung der Fähigkeit von KI-Systemen, Muster in großen Datensätzen zu erkennen und zu verarbeiten.
- Mathematisch lässt sich die Leistungssteigerung durch AlexNet verdeutlichen: Vor der Einführung von AlexNet basierten viele Algorithmen auf flachen Modellen wie SVMs und Boosting-Methoden. Diese Modelle hatten in Bildern eine Erkennungsrate von ca. 70-80 %. AlexNet hingegen, mit seinen tiefen neuronalen Netzwerken, senkte den Fehler in der Erkennung auf etwa 15 %, eine bemerkenswerte Verbesserung.
- Gesellschaftlich wurden durch den Durchbruch mit AlexNet viele neue Anwendungen ermöglicht: Die automatische Erkennung und Klassifizierung von Bildern und Videos fand ihren Weg in diverse Bereiche wie Medizin (z.B. Diagnose von Krankheiten durch Bildanalyse), Sicherheit (z.B. Gesichtserkennung), und sogar Freizeitaktivitäten (z.B. automatische Bildsortierung in sozialen Medien).
- Der Erfolg von AlexNet bewies das Potenzial tiefer neuronaler Netzwerke und löste eine Welle von Investitionen und Forschung im Bereich des Deep Learnings aus, was weiterhin zu schnellen Fortschritten und neuen Anwendungen in der KI führte.
- Zusammengefasst kann gesagt werden, dass AlexNet nicht nur die Leistungsfähigkeit von Algorithmen signifikant verbesserte, sondern auch weitreichende technologische und gesellschaftliche Veränderungen ermöglichte, die die KI in unserem Alltag fest etablierten.
Aufgabe 2)
Du arbeitest an einem Projekt, das ein neuronales Netz zur Bilderkennung verwendet. Dabei sollst Du ein tiefes neuronales Netz (Deep Neural Network, DNN) zur Klassifizierung von handschriftlichen Ziffern implementieren. Deine Aufgabe besteht darin, das gesamte Projekt zu gestalten, von der Datenvorverarbeitung über das Training bis hin zur Auswertung des Modells.
a)
Beschreibe den Unterschied zwischen überwachten, unüberwachten und bestärkendem Lernen. Erkläre, warum für die Aufgabe der Ziffernerkennung das überwachtes Lernen verwendet wird.
Lösung:
- Überwachtes Lernen: Beim überwachten Lernen wird das Modell mit einem Trainingsdatensatz trainiert, der sowohl Eingabedaten als auch die entsprechenden Zielwerte (Labels) enthält. Das Ziel ist es, eine Funktion zu erlernen, die den Eingabedaten die richtigen Ausgabewerte zuordnet. Beispiele dafür sind Klassifikations- und Regressionsaufgaben. Für die Ziffernerkennung ist das überwachtes Lernen geeignet, da wir von jedem Bild die zugehörige Ziffer kennen und das Modell darauf trainieren können, diese Zuordnung zu erlernen.
- Unüberwachtes Lernen: Beim unüberwachten Lernen arbeitet das Modell mit Trainingsdaten, die keine Labels enthalten. Das Ziel ist es, Muster oder Strukturen in den Daten zu erkennen, wie z.B. Gruppierungen oder Anomalien. Typische Methoden sind Clustering und Dimensionsreduktion. Unüberwachtes Lernen wäre für die Ziffernerkennung nicht geeignet, da wir spezifische Zuordnungen benötigen, um die Ziffern korrekt zu klassifizieren.
- Bestärkendes Lernen: Beim bestärkenden Lernen (Reinforcement Learning) lernt ein Agent, in einer Umgebung Entscheidungen zu treffen, um eine Belohnung zu maximieren. Der Agent erhält Rückmeldungen in Form von Belohnungen oder Strafen und verbessert seine Strategie basierend auf diesen Rückmeldungen. Diese Methode wird häufig in Robotik, Spieltheorie und autonomem Fahren verwendet. Für die Ziffernerkennung ist bestärkendes Lernen weniger geeignet, da es keine Sequenzen von Entscheidungen erfordert, sondern eine direkte Zuordnung zwischen Eingabe und Ausgabe.
Warum überwachtet Lernen für die Ziffernerkennung verwendet wird: Die Aufgabe der Ziffernerkennung erfordert, dass das neuronale Netz lernt, wie man ein Bild einer handschriftlichen Ziffer einer bestimmten Klasse (0-9) zuordnet. Da wir für jedes Bild in unserem Datensatz das zugehörige Label kennen, können wir das Modell durch überwachte Lernmethoden trainieren, damit es lernt, die Eingabebilder korrekt zu klassifizieren. Überwachtes Lernen ermöglicht es uns, die Genauigkeit des Modells zu beurteilen und es kontinuierlich zu verbessern, indem wir es mit bekannten Beispielen füttern und aus seinen Fehlern lernen.
b)
Implementiere eine Funktion in Python, die die Daten vorverarbeitet. Dazu gehört das Normalisieren der Pixelwerte und das Aufteilen der Daten in Trainings- und Testdatensätze. Verwende dabei die Bibliothek `numpy`.
Lösung:
Hier ist ein Beispiel für eine Python-Funktion, die die Daten vorverarbeitet. Diese Funktion normalisiert die Pixelwerte und teilt die Daten in Trainings- und Testdatensätze auf. Wir verwenden dabei die Bibliothek numpy
:
import numpy as np from sklearn.model_selection import train_test_split def preprocess_data(data, labels, test_size=0.2, random_state=42): # Normalisiere die Pixelwerte auf den Bereich [0, 1] data = data.astype('float32') / 255.0 # Teile die Daten in Trainings- und Testdatensätze auf X_train, X_test, y_train, y_test = train_test_split( data, labels, test_size=test_size, random_state=random_state ) return X_train, X_test, y_train, y_test # Beispiel für die Verwendung: # Angenommen, 'images' ist ein numpy-Array mit den Bilddaten und 'labels' ist ein numpy-Array mit den zugehörigen Labels images = np.random.randint(0, 256, (1000, 28, 28)) labels = np.random.randint(0, 10, 1000) X_train, X_test, y_train, y_test = preprocess_data(images, labels) print(f'Trainingsdaten: {X_train.shape}, Testdaten: {X_test.shape}')
- Die Funktion
preprocess_data
nimmt die Rohbilddaten (data
) und die entsprechenden Labels (labels
) als Eingabe. - Die Pixelwerte der Bilder werden auf den Bereich [0, 1] normalisiert, indem jeder Wert durch 255 geteilt wird.
- Die Daten werden dann in Trainings- (
X_train
, y_train
) und Testdatensätze (X_test
, y_test
) aufgeteilt. Der Parameter test_size
gibt den Prozentsatz der Daten an, die als Testdaten verwendet werden, und random_state
stellt sicher, dass die Aufteilung reproduzierbar ist.
c)
Erkläre die Bedeutung von Aktivierungsfunktionen in einem neuronalen Netz. Vergleiche die Aktivierungsfunktionen Sigmoid, ReLU und Tanh hinsichtlich ihrer Eigenschaften und Vor- bzw. Nachteile. Welche Aktivierungsfunktion würdest du für die versteckten Schichten (hidden layers) deines Netzes wählen und warum?
Lösung:
Die Bedeutung von Aktivierungsfunktionen in einem neuronalen Netz:
Aktivierungsfunktionen sind essenziell für neuronale Netze, da sie über die Entscheidung eines Neurons bestimmen, ob es “aktiviert” wird oder nicht. Dies ermöglicht das Netz nichtlineare Beziehungen zwischen den Eingabewerten und den Ausgabewerten zu lernen. Ohne diese Funktionen wäre das neuronale Netz nur eine lineare Abbildung, und könnte daher keine komplexen Muster oder Strukturen in den Daten erlernen.
Vergleich der Aktivierungsfunktionen:
- Sigmoid:
- Eigenschaften: Gibt Werte im Bereich (0, 1) zurück. Die Funktion ist kontinuierlich und differenzierbar.
- Vorteile: Besonders nützlich für Wahrscheinlichkeitsabschätzungen, da die Werte zwischen 0 und 1 liegen.
- Nachteile: Hat Probleme mit dem Vanishing Gradient (verschwindenden Gradienten), da in gesättigten Regionen die Gradienten sehr klein werden. Dies kann das Training erheblich verlangsamen.
- ReLU (Rectified Linear Unit):
- Eigenschaften: Gibt den Eingangswert zurück, wenn dieser positiv ist; ansonsten gibt sie 0 zurück.
- Vorteile: Schafft es, das Vanishing Gradient Problem größtenteils zu vermeiden, und vereinfacht die Berechnung, da es in stochastischen Gradientenabstiegsalgorithmen effizient ist.
- Nachteile: Kann zu “toten Neuronen” führen, wenn Neuronen sich in einer Weise aktualisieren, dass sie für immer negativ bleiben und daher keine Aktivierung ausführen.
- Tanh (Hyperbolic Tangent):
- Eigenschaften: Gibt Werte im Bereich (-1, 1) zurück. Wie Sigmoid ist die Funktion kontinuierlich und differenzierbar.
- Vorteile: Normalisiert Daten auf einen Mittelwert von 0, was beim Training helfen kann.
- Nachteile: Auch Problem mit Vanishing Gradients, ähnlich der Sigmoid-Funktion, aber nicht ganz so ausgeprägt.
Empfohlene Aktivierungsfunktion für versteckte Schichten:
Für die versteckten Schichten würde ich die ReLU (Rectified Linear Unit) Aktivierungsfunktion empfehlen. Die Hauptgründe sind:
- Sie ist einfach zu implementieren und effizient in der Berechnung.
- Sie hilft dabei, das Problem des Vanishing Gradient zu reduzieren, was oft zu schnelleren und besseren Konvergenzergebnissen führt.
-
Trotz ihrer wenigen Nachteile, wie das Potenzial für tote Neuronen, sind ihre Vorteile oft überwältigend, besonders im Vergleich zu Sigmoid und Tanh für tiefe neuronale Netze.
Aufgabe 3)
Im Kontext der Entwicklung und des Einsatzes von Künstlicher Intelligenz (KI) sind verschiedene ethische und gesellschaftliche Überlegungen zu beachten. Hier geht es insbesondere um die Themen Datenschutz und Privatsphäre, die Verantwortung und Haftung bei KI-Fehlentscheidungen, Diskriminierungsrisiken durch voreingenommene Daten (Bias), Transparenz und Nachvollziehbarkeit von KI-Entscheidungen, die Auswirkungen auf den Arbeitsmarkt sowie die soziale Ungleichheit im Zugang zu KI-Technologien.
a)
Analysiere die möglichen ethischen Probleme im Zusammenhang mit Datenethik und Bias. Diskutiere detailliert, wie voreingenommene Daten zu Diskriminierungsrisiken führen können und welche ethischen Grundsätze anzuwenden sind, um diese Risiken zu minimieren. Nenne dabei konkrete Beispiele, die dies verdeutlichen.
Lösung:
Bei der Analyse der ethischen Probleme im Zusammenhang mit Datenethik und Bias wird deutlich, dass voreingenommene Daten erhebliche Diskriminierungsrisiken bergen können. Diese Risiken entstehen oftmals durch die Art und Weise, wie Daten gesammelt, verarbeitet und genutzt werden. Hier sind einige detaillierte Überlegungen zu diesem Thema:
- Voreingenommene Datensätze: Wenn die Datensätze, die zur Schulung von KI-Modellen verwendet werden, Verzerrungen (Bias) enthalten, verstärken diese Modelle die Vorurteile. Ein typisches Beispiel sind historische Daten eines Unternehmens, die überwiegend männliche Bewerber zeigen. Ein auf diesen Daten basierender Algorithmus könnte Frauen diskriminieren, indem er ihnen geringere Einstellungs- oder Beförderungschancen zuspricht.
- Diskriminierung durch fehlerhafte Algorithmen: Algorithmen, die auf voreingenommenen Daten trainiert sind, können systematisch bestimmte Gruppen benachteiligen. Ein Beispiel dafür ist die Gesichtserkennungstechnologie, die bei dunkleren Hauttönen oft weniger genau ist. Dies führt zu höheren Fehlerraten bei Menschen mit dunkler Hautfarbe und kann zu ungerechtfertigten Verhaftungen oder anderen negativen Konsequenzen führen.
- Ethik und Prinzipien: Um diese Diskriminierungsrisiken zu minimieren, sollten folgende ethische Grundsätze beachtet werden:
- Transparenz: KI-Systeme sollten transparent gestaltet sein, sodass nachvollziehbar ist, wie Entscheidungen getroffen werden. Dies erhöht das Vertrauen und ermöglicht eine bessere Überprüfung auf Verzerrungen.
- Verantwortlichkeit: Unternehmen und Entwickler sollten für die Entscheidungen ihrer KI-Systeme verantwortlich gemacht werden können. Dies schließt ein, dass regelmäßig Audits durchgeführt werden und es klar definierte Verantwortlichkeiten gibt.
- Inklusion und Gerechtigkeit: Die Datensätze sollten divers und repräsentativ sein, um Verzerrungen zu vermeiden. Es ist wichtig, unterschiedliche Bevölkerungsgruppen in den Entwicklungsprozess einzubeziehen und sicherzustellen, dass deren Bedürfnisse berücksichtigt werden.
- Anpassung und Überwachung: KI-Systeme sollten kontinuierlich überwacht und angepasst werden, um sicherzustellen, dass sie keine unbeabsichtigten Diskriminierungen verursachen. Dies kann durch laufende Tests und Feedback-Schleifen erreicht werden.
- Konkrete Beispiele:
- Ein bekanntes Beispiel für Bias in KI-Systemen ist Amazon's Rekrutierungstool, das Männer gegenüber Frauen bevorzugte. Dies geschah, weil das Training auf historischen Daten basierte, die überwiegend männliche Bewerber enthielten.
- Ein anderes Beispiel ist die Software COMPAS, die zur Bewertung der Rückfallwahrscheinlichkeit von Straftätern eingesetzt wird. Studien zeigten, dass diese Software Afroamerikaner systematisch benachteiligte, indem sie ihnen eine höhere Rückfallwahrscheinlichkeit zuschrieb als weißen Straftätern.
Durch die Beachtung und Anwendung dieser ethischen Grundsätze können die Risiken von Diskriminierungen durch voreingenommene Daten erheblich reduziert werden. Eine bewusste und verantwortungsbewusste Gestaltung und Nutzung von KI-Technologien ist unerlässlich, um eine gerechte und inklusive Gesellschaft zu fördern.
b)
Bewerte die sozialen und ökonomischen Auswirkungen der Künstlichen Intelligenz auf den Arbeitsmarkt. Erstelle eine sinnvolle Prognose, wie die Verbreitung von KI die Beschäftigung in verschiedenen Industrien verändern könnte. Nutze ein mathematisches Modell, um die möglichen Auswirkungen auf die Beschäftigungsrate zu quantifizieren. Formuliere dabei detailliert die genutzten Annahmen und Parameter.
Lösung:
Die sozialen und ökonomischen Auswirkungen der Künstlichen Intelligenz (KI) auf den Arbeitsmarkt sind ein hochrelevantes Thema. Die Verbreitung von KI kann die Beschäftigung in verschiedenen Industrien signifikant verändern. Hier bewerten wir diese Auswirkungen und prognostizieren, wie sich die KI-Verbreitung auf die Beschäftigung auswirken könnte, indem wir ein mathematisches Modell nutzen. Dabei formulieren wir detailliert die Annahmen und Parameter.
Annahmen und Parameter:
- Automatisierungspotenzial: Wir nehmen an, dass ein bestimmter Prozentsatz der Arbeitsplätze in jeder Branche durch KI-Technologien automatisiert werden kann. Zum Beispiel könnten bis zu 50% der Arbeitsplätze in der Fertigungsindustrie automatisiert werden, während im Gesundheitswesen nur 20% der Arbeitsplätze automatisiert werden können.
- Neue Arbeitsplätze durch KI: Gleichzeitig nehmen wir an, dass die Einführung von KI neue Arbeitsplätze in Bereichen wie Wartung, Überwachung und Entwicklung der KI-Systeme schafft. Für jeden automatisierten Arbeitsplatz entstehen daher neue Arbeitsplätze in einem bestimmten Prozentsatz.
- Übergangszeit: Die Auswirkungen von KI auf den Arbeitsmarkt erfolgen nicht sofort, sondern innerhalb eines festgelegten Zeitraums. Wir nehmen an, dass die vollständige Adaption von KI-Technologien in etwa 10 Jahren erfolgen wird.
- Industrien: Die Analyse bezieht sich auf verschiedene Industrien wie Fertigung, Gesundheitswesen, Finanzwesen und Dienstleistungssektor.
Mathematisches Modell:
Zur Quantifizierung der Auswirkungen auf die Beschäftigungsrate nutzen wir ein vereinfachtes Modell. Die Veränderung der Beschäftigungsrate in Industrie i über den Zeitraum t kann durch folgende Formel beschrieben werden:
\[ \text{Beschäftigungsrate}_i(t) = \text{Beschäftigungsrate}_i^{\text{jetzt}} \times (1 - A_i \times \frac{t}{T}) + N_i \times \frac{t}{T} \]
wobei:
- \text{Beschäftigungsrate}_i^{\text{jetzt}} = Aktuelle Beschäftigungsrate in Industrie i
- \text{A}_i = Prozentsatz der Arbeitsplätze in Industrie i, die automatisiert werden können
- \text{N}_i = Prozentsatz an neuen Arbeitsplätzen, die durch KI entstehen
- \text{t} = Aktuelles Jahr
- \text{T} = Zeitrahmen für die vollständige Adaption der KI (in Jahren)
Beispiel: Angenommen, in der Fertigungsindustrie beträgt die aktuelle Beschäftigungsrate 100%, A_1 = 0.5 (50% Automatisierungspotenzial) und N_1 = 0.1 (10% neue Arbeitsplätze), und T = 10 Jahre. Für das Jahr t=5 (nach 5 Jahren) ergibt sich:
\[ \text{Beschäftigungsrate}_{1}(5) = 100 \times (1 - 0.5 \times \frac{5}{10}) + 10 \times \frac{5}{10} = 100 \times 0.75 + 5 = 75 + 5 = 80 \]
Das bedeutet, dass die Beschäftigungsrate nach 5 Jahren in der Fertigungsindustrie auf 80% gesunken ist.
Schlussfolgerungen:
- Fertigungsindustrie: Hier ist eine erhebliche Reduktion der Beschäftigungsrate zu erwarten, da viele Tätigkeiten automatisiert werden können. Allerdings entstehen auch neue Arbeitsplätze, wenn auch in geringerem Maße.
- Gesundheitswesen: Im Gesundheitswesen ist eine geringere Reduktion der Beschäftigungsrate zu erwarten, da das Automatisierungspotenzial hier niedriger ist. Neue Arbeitsplätze durch KI dürften trotzdem entstehen.
- Dienstleistungssektor: Auch hier kann KI einige Tätigkeiten automatisieren, jedoch dürfte der Effekt moderater sein. Neue Arbeitsplätze könnten hier eher im Bereich der IT und Kundenbetreuung entstehen.
Durch die Nutzung dieses Modells lässt sich feststellen, dass die Verbreitung von KI erhebliche, jedoch differenzierte Auswirkungen auf verschiedene Industrien haben wird. Während einige Bereiche stark von Automatisierung betroffen sein könnten, entstehen in anderen neue Arbeitsmöglichkeiten, die den Verlust von Arbeitsplätzen teilweise kompensieren. Eine gezielte Weiterbildung und Umschulung der Arbeitskräfte wird notwendig sein, um den Übergang zu erleichtern.
Aufgabe 4)
Ein Softwareentwicklungsprojekt bei einem Unternehmen soll mithilfe geeigneter Prozessmodelle und -methoden geplant und durchgeführt werden. Dabei gibt es verschiedene Prozessmodelle, die jeweils unterschiedliche Ansätze und Techniken verwenden, um Projekte zu managen und zu kontrollieren. Das Projekt umfasst die Entwicklung einer neuen Webbasierten Plattform zur Kundenverwaltung.
a)
Angenommen, Du wirst als Projektleiter eingesetzt, um dieses Projekt unter Verwendung des Wasserfallmodells durchzuführen:
- Beschreibe die vier Hauptphasen dieses Modells und erläutere, welche typischen Aktivitäten in jeder Phase stattfinden.
- Identifiziere zwei mögliche Risiken, die spezifisch beim Einsatz des Wasserfallmodells auftreten können, und schlage Strategien vor, wie diese Risiken gemindert werden können.
Lösung:
Angenommen, Du wirst als Projektleiter eingesetzt, um dieses Projekt unter Verwendung des Wasserfallmodells durchzuführen:
- Beschreibe die vier Hauptphasen dieses Modells und erläutere, welche typischen Aktivitäten in jeder Phase stattfinden.
Die vier Hauptphasen des Wasserfallmodells sind:
- 1. Anforderungsanalyse: In dieser Phase werden die Anforderungen an die Software detailliert erfasst und dokumentiert. Typische Aktivitäten umfassen:
- Interviews und Workshops mit den Stakeholdern
- Erstellung eines Lastenhefts
- Überprüfung und Validierung der Anforderungen mit den Stakeholdern
- 2. Entwurf (Design): In dieser Phase wird die Softwarearchitektur und das detaillierte Design entwickelt. Typische Aktivitäten umfassen:
- Erstellung eines Systementwurfs
- Design von Datenbanken und Benutzerschnittstellen
- Festlegung von Schnittstellen und Modulen
- 3. Implementierung: In dieser Phase wird der Code geschrieben und die Software entwickelt. Typische Aktivitäten umfassen:
- Codierung der einzelnen Module
- Integration der Module zu einem Gesamtsystem
- Durchführung von Modul- und Integrationstests
- 4. Test und Wartung: In dieser Phase wird die Software getestet und bei Bedarf gewartet. Typische Aktivitäten umfassen:
- Durchführung von Systemtests
- Benutzerakzeptanztests (UAT)
- Fehlerbehebung und Nachbesserungen
- Bereitstellung der Software und Schulung der Anwender
- Identifiziere zwei mögliche Risiken, die spezifisch beim Einsatz des Wasserfallmodells auftreten können, und schlage Strategien vor, wie diese Risiken gemindert werden können.
Zwei mögliche Risiken:
- 1. Änderungen der Anforderungen während des Projekts: Im Wasserfallmodell ist es schwierig, auf Änderungen der Anforderungen zu reagieren, da das Modell auf einer sequenziellen Abarbeitung basiert. Strategien zur Risikominderung:
- Engmaschige Kommunikation mit den Stakeholdern während des gesamten Projekts
- Einführung eines Change-Management-Prozesses zur Bewertung und Dokumentation von Änderungen
- 2. Späte Entdeckung von Fehlern: Da Tests erst in einer späteren Phase durchgeführt werden, können Fehler spät im Entwicklungsprozess entdeckt werden, was zu höheren Korrekturkosten führt. Strategien zur Risikominderung:
- Frühe und kontinuierliche Überprüfung und Validierung der Anforderungen und des Designs
- Einführung von Review- und Inspektionsprozessen während der Entwurfs- und Implementierungsphase
b)
Nun betrachte die Anwendung eines agilen Modells (z. B. Scrum) für dasselbe Projekt:
- Erkläre, wie die Phasen Initialisierung, Planung, Durchführung und Abschluss in einem agilen Kontext aussehen könnten. Beschreibe insbesondere die Unterschiede zum Wasserfallmodell.
- Erstelle ein Burndown-Chart-Szenario über einen vierwöchigen Sprint. Zeige anhand einer fiktiven Datenreihe (z.B. verbleibende Story Points pro Tag), wie der Fortschritt gemessen und visualisiert werden kann. Erwähne, wie das Team auf Abweichungen reagieren kann, um den Sprint erfolgreich abzuschließen.
Lösung:
Nun betrachte die Anwendung eines agilen Modells (z. B. Scrum) für dasselbe Projekt:
- Erkläre, wie die Phasen Initialisierung, Planung, Durchführung und Abschluss in einem agilen Kontext aussehen könnten. Beschreibe insbesondere die Unterschiede zum Wasserfallmodell.
Phasen in einem agilen Kontext (Scrum-Modell):
1. Initialisierung:
- Identifikation der Product-Owner, Scrum-Master und des Entwicklungsteams.
- Erstellung und Priorisierung des Product Backlogs (Liste der Anforderungen und User Stories).
- Festlegung der Projektvision und der Hauptziele.
Unterschied zum Wasserfallmodell: Im Wasserfallmodell werden alle Anforderungen zu Beginn des Projekts detailliert dokumentiert. Im agilen Modell erfolgt die Priorisierung und Anpassung der Anforderungen kontinuierlich.
2. Planung:
- Durchführung des Sprint Planning Meetings, in dem entschieden wird, welche User Stories im kommenden Sprint bearbeitet werden.
- Aufteilung der User Stories in spezifische Tasks.
- Festlegung des Sprint-Ziels.
Unterschied zum Wasserfallmodell: Statt einer ausführlichen Planungsphase zu Beginn des Projekts erfolgt die Planung in kurzen Iterationen (Sprints) und wird regelmäßig angepasst.
3. Durchführung:
- Tägliche Durchführung der Daily Stand-Ups (kurze tägliche Meetings zur Besprechung des Fortschritts und etwaiger Hindernisse).
- Fortlaufende Entwicklung und Testen der Features, die im aktuellen Sprint enthalten sind.
- Regelmäßige Reviews und Anpassungen des Product Backlogs.
Unterschied zum Wasserfallmodell: Kontinuierliche Überprüfung und Anpassung des Fortschritts, statt einer einmaligen Implementierung und Testphase.
4. Abschluss:
- Durchführung des Sprint Review Meetings, um die im Sprint realisierten Features zu präsentieren und Feedback zu sammeln.
- Durchführung der Sprint Retrospective, um den Prozess zu analysieren und Verbesserungen für den nächsten Sprint festzulegen.
Unterschied zum Wasserfallmodell: Regelmäßige, iterative Abschlüsse nach jedem Sprint statt eines einzigen Projektabschlusses am Ende.
- Erstelle ein Burndown-Chart-Szenario über einen vierwöchigen Sprint. Zeige anhand einer fiktiven Datenreihe (z.B. verbleibende Story Points pro Tag), wie der Fortschritt gemessen und visualisiert werden kann. Erwähne, wie das Team auf Abweichungen reagieren kann, um den Sprint erfolgreich abzuschließen.
Burndown-Chart-Szenario:
Ein Burndown-Chart visualisiert den verbleibenden Arbeitsaufwand (z.B. in Story Points) gegen die Zeit (über die Dauer des Sprints). Hier ist ein fiktives Beispiel für einen vierwöchigen Sprint:
- Tag 1: 100 Story Points verbleibend
- Tag 2: 90 Story Points
- Tag 3: 85 Story Points
- Tag 4: 80 Story Points
- Tag 5: 75 Story Points
- Tag 6: 70 Story Points
- Tag 7: 65 Story Points
- Tag 8: 60 Story Points
- Tag 9: 58 Story Points
- Tag 10: 55 Story Points
- Tag 11: 52 Story Points
- Tag 12: 50 Story Points
- Tag 13: 45 Story Points
- Tag 14: 40 Story Points
- Tag 15: 35 Story Points
- Tag 16: 32 Story Points
- Tag 17: 28 Story Points
- Tag 18: 25 Story Points
- Tag 19: 20 Story Points
- Tag 20: 15 Story Points
- Tag 21: 10 Story Points
- Tag 22: 8 Story Points
- Tag 23: 5 Story Points
- Tag 24: 2 Story Points
- Tag 25: 0 Story Points (Sprint-Ziel erreicht)
Fortschrittsmessung und -visualisierung:
Das Burndown-Chart zeigt eine diagonale Linie von 100 Story Points (Tag 1) zu 0 Story Points (Tag 25), neben einer Ideal-Linie, die den idealen Fortschritt angibt. Das Team vergleicht die tatsächlichen Punkte jeden Tag mit der Ideal-Linie, um den Fortschritt zu überwachen.
Umgang mit Abweichungen:
- Falls das Team hinter dem Zeitplan liegt, kann es in den Daily Stand-Ups besprechen, ob zusätzliche Unterstützung erforderlich ist oder ob bestimmte Tasks priorisiert werden müssen.
- Falls das Team vor dem Zeitplan liegt, kann der Product Owner entscheiden, ob zusätzliche User Stories in den Sprint aufgenommen werden oder ob mehr Zeit für Qualitätssicherung und Tests verwendet wird.