Humboldt-Universität zu Berlin - Mathematisch-Naturwissenschaftliche Fakultät - Wissensmanagement in der Bioinformatik

Semesterprojekt Semantic Text Browsing

Professor Ulf Leser, Philippe Thomas

 

GeneView ist eine semantische Suchmaschine für biomedizinische Texte. Sie erkennt Objekte verschiedener Klassen in Texten (Gene, Krankheiten, Mutationen, Spezies etc.), visualisiert diese im Fließtext, und erlaubt gezielte Suche nach Objekten. Basis von GeneView ist eine komplexe Text Mining Pipeline, die in einer relationalen Datenbank aller gefundenen Objekte sowie der Fundstellen und Beziehungen untereinander mündet. GeneView ist öffentlich verfügbar unter http://bc3.informatik.hu-berlin.de/.

In diesem Semesterprojekt soll ein graphisches Werkzeug zum Browsing von GeneView erstellt werden. Benutzer sollen Objekte auswählen können, die dann mit ihren Beziehungen als Graph repräsentiert werden, der eine interaktive Exploration erlaubt. Dazu sind Teilprojekte im Bereich der Datenbankentwicklung, der Middleware, und des graphischen Clients zu bearbeiten.

Der Einführungstermin ist am Dienstag, den 15.10.13, von 9-11 Uhr.

Voraussetzungen

Voraussetzung für den Besuch sind gute Kenntnisse in der Softwareentwicklung mit Java und, je nach gewähltem Teilprojekt, gute Kenntnisse in Datenbanken, Softwarearchitekturen, oder der Entwicklung graphischer Webseiten.

Anrechenbarkeit

Die Veranstaltung ist nur für den Monobachelor Informatik anrechenbar

Struktur des Projekts

Das Projekt wird in drei Teilprojekte zerlegt. Eine Gruppe von Studierenden entwickelt eine Schnittstelle zur GeneView Datenbank, eine Gruppe entwickelt eine web-basierte Benutzerschnittstelle, und eine Gruppe entwickelt eine Middleware zur Kommunikation zwischen Benutzerschnittstelle und Datenbank. Daneben wird es eine technische Projektleitung geben. Die Entwicklung wird professionelle Werkzeuge wie SVN und einen Bugtracker benutzen.

Die Betreuer übernehmen in gewisser Weise die Rolle eines fiktiven Kunden, der eine Software in Auftrag gibt und vorgibt, wie das Endprodukt aussehen soll, aber nicht, wie man das am besten erreicht - das sollen die Studierenden im Projekt gemeinsame selber erarbeiten.

Die Gruppen organisieren sich dazu in regelmäßigen Treffen selber und nehmen an moderierten, gruppenübergreifenden Treffen zur Absprache des Designs und der Schnittstellen teil. Am Ende des Semesters ist von allen gemeinsam eine lauffähige, modulare und dokumentierte Software zu erstellen. Jede Gruppe präsentiert ihre Ergebnisse in Form eines Vortrags und eines Posters.

Begleitprogramm

Das Projekt wird durch ein Begleitprogramm begleitet. Geplant sind Kurzvorlesungen unter Anderem zu den folgenden Themen:
  • Grundlagen von Suchmaschinen und semantische Suchmaschinen (Leser)
  • Biomedizinisches Text Mining (Leser)
  • Webprogrammierung (Starlinger)
  • GeneView - Architektur und Komponenten (Thomas)
  • Benutzung von SVN und TRACK (Thomas)

Material und Zeitplanung

