... | @@ -22,7 +22,11 @@ The functionality can then be divided in the 6 below steps: |
... | @@ -22,7 +22,11 @@ The functionality can then be divided in the 6 below steps: |
|
- 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
|
|
- 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
|
|
## LUT Structure
|
|
The main component of the Trade-off Manager is the Look-Up Table (LUT) where information regarding individual code refactorings is stored.
|
|
A direct consequence of SDK4ED's modular architecture is that none of the analysis toolboxes does take into consideration code qualities other than the one it optimizes. To take meaningful decisions, however, the user will need to evaluate all refactorings universally. Regardless of the source toolbox of a suggestion, the displayed information should include its impact on all aspects: energy, technical debt and security.
|
|
|
|
|
|
|
|
Production of the design space is non-trivial, and approximate methods have to be employed. Each analysis tooolbox deals with extremely dissimilar aspects of software (particularly taking energy into consideration). Moreover, it is hard to provide a fine-grained estimation of a suggestion's impact without actually applying it to the code and repeating the analysis, and this holds true even for individual toolboxes and their own suggestions and optimized qualities. Finally, the approach should be as project- and platform-agnostic as possible.
|
|
|
|
|
|
|
|
To mitigate this, a common knowledge base has been set up. Anyone with valid credentials can inspect and update this knowledge. The format chosen is that of a look-up table (LUT), and is displayed further below.
|
|
|
|
|
|
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.
|
|
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.
|
|
|
|
|
... | | ... | |