• Keine Ergebnisse gefunden

Metriken zur Beurteilung der Vollst¨ andigkeit des Entscheidungswissens berechnen

5.3 Entwurfsentscheidungen zu Systemfunktionen

5.3.10 Metriken zur Beurteilung der Vollst¨ andigkeit des Entscheidungswissens berechnen

Dieser Abschnitt beschreibt den Entwurf und die dabei getroffenen Entscheidungen zu System-funktion 10 aus Kapitel 4.2.2.10 auf Seite 27. Abbildung 5.22 illustriert das wichtigste Entschei-dungsproblem zu dieser Systemfunktion. Tabelle 5.18 listet weitere EntscheiEntschei-dungsprobleme auf.

Abbildung 5.23 zeigt alle n¨otigen Klassen f¨ur diese Systemfunktion.

JIRA bietet verschiedene Berichte (hier: Reports) an, um Auswertungen wie bspw. Burndown Charts von ausgew¨ahlten Projekten zu erstellen. Es ist m¨oglich, neue Reports in diese Aus-wertungen einzuf¨ugen. Die NutzerIn soll eine M¨oglichkeit bekommen, verschiedene Kennzahlen zum Entscheidungswissen im ausgew¨ahlten Projekt einzusehen. Es wurde entschieden, diese Kennzahlen mit Boxplots und Kuchendiagrammen zu visualisieren. In diesem Zuge stellte sich das Entscheidungsproblem, ob diese Grafiken auf Serverseite oder Nutzerseite erzeugt werden sollen. Abbildung 5.22 beschreibt dieses Entscheidungsproblem.

Die erste M¨oglichkeit erzeugt Grafiken auf Serverseite. Die Grafiken werden in Bin¨ardateien konvertiert und mit einem Velocity Template an die Clientseite ¨ubertragen. Diese Aufgabe ist technisch anspruchsvoll und erh¨oht die Netzwerklast, da viele Bilder an die Nutzerseite

¨ubertragen werden.

Eine Alternative ist der Aufbau von Grafiken auf Nutzerseite mit JavaScript. Daf¨ur werden lediglich die zugrunde liegenden Kennzahlen an die Nutzerseite ¨ubertragen. Diese M¨oglichkeit nutzt JavaScript Bibliotheken f¨ur ansehnliche Grafiken die Nutzerinteraktionen erlauben. Aus diesem Grund wurde entschieden die Grafiken auf Nutzerseite mit JavaScript zu erzeugen.

Aufgrund der Open-Source Lizenz und der guten Dokumentation, wurde entschieden die Java Script Bibliothek ECharts7einzusetzen.

  Issue ¡

Wo sollen die Grafiken mit Kennzahlen erzeugt werden?

  Alternative ¡ Serverseitig

Einfache Anzeige auf Nutzerseite

Bild

¨

ubertragung durch Templates

  Entscheidung ¡ Clientseitig

Sch¨one Darstellung

Grafik-interatkion

Neue JS Bibliothek

Abbildung 5.22: Entscheidungsbaum zur Entscheidung von Links zwischen verschiedenen Ele-menten des Entscheidungswissens.

7ECharts:https://ecomfe.github.io/echarts-doc/public/en/index.htmlZuletzt aufgerufen am 17.12.2018

5 Entwurf und Implementierung

Folgende Metriken sollen berechnet und dargestellt werden:

• Kommentare pro JIRA-Issue

Beschreibt das Diskussionsverhalten der NutzerInnen

• Commits pro Issue

Beschreibt die Anzahl der n¨otigen Anderungen f¨¨ ur ein JIRA-Issue

• Link Distanz

Beschreibt die Komplexit¨at einer Ent-scheidung. Wird f¨ur die Entscheidungs-typen Issue, Alternative, Entscheidung berechnet

• Verteilung der Wissenstypen

Beschreibt die Quantit¨at der jeweiligen Wissenstypen.

• Vollst¨andigkeit der Entscheidungen Beschreibt f¨ur je Issue, Alternative, Ent-scheidung, welche Entscheidungselemen-te verlinkt sind

• Anzahl S¨atze mit Entscheidungselemen-ten

Beschreibt die Nutzung von Kommenta-ren zu Entscheidungsdokumentation.

Die Metrik f¨ur die Anzahl der Commits pro Issue stellte eine besondere Herausforderung dar.

Die Voraussetzung zum Einsatz dieser Metrik ist das JIRA-Plug-In

