Laden...

Planung / Vorschlag - IHK Abschlussprojekt Anwendungsentwickler

Letzter Beitrag vor 14 Jahren 14 Posts 6.466 Views
Planung / Vorschlag - IHK Abschlussprojekt Anwendungsentwickler

Hallo Leute!

Ich befinde mich zur Zeit in der Ausbildung zum Anwendungsentwickler und habe zur Zeit etwas freiraum um mir schonmal Gedanken zu machen über mein Abschlussprojekt für die IHK.
Ich würde euch das ganz gerne vorstellen und mir von euch anhören wie ihr das findet.
Besonders geht es mir darum jetzt im Vorfeld Schwierigkeiten und Probleme aufzudecken, um mich damit vorbereiten zu können und nicht mit dem Projekt in Verzug zu kommen.

Gehen wir von folgender Situation aus:
Eine Firma mit ca 50 Arbeitsplächen, also auch 50 eigenständige PC's die im ganzen Unternehmen verteilt stehen.
Alle Mitarbeiter arbeiten unter Windows XP ohne Administrationsrechte auf den Systemen.
Häufig benötigen die Mitarbeiter neue Software die installiert werden muss, also läuft der zuständige Admin durch mehrere Etagen zu insgesamt 10 PCs um dort diese neue Software zu installieren.
Und oder auch zu deinstallieren.

Jetzt kommen wir zu meiner Idee 😃
Ich plane eine Maschine des Admins, als Server fungieren zu lassen.
Auf dieser Maschine hat er ein Programm welches Ihm alle 50 Pc's jedes einzelnen Mitarbeiters in einer Liste anzeigt.
Per selektion eines oder mehreren Rechners kann er diesen nun eine Software zuweißen.

Konkretes Beispiel:
Es melden sich 15 Mitarbeiter die alle eine neue Software installieren müssen.
Der Admin besorgt sich also die Installations Dateien, startet in der Server Anwendung eine Funktion und installiert das Programm anschließend ganz normal auf seiner Server Maschine. (VM wäre schöner!)
Die Server Anwendung befindet sich zur Zeit in einem Sniffer Mode und lauscht mit was die Installation des Programms alles für Dateien kopiert, DLL's registriert, welche Registry Einträge geschrieben werden.
Anschließend weiß die ServerAnwendung also genau was bei der Installation von Programm X alles getan werden muss.
Das Programm befindet sich nun also in der Datenbank.

Jetzt kann der Admin die Rechner der 15 Mitarbeiter auswählen und Ihnen aus einer Liste der verfügbaren (zuvor im SnifferMode installierten) Programme zuweißen.

Dabei erhalten die ausgewählten Rechner, auf denen natürlich die Client Software läuft einen Befehl sich folgende Dateien von der Server Maschine herunterzuladen (namlich genau die, die zur Installation notwendig sind).
Zum Schluß erhält der Client noch eine Steuerdatei damit er weiß welche Datei wohin kopiert werden muss und welche Regristry Einträge geschrieben werden müssen.

Der Mitarbeiter der also gerade vor seiner Maschine sitzt, bemerkt ausser einem BalloonTip unten aus dem Tray "Software XY wird gerade installiert" nichts weiter und kann diesen Prozess auch nicht beenden.

Mit der Deinstallation läuft es dann natürlich Ähnlich.

Die Probleme die sich mir zur Zeit offenbaren liegen ganz klar an dem SnifferMode.

  • Es muss die Registry Überwacht werden (Was rein / was raus geschrieben wird)
  • Es muss die Festplatte überwacht werden, welche Dateien wohin geschoben werden.

Jetzt könnte der Fall eintreten, das die Software X die gerade im SnifferMode installiert wird eine bestimmte DLL ins Windows Verzeichnis kopieren will, aber feststellt das diese schon vorhanden ist und diesen Schritt überspringt.
Dann würde mein SnifferMode diesen Vorgang nicht mitbekommen und wüsste nichts von der DLL.
Bei der Zuweißung der Software auf einen Client könnte es aber sein das die DLL noch nicht vorhanden ist.

