Imagine if your software was automatically optimized for certain quality requirements, such as energy efficiency and dependability, while managing Technical Debt (TD), where choosing an easy solution leads to additional rework along the line. The European Commission-funded...
Imagine if your software was automatically optimized for certain quality requirements, such as energy efficiency and dependability, while managing Technical Debt (TD), where choosing an easy solution leads to additional rework along the line. The European Commission-funded project SDK4ED – Software Development Toolkit for Energy Optimization and Technical Debt Elimination – will provide a framework to do exactly that.
The overall objective of the SDK4ED project is to minimize cost, development time and complexity of low-energy software development processes, by providing a specific platform for automatic optimization and trade-off calculation between various quality requirements, such as maintainability, energy consumption, and dependability.
SDK4ED will estimate the cost and limitations associated with TD liabilities produced in the energy-aware software development lifecycle. It will also establish a set of forecasting methods and best practices to assess potential strategies for repaying TD, under the energy consumption and dependability constraints imposed. Considering the trade-off between software quality and runtime constraints on energy consumption and security, the SDK4ED platform aims at deriving Pareto fronts that will assist developers during system optimization.
Investment on improving these qualities at the software-level is gaining more interest by the industry, as hardware improvements are usually more challenging and costlier to implement. Source code modifications are typically applied to improve important run-time quality attributes, including performance, energy consumption, and dependability. However, these code modifications, when carelessly applied, usually affect the design-time quality of the application, leading to the creation of a financial overhead in the future maintenance activities, commonly termed as TD.
Hence, the continuous monitoring of these important run-time and design-time quality attributes during the development cycle of software applications for low energy computing systems, as well as the identification of existing trade-offs between these often conflicting qualities, is highly necessary for delivering successful and safe embedded software applications in critical everyday life domains such as healthcare devices.
In SDK4ED three ES developers in domains such as UAV, healthcare and automotive will be deployed in real operational environments to assess the impact of the project\'s innovations, and showcase its operations for general use.
Through its achievements, SDK4ED aims to increase technical debt awareness in the ES and low energy computing communities, thus reducing the maintenance and development costs of the associated software products. Three representative use cases from the healthcare, automotive, and airborne domains will be deployed in real operational environments to assess the impact of the project’s innovations and showcase its operations for general use.
In the first project period, all necessary actions were taken for developing the underpinning theoretical concepts and scientific pillars, on which the envisaged SDK4ED platform is built.
In particular, the project has delivered and revised in detail functional, quality and hardware requirements, as well as the overall structure of the envisaged platform (WP2). As part of the required theoretical technical work, the project defined, evaluated and selected the main indicators for Technical Debt, Energy Consumption, and Dependability, by both revising existing and inventing new ones (WP3). With respect to security indicators, we developed a set of innovative Security Assessment and Vulnerability Prediction Models for assessing the dependability of embedded software. On top of these, accurate forecasting models were created based on historical versioning data with the mission to predict how the three parameters, TD/Energy/Dependability will most likely evolve, thus assisting project management decision making. Moreover, we investigated the most appropriate design space exploration techniques for handling multiple conflicting criteria between various qualities. These are expected to be applied for the multi-objective optimization and trade-offs mechanism between conflicting parameters. Regarding the implementation phase of the SDK4ED toolkit (WP5), a common strategy has been defined and adopted based on Micro-service architectural pattern. Regarding system integration (WP6), a commonly agreed integration and verification strategy was defined and a set of collaborative tools, such as GitLab repository and continuous integration tools are up and running, facilitating teamwork among project partners. Initial design and implementation decisions for the SDK4ED Decision Support tool were also made.
Moreover, regarding the evaluation phase (WP7), the three pilot cases started being prepared and a list of Key Performance Indicators for the evaluation of the SDK4ED platform were defined.
Regarding the dissemination and communication activities of the project, these comprise 26 conference publications, 4 accepted journals, 6 presentations and invited talks, 4 exhibitions and one press release. Also a preliminary exploitation plan has been devised with the potential exploitable project results.
SDK4ED envisages a platform which comprises a clear step beyond state-of–art, in embedded systems (ES), by providing novel concepts and approaches for TD, dependability and energy efficiency management. Moreover, it is expected to be the first platform that will handle the interplay between the aforementioned quality attributes in ES.
Specific innovations that have been produced so far, based on the original publications of the project up to now:
- TD liabilities identifiers at the level of software architecture
- Methods for determining the TD Interest and Breaking Point with emphasis on Embedded Software
- Methodology and accompanying tools for the detection of energy hot spots and the recommendation of code transformations for improving energy consumption
- TD/Energy/Dependability forecasting models
- Models for reliable quantitative security assessment of software
- Vulnerability prediction models for identifying software components to contain exploitable vulnerabilities
- Methodology for trade-off analysis between conflicting design-time and run-time qualities
- Method for determining the optimum checkpoint interval of software programs that operate in the presence of dependability failures
In the remaining period, we expect to produce additional innovations with respect to the optimization and trade-offs of software qualities that will be implemented as part of the Decision Support Tool. Also, we expect to conclude with the developing, testing and integration of the SDK4ED web platform. Also, the SDK4ED toolkit will be evaluated against three real pilot cases and system updates are expected based on the received feedback. Upon the completion of the first stable version of SDK4ED, we expect to increase awareness of technical debt in the open source and embedded software communities. Also we expect to increase awareness of the impact that software re-factorings may have on energy efficiency. The SDK4ED toolkit is expected to reduce overall costs of development and maintenance processes in embedded software systems, but also increase software security, thus resulting in more secure applications for the end users.
More info: http://sdk4ed.eu/.