Page ThesisDPPXVII: Interative, prototypgesteuerte Entwicklung einer Whiteboard-Funktionalität für Saros
von Michael Jurke, betreut von
Karl Beecher und
Stephan Salinger
In dieser Arbeit wird Saros um ein Whiteboard erweitert. Dabei sollen durch Protoyping die Anforderungen ermittelt und iterativ implementiert werden.
Goals
- Entwickung einer einsatzfähigen Whiteboard-Funktionalität
- Ermittlung von Anforderungen über die iterative Weiterentwicklung eines Prototypen
- Einholen von Feedback durch Endbenutzer
- Erfahrungen mit dem Prototypansatz
- Abgleich mit wissenschaftlicher Literatur sowohl zum Whiteboard als auch zum Prototyping
- Möglichst vollständige Abdeckung durch Unittests
- Beschäftigung mit dem Test-First-Ansatz in Bezug auf die Probleme bei externen Bibliotheken und Benutzeroberflächen
Concept
- Determine whiteboard requirements (basic and advanced)
- by comparation and literature
- constraint by Saros and distributed pair programming
- Write prototyps and find users
- Get feedback
- update requirements and implementation (iterative prototyping)
- distinguish whether advanced requirements were right expectations (explorative prototyping)
Results
- abstract
- first design decision: SVG based whiteboard using Batik (Java SVG library)
- not recommended due to SWT integration problems
- first prototyp hardly usable
- UpdateManager might crash while resizing
- selection events are not redirected to Eclipse properly
- second approach: GEF
- maybe with SVG as modell representation and batik rendering
- GEF prototype
- freehand drawing
- rectangle/ellipse shape
- selection, relocate, resize and nesting of elements
- Command stack (undo/redo)
- GEF prototype is perfectly feasible
- distributed editing of hierarchical structures requires more research:
- first we need a working infrastructure for collaborative drawing. Then we can develop different prototypes for users.
- Underlying model
- SXE (XEP-0284) as data structure and protocol for concurrency control
- experimental XMPP Extension Protocol (XEP) for collaborative XML editing
- XML with tags corrensponding to SVG standard
- late-join (start synchronization)
- modified SXE protocol
- simplier
- works P2P
- resolves some issues where SXE could not ensure convergence
- history of deleted records by a visible-mechanic
- facilitates undo/redo