Daher sehe ich im Moment als einzige Möglichkeit es folgendermaßen zu machen:
Wenn man den SnifferMode startet, muss sich eine VM starten mit einem Möglichst nackten Windows.
In dieser VM läuft nun das eigentliche SnifferTool und ließt die Installation des Programms mit.
Ist dieses Installiert, beendet man die VM und die ServerMaschine (Host) erhält dann vom SnifferTool die benötigten Informationen und pflegt diese in seine Datenbank ein.

Beim nächsten mal muss die VM dann wieder berenigt sein, also vor jedem SnifferMode start muss das VM Image gegen ein sauberes ausgetauscht werden.

Nun hätte ich gerne eure Meinung was Ihr zu dem Projekt sagt?!

MfG
WhiteGloves

Hallo, ich heiße Hein Blöd und bin Softwareentwickler

Das ganze nennt sich automatische Softwareverteilung und ist ein FiSi Projekt.

be the hammer, not the nail!

Wieso ist das ein FiSi Projekt?
Ein FiSi Azubi würde doch niemals in der Lage sein solch eine Software zu entwicklen...

Wenn solch ein Projekt von einem FiSi gemacht wird, dann wird er das doch auf eine bestehende Software aufbauen und diese nur Nutzen / Konfigurieren.

Mir geht es aber darum diese Software selbst zu schreiben, dass soll ja das Projekt sein.

Also hälst du das eher für unpassend?

Hallo, ich heiße Hein Blöd und bin Softwareentwickler

Das Problem ist, dass du ein Projekt in dieser Groeßenordnung nicht in 70 Stunden inkl. Dokumentation realisieren kannst, das nimmt dir niemand ab.

Das ganze einzurichten, okay - aber solche Software selbst schreiben - no way.

be the hammer, not the nail!

Guten morgen White Gloves,

das mit einem Windows Server kannst du das sehr einfach per Policy erreichen.
Ein solches System selbst zu programmieren wird jeden Rahmen sprengen.
Wenn du es dir aber trotzdem antun willst 😉, dann versuch doch soetwas für Javaprogramme zu erstellen. Das gibt es nämlich noch nicht und der Windows Server kann das nur mit MSI Paketen.
Wie groß ist der Zeitrahmen für das Projekt? Ich schätze mal so 40-50 Stunden

VG
Single Malt

Ich sage es immer wieder!!! Nimm ein kleines und überschaubares Projekt. Wenn dein schriftlicher Teil die kompletten Anforderungen was Form und Gestaltung angeht einhält, dann hast du schon die Hälfte der Miete bezahlt. Desweiteren interessiert es den Prüfern nicht ob du eine Software für dies oder jenes schreibst. Das ist fast egal, Hauptsache ist das dieses Projekt in der vorgeschriebenen Zeit machbar ist und auch richtig dokumentiert ist.

Wie groß ist der Zeitrahmen für das Projekt? Ich schätze mal so 40-50 Stunden

70 Stunden inkl. kaufmaennischer Abwaegungen, Planung und ca. 12h Dokumentation.

be the hammer, not the nail!

Wie groß ist der Zeitrahmen für das Projekt? Ich schätze mal so 40-50 Stunden

70 Stunden inkl. kaufmaennischer Abwaegungen, Planung und ca. 12h Dokumentation.

Die 70h werden nur so vorbeifliegen.
Bei meinen Abschlussprojekten (Ausbildung und später Technikerschule) konnten wir den Zeitrahmen nur einhalten indem wir die Zeiten massiv überzogen und die offiziellen Zeiten gefakted haben.
Ich würde im Nachhinein dazu raten ein wirklich kleines Projekt durchzuführen und dafür an jedem Detail feilen.

Ich sehen das genau so. Ein derartiges Projekt kriegst du inkl. Planung und Doku niemals so fertig. Bei einer täglichen Arbeitszeit von 7-8h sind das nur gerade mal 9 Tage. Da musst du schon vor oder Nacharbeiten, um das zu schaffen und das dollst du ja nicht.

