53
Gottfried Wilhelm Leibniz Universität Hannover Fakultät für Elektrotechnik und Informatik Institut für Praktische Informatik Fachgebiet Software Engineering Entwurf und Implementierung eines Projektmanagement-Werkzeuges Bachelorarbeit im Studiengang Informatik von Toan Vu Prüfer: Prof. Dr. Kurt Schneider Zweitprüfer: Dr. rer. nat. Arne Meier Betreuer: Dipl.-Math. Raphael Pham Hannover, 4. September 2012

Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Embed Size (px)

Citation preview

Page 1: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Gottfried Wilhelm

Leibniz Universität Hannover

Fakultät für Elektrotechnik und Informatik

Institut für Praktische Informatik

Fachgebiet Software Engineering

Entwurf und Implementierung eines

Projektmanagement-Werkzeuges

Bachelorarbeit

im Studiengang Informatik

von

Toan Vu

Prüfer: Prof. Dr. Kurt Schneider

Zweitprüfer: Dr. rer. nat. Arne Meier

Betreuer: Dipl.-Math. Raphael Pham

Hannover, 4. September 2012

Page 2: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten
Page 3: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

III

Zusammenfassung

Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten wie z.B. definierter

Anfang und definiertes Ende, Meilensteine, Deadlines, Verteilung von Dokumenten bzw.

Ressourcen. In einem Projekt werden teilnehmende Personen unterschiedliche Aufgaben

wahrnehmen, Ergebnisse zu verschiedenen Zeitpunkten abliefern und eine spezifische

Funktion haben. In der Regel wird die Koordination für das restliche Arbeitsteam von

einem Projektleiter geleistet. Um dieser Aufgabe gerecht zu werden, wird ein hohes Maß

an Kommunikation verlangt, was in der Gegenwart oft per E-Mail erledigt wird. In der

Industrie werden verschiedene Werkzeuge verwendet, um den Projektleiter zu

unterstützen. Das sogenannte Projektmanagement-Werkzeug bildet den

durchzuführenden Prozess (Termin, Phasen, Deliverables u.ä.) in einem Modell ab und

stellt diesen abstrahiert dar, wodurch der Projektleiter das Projekt anschaulich planen

kann. Im Rahmen dieser Arbeit wurde ein Projektmanagement-Werkzeug entwickelt, mit

dem der SE-interne Prozess des jährlichen Softwareprojektes abgebildet wird. Die dazu

entwickelte Software ermöglicht das Versenden vorgefertigter E-Mails an eine bestimmte

Gruppe von Personen zu festgelegten Zeitpunkten. Die Prozesse können mittels eines

Gantt-Diagramms anschaulich dargestellt werden. Durch das Projektmanagement-

Werkzeug können alle an dem Softwareprojekt beteiligten Personen erfasst und verwaltet

werden. Die Arbeit präsentiert eine Umsetzung der beschriebenen Funktionalität durch

das Konzept der Aspektorientierten Programmierung.

Page 4: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Inhaltsverzeichnis

IV

Inhaltsverzeichnis

Abbildungsverzeichnis .................................................................................................. VI

Abkürzungsverzeichnis ................................................................................................ VII

1 Einleitung ..................................................................................................................1

1.1 Problemstellung .........................................................................................................1

1.2 Ziel und Aufbau der Arbeit .......................................................................................2

2 Konzepte ....................................................................................................................4

2.1 Softwareprojekt ..........................................................................................................4

2.2 Grundlagen ..................................................................................................................7

2.2.1 Definitionen ...................................................................................................7

2.2.2 Personalplanung ..........................................................................................8

2.2.3 Zeitplanung ...................................................................................................8

2.3 Analyse von verschiedenen Werkzeugen .............................................................9

2.3.1 PHProject ......................................................................................................9

2.3.2 OpenProj .....................................................................................................11

2.3.3 Microsoft Project ........................................................................................12

3 Anforderungen ........................................................................................................15

3.1 Anforderungen .......................................................................................................... 15

3.2 Anwendungsfälle ...................................................................................................... 17

3.2.1 Personalverwaltung ....................................................................................18

3.2.2 Aktivitätsverwaltung ...................................................................................21

3.3 Qualitätsanforderungen .......................................................................................... 22

3.3.1 Benutzbarkeit ..............................................................................................22

3.3.2 Wartbarkeit ..................................................................................................23

3.3.3 Zuverlässigkeit ...........................................................................................23

3.4 Risiken ........................................................................................................................ 24

4 Projektumsetzung ...................................................................................................26

4.1 Ergebnisse der Prototypenentwicklung .............................................................. 26

4.2 Software ..................................................................................................................... 31

Page 5: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Inhaltsverzeichnis

V

4.3 Struktur des Modells................................................................................................ 31

4.3.1 Beziehungen ...............................................................................................32

4.3.2 Pakete ..........................................................................................................33

4.3.3 Klassenstruktur ..........................................................................................35

4.4 Implementierung....................................................................................................... 38

4.4.1 Laden von Objekten ...................................................................................38

4.4.2 Inhalt der Emails mit Schlüssel-Worten als Platzhaltern auswerten .......39

5 Erweiterungsmöglichkeiten ...................................................................................41

6 Zusammenfassung und Ausblick ..........................................................................42

Literaturverzeichnis .......................................................................................................44

Page 6: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Abbildungsverzeichnis

VI

Abbildungsverzeichnis

Abbildung 1: Beispiel für den Ablauf des Softwareprojekts .................................................4

Abbildung 2: Screenshot eines Beispiels für Prozessverwaltung von entwickeltem PMW ..9

Abbildung 3: Screenshot für PHProjekt ............................................................................10

Abbildung 4: Screenshot für OpenProj .............................................................................12

Abbildung 5: Screenshot für MS Project ...........................................................................14

Abbildung 6: Zusammenhang von wichtigen use-cases ...................................................18

Abbildung 7: Screenshot für die Informationsverwaltung einer Studierenden ...................19

Abbildung 8: Screenshot für die Verwaltung eines Teams ...............................................20

Abbildung 9: Anwendungsfalldiagramm der Personalverwaltung .....................................20

Abbildung 11: Anwendungsfalldiagramm der Aktivitätsverwaltung ...................................22

Abbildung 12: Screenshot für SQL-Typ 1 .........................................................................28

Abbildung 13: Screenshot für SQL-Typ 2 .........................................................................29

Abbildung 14: Screenshot für SQL-Typ 3 .........................................................................30

Abbildung 15: ER-Diagramm ...........................................................................................32

Abbildung 16: Paketezusammenhang ..............................................................................33

Abbildung 17: Model-View-Controller in Personal-Paket ..................................................34

Abbildung 18: Klassenstruktur von Entities ......................................................................36

Abbildung 19: Interface IView und konkrete Klasse, die dieses Interface implementieren 37

Page 7: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Abkürzungsverzeichnis

VII

Abkürzungsverzeichnis

API

CSV

GPL

GUI

HSQL

IMAP

LID

PHP

PMW

POP3

SE

SMTP

SQL

WYSIWYG

Application Programming Interface

Comma separated values

General Public License

Graphical User Interface

Hyper Structured Query Language

Internet Message Access Protocol

Light-Weight Documentation of Experiences

Personal Home Page

Post Office Protocol Version 3

Projektmanagement-Werkzeug

Simple Mail Transfer Protocol

Software Engineering

Structured Query Language

What you see is what you get

Page 8: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

1 Einleitung

1

1 Einleitung

Bevor das Problem der vorliegenden Arbeit dargestellt wird, soll die Softwareprojekt-

Veranstaltung des SE-Instituts an der Hannoveraner Universität erläutert werden, in deren

Rahmen das Projektmanagement-Werkzeug entwickelt wird. Im Anschluss daran wird in

das Projekt eingeführt, bei dem das Thema der Arbeit praktisch umgesetzt worden ist.

Dabei werden auch die konkreten Probleme beschrieben, welche die Notwendigkeit der in

dem Projekt entwickelten Software begründen.

1.1 Problemstellung

Das Software-Projekt ist eine jährlich angebotene Veranstaltung des SE-Instituts der

Leibniz-Universität Hannover. Die Studierende sollen durch diese Veranstaltung

praktische Erfahrungen und Einblicke in die Entwicklung von Software sammeln und

erhalten. Es soll jeweils über jedes Projekt bzw. Thema ein Softwareprodukt in einem

zeitlich begrenzten Rahmen erstellt werden. Besonderer Wert ist auf den

Softwareentwicklungsprozess zu legen, wodurch ein Bewusstsein für diejenigen Probleme

geweckt werden soll, die bei der Entwicklung von Software auftreten können. Dazu sollen

viele Verfahren und Techniken, die in der Vorlesung „Softwaretechnik und

Softwarequalität“ behandelt wurden, praktisch angewendet werden.

Um den Verwaltungsaufwand für alle Projekte in der Veranstaltung zu erleichtern, wird die

Unterstützung von Werkzeugen benötigt. Der Verwaltungsaufwand resultiert aus den

folgenden Punkten:

Verwaltung von Studierenden und ihren Teams: Zur Veranstaltung werden die

Informationen aller teilnehmenden Studierenden gesammelt, wobei die Studierenden

in Abhängigkeit von diesen Informationen auf Projekte verteilt werden. Um

Studierende auf Projekte verteilen zu können, muss für jedes Projekt ein Team

gebildet werden. Die Sammlung solcher Informationen, die Bildung von Teams und

die Verwaltung von Studierenden mit den dazu gehörenden Teams machen den

Aufwand aus, der für die Veranstaltung reduziert werden kann.

Wiederkehrende Kommunikation: Die Softwareprojekt-Veranstaltung wird alle zwei

Semester angeboten und läuft jeweils in ähnlicher Reihenfolge mit Einführung,

Analyse, Entwurf, Implementierung und Abnahmetest ab. In jedem Prozess wird die

wiederkehrende Kommunikation zwischen Projektleiter und Studierenden

durchgeführt. In der Kommunikation werden Basis-Emails mit gleichen Inhalten an die

