Skip to content

Commit cde69fc

Browse files
authored
CONDEC-1028: Improve decision grouping, automatic text classification, and change impact analysis (#699)
* Fix that decision grouping did neglect the project of a knowledge element * Update dependencies in pom.xml * Make change impact coloring more subtle * Implement Naive Bayes classifier * Reduce size of training data for support vector machine to avoid out of memory exceptions * Add data center compatibility * Update version to 2.3.7
1 parent dfc9829 commit cde69fc

File tree

42 files changed

+538
-368
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+538
-368
lines changed

doc/features/dashboard.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The dashboard comprises five dashboard items that show the following metrics:
1111
5. **metrics on the decision levels and decision groups**, e.g. *Which decision groups are there in the project? How many decisions are documented per decision level and group?*
1212

1313
The metric plots are created using the [Apache ECharts library](https://echarts.apache.org).
14-
The four dashboard items are shown in the following sections.
14+
The five dashboard items are shown in the following sections.
1515

1616
## Rationale Coverage
1717
This dashboard item shows the **coverage of requirements, code, and other software artifacts (=knowledge elements)
@@ -30,6 +30,7 @@ dedicated metrics for intra-rationale completeness (see below).
3030
This dashboard item presents **metrics regarding the intra-rationale completeness**.
3131
In particular, metrics are shown to answer the following questions:
3232
- How many **issues (=decision problems) are solved by a decision**? How many issues are not solved by a decision?
33+
- How many **issues have at least one alternative** documented? How many issues have no alternatives documented?
3334
- For how many **decisions is the issue (=decision problem) documented**? For how many decisions is no issue documented?
3435
- How many **decisions have at least one pro-argument** documented? How many decisions have no pro-arguments documented?
3536
- How many **decisions have at least one con-argument** documented? How many decisions have no con-arguments documented?

doc/features/decision-grouping.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ For example, developers can access a UI decision documented in code from a [know
1212
For example, if a developer assigns a decision to the decision group *process*, the linked decision problem and alternatives will inherit this group.
1313

1414
We use the following definition for decision levels by [van der Ven and Bosch (2013)](https://doi.org/10.1007/978-3-642-39031-9_15):
15-
1. *High level decisions* affect the whole product, altough they are not necessarily always the decisions that are debated
15+
1. *High level decisions* affect the whole product, although they are not necessarily always the decisions that are debated
1616
or thought through the most.
1717
Often, people that are not involved in the realization of the project (e.g. management or enterprise architects) heavily affect these decisions.
1818
Typical examples of high-level decisions are the choice to adopt an architectural style,
@@ -27,7 +27,8 @@ or the usage of specific APIs.
2727
These decisions are relatively easy to change, and have relative low impact on the properties of the system.
2828

2929
## Assignment and Filtering
30-
Levels and custom groups can be assigned using the context menu on a specific knowledge element in a knowledge graph view.
30+
Developers can assign decision levels and custom groups using the context menu on a specific knowledge element in a knowledge graph view.
31+
The following figure shows how a decision and the related decision knowledge to apply a certain git workflow is classified as a *process* decision.
3132

3233
![Context menu available in all views on the knowledge graph](../screenshots/decision_grouping_context_menu.png)
3334

@@ -37,7 +38,7 @@ Levels and custom groups can be assigned using the context menu on a specific kn
3738

3839
*Dialog to assign a level and custom groups to a decision*
3940

40-
Developers (and other stakeholders) can **filter for decision levels and groups**, for example, if they only want to see decisions for the UI or process decisions.
41+
Developers (and other stakeholders) can **filter for decision levels and groups**, for example, if they only want to see decisions for the *UI* or *process* decisions.
4142

4243
![View elements of a specific decision group (here git)](../screenshots/decision_grouping_filter.png)
4344

@@ -59,9 +60,9 @@ The **quality check view and the tooltip explain why the DoD is fulfilled or vio
5960
*Decision problem that violates the DoD since no decision level and no custom decision group is assigned to it.
6061
Developers can see an explanation for the DoD violation in the quality check view and in the tooltip.*
6162

62-
![Decision problem that violates the DoD since only a decision level but no custom decision group is assigned to it.](../screenshots/decision_grouping_dod_violated_level_only.png)
63+
![Decision problem that violates the DoD since only a decision level but no custom decision group are assigned to it.](../screenshots/decision_grouping_dod_violated_level_only.png)
6364

64-
*Decision problem that violates the DoD since only a decision level but no custom decision group is assigned to it.*
65+
*Decision problem that violates the DoD since only a decision level but no custom decision group are assigned to it.*
6566

6667
## Decision Grouping Overview and Dashboard
6768
ConDec offers an **overview for the decision levels and decision groups** assigned in a project.

doc/features/quality-checking.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ e.g. if a pro-argument is linked to the decision.
1010
The criteria for intra-rationale completeness can be configured by the rationale manager.
1111
- the assignment to **[decision levels and decision groups](decision-grouping.md)**.
1212
- specific aspects (*is test file?*, *number of lines of code*) for code files
13-
- the **quality of the directly linked knowledge elements** in the knowlegde graph,
13+
- the **quality of the directly linked knowledge elements** in the knowledge graph,
1414
i.e. if a neighbor knowledge element of the checked element violates the DoD the checked element will also violate the DoD.
15-
DoD violations are propagated to neighbor elements in the knowlegde graph as a means of [nudging](nudging.md),
15+
DoD violations are propagated to neighbor elements in the knowledge graph as a means of [nudging](nudging.md),
1616
i.e., to continuously motivate the developers to improve the knowledge documentation.
1717

1818
ConDec displays the result of the quality/DoD checking in the following ways:
19-
- in a **quality check view** accessable from every knowledge element in the knowledge graph (see section below)
19+
- in a **quality check view** accessible from every knowledge element in the knowledge graph (see section below)
2020
- using **[red text color](nudging.md) in knowledge graph views** if the DoD is violated. An explanation is given using a tooltip.
2121
- in a **[just-in-time prompt](nudging.md)** that is shown during status changes (as automated quality checks integrated into the development workflow, e.g., when finishing a requirement)
2222
- in the **[rationale backlog](rationale-backlog.md)**, which is a dedicated view for knowledge elements that violate the DoD
Loading
Loading
64.2 KB
Loading
48.4 KB
Loading
Loading
Loading
Loading
Loading

pom.xml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<modelVersion>4.0.0</modelVersion>
77
<groupId>de.uhd.ifi.se.decision</groupId>
88
<artifactId>management.jira</artifactId>
9-
<version>2.3.6</version>
9+
<version>2.3.7</version>
1010
<organization>
1111
<name>Software Engineering Research Group, Heidelberg University</name>
1212
<url>https://github.com/cures-hub</url>
@@ -134,14 +134,14 @@
134134
<dependency>
135135
<groupId>com.atlassian.sal</groupId>
136136
<artifactId>sal-api</artifactId>
137-
<version>5.0.1</version>
137+
<version>5.0.2</version>
138138
<scope>provided</scope>
139139
</dependency>
140140
<!-- Servlets -->
141141
<dependency>
142142
<groupId>com.atlassian.templaterenderer</groupId>
143143
<artifactId>atlassian-template-renderer-api</artifactId>
144-
<version>5.0.3</version>
144+
<version>5.0.4</version>
145145
<scope>provided</scope>
146146
</dependency>
147147
<dependency>
@@ -153,7 +153,7 @@
153153
<dependency>
154154
<groupId>org.apache.httpcomponents</groupId>
155155
<artifactId>httpclient</artifactId>
156-
<version>4.5.13</version>
156+
<version>4.5.14</version>
157157
<scope>provided</scope>
158158
</dependency>
159159
<!-- Spring -->
@@ -185,18 +185,18 @@
185185
<dependency>
186186
<groupId>com.google.code.gson</groupId>
187187
<artifactId>gson</artifactId>
188-
<version>2.9.1</version>
188+
<version>2.10.1</version>
189189
</dependency>
190190
<dependency>
191191
<groupId>com.fasterxml.jackson.core</groupId>
192192
<artifactId>jackson-databind</artifactId>
193-
<version>2.13.3</version>
193+
<version>2.15.0</version>
194194
</dependency>
195195
<!-- Logger -->
196196
<dependency>
197197
<groupId>org.slf4j</groupId>
198198
<artifactId>slf4j-api</artifactId>
199-
<version>2.0.0</version>
199+
<version>2.0.6</version>
200200
<scope>provided</scope>
201201
</dependency>
202202
<!-- Active Objects to store model objects via object relational mapping -->
@@ -223,7 +223,7 @@
223223
<dependency>
224224
<groupId>org.mockito</groupId>
225225
<artifactId>mockito-core</artifactId>
226-
<version>4.7.0</version>
226+
<version>5.3.1</version>
227227
<scope>test</scope>
228228
</dependency>
229229
<dependency>
@@ -261,7 +261,7 @@
261261
<dependency>
262262
<groupId>com.github.haifengl</groupId>
263263
<artifactId>smile-core</artifactId>
264-
<version>2.6.0</version>
264+
<version>3.0.1</version>
265265
</dependency>
266266
<dependency>
267267
<groupId>com.github.haifengl</groupId>
@@ -271,20 +271,20 @@
271271
<dependency>
272272
<groupId>com.github.haifengl</groupId>
273273
<artifactId>smile-nlp</artifactId>
274-
<version>2.6.0</version>
274+
<version>3.0.1</version>
275275
</dependency>
276276
<!-- Git -->
277277
<dependency>
278278
<groupId>org.eclipse.jgit</groupId>
279279
<artifactId>org.eclipse.jgit</artifactId>
280-
<version>6.2.0.202206071550-r</version>
280+
<version>6.4.0.202211300538-r</version>
281281
</dependency>
282282
<!-- Summarization of code changes and extraction of decision knowledge
283283
from code comments -->
284284
<dependency>
285285
<groupId>com.github.javaparser</groupId>
286286
<artifactId>javaparser-core</artifactId>
287-
<version>3.24.4</version>
287+
<version>3.25.2</version>
288288
</dependency>
289289
<!-- Webhook -->
290290
<dependency>
@@ -303,7 +303,7 @@
303303
<dependency>
304304
<groupId>org.apache.jena</groupId>
305305
<artifactId>jena-arq</artifactId>
306-
<version>4.6.0</version>
306+
<version>4.8.0</version>
307307
<exclusions>
308308
<exclusion>
309309
<groupId>org.slf4j</groupId>
@@ -380,7 +380,7 @@
380380
<plugin>
381381
<groupId>org.apache.maven.plugins</groupId>
382382
<artifactId>maven-enforcer-plugin</artifactId>
383-
<version>3.1.0</version>
383+
<version>3.3.0</version>
384384
<executions>
385385
<execution>
386386
<id>enforce-java</id>
@@ -442,7 +442,7 @@
442442

443443
<properties>
444444
<jira.version>8.21.0</jira.version>
445-
<amps.version>8.3.0-128eead6d</amps.version>
445+
<amps.version>8.9.1</amps.version>
446446
<ao.version>4.0.0-m02</ao.version>
447447
<jacoco-version>0.8.8</jacoco-version>
448448
<atlassian.spring.scanner.version>3.0.2</atlassian.spring.scanner.version>

0 commit comments

Comments
 (0)