Als Beispiel für ein im Umfang passendes Projekt kann ich dir ja schreiben, was ich getan habe:

Ich habe letztes Jahr in meinem Abschlussprojekt eine Zusatzkomponente für Word 2007 entwickelt. Diese Komponente ließt das AD der Domaine aus und befüllt ein Worddokument mit den Persönlichen Daten. Dabei soll auch die Anpassung von mehren Dokumentvorlagen an diese Komponente und das erstellen einer Verteilungskomponente erledigt werden

Die in der Planung veranschlagten 4,42 Tage für die Realisierung wurden dabei absolut durcheinandergewürfelt und ich habe es gerade mal geschaft das Projekt abzuschließen. Nur mein Ausbilder war vom Endergebniss nicht begeistert, aber das ist eine andere Geschichte.

Trotzdem habe ich für die Betriebliche Projektarbeit 82/100 Punkten erhalten

und so stellt sich wieder einmal die Frage: Warum klappt das nicht gleich so gut?

Wenn du schon sowas machen willst dann nicht mit dieser Sniffer Geschichte. Das funkt nie.

Was du eventuell machen könntest:

  • Serverapplikation basteln der Softwarepakete bereitstellt in Form einer MSI oder EXE. (Weche dann auf einem Netzwerkshare liegen)
  • Clientapplikation welche sich die Softwarepakete vom Share zieht und silent installiert.

Dann würd das wie folgt ablaufen:

In der Serverapp PC's aus einer Liste wählen und denen ein Softwarepaket zuweisen. -> Serverapp sagt Clientapp das er sich ein Softwarepaket vom Share installieren soll. -> Clientapp startet die Installation der MSI/EXE vom Share mit silent Option.

Die meisten Installer Programme (InstallShield, Windows Installer) bieten als Parameter immer eine silent option mit an so dass der Anwender da nix von mitbekommt.

Beispiel:

\server\share\software.msi /quiet

Hallo zusammen,

gute alternative Projektvorschläge bitte nicht hier posten, sondern in dem bestehenden, aus der FAQ verlinkten Threads: [FAQ] C# Projektvorschläge (Anfänger, Schüler, Praktikanten).

herbivore

Hallo!

@WhiteGloves:
Habe selbst mal versucht, so etwas zu schreiben und kann dir nur sagen, dass 70h dafür definitiv nicht ausreichend sind. Eher das 10fache. Du musst nämlich für sämtliche Überwachungsobjekte (Registry, Dateisystem, Prozesse) einen eigenen Windows-Hook schreiben, da du nur so zuverlässig feststellen kannst, welcher Prozess gerade was macht.

Nobody is perfect. I'm sad, i'm not nobody 🙁

Wieso ist das ein FiSi Projekt?
Ein FiSi Azubi würde doch niemals in der Lage sein solch eine Software zu entwicklen...

Das fass ich nun schon fast als Beleidigung auf 😉

Ich rate ebenfalls von deinem Projekt ab.
Dir wird die Zeit niemals ausreichen, weil Du immer auf irgendwelche Probleme treffen wirst, die nicht mal eben in 2 Stunden zu klären sind, wenn Du so in die Tiefe des System gehen musst, wie es hier der Fall ist.

Hallo,

auch von meiner Seite aus muss ich sagen, als Abschlussprojekt völlig überladen.

Als Tipp: Dass du für deine Firma etwas entwickeln willst kommt schonmal gut an. Jetzt muss es aber nicht unbedingt etwas für die Firma sein, sondern du kannst dich auch an irgendwelchen Projekten beteiligen. Ich habe Beispielsweise eine Kundenverwaltung für unsere Software entwickelt und dann eben den Teil vorgetragen. Das war schon umfangreich genug glaube mir. Und wenn du 10 Stunden länger brauchst macht das i.d.R. auch nichts, schreib einfach dazu, dass du 2 Stunden länger gebraucht hast und gib einen triftigen Grund an 😃

Es ist toll jemand zu sein, der nichts von der persönlichen Meinung Anderer hält. - frisch-live.de