... | ... | @@ -7,10 +7,23 @@ The toolbox deals with two separate aspects of decision-making: |
|
|
Each of the above aspects is handled by a separate module of the toolbox: the first by Trade-off Manager, the second by Refactorings as Financial Investment. The following contents of this page are thus divided in two main sections.
|
|
|
|
|
|
# Trade-off Manager
|
|
|
The main goal of the Trade-off Manager is to support technical and/or business decision making, essentially by enabling the development team to rank, sort and eventually choose from alternative suggestions to improve TD, energy and dependability of the target software systems.
|
|
|
|
|
|
![la](https://imgur.com/k88CXsq)
|
|
|
## High-level Overview
|
|
|
Below you may find a high-level schematic of Trade-off Manager's placement in the overall SDK4ED ecosystem.
|
|
|
|
|
|
![image](uploads/24136058b69d6fd4896a3fa8e8789986/image.png)
|
|
|
|
|
|
The functionality can then be divided in the 6 below steps:
|
|
|
- Receive the Decision Maker's preferences with respect to each one of the 3 code qualities (Energy, Technical Debt and Security)
|
|
|
- For the currently analyzed project, accumulate all the code improvement suggestions produced by each of the analysis toolboxes
|
|
|
- Augment the accumulated suggestions with information about their overall impacts to all 3 of the code qualities, and produce the respective design space
|
|
|
- Visualize the output of the previous step in an interactive, easy-to-understand fashion
|
|
|
- Combine the decision maker's preferences with the trade-offs between each of the suggestions, and feed a decision-making algorithm for ranking each alternative
|
|
|
|
|
|
## LUT Structure
|
|
|
The main component of the Trade-off Manager is the Look-Up Table (LUT) where information regarding individual code refactorings is stored.
|
|
|
|
|
|
The LUT is implemented via a dockerized [PostgreSQL][PSQL] database, consisting of a single table, which is for convenience visualized below. As per standard database etiquette, the top row denotes the names of the columns of which the LUT is comprised. Each individual cell on the second row contains essential information that is needed in order to properly interact with the database.
|
|
|
|
|
|
|name |im1 |im2 |im3 |
|
... | ... | @@ -27,4 +40,6 @@ Below a mapping of the impact values to their actual lexicographical meanings is |
|
|
|1 |Improve |
|
|
|
|2 |Greatly Improve |
|
|
|
|
|
|
# Refactorings as Financial Investment
|
|
|
|
|
|
[PSQL]: <https://www.postgresql.org/> |
|
|
\ No newline at end of file |