Zum Inhalt springen

Projektantrag: Entwicklung einer Schnittstelle zum Labeldruck.


Empfohlene Beiträge

Geschrieben (bearbeitet)

Hi zusammen,

hier drunter befindet sich mein Projektantrag. Freue mich über jedes Feedback.
Kurz ein paar Eckdaten. Es handelt sich hier um ein Projekt welches aus unserer eigenen Abteilung kommt daher gibt es kein Lastenheft, ein Pflichtenheft würde ich naütrlich erstellen da es ja auch so weit ich weiß eine Pflicht ist.
 

Für die xy GmbH soll eine Schnittstelle entwickelt werden, die in der Lage ist, Anfragen von betriebssystemunabhängigen Clients entgegenzunehmen, zu verarbeiten und die angeforderten Daten zurückzugeben.

Die bestehende Visual Basic Anwendung, die für den Druck der Label zuständig ist, soll abgelöst werden. Grund dafür ist die Verbesserung der Auftragskommisionierung, welche in Zukunft einen Labeldruck von OS-unabhängigen Clients auf beliebigen Druckern im Netzwerk ermöglichen soll. Das bestehende Label Programm kann nur von stationären Windows Clients ausgeführt werden und druckt Labels ausschließlich auf fest zugewiesenen, unveränderlichen Druckern.

1.2 Ist-Analyse

Der Druckvorgang erfolgt über eine designierte Visual Basic Applikation.

Diese Anwendung stellt Masken zum Druck von Labeln zur Verfügung. Je nach Maske werden verschiedene Input Felder und gegebenenfalls auch Daten aus der Microsoft SQL Datenbank bereitgestellt / Diese Anwendung bietet Masken zum Druck von Labeln an. Je nach Maske werden verschiedene Input Felder eingeblendet und bei Bedarf auch Datensätze aus der Microsoft SQL Datenbank abgerufen.

Diese Daten können dann auf einem Label ausgegeben werden, die Durchführung erfolgt ausschließlich über einen (mit Namen) in der Datenbank festgelegten Drucker. Das aktuelle Programm bietet weder die Option auf einen beliebigen Drucker im Netzwerk zu drucken, noch kann es auf mobilen Endgeräten ausgeführt werden.

2 Zielsetzung entwickeln / Sollkonzept

2.1 Was soll am Ende des Projekts erreicht werden?

Eine neue Schnittstelle soll entwickelt werden, die es den Mitarbeitern ermöglicht, Daten über HTTP-Anfragen abzurufen. Die abgerufenen Daten können dann auf einen frei wählbaren Drucker ausgegeben werden. Dafür soll ein entsprechendes Protokoll erstellt werden, welches den Datenaustausch zwischen Client und Server regelt. Ziel ist es, dass Clients keine Software lokal ausführen müssen sondern über ihren Browser die nötigen Daten erhalten und auf einen beliebigen Drucker ausgeben können. Somit wird den Mitarbeitern das Kommissionieren mit mobilen Endgeräten ermöglicht, die Dauer des Arbeitsprozesses verringert und die Produktivität gesteigert.

2.2 Welche Anforderungen müssen erfüllt sein?

  • Der Labeldruck muss unabhängig vom Betriebssystem erfolgen
  • Druck auf jeden beliebigen Label Drucker im Netzwerk muss möglich sein
  • Daten müssen Strukturiert angenommen und zurückgegeben werden
  • Für den Datentransfer muss ein eigenes Protokoll entwickelt werden
  • Bestehende Datenbankstruktur muss verwendet werden

2.3 Welche Einschränkungen müssen berücksichtigt werden?

Aufgrund von architektonischen Richtlinien innerhalb des Unternehmens wird mit C# entwickelt. Es soll die bestehende Datenbankstruktur verwendet werden, diese verfügt bereits über die für den Label druck benötigten Datensätze.

3. Projektstrukturplan entwickeln

3.1 Was ist zur Erfüllung der Zielsetzung erforderlich

Für die Projektplanung wird das Wasserfallmodell verwendet, wobei die Implementierung der Fachlogik agiler gestaltet werden soll. Eine regelmäßige Rücksprache mit dem Fachbereich kann eine flexible Umsetzung der Anforderungen ermöglichen und ggf. die Einführungsphase verkürzen.

