Software Design for Embedded Systems
Data is displayed for academic year: 2023./2024.
Lecturers
Laboratory exercises
Seminar
Course Description
Software modelling. Software design patterns and architectures. Requirement specifications for software development. Software engineering processes. Versioning tools. Real-time systems. The role and structure of the operating system. Introduction to real-time operating systems. Organization and structure of input-output devices. Operating system kernel and multitasking. Interrupts. Context switching and task scheduling models. Synchronization and communication between tasks. Mutual exclusion, semaphores and monitors. Priority inversion and deadlock. Introduction to FreeRTOS operating system. Porting FreeRTOS for the target microcontroller platform. FreeRTOS practical examples. Task scheduling in multiprocessor systems. Virtual memory. Introduction to functional safety. Guidelines for development of real-time software for safety-critical applications. Testing, validation and verification of real-time software and safety-critical applications. Guidelines and standards for software development for the automotive and related industries.
Study Programmes
University graduate
[FER3-HR] Audio Technologies and Electroacoustics - profile
Elective Courses
(1. semester)
(3. semester)
[FER3-HR] Communication and Space Technologies - profile
Elective Courses
(3. semester)
[FER3-HR] Computational Modelling in Engineering - profile
Elective Courses
(3. semester)
[FER3-HR] Computer Engineering - profile
Elective Courses
(3. semester)
Elective Courses of the Profile
(3. semester)
[FER3-HR] Computer Science - profile
Elective Courses
(3. semester)
[FER3-HR] Control Systems and Robotics - profile
Elective Courses
(3. semester)
[FER3-HR] Data Science - profile
Elective Courses
(3. semester)
[FER3-HR] Electrical Power Engineering - profile
Elective Courses
(3. semester)
[FER3-HR] Electric Machines, Drives and Automation - profile
Elective Courses
(3. semester)
[FER3-HR] Electronic and Computer Engineering - profile
(3. semester)
[FER3-HR] Electronics - profile
Elective Courses
(3. semester)
[FER3-HR] Information and Communication Engineering - profile
Elective Courses
(3. semester)
[FER3-HR] Network Science - profile
Elective Courses
(3. semester)
[FER3-HR] Software Engineering and Information Systems - profile
Elective Course of the profile
(3. semester)
Elective Courses
(3. semester)
[FER2-HR] Control Engineering and Automation - profile
Specialization Course
(3. semester)
[FER2-HR] Electronic and Computer Engineering - profile
Specialization Course
(3. semester)
Learning Outcomes
- Design architecure for complex software solutions for embedded systems.
- Analyze requirements for implementation of complex software solutions for embedded systems.
- Use modern methodologies and tools for team-based software development.
- Use real-time operating systems for development of solutions with hard real-time requirements.
- Modify real-time operating system for target platform.
- Use software testing procedures in safety-critical applications.
- Apply basic concepts of functional safety.
- Identify guidelines and standards for software development for embedded systems in automotive and related industries.
Forms of Teaching
Lectures
-
Seminars and workshops-
Laboratory-
Grading Method
Continuous Assessment | Exam | |||||
---|---|---|---|---|---|---|
Type | Threshold | Percent of Grade | Threshold | Percent of Grade | ||
Laboratory Exercises | 50 % | 20 % | 50 % | 20 % | ||
Seminar/Project | 50 % | 10 % | 50 % | 10 % | ||
Mid Term Exam: Written | 50 % | 30 % | 0 % | |||
Final Exam: Written | 50 % | 40 % | ||||
Exam: Written | 50 % | 40 % | ||||
Exam: Oral | 30 % |
Week by Week Schedule
- System design principles: levels of abstraction (architectural design and detailed design), separation of concerns, information hiding, coupling and cohesion, re-use of standard structures
- Structural and behavioral models of software designs, Principles of secure design and coding
- Properties of requirements including consistency, validity, completeness, and feasibility, Evaluation and use of requirements specifications, Basic concepts of formal requirements specification
- Team participation in software development, Software quality assurance and the role of measurements
- Operating system roles, Computer and operating system components
- Device organization, Threads and processes, Kernel
- I/O structure, Interrupts
- Midterm exam
- Thread management and context switching, Synchronization and communication
- Mutual-exclusion, Semaphores and monitors
- Multiprocessor issues
- Segmentation, Paging, Hierarchical organization and virtual memory
- Testing fundamentals, Limitations of testing in particular domains, such as parallel or safety-critical systems, Static approaches and dynamic approaches to verification
- Validation planning; Documentation for validation, Software quality management and assessment
- Final exam
Literature
D. E. Simon (1999.), An Embedded Software Primer, Addison Wesley
Q. Li, C. Yao (2003.), Real-Time Concepts for Embedded Systems, CMP Books
R. Barry (2009.), Using the FreeRTOS Real Time Kernel - Standard Edition, FreeRTOS.org
G.C. Buttazzo (2011.), Hard Real-Time Computing Systems, Springer Verlag
For students
General
ID 222548
Winter semester
5 ECTS
L1 English Level
L1 e-Learning
45 Lectures
2 Seminar
0 Exercises
15 Laboratory exercises
0 Project laboratory
0 Physical education excercises
Grading System
90 Excellent
75 Very Good
60 Good
50 Sufficient