Studierenden geschickt. Nur solche Studierenden sind neue Elemente, die für die

Kommunikation mit Email in jedem Jahr angepasst werden. Die neu zu verfassenden

Page 9: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

1 Einleitung

2

Emails mit ähnlichen Inhalten erzeugen den Aufwand, der mit einem Werkzeug

erleichtert werden kann. Mit dem Werkzeug kann der Inhalt der Email vorher

eingestellt werden.

Verwaltung von Prozessen: Die Prozesse im Laufe der Softwareprojekt-

Veranstaltung sollten verwaltet werden, damit man immer die Übersicht über die

gesamte Veranstaltung hat und die Prozesse verfolgen kann.

Zur Arbeitserleichterung soll daher ein Projektmanagement-Werkzeug (PMW) entwickelt

werden. Vor der Entwicklung des Werkzeuges sollen folgende auf dem Markt im

Projektmanagement eingesetzte Werkzeuge analysiert werden.

PHProject

OpenProj

MS Project 2007

Das PHProject gehört zur Gruppe der webbasierten Produkten, während OpenProj zur

Familie der Open Source-Software und MS Project zur Familie des Marktführers und

kostenpflichtigen Software zählt. Durch die Analyse von möglichst ähnlichen Werkzeugen

können die wichtigsten Funktionen, die zur Unterstützung der Verwaltung einer

Softwareprojekt-Veranstaltung dienen, von einem allgemeinen Projektmanagement-

Werkzeug abgegrenzt werden.

1.2 Ziel und Aufbau der Arbeit

Das Ziel der vorliegenden Arbeit ist es, einen Literaturüberblick über die Konzepte,

Funktionen und Instrumente des Projektmanagement-Werkzeuges zu geben und

anschließend ein eigenes Projektmanagement-Werkzeug zu entwickeln, das die

Softwareprojekt-Veranstaltung unterstützt. Dabei wird der Schwerpunkt auf das PMW im

Hinblick auf das aktuell vorherrschende PMW-Verständnis gelegt. Die Hauptaspekte, die

in dieser Arbeit näher erläutert werden, sind:

1. das Verständnis von Projektmanagement-Tools

2. Analyse der bereits eingesetzten Projektmanagement-Tools

3. Iterative Entwicklung eines Projektmanagement-Tools

Die vorliegende Arbeit gliedert sich in sechs Kapitel. Kapitel 1 beginnt mit der Einleitung,

die die Problemstellung, das Ziel und den Aufbau der Arbeit umfasst. In Kapitel 2 wird

zunächst die Softwareprojekt-Veranstaltung genauer erläutert, um danach die Grundlagen

Page 10: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

1 Einleitung

3

und Konzepte in Bezug auf die Softwareprojekt-Veranstaltung zu behandeln. In Kapitel 3

werden die Schritte zu den einzelnen Anforderungen skizziert. Die wichtigsten

Anforderungen eines Projektmanagement-Werkzeuges werden dabei ausführlich

beschrieben. Außerdem sollen hier auch die Risiken analysiert werden.

In Kapitel 4 werden zuerst die Ergebnisse von Prototypen und anschließend die Struktur

des Programms erläutert. Die Beziehungen zwischen Entities und die Paketeverteilung

werden mit Beispielen erklärt werden. Dazu werden die Prototypen untersucht und ihre

Ergebnisse analysiert. Danach wird die Realisierung der wichtigsten Schritte der

Applikation anhand konkreter Beispiele erläutert. Gegenstand von Kapitel 5 sind dann die

verschiedenen Erweiterungsmöglichkeiten. In Kapitel 6 wird ein Fazit aus den

Ausarbeitungen gezogen. Darüber hinaus werden Vorschläge und Ideen für die

zukünftige Arbeit im Bereich des Projektmanagement-Werkzeuges formuliert.

Page 11: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

4

2 Konzepte

In diesem Kapitel wird zuerst der Ablauf der Softwareprojekt-Veranstaltung beschrieben,

bevor dann die Begriffe und die Aspekte von Projektmanagement im Bezug auf die

Softwareprojekt-Veranstaltung erläutert werden. Danach werden drei auf dem Markt

eingesetzte Projektmanagement-Werkzeuge untersucht.

2.1 Softwareprojekt

Wie in der Einleitung kurz beschrieben, ist das Softwareprojekt eine

Veranstaltung, die von SE-Institut jährlich angeboten wird. Die ganze

Veranstaltung wird von der sogenannten „Fungate“-Firma verwaltet. Jeder

Studierende hat die Rolle von Mitarbeitern, und der Betreuer übernimmt entweder

die Funktion des Coachs oder des Kunden. Der Ablauf des gesamten Projekts

wird mit folgenden Prozessen beschrieben (vgl. Abbildung 1).

Abbildung 1: Beispiel für den Ablauf des Softwareprojekts

Quelle: Folien vom Softwareprojekt beim SE-Institut an der LUH.

Vorbereitung vor dem Beginn der Veranstaltung: Wie oben kurz beschrieben, wird

für jedes Projekt bzw. Thema ein Software-Produkt erstellt. Die Themen werden vor

Beginn der Veranstaltung überlegt und ausgewählt. Danach wird für jedes Thema ein

Mitarbeiter vom SE-Institut ausgesucht, um zum Thema beizusteuern. Die

Page 12: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

5

organisatorischen Fragen wie Raumreservierung, Folienvorbereitung und Planung der

Einführungsveranstaltung müssen (natürlich) auch erledigt werden. Danach werden

alle im Laufe der Veranstaltung verwendeten Werkzeuge wie etwa NetQGate1 und

Registrierungstool in den Startzustand gebracht.

Einführung: Zum Start der Veranstaltung findet die Einführungsveranstaltung statt, in

der die ausgewählten Themen nacheinander vorgestellt werden. Außerdem werden

die organisatorischen Fragen und Rahmenbedingungen, unter denen die

Studierenden an der Veranstaltung teilnehmen dürfen, erklärt. Im Laufe der

Veranstaltung haben Studierende die Möglichkeit, allgemeine Fragen zum

gewünschten Thema sowie zum Ablauf des Projekts zu stellen.

Anmeldung: Unmittelbar nach der Einführungsveranstaltung wird der

Anmeldungsprozess ausgeführt. Die Studierenden, die an der Veranstaltung

teilnehmen möchten, müssen sich bei dem vom SE-Institut bereitgestellten System

registrieren. Durch das Anmeldungssystem werden Informationen aller Studierenden

als Kriterien für die Gruppeneinteilung gesammelt. Jeder Studierende hat bestimmte,

vorher definierte Informationstypen wie zum Beispiel Name, Matrikelnummer, Email,

belegte Veranstaltungen, Erfahrungen usw. Jeder Studierende darf zwei von den

vorgestellten Themen wählen. Die Mitarbeiter des SE-Instituts werden auf Grundlage

der Erfahrungen, Fähigkeiten und Wünsche jedes Studierenden und mit Blick auf den

jeweiligen Schwierigkeitsgrad der Themen die Studierenden den Gruppen zuteilen.

Jede Gruppe wird als ein Team gekennzeichnet.

Willkommen bei Fungate: Der Anmeldungsprozess endet mit der Gruppeneinteilung.

Jeder Studierende gehört zu einem Team bzw. zu einer Gruppe und bekommt

dadurch eine „Willkommen“-Email, dessen Inhalt jedes Jahr ähnlich ist. In jedem

Team werden zwei Personen nach Vereinbarung freiwillig ausgewählt. Eine spielt die

Rolle des Projektleiters, der direkt Kontakt mit dem Kunden und Betreuer aufnimmt

und danach die Arbeit an andere Mitglieder nach Vereinbarung verteilt. Die andere

Person spielt die Rolle des Qualitätsbeauftragten, der für die Qualität des Produkts

zuständig ist. Er kümmert sich um alle zu dem Projekt gehörenden Dokumente und

die Checkliste.

Analyse: Nachdem die Studierenden die Mitglieder ihrer Gruppe kennengelernt

haben, werden alle Themen mit einem systematischen Vorgehen in Prozessen eines

gewöhnlichen Vorgehensmodells aus der Softwaretechnik bearbeitet. Die einzelne

Software Engineering-Methode wie etwa die objektorientierte Analyse soll in diesem

1 Ein durch die Bachelorarbeit beim SE-Institut erstelltes Programm.

Page 13: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

6

Prozess angewendet werden, um das Thema systematisch zu erschließen [SWT-

Zuser, S. 49]. Die Phase soll sich in einem bestimmten Zeitraum abspielen, in dem

eine Anforderungsspezifikation erstellt werden muss. Am Ende jeder Phase gibt es ein

Quality Gate, bei dem anhand vorher definierter Erfüllungskriterien über die Freigabe

des nächsten Projektprozesses entschieden wird. Die Abbildung der realen Quality

Gate-Sitzungen in einen virtuellen Quality Gate-Prozess wird mit Hilfe einer durch die

Bachelorarbeit am Institut für Praktische Informatik an der Leibniz-Universität

Hannover erstellten Webanwendung realisiert2. In dieser Phase wird die

Anforderungsspezifikation als Erfüllungskriterium von dem Betreuer geprüft. Wenn die

Arbeit erfolgreich ausgeführt worden ist, wird die nächste Entwurfphase freigeschaltet.

Im Misserfolgsfall darf jede Gruppe einmal wiederholen. Wenn auch die Wiederholung

nicht erfolgreich war, wird die Gruppe sofort von der Veranstaltung disqualifiziert.

Entwurf: In dieser Phase hat jede Gruppe die Möglichkeit, einen „klassischen“

Entwurf oder Prototyp auszuwählen. Vor dem zweiten Quality Gate werden

Walkthroughs3 durchgeführt, bei dem jede Gruppe die Möglichkeit hat, mittels der

Vorstellung ihrer Arbeit ein Feedback von Seiten der anderen Gruppen und

Gutachtern zu erhalten. Das Erfüllungskriterium für den zweiten Quality Gate sind die

Dokumente, die entweder Entwürfe oder Prototypen beschreiben. Pseudo Code oder