15.10. Folien der Einführungsveranstaltung
Bis 22.10. Todo (alle): Informieren über div. Technologien: MVC, OR-Mapper, Servlets, Java ServerFaces, SVG, Hybernate, JSP
22.10. Einführung Versionsverwaltung und TRAC (Thomas)
Kundenpräsentation: Anforderungen an das System (Leser, Thomas)
Bis 28.10., 10.00 Uhr Todo (alle): Abgabe (*ein* Bericht) Projektstruktur (Teilprojekte), Zuordnung Studierende - Teilprojekte, Charakterisierung der Teilprojekte, Informelle Beschreibung von 5 Use Cases, Auswahl Projektmanagementtools (Versionsverwaltung, Projektplanung)
29.10. Einführung in die Webentwicklung (Folien) Einführung in die Webentwicklung (Code) br> Präsentation und Review der letzten Abgabe (alle) br> GeneView Entity Relationship Diagram
Bis 4.11., 10.00 Uhr Todo (alle): Abgabe (*ein* Bericht) Projektstruktur revision 2, Projektplan (Arbeitspakete, Meilensteine), Style Guide (PL), Technologieauswahl je Teilprojekt
5.11. Einführung Test-Driven Development (Döhling, 45min)
Java-Beispiele
Review der letzten Abgabe (alle)
5.11. Erster Meilenstein: Projektplan, Projektstruktur, Grobspezifikation, Funktionalität
12.11. Vortrag: Semantische Suche
Kein Review, keine Abgabe
19.11. Vortrag: GeneView
Todo (Projektleitung): Vorstellen der Abgabe (Vortrag)
Review
25.11., 10:00 Todo (alle): Abgabe
  • Mock-Ups der Webschnittstelle: Statische Bilder, Visualisierung von Abläufen durch das Interface (Use cases)
  • Schnittstellendefinition der wichtigsten (selbst zu definierenden) Komponenten (MVC)
  • Ausgewählte Sequence-Charts der Kommunikation zwischen Komponenten über die API
26.11. Vortrag:Objekt-Relationales Mapping mit Hibernate
Vortrag:Beispielcode
Todo (Projektleitung): Vorstellen der Abgabe (Vortrag)
Review
2.12., 10.00 Uhr Todo (alle): Abgabe
  • Klassenmodelle der Teilprojekte (Detailgrad selber festlegen)
  • Verfeinerte Sequence-Charts: Welche Kommunikation lösen die Abläufe (Use Cases) durch die Mock-Ups aus?
  • Liste von Testfällen für alle Komponenten (Unittests)
  • Planung Integrationstests (was, wann, wie)
10.12. Diskussion/Zwischenreview Implementierung
  • Stand der Entwicklung Frontend
  • Stand der Entwicklung Backend
  • Stand der Tests
20.12. Fertigstellung der Teilprojekte und erste Integrationstests
7.1. Erneuerter Zeitplan
Bis Fr. 17.1. Lauffähige Version zum Test durch den Kunden
  • Komplette UNIT-Test Liste inklusive Stand
  • Abgleich Planung - Spezifikation
  • Feedback erfolgt über TRAC
21.1 Life Code-Review: Wir wählen 2-3 Entwickler zufällig aus, die sollen uns durch ihren Code führen
  • Documentation muss vorhanden sein
Bis Fr. 24.1 Erste Version Poster und Abschlusspräsentation
4.2 Präsentation, Komplettversion, Abnahme
  • Installationsanleitung (mit dependencies)
  • Dokumentation
  • Spezifikation
  • Make und Readme files
  • ...
11.2 Nacharbeiten, Feedback, Abschluss

Grober Fahrplan (alt)

Das Projekt wird in Phasen laufen; die genauen Zeitpunkte und Meilensteine werden noch festgelegt. Ein grober Überblick ist der folgende
  • Anforderungsaufnahme mit den Kunden; festhalten in informellen Beschreibungen und Use Cases
  • Festlegung Projektgrobstruktur und Verantwortungsbereiche; Definition der Schnittstellen
  • Modellieren der einzelnen Teilprojekte; Definition von Testfällen; Festlegung Code-Styleguides; Festlegen Verantwortlichkeiten in den Teilprojekten
  • Implementierungsphase mit wechselseitigen Code-Reviews und Testen; fortlaufende Dokumentation
  • Softwareabnahme; Aufnahme und Abarbeitung von Nachbesserungsbedarf
  • Präsentation und Poster