3.2 Hauptaufgaben auflisten

  • Analyse
  • Entwurf
  • Implementierung inkl. Tests
  • Abnahme und Einführung
  • Dokumentation

3.3 Teilaufgaben auflisten (Zeitangaben aus meiner Tabelle habe ich jetzt hier mit reingepackt, sind aber normalerweise in einer separaten Tabelle

Analyse - 6 Stunden

o   Durchführen der Ist-Analyse - 2 Stunden

o   Durchführung der Wirtschaftlichkeitsanalyse inkl. Amortisationsrechnung - 2 Stunden

o   Ermitteln von Anwendungsfällen und Erstellung eines Anwendungsfall-Diagramms - 1 Stunde

o   Erstellen einer erweiterten Ereignisgesteuerten Prozesskette - 1 Stunde

Entwurf - 7 Stunden

o   Entwurf eines Aktivitätsdiagramms - 1 Stunde

o   Entwurf der Benutzeroberfläche inkl. Erstellung von Mock-Ups - 2 Stunden

o   Entwurf eines ER-Modells - 1 Stunde

o   Entwurf eines Protokolls zur Abwicklung der Kommunikation zwischen der Schnittstelle und den Clients - 4 Stunden

Implementierung inkl. Tests - 42 Stunden

o   Anlegen des C# Projekts - 1 Stunde

o   Implementierung des Verbindungsaufbau der Clients - 3 Stunde

o   Implementierung des Auslesens der Daten aus der http Anfrage - 8 Stunden

o   Herstellen einer Datenbankverbindung - 1 Stunde

o   Implementierung der Datenbankabfragen - 6 Stunden

o   Implementierung des Labeldrucks - 10 Stunden

o   Implementierung der Antwort an den Client - 7 Stunden

o   Implementierung des Logging - 3 Stunden

o   Implementierung der Oberfläche der Desktop Anwendung - 3 Stunden

 Abnahme und Einführung - 8 Stunden

o   Code-Review mit dem Projektverantwortlichen - 1 Stunde

o   Abnahme durch die Fachabteilung - 1 Stunde

o   Erfolgskontrolle in der Fachabteilung - 1 Stunde

o   Installation einer virtuellen Maschine zum Betrieb der Lösung, Installation/Konfiguration der ausgewählten Lösung - 4 Stunden

Dokumentation - 16 Stunden

o   Erstellung der Entwicklerdokumentation - 1 Stunde

o   Erstellung der Projektdokumentation - 13 Stunden

o   Erstellung der Protokolldokumentation - 2 Stunden

 

Bearbeitet von mapr
Geschrieben (bearbeitet)

 

Warum muss etwas programmiert werden und warum in C#? Warum http Anfragen?

Du beantwortest in deinem Antrag schon Fragen welche sich erst im Projekt ergeben sollten. Bitte setz dir kein zu enges Korsett, alles was dir vorgegeben ist ohne selbst Entscheidungen treffen zu können macht dein Projekt zu keinem Projekt sondern leider zu einem Arbeitsauftrag. Nun könnte man natürlich sagen in der Programmierung ist immer eine gewisse Komplexität vorhanden aber ob das dein PA so sieht weiß ich nicht und da tippe ich eher auf nein. 

Bei solch einem Projekt könnte es auch sein das eine bestehende  Software eines anderen Unternehmens, welche dass abbildet was gewünscht ist, eingeführt wird oder aber die vorhandene Software dahingehend erweitert wird, dass die Möglichkeiten geboten werden welche noch nicht vorhanden sind aber gewünscht sin. Das sind Entscheidungen welche getroffen werden müssen.

Zum Thema Lasten- & Pflichtenheft. Warum kein Lastenheft? Du beschreibst doch schon im Antrag deines Projekts WAS das Ziel ist.

Warum ist das Pflichtenheft pflicht? Dokumentation ist zwar richtig aber ein Pflichtenheft ist als Gegenstück vom Lastenheft nicht das WAS sondern das WIE. Sprich du musst Wissen was das Ziel ist um überhaupt darüber nachdenken zu können wie du es löst.

Ich hoffe das Feedback hilft dir etwas bei der Einschätzung des Antrags und ich drücke dir die Daumen. Den Fehler ein viel zu enges Korsett schon im Antrag anzulegen machen leider sehr viele.

Bearbeitet von Earl Hickey
Schreibfehler korrigiert
Geschrieben (bearbeitet)

Von der jetzigen Beschreibung ist das ein Arbeitsauftag, kein Projekt.

Wie der andere Poster schon schrieb:
Wo ist DEINE Entscheidung?
WARUM benutzt du C# für DIESES Projekt? Gerade, da das nach einem REST-Microssrvice klingt, wäre da ein Quarkus u.U. besser - Deine Entscheidungsanalyse kann ja trotzdem auf C# kommen, aber C# für eine WebGUI halte ich dann eher als falsches Mittel der Wahl.

Was ich mich beim Lesen des Antrags die ganze Zeit frage:
Was progammierst du? Client? Server? Service? Alles?

Zum einen willst du die Daten via HHTP Request Senden/Empfangen, okay.
Dann ließt es sich so, als würdest du dafür erstmal das Backend bauen müssen, auch noch okay.
Dann willst du noch die dazugehöre WebOberfläche bauen, sportlich.
Danach die Logik um aus dem Request die Daten für das Label entsprechend darzustellen, wird immer sportlicher.
Und dann willst du auch noch eine VM installieren und einrichten, was tendenziel nicht einmal in deinen Aufgabenbereich als FIAE fällt.
Alles in 80 Stunden, wovon Zeit für die Doku drauf geht.
Sorry, das wird dir kaum ein PA als plausibel durchgehen lassen, zumal dein Anntrag zusätzlich zu all dem noch logische Lücken hat.

Du redest anfangs davon, dass die Nutzer das neue Programm über ein WebOberfläche bedienen, willst aber 3 Stunden für die "Implementierung der Oberfläche der Desktop Anwendung" benutzen. Was nun?

Weiterhin schreibst du, dass die Struktur der Datenbank vorgegeben ist, willst aber nochmal selber Zeit in ein ER Model investieren. Warum?

 

vor 16 Stunden schrieb IAMS533:

o   Anlegen des C# Projekts - 1 Stunde

1 Stunde, nur um das Projekt anzulegen?

vor 16 Stunden schrieb IAMS533:

o   Implementierung des Logging - 3 Stunden

Nahezu jede Programmiersprache besitz dafür de-facto Standard-Bibliotheken.
Das dauert keine 3 Stunden.

vor 16 Stunden schrieb IAMS533:

o   Installation einer virtuellen Maschine zum Betrieb der Lösung, Installation/Konfiguration der ausgewählten Lösung - 4 Stunden

Da du FI-AE wirst, bin ich mir nicht sicher, was der PA dazu sagt.
Würde aber von ausgehen, dass das aus Prüfersicht nicht in deinen Aufgabenbereich fällt, vor allem nicht mit einem so hohen Zeitaufwand.

Bearbeitet von Barandorias
Geschrieben

Ich gehe mal auf die Fragen ein:
 

vor 9 Stunden schrieb Earl Hickey:

Warum muss etwas programmiert werden und warum in C#? Warum http Anfragen?

Was meinst du mit warum muss etwas programmiert werden? Der Grund warum die Schnittstelle gebraucht wird ist ja erwähnt.
Der Grund warum C# ist ja gegeben. Ich konnte gestern zum Glück mit einer Prüferin darüber reden und sie fand den Grund logisch, meinte jedoch dass man in der Doku dann doch schreiben sollte was man denn benutzt hätte wenn man nicht an die Vorgabe gebunden wäre.
Das mit den http Anfragen habe ich jetzt erstmal gestrichen, der Satz lautet jetzt. "Eine neue Schnittstelle soll entwickelt werden, die es den Mitarbeitern ermöglicht, den Datenaustausch und Labeldruck über das Internet auszuführen." statt "Eine neue Schnittstelle soll entwickelt werden, die es den Mitarbeitern ermöglicht, Daten über HTTP-Anfragen abzurufen.". Somit bleibt offen wie das ganze abgewickelt wird und lässt mehr Spielraum

vor einer Stunde schrieb Barandorias:

Gerade, da das nach einem REST-Microssrvice klingt, wäre da ein Quarkus u.U. besser

Das mag sein jedoch ist es etwas was durch den Auftraggeber nicht gewünscht ist da man letztendlich das Projekt selber warten möchte. Sowohl ich als auch keine andere Person in der Firma arbeitet damit.

vor einer Stunde schrieb Barandorias:

Deine Entscheidungsanalyse kann ja trotzdem auf C# kommen, aber C# für eine WebGUI halte ich dann eher als falsches Mittel der Wahl.

Vielleicht muss ich noch ein wenig an der Formulierung arbeiten. dadurch dass ich nur eine Middleware bzw. eine Schnittstelle programmiere habe ich gedacht dass es klar ist dass ich eben nicht das WebGUI erstelle.
Der "Entwurf der Benutzeroberfläche inkl. Erstellung von Mock-Ups" der dich zu dem Gedanken kommen lässt meint schon den Entwurf der Desktopanwendung. Wenn ich noch die Weboberfläche basteln würde dann gebe ich dir zu 100% recht wäre C# quatsch und es würde zeitlich auch den Rahmen sprengen. So sehe ich das Projekt zeitlich im Rahmen.

Ich hoffe das ganze schafft ein wenig Klarheit über das ganze. 

Geschrieben
vor 26 Minuten schrieb Barandorias:

WARUM benutzt du C# für DIESES Projekt? Gerade, da das nach einem REST-Microssrvice klingt, wäre da ein Quarkus u.U. besser - Deine Entscheidungsanalyse kann ja trotzdem auf C# kommen, aber C# für eine WebGUI halte ich dann eher als falsches Mittel der Wahl.

Wozu eine neue Sprache lernen? Die .NET-Welt bietet dir schon alles, was du brauchst. Für einen (Micro)Service einfach einen ASP.NET Core Web-API-Projekt anlegen. Fertig.

Was Web Oberflächen angeht, ist man auch komplett offen. Entweder man benutzt das bekannte ASP.NET MVC oder das neue Blazor. Wer überhaupt kein Bock auf all das hat, der legt sich, wie oben beschrieben, ein Web-API-Projekt an und schreibt seine Web-Anwendung über andere Technologien, wie z.B. Angular, React oder was auch immer.

vor 4 Minuten schrieb IAMS533:

Der "Entwurf der Benutzeroberfläche inkl. Erstellung von Mock-Ups" der dich zu dem Gedanken kommen lässt meint schon den Entwurf der Desktopanwendung. Wenn ich noch die Weboberfläche basteln würde dann gebe ich dir zu 100% recht wäre C# quatsch und es würde zeitlich auch den Rahmen sprengen. So sehe ich das Projekt zeitlich im Rahmen.

Den Punkt verstehe ich aber immer noch nicht. Du willst also neben der derzeitigen Desktop-Anwendung eine neue Desktop-Anwendung schreiben? Wäre es nicht sinnvoller, erstmal die bestehende Anwendung zu nehmen und einfach die Methodenaufrufe gegen die Web-API auszutauschen?

Geschrieben (bearbeitet)
vor 18 Minuten schrieb IAMS533:

Eine neue Schnittstelle soll entwickelt werden, die es den Mitarbeitern ermöglicht, den Datenaustausch und Labeldruck über das Internet auszuführen."

Bereite dich auf einen massiven Fragenansturm zu Datenschutz und Datensicherheit bereit.
 

vor 18 Minuten schrieb IAMS533:

Das mag sein jedoch ist es etwas was durch den Auftraggeber nicht gewünscht ist da man letztendlich das Projekt selber warten möchte.

Sowas kann während des Projektes herauskommen. Indem du während des Projektes deinen Auftraggeber über die Vor- und Nachteile informierst und anhand deren Antworten die Entscheidung, warum du X benutzt/nicht benutzt hast begründest.

Und die Aussage "Benutzt keiner, nutz ich nicht" ist für deine Prüfer ganz sicher keine Begründung, zumindest nicht in der IT.
 

vor 18 Minuten schrieb IAMS533:

Vielleicht muss ich noch ein wenig an der Formulierung arbeiten. dadurch dass ich nur eine Middleware bzw. eine Schnittstelle programmiere habe ich gedacht dass es klar ist dass ich eben nicht das WebGUI erstelle.

Du hast in deiner Zeitplanung Explizit erwähnt, dass du eine Oberfläche programmieren wirst, nämlich genau hier:

vor 17 Stunden schrieb IAMS533:

o   Implementierung der Oberfläche der Desktop Anwendung - 3 Stunden

Nichts mit "Sollte doch klar sein, dass das nur die API ist".

 

vor 18 Minuten schrieb IAMS533:

lässt meint schon den Entwurf der Desktopanwendung. Wenn ich noch die Weboberfläche basteln würde dann gebe ich dir zu 100% recht wäre C# quatsch

Deine ganze Erklärung macht mehr Fragen als Antworten.

In deiner Anforderung ist die rede davon, dass die neue Anwendung für flexiblere Nutzung auf Web-Basis sein soll, so weit so gut.
Jetzt redest du schon wieder von der finalen Nutzung einer Desktop-Anwendung.
Ich bin mir zu 99% sicher, dass der Antrag, so wie er jetzt ist, abgelehnt werden wird. Da sind inhaltliche und fachliche ungereimtheiten.

Nicht falsch verstehen, reine Server-Anwendungen ohne GUI sind auch für die Prüfung machbar, mein Abschlussprojekt war nämlich genau das, aber von deiner reinen Erklärung im Antrag geht einfach nicht hervor, was genau davon ein Projekt sein soll.
Das ist, noch immer, ein ziemlich schlecht ausformulierter Arbeitsauftrag.

vor 3 Minuten schrieb Whiz-zarD:

Wozu eine neue Sprache lernen? Die .NET-Welt bietet dir schon alles, was du brauchst. Für einen (Micro)Service einfach einen ASP.NET Core Web-API-Projekt anlegen. Fertig.

Gehe ich ja vollkommen mit, gehört aber nicht in den Antrag, sondern Begründet in die Doku.
Darauf wollte ich hinaus.
Sein jetziger Entwurf zeigt an keiner Stelle eine Entscheidung des TE sondern nur ein "Mach X, indem du Y benutzt."

 

Bearbeitet von Barandorias
Geschrieben (bearbeitet)
vor 41 Minuten schrieb Whiz-zarD:

Den Punkt verstehe ich aber immer noch nicht. Du willst also neben der derzeitigen Desktop-Anwendung eine neue Desktop-Anwendung schreiben? Wäre es nicht sinnvoller, erstmal die bestehende Anwendung zu nehmen und einfach die Methodenaufrufe gegen die Web-API auszutauschen?

Die jetzige Anwendung ist ein Programm welches auf jedem PC in der Firma verwendet wird. Die Schnittstelle die ich programmiere soll nur auf einem einzigen Server laufen.

vor 39 Minuten schrieb Barandorias:

Sowas kann während des Projektes herauskommen. Indem du während des Projektes deinen Auftraggeber über die Vor- und Nachteile informierst und anhand deren Antworten die Entscheidung, warum du X benutzt/nicht benutzt hast begründest.

Finde das ein schwieriges Thema, in diversen anderen Projektanträgen habe ich gesehen dass die Begründung ausreicht. Das in der Doku begründet werden muss warum man mit xy arbeitet und was alternativen gewesen wären, wenn der Auftraggeber nicht die Programmiersprache vorgegeben hätte ist klar.

Hier nochmal der komplette Punkt 2.1:

 

Zitat

Eine neue Schnittstelle soll entwickelt werden, die es den Mitarbeitern ermöglicht, den Datenaustausch und Labeldruck über Software zu beauftragen die bereits in Nutzung ist (Internetbrowser, andere C#.NET Anwendungen oder das Warenwirtschaftssystem). Die abgerufenen Daten sollen dann auf einen frei wählbaren Drucker ausgegeben werden können. Dafür soll ein entsprechendes Protokoll erstellt werden, welches den Datenaustausch zwischen Client und Server regelt. Somit wird den Mitarbeitern das Kommissionieren mit mobilen Endgeräten ermöglicht, die Dauer des Arbeitsprozesses verringert und die Produktivität gesteigert.

 

Ich hoffe dass es so verständlicher ist dass ich eine Middelware programmiere wovon der Endnutzer gar nichts mitbekommt. Die Benutzeroberfläche ist somit für die von mir vorher betitlte "Desktop Anwendung" die ich jetzt als "Server Anwendung" umgetauft habe. Die Benutzer der Middelware sind dann die Leute aus der IT bzw. der Entwicklung.

Bearbeitet von IAMS533
Schreibfehler

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...