The main goal 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.
Click on image to see demo videos about our toolboxes:
Follow us on Twitter
Excited to share that our paper about #Vulnerability_Prediction using #DeepLearning that was presented @ICCSA2020 received a Best Paper Award! Kudos to the co-authors @kalouptsoglou, @tsoukaldim and @DionKeh for their hard work! This work is part of the #SDK4ED #H2020 Project. https://t.co/fqNzWX9f3J
Pilot use cases
UAV application by ADS. Energy efficiency will increase autonomy capacity with minimum computational resources.
Smartglasses application by HOLISUN. Increase real-time performance and reduce energy consumption.
Implantable medical device application by NEU. Exploration of diverse security solutions considering TD management
Have a first look
The Technical Debt Toolbox enables the user to monitor and prevent technical debt during software evolution. Through software refactoring recommendations, it provides solutions to issues accumulating technical debt. TD Toolbox provides a variety of maintainability metrics that measure code smells and bad design quality techniques at project, file and package level, giving the user the option to prioritize artefacts to be fixed. Through the TD Analysis, the user can have a better view of TD principal and TD interest evolution. New Code TD can be seen as a quality gate preventing the user from adding more code smells on the existing code. The toolbox statically analyses the source code and provides maintainability metrics for object-oriented and non-object-oriented languages. Developers can leverage the information derived from the toolbox to support code refactoring and optimisations. Project managers also benefit, since the information provided on the software’s technical debt can support decision making on the software future, e.g., whether to spend effort to refactor the code, for how long the software should be maintained or the need to declare bankruptcy of the software.
The Energy Toolbox enables the user to deeply inspect her source code’s energy-related qualities. Analyzing the whole repository at once, the toolbox cares to locate hotspots of high resource usage that indicate equally high power levels. Analysis of the hotspots is performed on both the loop and the function level. Insights from said analysis are used to suggest possible code refactorings for mitigating the spotted consumption. Analysis results and corresponding suggestions are saved and accessible, in order to minimize future response latency.
The Dependability Toolbox enables the users to monitor and optimize the dependability level of their source code. The toolbox statically analyses the source code and provides a high-level security score, i.e., the Security Index, which reflects the internal security level of the analysed software. The hierarchical structure of the produced results enables root-cause analysis, allowing the developers to spot the exact security issues that reside in the source code and need resolution. The toolbox also enables the identification of vulnerability hotspots, that is, individual source code files that are likely to contain important vulnerabilities. This information can be leveraged by developers and project managers for prioritizing their testing and fortification actions, by allocating limited resources to high-risk (i.e., potentially vulnerable) code locations.
The purpose of the Forecasting Toolbox is to provide predictive forecasts regarding the evolution of the three core quality attributes targeted by the SDK4ED platform, namely Technical Debt, Energy and Dependability. Towards building a solid basis for the Forecasting Toolbox realization, various dedicated time series and ML models were investigated and introduced as part of the business logic of the toolbox. Hence, this toolbox offers three main features implemented in the form of individual web services: i) TD Forecaster, which is responsible for predicting the evolution of the total remediation effort (measured in minutes) to fix all code issues of a software application, ii) Energy Forecaster, which is responsible for predicting the evolution of the total energy consumption (measured in Joules) of a software application, and iii) Dependability Forecaster, which is responsible for predicting the evolution of the Security Index of a software application.
The TradeOff Manager of the Decision Support tool aims to provide the user with comparable insights with respect to the suggestions given by each of the 3 analysis toolboxes of the platform (Energy, Technical Debt, Dependability). Since each toolbox focuses on different code qualities, an overall view of the interdependencies between individual suggestions is essential for optimal decision making. In the below demonstration, a total of 2 refactorings are retrieved from the toolboxes for a specific project, and the respective impacts to all code qualities are displayed both in tabular and graphical form.
Refactorings as Financial Investment panel hosts a decision-support tool (namely ADMIT—
Architectural Decision-making as a Financial Investment) for software optimization. Therefore, the
tool aims at supporting stakeholders to decide if the application of a quality optimization is
beneficial or not. The developed approach relies upon the cost-benefit modelling and the
prevention-appraisal-failure cost models.