Codes der Prototypen gehören ebenfalls dazu.

Implementierung und Test: Das zu entwickelnde Programm wird in dieser Phase

kodiert. Anschließend wird das Programm getestet. Die Testmethoden der Software

Engineering wie Äquivalenzklassen oder Grenzwertanalyse sollen in dieser Phase

verwendet werden. Bei dem Quality Gate muss ein lauffähiges Programm erstellt

werden.

Inbetriebnahmephase: Nach der Implementierungsphase wird das von jeder Gruppe

entwickelte Software-Produkt von dem Betreuer in Betrieb genommen und danach

abgenommen.

LIDs:4 Kurz vor dem Abschluss wird das LID durchgeführt, um die Erfahrungen der

Studierenden zu sammeln. Darüber hinaus haben die Studierenden die Möglichkeit,

den Ablauf des ganzen Projekts anzusehen. Viele Aspekte wie z.B. Typ, Häufigkeit,

Ziele, Erwartungen, Hoffnungen und Risiken der Aktivitäten werden bewertet und

2 Greive, J., Entwurf und Implementierung eines Systems zur netzbasierten. S. 1 ff.

3 Beschreibung des Verifizierens von Algorithmen und Quellcode. Dadurch soll festgestellt werden, ob der Algorithmus bzw. Quellcode den gestellten Anforderungen genügt. 4 Ein Modell zur systematischen Software-Prozessverbesserung.

Page 14: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

7

dokumentiert, und die Berichte werden verwendet, um die nächste Veranstaltung zu

verbessern5.

Um die Veranstaltung erfolgreich zu bestehen, muss jede Gruppe alle Quality Gates

erfüllen und an der Abschlussveranstaltung teilnehmen.

2.2 Grundlagen

2.2.1 Definitionen

Im Folgenden werden kurz zwei Begriffe definiert und erläutert, die in dieser

Bachelorarbeit verwendet werden.

Das Projekt ist ein Vorhaben, das in seiner Wesenheit durch eine Einmaligkeit der

Bedingungen in ihrer Gesamtheit gekennzeichnet ist, z.B. durch Zielvorgabe, zeitliche,

finanzielle, personelle und andere Begrenzungen, Abgrenzungen gegenüber anderen

Vorhaben und projektspezifische Organisation [DIN-Norm 69901].

Der Begriff „Projekt“ wird von Josef Schwab anders interpretiert. Nach ihm existiert das

Projekt nur, wenn ein Planungsbedarf vorhanden ist. Ohne Planungsbedarf gibt es kein

Vorhaben zu planen und durchzuführen. Vielmehr wird die Projektorganisation aufgebaut

und die Abfolge der Vorgänge definiert und erbracht, wenn ein Planungsbedarf vorhanden

ist. Mit anderen Worten. Es ergibt sich der Planungsbedarf aus der Notwendigkeit, ein

Projekt zu planen.

Das Projekt im Rahmen der Softwareprojekt-Veranstaltung wird mit den Aspekten von

Zielvorgabe, zeitlicher und personeller Begrenzung berücksichtigt.

Bei der Zielvorgabe sollen Studierende durch die Veranstaltung praktische

Erfahrungen mit der Softwareentwicklung erwerben.

Das ganze Projekt findet in einem festgelegten Zeitraum statt.

Die Anzahl von Mitarbeitern und Studierenden wird im Rahmen des Projekts

begrenzt.

Das Projektmanagement geht von zwei Konzepten aus: „einmal das Leitungskonzept, das

die zur Projektdurchführung notwendigen Aufgaben definieren hilft und die zur Lösung

dieser Aufgaben notwendigen Methoden zur Verfügung stellt, Sowohl die

5 Schneider, K., Abenteuer Software-Qualität. S. 43.

Page 15: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

8

Systemgestaltung als auch das Projektmanagement stützen sich dabei auf bewährte

Techniken, Hilfsmittel und Verfahren ab“.6

Der Begriff „Projektmanagement“ im engeren Sinn der Softwareprojekt-Veranstaltung

bezieht sich auf die Aufgabe, mit notwendigen Methoden im Bereich von

Personalverwaltung und Aktivitätsverwaltung den Verwaltungsaufwand zu verringern.

2.2.2 Personalplanung

Im Rahmen der Softwareprojekt-Veranstaltung spielen die Erfahrungen und Fähigkeiten

der Studierenden eine entscheidende Rolle und müssen bei der Schätzung berücksichtigt

werden. Für die Auswahl von Studierenden für jedes Team werden die teilnehmenden

Vorlesungen und Erfahrungen zusammengefasst, um daran orientiert die Zuweisung

vorzunehmen. Die Rolle von Projektleiter und Qualitätsbeauftragtem in jedem Team wird

demselben Team nach Vereinbarung mit den anderen Teammitgliedern zugewiesen.

Dadurch hat aber der Projektleiter die Übersicht über einem Team mit den zuständigen

Personen. Durch die Erfahrungen und Fähigkeiten der Teammitglieder und die

Schwierigkeiten des Projekts sowie andere Kriterien kann die Anzahl von Mitgliedern

jedes Teams unterschiedlich sein. Um das Projekt zum Erfolg zu bringen, sollten die

Studierenden fair und sinnvoll auf die einzelnen Teams verteilt werden.

2.2.3 Zeitplanung

Im Allgemeinen stellt die Grundlage der Zeitplanung zunächst das Definieren einer

Zeiteinheit dar, die zum Beispiel Tage, Wochen oder Monate sein kann. Die Zeitplanung

wird im Rahmen dieser Bachelorarbeit mit Hilfe des Gantt-Charts7 veranschaulicht.

6 Hans-D. Litke: Projektmanagement. Methode, Techniken, Verhaltensweisen, S. 11.

7 Oder als Balken-Diagramm benannt. Das Diagramm ist die beim Projektmanagement am häufigsten benutzte Präsentationsform, Kerzner, H., Projektmanagement. Ein systemorientierter Ansatz zur Planung und Steuerung, S. 508.

Page 16: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

9

Abbildung 2: Screenshot eines Beispiels für Prozessverwaltung von entwickeltem

PMW

Die Aufgabe der Zeitplanung im Rahmen der Softwareprojekt-Veranstaltung lautet, die

Prozesse zeitlich zu zuordnen und zu definieren. Dadurch werden das Beginn, das Ende

und die Ausführungsdauer eines jeden Prozesses und des gesamten Projekts erfasst.

Jeder Prozess hat bestimmte Zeitbedingungen und Terminvorgabe, die ermittelt werden

sollen. Die Zeitbedingungen werden von dem Mitarbeiter des SE-Instituts bestimmt. Es

gibt viele Aspekte wie zum Beispiel den Urlaub der SE-Mitarbeiter, die Feiertage usw. die

die Terminvorgabe beeinflussen. Damit fließen Abweichungen vom Beginn und Ende

eines jeden Prozesses in die Gesamtplanung ein. Die Softwareprojekt-Veranstaltung

findet alle zwei Semester in dem gleichen Zeitraum jedes Jahres statt. Dadurch hängt die

Schätzung der bestimmten Dauer für die Prozesse meist von der Zuständigkeit der SE-

Mitarbeiter ab8.

2.3 Analyse von verschiedenen Werkzeugen

2.3.1 PHProject

PHProject ist eine PHP9-basierte Open source-Software unter der GPL10 und wird in

kleinen bis mittelgroßen Projektteams eingesetzt. Das Programm läuft auf einem Server

als eine Web-Applikation und benötigt auf der Seite des Clients keine Software. Diese

8 Wenzel, J., Meusel, J., Schlomm, O., Netzplantechnik im Eventmanagement, S. 7. 9 Zum Begriff PHP vgl. Beisecker, M.A., Das Lexikon der PC-Fachbegriffe 2005/2006, S. 270.

10 Zum Begriff GPL vgl. ebenda, S. 170.

Page 17: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

10

Applikation funktioniert mit verschiedenen Benutzergruppen und mit verschiedenen

Rollen. Es gibt insgesamt drei Arten von Benutzern:11

Administrator

Nutzer mit Chefrechten

Normale Nutzer

Abbildung 3: Screenshot für PHProjekt

Quelle: www.phprojekt.com

Die Applikation löst viele Kernaufgaben des Projektmanagements12 wie Terminplanung,

Personalmanagement und Projektsteuerung. Die Applikation ermöglicht den Ablauf mit

Hilfe des Gantt-Diagramms. Die Applikation hat aber einen großen Vorteil bei der

Kommunikation zwischen allen Projektmitarbeitern. Es gibt viele Werkzeuge, die der

Kommunikation via Emails, Foren, File-Sharing und Chat-Room dienen. Mit Hilfe eines

Mail-Client wie Microsoft Outlook können Email-Daten verwaltet werden. Mit der

Unterstützung von Foren und Chat werden die Nachrichten zwischen Projektteilnehmern

direkt ausgetauscht. Die Kontakte eines Projektteilnehmers mit anderen werden über die

Kontaktverwaltung zusammengefasst und danach in Terminen, Aufgabe und Projekten

abgelegt.

Diese Software bietet aber keine Schnittstelle an, mit der die Informationen von allen

Studierenden in die Software importiert werden können. Die Erstellung der Vorlage wird in

11 Janke, S., Günther, A., PHProjekt – ein Open Source Groupware Suite, unter: http://fmr.ilr.tu-

berlin.de/manual-0.8.html. 12

Buhl, A., Grundkurs Software-Projektmanagement, S. 3.

Page 18: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

11

der Software nicht integriert, und die Email kann auch nicht zu einem festgelegten

Zeitpunkt gesendet werden.

2.3.2 OpenProj

OpenProj ist eine Open Source-Alternative zu Microsoft Project. OpenProj ist ein sehr

umfangreiches und vielseitiges Projektmanagement-Werkzeug. Im Gegensatz zu

PHProject ist OpenProj eine Desktop-Applikation, die mit Java entwickelt wurde. Der erste

Vorteil von OpenProj ist die Schnittstelle mit einem anderen Projektmanagement-

