UML-Klassendiagramm Java Zeiterfassungsprogramm

UML- Klassendiagramm - (programmieren, Java, ausarbeitung)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Also erstmal finde ich es sehr gut, dass du dir erst über das Design einen Kopf machst und nicht sofort in die Implementierung springst.

Da es um Zeit geht, solltest du dir außerdem überlegen, ob du dein Projekt nicht mit Java 8 umsetzen willst. In der neuen Version wurde alles, das mit Zeit zu tun hat, überarbeitet. (siehe Paket "java.time")

Zu deinem Diagramm:

  • Die Konstruktoren der Klassen sollten auch als solche zu erkennen sein.
  • Anstatt eine Methode z.B. "usernameAuslesen()" zu nennen, würde ich sie "getUsername()" nennen (get- und set-Methoden sind üblich). Es ist Java-Konvention Methodennamen (außer Konstruktoren) in "lower camel case" zu schreiben.
  • Deine Zeiterfassung braucht unbedingt Eigenschaften, um festzustellen von welchem Mitarbeiter auf welches Projekt gebucht wurde. Je nach Anwendungsfall braucht der Mitarbeiter auch eine Eigenschaft, welche Projekte er betreut.
  • Ich kenne die Struktur deiner Firma nicht. Ist es wirklich so, dass 1 Mitarbeiter nur 1 Projekt hat? Und selbst wenn ja - sollte man hinterher verfolgen können, welche (abgeschlossenen) Projekte ein Mitarbeiter je betreut hat? (Stichwort: Temporal Pattern)
  • Die "gebuchte Zeit" lässt sich einfach aus Start- und Endzeitpunkt berechnen. Ich würde diesen Wert nicht extra speichern.

Ansonsten würde mich noch das Tool interessieren, mit dem du das gemacht hast. Ich bin mit nämlich ziemlich sicher, dass es nicht der UML-Notation entspricht, wenn die Klassenbezeichnungen pink hinterlegt sind. ;-)

Huhu,

Danke erstmal für deine Antwort! Habe ein paar Fragen dazu…

1.) Macht es einen großen unterschied Java 8 zu benutzen? und gibt es bei der Nutzung große unterschiede?

2.) Das mit den get- und Set- Methoden hatte ich schon einmal gehört aber jetzt gibt das sinn ^^danke dafür ich werde es nochmals versuchen umzuschreiben macht ja auch sinn!

3.) Das Programm ist so geplant dass jeder PC für sich ist und nicht alle miteinander vernetzt sind das heißt dass ich für mich nur meine Projekte und die Zeit darauf erfasse. Dabei ist es irrelevant wie viele Projekte Ich habe :)

4.) Also kein extra Attribut machen für die gebuchte Zeit sondern später einfach berechnen und in die DB speichern ?

Übrigens habe ich das UML Klassendiagramm mit dem Java-Editor gemacht, da ich kein anderes Tool gefunden habe welches mich angesprochen hat..

MFG Krabbelfiech

0
@Krabbelfiechle

1.) Es stehen dir neue Klassen und Funktionen zur Verfügung und ein paar alte, als "deprecated" gekenntzeichnete werden entfernt. Die neuen Zeit-Klassen sollen verständlicher und einfacher zu benutzen sein, als die alten.

3.) Also ist das Programm (im Moment) nur für dich? Ja, dann brauchst du es natürlich nicht, da ja eh alle Projekte zu dir gehören.

4.) Im Prinzip kannst du alles speichern, du musst dann nur aufpassen, dass die Daten konsistent sind. Also wenn du den Endzeitpunkt änderst, muss die Dauer auch geändert werden. Die Art der Speicherung kannst du auch (etwas) davon abhängig machen wie du die Daten eingibst.

0
@JavaTheHutt

Habe mal mein neues UML als neuen Beitrag hier rein geschrieben.

Wo ich jetzt genau die Funktion unterbringen kann zum Exportieren hab ich leider noch nicht so ganz verstanden..

0

Dafür muß man nicht unbedingt programmieren!

