Bei einem Software-Projekt an dem mehr als eine Person arbeitet ist es unerlässlich Software-Werkzeuge zu verwenden, die bei der Umsetzung helfen.
Bei einem Software-Projekt an dem mehr als eine Person arbeitet ist es unerlässlich Software-Werkzeuge zu verwenden, die bei der Umsetzung helfen. Dazu gehört ein Projektlaufwerk des r/ft, auf dem unter anderem die Fortschritte und Ergebnisse zentral gespeichert werden. Des Weiteren ist ein Versionsverwaltungssystem wie zum Beispiel SVN[28] oder Git[29] notwendig, ohne das ein gemeinsames und gleichzeitig produktives Arbeiten am Quellcode nicht möglich ist. Außerdem sollte man, abhängig von der gewählten Programmiersprache, eine Entwicklungsumgebung verwenden (zum Beispiel Eclipse im Falle von Java). Eine solche kann die Implementierung erheblich vereinfachen und hat zudem den Vorteil, dass durch Plugins oft auch eine nahtlose Integration mit dem gewählten Versionsverwaltungssystems möglich wird. Schließlich bleiben verschiedene Modellierungstools zur Erstellung von Grafiken und UML-Diagrammen zu erwähnen.
Für die Erstellung der Projektdokumente bietet sich aus folgenden Gründen LaTeX[30] an:
SVN ist ein weit verbreitetes Versionsverwaltungssystem, das bei studentischen Softwareprojekten im Fachbereich Informatik bisher häufig verwendet wurde. Das hat unter anderem folgende Gründe:
Wie man ein SVN-Repository auf dem Projektlaufwerk einrichtet, ist auf den Seiten des r/ft beschrieben[31].
Hier einige SVN-Clients:
Git[36] ist dabei nach und nach SVN abzulösen. Einer der wesentlichen Unterschiede zu SVN besteht darin, dass es dezentral ist. Das heißt es gibt nicht ein zentrales Repository auf einem entfernten Server, wie das bei SVN der Fall ist, sondern jeder Benutzer hat eine Kopie des gesamten Repositories lokal verfügbar. Auf diese Weise kann auch weiter versioniert werden, wenn man gerade keine Verbindung zum Server hat. Außerdem bietet der dezentrale Ansatz eine erhöhte Ausfallsicherheit. Sollte das sogenannte Remote-Repository (besonderes Repository zur Synchronisation im Team) ausfallen, kann ein beliebiges lokales Repository als Backup dienen. Ein weiterer Vorteil ist die Performanz, da für keine Operation eine Server-Verbindung hergestellt werden muss (abgesehen von den Synchronisations-Operationen).
Git ist zudem sehr gut dokumentiert. Das frei verfügbare Buch Pro Git[37] wird direkt auf der Projekt-Seite zum Download angeboten.
Auch die Tool-Unterstützung ist relativ gut. Unter Windows hat sich besonders die Software Git Extensions[38] bewehrt. Eine Liste verfügbarer GUI-Clients für unterschiedliche Plattformen ist auf der Git-Seite zu finden[39].
Eclipse ist mächtig und man lernst ständig neue Features oder Shortcuts, die einem das Leben beim Programmieren deutlich vereinfachen. Hier zunächst eine Auflistung sinnvoller Plugins, dann ein paar Worte zu Einstellungen, die am Anfang eines Projekts vor dem ersten Commit vollzogen werden sollten und dann eine Liste praktischer Shortcuts. Der Fachbereich Informatik bietet auf seinem YouTube-Channel eine Tutorial-Reihe an, welche den Einstieg und das effiziente Arbeiten mit Eclipse behandelt[40].
Plugins:
Eclipse kennt zwei verschiedene Einstellungs-Scopes. Zum einen die "Globalen Einstellungen", die für die gesamte Eclipse-Installation gelten und zum anderen "Projektspezifische Einstellungen", die nur für ein Projekt gelten. Projektspezifische Einstellungen überschreiben möglicherweise bereits gesetzte globale Einstellungen. Außerdem werden diese in einer Datei ".project" gespeichert, die sinnvollerweise ebenfalls in die Versionsverwaltung wandern sollte. Auf diese Weise müssen projektspezifische Einstellungen nur einmal gesetzt werden und sind dann nach dem Einchecken auch für die restlichen Teammitglieder verfügbar.
Projektspezifische Einstellungen:
Globale Einstellungen:
Ein Ticket-System dient zur zentralen Sammlung von auftretenden Bugs bei der Software-Entwicklung. Jeder Bug wird in einem eigenen Ticket erfasst, wobei der aufgetretene Fehler und dessen Reproduktion möglichst genau beschrieben wird. Dabei hat jedes Ticket einen sogenannten Life-Cycle, der den aktuellen Zustand eines Tickets beschreibt (z.B. "New", "Accepted", "Test", "Closed", "Dublicated"). Welche Zustände existieren hängt vom verwendeten Ticket-System und dem dazugehörigen Workflow ab. Oft lässt sich dieser Workflow für jedes Projekt individuell einstellen.
Die Verwendung eines Ticket-System hat sich in der Vergangenheit in Projekten im Fachbereich Informatik als sehr nützlich erwiesen. In großen Software-Projekten ist ein solches System eigentlich unumgänglich.
Hier einige bekannte und zudem freie Beispiele:
Das Rechenzentrum der Hochschule Trier bietet für studentische Projekte eine Trac-Instanz an. Diese kann beim Rechenzentrum beantragt werden. Assembla ist proprietär, bietet für offene Community-Projekte jedoch nahezu vollen Funktionsumfang. Neben einem äußerst guten Ticket-System bietet es dem Nutzer jedoch noch viel mehr, was für ein Projekt notwendig sein kann. Besonders wenn man agil entwickeln möchte, sollte man einen Blick darauf werfen.
Sie verlassen die offizielle Website der Hochschule Trier