With the advent of the fourth industrial revolution, large industries developing cyber‐physical systems strive to reach continuous deployment. They try to make their development processes fast and more responsive, minimizing the time between the identification of a customer need and the delivery of a solution. Given the growth in size and value related to software in cyber‐physical systems, the trend in the last decade has been the employment of agile software development (ASD) (Dingsøyr et al. 2012). However, for companies developing long‐lasting systems, the responsiveness in the short term needs to be balanced with the ability to maintain the system for several years and with the ability of being able to deliver new features in the long run. Such a goal relies on the system architecture qualities.
ASD has been employed effectively in the development of embedded systems, contributing to speeding up the delivery of value to the customers (Eklund and Bosch 2012). However, some obstacles have been found, limiting the application of ASD to such a domain (Eklund et al. 2014). In this chapter we focus on one such challenges, the degradation of the system architecture over time, which is called, in literature, Architectural Technical Debt (ATD).
To better introduce the problem we show Figure 4.1: ASD is mostly implemented on a team level, which is restricted to the design and test of a single module ...