Home
- HSR - Institutional Repository
Contents
1. strukturierten Daten zu exportieren Tabelle 4 Produkt Funktionen des Wissensproduzenten 7 21 3 4 BENUTZER CHARAKTERISTIK 3 3 2 Funktionen des Wissenskonsumenten In der Applikation k nnen Wissenskonsumenten ihre Anwendungsprojekte verwalten und diesen Wissensprojekte zuweisen Anschliessend bietet die Applikation eine Ansicht auf die eingepflegten Wissenseintr gen des jeweiligen Wissensprojektes Der Benutzer sieht jeweils f r welche Refactorings bzw nderungen er sich bereits entschieden hat Dabei k nnen die einzelnen Punkte in einer Detailansicht genauer betrachtet und zudem kommentiert werden In der nachfolgenden Tabelle sind die Anforderungen an den Bereich des Wissens konsumenten beschrieben Funktion Anforderung Einschrankungen 1 Ein Wissenskonsument kann Anwendungsprojekte verwalten Einem Anwendungsprojekt k nnen ein oder mehrere Wissensprojekte zugewiesen werden l 3 Den einzelnen Entscheidungen k nnen verschiedene Zust nde zugewiesen werden Tabelle 5 Produkt Funktionen des Wissenskonsumenten 3 4 Benutzer Charakteristik Die zu erstellende Applikation ist f r Unternehmen verschiedenster Art und Gr sse geplant Im Rahmen dieser Bachelorarbeit erfolgt die Nutzung des Tools mit Fokus auf das Thema Cloud Computing Grunds tzlich soll die Applikation jedoch generisch und somit auf verschiedene Themenbereiche anwendbar sein 3 5 Annahmen und Abh ngigkeiten Die Ausf h
2. Create Folder gt Show Route 4 Produzent Einfamilienhaus 4 uj Dach 4 uJ Dachform 2 b Mansarddach Do h Satteldach 4 uJ Dachgiebel BR Friesengiebel Kapitaensgiebel 4 uj Fundament Rb Baufirma X L h Baufirma Y i R Fundament auswaehlen Abbildung 25 Entscheidungsverwaltung 56 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 5 2 Entscheidungsf hrungsgraphen Der Entscheidungsf hrungsgraph enth lt die Entscheidungen der Entscheidungsverwaltung Die Knoten sind Verlinkungen der einzelnen Entscheidungen Der Graph ist durch zwei Tabellen persistiert Die eine wird f r die Speicherung der Entscheidungen verwendet die andere f r die Verbindungen Eine Verbindung besteht aus einem Start und einem Zielknoten Im Rahmen dieser Bachelorarbeit werden Zyklen nicht unterbunden der Anwender ist verantwortlich diese nicht zu erstellen Fundament auswaehlen 9 Einzelfundament e Streifenfundament va v v Streifenfundament Einzelfundament Baufirma Y Baufirma X E e ZA va Abbildung 26 Entscheidungsf hrungsgraphen Um die Startansicht des Entscheidungsf hrungsgraphen zu visualisieren sucht die Applikation den Root Knoten Dazu sucht sie den Knoten welcher keine ankommenden Verbindungen besitzt Bestehen jedoch Zyklen funktioniert diese Methode nicht In diesem Fall wird jene Entscheidung als Root Knoten bestimmt welche zuerst erfasst und in den Entscheidungsf hrungsgraphen eingepflegt worden ist 57
3. Tabelle 43 Statuscodes 78 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 Detailbeschreibung der Ressourcen 8 3 1 Property File Konstanten Request URL descriptions RIES GET liefert eine Liste s mtlicher im Property File f r den Client relevanten Beschreibungen H directoryDescription String nodeDescription String JSON Response subnodeDescription String wikiUrl String expandedLevel String Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 8 3 2 Benutzer 8 3 2 1 Benutzer erstellen Request URL users Methods POST erstellt Benutzer H id int creationTime Date lastModificationTime Date JSON Request EE me Stri ng password String accesstoken String treeaccess bool drillHierarchy int H Begr ndung HTTP Status Code 201 Erstellung der Ressource erfolgreich 409 Benutzername existiert bereits 79 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 2 2 Benutzer editieren Request URL users id Methods POST editiert Benutzer id int creationTime Date lastModificationTime Date username String password String accesstoken String treeaccess bool drillHierarchy int JSON Response Request E Code Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 80 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 2 3 Benutzer einloggen Request URL users login username
4. EEE enner recni Abteilung Informatik Fr hjahrssemester 2014 Seite ee Bachelorarbeit fiir Marcel Tinner und Daniel Zigerlig CDAR Tool 3 4 Alle Besprechungen bei denen eine Vorbereitung durch den Betreuer n tig ist sind von den Studenten mit einer Traktandenliste vorzubereiten Beschl sse sind in einem Protokoll zu dokumentieren F r die Durchf hrung der Arbeit ist ein Projektplan zu erstellen Dabei ist auf einen kontinuierlichen und sichtbaren Arbeitsfortschritt zu achten Arbeitszeiten sind zu dokumentieren Die Spezifikation der Anforderungen geschieht durch die Studenten in Absprache mit dem Betreuer Bei Disputen entscheidet der Betreuer in R cksprache mit den Studenten ber die definitiv f r die Bachelorarbeit relevanten Anforderungen Vorstudie Anforderungsdokumentation und Architekturdokumentation sollten im Laufe des Projektes mittels Milestone von dem Betreuer in einem stabilen Zustand abgenommen werden Zu den abgegebenen Arbeitsresultaten wird ein vorl ufiges Feedback abgegeben Eine definitive Beurteilung erfolgt auf Grund der am Abgabetermin abgelieferten Dokumentation 6 Dokumentation ber diese Arbeit ist eine Dokumentation gem ss den Richtlinien der Abteilung Informatik zu verfassen Die zu erstellenden Dokumente sind im Projektplan festzuhalten Alle Dokumente sind nachzuf hren d h sie sollten den Stand der Arbeit bei der Abgabe in konsistenter Form dokumentieren Die Dokumentation ist vollst ndig auf C
5. f K ft g As d Fa Client Server MediaWiki getWikiPage Node I get Wiki Page Name ai from Node get Wiki Page Text Page Name return Wiki Page Text get HTML Value Return Wiki Content ai Of Wiki Page Text Abbildung 21 Beispielkommunikation Abfrage einer Wiki Seite Der Client beantragt beim Server die Wiki Seite des jeweiligen Nodes Nach Erhalt der Anfrage ermittelt der Server den Namen der dazugeh rigen Wiki Seite Die API von MediaWiki liefert den Text mit Markup Language an den CDAR Server Dieser generiert mit der Antwort einen HTML formatierten Text welcher im Client zur Anzeige kommt Mit diesem Ubertragt der Server zudem auch den rohen Text mit Markup Elementen da dieser fiir die Bearbeitung des Eintrages im Client ben tigt wird Die Generierung des HTML Outputs im Server hat einen wesentlichen Vorteil W rde MediaWiki den rohen Text sowie den HTML formatierten Text liefern m sste der Wiki Server zweimal angefragt werden 52 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 4 Sicherheit und Session Handling S mtliche Funktionen der Applikation sind nur registrierten Benutzern zug nglich Um zu erkennen dass ein Benutzer angemeldet ist sendet dieser bei jeder Abfrage an den Server seine User Id sowie Accesstoken mit Diese Daten berpr ft der Server falls die Id und der Accesstoken in der Datenbank gefunden wurden ist die Abfrage g ltig und wird bearbeitet Andernfalls reagiert der Server mi
6. name passsword pw Methods GET versucht Benutzer einzuloggen id int creationTime Date lastModificationTime Date username String password null accesstoken String treeaccess bool drillHierarchy int JSON Response i Code Begr ndung HTTP Status Code 200 Abfrage erfolgreich 401 Login nicht erfolgreich 8 3 2 4 Benutzer l schen users delete POST l scht Benutzer Request URL Methods JSON Request Begr ndung Abfrage erfolgreich Fehlerhafte Requestdaten HTTP Status Code 81 83 33 Baum 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 3 1 Baum Erstellung und Abfrage Request URL Methods JSON Response Request HTTP Status Code ktrees ptrees GET liefert Liste aller Baume POST erwartet einzelne Ressource H id int creationTime Date lastModificationTime Date title String uid int Begr ndung 200 Abfrage erfolgreich 201 Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 8 3 3 2 Spezifische Baumabfrage und Bearbeitung Request URL Methods JSON Response Request HTTP Status Code 8 3 3 3 Baum l schen Request URL Methods JSON Request HTTP Status Code ktrees id ptrees id GET liefert Baum POST bearbeitet Baum id int creationTime Date lastModificationTime Date title String uid int Begr ndung 200 Abfrage erfolgreich
7. 8 3 4 4 Export l schen ktrees id export delete ptrees id export delete POST l scht den spezifischen Export id int Request URL Methods JSON Response Request Begr ndung Abfrage erfolgreich Fehlerhafte Requestdaten HTTP Status Code 84 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 5 Verzeichnisse 8 3 5 1 Verzeichnis Erstellung und Abfrage ktrees id directories ae ptrees id directores Methode GET liefert s mtliche Verzeichnisse POST erstellt Verzeichnis H id int creationTime Date lastModificationTime Date title String treeld int parentld int Begr ndung Abfrage erfolgreich HTTP Status Code Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum JSON Response Request 8 3 5 2 Spezifische Verzeichnisabfrage und Bearbeitung ktrees id directories id R RL Een ptrees id directores id Method GET liefert s mtliche Verzeichnisse zus POST erstellt Verzeichnis id int creationTime Date lastModificationTime Date JSON Response Request an title String treeld int parentld int Begr ndung 200 Abfrage erfolgreich HIER Status EDGE 400 Fehlerhafte Requestdaten 409 Lock auf Baum 85 8 3 5 3 Verzeichnis l schen Request URL Methods JSON Request HTTP Status Code 8 3 6 Nodes 8 3 DETAILBESCHREIBUNG DER RESSOURCEN ktrees id directories delet
8. Date lastModificationTime Date sourceld int targetld int treeld int subnodeld int H Begr ndung Abfrage erfolgreich 2 00 Erstellung der Ressource erfolgreich 00 Fehlerhafte Requestdaten 409 Lock auf Baum 8 3 8 2 Bearbeitung einer Verbindung Request URL Methods JSON Response Request HTTP Status Code ktrees id links id ptrees id links id POST bearbeitet Verbindung id int creationTime Date lastModificationTime Date sourceld int targetld int treeld int subnodeld int Code Begr ndung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 94 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 3 3 Verbindungstraversierung ktrees id links id nodes id drillup ptrees id links id nodes id drillup a ptrees id links id nodes id drilldown ktrees id links id nodes id drilldown Methods GET liefert eine Liste von Kinds bzw Eltern verbindungen ab definiertem Node H id int creationTime Date lastModificationTime Date JSON Response Request sourceld int targetld int treeld int subnodeld int H Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 8 3 3 4 Verbindung l schen ktrees id links delete Request URI ptrees id links delete Methods POST l scht eine Verbindung JSON Request id int Begr ndung HTTP S
9. Request URL Methods JSON Request HTTP Status Code ktrees id nodes id drillup ptrees id nodes id drillup ktrees id nodes id drilldown ptrees id nodes id drilldown GET liefert eine Liste von Kinds bzw Elternnodes ab definiertem Knoten H id int creationTime Date lastModificationTime Date title String wikititle String treeld int directoryld int dynamicTreeFlag int status int nur in der Rolle als Konsument H Begr ndung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten ktrees id nodes delete ptrees id nodes delete POST l scht den spezifischen Node id int Begr ndung 200 Abfrage erfolgreich Am Fehlerhafte Requestdaten 409 Lock auf Baum 89 8 3 7 Subnodes 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 7 1 Subnode Erstellung und Abfrage Request URL Methods JSON Response Request HTTP Status Code ktrees id subnodes ptrees id subnodes GET liefert s mtliche Subnodes POST erstellt neuen Subnode H id int creationTime Date lastModificationTime Date title String wikititle String nodeld int position int status int nur in der Rolle als Konsument H Begr ndung Abfrage erfolgreich Erstellung der Ressource erfolgreich Fehlerhafte Requestdaten 409 Lock auf Baum 90 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 7 2 Spezifische Subnode Abfrage und Bearbeitung ktrees
10. Use Case Name UC2 Wissensbaum Create Read Update Delete Aktoren Wissensproduzent Beschreibung Bevor der Wissensproduzent mit dem Einpflegen von Wissenseintr gen beginnen kann muss er in der Applikation einen Wissensbaum erzeugen Nachtr gliches ndern des Titels sowie das L schen von kompletten Wissensb umen wird durch die Applikation unterst tzt 25 3 6 FUNKTIONALE ANFORDERUNGEN 3 6 3 3 UC3 Architekturentscheid Create Read Update Delete Use Case Name UC3 Architekturentscheid Create Read Update Delete Aktoren Wissensproduzent Beschreibung Beinhaltet das Erstellen Lesen Bearbeiten und L schen von Architekturentscheidungen in einen vorhandenen Wissensbaum 3 6 3 4 UC Options Create Read Update Delete Use Case Name UC4 Options Create Read Update Delete Aktoren Wissensproduzent Beschreibung Eine eingetragene Architekturentscheidung beinhaltet unter Umst nden verschiedene M glichkeiten zur Realisation Die Applikation erlaubt das Hinzuf gen von mehreren Optionen an eine Entscheidung 3 6 3 5 UC5 Export Import Wissensbaum Use Case Name UC5 Wissensbaum exportieren und importieren Aktoren Wissensproduzent Beschreibung Um andere Wissensproduzenten welche nicht ber Zugriff auf die angelegten Projekte verf gen mit bereits eingetragenen Daten zu unterst tzen soll die Applikation eine Export sowie Import Funktion von Wissenseintr gen erm glichen 3 6 3 6 UC6 Wissensbaum modellieren Us
11. e Useraccess Services Abbildung 28 Aufbau des Clients 59 7 7 AUFBAU DER CLIENTAPPLIKATION 7 7 1 Routen in Zusammenhang mit Views und Controllers Die Client Implementierung der CDAR Applikation besteht aus einer Hauptseite in welcher durch das ngRoute Modul je nach URI Aufruf die jeweiligen Views mit deren Controller nachgeladen werden Dies hat den Vorteil dass der Browser nur anfangs s mtliche JavaScript Files laden muss welche im Header dieser Hauptseite definiert wurden Nachfolgende Tabellen erl utern m gliche Routen mit deren Konfigurationen URI Konfiguration und Beschreibung login View Login Controller LoginController Beschreibung Benutzerlogin s mtliche nicht validen Routen f hren automatisch zum Login registration View Register Controller g RegistrationController Beschreibung Registrationsseite homeproducer View Producer Home Controller HomeProducer Controller Beschreibung Startseite mit einer bersicht aller zug nglichen Projekten in der Rolle als Wissensproduzent homeconsumer View Consumer Home Controller HomeConsumerController Beschreibung Startseite mit einer bersicht aller zug nglichen Projekten als Wissens konsument projecttree View Projecttree treeld Controller ProjectTreeController Beschreibung Spezifische Ansicht eines Baumes in der Rolle als Wissenskonsument Der
12. id exports id Liefert exportierten Wissensbaum BAUM id exports id Bearbeitet einen Wissensbaumexport BAUM id exports id set Importiert den exportierten Wissensbaum BAUM id exports delete L scht exportierten Wissensbaum BAUM id directories Liefert die Verzeichnisse des jeweiligen Baumes BAUM id directories Erstellt neues Verzeichnis BAUM id directories id Liefert ein spezifisches Verzeichnis BAUM id directories id Bearbeitet Verzeichnis BAUM id directories delete L scht ein Verzeichnis 75 8 1 BERSICHT DER SCHNITTSTELLE BAUM id nodes Liefert samtliche Wissensnodes des Baumes BAUM id nodes Erstellt einen neuen Wissensnode BAUM id nodes id Liefert spezifischen Wissensnode BAUM id nodes id Bearbeitet einen Wissensnode BAUM id nodes id wiki Liefert den Wiki Eintrag des Wissensnodes BAUM id nodes id wiki Bearbeitet den Wiki Eintrag des Wissensnodes BAUM id nodes id rename Bearbeitet lediglich den Titel von einem Node BAUM id nodes id copy Kopiert einen Wissensnode mit Subnode und Wikieintrag BAUM id nodes delete L scht einen Wissensnode BAUM id nodes id drillup Baumtraversierung nach oben BAUM id nodes id drilldown Baumtraversierung nach unten BAUM id subnodes Liefert samtliche Subnodes aller Nodes eines Baumes BAUM id nodes id
13. Decision Engineering IBM Zurich Research Laboratory http design inf unisi ch sites default files biblio adkwik seke2007 pdf Zimmermann O Architectural Refactoring agile Umsetzung von Modernisierungsentscheidungen http www oop konferenz de nc oop2014 konferenz konferenzprogramm conference detail architectural refactoring agile umsetzung von modernisierungsentscheidungen html Zimmermann O Link und AD Beispiele zuletzt gepr ft am 31 03 2014 Wikipedia http de wikipedia org wiki Programmierschnittstelle XI The W3 Wik Wik1 Xed B 2 TABELLENVERZEICHNIS The JSON Data ecma http www ecma international org publications files ECMA ST ECMA 404 pdf W3 http www w3 org Protocols rfc2616 rfc2616 sec10 html wiki java https code google com p wiki java Wikipedia http de wikipedia org wiki Representational_State_Transfer REST_Maturity_M odel GitHub http vitalets github io x editable XII E Projektplanung EI Iterationsplanung Die Iterationsplanung orientiert sich grob am Rational Unified Process RUP und ist unterteilt in eine Analyse Realisierungs sowie Auswertungsphase Analyse 3 Wochen Projektsetup Vorbereitungen amp Planungen Aufgabenstellung formulieren Realisierung1 2 Wochen Grundstruktur Client und Server erstellen Einrichtung Data Access Layer Tests mit verschiedenen Baum Frameworks Realisierung2 2 Wochen Drag amp Drop Funktion
14. G AUFGABENSTELLUNG EO Demut ron mee Abteilung Informatik Fr hjahrssemester 2014 Seite RapreRsw L TT Bachelorarbeit f r Marcel Tinner und Daniel Zigerlig CDAR Tool 2 4 zz ee server e g HTTP session in JEE servlet container this approach is no longer recommended when deploying in to a cloud due to scalability and reliability concerns Finally Database Session State is well supported in many clouds e g via highly scalable key value storage a type of NoSQL database This decision has to be made revisited when taking any Web based business application to the cloud outcomes may vary but issues and options stay the same i e they recur 3 Ziele und Aufgabenstellung Das Ziel der Arbeit ist die Konzeption und Entwicklung eines webbasierten Wissensmanagement und Entscheidungsf hrungstools insbesondere f r die beiden Wissensinhalte Architekturentscheidungen und Architectural Refactorings Die Benutzbarkeit des Tools soll im Context von Cloud Computing gezeigt werden die Cloud Wissensinhalte f r die Evaluation werden vom Betreuer zugeliefert Die konkreten Aufgaben f r die Bachelorarbeit sind e Auswahl einer geeigneten Toolpattform f r die Entscheidungsmodellierung und findung z B Semantic Wiki Engine oder Enterprise Architect API Visualisierungskomponenten unter Ber cksichtigung des Domain Models und Architecture Overview Diagrams aus dem Institutsprojekt wird vom Betreuer zugeliefert e Design Implementierung un
15. String JSON Request Request wikititle String treeld int directoryld int dynamicTreeFlag int status int nur in der Rolle als Konsument Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 87 8 3 6 4 Nodekopieren Request URL Methods JSON Request Request HTTP Status Code 8 3 6 5 Wiki Eintrag Request URL Methods JSON Response Request HTTP Status Code 8 3 DETAILBESCHREIBUNG DER RESSOURCEN ktrees id nodes id copy POST kopiert einen Node mit Subnode und Wikieintrag id int creationTime Date lastModificationTime Date title String wikititle String treeld int directoryld int dynamicTreeFlag int status int nur in der Rolle als Konsument Begr ndung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum ktrees id nodes id wiki ptrees id nodes id wiki GET liefert Wiki Eintrag zum definierten Node POST bearbeitet Wiki Eintrag zum definierten Node id int creationTime Date lastModificationTime Date title String wikititle String wikiContentPlain String wikiContentHtml String Begr ndung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 88 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 6 6 Node Traversierung Request URL Methods JSON Response HTTP Status Code 8 3 6 7 Node l schen
16. e Nachdem Kopieren kann der Knoten nicht in den Entscheidungsf hrungsgraphen gezogen werden e Umbenennen von Show Report und Access Rights e Knowledge Consumer und Knowledge Producer sollte anpassbar sein nderungen e Erwahnen in der Benutzeranleitung dass der Kopiervorgang einige Zeit in Anspruch nimmt und die kopierten Entscheidungen nicht direkt ver ndert werden sollen Code ist bereits parallelisiert e Anpassungen beim Kopiervorgang DynamicTreeFlag und Status werden auf Standard zur ckgesetzt e Diverse Umbenennungen e Knowledge Consumer und Knowledge Producer ber Property File konfigurierbar B Ver B 1 Abbildungsverzeichnis Abbildung 1 Rollenaufteilung in der Applikation ccccccccccccecesssssesseaeeeceeeeessessnssaeeeeeeesens 12 Abbildung 2 Architektur bersicht cccccsessscccececeeesssesssaeeeceeeesceessaeseeeceeesesseeseaeaeeeeeeseeenes 13 Abbildung 3 Ist Zustand Bau Architekt 15 Abbildung 4 Projektablauf Einfamilienhaus cccccesssccceceeceesssessaeeeeeeeeseessssseaeseaeeeeeeeens 16 Abbildung 5 Einfamilienhaus mit CDAR Applikatton 17 Abbildung 6 Use Case Diagramm cccceceessssscececeeeecessesseaeeececeesceeseaeaeeeeeeceesseessaeaeseseeseeeees 24 Abbildung 7 Domainmodel ccccccccsssssssssssccecececsessssnacsecececeesecsessnanseeeceseesesseananseenenseeess 30 Abbildung 8 Softwa rearchitektur ccccccesssssceceeececcecsesssaeeeceeeesse
17. subnodes Liefert samtliche Subnodes eines Nodes BAUM id nodes id subnodes F gt einem Node einen neuen Subnode hinzu BAUM id nodes id subnodes id Liefert einen Subnode BAUM id nodes id subnodes id Bearbeitet einen Subnode BAUM id nodes id subnodes delete L scht einen Subnode BAUM id nodes id s ubnodes id wiki Liefert den Wiki Eintrag des Wissensnodes BAUM id nodes id s ubnodes id wiki Bearbeitet den Wiki Eintrag des Wissensnodes BAUM id nodes id subnodes id drillup Baumtraversierung nach oben BAUM id nodes id subnodes id drilldown Baumtraversierung nach oben 76 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI BAUM fid links Liefert s mtliche Verbindungen eines Baumes BAUM id links Erstellt eine neue Verbindung BAUM fid links delete L scht eine Verbindung BAUM id links nodes id drillup Baumtraversierung nach oben BAUM id links nodes id drilldown Baumtraversierung nach unten 8 1 4 Wissensproduzent Ressourcen Nachfolgend beschriebene Ressourcen stehen lediglich der Wissensproduzent zur Verf gung ktrees id nodes id subnodes id rename Umbenennen eines Subnodes ktrees id templates Liefert samtliche Templates eines Baumes ktrees id templates Erstellt neues Template ktrees id templates id Liefert spezifisches Template ktrees id templates id Bear
18. 7 6 AUFBAU DER SERVERAPPLIKATION 7 6 Aufbau der Serverapplikation Layer Funktion Beschreibung Presentation Enth lt die RESTful Schnittstelle welche f r die ganze Kommunikation zwischen Client und Server zust ndig ist Die Controller empfangen und versenden JSON Objekte Ein implementierter Security Filter berpr ft dabei die Authentifizierung aller Konsumenten bzw Produzenten Anfragen auf Id und den Accesstoken des Benutzers Bei falschen Daten bricht der Filter die Abfrage ab Business Dieser Layer ist die Zwischenschicht vom Presentation Layer und dem Data Logic Access Layer Die Manager dieses Layers empfangen die Anweisungen und Objekte des oberen Layers bearbeitet diese und sendet neue Befehle an den tiefergelegenen Data Access Layer Dieser Layer besitzt ebenfalls die Entit ten welche im Server verwendet werden Ebenso werden die Entitaten in der REST Kommunikation als JSON Objekte genutzt Komplexere Aufgaben in welchen eine einzelne Klasse f r die Logik nicht ausreicht wie das Reporting und die Wiki Verwaltung sind in eigenen Paketen abgelegt Data Access Dieser Layer empf ngt die Anweisung des oberen Layers und sendet die geforderten Objekte zur ck Der Data Access Layer kapselt s mtlichen Zugriff auf persistente Daten der CDAR Applikation und Wiki Seiten Tabelle 16 Layerbeschreibung Controller Presentation Security Consumer Controller Layer Producer Controller Entity Producer Entity Business
19. Bearbeitung in Minuten Ta belle 50 Property File H 2 9 Kompatibilit t und Einschr nkungen Gem ss Anforderungsspezifikation wurde die Applikation auf den neusten g ngigsten Browsern getestet Dazu geh ren Google Chrome Version 35 Internet Explorer 11 sowie Firefox 29 Wir empfehlen Google Chrome zu verwenden Beim Firefox gibt es eine Einschr nkung Im angemeldeten Zustand ist der Rollenwechsel nicht m glich XLIV H BENUTZERHANDBUCH H 2 10 Frequently Asked Questions FAQ Weshalb kann ich die Entscheidung bzw die Verbindung im Entscheidungsf hrungs graphen nicht selektieren Anstatt einen einfachen Klick einen Doppelkick auf das gew nschte Element wird das Element selektieren Wie kann ich zwei Teilb ume verkn pfen Dies ist aktuell nicht m glich im Projekt Einzige M glichkeit zur Behebung des Problems ist indem Sie die exportiere Datei des Projektes anpassen und anschliessend wieder importieren Weshalb erscheint das Popup nicht Dies kann geschehen wenn Sie eine Entscheidung in den Entscheidungsf hrungsgraphen gezogen haben diesen verbinden daraufhin den Knoten vom Graphen entfernen und anschliessend dieselbe Entscheidung wieder in den Entscheidungsf hrungsgraphen ziehen und verbinden wollen Ein Refresh der Webseite wird das Problem l sen Weshalb ist meine Verbindung nicht beschriftet Dies hat zur Ursache dass das Popup nicht erschienen ist und Sie keine Option f r die Verbindung ausw hle
20. DBUCH H 2 6 7 Verfassen von Entscheidungen Wenn Sie einen Knoten bzw eine Entscheidung selektieren sehen Sie im unteren Teil folgenden Abschnitt Decision Selected Decision Fundament auswaehlen Open WikiPage in New Window READ WRITE DECISION Switch Wiki Page to Update Decision Wiki Title Abbildung 56 Wiki Eintrag f r Entscheidungen Hier k nnen Sie einen Wiki Eintrag basierend auf der ausgew hlten Entscheidung verfassen F r Formatierungen verwenden Sie die Wiki Falls Sie einen bestehenden Wiki Eintrag der Entscheidung zuordnen wollen k nnen Sie dessen Wiki Titel im unteren Eingabefeld eintragen und ber den Button best tigen Open WikiPage in New Window ffnet den Wiki Eintrag im MediaWiki in einem neuen Tab XL H BENUTZERHANDBUCH H 2 6 8Optionen Indem Sie einen Knoten bzw eine Entscheidung selektieren erscheint im unteren Bereich ein zus tzliches Feld Hier k nnen Sie neue Optionen hinzuf gen l schen umbenennen und deren Position ver ndern Um effizient neue Optionen hinzuzuf gen k nnen Sie den Text eingeben und ber Enter hinzuf gen Die Optionen k nnen Sie anschliessend beim Erstellen einer neuen Verbindung ausw hlen Siehe dazu Kapitel H 2 6 6 1 Knoten und Verbindungen Ebenso k nnen Sie Optionen hinzuf gen bei welchen der Wiki Eintrag bereits besteht hierzu verwenden Sie die unteren beiden Eingabefelder Option Position Option Name Edit Option Title Delete Opti
21. Da MediaWiki bereits gute Anleitungen und Informationen zu Installation und Betrieb der Software bereitstellt verweisen wir an dieser Stelle auf diese Vorbedingungen http www mediawiki org wiki Manual Installation requirements Download von MediaWiki unter http www mediawiki org wiki Download de Installation http www mediawiki org wiki Installation de H 1 3 Installation Tomcat Tomcat erlaubt es die Web Anwendung auszuf hren Die Installation von Tomcat ist unter folgendem Link beschrieben Link http tomcat apache org tomcat 7 0 doc deployer howto html H 1 4 Property File Im Property File sind Konfigurationen hinterlegt Diese sind bei folgenden F llen anzupassen Fall Betroffene Properties Inbetriebnahme Applikation e CDAR_LOCAL_DB_CONNECTION e CDAR_LOCAL_DB_USER e CDAR_LOCAL_DB_PASSWORD e CDAR_MEDIAWIKI_CONNECTION e CDAR LOCAL D CONNECTION nderungen der Datenbankverbindung nderungen des Datenbankbenutzers _ CDAR LOCAL DB_USER CDAR_LOCAL_DB_PASSWORD nderungen der MediaWiki Verbindung e CDAR LOCAL DR CONNECTION Tabelle 47 Property File Konfiguration XXVI H BENUTZERHANDBUCH H 1 5 Softwareversionen Folgende Softwareversionen wurden beim Erstellen dieser Applikation verwendet Datenbank MySQL 5 6 14 MediaWiki 1 22 7 Tomcat 7 0 53 Tabelle 48 Softwareversionen XXVII H BENUTZERHAN DBUCH H 2 Betriebsanleitung Dieses Kapitel zeigt wie die Applikation zu ver
22. Drop Vorgang nicht vollendet werden Diese Abfrage kann jedoch noch nicht berpr fen ob ein Lock auf das Projekt besteht Wenn der Benutzer die Entscheidung im Entscheidungsf hrungsgraphen losl sst Drop so l st dies ein Update Befehl an den Server aus Dieser berpr ft ob eine Sperrung besteht Ist dies der Fall wird der ganze Vorgang durch eine Lock Antwort abgebrochen Es erscheint eine entsprechende Meldung welche dies dem Benutzer signalisiert Ist das Projekt aktuell nicht in Bearbeitung durch einen anderen Benutzer so best tigt der Server dies Danach wird die Entscheidung im Entscheidungsf hrungsgraphen gezeichnet DIOU getNode id DT GC TTT gt return Node Drag amp Drop Move Event _ tteeseseeeeeeeeeeeeeswensaneaeeeeeeeeeeeneeeneeeeeens check Node Drag amp Drop Stop Event ponageeeneneuneneeaeen updateNode Node SPEREEFITECHTERELTITTELTTERERBRRTERFELFEERTETTTELLTITT KL Tree is locked Check Lock DT TTT TTT Lock Ok Update Node Status Code ok EZ nnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnni Abbildung 20 Beispielkommunikation EntscheidungDrag amp Drop 51 7 3 KOMMUNIKATION 7 3 5 Beispielkommunikation Abfrage Wiki Seite F r die Anzeige der einzelnen Wissenseintr ge im Graphen oder der Baumansicht erfolgt noch keine Abfrage der Inhalte der Wiki Seite Erst nachdem der Benutzer einen bestimmten Wissenseintrag abfragen will ruft der Client beim Server den Inhalt der Wiki Seite auf i
23. Ende Realisierung Iteration 5 Iteration 6 Refactoring Bug Fixing User Test und Feedback Implementierung Dokumentation Reserve Meetings Meilenstein Ende Code Refactoring Meilenstein Ende Dokumentations Inhalte Meilenstein Ende Realisierung Iteration 6 Auswertung Abstract f r Diplomarbeitsbrosch re an Betreuer 4 6 2014 AO Poster zur Pr fung an Betreuer 6 6 2014 AO Poster Fertigstellung 13 6 2014 Abgabe Bericht 13 6 2014 Pr sentation Bachelorarbeiten 13 6 2014 Reserve Meetings Meilenstein Abgabe HSR Artefakte Meilenstein Abgabe Bachelorarbeit XVI E PROJEKTPLANUNG E 3 Meilensteine Ende Analyse Ende Realisierung Iteration 1 Ende Realisierung Iteration 2 Ende Realisierung Iteration 3 Ende Realisierung Iteration 4 Ende Realisierung Iteration 5 Ende Realisierung Iteration 6 Abgabe HSR Artefakte Abgabe Bachelorarbeit Tabelle 46 Meilensteine 11 3 2014 25 3 2014 8 4 2014 22 4 2014 6 5 2014 20 5 2014 3 6 2014 13 6 2014 13 6 2014 Die Aufgabenstellung wurde gem Auftrag klar definiert und die Projektinfrastruktur ist aufgesetzt Erste Einarbeitungen wurden vorgenommen und eine grobe Projektplanung besteht Erste JavaScript Prototypen mit Baum Libraries erstellt und mit Dummy Daten gef llt Die Datenbank wurde angebunden und erste Tabellen integriert Die Grundfunktionalit t der beiden B ume funktioniert Erste Nodes k
24. G Aufgabenstellung Die folgenden vier Seiten enthalten die offizielle Aufgabenstellung dieser Bachelorarbeit G 1 Scan Aufgabenstellung XXI G 1 SCAN AUFGABENSTELLUNG WE Daer Abteilung Informatik Fr hjahrssemester 2014 Seite E en Bachelorarbeit f r Marcel Tinner und Daniel Zigerlig CDAR Tool 1 4 Aufgabenstellung Bachelorarbeit Marcel Tinner und Daniel Zigerlig Collaborative Decision Management and Architectural Refactoring CDAR Tool 1 Auftraggeber und Betreuer Diese Studienarbeit wird in Vorbereitung einer Zusammenarbeit mit Industriepartnern durchgef hrt Betreuer HSR Prof Dr Olaf Zimmermann Institut f r Software ozimmerm hsr ch Unterst tzung Industriepartner Mehrere Firmen haben Interesse an einer Evaluation des CDAR Tools ge ussert die konkreten Ansprechpartner werden im Projektverlauf durch den Betreuer benannt 2 Ausgangslage Die Bachelorarbeit unterst tzt das IFS Institutsprojekt ARC in folgendem Forschungskontext Capturing decision knowledge in text documents is bound to fail in the long run as document oriented decision logs are hard to maintain and to process once they reach a certain size say 50 70 decisions captured With such approach sequential reading or full text searches are the main processing options Decision documentation models promise to improve the situation but also have to be created organized and maintained over time Furthermore textual decision logs are unable to
25. JsT JST Jun Leo07 Loc Mar Mav Med Mis Mys Nel Ola Ola14 Pro AngularJS Google https angularjs org Apache Tomcat http tomcat apache org Balsamig http balsamig com products mockups Bootstrap http getbootstrap com Wikipedia http de wikipedia org wiki CSS drone io https drone io Genson https code google com p genson GitHub https github com Gwtwiki https code google com p gwtwiki IFS Architectural Refactoring for Cloud ARC http www ifs hsr ch Architectural Refactoring for 12044 0 html amp L 4 Java Wikipedia API Bliki engine https code google com p gwtwiki Jersey RESTful Web Services in Java https jersey java net Joda Time http www joda org joda time JQuery http jquery com JSON http de wikipedia org wiki JavaScript_Object_Notation jsPlumb GitHub https github com sporritt jsPlumb jsTree http www jstree com JSTL https jstl java net JUnit http junit org Leonard Richardson S R 2007 RESTful Web Services ISBN 978 0 596 52926 0 S 251 Wikipedia http de wikipedia org wiki Lock Masse M REST API Design Rulebook Maven http maven apache org MediaWiki http www mediawiki org wiki MediaWiki Misha Wolf C W Date and Time Formats http www w3 org TR NOTE datetime MySQL http www mysal de Nelly Schuster O Z 2007 Web 2 0 Collaboration System for Architectural
26. Logic manager Consumer Manager Producer Manager Import amp Export Manager Repository Consumer Repository Data Access Producer Repository Layer User Repository Wiki Repository Abbildung 27 La ye r bersicht Serverteil 58 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 7 Aufbau der Clientapplikation Der CDAR Webclient basiert auf dem AngularJS JavaScript Framework und ist im Wesentlichen unterteilt in Views beziehungsweise HTML Seiten Services und Controllers Ein Controller ist ein ViewModel kombiniert mit Logik Er erm glicht eine bidirektionale Datenverbindung zwischen einer View und dem Controller Alle in der View genutzten Datenwerte werden durch den Controller angefordert bearbeitet und gespeichert Durch Services k nnen Logik und Bindungen an externe Ressourcen wie REST Webservices implementiert werden Diese sind als Singleton instanziiert und k nnen den jeweiligen Controllern durch Dependency Injection hinzugef gt werden Somit l sst sich eine Service Implementierung in verschiedenen Controllern einbinden und nutzen Die nachfolgende Grafik zeigt die Struktur der Client Applikation anhand der erstellten Views Services und Controllers Consumer Producer Reporting e Home e Home e Consumer e Projecttree i 0 E Producer Templates ImportExport Templates ImportExport ie Confirmation e Account e Heading Login Navigation Register SelectedEntry
27. Open Decided Accepted Rejected Closed Tabelle 49 Status bersicht Wenn Sie eine Entscheidung oder einen Knoten selektieren erscheint unterhalb folgender Abschnitt Auf der rechten Seite k nnen Sie den Status des jeweiligen Knotens ndern Decision Selected Decision Fundament auswaehlen Status open Open WikiPage in New Window READ WRITE DECISION Switch Wiki Page to Update Decision Wiki Title Abbildung 60 Status ver ndern H 2 6 11 Wiki Syntax Wikipedia verwendet ebenfalls MediaWiki Daher leiten wir Sie an dieser Stelle f r valide BE Syntaxelemente zur Hilfe vom Wikipedia weiter XLII H BENUTZERHANDBUCH H 2 7 Gemeinsame Nutzung Falls bereits ein Benutzer Ihr ausgew hltes Projekt am Bearbeiten ist k nnen Sie keine nderungen vornehmen Falls Sie nderungen vornehmen und das Projekt blockiert ist erscheint ein roter Balken am oberen Fensterrand Darin steht wer das Projekt bearbeitet und wie lange die Sperrung aktuell noch dauert Dies ist nur eine vor bergehende Zeitangabe welche sich ver ndert Die Sperrzeit wird bei jeder nderung wieder erh ht Object is locked by mtinner2 till Tue Jun 03 14 24 23 CEST 2014 Object is locked by mtinner2 till Tue Jun 03 14 24 23 CEST 2014 Collaborative Decision Management and Architectural Refactoring CDAR Tool Project Tree Konsument_Einfamilienhaus Abbildung 61 Lockingmeldung XLIII H BENU
28. Wiki Seiten ebenfalls exportieren wollen m ssen Sie einen Full Export durchf hren Dabei werden beim Import neue Wikiseiten angelegt Um ein Projekt zu importieren w hlen Sie eine Datei aus und klicken danach auf den Button Add Export Wenn Sie ein Importiertes Projekt bernehmen wollen best tigen Sie dies mit Import to Project In einem anschliessenden PopUp k nnen Sie entscheiden ob Sie die bereits von Ihnen eingetragenen Daten behalten oder berschreiben m chten turent RUE ANUWIEUgE FIUUULET Import Export Upload File Choose File No file chosen Simple Import Export with Wiki References Date Title Import Export Delete Full Import Export copying current wiki entires Date Title Import Export Delete 1 2014 05 30 Fundament Import to Project Save Delete Full Export 15 50 02 Abbildung 49 Import Export H 2 6 3Zugriffskontrolle ber den Button Access Right gelangen Sie in folgende Ansicht Backo project Access Right Name Delete Access Right 1 dani Delete 2 mtinner You can not delete your own Access Right Select a User WIEUS Ze Abbildung 50 Zugriffskontrolle Hier k nnen Sie Ihr erstelltes Projekt anderen Benutzern freigeben Dabei erlaubt man dem eingeladenen Benutzer alle Rechte welche auch der Ersteller des Projektes hat XXXV H BENUTZERHAN DBUCH H 2 6 4Projekt Report Untenstehend sehen Sie einen Report eines Projektes Dabei wird einen vollst ndigen Auszug d
29. Zeilen Code Dabei sind die HTML Files sowie CSS Files nicht eingerechnet Serverseitig beschreiben die Zahlen die effektiven Codezeilen ELOC clientseitig sind auch Kommentarzeilen mitgez hlt Anzahl Codezeilen Test REST an Client JavaScript 5295 Server Dal 3298 Server Pl 1882 Server Bll 3978 Abbildung 31 Anzahl Codezeilen A 1 KENNZAHLEN A 1 2 Aufteilung der Klassen der Server Anwendung Folgendes Diagramm zeigt die Verteilung sowie die Anzahl des CDAR Servers Insgesamt belaufen sich die Anzahl geschriebener Klassen auf 116 Anzahl Klassen Server Pl 19 Server Dal 43 Server BU 54 Abbildung 32 Anzahl Klassen A 1 3 Anzahl Datenbank Tabellen Die Applikation verwendet f r die Persistierung der Daten 19 Tabellen Dabei sind jene von MediaWiki verwaltete nicht eingerechnet A 1 4 Testing Um stets eine funktionsf hige Applikation zu verwenden nutzen wir mehrere Testverfahren A 1 4 1Integration Test Wir erstellten Integration Tests um die korrekte Funktionalit t zu gew hrleisten Dabei fokussierten wir uns auf die REST Schnittstelle sowie den Business Logic Layer A 1 4 2 Usability Test Wir entschieden uns Client Seitig kein Testframework zu verwenden Um dennoch die Funktionalit t und Benutzerfreundlichkeit zu berpr fen setzten wir auf Usability Tests Diese wurden vor allem im zweiten Teil der Projektzeit in Zusammenarbeit mit dem Betreuer durgef hrt Ergebnisse
30. id nodes id s ubnodes id Reguest URL ptrees id nodes id subnodes id GET liefert Subnode Methods POST bearbeitet Subnode id int creationTime Date lastModificationTime Date JSON Response Request E Stang f wikititle String nodeld int position int status int nur in der Rolle als Konsument Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 8 3 7 3 Subnode umbenennen Request URL ktrees id nodes id s ubnodes rename Methods POST ndert Subnode Name id int creationTime Date lastModificationTime Date JSON Request title String wikititle String nodeld int position int H id int creationTime Date lastModificationTime Date JSON Response sourceld int targetld int treeld int subnodeld int Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 91 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 7 4 Wiki Eintrag ktrees id nodes id subnodes id wiki Request URL ptrees id nodes id subnodes id wiki GET liefert Wiki Eintrag zum definierten Subnode Methods POST bearbeitet Wiki Eintrag zum definierten Subnode id int creationTime Date lastModificationTime Date JSON Response Request title String wikititle String wikiContentPlain String wikiContentHtml String B
31. ndern m ssen Sie dies in den Einstellungen von MediaWiki vornehmen Es k nnen Anmeldeschwierigkeiten entstehen wenn die Passw rter Ihres Accounts unterschiedlich sind Achten Sie deshalb darauf dass wenn Sie das Passwort in der Applikation ndern jenes von MediaWiki ebenfalls ndern Beachten Sie ebenfalls die Richtlinien welche f r die gesamte Applikation gelten diese sind im Kapitel H 2 2 1 zu finden Username mtinner Password Confirm Password Change Password Abbildung 38 ndern des Passwortes H 2 4 2 Einstellen hierarchischer Navigation Drill ber unten stehendes Feld kann die Standardtiefe der hierarchischen Navigation eingestellt werden Die Tiefe sollte so gew hlt werden dass nicht mehr als 50 Entscheidungen gleichzeitig angezeigt werden Mehr ber die Navigation istim Kapitel H 2 6 6 2 zu finden Default Drill Levels 4 Abbildung 39 Ebenen hierarchischer Navigation XXX H BENUTZERHANDBUCH H 2 5 Projekteverwaltung Es gibt zwei verschiedene Projekteverwaltungen Eine f r die Konsumenten Projekte und eine f r die Produzenten Projekte In die Ansicht gelangt man ber die rechte Seite bei Tree Overview Beim Konsumenten ist dabei zu beachten dass bereits ein Produzenten Projekt bestehen muss ansonsten kann keine Duplizierung eines Masterprojektes gemacht werden Dies entf llt beim Produzenten Bei der Duplizierung entsteht eine gesamte Kopie des Masterprojektes Anschliessende nderungen a
32. nnen im Client angezeigt werden Eine einfache Abfrage durch alle Schichten bis in die Datenbank konnte erstellt werden Erste Qualit tssicherungsmassnahmen erfolgt Die Template Funktion wurde in die Applikation integriert Erste Usability Tests mit Testusern durchgef hrt Refactorings und nderungen nach Codereview wurden vorgenommen Eine Locking Funktion zwecks Multi User Support in die Applikation eingebaut Reporting sowie Import und Export Funktionalit t implementiert Die gr ssten Bugs und Smells wurden durch Refactorings und Bugfixes aus der Applikation entfernt Dokumentationsaufbau sowie erste Kapitel wurden geschrieben Das AO Poster sowie die Kurzfassung der Studienarbeit sind dem Betreuer zugestellt Alle abzugebenden Artefakte sind dem Betreuer zugestellt worden XVII E 4 MEETINGS EA Meetings W hrend der gesamten Projektdauer findet jeweils am Dienstag um 17 Uhr ein w chentliches Statusmeeting statt Die Sitzungen werden jeweils von einem Studenten gef hrt sowie von Beiden protokolliert Das Projektteam stellt die Agenda der jeweiligen Sitzung bis sp testens am vorangehenden Montagabend bereit Das Sitzungsprotokoll wird dem Betreuer jeweils bis zum folgenden Mittwochabend zugestellt Zus tzlich k nnen weitere Sitzungen durch den Betreuer oder die Studenten angefordert werden Bei Kl rung von Fachfragen speziell JavaScript und AngularJS kann Herr Lukas Wegmann den Sitzungen beigezoge
33. st wird Die Entscheidung wird im Fall einer Sperrung jedoch nicht persistiert Ist das Projekt aktuell nicht in Bearbeitung durch einen anderen Benutzer so erstellt der Server eine neue Wiki Seite mit demselben Inhalt wie der Originalnode Ebenso werden dessen Optionen und deren Wiki Eintr ge kopiert Das Erstellen der Wiki Eintr ge geschieht parallel W hrenddessen sendet der Server die kopierte Entscheidung an den Client zur ck Die kopierte Entscheidung besitzt den Standardstatus Open Ebenso ist das Flag f r die Visualisierung im Entscheidungsf hrungsgraphen nicht gesetzt Im retournierten Node ist unter anderem die Identifikation abgelegt welche dem Client noch nicht bekannt ist Diese wird nun im Clientobjekt gesetzt Anschliessend gibt der Client dem Server den Befehl das Elternverzeichnis zu setzen Dieser Vorgang wird ebenfalls auf eine Sperrung berpr ft i Fa Client Server Meatawi DT Kin e Check Lock draw Node i DTD ie been ai vee Lock Ok i remove Node x get Wiki Page Text Node1 Page Title return Wiki Page Text return Node2 SE edit Wiki Page Text Node2 Page Title lt set Id of Node2 i copy all Subnodes move Node Node2 i Check Lock lt Lock Ok update Parent Id of Node2 L return Node neen EeE EE ENEE EE EIERE EE EE E Abbildung 18 Kommunikation Entscheidung kopieren 49 7 3 KOMMUNIKATION 73 3 Beispielkommunkation Node l schen
34. steer the initial design and review work on a project The existing decision capturing methods and tools do not make the need for decisions explicit in the design process they only allow decision makers to record log their decisions once they have identified and made them on their own As a consequence the preparation for design workshops and reviews is time consuming and error prone involving a lot of copy paste and other manual content assembly work as well as tacit knowledge To overcome the limitations of current practices novel concepts are needed 1 How to model decisions so that a they are useful for multiple projects and b do not age fast due to technology evolution 2 How to integrate decision reuse concepts into existing modeling and decision capturing tools in the light of technical and organizational diversity An example of a recurring design issue when moving a Web application to a cloud is session state management e g think of a shopping session in an online store The three top level design options are Client Session state Server Session State and Database Session State Client Session State scales well but has security and possibly performance problems this does not change when moving to a cloud platform Server Session State uses main memory or proprietary data stores in an application Olaf Zimmermann Datei 2014 FS BA TinnerZigerlig Ausgabe 1 0 Letzte Anderung am 12 03 14 CDARAufgabenstellungv10 docx XXII
35. zehn Sekunden Create Folder gt Show Route 4 Produzent Einfamilienhaus H l Dach L Dachform b Mansarddach Rb Satteldach Dachgiebel H B Friesengiebel fl Kapitaensgiebel aj Fundament Rb Baufirma X I Rb Baufirma Y b Fundament auswaehlen Abbildung 52 Entscheidungsverwaltung XXXVII H BENUTZERHAN DBUCH H 2 6 6Entscheidungsf hrungsgraphen Den Entscheidungsf hrungsgraphen k nnen Sie anhand der vorg ngig erstellten Entscheidungen zusammenstellen Entscheidungen bringen Sie durch Drag amp Drop von der Entscheidungsverwaltung in den Graphen Diese Entscheidungen im Entscheidungsf hrungsgraphen sind Verlinkungen d h wenn Sie eine Entscheidung in der Verwaltung l schen so wird der dazugehdrende Knoten auch im Entscheidungsf hrungsgraphen gel scht inklusive s mtlicher Erweiterungen siehe Kapitel H 2 6 8 Optionen und anh ngenden Verbindungen Bevor Sie Elemente l schen k nnen m ssen Sie diese selektieren Die Selektion ist durch die Ver nderung der Elementfarbe sichtbar Bei Knoten werden auch anh ngende Verbindungen selektiert Anschliessen k nnen Sie die Elemente ber den Button Remove Selected Element From Graph entfernen Dabei ist zu beachten dass Links vollst ndig gel scht werden Knoten hingegen nicht diese werden nur vom Entscheidungsf hrungsgraphen entfernt Entscheidungserweiterungen bleiben dabei erhalten Wenn Sie ein Projekt ffnen f hrt das Progra
36. 12 Mockup Hauptseite Wissenskonsument Nach einem erfolgreichen Login des Benutzers in der Rolle als Wissenskonsument zeigt die Applikation eine bersicht der angelegten Projekte ber eine Eingabe kann auch ein neues Projekt hinzugef gt werden 38 5 ARCHITEKTURDESIGN 5 2 2 6 2 Projektansicht CDAR Hauptseite Wissensproduzent a EI Peter Muster Wissensproduzent Logout Decision a Zra SS Architectural Refactoring De SQL Context viewpoint refinement level Quality attributes and stories forces Logical viewpoint data viewpoint all levels Flexibility data integrity Smell refactoring driver Ittakes rather long to update the data model and to migrate existing data Architectural decision s to be revisited Choice of data modeling paradigm current cecision is relational Choice of metamodel and query language current decision is SQL Refactoring solution sketch evolution outline Use document oriented database such as MongoDB instead of RDBMS such as MySQL Redesign transaction management and database administration Affected components and connectors if modelled explicitly Database s Data access layer Execution tasks in agile planning tool and or full fledged design method Design document layout ue the pendant to the machine readable SQL DDL Write new dala access layer implement SQLish query capabilities yourself Decide on transaction boundaries if any documen
37. 400 Fehlerhafte Requestdaten ktrees delete ptrees delete POST l scht Baum Begr ndung Abfrage erfolgreich Fehlerhafte Requestdaten 82 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 4 Export Import 8 3 4 1 Export Erstellung und Abfrage ktrees id export R RL equest U ptrees id export GET liefert samtliche erstellten Exports Methods POST erwartet einzelne Ressource H id int creationTime Date JSON Response Request lastModificationTime Date title String xmlString String isFull bool Begr ndung Abfrage erfolgreich HTTP Status Code Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 8 3 4 2 Spezifischer Exportabfrage und Bearbeitung ktrees id export id R RL equest ptrees id export id GET liefert einen spezifischen Export Methods POST erwartet einzelne Ressource id int creationTime Date lastModificationTime Date JSON Response Request title String xmlString String isFull bool Begriindung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 83 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 4 3 Exportdaten in den Baum aufnehmen ktrees id export id set ptrees id export id set GET importiert den jeweiligen Export in den Baum Begr ndung Abfrage erfolgreich Fehlerhafte Requestdaten Request URL Methods HTTP Status Code
38. D DVD in zwei Exemplaren abzugeben Bei der Projektdokumentation sind die Anleitungen des Studienganges inklusive Anh ngen zu beachten siehe https www hsr ch Allgemeine Infos Diplom Bach 4418 0 html Zudem ist eine kurze Projektresultatdokumentation f r das Wiki von Prof Zimmermann erw nscht ggfs kurzes Video 7 Termine Die generellen Termine sind der HSR internen Webseite https www hsr ch Termine Bachelor und Studiena 5142 0 html zu entnehmen Dazu kommen die folgenden Termine e Der Abstract muss abweichend von den generellen Terminen bereits am 3 6 2014 bereit zum Review sein e Die m ndliche BA Pr fung ist vorl ufig f r den 8 8 2014 geplant die endg ltige Terminbest tigung erfolgt wenn der Gegenleser benannt ist Allfallige weitere Termine sind bereits per Email vom Sekretariat der Abteilung Informatik mitgeteilt worden bzw sind dort zu erfragen nderungen und Erg nzungen sollten in einem Sitzungsprotokoll dokumentiert werden 8 Beurteilung Eine erfolgreiche Bachelorarbeit z hlt 12 ECTS Punkte pro Studierenden F r 1 ECTS Punkt ist eine Arbeitsleistung von ca 25 bis 30 Stunden budgetiert Siehe auch Modulbeschreibung der Bachelorarbeiten http studien hsr ch allModules 24809_M_BAI14 html Olaf Zimmermann Datei 2014 FS BA TinnerZigerlig Ausgabe 1 0 Letzte nderung am 12 03 14 CDARAufgabenstellungv10 docx XXIV G AUFGABENSTELLUNG WE Demut mom Abteilung Informatik Fr hjahrssemester 2014 Seite
39. E HSR HOCHSCHULE F R TECHNIK D 2 RAPPERSWIL FHO Fachhochschule Ostschweiz Collaborative Decision Management and Architectural Refactoring CDAR Tool Bachelorarbeit Technischer Bericht Abteilung Informatik Hochschule f r Technik Rapperswil Fr hjahressemester 2014 Autoren Marcel Tinner Daniel Zigerlig Betreuer Prof Dr Olaf Zimmermann Experte Dr Gerald Reif ipt Gegenleser Prof Oliver Augenstein 12 Juni 2014 Abstract Architekturentscheidungen und ihre Begr ndungen werden im Rahmen von Softwareprojekten meist als strukturierte Texte erfasst in der Literatur werden zahlreiche Templates f r diese Dokumentationsaufgabe vorgeschlagen Ein rein textbasierter Ansatz hat aber zahlreiche Nachteile z B eingeschr nkte Teamf higkeit und fehlende Skalierbarkeit Die Bachelorarbeit untersucht ob diese Nachteile berwunden werden k nnen indem eine existierende Wiki Engine mit einem neu zu erstellenden entscheidungsbaumorientierten Rich Client im Browser kombiniert wird Zu den Herausforderungen dieser Bachelorarbeit geh rt die Erstellung eines Gesamtkonzeptes f r User Interface und Software Architektur die Implementierung eines Prototypen die Integration eines nativen Webclients und der Wiki Engine MediaWiki sowie ein modularer und konfigurierbarer L sungsansatz als Grundlage f r zuk nftige Erweiterungen Neben einer benutzerfreundlichen Prototypen Implementierung ist auch eine anforderungsgerechte erw
40. Iteration 2 Baumansichten Drag amp Drop Grundfunktionalit t des Entscheidungsf hrungsgraphen Grundfunktionalit t Entscheidungsverwaltung Authentifizierung Datenbankfunktionalit t Hibernate Datenbankfunktionalit t JDBC Qualit tssicherungsmassnahmen Data Access Layer Refactorings Zwischenpr sentation Node Anzeige mit Options verschoben Reserve Meetings Meilenstein Erster Prototyp Meilenstein Zwischenpr sentation Meilenstein Erstes Codereview durch Betreuer Meilenstein Ende Realisierung Iteration 2 Iteration 3 Node Anzeige mit Options Einpflege Funktionalit t f r Options Template Funktion Qualit tssicherungsmassnahmen Business Logic Layer Qualit tssicherungsmassnahmen REST Api Calls Hauptfunktionalit t Knowledge Producer Anzeige Entscheidungsf hrungsgraph Teilbaum Reserve Meetings Meilenstein Funktionalit t Knowledge Producer Meilenstein Teilbaumanzeige Meilenstein Ende Realisierung Iteration 3 XV E 2 6 E 2 ARBEITSPLANUNG Iteration 4 Hauptfunktionalitat Knowledge Consumer Usability Tests Sample Daten einf gen Refactorings gem ss Codereview L Wegmann und O Zimmermann Dokumentation Reserve Meetings Meilenstein Funktionalit t Knowledge Producer Meilenstein Ende Realisierung Iteration 4 Iteration 5 Multi User Funktionalit t Export strukturierter Inhalt Import Export Inhalt Reporting HTML PDF XML Reserve Meetings Meilenstein
41. Jun 03 14 24 23 CEST 2014 Collaborative Decision Management and Architectural Refactoring CDAR Tool Project Tree Konsument_Einfamilienhaus ES Abbildung 15 Lockingmeldung Der Benutzer wird informiert bevor Ver nderungen sichtbar sind Das heisst wenn der Benutzer eine neue Entscheidung erstellen will wird dieser dar ber informiert und kann die Aktion nicht vollenden Die Entscheidung welche er erstellen wollte erscheint nicht und wird auch nicht gespeichert Diese Reihenfolge trifft auf folgende zwei Szenarien nicht zu e Verbindung erstellen e Ordner Entscheidungen kopieren In diesen F llen sind nderungen am Projekt sichtbar bevor der Benutzer dar ber informiert wird dass eine Sperrung auf das Projekt besteht Die vorgenommenen nderungen werden aber nicht persistiert Ein Beispiel f r den genauen Ablauf der Kommunikation ist im Kapitel 7 3 2 Beispielkommunikation Node kopieren festgehalten Diese Sperrung bezieht sich ausschliesslich auf projektver ndernde Aktionen Im Rahmen dieser Bachelorarbeit kann die Sperrung nicht explizit freigegeben werden Die Sperrung wird nach einer einstellbaren Zeit vom Server Freigegeben Mehr Informationen zur Konfiguration sind im Kapitel H 2 8 Konfigurationen der Applikation zu finden 46 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 3 Kommunikation Die Kommunikation zwischen Client und Server erfolgt ber HTTP Der Client spricht jeweils die RESTful WebAPI des Servers an
42. L scht der Benutzer einen Wissenseintrag sendet der Client eine delete Node Anfrage mit der Identifikation des zu l schenden Nodes an den Server Der Server pr ft nun ob das Projekt bereits durch einen anderen Benutzer bearbeitet wird Ist dies der Fall wird der ganze Vorgang durch eine Lock Antwort abgebrochen Es erscheint eine entsprechende Meldung welche dies dem Benutzer signalisiert Ist das Projekt aktuell nicht in Bearbeitung durch einen anderen Benutzer so best tigt der Server dies durch eine Best tigung des Auftrages Anschliessend l scht der Client die Entscheidung aus der Projektverwaltung Ebenso veranlasst der Client das L schen des Knotens sowie dessen Verbindungen im Entscheidungsf hrungsgraphen falls der Node in diesem vorhanden ist delete Node id Tree is locked i Check Lock SOO I Lock Ok delete Node delete Ok i delete Node JsTree i detach Connections JsPlumb i remove Node JsPlumb Abbildung 19 Beispielkommunikation Entscheidungl schen 50 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 3 4 Beispielkommunkation Node Drag amp Drop Der Verschiebevorgang einer Entscheidung von der Entscheidungsverwaltung in den Entscheidungsf hrungsgraphen l st zuerst den Start Drag amp Drop Event aus Dabei berpr ft der Client im n chsten Schritt ob diese Entscheidung bereits im Graphen vorhanden ist Dies wird durch den Drag amp Drop Move Event ausgel st Ist dies der Fall kann der
43. Model REST Reifegradmodell von Leonard Richardson Mar Die nachfolgende Tabelle zeigt s mtliche Levels des Reifegradmodells Wik1 Level Eigenschaften 0 e verwendet XML RPC oder SOAP e der Service wird ber eine einzelne URI adressiert verwendet eine einzelne HTTP Methode POST 1 e verwendet verschiedene URIs und Ressourcen e verwendet eine einzelne HTTP Methode POST 2 e verwendet verschiedene URIs und Ressourcen verwendet mehrere HTTP Verben 3 e basiert auf HATEOAS verwendet Hypermedia f r Navigation e verwendet verschiedene URIs und Ressourcen verwendet mehrere HTTP Verben Ta belle 42 RESTful Level Beschreibungen Auf die Anwendung von PUT und DELETE verzichtet die Implementierung bewusst In vielen Firmen ist es blich dass diese Aufrufe durch Firewall Einschr nkungen verhindert werden Der Aufruf von n tigen Editier sowie L sch Operationen erfolgen durch Funktions deklarationen im Aufrufpfad der Ressource Leo07 73 8 1 BERSICHT DER SCHNITTSTELLE 8 1 bersicht der Schnittstelle Der Platzhalter id bezieht sich jeweils auf die vorhergehende Ressource Bei den Date Variablen erzeugt die Schnittstelle ein Datum im Format nach ISO 8601 Mis Bei s mtlichen Update Aufrufen ist das Identit tsattribut im JSON Objekt optional da die Schnittstelle das Feld des Objektes durch den angegebenen Wert im Aufrufpfad berschreibt 8 1 1 User Ressourcen Nachfolgende Beschreibunge
44. Modellierung der Tabellen mit den zugeh rigen Entit ten Beziehungen und Zwischentabellen resultierte ein aufwendigeres Modell kteid INT Pont creation time DATETIME last_modification_time DATETIME 9 creation_time DATETIME 9 last_modification_time VARCHAR 45 nid INT creation_time DATETIME Q last_modification_time DATETIME ksnid INT creation_time DATETIME Q last_modification_time DATETIME Wee Svid VARCHARS li datt ekrid INT title VARCHAR 45 Omat TEXT Gamer title VARCHAR 45 templatetext TEXT OK INT Okenid INT wikititle VARCHAR 45 tuliflag INT ktid INT isdefault INT decisionmade INT 9 issubnode INT ktrid INT uid INT ktrid INT Vid INT uid INT ereation_time DATETIME 9 last_modification_time DATETIME usemame VARCHAR 45 password VARCHAR 45 accesstoken VARCHAR 45 gt drill_hierarchy INT kptid INT ven INT creation_time DATETIME last_modification_time DATETIME uid INT kpnid INT comment VARCHAR 200 uid INT U kptid INT o Tabelle 20 Entity Relationshop Model creation_time DATETIME last_modification_time DATETIME title VARCHAR 45 creation_time DATETIME last_modification_time VARCHAR 45 gt uid VARCHAR 45 xmistring VARCHAR 45 gt treeid VARCHAR 45 fullflag VARCHAR 45 Hi F
45. OGIEN 6 2 2 JavaScript Plugin Entscheidungsverwaltung Beschreibung e jsTree JsTree ist ein JQuery Plugin zur Visualisierung von interaktiven Baumdarstellungen Dabei sind Elemente wie in einem Betribesystemverzeichnis verschachtelt Die Library ist OpenSource und steht unter der MIT Lizenz JsT Vorteile e Aktive Entwicklung e Kein grosses Vorwissen notwendig Nachteile e Wenig Beispielcode durch den Hersteller vorhanden e Produkt istabh ngig von einer einzelnen Privatperson 6 2 3 JavaScript Plugin Entscheidungsf hrungsgraphen Beschreibung jsPlumb JsPlumb ist eine Java Script Library zur Visualisierung von Graphen Die Knoten des Graphen k nnen verschoben und miteinander verkn pft werden Die Library steht unter einer Duallizenzierung von MIT und GPLv2 JsP Vorteile e Aktive Weiterentwicklung e Informative Webseite mit Codebeispielen Nachteile e Bietet kein automatisches Anordnen des Graphen e Produkt ist abh ngig von einer einzelnen Privatperson Alternativen e D3 js 42 6 EVALUATION DER TECHNOLOGIEN ZUR UMSETZUNG DER ARCHITEKTUR 6 3 Wiki Software MediaWiki wurde urspr nglich f r die Wikipedia programmiert und ist als freies Softwarepaket erh ltlich Viele im Internet zug ngliche Wikisysteme werden durch MediaWiki betrieben Die Wiki Engine steht unter der GPL Lizenz Med MediaWiki Vorteile e Grosse Verbreitung und somit grosse Community e Aktive Weiterentwicklung e Bekannte Syntax Nac
46. On 55 Abbildung 25 Entscheidungsverwalltung nen nnnnnnnnneennnnn 56 Abbildung 26 Entscheidungsfthrungsgraphen cccccsessssecececeeescessssseaeeececeeessessaeaeseeeeeeens 57 Abbildung 27 Layer bersicht Servertell nn nnnnnnnnneennnnn 58 Abbildung 28 Aufbau des Clients 59 Abbildung 29 Beispielinhalt EntscheidungsverwaltUng cccccccessssssscececeeeecsssssseaeeeeeeseeees 65 Abbildung 30 Beispielinhalt Entscheidungsf hrungs graphen ssssessseesesssssserereeesessssesrrees 65 Abbildung 31 Anzahl Codezeilen ccccccsssssccececcecscsessnssaeeeceeecesseseaeeeeeeeeeseessessaaeeeeeeeeseneees Abbildung 32 Anzahl Klassen EEN II Abbildung 33 Prolektaubwand annenin EEEE EE eR KEE e aaea a XIX Abbildung 34 Zeitaufwand pro Weraton sen nnnnnnnnneennnnn XX Abbildung 35 Registration ccccccccccccccsssssssssececeeceecessesseaeeeeeeseeseeeseaeaeeeeeesesssesnsaeseeeeeens XXVIII Abbilduing 362 EE XXVIII Abbildung 37 Angemeldeter Rollenwechsel ccccccessssscecececceecessesseeeeeeeescessessaaesaeeeeees XXIX Abbildung 38 ndern des PassworteSs ivcsccscssssassnesesasvecenvaseoeoussesetessersiveviscevwesaveesscausetonedusonsves XXX Abbildung 39 Ebenen hierarchischer Navigatton XXX Abbildung 40 Projekteverwaltung Konsument cceceesssssceceeeeecesceessneseceeeeecessnssaaeeeeeeeees XXXI Abbildung 41 Projekt bersicht Produzent XXXI Abbildung 42 Run XXXII zeichnis der Abbildu
47. Parameter treeld steht als Platzhalter f r eine jeweilige Baum ld 60 7 IMPLEMENTIERUNG DER ARCHITEKTUR View Controller Beschreibung projecttree treeld importexport View Controller Beschreibung knowledgetree treeld importexport knowledgetree View treeld Controller knowledgetree View treeld templates Controller Beschreibung View Controller Beschreibung knowledgetree treeld users projecttree treeld u View sers Controller Beschreibung View Controller Beschreibung account Tabelle 17 Zusammenhang Views und Controllers ImportExport ImportExport Controller Ansicht fiir Import und Export Funktionalit ten des Wissenskonsumenten Der Parameter treeld steht als Platzhalter f r eine jeweilige Baum ld ImportExport ImportExport Controller Ansicht f r Import und Export Funktionalit ten des Wissensproduzenten Der Parameter treeld steht als Platzhalter f r eine jeweilige Baum ld Knowledgetree TreeController Spezifische Ansicht eines Baumes in der Rolle als Wissensproduzent Der Parameter treeld steht als Platzhalter f r eine jeweilige Baum ld Templates Templates Controller Ansicht f r die Bearbeitung und Erstellung von Wiki Seiten Templates Der Parameter treeld steht als Platzhalter f r eine jeweilige Baum ld Useraccess AccessController Ansicht um Benutzern den durch den Parameter treeld definierten Baum freizugeben Useraccess AccessControll
48. TZERHAN DBUCH H 2 8 Konfigurationen der Applikation In der Applikation ist ein Property File eingepflegt Die Datei ist im Projekt unter sre main resources abgelegt Konfigurierbar sind Namensgebungen Zieladressen und Werte Property Beschreibung Beispieleintrag CDAR_LOCAL_DB_ Datenbankzieladresse CDAR_LOCAL_DB_CONNECTION jdbc mysql CONNECT ION localhost 3306 cdar CDAR_LOCAL_DB_ Datenbankbenutzer CDAR_LOCAL_DB_USER root USER CDAR_LOCAL_DB_ Datenbankpasswort CDAR_LOCAL_DB_PASSWORD PASSWORD CDAR_DIRECTORY_ Namensgebung f r die CDAR_DIRECTORY_DESCRIPTION Folder DESCREFEION Projekt bersicht und den Report CDAR_NODE_ Namensgebung f r die CDAR_NODE_DESCRIPTION Decision Saale TAKAN Projekt bersicht und den Report CDAR_SUBNODE_ Namensgebung f r die CDAR_SUBNODE_DESCRIPTION Option DESCRIPTION Projekt bersicht und den Report CDAR_MEDIAWIKI_ Verbindungsadresse zu CDAR_MEDIAWIKI_CONNECTION 152 96 80 3 CONNECT ION MediaWiki Ohne Q mediawiki http angeben CDAR_MEDIAWIKI_ Erweiterung f r direkten CDAR_MEDIAWIKI_PAGEURL index php PAGEURL Zugang zur MediaWiki Seite CDAR_EXPANDING_ Anzahl anf nglich CDAR_EXPANDING_LEVEL 4 EL ausgeklappter Stufen in der Entscheidungsverwaltung CDAR_LOCKING_ Ausschluss gegen CDAR_LOCKING_HOUR HOUR gemeinsame Bearbeitung in Stunden CDAR_LOCKING_ Ausschluss gegen CDAR_LOCKING_MINUTE 15 MINUTE gemeinsame
49. Wissen einzupflegen Beim jeweiligen Projekt gibt es zwei Ansichten auf bereits eingetragene Daten Diese bestehen aus einer Entscheidungsverwaltung in welcher s mtliche Eintr ge ersichtlich sind und zudem aus einem Entscheidungsf hrungsgraphen in welchem die Entscheidungen miteinander verkn pft werden k nnen Ein Wissensproduzent erh lt zudem die M glichkeit seine eingepflegten Informationen zu exportieren bzw wieder zu importieren In der nachfolgenden Tabelle sind die Anforderungen an den Bereich des Wissensproduzenten beschrieben Funktion Anforderung Einschrankungen 1 Ein Wissensproduzent kann Wissensb ume verwalten 2 Einem vorhandenen Wissensbaum k nnen wiederkehrende Architekturentscheide hinzugef gt werden 3 Die Applikation erm glicht das Hinzuf gen von Unterpunkten Options an einem erstellten Architekturentscheid 4 Die Applikation bietet eine Export sowie Import Funktion zum Zwecke von Datenaustausch zwischen Wissens produzent 5 Die Applikation erm glicht es es dem Wissensproduzent s mtliche erfasste Daten durch die Entscheidungsverwaltung anzuzeigen Es existieren M glichkeiten zur Ordnung Gruppierung sowie Filterung der Daten 6 Eine baumartige Ansicht erm glicht es dem Wissensproduzent einen Ablauf in einem Projekt anhand der eingepflegten Daten zu modellieren sowie umzubauen Die Applikation erm glicht es dem Benutzer den kompletten Inhalt der Applikation in
50. alit t Grundfunktionalit t der Baum Libraries Datenbankfunktionalit t Realisierung 3 2 Wochen Template Funktion Hinzuf gen von Options Funktionalit t erste Qualit tssicherungsmassnahmen Realisierung 4 2 Wochen Abschliessen der Hauptfunktionalit ten des Wissenskonsumenten Realisierung 5 2 Wochen Multi User Funktionalit t Export Inhalt Implementierung Realisierung6 2 Wochen Allgemeine Fehlerbehebungen Refactorings Dokumentation weitere User Tests Auswertung 2 Wochen Finalisierung der Dokumentation sowie Erstellung der HSR Artefakte Tabelle 45 Projektiterationsbeschreibung XIII E 2 ARBEITSPLANUNG E 2 Arbeitsplanung Die Arbeitsplanung beinhaltet detailiertere Ausf hrungen der zu realisierenden Arbeitspakete aufgeteilt in die jeweiligen Projektphasen E 2 1 Analyse e Meetings e Arbeitsplanung grob e Arbeitsplanung fertigstellen e Aufgabenstellung BA formulieren e Dokumentation e Reserve e Entscheidung Technologie e Meilenstein Technologie Entscheidung e Meilenstein Ende Analyse E 2 2 Realisierung E 2 3 Iteration1 e Entscheidungsverwaltung Dummy Daten e Entscheidungsf hrungsgraphen Dummy Daten e Einrichtung Datenbank MySQL e Einrichtung Hibernate e Grundstruktur AngularJS e Dokumentation e Reserve e Meetings e Meilenstein Anzeige Testdaten im Client e Meilenstein Ende Realisierung Iteration 1 XIV E PROJEKTPLANUNG E 2 4
51. anzeigen lassen Ifs Ola Ger Applikation L Wissensproduzent CN 1 deren gt Pflegt Entscheidungen in die Applikation ein e Option u vi e Option 2 e Modelliert Abh ngigkeiten der Entscheidungen Option 1 Option 2 Wissenskonsument e Arbeitet anhand der eingepflegten Informationen eines Wissensproduzenten Entscheidung 2 Entscheidung 2 e Sieht m gliche Entscheidungen welche er aktuell im D gt Projekt treffen sollte Sieht m gliche Optionen wie er die Entscheidungen Abbildung 1 Rollenaufteilung in der Applikation umsetzen kann Akzeptiert oder lehnt eine Entscheidung ab Legt neue Entscheidungen an 1 http www ifs hsr ch Architectural Refactoring for 12044 0 html amp L 4 12 1 MANAGEMENT SUMMARY 1 4 Resultat Das Ergebnis dieser Bachelorarbeit ist ein funktionsf higer Prototyp in Form einer Webapplikation sowie einer Server Komponente mit einer RESTful WebAPI Die etablierte Software Architektur erm glicht das einfache Anbinden weiterer Services an den erstellten Server In der Webanwendung kann der Benutzer als Wissensproduzent oder konsument arbeiten Als Wissensproduzent kann er m gliche Entscheide in die Applikation aufnehmen und dokumentieren Der Server leitet alle Entscheidungsbeschreibungen beziehungsweise Dokumentationen an MediaWiki weiter Diese kann sich als eigenst ndige Instanz auch ausserhalb des Applikationsservers befinden und l sst sich konfi
52. be Um den Implementierungsaufwand m glichst gering zu halten haben wir uns f r das Java Jersey Framework entschieden a gt avada Es gibt viele Implementierungen des REST Architekturstils in p Java bei Jersey handelt es sich um die Open Source Referenz ee Implementierung Sowohl in der Entwicklung als auch der Produktion ist diese Implementierung sehr weit verbreitet Jer Vorteile e Weit verbreitet und somit grosse Community e Einfach anzuwenden durch die Nutzung von Annotations 40 6 EVALUATION DER TECHNOLOGIEN ZUR UMSETZUNG DER ARCHITEKTUR 6 1 3 Datenbanktechnologie F r den Datenbankzugriff wurde MySQL mit einfachen JDBC Abfragen gew hlt In Zukunft w re auch die Nutzung von einer NoSQL Datenbank m glich Die Kapselung der verschiedenen Layer erlaubt einen Austausch der Data Access Schicht ohne Refactorings durch alle Schichten 6 2 Clienttechnologien 6 2 1 JavaScript Framework Beschreibung AngularJS ist ein OpenSource JavaScript Framework von Google Mit Angular lassen sich Single Page Applications fur den Browser entwickeln welche clientseitig lediglich HTML CSS sowie JavaScript bendtigen Ang Vorteile e Vorwissen vorhanden durch Miniprojekt im Modul Internettechnologien e Grosse Community e Setzt auf REST Designprinzipien und transferiert Daten als JSON Objekte Nachteile e Sehr m chtig bietet viele M glichkeiten Alternativen e Ember js e Backbone js 41 6 2 CLIENTTECHNOL
53. beinhaltet s mtliche eingepflegte Wissenseintr ge Sie erm glicht dem Benutzer das Ordnen der Eintr ge in verschiedene Verzeichnisse sodass er eine bersicht ber seine eingepflegten Daten erh lt und durch sie navigieren kann 5 2 2 4 2 Entscheidungsf hrungsgraphen Sobald der Anwender einige Wissenseintr ge angelegt hat lassen sich diese in den Entscheidungsf hrungsgraphen ziehen Durch das Verbinden dieser Eintr ge besteht die M glichkeit einen Ablauf zu modellieren Dies entscheidet schlussendlich wie sich sp ter ein Wissenskonsument durch ein Projekt f hren l sst 5 2 2 5 Entscheidungsansicht Nach Auswahl eines Wissenseintrages in der Entscheidungsverwaltung beziehungsweise im Graphen erscheint am unteren Rand eine Ansicht welche die Architekturentscheidung respektive das Architectural Refactoring anzeigt Dar ber hinaus kann der Anwender den Eintrag ver ndern erg nzen oder auch l schen Diese Funktionalit t wird an dieser Stelle nur erw hnt und ist auf den Wireframes nicht ersichtlich 5 2 2 6 Wissenskonsument Nachfolgende Mockups beziehen sich auf Ansichten auf welche der User in der Rolle als Wissenskonsument trifft 5 2 2 6 1 Hauptseite CDAR Hauptseite Wissenskonsument IE Peter Muster Wissenskonsument Logout Projekte Letzte Entscheidungen Projekt 1 Projekt 1 SessionState DBSessionSate Projekt 2 Projekt 1 SessionState DBSessionSate Projekt 3 Projekt hinzuf gen Abbildung
54. beitet ein Template ktrees id templates delete L scht ein Template 77 Benutzerrolle 8 2 HTTP STATUSCODES 8 1 5 Wissenskonsument Ressourcen Nachfolgend beschriebene Ressourcen stehen lediglich der Benutzerrolle Wissenskonsument zur Verf gung ptrees id nodes id comments Liefert alle Kommentare eines Wissensnodes ptrees id nodes id comments Erstellt einen neuen Kommentar ptrees id nodes id comments id Liefert einen spezifischen Kommentar ptrees id nodes id comments id Bearbeitet einen Kommentar ptrees id nodes id comments delete L scht einen Kommentar 8 2 HTTP Statuscodes Die Beantwortung einer Anfrage an die CDAR WebAPI erfolgt durch einen HTTP Statuscode W hrend die erfolgreichen Antworten im Payload des Bodys die gew nschte Ressource enthalten generiert der Server bei einer Anfrage welche eine Exception ausl st mit einem Fehler Statuscode W3 Statuscode Beschreibung 200 OK Anfrage war erfolgreich Gew nschte Ressource im Payload der Antwort 201 Created Erstellung der Ressource war erfolgreich Gew nschte Ressource im Payload der Antwort 400 Bad Request Gew nschte Anfrage konnte vom Server nicht beantwortet werden 401 Unauthorized _ Benutzer hat falsche oder keine Authentifizierungsdaten im Header der Anfrage mitgesendet 409 Conflict Benutzer hat eine Anfrage unter falscher Annahme gestellt Das Projekt istin Bearbeitung
55. bstsemester dieses Jahres sind Erweiterungen f r die Applikation in Form einer weiteren Bachelorarbeit geplant Dar ber hinaus haben wir im Laufe der Arbeit folgende Erweiterungen identifiziert Verbesserung der Anwendungssicherheit bspw m chtigerer Zugriffskontroll mechanismen Entwicklung eines Tablet oder Mobile Clients unter Einsatz von Responsive Design Prinzipien Einbindung von weiteren Wiki Engines wie beispielsweise Confluence Die Applikation ist auf Instanz von Entscheidungen und Optionen aufgebaut als Erweiterung k nnten aber auch Refactorings mit Umbauaufgaben hinzugef gt und unterschieden werden Einbindung eines UML Tools wie Enterprise Architect um die Architekturentscheidung nahe an andere Architekturdokumentation Artefakte zu bringen Die Software wurde bewusst sehr generisch gehalten dies erm glicht den Einsatz auch in anderen Bereichen als der Informatik Es ist geplant den Prototypen Industriepartnern vorzustellen und ebenfalls in dessen Projekten zu integrieren 100 A Qualitatssicherungsmassnahmen A 1 Kennzahlen Um die Codequalit t besser zu beschreiben beinhalten nachfolgende Abschnitte einige Kennzahlen welche einen berblick ber die Applikation und ihre Schichten geben bersicht Kennzahl Anzahl Tabelle 44 Kennzahlen A 1 1 Anzahl Codezeilen Um eine Ubersicht auf den Projektumfang zu erlangen zeigt folgende Grafik die Anzahl Codezeilen Das ganze Projekt enth lt 17 740
56. cation_time parentid Feld creation_time last_modification_time parentid Baufirmen Tabelle 27 Datenbanktabelle Directory Beispielinhalt 3 68 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 8 1 5 Tabelle Node In der Tabelle Node speichert der Server die angelegten Wissenseintr ge eines Benutzers Feld Typ Beschreibung Prim rschl ssel der Entit t creation_time DATETIME Datum und Zeit der Erstellung Aktualisierungszeitpunktes INT Verweis auf den Baum welcher den Tea l VARCHAR 45 Titel des Wissenseintrages VARCHAR 45 Referenziert die jeweilige Wiki Seite im MediaWiki dynamictreeflag INT Boolsches Attribute wenn Wert auf 1 ist Wissenseintrag im Entscheidungsf hrungsgraph sichtbar Tabelle 28 Datenbanktabelle Node Nachfolgende Tabellen enthalten die Daten aus dem beschriebenen Beispiel Feld Wert 2014 05 28T11 52 19Z last_modification_time 2014 06 05T14 59 14Z goe Fundament ausw hlen wikititle NODE_31 dynamictreeflag 1 Tabelle 29 Datenbanktabelle Node Beispielinhalt 1 Feld 2014 05 28T11 52 19Z D E last_modification_time 2014 06 05T14 59 14Z le Baufirma X wikitile NODE 32 dynamictreeflag 1 Tabelle 30 Datenbanktabelle Node Beispielinhalt 2 e w w N Feld 2014 05 28T11 52 19Z ication_ti 2014 06 05T14 59 14Z last_modification_time d 1 title Baufirma Y wg NODE33 dynamictreeflag 1 Tabelle 31 Datenbanktabelle Nod
57. ch der Wiki Eintrag der Vorlage Diesen k nnen Sie Uber den Tab Write editieren und danach speichern Selected Template Decision_Template Hier k nnen Sie Ihre Vorlage f r Entscheidungen verfassen Abbildung 44 Entscheidungsvorlage Wiki XXXII H BENUTZERHANDBUCH H 2 6 1 2 Optionsvorlagen Erstellen und Verwalten von Optionsvorlagen Folgendes Bild zeigt den Abschnitt in welchem Sie Vorlagen f r die Optionen erstellen und verwalten k nnen Sie k nnen jeweils nur eine erstellte Vorlage als Standardvorlage ausw hlen Die ausgew hlte Standardvorlage erscheint als Vorlage eines Wiki Eintrages welche Sie im Abschnitt H 2 6 7 Verfassen von Entscheidungen sehen Der Wiki Eintrag welchen Sie dort sehen ist eine Kopie der Vorlage Option Templates Name Edit title Default Delete 1 First_Option_Template edit title false Delete Template Second_Option_Template edit title false Delete Template Add Template Abbildung 45 Optionenvorlagenverwaltung Verfassen von Optionsvorlagen Wenn Sie eine erstellte Vorlage selektieren dann erscheint im unteren Fensterbereich der Wiki Eintrag der Vorlage Diesen k nnen Sie ber den Tab Write editieren und danach speichern Selected Template First_Option_Template READ WRITE Hier k nnen Sie Ihre Vorlage f r Optionen verfassen Abbildung 46 Optionenvorlage Wiki XXXIII H BENUTZERHAN DBUCH H 2 6 1 3 Konsumentenvorlagen Erstellen und Verwalten von O
58. cheidung kann wom glich in unterschiedlichen Formen erfolgen Diese k nnen mittels der Klasse Wissenssubnode als Option einem Wissensnode hinzugef gt werden 4 2 4 1 Attribute Attribut Typ Beschreibung Title String Titel des Verzeichnisses Titel der Wiki Seite Tabelle 11 Attribute Wissenssubnode 4 2 5 Wissenslink Um eine Modellierung eines Entscheidungsf hrungsgraphen zu erm glichen m ssen die einzelnen Wissenseintr ge untereinander verkn pft werden Die Klasse Wissenslink verbindet zwei Wissenseintr ge miteinander Optional gilt eine Verbindung lediglich in Bezug auf eine spezifische Option hierf r ist das optionale Feld Subnodeld vorhanden 4 2 5 1 Attribute Attribut Typ Beschreibung Sourceld String Id des Wissensnodes von welchem die Verbindung abgeht Targetld String Id des Wissensnodes zu welchem die Verbindung f hrt Subnodeld Int Optionales Feld falls Verbindung einen Bezug auf einen Wissenssubnode hat Tabelle 12 Attribute Wissenslink 32 4 DOMAINMODELL DER CDAR APPLIKATION 4 2 6 Beziehungen der Klassen Source Klasse Destination Klasse Beschreibung Benutzer EZ Benutzer 11 Baum 1 1 Baum 1 Entscheidung sverwaltung 1 Verzeichnis 1 Verzeichnis 0 1 Entscheidungs f hrungsgraphen 1 0 Wissensnode 0 0 Wissensnode 0 1 0 Wissenssubnode Tabelle 13 Beziehung der Klassen 4 2 7 Beispieldaten Wissensbaum Ents
59. cheidungs projekt Entscheidungs f hrungsgraphen Entscheidungsverwaltung Verzeichnis Verzeichnis Wissensnode Wissensnode Wissenssubnode Link Link Benutzer kann mehrere Wissensb ume anlegen Die Nutzung der B ume kann durch mehrere Benutzern erfolgen falls der Ersteller dies beabsichtigt Benutzer kann mehrere Entscheidungsprojekte anlegen Die Nutzung der Projekte kann durch mehrere Benutzer erfolgen falls der Ersteller dies beabsichtigt Jeder Baum beinhaltet einen Entscheidungs f hrungsgraphen Jeder Baum beinhaltet eine Entscheidungsverwaltung Die Entscheidungsverwaltung kann eine beliebige Anzahl an Verzeichnissen beinhalten Ein Verzeichnis kann selbst wieder mehrere Verzeichnisse beinhalten Ein Wissensnode existiert in genau einem Verzeichnis Ein Verzeichnis kann mehrere Wissensnode beinhalten Boolsche Verbindung ob ein Node im Entscheidungs f hrungsgraph sichtbar ist Ein Wissensnode kann mehrere Optionen Wissenssubnodes beinhalten Ein Wissensnode kann in mehreren Verbindungen auftreten Ein Wissenssubnode kann in mehreren Links verwendet werden Eine bersicht mit Beispieldaten findet sich in Kapitel 7 8 1 Beispielinhalt der Datenbank 33 5 Architekturdesign 5 1 bersicht des Systems Die nachfolgende Grafik zeigt die Software Architektur und das Zusammenspiel der implementierten Komponenten mit MediaWiki CDAR Applikation M
60. cht ber einen Klick auf Manage Templates in der Projekt bersicht Manage Templates For Tree Produzent_Einfamilienhaus Knowledge Producer Templates Decision Templates Name Edit title Default 1 Decision_Template edit title false Add Template Option Templates Name Edit title Default 1 First_Option_Template edit title false 2 Second_Option_Template edit title false Add Template Knowledge Consumer Templates Name Edit title Default 1 Consumer_Template edit title false Ess Abbildung 42 Templates H 2 6 1 1 Entscheidungsvorlagen Erstellen und Verwalten von Entscheidungsvorlagen Current Role Knowleage Producer Delete Delete Template Delete Delete Template Delete Template Delete Delete Template Folgendes Bild zeigt den Abschnitt in welchem Sie Entscheidungsvorlagen erstellen und verwalten k nnen Sie k nnen jeweils nur eine erstellte Vorlage als Standardvorlage ausw hlen Die ausgew hlte Standardvorlage erscheint als Vorlage eines Wiki Eintrages welche Sie im Abschnitt H 2 6 8 Optionen sehen Den Wikitext welchen Sie dort vorfinden isteine Kopie der Vorlage Decision Templates Name Edit title Default 1 Decision_Template edit title false Add Template Abbildung 43 Entscheid ungsvorlageverwaltung Verfassen von Entscheidungsvorlagen Delete Delete Template Wenn Sie eine erstellte Vorlage selektieren dann erscheint im unteren Fensterberei
61. d int title String title String targetid int parentld int wikititle String subnodeid int title String 104 N IR Entscheidungsprojekt LEE D username String password String uu Abbildung 7 Domainmodel 4 1 bersicht des Domainmodells Damit s mtliche nderungen nachvollziehbar sind wird jeder Entit t ein Benutzer zugeordnet Dieser kann in der Rolle als Wissensproduzent Wissensb ume anlegen Befindet er sich in der Rolle des Wissenskonsumentes besteht die M glichkeit Entscheidungsprojekte anzulegen Wissensb ume wie auch Entscheidungsprojekte haben jeweils eine Entscheidungsverwaltung als auch einen Entscheidungsf hrungsgraphen Die eingepflegten Wissenseintr ge Wissensnodes befinden sich immer in einem Verzeichnis in der Entscheidungsverwaltung Zudem besteht die M glichkeit diese dem Entscheidungsf hrungsgraph hinzuzuf gen und anzuzeigen Ein Link stellt eine Verbindung zwischen zwei Wissensnodes beziehungsweise zwischen einem Wisssensnode und einem Wissenssubnode dar 30 4 DOMAINMODELL DER CDAR APPLIKATION 4 2 Detailbeschreibung des Domainmodells 4 2 1 Wissensbaum und Entscheidungsprojekt Die Klassen Wissensbaum und Entscheidungsprojekt stehen jeweils f r ein komplettes Projekt welches ein Benutzer entweder in der Rolle des Wissensproduzenten Wissensbaum oder des Wissenskonsumenten Entscheidungsprojekt anlegt Da sich die Funktio
62. d register failed E HILL BEBE EBB Abbildung 23 Kommunikation Single Sing On Diese Implementierung hat zum Vorteil dass sich der Benutzer nur bei der CDAR Applikation registrieren muss und der ganze Anmeldeprozess von MediaWiki transparent erfolgt Dar ber hinaus ist eine nderungskontrolle im MediaWiki sichtbar da jeder Benutzer ber einen eigenen Account verf gt Leider bringt diese Implementierung auch einen wesentlichen Nachteil mit sich Die Anmeldedaten m ssen serverseitig im Klartext gespeichert werden Dies aus dem Grund dass sich der Benutzer auch unabh ngig vom Entscheidungsf hrungswerkzeug in der MediaWiki Umgebung anmelden k nnen soll 54 7 IMPLEMENTIERUNG DER ARCHITEKTUR L sungsvorschlag Um das Problem der bertragung und Speicherung des Passwortes im Klartext zu berwinden k nnten als erster Schritt die Anmelde und Registrierungsdaten via TLS bertragen werden Nach Erhalt der Daten im Server erfolgt eine Anmeldung beziehungsweise Registrierung mittels der Daten bei MediaWiki Das Kennwort kann anschliessend als Hashwert im Server gespeichert oder im Falle einer Anmeldung abgeglichen werden Damit diese Implementierung funktioniert m sste gew hrleistet werden dass die Anmeldung an die CDAR Applikation welche die Anmeldung beim MediaWiki durchf hrt w hrend der ganzen Anmeldedauer des Benutzers erhalten bleibt Sollte die Verbindung zu MediaWiki wegen Inaktivit t des Benutzers abbrechen m sste dies
63. d Test des Tools auf Basis der gew hlten Toolplattform gem ss SE2 Standards Wichtige Erfolgsfaktoren f r das Tool und damit Kriterien f r die Arbeit sind e Gestaltung der Benutzeroberfl che und allgemeine Benutzerfreundlichkeit Usability bei a Tool Installation b Erstellen Einpflegen von Wissensinhalten inkl leichter nderbarkeit Bsp Umbenennen von Wissensinhalten und Umh ngen im Baum sowie c Projekt Initialisierung der Wissensinhalte und laufende Entscheidungsf hrung und dokumentation e Konzepte f r statische und dynamische Beziehungen Decision Dependencies und deren Umsetzung im Tool e Generelle Wartbarkeit und Erweiterbarkeit insbesondere Vorbereitungen f r die zuk nftige Unterst tzung weiterer Typen von Wissensinhalten Schichtenbildung und lose Kopplung bei der Integration externer Software Bsp Wiki Engine Datenbank 4 Unterst tzung Die erwartete und effektiv erhaltene Unterst tzung wird durch die Studenten in Sitzungsprotokollen definiert und im BA Bericht dokumentiert 5 Zur Durchf hrung Mit dem HSR Betreuer finden in der Regel w chentlich Besprechungen statt Neben Herrn Zimmermann kann auf den IFS Mitarbeiter Herrn Lukas Wegmann f r technische Fragen zugegriffen werden Zus tzliche Besprechungen sind nach Bedarf zu veranlassen Olaf Zimmermann Datei 2014 FS BA TinnerZigerlig Ausgabe 1 0 Letzte nderung am 12 03 14 CDARAufgabenstellungv10 docx XXIII G 1 SCAN AUFGABENSTELLUNG
64. den Die Applikation bietet dar ber hinaus eine Export Import sowie Reporting Funktionalit t an um das Teilen der Daten ber verschiedene Server und das Ausdrucken der eingepflegten Informationen zu erm glichen 1 5 Ausblick Eine m gliche zuk nftige Erweiterung dieser Applikation w re beispielsweise das Anbinden einer Arbeitsplanungssoftware In diese k nnten die jeweiligen Entscheidungen nach dem Entscheiden direkt als Arbeitspakete exportiert werden Diese Aufgabenstellung ist bereits definiert und wird im Rahmen einer weiteren Bachelorarbeit im Herbstsemester 2014 ebenfalls an der HSR realisiert 14 2 Einf hrung 2 1 Einleitung Diese Arbeit hat gem ss der Aufgabenstellung siehe G Aufgabenstellung zum Ziel eine webbasierte Wissensmanagement Entscheidungsf hrungsapplikation zu entwickeln Aktuelle Technologien im Webbereich sollen als Grundlage f r die Applikation dienen 2 2 Beispielszenario Grunds tzlich l sst sich die Problembeschreibung welche diese Bachelorarbeit behandelt auf s mtliche Themengebiete anwenden Nachfolgendes Beispiel zeigt zwecks Verst ndlichkeit anhand eines fiktiven Bau Architekten wie die zu erstellende Applikation die Arbeit von wiederkehrenden Entscheidungen im Laufe eines Arbeitsprozesses verbessern soll 2 2 1 Ist Zustand Bau Architekt Ein Architekturb ro hat je nach Kundenwunsch verschiedene M glichkeiten ein Projekt umzusetzen S mtliche vergangenen Projekte wurden sauber dok
65. der Usability Tests ist im Folgekapitel Fehler Verweisquelle konnte icht gefunden werden Fehler Verweisquelle konnte nicht gefunden werden zu finden A 1 4 3Drone io Drone io ist ein Continuous Integrations Service Dabei testet die Plattform automatisch jeden Commit auf dessen Funktionalit t mittels der Integration Tests Um eine hohe Softwarequalit t gew hrleisten zu k nnen wurde dieser Service in der Entwicklungsphase der Applikation genutzt A QUALIT TSSICHERUNGSMASSNAHMEN A 2 Usability Tests In der Entwicklungphase wurden mehrfach Usability Tests durchgef ht um die Benutzerfreundlichkeit und die korrekte Funktionalit t der Applikation zu testen A 2 1 Test 1 Ziel Erkennen von Benutzerschwierigkeiten Bugs Einschrankungen und Benutzererwartungen Test setup e Firefox 29 e Durchtesten aller Use Cases Erkenntnis e Entscheidungsverwaltung sollte bis zu 12 Hierarchien ausklappbar sein e Aktuell noch keine Textvalidierung e Beigr sseren Aktionen wie z B L schen keine Benutzerbestatigung e Fehlermeldungen sind zu wenig spezifisch e SQL Injection m glich e Doppelklick auf Knoten l scht den Knoten ist nicht Intuitiv e Benutzer kann von der Registration nicht auf die Login Seite zur ck e Aktuelle Benutzerrolle wird nicht angezeigt e Kein Benutzerhinweis bei Passwortwechsel dass MediaWiki Passwort ebenfalls zu ndern ist e Namensgebung z T nicht passend e Der Benutzer kann Optionen nicht eff
66. dieser erwartet und sendet Objekte als JSON The JSON Objekte haben den Vorteil dass sie im Gegensatz zu XML weniger Overhead enthalten und zudem vom Client zur Weiterverarbeitung im Browser nicht umgewandelt werden m ssen Der Server k mmert sich jeweils um die Serialisierung von und zu Java Objekten I JSON Objekte ie e Wiki Seiten MarkupText via HTTP via HTTP Abbildung 16 Kommunkation Mit der Hilfe des wiki java Frameworks findet die Abfrage und Speicherung von Wiki Seiten im MediaWiki statt Wik Die Generierung von HTML Text aus dem Wiki Markup erfolgt mittels der Bliki Bibliothek im Server Jav 47 7 3 KOMMUNIKATION 73 1 Beispielkommunikation Node erstellen Erstellt der Benutzer im Client einen Wissenseintrag sendet dieser eine Anfrage an den Server welcher die Tree Identifikation und das Elternverzeichnis des neu erstellten Nodes beinhaltet Der Server pr ft ob das Projekt bereits durch einen anderen Benutzer bearbeitet wird Ist dies der Fall wird der ganze Vorgang durch eine Lock Antwort abgebrochen und es erscheint eine Meldung welche dies dem Benutzer signalisiert Ist jedoch das Projekt aktuell nicht in Bearbeitung durch einen anderen Benutzer so erstellt der Server eine neue Wiki Seite f r den Node Des Weiteren sendet der Server dem Client den erstellten Node als Antwort Der Client zeichnet nun den neuen Node und setzt dessen Identit t welche durch den Server bzw die Datenbank festgelegt wurde Nachdem de
67. e ptrees id directories delete POST l scht Verzeichnis id int Begriindung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 8 3 6 1 Node Erstellung und Abfrage Request URL Methods JSON Response Request HTTP Status Code ktrees id nodes ptrees id nodes GET liefert s mtliche Nodes POST erstellt neuen Node H id int creationTime Date lastModificationTime Date title String wikititle String treeld int directoryld int dynamicTreeFlag int status int nur in der Rolle als Konsument H Begr ndung Abfrage erfolgreich Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 86 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 6 2 Spezifische Node Abfrage und Bearbeitung ktrees id nodes id ptrees id nodes id GET liefert Node POST bearbeitet Node id int creationTime Date lastModificationTime Date title String JSON Response Request wikititle String treeld int directoryld int dynamicTreeFlag int status int nur in der Rolle als Konsument Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum Request URL Methods 8 3 6 3 Node umbenennen Request URL ktrees id nodes id rename Methods POST ndert Node Name id int creationTime Date lastModificationTime Date title
68. e Beispielinhalt 3 Wert w w 69 7 8 ENTITY RELATIONSHIP MODEL DER DATENBANK 7 8 1 6 Tabelle Subnode Die einem Wissenseintrag hinzugef gten Options werden in der Tabelle Subnode gespeichert Feld Typ Beschreibung dd INT Primarschliissel der Entitat creation_time DATETIME Datum und Zeit der Erstellung last_modification_time DATETIME Datum und Zeit des letzten Aktualisierungszeitpunktes INT Fremdschl sselattribut auf den zugeh rigen Wissenseintrag bzw Node title VARCHAR 45 _ Titel des Subnode s bzw der Option Kegel Referenziert die jeweilige Wiki Seite im MediaWiki INT Position der Option in der Tabelle um Een Tabelle 32 Datenbanktabelle Subnode Nachfolgende Tabellen enthalten die Daten aus dem beschriebenen Beispiel Feld Wert as es creation_time last_modification_time Tabelle 33 Datenbanktabelle Subnode Beispielinhalt 1 Wert creation_time 2014 05 28T11 52 19Z last_modification_time 2014 06 05T14 59 14Z 1 3 Streifenfundament SUBNODE_42 Tabelle 34 Datenbanktabelle Subnode Beispielinhalt 2 70 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 8 1 7 Tabelle NodeLink Die Verbindungen zwischen den einzelnen Wissenseintr gen im Entscheidungsf hrungsgraphen werden in der Tabelle NodeLink gespeichert Beschreibung Prim rschl ssel der Entit t DATETIME Datum und Zeit der Erstellung Feld last_modification_time DATETIME Datum und Zeit des letz
69. e Case Name UC6 Wissensbaum modellieren Aktoren Wissensproduzent Beschreibung Bereits erfasste Architekturentscheidungen lassen sich in einer Graphstruktur miteinander verbinden 3 6 3 7 UC7 Entscheidungsverwaltung Create Read Update Delete Use Case Name UC7 Entscheidungsverwaltung Create Read Update Delete Aktoren Wissensproduzent Beschreibung Angesichts einer bersichtlichen Darstellung s mtlicher Eintr ge soll die Applikation die M glichkeit bieten diese zu gruppieren Dar ber hinaus soll die Darstellung eine Filterung aller Eintr ge erm glichen 26 3 ANALYSE DER ANFORDERUNGEN 3 6 3 8 UC8 Strukturierter Wissensbaum exportieren Use Case Name UC8 Strukturierter Wissensbaum exportieren Aktoren Wissensproduzent Beschreibung Zwecks der Ansicht des eingetragenen Wissens soll die Applikation den Export der Inhalte in einem leserlichen Format erm glichen 3 6 3 9 UC9 Architekturentscheid Template Create Read Update Delete Use Case Name UC9 Architekturentscheid Template Create Read Update Delete Aktoren Wissensproduzent Beschreibung Die Applikation soll das Erstellen von Architekturentscheidungs templates unterst tzen Dies vereinfacht das Erstellen von einheitlichen Eintr gen 3 6 3 10 UC10 Entscheidungsprojekt Create Read Update Delete Use Case Name UC10 Entscheidungsprojekt Create Read Update Delete Aktoren Wissenskonsument Beschreibung Beinhaltet das Erstellen Lesen Bearbeiten und L
70. eaaeseeeeeens 67 Tabelle 24 Datenbanktabelle Directory cccccssccccccecessessessaececeesesssesseseeeeeeesesssessasaeeeeees 68 Tabelle 25 Datenbanktabelle Directory Beispielinhalt 1 68 VII Tabelle 26 Tabelle 27 Tabelle 28 Tabelle 29 Tabelle 30 Tabelle 31 Tabelle 32 Tabelle 33 Tabelle 34 Tabelle 35 Tabelle 36 Tabelle 37 Tabelle 38 Tabelle 39 Tabelle 40 Tabelle 41 Tabelle 42 Tabelle 43 Tabelle 44 Tabelle 45 Tabelle 46 Tabelle 47 Tabelle 48 Tabelle 49 Tabelle 50 B 2 TABELLENVERZEICHNIS Datenbanktabelle Directory Beispielinhalt 3 68 Datenbanktabelle Directory Beispielinhalt 3 68 Batenbanktabelle N dern nu 69 Datenbanktabelle Node Beispielinhalt 1 69 Datenbanktabelle Node Beispielinhalt 73 69 Datenbanktabelle Node Beispielinhalt 3 69 Batenb nktabellesubnoder ana au een 70 Datenbanktabelle Subnode Beispielinhalt 1 70 Datenbanktabelle Subnode Beispielinhalt 2 70 Batenbankt belle Nodelinkn uu an een ee 71 Datenbanktabelle NodeLink Beispielinhalt 1 71 Datenbanktabelle NodeLink Beispielinhalt 3 71 Datenbanktabelle Node Mapping c cccccccccssssssssessseceseescessessneeeseceesssessessaaees 72 Datenbanktabelle Node Mapping Beispielinhalt 1 72 Datenbanktabelle Node Mapping Beispielinhalt 72 72 Datenbanktabelle Node Mapping Beispielinhalt 3 72 RESTful Level Beschreibungen cccccsessscceceeecesceesseseeeceeseessesssaeeeeeeeeesessse
71. ediaWiki Server Client RESTful Web API A API E eee e i i i ii N T Client Abbildung 8 Softwarearchitektur 5 1 1 CDAR Applikation Die implementierte Software Architektur besteht aus dem Webclient einer RESTful WebAPI sowie einer Datenbank Der Benutzer arbeitet mit der Applikation ber das erstellte Webinterface S mtliche Aufrufe gehen via HTTP an den Server und werden persistiert Handelt es sich um einen Aufruf eines Wissenseintrages beispielsweise das Lesen oder Schreiben von Wissenseintr gen leitet die WebAPI den Aufruf an eine konfigurierte Wiki Software weiter 5 1 2 Wiki Software MediaWiki besitzt neben einer API auch eine Weboberfl che ber diese erfolgt ein Zugriff auf die MediaWiki Engine direkt aus dem Browser ohne Zutun des CDAR Tools Im Rahmen dieser Bachelorarbeit haben beide Benutzerrollen ebenfalls Zugriff auf diese Schnittstelle Erstellt der Nutzer der Applikation einen Wissenseintrag leitet die CDAR Applikation diese Anfrage mittels der APl Schnittstelle von MediaWiki weiter Somit sind s mtliche Wissenseintr ge auch innerhalb als auch ausserhalb der Applikation verf gbar 5 1 3 Datenbank Die darunterliegende Datenbank kann entweder gemeinsam f r die Wiki Software sowie die CDAR Applikation genutzt werden Optional k nnen selbstverst ndlich auch einzelne Instanzen genutzt werden 34 5 ARCHITEKTURDESIGN 5 2 Externes Design der Applikation 5 2 1 Vorgehen Fr
72. egr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 92 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 7 5 Subnode Traversierung ktrees id nodes id subnodes drillup ptrees id nodes id subnodes drillup EES yar ktrees id nodes id subnodes drilldown ptrees id nodes id subnodes drilldown Method GET liefert eine Liste von Kinds bzw en Elternsubnodes ab definiertem Knoten id int creationTime Date lastModificationTime Date title String JSON Response Request wikititle String nodeld int position int status int nur in der Rolle als Konsument H Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 8 3 7 6 Subnode l schen ktrees id nodes id s ubnodes delete R t URL re ptrees id nodes id subnodes delete Methods POST JSON Request id int H id int creationTime Date lastModificationTime Date JSON Response sourceld int targetld int treeld int subnodeld int Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 409 Lock auf Baum 93 8 3 3 Verbindungen 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 8 1 Verbindungserstellung und Abfrage Request URL Methods JSON Response Request HTTP Status Code ktrees id links ptrees id links GET liefert samtliche Verbindungen POST erstellt neue Verbindung H id int creationTime
73. eiterbare Tool Architektur gefordert Das Ergebnis dieser Bachelorarbeit ist ein funktionsf higer Prototyp in Form einer Java und JavaScript basierten Webapplikation mit einer HTTP Schnittstelle die sich an den REST Designprinzipien orientiert Die Software Architektur des Prototypen erm glicht die einfache Anbindung weiterer fachlicher Services an die Server Komponente Diese leitet die textuellen Entscheidungsbeschreibungen Dokumentation ber einen API Aufruf an die Wiki Engine MediaWiki weiter Dies f hrt zu zwei wesentlichen Vorteilen Erstens m ssen die Hauptfunktionen von Wikis z B die Pflege einer nderungshistorie nicht nachimplementiert werden Zweitens l sst sich in Zukunft die Wiki Engine einfach austauschen oder auch erweitern um zum Beispiel mit bereits vorhandenen Wikis weitere Informationen in die Applikation zu integrieren Eigenst ndigkeitserkl rung Wir erkl ren hiermit e dass wir die vorliegende Arbeit selbst und ohne fremde Hilfe durchgef hrt haben ausser derjenigen welche explizit in der Aufgabenstellung erw hnt ist oder mit dem Betreuer schriftlich vereinbart wurde e dass wir s mtliche verwendeten Quellen erw hnt und gem ss g ngigen wissenschaftlichen Regeln zitiert haben e dass wir keine durch Copyright gesch tzten Materialien z B Bilder in dieser Arbeit in unerlaubter Weise genutzt haben Ort Datum Rapperswil 12 6 2014 Marcel Tinner Daniel Zigerlig d G pares Danksagunge
74. ekten in Zukunft wie nachfolgend beschrieben ablaufen 2 2 2 1 Einpflegen der Informationen bei neuem Projekt CDAR Applikation Architektur B ro f Fundament ausw hlen Gr un ay 5 S Ss S Fundament ausgew hlt geg Einzelfundament Streifenfundament und dokumentiert v St Baufirma X Baufirma Y Baufirma X benachrichtigt 3 D D fs D a a v gt C Oo Abbildung 4 Projektablauf Einfamilienhaus S mtliche wichtige Entscheide im Laufe des Projektes werden durch den Wissens produzenten in die CDAR Applikation eingepflegt Dabei zeigen die Mitarbeiter auf welche M glichkeiten sie bei der Entscheidung hatten und was f r Folgeentscheide diese mit sich gezogen haben Als Beispiel dient die Auswahl eines Fundamentes Entscheidet sich der Bau Architekt f r ein Einzelfundament kommt lediglich die Baufirma X zum Einsatz Bei der Entscheidung f r ein Streifenfundament kommt jedoch nur Baufirma Y in Frage S mtliche Entscheide sind schriftlich dokumentiert und hinterlegt 16 2 EINF HRUNG 2 2 2 2 Auf vorhandene Informationen zugreifen bei wiederkehrendem Projekt St sst das Architekturb ro auf einen weiteren Auftrag wie beispielsweise den des Einfamilienhauses bietet die CDAR Applikation die M glichkeit auf das bereits realisierte Projekt zuzugreifen Die Mitarbeiter k nnen das neue Projekt in der Rolle des Wissenskonsumenten in Angriff nehmen und sehen die fr her erst
75. ellten Entscheidungen und M glichkeiten anhand des eingetragenen Wissensmodelles Bei neuen nderungen wie zum Beispiel einer weiteren Baufirma kann diese einfach als Option hinzugef gt ausgew hlt und dokumentiert werden Dies f rdert die Nachvollziehbarkeit von anders gef llten Entscheidungen CDAR Applikation Architektur B ro Fr Fundament auswahlen Wey nl e Einzelfundament e Streifenfundament y Projekt gestartet Streifenfundament v Auswahl Entscheidung v Z sneyualjiwejuly pjaloid Abbildung 5 Einfamilienhaus mit CDAR Applikation Dieses Beispiel soll die grundlegende Funktionalit t der Applikation erl utern und zeigt die generische Nutzung dieser Applikation Das Werkzeug k nnte in verschiedenen beruflichen M rkten seine Anwendung finden im Rahmen dieser Bachelorarbeit gilt jedoch der Kontext von Cloud Computing 17 2 3 BEISPIELEINES WISSENSEINTRAGES 2 3 Beispiel eines Wissenseintrages Nachfolgende Beispiele zeigen den Stil potentieller Wissenseintr ge welche die Software beim Nutzen durch einen Software Architekten beinhalten wird Ola14 2 3 1 AD about Integration Style IBM UMF Template for Decision Log Subject Area Process and service layer design Topic Integration Name Integration Style ADID 2 Decision Made We decided for RPC and the Messaging pattern Enterprise Integration Patterns Issue or Problem How should process activities and underlying services communicate Assumpt
76. en Falls keine Entscheidung im Entscheidungsf hrungsgraphen angezeigt wird wurde dieser dem Graphen nicht hinzugef gt Mehr dazu im Kapitel Fehler Verweisquelle konnte nicht gefunden werden Fehler rweisquelle konnte nicht gefunden werden Sie k nnen Entscheidungen Ordner oder ganze Verzeichnisse l schen verschieben und kopieren L schen von Elementen Falls Sie vorhaben einen Ordner welcher weitere Elemente enth lt zu l schen beachten Sie dabei dass diese ebenfalls gel scht werden Wenn Sie Entscheidungen l schen l schen Sie auch dessen Optionen L schen von Entscheidungen bzw Ordnern kann auch Auswirkungen auf den Entscheidungsf hrungsgraphen haben Verschieben von Elementen Durch einfaches Drag amp Drop verschieben Sie die Elemente Achten Sie darauf dass Sie keine Elemente in die oberste Hierarchie verschieben Diese ist ausschliesslich f r die Gesamtgruppierung gedacht Kopieren von Elementen Kopieren k nnen Sie durch Drag amp Drop innerhalb des Baumes und zus tzliches halten der STRG Taste bei Windows bzw der CMD Taste bei Mac Dabei wird der Wikieintrag sowie die Optionen der Entscheidungen mitkopiert Die Entscheidung erscheint sofort als Kopie achten Sie jedoch darauf dass Sie die neu kopierten Elemente nicht sofort bearbeiten da deren Wiki Eintr ge zuerst erstellt werden m ssen Um sicher zu stellen dass diese mit Sicherheit vollst ndig kopiert wurden warten Sie pro kopierte Entscheidung
77. er Ansicht um Benutzern den durch den Parameter treeld definierten Baum freizugeben Account AccountController Ansicht zur Bearbeitung des Benutzer Passwortes sowie der Drill Hierarchie 61 7 7 AUFBAU DER CLIENTAPPLIKATION 7 1 2 Beschreibungen der Services 7 7 2 1 AuthenticationService Der AuthenticationService behandelt s mtliche Kommunikation zwischen Client und Server betreffend der User Ressource Nachfolgende Tabelle zeigt s mtliche m glichen Funktionen des Services Methode Beschreibung addUser Sendet mittels einer POST Methode eine Anfrage an den Server Beinhaltet ein Objekt mit Benutzername und Kennwort des zu registrierenden Benutzers updateUser Methode um den Benutzer zu ver ndern Im Rahmen dieser Bachelorarbeit lediglich zur Passwort nderung genutzt loginUser Versucht den Benutzer beim Server anzumelden Antwort enth lt aktuellen Accesstoken bei erfolgreicher Anmeldung logoutUser L scht im Client den Accesstoken und die User Identit t im Cookie und leitet den Benutzer auf die Login View weiter Tabelle 18 Authentification Service 7 1 2 2 DescriptionService Beim Aufruf l dt der DescriptionService alle f r den Client relevanten und konfigurierbaren Property Values des Servers in den Cache Der Service wird bei jedem Komplett Refresh der Seite aufgerufen Bei normalem Benutzerverhalten geschieht dies nur beim ersten Laden der Seite Value B
78. er Bachelorarbeit e Gesamtkonzept und Implementierung f r User Interface und Software Architektur e Kombination eigener Webclient und MediaWiki e Grundstein schaffen f r weitere Softwarekomponenten Erweiterbarkeit 11 1 3 VORGEHEN 1 3 Vorgehen Um die Problembeschreibung zu l sen haben wir ein iteratives und agiles Vorgehensmodell hnlich zu Rational Unified Process RUP gew hlt Anfangs haben wir die Problemstellung analysiert Dazu erstellten wir ein Dom nenmodell basierend auf Literatur sowie Vorarbeiten des Institutsprojekts M gliche Risiken wurden zu Beginn der Bachelorarbeit mittels Mini Prototypen und Mockups gemildert Anhand der nicht funktionalen Anforderungen erstellten wir eine Framework Auswahl welche nach einer vollst ndigen Domainanalyse schliesslich zu einer Software Architektur und Implementierung f hrte Die Anforderungen an die Software entwickelten sich w hrend der Arbeit iterativ und inkrementell aus Vorgaben des Betreuers und Erfahrungen welche wir w hrend der Arbeit mit unserer Software selbst sammeln konnten Zur F rderung der Wiederverwendbarkeit und Benutzerf hrung entschied sich das Projektteam fr hzeitig zwei Benutzerrollen einzuf hren Den Wissensproduzenten und konsumenten Ersterer tr gt seine Entscheidungen und deren Folgerungen in die Applikation ein Nachfolgend arbeitet ein Wissenskonsument mit den bereitgestellten Daten und kann sich potentielle Architekturentscheidungen
79. er auch in der CDAR Applikation nach entsprechender Meldung abgemeldet werden Nachfolgendes Diagramm beschreibt einen erfolgreichen Versuch des Logins mit dem beschriebenen L sungsvorschlag d r kS e gt e N i 9 Client i Server d MediaWiki keep connection open check hashed password 4 Abbildung 24 L s ungsvorschlag Single Sign On 55 7 5 BAUM UND GRAPHENSTRUKTUREN 7 5 Baum und Graphenstrukturen In der Applikation sind zwei Graphen unterschieden Der eine ist mit einem Baum zu vergleichen dies ist die Entscheidungsverwaltung welche eine gruppierte bersicht aller Wissenseintr ge des Projektes darstellt In der Entscheidungsverwaltung k nnen keine Zyklen entstehen Der andere Graph hingegen stellt die Entscheidungsabh ngigkeiten dar In dieser Visualisierung k nnen Zyklen entstehen Diese sind zu vermeiden werden jedoch durch die Applikation nicht verhindert 7 5 1 Entscheidungsverwaltung Die Entscheidungsverwaltung ist mit der JsTree Bibliothek umgesetzt In der Verwaltung ist zwischen Ordnern und Entscheidungen zu unterscheiden Diese sind auch in zwei verschiedenen Datenbanktabellen persistiert Der jeweilige Ordner enth lt die Identifikation des Elternordners Entscheidungen hingegen haben eine zus tzliche Tabelle in welcher dessen Identit t und die Identit t des Elternordners hinterlegt sind ber diese Eigenschaften wird die Verzeichnisstruktur abgespeichert sowie auch aufgebaut
80. es Projektes erstellt Mittels eines Klickes auf das blau Geschriebene im Report gelangen Sie direkt zum jeweiligen Punkt bzw auf den Wiki Eintrag Ein Report kann entweder in der Projektverwaltung oder in der Projekt bersicht erstellt werden Producer Tree Report Produzent_Einfamilienhaus Generated on 30 May 2014 13 52 00 GMT Generated by mtinner Properties Node Description Decision Subnode Description Option Decision Fundament auswaehlen http 152 96 80 30 mediawiki index php NODE_36 Description Content Predecessor e No Predecessor Successor Baufirma X by Option Einzelfundament Baufirma Y by Option Streifenfundament Wiki Page DECISION Options Title Link Content Einzelfundament http 152 96 80 30 mediawiki index php SUBNODE_19 OPTION Streifenfundament http 152 96 80 30 mediawiki index _php SUBNODE_18 OPTION Abbildung 51 Report XXXVI H BENUTZERHANDBUCH H 2 6 5Entscheidungsverwaltung und Gruppierung In der Entscheidungsverwaltung k nnen Sie Ihre Entscheidungen beliebig gruppieren Dabei gibt es jedoch keine Verkn pfungen wie Sie diese m glicherweise von Ihrem Betriebssystem her kennen Create Folder erstellt einen Ordner wie der Ordner Dach in unten stehendem Bild Dabei kann einen Ordner wiederum Ordner bzw auch Entscheidungen enthalten Der Button Show Route zeigt die selektierte Entscheidung inkl der Kindsknoten falls im Entscheidungsf hrungsgraphen vorhand
81. eschreibung und Beispiel Directory Name eines Verzeichnisses in der Entscheidungsverwaltung Node Name eines Wissenseintrages bzw Nodes Subnode Name einer Option bzw Subnode Wikiurl Wikiurl der MediaWiki Installation ExpandedLevel Tiefe der Hierarchien welche standardm ssig in der Entscheidungsverwaltung offen sind ConsumerDescription Alternativer Name f r den Wissenskonsumenten ProducerDescription Alternativer Name f r den Wissensproduzenten Tabelle 19 Description Service 62 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 7 2 3 TreeService Der TreeService beinhaltet alle Abfragen welche die RESTful WebAPI zur Verf gung stellt ausgenommen der Ressource User Eine genaue bersicht der Schnittstelle ist im Kapitel 8 1 bersicht der Schnittstelle zu finden 7 7 2 4 UserService Der UserService bietet Methoden f r den aktuell eingeloggten Benutzer an Der Service dient als zentrale Schnittstelle der Browser Cookies und der CDAR Client Applikation Er erm glicht das Speichern und Auslesen des Cookies mit Benutzer Identit t und Accesstoken welcher f r alle gesicherten Abfragen an den Server ben tigt werden Dar ber hinaus bietet der Service Methoden um die aktuelle Benutzerrolle und Benutzerstatus abzufragen 63 7 8 Entity Relationship Model der Datenbank Der Abschnitt 4 Domainmodell der CDAR Applikation zeigt eine vereinfachte Version der Dom ne und deren Entit ten Aus der darauffolgenden
82. esssaeaeeeeeeeeesseesssasaeseeeeseneees 34 Abbildung 9 Mockup Login und Registrierung cccecsessssccecececescessesseaeeeceeeeeesessaeaeeeeeeeeens 35 Abbildung 10 Mockup Hauptseite Wissensproduzent essen 36 Abbildung 11 Mockup Baumansicht ccccccccccccscesssesscsecececeesceessnseeeeeeseesceeseaeaeeeeeeseeeees 37 Abbildung 12 Mockup Hauptseite Wissenskonsument ssssssesssesssssssssrsrrrsserrerseeeessssrensssene 38 Abbildung 13 Mockup Projektansicht ccccccccccccecssssssscsecececececsesssseseeeeeeseesseesseaeeeeeeseeeees 39 Abbildung 14 Datenhaltunng cccccccccccccssssssssaseececeesceeseeseeecececesseeseseeaeseeeeeesssessasaeeeeseneess 45 Abbildung 15 Locking meldung ccccccccssssssceceeceeecsssessaeeececeeeceesesaeaaeseeeceesseesseaeeeeeesensees 46 Abbildung 16 Komm nkation ass ed AS aes 47 Abbildung 17 Kommunikation Node erstellen 48 Abbildung 18 Kommunikation Entscheidung kopieren ssseessrssssssserseesrrssssssreereesessssesrrees 49 Abbildung 19 Beispielkommunikation Entscheidung l schen c cccccccccessessnsseeeeeeeseeeees 50 Abbildung 20 Beispielkommunikation Entscheidung Drag amp Drop usueeenennennennnneenenennnnneenn 51 Abbildung 21 Beispielkommunikation Abfrage einer Wiki Seite 52 Abbildung 22 Kommunikation Sicherheit und Session Handling 53 Abbildung 23 Kommunikation Single Sing On 54 Abbildung 24 L sungsvorschlag Single Sien
83. f gesch tzte Ressourcen 5 Austauschbarkeit Die Software Layers sind so konzipiert dass ein Layer nur wenig Abh ngigkeiten aufweist Damit in Zukunft beispielsweise auch mit einer nicht relationaler Datenbank gearbeitet werden kann 6 Installierbarkeit Das Installieren der Server Applikation in einer frisch aufgesetzten Umgebung soll in weniger als 3 Stunden m glich sein 7 Lizenzierung Die Lizenzen von Software Produkten und Technologien von Drittanbietern sollen m glichst popul r und wenig restriktiv sein Sie d rfen durch ihre Lizenzierung die Hoheit ber den eigenen Code nicht einschr nken Tabelle 6 Weitere Anforderungen t http opensource org licenses 28 3 ANALYSE DER ANFORDERUNGEN 3 8 Anforderungen an die Testumgebung Im Rahmen dieser Bachelorarbeit wird die Software auf mehreren verschiedenen Testumgebungen gepr ft Die nachfolgende Hardwarespezifikation beschreibt die Leistungsschw chste Umgebung auf welcher die Applikation ohne merkbare Einschr nkungen benutzt werden soll Client Virtueller Server CU 2 5 Gs 2 GB Core Duo T2300 1 66 GHz Xenon E5 2660 v2 2 2 GHz SOM aye 32 Bit 64 Bit os sd Windows 8 1 Windows Server 2012 Tabelle 7 Testumgebungssetup 29 4 Domainmodell der CDAR Applikation Das folgende Domainmodell bietet einen vereinfachten berblick ber die vorhandenen Objekte in der CDAR Applikation title String wikititle String EEE ra sourcei
84. gurieren Somit ist eine Betrachtung und Bearbeitung der erstellten Wissenseintr ge auch ausserhalb der Applikation m glich Dies f hrt zu zwei wesentlichen Vorteilen Die Hauptfunktionen von Wikis beispielsweise die nderungshistorie stellt die Software zur Verf gung und muss somit nicht nachimplementiert werden Zweitens l sst sich in Zukunft die Wiki Software einfach austauschen oder auch erweitern um zum Beispiel mit bereits vorhandenen Wikis weitere Informationen in die Applikation zu integrieren Die eingetragenen Informationen lassen sich ber einen Entscheidungsf hrungsgraphen miteinander verkn pfen um kausale und oder tempor re Abh ngigkeiten zwischen Entscheidungen zu spezifizieren CDAR mediawiki PN O 8 Client i Knowledge Consumer i Knowledge Producer Abbildung 2 Architektur bersicht 13 1 5 AUSBLICK Nach dem erfolgreichen Einpflegen von Daten kann der Benutzer in der Rolle als Wissenskonsumenten neue Projekte aufgrund bereits vorhandener Informationen erstellen In dieser Ansicht erm glicht das Tool die Entscheidungen im jeweiligen Projekt zu werten und zu entscheiden Somit kann ein Benutzer mit Hilfe der vorgetragenen Daten durch sein jeweiliges Projekt gef hrt werden Er sieht seine Auswahlm glichkeiten und kann abw gen was f r seine momentane Situation am sinnvollsten ist Die eingepflegten Daten k nnen mittels einer Benutzerverwaltung anderen Benutzern der Software freigeschaltet wer
85. h erstellte Mockups erlaubten es Unklarheiten zu erkennen und darauf zu reagieren Die Erstellung erfolgte mit dem Tool Balsamiq Mockups Ball 5 2 2 Mockups 5 2 2 1 Login und Registrierung CDAR Login me EEE gp CDAR Username Password O Login as Knowledgeproducer Abbildung 9 Mockup Login und Registrierung Samtliche Funktionen der Applikation sind nurin einem angemeldeten Zustand benutzbar Die Software erm glicht jedem Benutzer einen neuen Benutzeraccount anzulegen Diese Ansicht zeigt das Login welches mittels Username sowie Passwort erfolgt Gleich zu Beginn steht es dem Benutzer frei sich als Wissensproduzent oder Wissenskonsument anzumelden 35 5 2 EXTERNES DESIGN DER APPLIKATION 5 2 2 2 Wissensproduzent Die nachfolgenden Ansichten betreffen die User Rolle Wissensproduzent 5 2 2 3 Hauptseite CDAR Hauptseite Wissensproduzent D Peter Muster Wissensproduzent Logout Wissensb ume EC Abbildung 10 Mockup Hauptseite Wissensproduzent Die Startseite des Wissensproduzenten bietet dem Benutzer eine bersicht ber vorhandene Wissensb ume Die Wissensb ume k nnen an dieser Stelle aufgerufen oder gel scht werden Zus tzlich besteht die M glichkeit weitere Wissensb ume hinzuzuf gen 36 5 ARCHITEKTURDESIGN 5 2 2 4 Baumansicht CDAR Hauptseite Wissensproduzent RE gp Peter Muster Wissensproduzent Wissensprojekt 1 Ca Root Category 0 B Decision 2 V Categor
86. hteile e Kein brauchbarer WYSIWYG Editor Alternativen Es gibt unz hlige verschiedene Wiki Software auf dem Markt Eine nach Programmier sprache sortierte Liste ist unter folgendem Link zu finden Link http de wikipedia org wiki Liste_von_Wiki Software 43 6 4 BERSICHT DER EINGESETZTEN LIBRARIES UND PLUGINS 6 4 bersicht der eingesetzten Libraries und Plugins Nachfolgend gelistete Software und deren Lizenzen beinhaltet die in der Bachelorarbeit erstellte Software 6 4 1 CDAR Browseranwendung Client Name Lizenz AngularJS MIT Bootstrap MIT MIT GPL v2 JQuery MIT JQuery UI MIT JQuery Noty MIT JsPlumb Liviz Keine spezifische Lizenzierung JsTree MIT XEditable MIT Tabelle 14 Lizenzen Clientteil 6 4 2 CDAR Serveranwendung Name Lizenz Apache Maven Apache v2 mu mm geng SS Apachev2 en Tabelle 15 Lizenzen Serverteil 1 https github com Indb jsPlumb_Liviz js 44 7 Implementierung der Architektur 7 1 Datenhaltung Die Speicherung der Daten erfolgt in einer eigenen MySQL Datenbank S mtliche Wissenseintr ge beispielsweise Architekturentscheidungen persistiert die Datenbank von MediaWiki i Client Server l MediaWiki i e Users E 2 User Id i f e Angelegte B ume i o wiki Salten Accesstoken e Struktur statischer Baum I X j se d ie Struktur dynamischer Baum VEH d ie Templates i 4 e Exports Abbildung 14 Datenhaltung 71 1 Client Der Browser persis
87. ibungen unsensensseonsonenseenessensseensnennsesnnnsnnnssensnnnnnsnnnnsennssennnsnnennenssnnassensnensenenn 25 3 7 Weitere Anforderungen ENEE 28 3 8 Anforderungen an die Testumgebung ENEE 29 4 Domainmodell der CDAR Applikation uesssssesennennnunnnnnnnnnnnnnnunnnnnnnsnnnnnnnnnnnnnnn nn 30 AA bersicht des Domainmodells nie ai 30 4 2 Detailbeschreibung des Domainmodells EEN 31 4 2 1 Wissensbaum und Entscheidungsprolekt EEN 31 e enge esse T a G 31 42 3 WISSCTISTOUE scssicieccctescattnsccrcchedendcteenduearoseneedorduasuaiviensceda Ener ee 31 ADA MEET eege 32 42 5 Wissenslinknssnie ana Een 32 4 2 6 Beziehungen der Klassen eersten 33 4 2 7 Beispield ten urisesiisienehieknsiese aan 33 5 Architekturdesien nase ee ee ern 34 5 1 bersicht des Systems EE 34 5 11 GDAR Applikation 34 5 12 MEI 34 5 1 3 Datenbank en 34 5 2 Externes Design der Applikation ENEE 35 e ee 35 5 2 2 tele E 35 6 Evaluation der Technologien zur Umsetzung der Architektur usssreneeenennnn 40 6 1 Servertechnologien seent 40 6 1 1 Tomcat Anwendungsserver EEN 40 6 1 2 Jersey elielsiiki 40 6 1 3 Datenbanktechnologte ENEE 41 6 2 Cliemttechnologien seent 41 6 2 1 JavaScript Framework u eeken nee nee a 41 6 2 2 JavaScript Plugin Entscheidungsverwaltung EEN 42 6 2 3 JavaScript Plugin Entscheidungst obrungesgrapbhen ENEE 42 93 TRS SS TAU a cha ne Eee 43 6 4 bersicht der eingesetzten Libraries und Plugi
88. ielsweise Wikis mit bereits eingepflegten Informationen sein Die Inbetriebnahme und Nutzung des Wissensmanagementwerkzeuges ist gem ss einer Benutzeranleitung beschrieben Die Serverapplikation besteht aus einer Java 7 Webanwendung auf Basis von Tomcat 7 Der Rich Client basiert auf dem AngularJS JavaScript Framework Die Datenhaltung erfolgt in einer relationalen MySQL Datenbank sowie MediaWiki Umgesetzte geplante Funktionen Umgesetzte zus tzliche Funktionen Benutzer erstellen Single Sign on Wissensprojekte erstellen Eintr ge kopieren Deep Copy Entscheidungsverwaltung erstellen Wissenseintr gen bereits bestehende lesen aktualisieren und l schen Wiki Seite zuweisen Wissenseintrage einpflegen Erstellte Projekte an andere Benutzer Vorlage f r Wissenseintr ge erstellen freigeben und aktualisieren Behandlung von konkurrierenden Entscheidungsf hrungsgraph erstellen Zugriffen lesen aktualisieren und l schen Namensgebung konfigurierbar Entscheidung kommentieren Zustand von Architekturentscheidungen festlegen Inhalte exportieren und importieren Reports erstellen Wenige Funktionen wie das Sortieren des Reports und die Statusgebung bei einer Verbindung im Entscheidungsf hrungsgraphen sind aufgrund ver nderter Priorit ten nicht umgesetzt worden 99 9 2 AUSBLICK 9 2 Ausblick Das in dieser Bachelorarbeit entwickelte prototypisierte Wissensmanagementwerkzeug dient als Grundlage f r Weiterentwicklungen Bereits im Her
89. inien Folgende Richtlinien gelten f r die Registration e Benutzername und Passwort m ssen unterschiedlich sein e Benutzername muss einmalig sein e Benutzername oder Passwort d rfen nicht leer sein e Benutzername darf nicht l nger als 20 Zeichen sein e Passwort darf nicht l nger als 40 Zeichen lang sein H 2 3 Benutzerrollen In der Applikation gibt es zwei Benutzerrollen Der Produzent f gt sein Wissen projektspezifisch anhand von Entscheidungen ein Der Konsument hingegen kann vom Wissen des Produzenten profitieren und die Entscheidungen akzeptieren und bernehmen Die Benutzerrollen k nnen jederzeit gewechselt werden ohne sich abmelden zu m ssen Dies k nnen Sie ber klicken auf Current Role im rechten oberen Ecken vollziehen Falls Sie den Firefox nutzen lesen Sie bitte den Abschnitt H 2 9 Kompatibilit t und Einschr nkungen AL User mtinner 2 Current Role Knowledge Producer Abbildung 37 Angemeldeter Rollenwechsel Alternativ k nnen Sie dies auch bereits beim Anmelden vornehmen wie in Abbildung 36 Login zu sehen ist XXIX H BENUTZERHAN DBUCH H 2 4 Account Ihr Account k nnen Sie nur bearbeiten wenn Sie angemeldet sind Dazu klicken Sie auf der rechten Seite auf Account H 2 4 1 Passwortwechsel In folgendem Feld k nnen Sie Ihr Passwort ndern Dabei ist zu beachten dass der Wechsel nur Ihr Passwort in der Applikation ndert nicht aber das von MediaWiki Um jenes von MediaWiki zu
90. ions Process model and NFRs QA requirements are valid and stable Motivation If logical layers are physically distributed they must be integrated Alternatives File transfer shared database no physical distribution local calls Justification This is an inherently synchronous scenario VSP users as well as internal Telco staff expect immediate responses to their requests Messaging system will ensure guaranteed delivery and buffer requests to unreliable data sources Implications Need to select install and configure a message oriented middleware provider Derived Many finer grained patterns are now eligible and have to be decidd Requirements upon message construction channel design message routing message transformation system management see Enterprise Integration Patterns book Related Decisions Next we have to decide on one or more integration technologies implementing the selected two integration styles Many alternatives exist e g Java Message Service JMS providers Tabelle 1 Beispiel eines Wissenseintrages 2 3 2 Y Statements in Telco Case Study EIP Pattern Selection e AD 1 Apply Messaging pattern and RPC pattern O O In the context of the order management scenario atT Facing the need to process customer orders synchronously without loosing any messages We decided to apply the Messaging pattern and the RPC pattern And neglected File Transfer Shared Database no physical distribution local ca
91. isung von B umen an Benutzern Es ist m glich mehreren Benutzern denselben Baum zuzuweisen und ihn somit mit diesen zu teilen Typ Beispielinhalt und Beschreibung Verweis aufeinen Benutzer 1 INT 13 Verweis auf Tree Tabelle Tabelle 23 Datenbanktabelle TreeMapping Um Doppeleintrage zu verhindern sind beide Identit tsattribute dieser Tabelle Bestandteil eines zusammengesetzten Prim rschl ssels 67 7 8 ENTITY RELATIONSHIP MODEL DER DATENBANK 7 8 1 4 Tabelle Directory Die Verzeichnisse der Entscheidungsverwaltung sind in der Tabelle Directory abgelegt S mtliche Elternverzeichnisse sind mit dem Attribut parentid verlink lediglich das Hauptverzeichnis eines Baumprojektes beinhaltet in diesem Feld den Wert 0 Feld Typ Beschreibung Prim rschl ssel der Entit t creation_time DATETIME Datum und Zeit der Erstellung last_modification_time DATETIME Datum und Zeit des letzten Aktualisierungszeitpunktes parentid INT Fremdschl sselattribut verweist auf das H FF INT Verweis auf den Baum welcher das Verzeichnis beinhaltet VARCHAR 45 Titel des Verzeichnisses Tabelle 24 Datenbanktabelle Directory Nachfolgende Tabellen enthalten die Daten aus dem beschriebenen Beispiel Feld Wert creation_time 2014 05 28T11 52 19Z last_modification_time 2014 06 05T14 59 14Z parentid Einfamilienhaus Tabelle 25 Datenbanktabelle Directory Beispielinhalt 1 Feld Wert creation_time last_modifi
92. izient hinzuf gen nderungen e Entscheidungsverwaltung breiter darstellen zur Last des Entscheidungsf hrungsgraphen e Textvalidierung einbauen e Benutzerbestatigungen einbauen e Fehlermeldungen spezifizieren e SQL Injection durch PreparedStatements vermeiden e Doppelklick l scht zeigt nun dessen Optionen an L schen nur noch ber expliziten Buttonclick m glich e Bei Registration Zur ck Button zum Login e Anzeigen der Benutzerrolle auf jeder Seite beim rechten oberen Rand e Hinweis bei Passwortwechsel hinzugef gt e Anpassen der Namensgebungen e Option k nnen effizient per Eingabe und Enterbest tigung wiederholt hinzugef gt werden A 2 USABILITY TESTS A 2 2 Test 2 Ziel Erkennen von Benutzerschwierigkeiten Bugs Einschrankungen und Benutzererwartungen Test setup e Firefox 29 e Durchtesten aller Use Cases Erkenntnis e nderung an den Wiki Seiten nimmt viel Zeit in Anspruch e Konsument hat nicht die gleiche Funktionalit t wie der Produzent e Design der Tabs f r Read Write bei Wikifeld anpassen e Drill Aktion nicht nur ber den Knoten erm glichen e Buttons oberhalb des Entscheidungsf hrungsgraphen irritieren e Parallele Bearbeitung des gleichen Projektes kann zu Inkonsistenzen f hren nderungen e Parallelisierung f r die Bearbeitung des Wikis sowie permanente Verbindung zu MediaWiki e Konsumenten die gleiche Funktionalit t wie dem Produzenten anbieten e Tabs f r Read Write kleiner und ande
93. k nnen Sie per Drag amp Drop Verbindungen ziehen Vermeiden Sie bei diesem Vorgang das Erstellen von Zyklen Fundament auswaehlen e Einzelfundament e Streifenfundament Abbildung 54 Knoten Haben Sie eine Verbindung gezogen erscheint folgendes Popup Hier m ssen Sie eine Option f r die Verbindung anw hlen Diese wird anschliessend bei der Verbindung angezeigt Falls Sie keine Option ausw hlen f hrt dies zur L schung der gezogenen Verbindung Choose Option Einzelfundament Streifenfundament all Options Abbildung 55 Popup H 2 6 6 2 Hierarchische Navigation Drill ber die Buttons f r Drill Down und f r Drill Up k nnen Sie eine hierarchische Navigation durchf hren Die hierarchische Tiefe ist ber einen Wert festgelegt welchen Sie ver ndern k nnen Mehr dazu im Kapitel H 2 4 2 Einstellen hierarchischer Navigation Drill H 2 6 6 2 1 Drill Down Bei einem Drill Down wird der gew hlte Knoten dessen Kindesknoten sowie deren Optionen und die dazwischenliegende Verbindung angezeigt Dieser Vorgang wiederholt sich entsprechend der Standardtiefe Einstellen hierarchischer Navigation Drill H 2 6 6 2 2 Drill Up Bei einem Drill Up wird der gew hlte Knoten dessen Geschwisterknoten Elternknoten sowie deren Optionen und die dazwischenliegende Verbindung angezeigt Dieser Vorgang wiederholt sich entsprechend der Standardtiefe Einstellen hierarchischer Navigation Drill XXXIX H BENUTZERHAN
94. knid INT I creation_time DATETIME last_modification_time DATETIME LiL ig ktrid INT title VARCHAR 45 kpncid INT creation_time DATETIME 9 last_modification_time DATETIME sourceid INT targetid INT kpnsnid INT kptid INT wikititle VARCHAR 45 dynamictreefiag INT position INT knid INT did INT fid INT creation_time DATETIME Q last_modification_time DATETIME parentid INT ktrid INT title VARCHAR 45 kpsnid INT creation_time DATETIME last_modification_time DATETIME kpnid INT 9 creation_time DATETIME ei last_modification_time DATETIME kptid INT title VARCHAR 200 wikititle VARCHAR 45 nodestatus INT inheritedtreeid INT 64 9 creation_time DATETIME kpnid INT last_modification_time DATETIME title VARCHAR 45 9 title VARCHAR 45 gt wikititle VARCHAR 45 deenen 9 position INT subnodestatus INT Q inheritedtreeid INT Pid INT creation_time VARCHAR 45 kpnid INT id INT last_modification_time VARCHAR 45 parentid VARCHAR 45 ptreeid VARCHAR 45 title VARCHAR 45 7 3 1 Beispielinhalt der Datenbank Nachfolgendes Beispiel zeigt die in der Datenbank persistierten Daten anhand des einfachen aus der Einleitung bekannten Bau Architekten M
95. lls to achieve guaranteed delivery and request buffering when dealing with unreliable data sources accepting that follow on detailed design work has be performed and that we need to select install and configure a message oriented middleware provider 18 3 Analyse der Anforderungen 3 1 bersicht ber die zentralen Konzepte der Dom ne Die nachfolgenden Begriffe etablierten sich im Laufe dieser Bachelorarbeit Begriff Erkl rung Wissensproduzent Beschreibt eine Benutzerrolle Ein Wissensproduzent engl Knowledge Producer pflegt Informationen in die Applikation ein Wissenskonsument Beschreibt eine Benutzerrolle Ein Wissenskonsument engl Knowledge Consumer arbeitet mit Hilfe von Wissenseintr ge welche durch einen Wissensproduzenten vorg ngig in die Software eingepflegt wurden Wissensbaum Allgemeine Beschreibung f r ein Projekt eines auch Wissensmodell engl Wissensproduzenten Knowledge Tree Projektbaum Allgemeine Beschreibung fiir ein Projekt eines auch Anwendungsprojekt Wissenskonsumenten engl Project Tree Wissensnode Eintrag im System in Form einer Architekturentscheidung auch Entscheidung Knoten oder auch einem Architectural Refactoring In jedem Fall engl Decision Node sichtbar in der Entscheidungsverwaltung und optional im Entscheidungsf hrungsgraphen Wissenssubnode Option eines Wissensnode Ein Wissensnode kann auch Option im Code verschiedene M glichkeiten bie
96. m Masterprojekt bewirken keine nderungen am Konsumentenprojekt Ausgenommen ist dabei der Wiki Eintrag welche erst nach einer Status nderung kopiert wird und dadurch unabh ngig ist Project Overview if Title Edit title Report Delete 1 Konsument_Einfamilienhaus edit title Show report Delete Tree select a tree ai Add tree Abbildung 40 Projekteve rwaltung Konsument H 2 6 Projekt bersicht Sie gelangen in diese Ansicht indem Sie auf ein erstelltes Projekt in der Projekteverwaltung klicken In der Projekt bersicht k nnen Sie das einzelne Projekt gestalten und ver ndern Eine Funktionalit t Manage Templates steht nur dem Produzenten zur Verf gung ansonsten besitzen beide Rollen dieselbe Funktionalit t Collaborative Decision Management and Architectural Refactoring CDAR Tool Di User mtinner Sb Current Role Knowledge Producer Knowledge Tree Produzent_Einfamilienhaus Manage Templates Import Export Control Access Right Show Report Refresh Page Creat Flier a 4 Produzent_Einfamilienhaus EFN h 4 Dach BS u Dachform Streifenfundament LR Mansardendach K LR Satteldach Baufir Wi A4 Dachgiebel va LR Friesengiebel R Kapit nsgiebel AJ Fundament LR Baufirma X j Rb Baufirma Y B Fundament auswaehlen Abbildung 41 Projekt bersicht Produzent XXXI H 2 6 1Vorlagen H BENUTZERHAN DBUCH Diese Funktion steht nur dem Produzenten zur Auswahl Sie gelangen in folgende Ansi
97. ma T Bachelorarbeit f r Marcel Tinner und Daniel Zigerlig CDAR Tool 4 4 F r die Beurteilung ist der HSR Betreuer verantwortlich ggfs unter Einbezug des Feedbacks der Tool Evaluatoren 2 Berichte Abstract Mgmt Summary techn u pers nliche Berichte sowie G 4 M ndliche Pr fung zur Bachelorarbeit Die Unterteilung und Gewichtung von 3 Inhalt wird im Laufe dieser Arbeit festgelegt Im brigen gelten die Bestimmungen der Abt Informatik zur Durchf hrung von Studienarbeiten Rapperswil den 12 M rz 2014 Prof D f Zimmermann Institut f y Software Hochschule f r Technik Rapperswil Olaf Zimmermann Datei 2014 FS BA TinnerZigerlig Ausgabe 1 0 Letzte nderung am 12 03 14 CDARAufgabenstellungv10 docx XXV H Benutzerhandbuch Diese Benutzeranleitung bezieht sich auf das CDAR Programm welches w hrend der Bachelorarbeit 2014 entstand Sie beinhaltet zwei Hauptteile eine Installationsanleitung und eine Anleitung f r den Gebrauch der Applikation HI Installationsanleitung Dieser Teil beschreibt die Installation der CDAR Applikation und zeigt wichtige Informationen auf H 1 1 SQL Script MySQL Um die Applikation zu verwenden ist das beiliegende SOL Skript SQLScript sql in der Datenbank auszuf hren Es enth lt alle notwendigen Tabellen sowie deren Eigenschaften Falls Tabellennamen umbenannt werden sind diese auch in der Klasse DBTableHelper anzupassen H 1 2 Installation MediaWiki
98. mationen zu f hren und der Wissenskonsument sieht seine Entscheidungsm glichkeiten Er kann sich bei einer anstehenden Entscheidung in Form von verschiedenen Status entscheiden 23 3 6 2 Use Case Diagramm unangemeldeter Benutzer C1 Benutzer registrieren und anmelden UC2 Wissensbaum Create ReadUpdate Delete C3 Architekturentscheid Create Read Update Dele te 3 6 FUNKTIONALE ANFORDERUNGEN UC4 Options Create Read Update Delete UC5 Wissensbaum exportieren und importieren UC6 Wissensbaum modellieren UC9 Architekturentscheid Template Create Read Update Delete Wissenskonsument Abbildung 6 Use Case Diagramm UC 10 Entscheidungsprojekt Create Read Update Delete UC 14 Architekturentscheidung kommentieren 24 Create Read Update D elete C8 Strukturierter Wissensbaum exportieren UC 11 Wissensbaum zuweisen UC12 Zustand von Architekturentscheidung zuweisen 3 ANALYSE DER ANFORDERUNGEN 3 6 3 Use Case Beschreibungen Nachfolgend die Beschreibungen s mtlicher Use Cases im Brief Format 3 6 3 1 UCL Benutzer erstellen Use Case Name UC0O1 Benutzer erstellen Aktoren Unangemeldeter Benutzer Beschreibung Samtliche Funktionen der Applikation ausgenommen Registrierung sind erst nach einem erfolgreichen Einloggen verf gbar Im Rahmen dieser Bachelorarbeit k nnen s mtliche unangemeldete Benutzer ein neues Konto erstellen 3 6 3 2 UC2 Wissensbaum Create Read Update Delete
99. mm einen Drill Down von Ihrem Root Knoten aus Falls Sie im Graphen eine zyklische Abh ngigkeit haben kann die Applikation den Root Knoten nicht bestimmen und w hlt stattdessen die Entscheidung welche zuerst erstellt und in den Entscheidungsf hrungsgraphen gezogen wurde Was Sie zwingend vermeiden m ssen Bei jeder Entscheidung welche Sie in den Entscheidungsf hrungsgraphen ziehen m ssen Sie eine darauf verweisende Verbindung ziehen Ausgenommen sind dabei der Root Knoten des Projektes und die Root Knoten bei einem Drill Up oder Drill Down Falls Sie diesen Grundsatz nicht beachten entstehen Teilgraphen welche Sie nicht mehr miteinander verbinden k nnen Sie k nnten dieses Problem beheben indem Sie die exportiere Datei des Projektes anpassen und anschliessend wieder importieren 1 papeen Drill Up Remove Selected Element From Graph ia Abbildung 53 Entscheidungsf hrungsgraphen XXXVIII H BENUTZERHANDBUCH H 2 6 6 1 Knoten und Verbindungen Untenstehendes Bild zeigt einen Knoten mit Optionen Die Optionen k nnen Sie durch einen Doppelklick auf den Knoten anzeigen bzw ausblenden Das linke H kchen mit gr nem Hintergrund zeigt den Status der Entscheidung an Mehr Informationen dazu finden Sie im Kapitel H 2 6 10 Status Die Pfeile im unteren Bereich erm glichen die Drill Funktion diese ist im Kapitel H 2 6 6 2 Hierarchische Navigation Drill beschrieben ber den Kreis auf der rechten Seite
100. n Wir danken folgenden Personen f r Ihre Unterst tzung w hrend der Bachelorarbeit e Prof Dr Olaf Zimmermann f r die Betreuung unserer Bachelorarbeit e Lukas Wegmann f r hilfreiche Vorschl ge nach durchgef hrtem Code Review e Jonas Furrer f r interessante Inputs bezogen auf die HTTP API e Raphael Faes f r das Korrekturlesen unseres Berichts e Unseren Partnerinnen f r Geduld Rat und motivierende Worte Inhaltsverzeichnis 1 Management Summary aan 11 ET LTE 11 IEN EE EE 11 HS Wee TE EE 12 14 E E 13 DS Ausblick rear 14 2 EIBTURTUND ask eekee likleiihhnindk iiin 15 2 1 Ee LEE 15 2 27 Beispielszenario u su seee klin 15 2 2 1 Ist Zust nd Pobeier eier Ener 15 2 2 2 Soll Zustand Architekt a 16 2 3 Beispiel eines NEE 18 2 3 1 AD about Integration Style IBM UMF Template for Decision Log 18 2 3 2 Y Statements in Telco Case Study EIP Pattern Selection 18 3 Analyse der Anforderungen in ea 19 3 1 bersicht ber die zentralen Konzepte der Dom ne 19 3 2 Allgemeine Beschreibung des Software Werkzeuges EEN 20 3 3 Produkt Funktion aaisa 20 3 3 1 Funktionen des Wissensproduzentes ENEE 21 3 3 2 Funktionen des Wissenskonsumenten EEN 22 34 Benutzer Gharakteristik s ireren ee ae 22 3 5 Annahmen und Abbh ngigkeiten ENEE 22 3 6 Funktionale Antforderungen EEN 23 3 6 1 Aktoren und Stakeholder oscars dacs tats atlanta leerer 23 3 6 2 Use Case Diagramm ee ee een 24 3 6 3 Use Case Beschre
101. n betreffen die Ressource User S mtliche Aufrufe sind ohne vorheriges Einloggen aufrufbar und somit nicht gesch tzt Jusers Liefert s mtliche Users POST users Erstellt neuen Benutzer users id Bearbeitet Benutzer users login username name password pw Login des Benutzers POST users delete L scht einen Benutzer 8 1 2 Property File Ressourcen Die Description Ressource liefert die im Property File konfigurierten Konstanten description Liefert s mtliche Konstanten des Property Files 74 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 1 3 Allgemeine Ressourcen Die hier genannten Aufrufe existieren sowohl f r Wissensproduzenten als auch f r Wissenskonsumenten Der Platzhalter BAUM kann im Falle des Wissensproduzenten durch ktrees Abk f r Knowledgetree und im Falle des Wissenskonsumenten durch Drees Abk f r Projecttree ersetzt werden BAUM Liefert alle Wissensbaume BAUM Erstellt neuen Wissensbaum BAUMI id Liefert einen Wissensbaum POST BAUM id Bearbeitet Wissensbaum BAUM id users Liefert s mtliche Benutzer mit ihren jeweiligen Rechten zum jeweiligen Baum BAUM id users id Andert die Benutzerrechte eines Benutzers auf dem jeweiligen Baum BAUM delete L scht spezifizierten Wissensbaum BAUM id exports Liefert vorhandene exportierte Wissensbaume BAUM id exports Erstellt neuen Wissensbaumexport BAUM
102. n konnten Lesen Sie dazu die FAQ Weshalb erscheint das Popup nicht Weshalb kann ich meine Entscheidung nicht in den Entscheidungsf hrungsgraphe n droppen Die Entscheidung kann nur einmal im Entscheidungsf hrungsgraphen vorkommen Demnach wurde die Entscheidung bereits in den Graphen eingef gt Falls Sie den Knoten aktuell im Entscheidungsf hrungsgraphen nicht sehen k nnen Sie diesen ber die Entscheidungsverwaltung selektieren und ber Show Route anzeigen Wo kann ich mein Passwort ndern Lesen Sie dazu das Kapitel H 2 4 1 Passwortwechsel Weshalb kann ich mich nicht anmelden Falls Sie k rzlich einen Passwortwechsel in der Applikation vorgenommen haben m ssen Sie das Passwort ebenfalls bei MediaWiki ndern Siehe Kapitel H 2 4 1 Passwortwechsel Wie funktioniert ein Drill Up bzw Drill Down Lesen Sie hierf r das Kapitel H 2 6 6 2 Hierarchische Navigation Drill XLV
103. n werden E 5 Tools und Unterst tzungssoftware E 5 1 Projektverwaltung F r die komplette Projektplanung die Zeitrapportierung sowie das Issue Management wird Redmine eingesetzt Der aktuelle Stand der Arbeiten am Projekt kann durch den Betreuer jederzeit eingesehen werden und wird vom Projektteam aktiv aktualisiert E 5 2 Entwicklungsumgebung Zur Entwicklung der Applikation wurde Eclipse eingesetzt E 5 3 Versionsverwaltung Zur Versionsverwaltung wurde ein ffentliches GitHub Repository erstellt E 5 4 Kontinuierliche Integration Um eine hohe Softwarequalit t gew hrleisten zu k nnen wurde w hrend der Arbeit auf Kontinuierliche Integration gesetzt Durch kontinuierliche Ausf hrung der JUnit Integration Tests der CDAR Applikation waren fehlerhafte Implementierung nach jedem Commit sofort sichtbar Der Webdienst Drone io erm glicht kostenfreie Kontinuierliche Integration mit dem ffentlichen GitHub Repository Dro Git XVIII F Auswertung Zeitrapportierung F 1 Projektaufwand Marcel Tinner Daniel Zigerlig CN e Entwicklung e Sitzung Dokumentation Abbildung 33 Projektaufwand XIX F 2 Zeitaufwand pro Iteration F 2 ZEITAUFWAND PRO ITERATION E Analyse E Realisierung Iteration 2 E Realisierung Iteration 4 E Realisierung Iteration 6 Abbildung 34 Zeitaufwand pro Iteration XX E Realisierung Iteration 1 E Realisierung Iteration 3 E Realisierung Iteration 5 E Auswertung
104. nalit t der Applikation je nach Projektart unterscheidet wird dies auch im Domainmodell differenziert Grunds tzlich weisen die Klassen Wissensbaum und Entscheidungsprojekt jedoch keine unterschiedliche Attribute auf es wird lediglich zwecks bersichtlichkeit unterschieden 4 2 1 1 Attribute Attribut Typ Beschreibung Titel des Wissensbaumes beziehungsweise des Entscheidungsprojektes Tabelle 8 Attribute Entscheidungsprojekt 4 2 2 Verzeichnis Die Klasse Verzeichnis repr sentiert im der Entscheidungsverwaltung ein Verzeichnis Jeder Wissensnode befindet sich in einem Verzeichnis Diese erm glichen eine Verschachtelung um mehrere Verzeichnishierarchien zu erlauben 4 2 2 1 Attribute Attribut Title Parentid Tabelle 9 Attri bute Verzeichnis Beschreibung Titel des Verzeichnisses Id des bergeordneten Verzeichnisses Typ 4 2 3 Wissensnode Bei der Klasse Wissensnode handelt es sich um die Wissenseintr ge eines Benutzers Diese enth lt neben einem Titel auch den Wiki Titel der referenzierten Wiki Seite 4 2 3 1 Attribute Attribut Typ Beschreibung Title String Titel des Verzeichnisses Wikititle String Titel der Wiki Seite Tabelle 10 Attribute Wissensnode 31 4 2 DETAILBESCHREIBUNG DES DOMAINMODELLS 4 2 4 Wissenssubnode Ein Wissenseintrag weist den Benutzer der Applikation auf eine m gliche Architektur Entscheidung hin Die Umsetzung einer solchen Ents
105. ngen und Tabellen B VERZEICHNIS DER ABBILDUNGEN UND TABELLEN Abbildung 43 Entscheidungsvorlageverwaltung s ssssesssssseseseesesssssoserererssrssserrreesessssene XXXII Abbildung 44 Entscheidungsvorlage Wiki XXXII Abbildung 45 Optionenvorlagenverwaltung cccccssssececsssscececessneeecesseeaeeeeeeaeeeeesseneees XXXIII Abbildung 46 Optionenvorlage Wiki XXXIII Abbildung 47 Kons umentenvorlagenmverwaltung XXXIV Abbildung 48 Konsumentenvorlagen WIk XXXIV Abbildung 49 Import Export En na een ee XXXV Abbildung 50 Zugriffskontrolle c cccccccccssssssseceeceeeeecsessseeaeseceeeesseesseaeaseceeeeeesssessasaeeeeess XXXV lee E a XXXVI Abbildung 52 Entscheidungsverwaltung ccccccccccsssssssssecceceecescsesseseaeeeeeesesesesssaasaeeeeees XXXVII Abbildung 53 Entscheidungsf hrungsgraphen ccceceesessscececeeeccsssessaeceeeeeesceesesseaeees XXXVIII Abbildung E e EE XXXIX Abbilduing 55 POPU D nenn anna dee E A ce a Ri ne XXXIX Abbildung 56 Wiki Eintrag f r Entscheidungen cccessssscecececescsesesseaeeececeeeseessaeaeeeeeeeeens XL Abbildung 57 Optlonen BEE XLI Abbildung 58 Wiki Eintrag f r Optionen c ccccccccescsesssscascececeesceeseeeseeeeeeseessessessaseeeeeeens XLI elle ID elle XLI Abbildung 60 Status ver nderm ccccccccessssssscceceeceeeceeseseseeeceesceeseeeaeeeeeeeeeesesseaeaeeeeeesenenes XLII Abbildung 61 Locking meldung ccccccccesssssscececcecececses
106. ns 44 6 4 1 CDAR Browseranwendung Cent 44 6 4 2 CDAR Serveranwendung EEN 44 Implementierung der Architektur uusnsssnsnnnsnnnnanenannnnnnnnnnnnnnnnnnnnnnannnnnnnnnnnnnnnnnnnnnn 45 7 1 Datenhalt ng en ea eis Seeerei 45 7 1 1 Client aan heise 45 7 1 2 KREE 45 7 1 3 e E ET 45 7 2 P rallele Bearbeit ng nesiisasnekenes nennen 46 7 3 Kommunikation 47 7 3 1 Beispielkommunikation Node erstellen ENEE 48 7 3 2 Beispielkommunikation Node kopieren EEN 49 7 3 3 Beispielkommunkation Node l schen EEN 50 7 34 Beispielkommunkation Node Drag amp Drop ENEE 51 7 3 5 Beispielkommunikation Abfrage Wiki Seite EEN 52 74 Sicherheit und Session Handling 53 7 4 1 IESELEN 54 7 5 Baum und Graphenstrukturen ENEE 56 7 5 1 Fntscheidungsverwaltung EEN 56 7 5 2 Entscheidungsftihrungs graphen ENEE 57 7 6 Aufbau der Serverapplikation EEN 58 7 7 Aufbau der Clientapplikation EEN 59 7 7 1 Routen in Zusammenhang mit Views und Controllers ENEE 60 7 7 2 Beschreibungen der Services EEN 62 7 8 Entity Relationship Model der Datenbank ENEE 64 7 8 1 Beispielinhalt der Datenbank ENEE 65 Beschreibung der RESTful Server WebAPI uussusrsnnnnansnannnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn 73 8 1 bersicht der Schmitstelle screen eine 74 8 1 1 BE e e E 74 8 1 2 Property File Ressourcen ini eiegeerZ 74 8 1 3 Allgemeine Ressourcen een 75 8 1 4 Wissensproduzent Ressourcen 77 So Wissenskonsument Ressourcen 78 8 2 _ HTTP Statuscode
107. on 1 Einzelfundament Edit Title Delete Option v Se 2 Streifenfundament Edit Title Delete Option Add Option Abbildung 57 Optionen Indem Sie eine Option ber den Namen selektieren erscheint unterhalb folgende Ansicht Hier k nnen Sie einen Wiki Eintrag basierend auf der Option die Sie gew hlt haben editieren bzw lesen Verwenden Sie um den Text zu Formatieren die Wiki Sie k nnen den MediaWiki Artikel auch direkt ffnen indem sie auf Open Wiki Page in New Window klicken Selected Option Einzelfundament Open Wiki Page in New Window READ WRITE OPTION Abbildung 58 Wiki Eintragf r Optionen H 2 6 9Kommentare Sie k nnen einen Knoten bzw eine Entscheidung auch kommentieren Hierzu selektieren Sie diesen danach erscheint im unteren Bereich folgendes Feld Diese Funktion steht aber ausschliesslich der Konsumentenrolle zur Verf gung Comments Date Username Comment Delete Comment 1 2014 05 mtinner Hier steht ein Kommentar Delete Comment 31 11 38 14 Add Comment Abbildung 59 Kommentare XLI H BENUTZERHAN DBUCH H 2 6 10 Status Ein Status veranschaulicht den aktuellen Stand der Entscheidung Im Knoten wird jeweils der Status als Bild angezeigt Es stehen folgende Status f r die Entscheidung zur Auswahl Standardm ssig erscheint Open Falls der Status ge ndert wurde kann nicht mehr auf Open gewechselt werden Diese Funktion steht nur dem Konsumenten zur Verf gung Status Bild im Knoten
108. ptionsvorlagen Folgendes Bild zeigt den Abschnitt in welchem Sie Vorlagen f r die Optionen erstellen und verwalten k nnen Sie k nnen jeweils nur eine erstellte Vorlage als Standardvorlage ausw hlen Die ausgew hlte Standardvorlage erscheint als Vorlage f r den Wiki Eintrag welche im Abschnitt H 2 6 10 Status zu sehen ist Der Wiki Eintrag welchen Sie dort sehen ist eine Kopie der Vorlage und dessen Eintrag welcher der Produzent f r die Entscheidung verfasst hat Der Vorlagetext erscheint erst wenn Sie den Status ver ndert haben Knowledge Consumer Templates Name Edit title Default Delete 1 Consumer_Template edit title false Delete Template Add template Abbildung 47 Konsumentenvorlagenverwaltung Verfassen von Konsumentenvorlagen Wenn Sie eine erstellte Vorlage selektieren dann erscheint im unteren Fensterbereich der Wiki Eintrag der Vorlage Diesen k nnen Sie ber den Tab Write editieren und danach speichern Selected Template Consumer _ Template READ WRITE Hier k nnen Sie Ihre Vorlage f r den Consumer verfassen Abbildung 48 Konsumentenvorlagen Wiki XXXIV H BENUTZERHANDBUCH H 2 6 2 Import und Export ber den Button Import Export gelangen Sie auf nachfolgend illustrierte Ansicht Auf dieser Seite k nnen Sie Ihr Projekt importieren bzw exportieren Bei einem Simple Export wird ein Projekt exportiert jedoch werden die Wiki Seiten als Verlinkung exportiert Falls Sie den Inhalt der
109. quest URL ptrees id comments Methods GET liefert samtliche Kommentare POST erstellt neuen Kommentar H id int creationTime Date lastModificationTime Date JSON Response Request EEN userld int nodeld int comment String Begr ndung 200 Abfrage erfolgreich HITE Statusede 201 Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 97 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 10 2 Spezifische Abfrage eines Kommentars und Bearbeitung Request URL ptrees id comments id GET liefert Kommentar POST bearbeitet Kommentar id int creationTime Date lastModificationTime Date Methods JSON Response Request userld int nodeld int comment String Begr ndung HTTP Status Code 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 8 3 10 3 Kommentar l schen ptrees id comments delete POST l scht spezifischen Kommentar Request URL Methods JSON Request Begr ndung Abfrage erfolgreich Fehlerhafte Requestdaten HTTP Status Code 98 9 SCHLUSSFOLGERUNG 9 Schlussfolgerung 9 1 Zusammenfassung Die im Rahmen dieser Bachelorarbeit implementierten Funktionalit ten deckten alle geplanten UseCases ab Der Einsatz von aktuellen Web Application Frameworks sichern die Wartbarkeit des Produktes Die Verlinkung der Wiki Seiten erm glicht auch zus tzliche Software zur Integrierung von weiteren Wissensinhalten Dies k nnten beisp
110. r Node gezeichnet wurde kann ihm der Benutzer einen Titel geben Nach dessen Best tigung sendet der Client eine Update Anfrage Der Server berpr ft erneut auf eine Sperrung des Projektes Falls keine vorhanden ist aktualisiert er den Titel in der Datenbank und retourniert dem Client den aktualisierten Node create Node Tree id Directory id Check Lock af ngag eene 3 DORINT Lock Ok N a E RE edit Wiki Page Text Node Page Title draw Node i rename Node update Node Node Tree is locked Check Lock DILL Lock Ok update Node Node return Node ai Abbildung 17 Kommunikation Node erstellen 48 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 3 2 Beispielkommunikation Node kopieren Bei einem Kopiervorgang zeichnet jsTree die Entscheidung umgehend und es wird ein Event los gefeuert Der Event liefert als Parameter den kopierten Node Zum diesem Zeitpunkt ist jedoch das Elternverzeichnis noch nicht bekannt Daher sendet der Client lediglich der Wert O f r das Elternverzeichnis den Titel und die Tree Identifikation Nun berpr ft der Server ob das Projekt von einem anderen Benutzer momentan bearbeitet wird Ist dies der Fall wird der ganze Vorgang durch eine Lock Antwort abgebrochen Es erscheint eine entsprechende Meldung welche dies dem Benutzer signalisiert Im Gegensatz zum Erstellen eines Nodes wird beim Kopieren der Node sofort gezeichnet da der Event erst nach dem Kopiervorgang ausgel
111. res Design e Drill Aktion zus tzlich ber Buttons m glich e Buttons sind nun rechtsb ndig e Sperrung eines ganzen Projektes falls bereits ein Benutzer diesen bearbeitet A QUALIT TSSICHERUNGSMASSNAHMEN A 2 3 Test 3 Ziel Erkennen von Benutzerschwierigkeiten Bugs Einschrankungen und Benutzererwartungen Test setup e Durchtesten aller Use Cases e Firefox 29 0 1 Erkenntnis e Umbenennen Top Level in der Projekverwaltung nicht m glich e Grammatik berpr fen e Benutzer findet Reporting Feature zuerst nicht e Full Import Export erzeugt Fehlermeldung e Im Entscheidungsf hrungsgraph kann keine Connection erzeugt werden e Entscheidungsf hrungsgraph ist inkonsistent e Timestamp bei den Kommentaren fehlt e Refresh Button m glicherweise auf rechter Seite besser platziert e Property File Problem im Client falls nicht geladen erscheint undefined e Umbenennen mehreren Namesgebungen nderungen e Umbenennen nur in der Projekteverwaltung m glich e Reporting nun in der Projekt bersicht und in der Projekteverwaltung m glich e Bugfix Export Import e Connection anpassen dass auch in IE und Firefox m glich e Inkonstanten bestehen weiterhin nach Probleml sung bzw Workaround suchen e Design und Namesanpassungen A 2 4 Usablity Test 4 Ziel Erkennen von Benutzerschwierigkeiten Bugs Einschr nkungen Benutzererwartungen Erkenntnis e Kopieren der Entscheidungen funktioniert direkte Bearbeitung danach schl gt fehl
112. rung des Clients ben tigt einen aktuellen Internetbrowser mit aktivierter JavaScript Unterst tzung Serverseitig braucht die Applikation neben einer funktionierenden Media Wiki Umgebung zudem einen Tomcat Server Version 7 sowie eine MySQL Server Instanz Version 5 6 Um eine problemlose Darstellung sicherzustellen wird von einer aktuellen Version eines verbreiteten Browsers ausgegangen siehe auch H 2 9 Kompatibilit t und Einschr nkungen Ausserdem ben tigt die Applikation eine st ndige Netzwerkverbindung 22 3 ANALYSE DER ANFORDERUNGEN 3 6 Funktionale Anforderungen 3 6 1 Aktoren und Stakeholder Nachfolgend sind die Aktoren und Stakeholder des Systems aufgef hrt Unangemeldeter Benutzer Ein unangemeldeter Benutzer der Applikation hat die M glichkeit sich einen neuen Account einzurichten oder sich einzuloggen S mtliche weitere Funktionalit ten der Applikation sollen dem unangemeldeten Benutzer nicht zug nglich sein Wissensproduzent Ein Wissensproduzent ist zust ndig f r das Einpflegen von Wissenseintr gen ins System Er kann neue Wissensb ume erstellen Daten eintragen und daraus einen Entscheidungsbaum modellieren Wissenskonsument Ein Wissenskonsument kann neue Anwendungsprojekte anlegen und bearbeiten Dabei kann er die Wissenseintr ge sowie den Entscheidungsf hrungsgraphen von bereits eingepflegten Daten in sein Projekt laden Nun erm glicht die Applikation dem Benutzer sein Projekt anhand dieser Infor
113. s ue anne aneignen 78 8 3 Detailbeschreibung der Ressourcen EEN 79 8 3 1 Property File Konstanten EEN 79 8 3 2 ET e 79 8 3 3 Baum ea een er 82 8 34 EXP rt Import ee E AE EE E Ee Eeer 83 83 3 Verzeichnisse geesde deit 85 Sieten 86 8 3 7 SUbDNBdesnn an n eier 90 8 38 Verbindungen uineeissseiesekeess anne 94 83 97 SLeMplataSs nee EE 96 8 310 Kommentare EE 97 Schhissfolgerung en Eee 99 HI Zusammenfass ng a n csieeikesiiesisskhekkiehiaene ee een 99 9 2 e e une Eaa A EAE as 100 A Qualit tssicherungsmassnahmen uunssussennsnonnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnennnnnnnnnnnn I AL Kennzahlen en es ee rare ee I A 2 Usability Tests unse denninnuaienbn tatiana named II B Verzeichnis der Abbildungen und Tabellen suusuussensseansnonnenannnnnnnnnnnnnnnnnnnnnnnnn VI BI Abbildungsverzeichnnis EEN VI Gel erte VII E e ET E IX NEEN NEE XI E Projektplanung anhand ehren XIII KI Tte ratio rispl anny attente i a a ee XIII E 2 SAPO UES PAT UT Ge e ere XIV ee NEE XVII EA Meetings aissis deli aa a aa A a Vaaa aa aaaeaii a XVIII E 5 Tools und Untersttitzungs software ENEE XVIII F Auswertung Zeitrapportierung ss ssssssssnssnunnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnn nannan nnna XIX Ir E ME EIERE EE XIX F 2 Zeitaufwand pro Iteration ENEE XX G _Aufgabenstellun i ussisnen a en ana XXI G 1 Scan Aufgabenstellung un cessssssecsssecssecsssecsseesssescssssesseecsseecssecsseess
114. saeseceeeescesseasaeaeeeeseseeesesssaeeeeeesens XLIII B 2 Tabellenverzeichnis Tabelle 1 Beispiel eines Wissenseintrages 18 Tabelle 2 CDAR Terminologie 19 Tabelle 3 Allgemeine Produkt Funktionen EN 20 Tabelle 4 Produkt Funktionen des Wissensproduzenten c cccccccccesssssssceceeceeeeessesstteaeeeeees 21 Tabelle 5 Produkt Funktionen des Wissenskonsumenten 22 Tabelle 6 Weitere Antorderungen 28 Tabelle 7 Testumgebungssetup 29 Tabelle 8 Attribute Entscheidungsprolekt 31 Tabelle 9 Attribute Verzeichnis a zn ernennen 31 Tabelle 10 Attribute Wissensnode an 2 ea ei 31 Tabelle 11 Attribute Wissenssubnoden an nu ee de 32 Tabelle 12 Attribute Wissenslnk nn ENEE 32 Tabelle 13 Beziehung der Klassen an ende ae ea 33 Tabelle 14 l zenzen Elientleill aussuiersts et 44 Tabelle 15 Lizenzen Sewerteil ars medialen erstanden engere nennen 44 Tabelle 16 Layerbeschreibuns 2 eu u Inn edd 58 Tabelle 17 Zusammenhang Views und Controllers cccccccceceeecesssssssseeeceeeeesessssseaeeeeseeeess 61 Tabelle 18 Authentification Service us ae RR 62 Tabelle 19 Description Service ENEE ENEE 62 Tabelle 20 Entity Relationshop Model ccccccsccccececessssssssaecececcessseseaeaeceeeeeeesssessneaeeeeees 64 Tabelle 21 Datenb nktabelle User a Hai A See Seege 66 Tabelle 22 Datenbankta belle Tree nee ee 66 Tabelle 23 Datenbanktabelle TreeMap ping cccccccccssssssscececceeecesssssseeeceesesssessae
115. schen von Entscheidungsprojekten 3 6 3 11 UC11 Wissensbaum zuweisen Use Case Name UC11 Wissensbaum zuweisen Aktoren Wissenskonsument Beschreibung Zuweisung von Wissensb umen an einem erstellten Entscheidungs projekt 27 3 7 WEITERE ANFORDERUNGEN 3 6 3 12 UC12 Zustand von Architekturentscheidung zuweisen Use Case Name UC12 Zustand von Architekturentscheidung zuweisen Aktoren Wissenskonsument Beschreibung Um in der Applikation zwischen angenommenen abgelehnten noch nicht entschiedenen und zu berdenkenden Architektur entscheidungen zu unterscheiden soll diese das Setzen von Zust nden unterst tzen 3 6 3 13 UC13 Architekturentscheidung kommentieren Use Case Name UC13 Architekturentscheidung kommentieren Aktoren Wissenskonsument Beschreibung Zwecks der Begr ndung von Entscheidungen oder das Anbringen von Korrekturvorschl gen sollen Wissenskonsumenten eine Architektur entscheidungen kommentieren k nnen 3 7 Weitere Anforderungen Name Beschreibung L Antwortzeit Der Client reagiert auf eine Anfrage innerhalb von max vier Sekunden andernfalls wird der Benutzer ber eine Ladeaktivitat informiert 2 Browserkompatibilit t Die Applikation unterst tzt die Internetbrowser Internet Explorer 11 Firefox 29 und Google Chrome 35 3 Effizienz Der Client erm glicht das Hinzuf gen von Wissenssubnodes mit weniger als vier Klicks 4 Sicherheit Die Applikation kontrolliert den Zugriff au
116. ssnaees 73 Stat s COGS EEN 78 Keser eebe Projektiterations DESCHreiDUNG nennen XIII EE EE XVII Property File Konfiguration ccceesessececececeeceesesseaeeeceeeessseseaeeeeeeeceseessesnaaeees XXVI leie E Le RE XXVII Stat s bers en EE XLII Property File ne a e Ee eege XLIV VIII C Glossar AngularJS AngularJS ist ein Open Source Framework zur Erstellung von browserbasierten Single page Anwendungen Apache Maven Apache Maven ist ein Build Management Tool basierend auf Java Mav API Englisch fiir application programming interface wortwortlich Anwendungs programmierschnittstelle Pro Balsamiq Mockups Balsamiq Mockups ist eine Software zum Erstellen von Mockups Bliki Die Java Wikipedia API Bliki Engine ist eine Parser Bibliothek f r Java zur Umwandlung von Wikipedia Markup Text Notation zu HTML Gwt Bootstrap Bootstrap ist eine Sammlung von Hilfsmitteln zur Gestaltung von Webapplikationen Boo CSS Cascading Style Sheets ist eine Anwendungssprache f r Stilvorlagen von Dokumenten Css ELOC Effective Lines of Code Anzahl Codezeilen ohne Leerzeilen und Kommentare Genson Open Source Bibliothek f r die Serialisierung von Java zu JSON Objekten und umgekehrt Gen Git Git ist eine freie Software zur verteilten Versionsveraltung von Quellcode HTML Hypertext Markup Language HTTP Hypertext Transfer Protocol Jersey Java Framework f r die Entwicklung von RESTful Web Services Joda Time Erweiter
117. t database administration CRUD backup Weitere M glichkeiten D DB Session State gt Client Session State Abbildung 13 Mockup Projektansicht Grunds tzlich hnelt sich diese Ansicht stark der unter Punkt 5 2 2 4 gezeigten Ansicht des Wissensproduzenten Ein Wissenskonsument hat jedoch zus tzlich die M glichkeit sich f r einen Wissenseintrag zu entscheiden Die einzelnen Eintr ge sind im Entscheidungsf hrungsgraphen farblich markiert um den Ablauf des Projektes nachvollziehen zu k nnen Dar ber hinaus k nnen die einzelnen Anwendungsprojektmitglieder ihre Entscheidungen anhand einer Kommentarfunktion kommentieren So lassen sich auch zu einem sp teren Zeitpunkt die gew hlten Entscheidungen nachvollziehen 39 6 Evaluation der Technologien zur Umsetzung der Architektur 6 1 Servertechnologien 6 1 1 Tomcat Anwendungsserver Beschreibung Apache Tomcat ist eine OpenSource Implementierung der Apache Software Foundation Die Software erm glicht das Hosting von Webservern und Webcontainern und erlaubt in Java geschriebene Web Anwendungen auszuf hren Lizenziert ist die Technologie unter der Apache Lizenz Apa Vorteile e Open Source Implementierung e Im Projektteam vorwissen vorhanden durch Arbeit mit der Technologie im Rahmen der Studienarbeit Alternativen e Glassfish e JBoss 6 1 2 Jersey Beschreibung Die Implementierung einer erweiterbaren und wartbaren RESTful Schnittstelle ist keine einfache Aufga
118. t einem entsprechenden HTTP Statuscode Untenstehendes Diagramm visualisiert den Login Prozess und die anschliessende Abfrage einer gesicherten Ressource login username password ok user id access token get trees id access token ALT RE A i get user by id and access token return trees PETE LLL 4i HTTP Status Code Unauthorized ee OD Abbildung 22 Kommunikation Sicherheit und Session Handling 53 7 4 SICHERHEIT UND SESSION HANDLING 7 4 1 MediaWiki Single Sign on M chte ein registrierter Benutzer eine Wiki Seite im MediaWiki erstellen oder bearbeiten muss er ber einen Login im MediaWiki verf gen Hierf r erstellten wir einen Single Sign On Mechanismus Bei jeder Registrierung eines neuen Nutzers wird zeitgleich ein Benutzer im MediaWiki mit denselben Anmeldedaten erstellt Eine Registrierung in der Applikation ist auch m glich wenn sich ein Benutzer schon vorg ngig beim MediaWiki registriert hat Hierf r muss er jedoch denselben Benutzernamen und Passwort bei der Registrierung angeben Der Server versucht sich mit diesen Daten anzumelden falls die Anmeldung gelingt ist die Registrierung erfolgreich register username password Bununnununnunnnnunnnnunnnnunnnnnnn gt login username password HL login ok ee ee ai register user oui ween login failed DE u a lt 4 register username password register ok SE EE ai register ok register user DILL register faile
119. t f r eingepflegte Designentscheidungen entscheiden k nnen Dabei kann er nachlesen welche Informationen diesbez glich eingepflegt wurden und was f r Folgen sich f r das Projekt ergeben 3 3 Produkt Funktion Dieses Kapitel beschreibt die Funktionen und Anforderungen an das Produkt Grunds tzlich ist die Applikation in zwei Bereiche beziehungsweise Ansichten unterteilt e Ansicht des Wissensproduzenten und seinen jeweiligen Wissensprojekten e Ansicht des Wissenskonsumenten und seinen jeweiligen Anwendungsprojekten Auf die einzelnen Bereiche und deren spezifische Anforderungen wird in den nachfolgenden Kapiteln eingegangen Allgemeine Anforderungen an die Applikation sind in der folgenden Tabelle beschrieben Funktion Anforderung Einschrankungen 1 Jeder Benutzer hat einen Account inkl Benutzername und Passwort 2 Ein Benutzer kann seine Rolle wechseln Wissensproduzent konsument 3 Es k nnen neue Benutzer erstellt werden 4 Ein Benutzer kann sich nur einmal gleichzeitig am System anmelden Tabelle 3 All gemeine Produkt Funktionen 20 3 ANALYSE DER ANFORDERUNGEN 3 3 1 Funktionen des Wissensproduzentes Die m glichen Funktionen der Applikation aus Sicht eines Wissensproduzenten beinhalteten in erster Linie das Einpflegen von Wissenselementen in Form von Architekturentscheidungen bzw Architectural Refactorings Hierbei besteht die M glichkeit neue Wissensprojekte zu erstellen oder in Vorhandene weiteres
120. tatus Code 200 Abfrage erfolgreich Am Fehlerhafte Requestdaten 409 Lock auf Baum 95 8 3 9 Templates 8 3 DETAILBESCHREIBUNG DER RESSOURCEN 8 3 9 1 Erstellung Template und Abfrage Request URL Methods JSON Response Request HTTP Status Code ktrees id templates GET liefert samtliche Templates POST erstellt neues Template H id int creationTime Date lastModificationTime Date templatetext String templatetexthtml String isDefault bool decisionMade bool isSubnode bool Begr ndung 200 Abfrage erfolgreich 201 Erstellung der Ressource erfolgreich 400 Fehlerhafte Requestdaten 8 3 9 2 Spezifische Abfrage eines Templates und Bearbeitung Request URL Methods JSON Response Request HTTP Status Code ktrees id templates id GET liefert Template POST bearbeitet Template id int creationTime Date lastModificationTime Date templatetext String templatetexthtml String isDefault bool decisionMade bool isSubnode bool Begr ndung 200 Abfrage erfolgreich 400 Fehlerhafte Requestdaten 96 8 BESCHREIBUNG DER RESTFUL SERVER WEBAPI 8 3 9 3 Template l schen Request URL Methods ktrees id templates delete POST l scht spezifisches Template JSON Request Begriindung Abfrage erfolgreich Fehlerhafte Requestdaten HTTP Status Code 8 3 10 Kommentare 8 3 10 1 Erstellung Kommentar und Abfrage Re
121. ten Aktualisierungszeitpunktes Fremdschl sselattribut auf den Start Knoten der ef Verbindung Fremdschl sselattribut auf den Subnode welcher der Verbindung zugewiesen wurde Enth lt den Wert 0 falls keine Option selektiert wurde Verweis auf den Baum welcher die Verbindung beinhaltet Tabelle 35 Datenbanktabelle NodeLink Nachfolgende Tabellen enthalten die Daten aus dem beschriebenen Beispiel Feld iiss 2014 05 28T11 52 19Z last_modification_time 2014 06 05T14 59 14Z sourceid 31 targetid 32 ken A 13 Tabelle 36 Datenbanktabelle NodeLink Beispielinhalt 1 Feld Wert creation_time last_modification_time 33 targetid 42 Tabelle 37 Datenbanktabelle NodeLink Beispielinhalt 2 71 7 8 ENTITY RELATIONSHIP MODEL DER DATENBANK 7 3 1 8 Tabelle NodeMapping Die Tabelle NodeMapping beschreibt in welchem Verzeichnis sich der jeweilige Wissenseintrag befindet knid INT Verweis auf einen Wissenseintrag INT Verweis auf ein Verzeichnis Tabelle 38 Datenbanktabelle NodeMapping Nachfolgende Tabellen enthalten die Daten aus dem beschriebenen Beispiel Tabelle 41 Datenbanktabelle NodeMappingBeispielinhalt 3 72 8 Beschreibung der RESTful Server WebAPI Die Definition der Ressourcen und Methoden der HTTP Api orientiert sich in erster Linie an den Regeln des Buches REST API Design Rulebook aus dem O Reilly Verlag Die Serviceimplementierung entspricht dem Level 2 des REST Maturity
122. ten Wissenssubnode bzw Subnode Options beschreiben diese M glichkeiten _Entscheidungsverwaltung Komplettansicht in Form eines Baumes aller Eintr ge Entscheidungsf hrungsgraph Graphansicht welche die Abh ngigkeiten zwischen den auch Graph Wissensnodes bzw Wissenssubnodes visualisiert Wissenslink auch Verbindung im Entscheidungsf hrungsgraphen Beschreibt Verbindung von welchem Wissensnode man anhand welcher Option _ zum nachfolgenden Wissensnode gelangt Verzeichnis engl directory Verzeichnis beziehungsweise Ordner in der Entscheidungs verwaltung Tabelle 2 CDAR Terminologie 19 3 2 ALLGEMEINE BESCHREIBUNG DES SOFTWARE WERKZEUGES 3 2 Allgemeine Beschreibung des Software Werkzeuges Die Applikation erm glicht einzelne Wissensprojekte anzulegen und vorhandene Informationen in das System einzupflegen Die eingetragenen Informationen sind unter Umst nden voneinander abh ngig Deshalb besteht eine Verkn pfung zwischen den eingetragenen Informationen Dies soll mit Hilfe eines Entscheidungsf hrungsgraphen dargestellt werden Ausserdem soll dem Wissensproduzenten erm glicht werden durch s mtlichen eingepflegten Informationen zu navigieren und diese mit in den erarbeiteten Baum einzupflegen Ein Anwender des Systems kann auch als Wissenskonsument mit der Applikation arbeiten Hierbei kann er neue Projekte auf Grundlage von Wissensb umen erstellen Der Wissenskonsument soll sich in einer weiteren Graphansich
123. tiert in Form von Cookies die User Id sowie den Accesstoken des eingeloggten Benutzers Diese Daten werden clientseitig ben tigt um bei einer Abfrage dem Server mitzuteilen dass der Benutzer eingeloggt ist 7 1 2 Server Der Server speichert s mtliche Daten in einer eigenen MySQL Datenbank Hierzu geh ren beispielsweise die Userdaten angelegte B ume und Projekte sowie auch die Repr sentation der Baum und Graphenstruktur Die zugeh rigen Namen der Wiki Seiten sind pro Entscheidung als Referenz in der Datenbank gespeichert 7 1 3 MediaWiki Um die diversen Wiki Vorteile beispielsweise die sichtbare nderungshistorie zu nutzen speichert der Server s mtliche Eintr ge und deren nderungen ins MediaWiki Ausgenommen hiervon sind lediglich Templates welche sich ein Benutzer anlegt Diese sind weniger sensibel und nicht unter vielen zeitgleichen nderungen betroffen Aus diesem Grunde und zudem um die Performance zu steigern persistiert der Server die Templates 45 7 2 PARALLELE BEARBEITUNG 7 2 Parallele Bearbeitung W hrend dieser Bachelorarbeit wurde entschieden dass keine parallele Bearbeitung am selben Projekt unterst tzt werden soll um potentielle berschreibungen zu vermeiden Versucht ein Benutzer ein Projekt zu bearbeiten welches sich bereits in Bearbeitung befindet so erscheint im Client folgende Meldung Object is locked by mtinner2 till Tue Jun 03 14 24 23 CEST 2014 Object is locked by mtinner2 till Tue
124. uessssesessesesseccssessneccsseesuessaecsateesseesens XXI H Benutzerhandbuch ssssussussrsnssunnnnnnnunnunnunnnnnnnunnnnnnnunnunnannnnnnnnnnnnnannnnnnnannannnnann annan XXVI H Installations nleitung uesenkkieekea ln a XXVI H 2 Betriebsanleitung EEN XXVIII 10 1 Management Summary 1 1 Ausgangslage Das Dokumentieren von Architektur Entscheidungen im Rahmen eines Softwareprojektes wird meist in Form von Textdokumenten realisiert Dies f hrt zu zahlreichen Nachteilen wie beispielsweise die fehlende Skalierung als auch eine eingeschr nkte Teamf higkeit Seit 2004 ist das Dokumentieren von Architektur Entscheidungen ein aktives Forschungsthema Neben dem Nutzen von Wiki Engines existieren verschiedene Forschungsprototypen welche die Wiederverwendbarkeit von Dokumentationen unterst tzen und zus tzlich eine Benutzerf hrung erm glichen sollen Zum Zeitpunkt dieser Bachelorarbeit hat sich keines dieser Tools auf dem Markt etabliert Nel 1 2 Zielsetzung Die vorliegende Bachelorarbeit hat das Ziel eine neue technische Richtung des in der Ausgangslage beschriebenen Forschungstrends zu untersuchen Durch die Nutzung einer Wiki Engine in Kombination mit einem neu zu konzipierendem Rich Client im Browser werden vorhandene Werkzeuge eingesetzt und kombiniert Neben einer Prototypen Implementation ist auch eine anforderungsgerechte erweiterbare Software Architektur gefordert Nachfolgende Herausforderungen beschreiben die Hauptziele dies
125. umentierten und in Form einer gedruckten Dokumentation im Archiv hinterlegt Sobald das Bau Architekturb ro einen Kundenauftrag erh lt welcher sich in den Anforderungen und Gegebenheiten sehr einem in fr heren Jahren realisierten Projekt hnelt bietet sich den Mitarbeitern der folgende Ablauf Kunde Architektur B ro Auftrag Einfamilienhaus S N ru hnlicher Auftrag bereits realisiert Archiv Nach Realisierung neue Dokumentation Abbildung 3 Ist Zustand Bau Architekt 15 2 2 BEISPIELSZENARIO Die Mitarbeiter durchsuchen das Archiv nach hnlichen Projekten Sind diese gefunden und durchgelesen erfolgt die Realisierung des aktuellen Kundenauftrages Entscheidungen aus f rheren Projekten werden erneut gef llt und dokumentiert Hier kann es aufgrund von potentiellen Neuentwicklungen zu anderen Entscheidungen als in fr heren Jahren kommen Diese werden in der neuen Dokumentation niedergeschrieben und begr ndet Dies f hrt zu sehr viel redundanten Informationen die an mehreren Stellen mit anderen Begr ndungen und Entscheidungen gef hrt werden Falls nun einige Zeit sp ter ein weiteres Einfamilienhaus angefordert wird hat ein Architekt die Auswahl von mehreren Dokumentationen Er muss beide durchlesen um die richtigen Entscheidungen beziehungsweise s mtliche M glichkeiten zu finden 2 2 2 Soll Zustand Architekt Mit Hilfe der CDAR Applikation soll der Ablauf eines Projektes beim fiktiven Bau Archit
126. ung der Java date und time Klassen Jod JQuery Jquery ist eine freie JavaScript Library welche Funktionen zur DOM Navigation und Manipulation zur Verf gung stellt Jqu JSON Kompaktes Datenformat zum Zweck des Datenaustauschs zwischen Anwendungen JSO JsPlumb JavaScript Bibliothek zur Darstellung von interaktiven Graph Strukturen im Browser JSTL Implementierung der Standard Tag Library f r JavaServer Pages JST IX B 2 TABELLENVERZEICHNIS JsTree JsTree ist ein JQuery Plugin zur Darstellung von interaktiven Baumdarstellungen im Browser JUnit Java Framework f r automatisiertes Testen von Applikationen Jun Lock Locking Englisch f r Sperre steht f r eine Sperrung des Zugriffes bei paralleler Bearbeitung Loc MediaWiki Freie Wiki Engine welche beispielsweise auch von Wikipedia verwendet wird MySQL MySQL ist ein relationales Datenbankverwaltungssystem Mys REST Representational State Transfer bezeichnet ein Programmierparadigma f r Webanwendungen RUP Rational Unified Process Iteratives Projektvorgehen Tomcat Web Application Server f r Java basierte Applikationen URI Uniform Resource Identifier URL Uniform Resource Locator X editable X editable ist eine Open Source JavaScript Bibliothek zum Erstellen von editierbaren Elementen im Browser Xed XML Extensible Markup Language D Literatur Ang Apa Bal Boo Css Dro Gen Git Gwt Ifs Jav Jer Jod Jqu JSO JsP
127. usters Ein Mitarbeiter des Bau Architektur B ros hat das Beispiel in der Rolle als Wissensproduzent in die Software eingetragen und die Zusammenh nge modelliert Das Projekt Einfamilienhaus beinhaltet die drei Wissenseintr ge Fundament ausw hlen Baufirma X und Baufirma Y Diese sind in den Ordnern Anfangsphase und Baufirmen abgelegt Inhalt Entscheidungsverwaltung Inhalt Entscheidungsf hrungsgraphen Ge Zu nd Fundament ausw hlen Rename 3 Einfamilienh Einzelfundament e H nee Streifenfundament 4 d Baufirmen u Rb Baufirma X zu Einzelfundament Streifenfundament Bb Fundament ausw hlen Abbildung 29 Beispielinhalt Entscheidungsverwaltung Baufirma X a Baufirma Y a ve i 88 Abbildung 30 Beispielinhalt Entscheidungsf hrungs graphen Der Wissenseintrag Fundament ausw hlen hat die zwei Optionen Einzelfundament und Streifenfundament welche je nach Auswahl zu einem anderen Wissenseintrag f hren 65 7 8 1 1 Tabelle User 7 8 ENTITY RELATIONSHIP MODEL DER DATENBANK Die in der CDAR Applikation angelegten Benutzer werden in der Tabelle User abgespeichert Feld Id Typ INT Beispielinhalt und Beschreibung 1 Prim rschl ssel der Entit t creation_time DATETIME 2014 05 28T11 52 19Z last_modification_time DATETIME Datum und Zeit der Erstellung 2014 06 0517 14 59 14Z Datum und Zeit des letzten Aktualisierungs
128. wenden ist und beschreibt wichtige Eigenschaften sowie Einschr nkungen Die Applikation bietet zwei Benutzerrollen welche sich in der Funktionalit t teilweise nicht oder nur geringf gig unterscheiden Deshalb kann es sein dass das jeweilige Bildschirmfoto nicht der Rolle entspricht in der Sie sich gerade befinden Jedoch ist die erkl rte Funktion in beiden Rollen vorhanden ansonsten wird explizit darauf hingewiesen H 2 1 Applikationsaufruf Die ver ffentlichte Anwendung wird ber http Dom ne Port CDAR cdarclient login im Browser aufgerufen H 2 2 Registration und Login Um die Applikation nutzen zu k nnen m ssen Sie sich zuerst registrieren Falls Sie sich bereits vorg ngig im MediaWiki registriert haben und diesen Benutzernamen behalten wollen registrieren Sie sich hier ebenfalls mit den gleichen Benutzerdaten wie im MediaWiki Falls Sie jedoch noch kein Login bei MediaWiki verf gen wird bei der Registration ein MediaWiki Account f r Sie erstellt Falls die Registration nicht erfolgreich war k nnte es an den Richtlinien f r die Registration liegen dazu mehr im Kapitel H 2 2 1 Registration Register Abbildung 35 Registration Nach der erfolgreichen Registration verf gt die Applikation nun ber ihre Benutzerdaten und Sie k nnen sich ber unten stehende Ansicht anmelden Please sign in Log in as Knowledge Producer Sign in Abbildung 36 Login XXVIII H BENUTZERHANDBUCH H 2 2 1Richtl
129. y 3 B Decision 4 B Decision 5 V Category 6 Si Decision 7 Architectural Refactoring De SQL Context viewpoint refinement level Quality attributes and stories forces Logical viewpoint data viewpoint all levels Flexibility data integrity Smell refactoring driver Itiakes rather long to update the data model and to migrate existing data Architectural decision s to be revisited Choice of data modeling paradigm current decision is relational s Choice of metamodel and query language current decision is SQL Refactoring solution skeich evotution outline s Use document oriented database such as MongoDB instead of RDBMS such as MySQL Redesign transaction management and database administration Affected campanenis and connectors if modelled explicitly Dalabase Data access layer Fxecution tasks in agile planning too and or full fledged design method Design document layout i e the pendant to the machine readable SQL DDL Write new data access layer implement SQLish query capabilities yourself Decide on transaction boundaries if any document database administration CRUD backup Abbildung 11 Mockup Baumansicht In der oberen H lfte befinden sich die Baumstruktur und der Entscheidungsf hrungsgraph Die untere H lfte zeigt die Wiki Seite des selektierten Wissenseintrages 37 5 2 EXTERNES DESIGN DER APPLIKATION 5 2 2 4 1 Entscheidungsverwaltung Die Entscheidungsverwaltung
130. zeitpunktes username VARCHAR 45 BauArchitekt Name des Benutzers selbiger Username kann auch f r die Anmeldung des MediaWiki s benutzt werden password VARCHAR 45 password Wert des Benutzerspasswortes im Klartext accesstoken VARCHAR 45 f824b7166062f22e0ee791ad2ceb62a2fc174e45 SHA1 Wert welcher zur Session berpr fung jeweils an den Server gesendet wird Ver ndert sich bei jedem erfolgreichen Login drill_hierarchy INT Tabelle 21 Datenbanktabelle User 7 8 1 2 Tabelle Tree 5 Integer Wert der konfigurierbaren Hierarchie Stufe des Entscheidungsf hrungsgraphen Punkt H 2 4 2 Die Tabelle Tree beinhaltet den Namen des jeweiligen Projektes eines Wissensproduzenten S mtliche zugeh rigen Daten wie beispielsweise Wissenseintr ge und Baumstrukturen referenzieren jeweils auf das zugeh rige Projekt beziehungsweise diese Tabelle Feld Typ Beispielinhalt und Beschreibung Id INT 13 Prim rschl ssel der Entit t creation_time DATETIME 2014 05 28T11 52 19Z Datum und Zeit der Erstellung last_modification_time DATETIME 2014 06 05T14 59 14Z Datum und Zeit des letzten Aktualisierungszeitpunktes title VARCHAR 45 Einfamilienhaus Tabelle 22 Datenbanktabelle Tree Titel des Wissensprojektes 66 7 IMPLEMENTIERUNG DER ARCHITEKTUR 7 3 1 3 Tabelle TreeMapping Die Zwischentabelle TreeMapping dient zur Zuwe
Download Pdf Manuals
Related Search
Related Contents
Acer Aspire 5-481T-6693 Hyundai HX200L-2000 User's Manual 適合性検査申込書 - JET 一般財団法人 電気安全環境研究所 こちら MANUAL DE INSTRUCCIONES Système vidéo sans fil Eycasa pour portes & bâtiments Lenovo Tablet A2107A User's Manual How to work with Panels in LimeSurvey Copyright © All rights reserved.
Failed to retrieve file