Architekturanalyse und Implementierung von Domain Driven Design

worked on by: Tom Lausmann

Outline

In Softwareunternehmen kommt es immer wieder einmal vor, dass die Zeit eng wird. Sei es durch eine zu eng gesetzte Deadline oder durch sprunghaft wechselnde Anforderungen, die nicht mehr zur vorhandenen Codebasis passen. Durch diese Umstände und die eventuell nicht vorhandene Erfahrung der Entwickler, wurden neue Anforderung in eine ungenügenen Qualität umgesetzt. Dadurch leidet die Architektur des Systems. Fachlichkeiten kommen durcheinander und es entstehen Abhängigkeiten zu Komponenten, die so nicht vorgesehen waren. Kommen diese Umstände öfter vor, ohne dass deren Folgen bereinigt werden, wird das Projekt immer schlechter wartbar und die Implementierung neuer Features dauert immer länger.

In der Bachelor-Arbeit soll es darum gehen, ein Softwareprojekt, welches schon öfter in eine wie oben beschriebene Situation gekommen ist, wieder in eine bessere Bahn zu lenken. Dazu soll eine Refaktorisierung durchgeführt werden. .

Zunächst wird die Zielarchitektur bestimmt. Dazu soll sich überlegt werden, wer die Benutzer des Produktes sind und was sie gemeinsam haben. Daraus soll eine Modul-Struktur entstehen, die genau das repräsentiert. Die Module selber sollen homogen aufgebaut sein, sodass man sich in allen gleich zurecht finden kann. Diese innere Struktur ist ebenfalls zu bestimmten.

Ergebnis der Arbeit soll die Refaktorisierung von des Produktes zu der gewünschten Architektur. Dabei will ich die Werkzeuge von Domain-Driven Design benutzen, um zu bestimmen welche Module ich brauche, aus was für Bestandteilen sie bestehen und wie diese Organisiert sind.

Thesis Requirements

Milestones and Planning

1. Die SOLL-Architektur des Produkt wurde mit den Werkzeugen des DDD ermittelt

2. Die SOLL-Architektur wurde mit der IST-Architektur verglichen

3. Die ersten Refaktorisierungen wurden durchgeführt

4. Alle Refaktorisierungen wurden abgeschlossen

Weekly Status

Woche 1 (CW 25)

Activities

Results

Next Steps

Problems

Weekly Status

Woche 3 (CW 27)

Activities

Results

Next Steps

Problems

Woche 5 (CW 29)

Activities

Results

Next Steps

Problems

Woche 7 (CW 31)

Activities

Results

Next Steps

Problems

Woche 9 (CW 33)

Activities

Results

Next Steps

Woche 10 (CW 34)

Activities

Results