Werkzeug wie Microsoft Project. Das Programm bietet eine Schnittstelle an, mit der der

Benutzer die Projekte von Microsoft (MS) Project öffnen kann. Die Oberfläche ist nicht

sonderlich verschieden von derjenigen von MS Project. Im Vergleich mit PHProject hat

OpenProj viele Aspekte des Projektmanagements abgedeckt. Die Strukturplanung,

Termin- und Zeitverwaltung ist ausführlich dargestellt und ist mit Hilfe von Balken-

Diagrammen auch sehr übersichtlich. Ressourcen-, Personal- und Kostenverwaltung

werden ebenfalls berücksichtigt. Das Programm verfügt über viele Diagramme wie z.B.

Work Breakdown Structure (WBS) in Kostenverwaltung, Resource Breakdown Structure

in Ressourcenverwaltung und Aufwanddiagramm. Mit Hilfe der Berichte-Funktion bietet

das Programm einen Überblick mit den wichtigsten Informationen für Projektleiter. Das

Programm hat viele allgemeine Vorteile hinsichtlich des Projektmanagements, doch im

Rahmen der Software-Projekt-Veranstaltung bringt das Programm nicht viel. Die Import-

Funktionen mit einer vom SE-Institut formatierten Datei sind nicht möglich, weshalb kann

der Projektleiter die Studierenden und Gruppen nicht vernünftig verwalten kann. Eine

Email-Vorlage kann bei dem Programm ebenfalls nicht erstellt und verwendet werden.13

13 SERENA Software, Inc. OpenProj. http://www.serena.com/ products/openproj/

Page 19: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

12

Abbildung 4: Screenshot für OpenProj

2.3.3 Microsoft Project

Microsoft Project ist eine auf dem Markt bekannte Projektmanagement-Software. Diese

Software wird bei vielen kleinen und mittelständischen Unternehmen eingesetzt. Mit der

Kombination von Microsoft Project und Microsoft Project Server werden sowohl die

Einzelprojektplanung und -steuerung als auch die Verwaltung einer Vielzahl von Projekten

unterstützt.14 Folgende Punkte des Microsoft Project werden berücksichtigt:

MS Project unterstützt die Prozessoptimierung. Der Ablauf der Prozesse in einem

Projekt wird über das Programm sehr ausführlich beschrieben. Mit der Export-

Funktion werden die Prozesse in ein Programm exportiert, und danach werden die

Zeiten mittels Netzplantechnik berechnet.15

Auch die Kostenplanung wird in MS Project ausführlich beschrieben. Diese hat aber

im Rahmen der Softwareprojekt-Veranstaltung keine Bedeutung.

14GPM InfoCenter. „Auf dem Weg zu Mitliprojektmanagement als Unternehmensstrategie.

http://www.pmaktuell.org/uploads/PMAktuell-200204/PMAktuell-200204-034-Public.pdf (Zugriff am 21. 08 2012). 15

Schwab, J., Geschäftsprozessmanagement mit Visio, ViFlow und MS Project, S. 206.

Page 20: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

13

Die Personalverwaltung wird ausführlich und mit Unterstützung von vielen

Diagrammen veranschaulicht.16

Unterstützung von verwandten Produkten von Microsoft: Die Daten und Berichte eines

Projekt können in eine Excel-Datei oder nach Microsoft Visio exportiert werden.

Das Programm ist jedoch für folgende Aspekte der Softwareprojekt-Veranstaltung nicht

geeignet:

Das Programm bietet viele Funktionen, um Personen in einem Projekt zu verwalten.

Es gibt aber viele zu einer Person gehörende Informationen wie Arbeitsstunden,

Kosten pro Person usw., die im Rahmen der Softwareprojekt Veranstaltung unnötig

sind. Mit solchen Informationen könnte der Projektleiter die Übersicht und die

wichtigsten Informationen über die Studierenden verunklaren.

Die Importierung von Studierenden über eine CSV-Datei mit einem vom SE-Institut

bestimmten Format ist nicht möglich. Der Aufwand, um Informationen von

Studierenden zu sammeln und zu verwalten, kann nicht verringert werden.

Mit der Kombination mit anderen Produkten von Microsoft kann das Programm auch

Emails senden. Die Inhalte der Emails werden aber manuell erfasst. Die

wiederkehrende Kommunikation, die in der Einleitung erläutert wird, kann in diesem

Fall nicht erleichtert werden.

Von daher soll ein eigenes, Projektmanagementwerkzeug-spezifisches Software-Projekt

entwickelt werden.

16 Schwab, J., Projektplanung realisieren mit Project 2007. Das Praxisbuch für alle Project-

Anwender, S. 178-188.

Page 21: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

2 Konzepte

14

Abbildung 5: Screenshot für MS Project

Quelle: http://upload.wikimedia.org/wikipedia/en/thumb/0/0b/MSProj2010.PNG/640px-MSProj-

2010.PNG

Page 22: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

15

3 Anforderungen

In diesem Kapitel werden alle Anforderungen aufgelistet und nacheinander erläutert.

3.1 Anforderungen

Anforderungen lassen sich vor allem aus zwei verschiedenen Quellen ableiten – und zwar

einerseits aus dem Ablauf eines tatsächlich durchgeführten Softwareprojektes an der

Leibniz-Universität Hannover. Weitere Anforderungen ergeben sich aus der Definition

sowie den Aufgaben und Aspekten des Projektmanagements.

Folgende grundlegende Anforderungen werden an den PMW gestellt:

1. Es soll ein Projekt mit dazugehörigen Informationen wie Projektleiter,

Anfangstermin, Endtermin und Beschreibung stellen:

Die zu den allgemeinen Informationen des Projekts gehörenden müssen unbedingt

angegeben werden, um das Projekt in jedem Jahr zu unterscheiden. Das Wort

„Projekt“, das in dem PMW verwendet wird, ist im Sinn jeder jährlichen

Softwareprojekt-Veranstaltung.

2. Jedes Projekt soll Personen und die dazugehörigen Informationen verwalten:

Diese Anforderung beinhaltet, dass die Informationen von Studenten bearbeitet und

aktualisiert werden können.

3. Es soll Personen von einer CSV-Datei importieren:

Nach dem im Kapitel 2.1 beschriebenen Anmeldungsprozess werden sich alle

Studierenden über ein vom SE-Institut bereitgestelltes Registrierungswerkzeug

anmelden. Die Informationen werden im System gespeichert. Das System kann

solche Informationen in Form einer CSV-Datei exportieren. Mit dem Importieren

solcher Dateien werden Informationen aller Studierenden in dem Programm

gespeichert.

4. Es soll von der importierten CSV-Datei aus die Gruppe anlegen:

In der oben genannten CSV-Datei sind die verschiedenen Themen enthalten. Jedes

Thema kann mehrmals auftauchen, weil jeder Studierende zwei Themen auswählen

kann. Davon soll zuerst eine Liste von Themen erstellt und danach für jedes

eindeutige Thema eine Gruppe bzw. ein Team automatisch erstellt werden.

Page 23: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

16

5. Es soll eine neue Person mit den dazu gehörenden Informationen erstellt

werden:

Es könnte passieren, dass ein Student sich erst spät anmeldet und seine

Informationen nicht in oben genannter CSV-Datei enthalten sind. Parallel zur dritten

Anforderung soll das Programm eine Möglichkeit anbieten, dass der Projektleiter neue

Studierende anlegen kann.

6. Die Gruppe soll manuell erstellt werden:

Es könnte passieren, dass z.B. die Anzahl von Studierenden nicht zu der Anzahl von

Themen passt. Dann soll eine neue Gruppe manuell angelegt werden können, was

das Programm ebenfalls leisten sollte.

7. Jede Person soll zu einer bestimmten Gruppe zugeordnet werden:

Jeder Studierende gehört zu einer bestimmten Gruppe. Das Programm soll dem

Projektleiter die Möglichkeit bieten, dass er die Studierenden in die Gruppen einteilen

kann.

8. In jeder Gruppe soll die PL- und die QA-Rolle an einen bestimmten Studenten

zugewiesen werden:

In jeder Gruppe gibt es zwei zuständige Personen mit zugewiesener Rolle: einen

Projektleiter und einen Qualitätsbeauftragten. Das Programm soll die Rolle den

Studierenden zuweisen. Es soll nur jeweils einen Projektleiter und einen

Qualitätsbeauftragten in jeder Gruppe geben. Jedem Studierenden soll maximal eine

Rolle zugewiesen werden.

9. Es soll eine „Send Mail“-Funktion geben:

Im Laufe eines Projektes soll der Projektleiter viele Emails an die Studenten zu den

verschiedenen Aktivitäten und aus den entsprechend unterschiedlichen Gründen

schicken. Eine „Send Mail“-Funktion soll geboten werden.

10. Um Emails zu senden, soll die Vorlage verwendet werden:

Der Projektleiter hat zwei Möglichkeiten, eine Email zu senden. Er kann neue Emails

verfassen. Für die Emails, deren Inhalt denen der vorherigen Veranstaltung ähnlich

ist, kann der Projektleiter eine Vorlage verwenden. Der Inhalt der Emails lässt sich

vorher einstellen.

Page 24: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

17

11. Emailvorlage soll verwaltet und bearbeitet werden:

Jede Emailvorlage hat einen eindeutigen Inhalt. Der Inhalt jeder Vorlage soll in jeder

Zeit bearbeitet und aktualisiert werden können.

12. Prozesse sollen mit Anfang- und Endtermin erstellt und verwaltet werden:

Jeder Prozess findet in einem bestimmten Zeitraum statt. Um die Prozesse zu

verwalten, soll der Anfangs- und Endtermin beim Ablauf des Prozesses angegeben

werden.

13. Für die „Send Mail“-Funktion soll es eine Vorschaumöglichkeit geben:

Vor dem Senden der Emails soll der Projektleiter die Möglichkeit haben, die Inhalte

der Email zu kontrollieren. Alle zu sendenden Emails mit den dazu gehörenden

Informationen wie Betreff, Empfänger oder Anhänge sollen anschaulich aufgelistet

