Praktikum aus Programmierung

 

JAVA – Projekt (WS 2004/2005)

 

Martina Maida (Mat.nr.: 9625308)

 

 

 

CODE

 

Problembeschreibung

 

Das Ziel dieses Projekts ist die Implementierung eines Prototyps eines Terminverwaltungssystems um Besprechungen zu koordinieren, wobei das Augenmerk darauf liegt, zu überprüfen ob bei an den Terminen teilnehmenden Personen eine zeitliche Überschneidung stattfindet. Als Anwendungsfall aus der Realität könnte etwa die Organisation von Meetings oder Seminaren in einer Firma hergenommen werden.

 

Die Ausgangslage ist, dass gewisse Daten (z.B. Teilnehmer, Räumlichkeiten und Objekte zur Ausstattung) bereits im System registriert sein sollten bzw. bei der ersten Inbetriebnahme des Programms übertragen werden können. Dieser Datensatz ist über Menüpunkte erweiterbar und stellt auch die Grundlage für die Auswahl etwa bei der Initiierung eines neuen Termins dar.

Außerdem wird angenommen, dass das Programm permanent läuft und dadurch die Daten immer zur Verfügung stehen.

 

Es soll eben möglich sein, Meetings im System anzulegen. Zu jedem Meeting gehören dann gewisse Attribute, wie etwa ein Thema, ein Datum bzw. eine Uhrzeit, eine Räumlichkeit, ein eventuelles Hilfsmittel für Präsentationen und die teilnehmenden Personen. Der Benutzer sucht sich aus angelegten Listen gewisse entsprechende Attribute aus.

Weiters gibt es einen Menüpunkt um Termine zu löschen. Dies erfolgt über die Angabe der Indexnummer des betroffenen Meetings.

Bei diesen beiden Vorgängen wird immer überprüft, ob es zu Terminkollisionen bei den teilnehmenden Personen kommt bzw. ob diese durch Löschungen von Terminen aufgehoben werden. Ich denke, aus der Praxis gesehen, ist es sinnvoll nicht gleich das ganze Meeting zu streichen, wenn etwa ein Teilnehmer eine zeitliche Überschneidung mit einem anderen Termin hat, sondern es ist besser im System kenntlich zu machen, dass der Termin nicht 100% für alle fixierbar ist.

Außerdem gibt es auch noch einen Menüpunkt um sich alle angelegten Besprechungstermine anzeigen zu lassen.

Falls das Programm tatsächlich beendet werden soll, gibt es schließlich auch hierfür einen Menüpunkt.

 

Das Projekt ist nach dem objektorientierten Konzept, in der Programmiersprache JAVA und unter der Benutzung des „Singleton-Patterns“ implementiert.

 

 

USE-CASE DIAGRAMM

 

                           
Klassendiagramm

 

 

 

Sequenzdiagramm für den Vorgang „Ausstattung in System einfügen“

 

 

 

Sequenzdiagramm für den Vorgang „Person in System einfügen“

 

 

 

 

 

 

Sequenzdiagramm für den Vorgang „Raum in System einfügen“

 

Sequenzdiagramm für den Vorgang „Besprechung neu anlegen“

 

 

Sequenzdiagramm für den Vorgang „Besprechung löschen“

 

 

 

 

Sequenzdiagramm für den Vorgang „Besprechungen anzeigen“

 

 

Beschreibung der Klassen

 

 

public class Person

 

Diese Klasse beinhaltet den Namen der Person und alle dessen Termine (Vector meetings). Es stehen hier Methoden zur Verfügung um entsprechende Einträge anzulegen bzw. zu löschen.

Weiters findet hier die Überprüfung statt, ob es bei den Meetings einer Person zu zeitlichen Kollisionen kommt.

 

public class Room

 

Diese Klasse vertritt den Raum, wo Meetings stattfinden und weist einen Namen zu.

 

public class Resource

 

Diese Klasse repräsentiert eine Ausstattung bzw. ein Hilfsmittel, welches bei Besprechungen verwendet werden kann und weist einen Namen zu.

 

public class TimeFrame

 

Mit Hilfe der Klasse java.util.GregorianCalendar wird hier der zeitliche Rahmen des Meetings festgelegt, also das Beginn- und Enddatum und die Beginn- und Enduhrzeit.

Weiters findet hier in der Methode „public boolean checkIfTimeframesOverlap(TimeFrame tFrame)“ die Überprüfung auf zeitliche Kollisionen statt, welche über die Klasse Person in „public boolean checkMeetings(Meeting meeting)“ aufgerufen wird.

 

public class Meeting

 

Diese Klasse vertritt ein Meeting bzw. einen Termin. Jedes Meeting hat ein Thema, einen Zeitrahmen, einen Raum, wenn gewünscht eine Ausstattung und hat mindestens 2 Teilnehmer. Außerdem wird dem Meeting ein Status zugewiesen, an dem ersichtlich ist, ob der Termin von allen Teilnehmern wirklich wahrnehmbar ist oder ob jemand eine zeitliche Kollision hat.

 

public class MeetingControl

 

Hier werden die Personen, Räume, Ausstattungsobjekte und schließlich die Meetings (mit Hilfe von Vectoren) verwaltet. Die Implementierung des Singleton-Patterns soll sicherstellen, dass nur eine Instanz dieser Klasse erzeugt wird.

 

public class UserInterface

 

Diese Klasse stellt die eigentliche Schnittstelle zum User dar. Es wird ein Menü ausgegeben, worüber die Interaktion erfolgt und der Benutzer entsprechende Aktionen wählen kann. Nach deren Ausführung wird automatisch wieder das Menü angezeigt.

Die hierüber eingegebenen Daten werden dann in der Klasse MeetingControl verarbeitet.

 

 

 Anleitung für den Benutzer

 

Die Bedienung des Programms erfolgt über das textbasierte Menü, welches nach jeder abgeschlossenen Aktion wiederkehrt. Die gewünschten Vorgänge sind über die Indexnummern des Menüs zu wählen und danach werden die nächsten Schritte durchgeführt. 

Grundsätzlich ist gedacht, dass das Programm einmal gestartet wird und dann immer im Hintergrund läuft.

Für eine nähere Beschreibung der Menüpunkte, siehe Abschnitt „Problembeschreibung“

 

 

Wartung

 

Wartungsarbeiten sollten prinzipiell nicht notwendig sein. Allerdings ist eine mögliche, zukünftige Erweiterung der Programmfunktionen zu überdenken.