Software Design for Embedded Systems

Learning Outcomes

  1. Design architecure for complex software solutions for embedded systems.
  2. Analyze requirements for implementation of complex software solutions for embedded systems.
  3. Use modern methodologies and tools for team-based software development.
  4. Use real-time operating systems for development of solutions with hard real-time requirements.
  5. Modify real-time operating system for target platform.
  6. Use software testing procedures in safety-critical applications.
  7. Apply basic concepts of functional safety.
  8. 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

  1. System design principles: levels of abstraction (architectural design and detailed design), separation of concerns, information hiding, coupling and cohesion, re-use of standard structures
  2. Structural and behavioral models of software designs, Principles of secure design and coding
  3. Properties of requirements including consistency, validity, completeness, and feasibility, Evaluation and use of requirements specifications, Basic concepts of formal requirements specification
  4. Team participation in software development, Software quality assurance and the role of measurements
  5. Operating system roles, Computer and operating system components
  6. Device organization, Threads and processes, Kernel
  7. I/O structure, Interrupts
  8. Midterm exam
  9. Thread management and context switching, Synchronization and communication
  10. Mutual-exclusion, Semaphores and monitors
  11. Multiprocessor issues
  12. Segmentation, Paging, Hierarchical organization and virtual memory
  13. Testing fundamentals, Limitations of testing in particular domains, such as parallel or safety-critical systems, Static approaches and dynamic approaches to verification
  14. Validation planning; Documentation for validation, Software quality management and assessment
  15. Final exam

Study Programmes

University graduate
Audio Technologies and Electroacoustics (profile)
Free Elective Courses (3. semester)
Communication and Space Technologies (profile)
Free Elective Courses (3. semester)
Computational Modelling in Engineering (profile)
Free Elective Courses (3. semester)
Computer Engineering (profile)
Elective Courses of the Profile (3. semester)
Computer Science (profile)
Free Elective Courses (3. semester)
Control Systems and Robotics (profile)
Free Elective Courses (3. semester)
Data Science (profile)
Free Elective Courses (3. semester)
Electrical Power Engineering (profile)
Free Elective Courses (3. semester)
Electric Machines, Drives and Automation (profile)
Free Elective Courses (3. semester)
Electronic and Computer Engineering (profile)
(3. semester)
Electronics (profile)
Free Elective Courses (3. semester)
Information and Communication Engineering (profile)
Free Elective Courses (3. semester)
Network Science (profile)
Free Elective Courses (3. semester)
Software Engineering and Information Systems (profile)
Elective Course of the profile (3. semester)

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
L3 English Level
L1 e-Learning
45 Lectures
2 Seminar
15 Laboratory exercises

Grading System

90 Excellent
75 Very Good
60 Good
50 Acceptable