werden.

Niedrigere Priorität haben folgende Anforderungen:

14. Die Installation soll einfach und schnell ermöglicht werden:

Der Projektleiter soll in wenigen Schritten das Programm konfigurieren und in den

Betriebszustand bringen können.

15. Für die „Send Mail“-Funktion soll es eine Statistik der gesendeten Emails

geben:

Um die Kommunikation mit Studierenden über Emails zu kontrollieren, soll der

Projektleiter die Möglichkeit haben, die Statistik zu den gesendeten Emails (wie z.B.

die Anzahl von gesendeten Emails, die Anzahl von Gruppen, an die Emails gesendet

wurden, und die Anzahl von gesendeten Emails je Gruppe) anschauen zu können.

3.2 Anwendungsfälle

In diesem Kapitel werden die vom Kunden gewünschten Funktionen zur Verwaltung des

Softwareprojekts in Form von Anwendungsfällen beschrieben. Die Abbildung 6 beschreibt

den Zusammenhang zwischen den wichtigsten Teilen des Programms. Dabei bezieht sich

der Abschnitt 3.2.1 auf die Durchführung der Personalverwaltung, während die

Anwendungsfälle in Abschnitt 3.2.2 die Aktivitätsverwaltung betreffen. Alle

Anwendungsfälle wurden mit dem Kunden abgestimmt und von ihm abgenommen.

Page 25: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

18

Abbildung 6: Zusammenhang von wichtigen use-cases

3.2.1 Personalverwaltung

Die Anwendungsfälle, die unten beschrieben werden, beziehen sich auf das UML17-

Anwendungsfalldiagramm in Abbildung 3.

Anwendungsfall PV1: Student anlegen

In der Ansicht der Personalverwaltung kann der Projektleiter einen neuen Studenten

anlegen. Dazu muss er folgende Informationen angeben:

Vorname und Nachname der Studierenden

17 Unified Modelling Language, Modellierungssprache.

Page 26: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

19

Email und Matrikel der Studierenden

Erste und zweite Wahl der Studierenden

Die Vorlesungen, an denen die Studierenden teilgenommen haben.

Die Erfahrungen der Studierenden

Teamzugehörigkeit der Studierenden

Beim Anlegen werden Informationen direkt in die Datenbank hinzugefügt, bevor danach

die Hauptansicht aktualisiert wird.

Anwendungsfall PV2: Student bearbeiten

Zu jedem bereits vorhandenen Studierenden kann der Projektleiter die Informationen

bearbeiten. Die Informationen werden in der Datenbank aktualisiert, und danach wird die

Ansicht aktualisiert.

Abbildung 7: Screenshot für die Informationsverwaltung einer Studierenden

Anwendungsfall PV3: Team anlegen

Jeder Studierende soll einem Team zugewiesen werden. Deswegen soll der Projektleiter

auch die Möglichkeit haben, um ein neues Team anzulegen. Das neue Team beinhaltet

am Anfang nur den Namen. Der Entwurfstyp wird als „default“ dem klassischen Entwurf

zugewiesen. Die Studierenden, die zu dem neuen Team gehören, können

Anwendungsfall 1 oder 2 zugewiesen werden.

Anwendungsfall PV4: Team bearbeiten

Der Projektleiter soll die Möglichkeit haben, ein Team zu bearbeiten. Für jedes Team

kann der Projektleiter einer Person die Projektleiter-Funktion und einer anderen die

Qualitätsbeauftragten-Rolle im Team zuweisen. Außerdem kann der Entwurfstyp für jedes

Team verändert werden. Der Name des Teams soll ebenfalls verändert werden können.

Page 27: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

20

Abbildung 8: Screenshot für die Verwaltung eines Teams

Anwendungsfall PV5: Email an Team senden

Eine Email an ein Team zu senden ist eine Möglichkeit zur Verbesserung der

Kommunikation zwischen Projektleiter und Studierenden. Die Email-Adressen der

Teammitglieder werden an Übersicht über die Email-Versendung weitergeleitet. Danach

kann der Projektleiter die Inhalte der Emails verfassen und sie an die Teammitglieder

senden.

Abbildung 9: Anwendungsfalldiagramm der Personalverwaltung

Page 28: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

21

3.2.2 Aktivitätsverwaltung

Nach dem Öffnen des Projekts soll die Hauptsicht von der Aktivitätsverwaltung geöffnet

werden können. Die Anwendungsfälle beziehen sich auf die Abbildung 10

Anwendungsfall AV1: Aktivität anlegen

In der Hauptsicht der Aktivitätsverwaltung hat der Projektleiter die Möglichkeit eine neue

Aktivität anzulegen. Die neue anlegende Aktivität kann entweder Root-Akvitität18 oder

auch ein Kind-Aktivität19 sein. Dazu werden allgemeine Informationen wie Name, Anfang-

und Enddatum der Aktivität angegeben.

Anwendungsfall AV2: Aktivität bearbeiten

Neben den bereits vorhandenen Aktivitäten soll der Projektleiter die zu einer Aktivität

gehörenden Informationen auch verändern können. Die veränderten Informationen

werden in der Datenbank aktualisiert danach wird die Ansicht mit Konfigurationen

aktualisiert.

Anwendungsfall AV3: Konfigurieren der Sicht

Die Übersicht über die Aktivitäten kann mittels der Konfigurationen unterschiedlich

angezeigt werden. Wenn der Projektleiter die Aktivitäten zeitlich unterschiedlich anzeigen

möchte, kann er die Konfiguration der Spalte verändern. Dazu kann auch die Breite von

Zeilen verändert werden.

18 Die oberste Aktivität und hat keine andere Aktivität, die mit der abhängt.

19 Die hat noch eine obere Aktivität, mit der die verbindet.

Page 29: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

22

Abbildung 10: Anwendungsfalldiagramm der Aktivitätsverwaltung

3.3 Qualitätsanforderungen

In diesem Abschnitt werden die Anforderungen an die Qualität des zu entwickelnden

Projektmanagement-Werkzeugs aufgelistet und erläutert. Diese sind Benutzbarkeit,

Wartbarkeit und Zuverlässigkeit.

3.3.1 Benutzbarkeit

Die Anwendung soll mit der aktuellen Java 1.7-Software ohne Probleme verwendbar sein;

ebenso soll mit kontextspezifischer Hilfe die Einarbeitung für Anwender verkürzt werden.

Die Oberfläche soll einfach und effizient zu benutzen und konsistent sein. Dazu sollen die

folgenden Qualitätsfaktoren betrachtet werden:

Eine kurze Anleitung soll in gut lesbarer Form vorhanden sein.

Die Oberflächenelemente sollen sprachlich verständlich sein und kurz beschrieben

werden.

Page 30: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

23

Beim Hinzufügen eines neuen Oberflächenelements sollen die anderen Elemente

nicht verschoben werden.

Die Schaltflächen und Checkbox sind groß genug, damit der Benutzer diese ohne

Mühe anklicken kann.

Beim Verbindungsaufbau mit dem Mail-Server soll die Rückmeldung zurückgegeben

werden.

Im Fall eines Fehlers soll eine Fehlermeldung angezeigt werden, damit der Benutzer

wenigstens weiß, woher der Fehler stammt.

3.3.2 Wartbarkeit

Das System soll leicht erweiterbar sein, um künftige Entwicklungen einfach integrieren zu

können. Dabei werden folgende Faktoren betrachtet:

Neue Komponenten sollen in das Programm integriert werden können, ohne andere

vorhandene Komponenten umzustrukturieren.

Das Verhalten zwischen Oberflächenelementen (wie z.B. die Größe der Schaltflächen,

die Reihenfolge der Spalten in einer Tabelle, die Schriftgröße, der Abstand zwischen

Elementen) innerhalb einer Komponente soll leicht verändert werden können, ohne

andere Komponenten zu beeinflussen.

Die neuen Tabellen oder die neuen Spalten der vorhandenen Tabellen in der

Datenbank sollen ohne Einfluss auf andere Tabellen oder Spalten angelegt werden

können.

Technische Dokumentationen sollen vorhanden sein, um die Einarbeitungszeit zu

verkürzen.

3.3.3 Zuverlässigkeit

Weil die Anwendung die Veranstaltung „Softwareprojekt“ unterstützt, um mit weniger

Aufwand das Projekt zu verwalten, soll die Applikation zuverlässig laufen. Folgende

Faktoren werden berücksichtigt:

Bei dem Import muss die Import-Datei geprüft werden, wobei die Änderungen, welche

die Integrität der Daten verletzen würden, unterbunden sein müssen.

Die Email-Vorlagen müssen konsistent sein, und die „Send Mail“-Funktion soll vor

dem Senden geprüft werden, um die Emails an die richtige Adresse senden zu

können.

Page 31: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

24

Die von der Datenbank abgefragten Daten sollen richtig und genug auf der Oberfläche

angezeigt werden.

Bei einem zweiten Zugriff auf die Datenbank wird eine Fehlermeldung zurückgegeben,

damit die Richtigkeit und die Sicherheit der Daten gewährleistet sind.

3.4 Risiken

Vor der Implementierung sind gewisse Risiken vorhersehbar, die mit dem Prototyp

untersucht werden, um die Hauptfunktionen des Programms richtig umsetzen zu können.

Folgende mögliche Risiken können auftreten:

Prototyp PT1: Die Oberfläche der Software ist nicht konsistent. Durch Vorlage eines

Oberflächenprototyps lassen sich eventuelle Differenzen zwischen der Vorstellung

über die Oberfläche und der Konsistenz der Oberfläche beim Laufen des Programms

frühzeitig erkennen.

Prototyp PT2: Die Netzwerkverbindung kann nicht hergestellt werden (z.B. wegen

Problemen bezüglich der Firewall, der Internetgeschwindigkeit, nicht unterstützter

Ports beim Mail-Server). Durch den zweiten Prototyp wird die Netzwerkverbindung mit

einem Mail-Server genauer untersucht: Vor allem ist eine Methode gesucht, die

unkompliziert die Verbindung mit einem Mail-Server herstellen, um damit Emails

