|
|
# SDK4ED Platform
|
|
|
|
|
|
## Summary/Overview
|
|
|
|
|
|
The vision of SDK4ED is to minimize the cost, the development time and the complexity of low-energy software development processes, by providing tools for automatic optimization of multiple quality requirements, such as technical debt, energy efficiency, dependability and performance. SDK4ED will develop methods and accompanying software tools capable of parsing software artifacts, (source code, design models, test cases, etc.) and analyzing these items from the perspective of technical debt liability, considering the targeted hardware platform and the provided quality requirements. The corresponding tools will provide reports with deficiencies, ranked by importance and urgency to be resolved, considering the past history of changes of these items and the probability of future maintenance. Beyond the identification of design flaws, energy monitors and tools for the identification of security vulnerabilities will feed the technical debt optimization process.
|
|
|
|
|
|
SDK4ED will estimate through innovative techniques, the cost and the limitations associated with technical debt liabilities related to the energy-aware software development lifecycle. Also, it will establish a set of forecasting methods and best practices that will be used by project managers for assessing the available decisions with respect to the choices of repaying technical debt, the selection of appropriate timing and items to be improved, under the constraints imposed on energy consumption and dependability. Considering the trade-off between software quality and run-time constraints on energy consumption and security, the SDK4ED platform aims at deriving Pareto fronts that will assist developers during the system optimization.
|
|
|
Within the course of the project, three representative use cases from the Airborne, the Healthcare and the Automotive domains will be deployed in real operational environment to assess the impact of the project’s innovations, and showcase the supported operations in a general context of use.
|
|
|
|
|
|
A high-level overview of the SDK4ED Platform is depicted in the figure below:
|
|
|
|
|
|
![sdk4ed-platform](uploads/1b4dc6e2e6ba7dc2297fc2ed622b326d/sdk4ed-platform.png)
|
|
|
|
|
|
As can be seen by the figure above, the SDK4ED Platform consists of five core modules (i.e., toolboxes), namely *Technical Debt Management*, *Energy Optimization*, *Dependability Optimization*, *Forecaster*, and *Decision Support*.
|
|
|
These toolboxes have been implemented based on the Microservice Architecture (MOA) Pattern and therefore they provide their functionalities in the form of individual web services. They have been implemented in the form of *Docker Images* and they are deployed as individual *Docker Containers*. A brief description of the toolboxes is provided below:
|
|
|
|
|
|
|
|
|
- **Technical Debt Management:** The Technical Debt (TD) management module is responsible for monitoring and optimizing the *Maintainability* of software products through the notion of *Technical Debt*. More specifically, it provides novel mechanisms (i.e., services) for TD Principal and TD Interest estimation, as well as for the extraction of refactoring opportunities.
|
|
|
|
|
|
- **Energy Optimization:** The Energy Optimization module is responsible for measuring and minimizing the *Energy Consumption* of a given software application. In particular, this module provides mechanisms (i.e., services) for (i) estimating the energy consumption of a software application, (ii) identifying energy-hungry parts of the application, and (iii) providing recommendations for potential energy optimizations.
|
|
|
|
|
|
- **Dependability Optimization:** The Dependability Optimization module is responsible for assessing and optimizing the *Dependability* of software products. In particular, this module provides mechanisms (i.e., services) for evaluating and optimizing the *Security* and *Reliability* of the analyzed software, which are two important facets of *Dependability*.
|
|
|
|
|
|
- **Forecaster:** The Forecaster module is responsible for predicting the future evolution of the three quality attributes of interest, namely Maintainability (in fact, Technical Debt), Dependability, and Energy Consumption. This is achieved through the provision of advanced time series and machine-learning models (see Section \ref{sec:feature_description:forecasting}). As depicted in Figure \ref{fig:sdk4ed}, this module depends highly on the outputs of the three aforementioned modules.
|
|
|
|
|
|
- **Decision Support:** The main purpose of the decision support module is to facilitate decision-making during the development and maintenance of embedded software applications. More specifically, the main responsibility of this module is to inform developers and project managers about the impact that refactorings for improving a specific quality attribute (e.g., *Maintainability*) will have on the other two attributes of interest (i.e., *Dependability* and *Energy Consumption*). Hence, this module receives input from all the other modules of the SDK4ED Platform, and performs a trade-off analysis in order to determine these impacts and provide useful recommendations.
|
|
|
|
|
|
The aforementioned modules (i.e., toolboxes) are available as standalone Microservices that can be individually invoked. However, a central front-end has been developed, i.e., the SDK4ED Dashboard, which provides an easy-to-use interface for using all the functionalities that are provided by the broader SDK4ED Platform through graphical elements, instead of requests.
|
|
|
|
|
|
## Table of Contents
|
|
|
|
|
|
- [SDK4ED Dahboard]()
|
|
|
|
|
|
- [Description]()
|
|
|
- [Installation]()
|
|
|
- [Walkthrough]()
|
|
|
|
|
|
- [SDK4ED Toolboxes]()
|
|
|
|
|
|
- [Technical Debt Toolbox]()
|
|
|
- [Energy Optimization Toolbox]()
|
|
|
- [Dependability Toolbox]()
|
|
|
- [Forecaster Toolbox]()
|
|
|
- [Decision Support Toolbox]()
|
|
|
|
|
|
|