Guten Tag,
Nach ein paar firmeninternen iterationen des Projektantrags, bin ich nun so weit, dass ich nicht mehr weiß, was noch fehlen könnte.
Präziser wünsche ich Kritik mit Verbesserungsvorschlägen
1. Projektbezeichnung
Beginn der Neuentwicklung der firmeneigenen [Softwarelösung].
1.1 Kurzform der Aufgabenstellung
Die aktuelle << FIRMA >> [Softwarelösung] soll zukünftig durch eine Neuentwicklung abgelöst werden.
Als Anfang werden eine Normalisierungsstrategie für Datensätze, eine Datenbankanbindung für die zu speichernden Daten und die Ein- und Ausgabe von Suchanfragen und Datensätzen entwickelt.
Ziel der Neuentwicklung soll eine Cloud-Kompatible Alternative zu der bisherigen [Softwarelösung] werden.
Das Projekt soll als Start der Neuentwicklung dienen und eine Basis für die benötigten Weiterentwicklungen schaffen.
1.2 Ist-Analyse
Die << FIRMA >> bietet eine [Softwarelösung] für die Überprüfung von [Daten]. Dafür werden [verschiedene Validierungsdatensätze] verwendet.
Der Kunde kann sich Statistiken zu den Treffern ausgeben lassen und Berichte als E-Mail zugesandt bekommen.
Die aktuelle Softwarelösung bietet nur begrenzte Möglichkeiten zur Fernwartung, weshalb die Aktualisierung von verwendeten [Validierungsdatensätzen] in händischer Nacharbeit, sowohl auf der Seite des Klienten als auch auf der des Servers, endet.
Dazu kommt, dass sowohl bei der Klienten- als auch Serveranwendung sehr viel Wert auf Optik gelegt wurde, obwohl die Anwendungen im Regelfall nicht direkt von den Kunden verwendet werden, sondern über Schnittstellen mit anderen Anwendungen, wie zum Beispiel der firmeneigenen [Software] „<< SOFTWARE NAME >>“.
Darüber hinaus besitzt die aktuelle Klienten-Anwendung keine normalisierte Datenstruktur für die verschiedenen [Validierungsdatensätze] und einige Fehler, wie zum Beispiel Speicherlecks, welche dazu führen dass die Anwendung abstürzt.
Die aktuellen Klienten- und Serveranwendungen werden auf den kundeneigenen Servern ausgeführt und müssen bei Problemen mit Hilfe von Fernwartungssoftware überprüft und ggf. neugestartet werden.
2. Zielsetzung entwickeln / Soll-Konzept
2.1 Was soll am Ende des Projektes erreicht sein?
Das Projekt soll in der Programmiersprache C# geschrieben werden und als Basis für eine zukünftige Weiterentwicklung, bzw. Fertigstellung dienen.
Dabei soll auf das „DotNet Core“-Framework gesetzt werden, welches eine Neu-Implementation des „DotNet“-Frameworks von Microsoft ist.
Daten von verschiedenen [Validierungsdatensätzen] sollen in einem normalisierten Format in eine Datenbank eingetragen werden.
Für das Speichern und Abfragen der Daten soll ein Datenbankserver verwendet werden. Dabei soll das von Microsoft entwickelte „Entity Framework Core“ eine sichere und einheitliche Möglichkeit der Persistenz, sowie eine einfache Austauschmöglichkeit für das zugrundeliegende Datenbank-System bereitstellen.
Die Ein- und Ausgabe von Datensätzen soll in mehreren Formaten möglich sein. (z.B. JSON, CSV, XML)
2.2 Welche Anforderungen müssen erfüllt sein?
Die neue Softwarelösung soll Teile der Aufgaben der bisher vorangegangenen Lösung übernehmen können.
Hierzu gehört das Einlesen und Normalisieren von [Validierungsdatensätze] , die Anbindung an einen Datenbankserver, sowie die Eingabe von Suchbegriffen und Ausgabe von Ergebnissen.
Die für die Überprüfung verwendeten [Validierungsdatensätze] müssen regelmäßig aktualisiert und für die weitere Verarbeitung normalisiert werden.
Es muss ein Server für das Bereitstellen der Softwarelösung sowie des Datenbanksystems vorhanden sein, dieser muss in der Lage sein, die Anzahl der zusammengezählten, aktuellen Abfragen zu beantworten.
Bei Entwurf und Programmierung der Software sollte auf horizontale Skalierbarkeit hinsichtlich der zu verarbeitenden Datenmenge, sowie der Menge an Anfragen geachtet werden.
2.3. Welche Einschränkungen müssen berücksichtigt werden?
Durch die Verwendung des „DotNet Core“-Frameworks ist die Anwendung zu einigen älteren Betriebssystemen nicht kompatibel (Windows Versionen vor Windows 7, sowie einige Unix-basierte Betriebssysteme).
Durch das Ziel die Anwendung Cloud-basiert auszuliefern, wird von den Klienten eine aktive Internetverbindung benötigt.
Bei zu vielen Anfragen könnte das System überlastet werden und bei Ausfall des Servers kann die Anwendung nicht weiterverwendet werden.
3. Projektstrukturplan entwickeln
3.1 Was ist zur Erfüllung der Zielsetzung erforderlich?
Zugang zu [Validierungsdatensätzen] in einem von Maschinen lesbaren Format.
Programmierung der Softwarelösung
Erfolgreiche Implementation der Softwarelösung
Kontrolle der Arbeitsschritte
3.2 Hauptaufgaben
Analyse der Anforderungen sowie möglicher Lösungsansätze
Entwurf der Projektstruktur
Programmierung der Softwarelösung
Tests der Softwarelösung
Ggf. Nachbesserungen
Erstellung der Dokumentation
3.3 Teilaufgaben
Entwurf einer Durchführbarkeitsstudie
Erstellung eines Pflichtenhefts
Entwurf des Datenbank Schemas
Entwurf der Eingabe- und Ausgabeformate
Überprüfung der vorhandenen Prüflogik (ggf. optimieren)
Entwurf einer Normalisierungsstrategie für verschiedene Quellformate
Erstellung des C#-Projekts mitsamt der Struktur
Programmierung der Ein- und Ausgabe von Daten
Programmierung der Datenbankanbindung
Testen der einzelnen Programmteile
Das Erstellen der Projektdokumentation
Testen des Gesamtprodukts
3.4 Grafische und tabellarische Darstellung
<< TORTENDIAGRAMM >>
4. Projektphasen mit Zeitplanung in Stunden
6.0 Stunden – Entwurf einer Durchführbarkeitsstudie
6.0 Stunden – Erstellung des Pflichtenhefts
2.0 Stunden – Entwurf der Projektstruktur
8.0 Stunden – Entwurf einer Normalisierungsstrategie für verschiedene Quellformate
anhand von Testdaten
4.0 Stunden – Entwurf des Datenbankschemas
3.0 Stunden – Entwurf der Eingabe- und Ausgabeformate
3.0 Stunden – Erstellen des C#-Projekts mitsamt der Struktur
4.0 Stunden – Überprüfung der vorhandenen der Prüflogik (ggf. optimieren)
2.0 Stunden – Testen der Prüflogik anhand von Testdaten
8.0 Stunden – Programmierung der Ein- und Ausgabe
2.0 Stunden – Testen von Ein- und Ausgaben anhand von Testdaten
4.0 Stunden – Programmierung der Datenbankanbindung
2.0 Stunden – Testen des Speicherns und Abrufens von Datensätzen
4.0 Stunden – Erstellung der Projekt-Dokumentation (während/zwischen den Iterationen)
3.0 Stunden – Erstellung der Kunden-Dokumentation (während/zwischen den Iterationen)
2.0 Stunden – Erstellung der Code-Dokumentation (während/zwischen den Iterationen)
6.0 Stunden – Tests des Gesamtprodukts auf verschiedenen Systemen
____________
70.0 Stunden – Gesamtes Projekt