Login Facharbeiten Bern 2009PatternFinder Colaianni Luca, Bundesamt für Informatik und Telekommunikation Ausgangslage
Patterns sind bewährte Lösungsmuster zu wiederkehrenden Problemstellungen, also BestPractices.
Pattern werden bisher nur begrenzt angewendet, weil sie im Internet weit verstreut sind und es an Unterstützung bei der Suche fehlt. Das Problem dabei ist, dass Lösungsansätze, die nicht in angemessener Zeit auffindbar sind, keinen Nutzen bringen.
In einer Masterarbeit (www.patternfinder.net) wurde ein Konzept entworfen, wie Pattern auch ohne vertiefte Kenntnisse einfach gefunden werden können. Die im Konzept beschriebene Applikation soll nun in dieser IPA in einer ersten Version realisiert werden.
Auftragsformulierung
In der zu realisierenden Webapplikation werden die Pattern mit Tags charakterisiert. Diese Tags werden in (hierarchische) Kategorien gruppiert und diese Kategorien den Phasen des verwendeten Entwicklungsprozesses zugeordnet.
So lässt sich dann die aktuelle Phase im Prozess auswählen und die zugeordneten Pattern mithilfe der Navigation über (hierarchische) Kategorien eingrenzen. Ist eine passende Kategorie gefunden, so können die Pattern durch Auswahl von (zum Problem passenden) Tags weiter eingegrenzt werden.
Die Applikation soll möglichst modular aufgebaut werden, so dass die Anzeige und das Verhalten einfach angepasst werden können und ein späteres Hinzufügen einer Authentifizierung möglich ist.

Ziele
- Hinzufügen, Ändern und Löschen von Prozessen, Prozessphasen, Kategorien, Tags und Pattern
- Auflisten von Prozessen, Prozessphasen, Kategorien, Tags und Pattern nach den Richtlinien der Masterarbeit
- Wartbarkeit, modularer Aufbau (MVC Prinzip oder ähnlich)
- Einfache Einbindung einer Authentifizierung möglich (Pflege der Daten)
- Sicherheitsstandard nach OWASP Richtlinien
- Englisches Interface
Lösung
Die Webanwendung wurde mithilfe der Skriptsprache PHP entwickelt. Um das Ganze interaktiv wirken zu lassen, wurden diverse Teile mithilfe der AJAX Technologie umgesetzt.
Damit eine gute Wartbarkeit garantiert werden kann und um das Model-View-Controller Prinzip einzubauen, habe ich mich auf die "Smarty Template Engine" gestützt. Für die AJAX Technologie wurde das Javascript Framework "Prototype" verwendet.
Resultat
Die Applikation besteht insgesamt aus 5 Hauptansichten. Innerhalb einer Hauptansicht, werden alle Aktualisierungen der Komponenten über AJAX Requests gemacht. Sobald eine Hauptansicht gewechselt wird, geschieht das über einen normalen URL Aufruf.
Der Benutzer startet mit der Einstiegssicht, resp. der Startseite. Hier kann man entweder eine Prozessphase der verfügbaren Prozesse wählen, wobei man auf die Navigationssicht gelangt. Oder man wählt direkt den Einstieg über die Indexsicht, welche alle verfügbaren Kategorien, Tags und Pattern anzeigt.
Ebenfalls kann man von der Einstiegssicht, direkt zur Pflegesicht gelangen. Hier befindet man sich im Administratorenbereich, es können Datensätze hinzugefügt, geändert oder gelöscht werden.
Befindet man sich auf der Indexsicht oder Navigationssicht, kann man die gefundenen Pattern zusätzlich über die Auswahl von Kategorien und Tags einschränken (In der Navigationssicht wird zusätzlich über die Prozessphasen gefiltert). Ist das gewünschte Pattern gefunden und ausgewählt worden, gelangt man zur Detailsicht.
In der Detailsicht werden die Details eines Pattern angezeigt. Ebenfalls wird auf die Seite verlinkt, auf der das Pattern gefunden wurde.
Des Weiteren kann über die Suchfunktion nach Pattern, Tags oder Kategorien gesucht werden. Diese werden anschliessend in der Indexsicht aufgelistet.
|