Principles for Re-architecting Software for Heterogeneous Platforms
Paper i proceeding, 2020

The demands on software continues to increase through the constant addition of functionalities and high expectations from users. In particular, performance has been the focus in many projects with the goal of fulfilling complex and hard requirements across a variety of domains. One way to achieve satisfactory levels of performance is through heterogeneous computing, i.e., systems that contain more than one type of processing unit, such as CPUs, GPUs, and FPGAs. However, applications are typically designed to be executed on CPUs, and re-architecting software for execution on such heterogeneous hardware architectures entails several challenges that must be addressed. In this paper, we propose a framework that supports engineers in the process of making architectural decisions to re-architect software for execution on heterogeneous platforms. We present several relevant aspects that should be addressed in the process, along with suggestions on how to create design solutions using different existing approaches. The framework was developed based on multiple interactions with three industrial partners and evaluated through a computer vision application in the automotive domain.

software design

program processors

software engineering


Hugo Sica de Andrade

Chalmers, Data- och informationsteknik, Software Engineering

Christian Berger

Chalmers, Data- och informationsteknik, Software Engineering

Ivica Crnkovic

Chalmers, Data- och informationsteknik, Software Engineering

Jan Bosch

Chalmers, Data- och informationsteknik, Software Engineering

Proceedings - Asia-Pacific Software Engineering Conference, APSEC

15301362 (ISSN)

Vol. 2020-December 405-414 9359288

27TH Asia-Pacific Software Engineering Conference
Singapore, Singapore,

HoliDev - Holistic DevOps Framework

VINNOVA (2017-05218), 2018-01-01 -- 2019-12-31.

HELPING: Modellering av heterogena plattformar av inbyggda system

Vetenskapsrådet (VR), 2014-10-01 -- 2016-12-31.


Informations- och kommunikationsteknik



Datavetenskap (datalogi)



Mer information

Senast uppdaterat