... | ... | @@ -105,7 +105,15 @@ Since the *rodinia-project* is written in C/C++ the first entry is provided in t |
|
|
|
|
|
In addition to this, some toolbox-specific parameters should be also provided, in order for the project to be able to be analysed with specific toolboxes of the SDK4ED Platform. These parameters are defined in the *“Extra Info by Toolbox”* text field of the pop-up window (see Figure above) in JSON format. More specifically, the user needs to select from the dropdown list the specific SDK4ED Toolboxes for which they would like to provide specific parameters, and then they should provide these parameters in the *“Extra Info by Toolbox”* text field. In the table below, we present the toolbox-specific parameters that need to be defined for analysing the *rodinia-project*, along with a brief description of these parameters. **A more detailed description of these parameters can be found in the deliverable *“D8.2 – Training material and User Manual”* [1] .**
|
|
|
|
|
|
table1
|
|
|
| **Service Name** | **Parameters (in JSON)** | **Brief Description** |
|
|
|
| ---------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
|
| Technical Debt | {"language": "C", <br/>"versionsNum": 18, <br/>"typeAnalysis": 1,<br/>"shas": <br/>"83ea7df7f124c8456be4a11da91ae0372d030ec6,<br/>5a343c3917bbd1caacfb3d9a27e6a741c197b551,<br/>4ced873e3e48ea10df790eb3057a048b2e7341a9,<br/>752e07f10dbd264781cb417c4402bd8b4a28b1c9,<br/>47222d0039df30325e1f2bfacd7c65e79da1dfff,<br/>3bd6d8896e5b632df4278c0ddebccd0591c085eb,<br/>307d6dc41e047edec27e71ae5132807908072ee6,<br/>bd319b7624484a1889f67684df7dfe990e4c67fa,<br/>41b91c721531fb2587ab50da81bc23ab8ea6f3b3,<br/>1b74fe9e1ef1371e888bb7781572d445f0ebe13a,<br/>6944f8ddb7129d055ed63fd58c781400b1f9d388,<br/>ef8ad60328bcabee5200b375f44e92a19fe18edd,<br/>00ee9cdd0224065b73f1b91bf434d57fcd4a57c3,<br/>7e69b2a7c9af042416f6e37f00d426d3c943003c,<br/>d622e5b9c2b69d394685237ea871a6c1705d08bd,<br/>4f5caa699e13179c9a533612e948a61bc995d8aa,<br/>53dad9306bdfee2dffc5cbcd6a6f8d46eb768a0c,<br/>a0ae9a795307664fa9f9dc0930557709d6af1de9",<br/>"moveClassRefactoring": false,<br/>"extractMethodRefactoring": false<br/>}|**language**: The programming language in which the selected software project is written (valid values: C and Java). For C++ projects use C.<br/>**versionsNum**: The number of versions that should be analysed by the toolbox.<br/>**typeAnalysis**: The type of analysis that should be applied. It takes two values:<br/> -denotes that the project is new and a complete analysis should be executed<br/> -denotes that the project has been already analysed in the past with the toolbox, and only a new version should be analysed<br/>**shas**: The shas of the commits that are version. Each sha should be separated with comma and NOT space.<br/>**moveClassRefactoring**: It takes Boolean values. True to run the analyses of move class refactorings and false to not run it.<br/>**extractMethodRefactoring**: It takes Boolean values. True to run the analyses of extract long method refactorings and false to not run it.|
|
|
|
|Dependability| {<br/>"optimal_checkpoint": {<br/>"g":"0.000005",<br/>"B0e":"500.0",<br/>"B0c":"100000.0", <br/>"b0c":"100.0", <br/>"b1c":"10.0", <br/>"b0e":"100.0",<br/>"b1e":"10.0", <br/>"N":"10000.0", <br/>"B1e":"0.0", <br/>"B1c":"0.0", <br/>"Y":"1.0"<br/>} <br/>}|**g**: Failure probability of a single instruction<br/>**B0e**: Energy needed to create the checkpoint<br/>**B0c**: Execution time needed to create the checkpoint<br/>**b1e**: Energy needed to create checkpoint based on number of memory used<br/>**b1c**: Execution time needed to create checkpoint based on number of memory used<br/>**b0e**: Energy needed to restore the program to the last checkpoint<br/>**b0c**: Execution Time needed to restore the program to the last checkpoint<br/>**b1e**: Energy needed to restore instructions executed between checkpoints<br/>**b1c**: Execution Time needed to restore instructions executed between checkpoints<br/>**N**: number of loop repetitions to test (used for limiting the plot)<br/>**Y**: number of instructions from the beginning of the program|
|
|
|
|Energy| No parameters required| No parameters required|
|
|
|
|Decision Support| No parameters required| No parameters required|
|
|
|
|Forecaster| No parameters required| No parameters required|
|
|
|
|
|
|
|
|
|
|
|
|
>**Attention:** It should be noted that the SDK4ED Platform allows the user to select which specific features (i.e., services) of the SDK4ED Platform should be executed for analysing their software project. Hence, the user does not need to provide parameters for those toolboxes that they do not wish to use for
|
|
|
>the purposes of their analysis.
|
... | ... | @@ -141,7 +149,24 @@ This will redirect the user to the TD New Code panel, where they can inspect the |
|
|
|
|
|
Similarly, the user can navigate to other pages in order to inspect the produced results. In the table below we summarize what information is presented in each panel of the SDK4ED Dashboard after the completion of the analysis. This information can be used by the reader as a reference point in order to pinpoint specific information that he/she would like to retrieve. **A detailed description of the information that is provided in each panel is provided in deliverable *“D8.2 – Training material and User Manual”* [1].**
|
|
|
|
|
|
table 2
|
|
|
|**Toolbox Name**| **Panel Name**| **Information**|
|
|
|
|----------------:|--------------:|---------------:|
|
|
|
|Technical Debt|TD Analysis|This panel provides the results of the technical debt history analysis. More specifically, it presents:<br/>- TD Principal indicators on project and artifact level<br/>- TD Interest indicators on project and artifact level<br/>- The evolution of TD principal, interest, breaking point and interest probability.|
|
|
|
| |TD New Code|This panel provides<br/>- The evolution of the project’s TD density<br/>- The newly inserted TD Issues<br/>- The open Jira Issues|
|
|
|
|Dependability|Security|This panel provides the results of the security analysis of the selected project (i.e., the results of the *Security Assessment* and *Vulnerability Prediction* services). More specifically, it presents:<br/>- The Security Level (i.e., *Security Index*) of the analysed software<br/>- The detailed results of the static analysis (i.e., list of potential security-related bugs)<br/>- The Security Hotspots of the analysed software, i.e., source code files that are likely to contain vulnerabilities|
|
|
|
| |Optimal Checkpoint|This Panel Provides the results of the dependability analysis of the selected project. It is presented in two parts presenting:<br/>- How the Time Execution changes concerning the number of loop repetitions<br/>- How the Energy Consumption changes concerning the number of loop repetitions|
|
|
|
|Energy|Energy|• Energy Consumption Estimation sub-panel: It is part of the Consumption Analysis sub-component. It provides fast results making Energy Consumption and Execution Time predictions about running an application on different platforms based on static analysis. <br/>• Energy indicators monitoring and hotspots identification sub-panel: Energy Consumption indicators (CPU cycles, Data races, Memory accesses, Ratio of branch misses, Cache miss rate, D cache misses) are presented by the Toolbox, in order to characterize the application in terms of Energy Consumption and to assist developers on identifying the individual characteristics of the application that consume more Energy. The Energy Hotspots are also identified: the blocks of code that may consume more energy. <br/>• History Analysis: Presents the static analysis Energy and Time estimations for all the project commits that have been analysed using the Toolbox in the past, retrieving the information from the embedded database.<br/>• Android Analysis: The Energy Toolbox additional mechanism for supporting Android applications was described in a detailed manner in D6.4. This tool reports Android specific Energy indicators such as Memory Usage (bytes), CPU Load (percentage), CPU Frequency (Hertz), Context Switches (count), Test case duration (seconds), System calls (count), Total Energy (Milijoules).<br/>• Optimization Suggestions sub-panel: This panel proposes refactoring opportunities for each energy hotspot.<br/>• Acceleration Specific indicators: Presents the indicators that influence the accelerator decision foreach hotspot.|
|
|
|
|Refactorings|Code Refactorings|This panel provides a ranking of the refactorings that can be performed based on the Change proneness and the impact of the identified TD item|
|
|
|
| |Design Refactorings|The panels provided the suggested refactorings for 2 types of refactorings:<br/>• Move Class Refactorings<br/>• Extract Long Method|
|
|
|
| |Architecture Refactoring|This panel presents the results of the architectural smell detection of the selected project. The following information is shown:<br/>• An interactive plot with the number of smells (divided by type) detected in the versions analaysed.<br/>• The list of architecture smells affecting the system. For each smell one can inspect the current version, or previous versions of the same smell detected in the previous versions of the project.|
|
|
|
|Decision Support|Trade-off Manager|On this panel, the user can inspect and compare the several refactoring suggestions proposed by each of the analysis toolboxes. Then, based on her stated preferences (in pairwise comparison form) the user can retrieve a tailored ranking of the available options.<br/>Note that a guaranteed-to-be-consistent set of preferences is “Absolutely more important”, “Quite more important” and “Quite more important”.<br/>Lastly, via an indirect invocation of the Forecaster Toolbox, the user can use the bottom panel to decide with a future time horizon in mind (where the value of each refactoring is recomputed based on the expected evolution of each quality).|
|
|
|
| |Refactorings as financial investment|This panel provides information about the expected financial impact that the proposed refactorings may have, if the user decides to apply them. The estimations are derived through a cost-benefit analysis that is performed by the toolbox based on user feedback.|
|
|
|
|Forecasting|TD Forecast|This panel provides projections of the future evolution of the *TD Principal* of the analysed software.|
|
|
|
| |Energy Forecast|This panel provides projections of the future evolution of the *Energy Consumption* of the analysed software.|
|
|
|
| |Security Forecast|This panel provides projections of the future evolution of the *Security Index* of the analysed software.|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## *Conclusions*
|
|
|
|
... | ... | |