senden zu können.

Prototyp PT3: Der in Emails verwendete gekoppelte Schlüssel-Wert liefert ein

falsches Ergebnis. Der gekoppelte Schlüssel-Wert sollte untersucht werden, um die

Genauigkeit zu gewährleisten. Weil die Werte von SQL-Anfragen in der Laufzeit des

Programms ausgewertet werden, soll die Stabilität des Algorithmus untersucht

werden.

Prototyp PT4: Verlust von Daten oder falsche Daten beim CSV-Importieren. Beim

Importieren einer CSV-Datei könnte es passieren, dass die zu importierende Datei

beschädigt ist oder das falsche Format hat. Um die Daten zu überprüfen und mögliche

Datenverluste zu vermeiden, sollte das Verfahren des Importierens untersucht

werden.

Prototyp PT5: Die integrierte Datenbank (HSQL) funktioniert nicht richtig, so dass die

Daten nicht gespeichert werden können. Eine kleine Datenbank wird in der

Page 32: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

3 Anforderungen

25

Anwendung integriert. Die Datenbank braucht keinen Server zu treiben, weshalb es

notwendig ist, die Funktionen mit der Datenbank zu untersuchen, um die Konsistenz

des Datenaustauschs zu sichern.

Die Ergebnisse der Prototypentwicklung werden im Kapitel 4.1 erläutert und analysiert.

Page 33: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

26

4 Projektumsetzung

In diesem Kapitel werden die Strukturen des Programms mit den Paketen und

Beziehungen zwischen Entities detailliert erläutert. Anschließend werden die

Implementierung des wichtigsten Teils und die dazu verwendeten Werkzeuge und

Bibliotheken erläutert.

4.1 Ergebnisse der Prototypenentwicklung

Vor der Implementierung werden in diesem Abschnitt die Ergebnisse der Prototypen, die

im Abschnitt 3.4 aufgelistet wurden, erläutert und analysiert, um die vorhergesehenen

Risiken zu beseitigen.

Ergebnisse von Prototyp PT1: Durch den Oberflächenprototypen wurden die

Anforderungen an die Oberfläche des Programm erneut verfeinert.

Um die Oberfläche zu erstellen, wird das Eclipse-Plugin „Window Builder“ verwendet. Mit

Hilfe dieses Plugin kann Java GUI einfach und schnell erstellt werden. Dieses Plugin

verwendet WYSIWYG visuell Designer und Layout-Werkzeuge um von einfacher Form bis

komplizierter Windows zu erstellen. Alle Oberflächenkomponenten können ganz einfach

mit „Drag-and-Drop“ positioniert werden. Daneben gibt es viele Eigenschaften der

Komponenten, die mit Hilfe des Eigenschaften-Editors verändert werden können.

Ergebnisse von Prototyp PT2: Die Netzwerkverbindung mit einem Mail-Server wird mit

Hilfe von JavaMail API erstellt. Das JavaMail API ist ein optionales Paket zum Lesen,

Erstellen und Versenden von elektronischen Meldungen. JavaMail stellt einen

protokollunabhängigen Zugriff auf Message dar, und zwar zum Senden und Empfangen.

Das API besteht aus zwei Teilen:

Der erste Teil des APIs wird in diesem Modul behandelt. Dabei geht es um das

Senden und Empfangen von Messages, unabhängig vom Provider/Protokoll.

Der zweite Teil behandelt protokollabhängige Fragen wie SMTP, POP3 und IMAP.

Das Simple Mail Transfer Protocol (SMTP) wird im RFC 821 definiert. Das Protokoll

definiert die grundlegenden Mechanismen zum Abliefern einer Email. Das auf JavaMail

API bzw. JavaMail basierende Test-Programm wird mit dem Internet Service Provider

(ISP)-SMTP-Server kommunizieren. In dem Test-Programm wird der SMTP-Server von

Google verwendet. Mit dem TLS-Port 587 wird eine Verbindung in 1 bis 3 Sekunden

aufgebaut. Es braucht genauso viel Zeit, eine normale Text-Mail ohne Anhang zu senden.

Page 34: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

27

Die Zeit, die eine Email mit Anhang zu senden ist, ist von der Anzahl und Größe der

Anhänge abhängig. Bei falschem Benutzernamen oder Passwort braucht das Test-

Programm 3 bis 5 Sekunden, um Fehler-Fenster anzuzeigen. Es dauert aber deutlich

länger, wenn ein falscher Port angegeben wird. Es dauert dann 20 bis 25 Sekunden, um

in diesem Fall ein Fehler-Fenster anzuzeigen. Darüber hinaus wird die

Netzwerkverbindung mit einem Mail-Server erfolgreich untersucht. Mit diesem Prototyp

wird gewährleistet, dass das Programm mit einem Mail-Server kommunizieren kann,

damit die „Send Mail“-Funktion realisiert werden kann.

Ergebnisse von Prototyp PT3: Das Schlüssel-Wort wird für die Email-Vorlage

verwendet. Dies spielt die Rolle von einem Platzhalter. Vor dem Senden einer Email

stehen im Email-Inhalt diese Schlüssl-Worte. Bei dem Senden wird Email-Inhalt noch mal

ausgewertet. Alle Schlüssel-Worte werden mit ihren Werten ersetzt. Dies Schlüssel-Wort

hat vordefinierte „Werte“. Der Wert kann entweder ein normaler Wert in der Form von

einer Zeichenkette vom Typ String oder eine SQL-Anfrage sein. Die SQL-Anfrage kann

zum anderen Zeitpunkt ausgewertet. Es gibt drei Typen von dieser SQL-Anfrage

Eine normale SQL-Anfrage hat keine verbundene Variable und Schlüssel-Worte und

kann sofort ausgewertet werden. Mit Hilfe dieser Anfrage kann man die Werte von der

Datenbank direkt in ein Schlüssel-Wort auslagern und dieses danach in der Email-

Vorlage verwenden.

Page 35: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

28

Abbildung 11: Screenshot für SQL-Typ 1

Eine SQL-Anfrage, in der ein anderes Schlüssel-Wort verwendet wird: Bei der

Auswertung solcher Anfragen wird das innere Schlüssel-Wort zuerst ausgewertet,

bevor die Werte vom Schlüssel-Wort in seiner Position ersetzt werden. Zum Schluss

wird die Anfrage mit ersetzten Werten vom Schlüssel-Wort ausgewertet. Diese

Anfrage kann sofort ausgewertet werden.

Page 36: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

29

Abbildung 12: Screenshot für SQL-Typ 2

Eine SQL-Anfrage, in der eine Variable verwendet wird: Diese Variable ist im Grunde

die Email-Adresse, die in der Laufzeit des Programms zugewiesen wird. Die

Auswertung solcher Anfragen verläuft an sich genauso wie der zweite Typ. Sie kann

aber nicht sofort ausgewertet werden, weil die Anfrage von der Variable abhängt.

Nachdem die Werte der Variable zugewiesen werden, kann die Anfrage ausgewertet

werden.

Page 37: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

30

Abbildung 13: Screenshot für SQL-Typ 3

Das Ersetzen des Schlüssel-Wortes oder der Variable mit ihren Werten muss richtig sein

und in allen Positionen in der Anfrage geschehen, wo diese auftauchen. Wenn eine

Position fehlt oder die zurückgelieferten Werte des Schlüssel-Wortes oder der Variable

falsch sind, stimmt die Auswertung der Anfrage nicht mehr. Um diese Verfälschung zu

vermeiden, wird die Email-Vorschau bereitgestellt. Der Prototyp wurde erfolgreich

untersucht. Das Schlüssel-Wort gibt die Werte an, wie es sein soll. Dies gewährleistet,

dass die versendeten Email-Inhalte korrekt sind.

Ergebnisse von Prototyp PT4: Die vom SE-Institut bereitgestellte CSV-Datei hat ein

bestimmtes Format, und bei der Importierung sollen die Daten in die entsprechende

Tabelle in der Datenbank übertragen werden. Der Inhalt der CSV-Datei wird bei der

Importierung geprüft. Wenn das Format nicht richtig ist, wird die Importierung sofort

abgebrochen. Die Datensätze werden Zeile für Zeile ausgelesen und in die Datenbank

übertragen. Auch die Laufzeit der Importierung wird untersucht. Da die Anzahl der

Page 38: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

31

Studenten, die an der Software-Projekt-Veranstaltung teilnehmen, nicht sonderlich groß

ist, wird das Importieren sehr rasch abgeschlossen sein.

Ergebnisse von Prototyp PT5: Um die HSQL-Datenbank zum Laufen zu bringen, muss

man den richtigen Pfad angeben. Die Verbindung wird in einem kurzen Augenblick

aufgebaut, und die Tabelle kann problemlos erstellt werden. HSQL unterstützt große Teile

der SQL-Standards 92, 93 und 2003. Die Typen von Spalten und Constraints werden

ebenfalls standardisiert. Die Daten wurden richtig und schnell zurückgeliefert. Auch bei

der Aktualisierung oder beim Hinzufügen eines Datensatzes wurde der Fehler mit

Foreign-Key- und Unique-Constraint richtig behandelt. Mit der erfolgreichen Untersuchung

dieses Prototyps wird sichergestellt, dass alle Funktionen, die die Daten in der Datenbank

manipulieren, realisiert werden können.

4.2 Software

Das Programm wird als Desktop-Applikation entwickelt. Um die Programmierungsarbeit

zu erleichtern, werden folgende Open-Source-Bibliotheken verwendet:

Jcalendar ist eine Bibliothek, mit der über eine einfache GUI das Datum schnell

ausgewählt werden kann.

Javamail API stellt die Klassen bereit, die ein Mail-System modellieren. Mit Hilfe

dieser API kann das Programm Email-basiert auf Internet-Standards wie MIME

und SMTP senden.

JaretTimebar stellt viele Funktionen bereit, um ein Gantt-Chart zu gestalten.

Dadurch werden die Aktivitäten des Projekts einfach und intuitiv dargestellt.