Eine geschickte Datenbank oder Exceltabellen genügen … Außerdem geht das schneller …

  1. Im Prinzip geht das mit allen Java-Versionen ab Java 6 aufwärts. Die aktuellste Version sollte allerdings die beste sein, weil mit jeder neuen Version zahlreiche neue Frameworks hinzukommen, die man in älteren Versionen nicht immer nutzen kann.
  2. Zeiterfassung ist auch ein sehr brisantes und heikles arbeitsrechtliches Thema. Also solltest du hier auch diese Aspekte beim Programmieren bedenken. Insbesondere können dir die KollegInnen und dein Chef große Probleme bereiten, wenn Sie feststellen, dass du ohne!! Auftrag ihre Zeiten erfasst.
  3. Es ist hervorragend, dass du, bevor du loslegst, dir erst einmal einen Plan und ein UML-Klassendiagramm zurechtlegst, mit dem du dann weitermachen willst.
  4. Lies' dir mal die Bücher von Robert C. Martin zu „Clean Code“ durch. http://www.amazon.de/Robert-Martin-Clean-Code-Collection-ebook/dp/B00666M59G/ref=sr_1_5?ie=UTF8&qid=1402980454&sr=8-5&keywords=clean+code Als eBook sind die deutlich preiswerter …
  5. Die Beziehungen zu Projekten würde ich vorerst herausnehmen, weil erst einmal die Zeiten richtig und korrekt erfasst werden sollten. Außerdem könnte das Problem bestehen, dass viele KollegInnen mehrere Projekte gleichzeitig bearbeiten und dann kannst du wohl gar nicht soweit differenzieren, wann der betreffende Kollege welches Problem bearbeitet. Wenn ich nochmals Punkt 2 in Erinnerung rufe, kannst du, sofern du dieses Projekt rein privat zu Übungszwecken machst, schlecht die KollegInnen fragen. Insbesondere könnte der Chef plötzlich auf die Idee kommen, die Zeiten aller MitarbeiterInnen genau!! erfassen zu wollen. Spätestens dann gibt es richtig Probleme in deiner Firma und man wird dich richtig mobben!

PS. Der Berliner Flughafen ist übrigens ein aktuelles Projekt, bei dem man sehen kann, wie Projekte trotz Planung deutlich teurer werden als geplant …

Wie willst du eigentlich die 1000 Unterprojekte, Bauabschnitte usw. eines solchen Projektes in deinem Projekt-Plan einpflegen?

Genau deswegen riet ich vorerst zur reinen Zeiterfassung …

Bei meinem ehemaligen AG war ich sogenannter Zeitbeauftragter. D.h. ich sollte die Fehlzeiten der KollegInnen erfassen. Dazu war ein Programm hinterlegt, das jeden MA zunächst als anwesend erfasste und meine Aufgabe bestand im Erfassen der Fehlzeiten der MA: Urlaub und Krankheit waren die Masse der Daten. Dann gab es Sonderfreizeiten für Amtsbesuch, Arztbesuch, Hochzeit, Geburten, Todesfälle … Und natürlich musste auch Mehrarbeit ggf. erfasst werden …

1
@wolfgang1956

Naja,

Mein programm ist eher dafür gedacht dass jeder für sich aufschreiben kann wie viel aufwand er an einem Projekt verbringt.. Mehr soll es eigentlich nicht sein wenn jetzt mal jemand krank ist dann gibt er für diesen Tag ja auch keine zeiten ein :) !

0
@Krabbelfiechle

Es bleibt trotzdem die Frage, ob deine KollegInnen das Programm akzeptieren werden – auf die arbeitsrechtlichen Fragen gehst du hier gar nicht ein!! Immerhin kann der Chef daraus Rückschlüsse ziehen, wenn die KollegInnen hier Zeiten eintragen.

Wenn sie nichts eintragen, ist es de facto für die Katz'

0
@wolfgang1956

Huhu,

Erstmal ist fragwürdig ob das Programm in unserer Firma verwendet wird. Ich möchte es aufjedenfall benutzen um einfach aufzuschreiben wie lange ich für welches Projekt arbeite. Ich habe meinem Chef ja das Projekt vorgeschlagen ( da er ja möchte das ich in Java fit werde ) und er hat daraufhin zugestimmt. Was ich nun darauf mache liegt ja jetzt in meiner Hand. Aber mir fehlt einfach noch so ein bisschen der richtige einstieg. Das Programm im groben kann ich mir schon zusammendenken da ich davor viel mit C# gemacht habe.

0
@Krabbelfiechle

Dann sieh' dir auch mal Apple's Dokumentation zu Core Data an. Das System erlaubt das Erstellen von Datenbanken über Objekt-Graphen. Da hinken C# und Java um Lichtjahre hinterher!

Das ist sozusagen schon „integriertes“ UML …

0

PPS

Es gibt zahlreiche Projektverwaltungen für OS X, Linux und Windows. Wenn dies unbedingt „eingebaut“ werden soll, kannst du dir dort „Inspirationen“ holen …

1