The course deals with the software engineering aspects of Embedded Systems (ES). The study unit is further divided into the following three parts:
Software engineering principles and practices for ES
The course is focused on creating reliable software for embedded systems.
The student is able to:
Intelligent computing for ES
- Understand the difference between software engineering practices for embedded systems and distinguish them from software engineering for applications development
- Apply embedded programming principles for code optimization, testing, and integration.
- Analyze the quality of embedded software via appropriate metrics for single core as well as multicore software development and evaluate embedded software using formal techniques
The rise of the Internet of Things (IoT) shifts the future of machine learning from clouds toward the edge with small, embedded devices. There is a variety of reasons for this including communication cost, coverage, latency, privacy, security and safety. All such objectives are to make the things more intelligent. While machine learning usually requires heavy-duty power-hungry processors and a large dataset, embedded devices have limited computing power and small dataset. Making machine learning algorithms efficient to run on resource-constrained devices like microcontrollers for a year even more with a single coin battery is very demanding, especially for real-time applications with image and speech processing such as image recognition, segmentation, object localisation, multi-channel speech enhancement, and speech recognition. Therefore, there are four main challenges in bringing Machine Learning to the Edge:
This leads to inaccurate prediction.
- Diverse computing environments: The differences between computers and edge devices in both hardware and software make most advanced current ML models developed for computers cannot be directly applied to embedded devices.
- Limited resources: Most ML models, especially dense neural networks will consume substantial resources, including power, memory, and computation units.
- Significant latency: Because of the complexity of ML models and the computation limitations of embedded devices, the inference may take a long time and fail the real-time applications.
- Unseen data and new environments: Through training, ML systems learn to recognize patterns with certain inputs and conditions. When, during operation, embedded devices usually encounter unseen data in new environments with full of surprises.
After completing this course the student is able to:
Software security for ES
- understand the fundamentals of Internet of Things and Edge Computing
- understand and differentiate the diverse computing environment
- analyze and evaluate the resource requirements for deploying a machine learning model
- evaluate the inference time and accuracy to test feasibility of deployment
Upon completion of the embedded security part, the students will be able to achieve the following objectives:
- Explain security requirements in embedded systems.
- Explain the impact of emerging technologies on ES Security.
- Evaluate the ES security risks.
- Perform threat modelling activities to evaluate physical device security vulnerabilities in embedded systems.
- Perform threat modelling activities to evaluate communication security vulnerabilities in embedded systems
Assignment – weight 50%- Minimum required grade 5.0
Written test- weight 50%-Minimum required grade 5.0
For each of these tests, the student’s grade must be greater than or equal to 5 and the overall average grade should be 5.5.