JaretTimebar stellt viele Funktionen bereit, um ein Gantt-Chart zu gestalten.

Dadurch werden die Aktivitäten des Projekts einfach und intuitiv dargestellt.

Als Datenbank wird eine HSQL-Datenbank verwendet, die keine Installation erfordert.

Diese Datenbank braucht keinen Server zu betreiben, ist aber klein (lediglich 1 MB groß)

und schnell im Vergleich mit anderen Datenbank-Servern.

4.3 Struktur des Modells

Die Daten von Datenbank werden geholt und in einer Schicht gelagert. Diese Schicht

besteht aus Daten-Objekten, die für jede Entity in der Datenbank erstellt wird. Im

Folgenden werden zunächst die Beziehungen in einer Übersicht dargestellt, und danach

werden die Pakete und einzelne Klassen näher betrachtet.

Page 39: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

32

4.3.1 Beziehungen

Die Assoziationen zwischen den Entities sind in dem folgenden Diagramm ersichtlich:

Abbildung 14: ER-Diagramm

Das Projekt hat mindestens eine Person und ein Team, das aus mindestens einer Person

besteht. Jedes Team hat genau einen Entwurfstyp (entweder Prototyp oder klassischer

Entwurf).

Jedes Projekt hat mindestens eine Aktivität (den sogenannten Ablauf des Projektes) und

ein oder mehrere Email-Watcher, die aus in einer Warteschlange stehenden Emails

bestehen. Für diese Emails wurde im Laufe des Projekts festgestellt, wann sie gesendet

wurden. Bevor sie gesendet wurden, wurden sie in der Datenbank gespeichert.

EmailsConfig ist von dem Projekt unabhängig. Diese Konfiguration wird von dem

Programm eingestellt.

Page 40: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

33

Email-Vorlagen sind ebenfalls vom Projekt unabhängig. Jede Vorlage kann für viele

Projekte wiederverwendet werden.

Keyval besteht aus Schlüsseln und Werten, die in einer Email-Vorlage verwendet werden.

Diese sind aber von Vorlagen unabhängig, deswegen ein Schlüssel-Wert-Paar für

verschiedene Vorlagen verwendet werden kann.

4.3.2 Pakete

Abbildung 15: Paketezusammenhang

Page 41: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

34

Die drei Hauptkomponenten (Personalverwaltung, Aktivitätsverwaltung und

Projektallgemeinverwaltung) mit den zugehörigen Klassen werden im Paket

pmt.component abgelegt.

Abbildung 16: Model-View-Controller in Personal-Paket

Unter diesem Paket wird jede Komponente noch einmal auf Model-View-Controller-

Subpaketen aufgeteilt. Jede Komponente hat geschlossene Views und Controllers. In der

Abbildung 16 sind die Pakete unter Personal-Komponenten zu sehen. Die

Logikfunktionen werden im Paket models abgelegt. Für jede View-Klasse im Paket views

gibt es eine entsprechende Controller-Klasse im Paket controllers, die die Verwaltung

übernimmt und die Logik enthält. Das Controller-Objekt hat zu einem beliebigen Zeitpunkt

immer einen Kontext, wie der Stand des Main-View-Objekts und des Projekt-Objekts ist.

Das Controller-Objekt kann selbst Objekte aus der Datenbank laden, verändern, wieder

speichern und auch löschen.

Das Paket pmt.db besteht aus einem Datenbank-Connector, der die Verbindung mit der

Datenbank erstellt, und aus der abstrakten Klasse Entity und der konkreten Entity-Klasse,

die die Entity in der Datenbank abbilden. Die abstrakte Klasse Entity implementiert die

Page 42: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

35

allgemeinen Funktionen wie insert, update, delete, select, die auf jedem Entity verwendet

werden. Die konkreten Entity-Klassen werden die oberen allgemeinen Funktionen für

bestimmte Entity implementieren. Mit Hilfe dieser Entity-Klasse können die Daten aus der

Datenbank in einem entsprechenden Daten-Objekt gelagert und die von diesem Objekt

bearbeiteten Daten wieder in die Datenbank zurückgeführt werden.

Die allgemeinen Hilfsfunktionen wie StringHelper-Klasse, DateTimeHelper-Klasse usw.

werden im Paket pmt.lib abgelegt. Dazu gehören auch noch die Klassen, mit deren Hilfe

das Gantt-Diagramm erstellt werden kann. Im Paket pmt.plugins werden Model-View-

Controller-Subpakete von Email-Plugin abgelegt. Unter diesem Paket werden alle

Funktionen des Email-Plugins implementiert.

Im Paket pmt.common werden wieder Model-View-Controller-Subpakete eingeteilt. Im

Paket views werden erneut die Hauptteile des Main-Views wie Hauptmenü, Barmenü,

Viewmanager usw. abgelegt.

4.3.3 Klassenstruktur

Alle Klasse aus dem Paket pmt.db.entites haben gemeinsame, von der abstrakten Klasse

Entity bereits implementierte Methoden. Die Methoden bieten die Möglichkeit an, mit der

die Daten aus der Datenbank herausgeholt, aktualisiert und wieder in die Datenbank

eingefügt werden können. Die bereit implementierten Methoden sind:

createEntity (String sql): Diese Methode wird eine neue Entity in der Datenbank

erstellen.

insert (String columns, String values): Eine Folge von Werten wird mit

entsprechenden Spalten in der Datenbank hinzugefügt.

update (String set, String where): Eine Folge von Werten wird mit

entsprechenden Bedingungen in der Datenbank aktualisiert.

delete (where): Eine oder mehrere bestimmte Zeilen werden von der Datenbank

gelöscht.

deleteAll(): Alle Zeilen von einer Tabelle in der Datenbank werden gelöscht.

getNumberOfEntries(): Diese Methode gibt die Anzahl von Datensätzen zurück.

getMaxId(): Die maximale ID-Nummer wird mit Hilfe dieser Methode

zurückgeliefert. Wenn eine neue Zeile in der Datenbank hinzugefügt wird, wird

diese Nummer aufgerufen und um 1 erhöht, um eine neue ID-Nummer zu

erstellen.

Page 43: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

36

getObject() Diese Methode ist abstrakt und muss von der Subklasse mit dem

konkreten Rückgabetyp überschrieben werden.

Die konkreten Entity-Klassen werden mit Hilfe dieser bereits implementierten Methoden

den Datenaustauch zwischen Datenbank und Objekten implementieren.

Abbildung 17: Klassenstruktur von Entities

Die aus der Datenbank herausgeholten Daten werden in Daten-Objekten gelagert. In der

Abbildung 17 spielen Projekt-Objekt und Activity-Objekt die Rolle des Daten-Objekts.

Diese Objekte haben die Attribute, die den Spalten von jeder Entity entsprechen. Die

Project-Entity hat folgende Spalten:

id Eindeutige fortlaufende Nummer

leader Name der Projektleiter

start_date Anfangsdatum des Projekts

end_date Enddatum des Projekts

notice Beschreibung des Projekts

pname Der Titel des Projekts

Page 44: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

37

Entsprechend hat das Project-Objekt die Attribute id, leader, startDate, endDate, notice

und pname.

Alle Main-View-Klassen der Hauptkomponenten implementieren Interface Iview mit

folgender Methode:

getController(): Er gibt den entsprechenden Controller für diesen View zurück.

Der zurückgelieferte Typ ist ein Typ, der Interface IController implementiert.

getName(): Er gibt den Name des Views zurück. Der zurückgelieferte Typ ist

String.

getView(): Er gibt den Inhalt des Views zurück. Der zurückgelieferte Typ wird von

der konkreten Klasse überschrieben.

Abbildung 18: Interface IView und konkrete Klasse, die dieses Interface

implementieren

Die Hauptansichten der Komponenten werden von der VManager-Klasse verwaltet. Die

Logiken in jeder Komponente sind aber voneinander unabhängig. Deswegen kann jede

Komponente möglichst fehlerfrei und leicht veränderbar sein.

Page 45: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

38

4.4 Implementierung

In diesem Abschnitt werden die wichtigsten Funktionen des Programms mit Beispielen

erläutert.

4.4.1 Laden von Objekten

Ein Objekt kann im einfachsten Fall über die ID geladen werden. Für jede konkrete

Klasse, die die Entity-Klasse erbt, gibt es eine entsprechende Klasse, die alle Daten der

konkreten Tabelle in ein Objekt auslagert.

Wir nehmen uns Klasse Project als Beispiel:

/** * contructor */ public ProjectEntity() { super.table = "project"; } @Override public Project getObject(int id) { ResultSet rs = this.selectAllWithCondition(" id = "+id); Project project = new Project(); try { while(rs.next()){ project.setId(rs.getInt(1)); project.setLeader(rs.getString(2)); project.setStartDate(DateTimeHelper.DateToString(rs.getDate(3))); project.setEndDate(DateTimeHelper.DateToString(rs.getDate(4))); project.setNotice(rs.getString(6)); project.setPname(rs.getString(7)); } } catch (SQLException e) { e.printStackTrace(); } return project;

}

Der Tabellenname „project“ wird im Konstruktor angegeben. Anschließend wird die

abstrakte Methode getObject() implementiert. Mit eindeutiger ID-Nummer werden die

Daten von der Tabelle in das Project-Objekt übertragen. Dieses Project-Objekt wird von

einer anderen Funktion verwendet. Die Daten können direkt in der GUI angezeigt oder

weiter mit Logikfunktionen bearbeitet werden.

Page 46: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

39

4.4.2 Inhalt der Emails mit Schlüssel-Worten als Platzhaltern auswerten

Der Inhalt der Email-Vorlage enthält die Schlüssel-Worte als Platzhalter. Vor dem Senden

werden diese Schlüssel-Worte mit den entsprechenden Werten ersetzt. Der Inhalt der

Email wird mit Hilfe der Methode evaluateBody(String body, String receiver)

ausgewertet. Dabei ist body der Inhalt der Email und receiver die Email-Adresse des

Empfängers. Diese Methode kann auf drei Schritte aufgeteilt werden:

