Colloquium Computer Science - Dr. D. Feitosa
|When:||Mo 28-09-2020 09:20 - 10:05|
|Where:||online (via BlueJeans)|
Title: Managing trade-offs in embedded software design
Embedded systems are one of the most important types of software-intensive systems. It is difficult to look around and not be able to point out at least a couple of examples, such as wearables or smart devices. These systems are not only pervasive but also the foundation of innovation domains such as the Internet of Things (IoT). However, to reach the next level in solutions based on embedded systems (e.g., smart cities/homes), we must address several challenges. Among them are recurrent software design problems that commonly encompass the management of trade-offs between desired and required qualities. For example, a more maintainable design or that fosters the reuse of components is naturally attractive. Still, it cannot compromise hard constraints such as performance and security.
In this talk, I summarize some of the challenges in designing and maintaining the software of solutions based on embedded systems, and efforts to address them. I start by contextualizing lessons learned from embedded system development that impacted how its software is designed. Next, I delve into the interplay between the run-time constraints imposed by embedded hardware and design-time quality attributes. In this regard, I discuss the use of design patterns as a tool to manage the trade-offs between such quality attributes. I also elaborate on the use of frameworks to design high-quality IoT applications with the potential to accommodate a variety of vendors. Finally, I speculate how a recent analogy for managing software projects, namely technical debt, can be relevant for embedded systems.