Modern software systems are heterogeneous and feature different non-functional requirements. For example, smartphones have limited battery life and require software optimized to reduce energy consumption. Embedded systems often come with performance-critical requirements specifying precise time windows in which a task must be executed. Nevertheless, most issues reported during software testing are related to software crashes or incorrect system responses, while system performance degradations are often neglected. The problem is even more relevant in Continuous Integration and Deployment (CI/CD), where software is built on a dedicated infrastructure every time a change is pushed. Automated performance testing in CI/CD is still an ongoing effort. RECHARGE is a novel automated framework for automating performance testing in CI/CD pipelines leveraging static analysis and search-based algorithms.
Decentralized finance (DeFi) is changing finance, having prominence from the summer of 2020 with yield farming and the rise of tokens promising attractive yields to crypto traders. DeFi is based on blockchain, a decentralized, distributed digital ledger, where transactions are used to transfer cryptocurrency from one address to another and deploy and interact with blockchain smart contracts (BSC). Once passed the consensus check and written to the blockchain, a BSC and its transactions are immutable, despite programming defects, security vulnerabilities, or faulty transactions. Incorrect computations are frozen forever in the blockchain. Therefore, achieving accurate and comprehensive testing and verification of BSC failures and security vulnerabilities requires specific approaches that consider the persistent nature of code in this novel programming model. Smartitude aims to provide a comprehensive set of software engineering methods and tools to improve the BSC quality assurance by leveraging automated test case generation and formal methods.
RADON aims at creating a DevOps framework to create and manage microservices-based applications that can optimally exploit serverless computing technologies. These applications will include fine-grained and independently deployable microservices that can efficiently exploit FaaS and container technologies. The RADON framework will consist of an integrated methodology and an open source toolchain, to define, evolve, and operate event-centric applications that consume serverless functions, allowing a high-degree of reuse and automation of functions, services and associated data pipelines. The end goal is to broaden the adoption of serverless computing technologies within the European software industry. The methodology will strive to tackle complexity, harmonize the abstraction and actuation of action-trigger rules, avoid FaaS lock-in, and optimize decomposition and reuse through model-based FaaS-enabled development and orchestration.
Software ecosystems are the most promising avenue for organising the software needs of the digital era. Jointly funded by F.R.S.-FNRS and FWO-Vlaanderen, the four-year Excellence of Science Project SECO-ASSIST aims to realise a scientific breakthrough to nurture the ecosystems of the future, by providing novel software recommendation techniques that address the resilience, evolvability, heterogeneity, and social interaction. To achieve this the project partners will combine their expertise in social networks (UMONS), software testing (UAntwerpen), software reuse (VUB) and database evolution (UNamur).
This project’s goal is to research and deploy novel pattern mining algorithms in an industrial prototype of an intelligent modernisation assistant for legacy software systems. The assistant pro-actively recommends software engineers source code modernisation actions by comparing their current development efforts with insights gained by treating source code repositories as data. The assistant draws its intelligence from continuously mining for previously unknown patterns in the current state and structure of the system’s source code (programming idioms, coding conventions, library usage protocols) and in changes made to this code (systematic edits, repetitive changes). The proposed modernisation actions appear increasingly informed as the recommendation assistant uncovers and refines more patterns in the code, version and change repositories it mines. The success of the modernisation assistant hinges on the quality of the pattern mining algorithms it incorporates and their ability to improve their results by learning from their interaction with the software engineers.
Defuse automatically collects and classifies failure data, enables the correction of those classifications, and builds machine learning models to detect defects based on those data. We instantiated the tool in the scope of Infrastructure-as-Code, the DevOps practice enabling management and provisioning of infrastructure through the definition of machine-readable files. It is released under the Apache 2.0 license.
RepoMiner is a language-agnostic tool developed to support software engineering researchers in creating datasets to support any study on defect prediction.RepoMiner automatically collects failure data from software components, labels them as failure-prone or neutral, and calculates metrics to be used as ground truth for defect prediction models. It is released under the Apache 2.0 license.
AnsibleMetrics is a Python-based static source code measurement tool to characterize Infrastructure-as-Code. It analyzes Ansible projects, but it could be easily extended to support additional formats. AnsibleMetrics represents a step forward towards software quality support for DevOps engineers developing and maintaining infrastructure code. It is released under the Apache 2.0 license.
SoCRATES is an IntelliJ IDEA plugin to detect test smells in Scala/SBT projects. It automatically detects and reports on six test smells including four variants of General Fixture. It is released under the MIT license.
aDoctor is an IntellJ IDEA plugin to detect and refactor five Android-specific code smells that impact the energy consumption of these applications. It is released under the MIT license.
Plugin - Source Code - Video
GraphHopper offers memory efficient algorithms in Java for routing on graphs. E.g. Dijkstra and A* but also optimized road routing algorithms like Contraction Hierarchies. It stands under the Apache License and is build on a large test suite.