private String evaluateBody(String body, String receiver) { // get all vars String[] vars = KeyVal.getVars(body); KeyVal[] kvs = new KeyVal[vars.length]; int index = 0; for (String var : vars) { KeyVal kv = kvEntity.getObjectFromKey(var); if (kv.getKey() == null) { PopUpError.displayError(null, "Der Schlüssel-Wert: " + var + " wurde nicht gefunden! " + "Bitte korrigieren Sie seine Definition ", "System Fehler"); } kvs[index] = kv; index++; }

Schritt 1: alle Schlüssel-Worte, die sich im Email-Inhalt als Platzhalter befinden,

werden ausgesucht und in einer String-Array gespeichert. Diese Array wird

durchlaufen, wobei für jedes Element der Array ein entsprechendes Schlüssel-Wort-

Objekt aus der Datenbank geholt und in einer anderen KeyVal-Array gespeichert

wird.

Page 47: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

4 Projektumsetzung

40

// replace var with email and save old key for (int i = 0; i < kvs.length; i++) { int oPos = kvs[i].getKey().indexOf("("); int cPos = kvs[i].getKey().indexOf(")"); if (cPos > 0 && oPos > 0) { String varInKey = kvs[i].getKey().substring(oPos + 1, cPos); String oldKey = kvs[i].getKey(); kvs[i].setOldKey(oldKey); String newKeyWithVal = oldKey.replaceAll(varInKey, receiver); kvs[i].setKey(newKeyWithVal); } else { // oldkey is null as default // for other keyval, which not related with email // need to set oldkey = key , so the replacement can be well // done; kvs[i].setOldKey(kvs[i].getKey()); } }

Schritt 2: Die KeyVal-Array wird durchgelaufen, und für jedes Element der Array wird die Email-Adresse als newKey gespeichert. Die Variable wird als oldKey gespeichert, damit diese wieder in Schritt 3 verwendet wird.

// evaluate body for (KeyVal kv : kvs) { body = body.replace("[" + kv.getOldKey() + "]", StringHelper.ArrayToString(kv.getVal(), ",")); } return body;

Schritt 3: Nachdem jedes KeyVal-Objekt newKey gesetzt worden ist, wird der Inhalt

der Email ausgewertet. Jedes KeyVal-Objekt wird zuerst ausgewertet und mit Hilfe

von oldKey an die richtige Position im Inhalt zurückgesetzt.

Page 48: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

5 Erweiterungsmöglichkeiten

41

5 Erweiterungsmöglichkeiten

Eine Schnittstelle mit einer anderen Plattform ist eine Erweiterungsmöglichkeit für das

Werkzeug. Beim SE-Institut wird gerade eine Software, ein sogenanntes NetQGate, für

die Software-Projekt-Veranstaltung eingesetzt, um ein projektübergreifendes

Management zu haben und um eine grundlegende Qualität zu sichern. Die Informationen

der gesamten Veranstaltung werden in diesem Programm verwendet. Über eine

Schnittstelle kann das Projektmanagement-Werkzeug die Daten mit NetQGate

austauschen. Daher kann die Gruppe mit den zugewiesenen Studierenden direkt in

NetQGate beim Starten importiert werden. Umgekehrt können die Zustände der

Aktivitäten wieder in das Projektmanagement-Werkzeug übertragen werden.

Über eine Schnittstelle kann der Projektleiter auf den SVN-Repository zugreifen und die

Dateien jeder Gruppe betrachten. Die angeforderten Dateien werden zu einem

bestimmten Zeitpunkt kontrolliert. Ein HTML-Editor für die Erstellung einer Email-Vorlage

kann integriert werden. Mit Hilfe dieses Editors kann der Projektleiter den Email-Inhalt in

der üblichen Form schneller erarbeiten. Ein Gesamtbericht wird am Ende der

Veranstaltung angefertigt. Im Bericht sollen alle Aktivitäten und statistische Informationen

angezeigt werden. Daher kann der Projektleiter den Bericht im LID wieder verwenden, um

Erfahrungen zu sammeln.

Page 49: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

6 Zusammenfassung und Ausblick

42

6 Zusammenfassung und Ausblick

Zusammenfassung

Vor dem Fazit und dem Ausblick werden im Folgenden die Schwerpunkte und

Erkenntnisse der Kapitel zwei bis sechs zusammengefasst:

Im Kapitel 2 habe ich die Grundlagen für einen neuen Entwurf des Projektmanagement-

Werkzeuges gelegt und zunächst die am meisten eingesetzten Projektmanagement-

Werkzeuge betrachtet. Als unverzichtbare Grundlage diente die Beschreibung von

wichtigen Aspekten des Projektmanagements. Im folgenden Kapitel 3 habe ich die

Anforderungen an zu entwickelndem Projektmanagement-Werkzeug aufgelistet und die

zentralen Risiken beschrieben.

Im Kapitel 4 wurde die Abhängigkeit zwischen Entities erläutert. Davor wurden fünf

Prototypen erläutert und ihre Ergebnisse analysiert. Zuerst wurde die Konsistenz der

Oberfläche untersucht, damit die Oberfläche nicht zerstört wird, wenn die Größe und

Position der anderen graphischen Elemente verändert werden. Auch die für erfolgreiche

und gescheiterte Verbindungen mit einem Mail-Server angefallenen Zeiten wurden

untersucht. Danach wurden das gekoppelte Schlüssel-Wort und die HSQL-Datenbank

betrachtet. Das Schlüssel-Wort ist einer der wichtigste Teile für das Erstellen und Senden

einer Email-Vorlage. Bei der Erstellung einer Email-Vorlage werden Schlüssel-Worte

verwendet, die jedoch beim Senden mit dem gesamten Email-Inhalt ausgewertet werden.

Wenn der Prototyp erfolgreich untersucht wird, wird die Sendungsfunktion teilweise

indirekt erfolgreich untersucht.

Im letzten Kapitel stelle ich abschließend die Erweiterungsmöglichkeiten des

Projektmanagement-Werkzeugs dar.

Ausblick

Es gibt immer noch viele Spielräume für die neue Version des Projektmanagement-

Werkzeuges bei der Personalverwaltung und bei der Kommunikation mit Studierenden. Im

Bereich der Personalverwaltung wurden die Informationen von Studierenden und ihren

Teams verwaltet. Es ist aber noch Verbesserungspotential vorhanden, und zwar

dahingehend, dass nicht nur Informationen von Studierenden vorhanden sind, sondern

auch solche von den SE-Mitarbeitern, die für jedes Team zuständig sind. Außerdem

könnten neue Plugins in das Programm integriert werden, um die Kommunikation nicht

Page 50: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

6 Zusammenfassung und Ausblick

43

nur über Email, sondern auch über andere Formen wie etwa Chat und Sofort-Feedback

zu verbessern.

Page 51: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

7 Literaturverzeichnis

44

Literaturverzeichnis

Beisecker, M-A. Das Lexikon der PC-Fachbegriffe . Bonn: Fachverlag für die Deutsche

Wirtschaft AG, 2005/2006.

Buhl, A. Grundkurs Software-Projektmanagement, Aufl.1. München: Carl Hanser Verlag

GmbH & CO. KG, 2004.

GPM InfoCenter. „Auf dem Weg zu Mitliprojektmanagement als Unternehmensstrategie.“

Projektmanagement . 02 2004. http://www.pmaktuell.org/uploads/PMAktuell-

200204/PMAktuell-200204-034-Public.pdf (Zugriff am 21. 08 2012).

Greive, J. „Entwurf und Implementierung eines Systems zur netzbasierten Durchführung

von Quality-Gates, Fachgebiet Software Engineering.“ 2005. http://www.se.uni-

hannover.de/pub/File/pdfpapers/Greive2005.pdf (Zugriff am 22. 8 2012).

Janke, S., Günther, A. „PHProjekt eine Open Source Groupware Suite Version 3.3 -

Handbuch.“ 10 2002. http://fmr.ilr.tu-berlin.de/manual-0.8.html (Zugriff am 20. 08

2012).

Kerzner, H. Projektmanagement. Ein systemorientierter Ansatz zur Planung und

Steuerung, Aufl. 2. Bonn: Mitp-Verlag, 2008.

Litke, H-D. Projektmanagement: Methode, Techniken, Verhaltensweisen. Evolutionäres

Projektmanagement, Aufl. 5. München: Carl Hanser Verlag GmbH & CO. KG,

2007.

Schneider, K. Abenteuer Software-Qualität, Aufl. 2., überarb. u. erw. Aufl. . Heidelberg:

dpunkt.verlag GmbH, 2012.

Schwab, J. Geschäftsprozessmanagement mit Visio, ViFlow und MS Project, Aufl. 1.

München: Hanser Fachbuch, 2003.

—. Projektplanung realisieren mit Project 2007: Das Praxisbuch für alle Project-

Anwender, Aufl.1 . München, Wien: Carl Hanser Verlag GmbH & CO. KG, 2008.

SERENA Software, Inc. OpenProj. http://www.serena.com/ products/openproj/ (Zugriff

am 20. 8 2012).

Wenzel, J., Meusel, J., Schlomm, O. Netzplantechnik im Eventmanagement. München:

GRIN Verlag, 2006.

Zuser, W., Grechenig, T., Köhle, M. Software Engineering mit UML und dem Unified

Process, überarbeitete Aufl. 2. München: Addison-Wesley Verlag, 2004.

Page 52: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten
Page 53: Entwurf und Implementierung eines Projektmanagement …se.uni-hannover.de/pub/File/pdfpapers/Vu2012.pdf · III Zusammenfassung Projekte in der SW-Industrie umfassen gewisse Gemeinsamkeiten

Erklärung der Selbstständigkeit

Hiermit versichere ich, dass ich die vorliegende Bachelorarbeit selbständig und ohne

fremde Hilfe verfasst und keine anderen als die in der Arbeit angegebenen Quellen und

Hilfsmittel verwendet habe. Die Arbeit hat in gleicher oder ähnlicher Form noch keinem

anderen Prüfungsamt vorgelegen.

Hannover, den 04.09.2012

Toan Vu