”Git Integration for JI-RA“8. Dieses muss installiert und eingerichtet (Das gew¨unschte JIRA-Projekt muss mit einem GIT Server verbunden) sein. Dieses Plug-In bietet eine REST-Schnittstelle, um Commits im JSON-Format zu gew¨unschten JIRA-Issues anzufragen. Jedoch sind REST-Abfragen von Ser-verseite standardm¨aßig nicht authentifiziert. Eine M¨oglichkeit dieses Problem zu l¨osen ist die explizite Aufforderung an die NutzerIn ihren Nutzernamen und Passwort einzugeben. Eine wei-tere M¨oglichkeit ist die Verwendung der OAuth-Methode9. Dieses Verfahren erm¨oglicht es den JIRA-Server mit anderen Anwendungen zu verbinden und ¨uber ein Public und Private Key Paar eine sichere Verbindung herzustellen. Da Oauth nur einmalig eingerichtet werden muss und einen h¨oheren Sicherheitsstandard sowie Komfort bietet als die Eingabe der Nutzeran-meldeinformationen, wurde entschieden OAuth zu verwenden. Um OAuth auch f¨ur zuk¨unftige Nutzungsf¨alle zug¨anglich zu machen, wurden entsprechende Methoden entwickelt die beliebige REST-Schnittstellen ansprechen k¨onnen. Die entsprechenden Sicherheitsmechanismen muss die NutzerIn einmalig in Ansicht WS1.1 All Projects Admin View einrichten.

Zudem wurde entschieden der NutzerIn die M¨oglichkeit zu bieten, die zugrundeliegenden Kenn-zahlen einzusehen. Die NutzerIn kann die Zahlen anschließend bspw. in Excel kopieren oder LaTeX-Tabellen erzeugen. Zur Anzeige muss die NutzerIn die gew¨unschte Grafik selektieren und erh¨alt anschließend die Kennzahlen in einem Pop-Up.

F¨ur diese Anzeige wurde entschieden, den jeweiligen JIRA-Issue-Schl¨ussel zu jeder Kennzahl zu pr¨asentieren. Dies erm¨oglicht es der NutzerIn einzusehen, welche Entscheidungselemente weitere Aufmerksamkeit ben¨otigen.

8Git Integration for JIRA:https://bigbrassband.com/api-doc.htmlZuletzt aufgerufen am 17.12.2018

9JIRA OAuth:https://developer.atlassian.com/server/jira/platform/oauth/ Zuletzt aufgerufen am 17.12.2018

58

5.3 Entwurfsentscheidungen zu Systemfunktionen

Tabelle 5.18: Entscheidungsprobleme zu Systemfunktion 10

Entscheidungsproblem Entscheidung

In welcher Ansicht sollen Metriken gezeigt werden?

Ansicht WS1.5: Decision Knowledge Report View

Wie sollen Metriken pr¨asentiert werden? Boxplots und Kuchendiagramme bieten verst¨andliche und ansehnliche Darstellung.

Welche Bibliothek soll zur Grafikerzeugung benutzt werden?

Echarts.js bietet geeignete Funktionalit¨at und ist frei zug¨anglich.

Wie k¨onnen die zugrunde liegenden Daten-reihen eingebunden werden?

JIRA-Issue Schl¨ussel mit entsprechendem Wert.

Wie k¨onnen die zugrunde liegenden Daten-reihen angezeigt werden?

Datenreihe bei Selektion der Grafik in Popup anzeigen.

Welche Technologie soll zur Authentifizie-rung genutzt werden?

OAuth bietet besten Sicherheitsstandard nach einmaliger Registrierung durch Appli-cation Link.

ConDecLinkManager activeObjects: ActiveObjects

+insertLink(link: Link):boolean

+getAllLinksForElement(element: DecisionKnowledgeElement): List DecisionKnowledgeElement¡

+deleteLinksForElement(link: Link):boolean

ActiveObjectsManager activeObjects: ActiveObjects

+getAllElementsForIssue(issueId: long): List Sentence¡

–getAllElementsByType(type: KnowledgeType): List Sentence¡

DecisionKnowledgeReport projectId: Long

+DecisionKnowledgeReport(projectManager: ProjectManager) –getLinksToIssueByType():Map String,Integer¡

–getNumberOfRelevantSentences():Map String,Integer¡

–getNumberOfElementyPerType(type: KnowledgeType):Map String,Integer¡

–getNumberOfCommitsPerIssue():Map String,Integer¡

–getLinkDistanceByType(type: KnowledgeType):Map String,Integer¡

–getLinksFromTypeToType(typeFrom: KnowledgeType, typeTo: KnowledgeType):Map String,Integer¡

OAuthManager invalidCredentials: Boolean

+OAuthManager()

+retrieveRequestToken(consumerKey: String, privateKey: String): String

+retrieveAccessToken(tmpToken: String, secret: String, consumerKey: String, privateKey: String): String +startRequest(urlToCall: String): String

PropertiesClient CONSUMER KEY: String PRIVATE KEY: String REQUEST TOKEN: String ACCESS TOKEN: String SECRET: String JIRA HOME: String +toMap():Map String,String¡

+getProperties():Properties OAuthClient

result: JSONObject

+OAuthClient(propertiesClient: PropertiesClient, jiraOAuthClient JIRAOAuthClient) +getProperties():Properties +execute(command: Command, paramters: List String¡)

–parseResponse(response: HTTPResponse)

JIRAOAuthClient jiraBaseUrl: String

+JIRAOAuthClient(propertiesClient: PropertiesClient)

+getAndAuthorizeTemporaryToken(consumerKey: String, privateKey: String): String + getAccessToken(tmpToken: String, secret: String, consumerKey: String, privateKey: String)

Abbildung 5.23: Klassendiagramm zu allen relevanten Klassen f¨ur Systemfunktion 10

5 Entwurf und Implementierung