Menù principale
B029602 - SOFTWARE ENGINEERING FOR EMBEDDED SYSTEMS
Main information
Teaching Language
Course Content
Suggested readings
Learning Objectives
Prerequisites
Teaching Methods
Further information
Type of Assessment
Course program
Academic Year 2021-22
Coorte 2021 - Second Cycle Degree in INFORMATICS ENGINEERING
Course year
First year - First Semester
Belonging Department
Information Engineering (DINFO)
Course Type
Single education field course
Scientific Area
ING-INF/05 - INFORMATION PROCESSING SYSTEMS
Credits
6
Teaching Hours
48
Teaching Term
13/09/2021 ⇒ 17/12/2021
Attendance required
No
Type of Evaluation
Final Grade
Course Content
show
Course program
show
Lectureship
Teaching Language
Italian
Course Content
- Structured and object-oriented software development
- Real-time and embedded systems
- Systems engineering
- Real-time and embedded systems
- Systems engineering
Suggested readings (Search our library's catalogue)
Giorgo C. Buttazzo, "Hard Real-Time Computing Systems: Predictable Scheduling Algorithms and Applications", Springer, Third Edition
References to scientific papers are reported in the course slides which will be made available on the Moodle web page during the course.
References to scientific papers are reported in the course slides which will be made available on the Moodle web page during the course.
Learning Objectives
- Knowledge of the characteristics of real-time embedded systems and real-time operating systems.
- Knowledge of fundamental scheduling algorithms for real-time systems.
- Knowledge of advanced methods and tools for design, analysis, and testing of real-time embedded software.
- Practical experience in design and development of real-time embedded software.
- Knowledge of fundamental scheduling algorithms for real-time systems.
- Knowledge of advanced methods and tools for design, analysis, and testing of real-time embedded software.
- Practical experience in design and development of real-time embedded software.
Prerequisites
This course assumes a good mastering of the C language. A good understanding of software engineering principles, prior knowledge on mathematics, and aptitude to the formalization of concepts will largely help the comprehension of the topics covered in the course, but they are not prerequisites.
Teaching Methods
Lectures are given by presenting the course topics mainly through slides.
Further information
Students are invited to view the course page on Moodle (https://e-l.unifi.it) for more information.
Type of Assessment
The examination is designed to assess the theoretical and practical skills acquired on the course topics.
Students who choose the course "Software Engineering for Embedded Systems" with the module "Software Engineering for Embedded Systems Laboratory" or the integrated course "Software Engineering for Embedded Systems/Quantitative Evaluation of Stochastic Models" with the module "Software Engineering for Embedded Systems Laboratory" and/or the module "Stochastic Models Laboratory" take the examination by discussing an assignment, which can be developed individually or by a group of (typically two or three) students (ensuring that the contribution of each student is clearly identifiable).
Students who do not choose a laboratory module may take an oral examination on the course contents or discuss an assignment developed individually or with other students. Students taking the oral examination can develop individually a small self-assignment which is the starting point of the discussion.
Students who choose the course "Software Engineering for Embedded Systems" with the module "Software Engineering for Embedded Systems Laboratory" or the integrated course "Software Engineering for Embedded Systems/Quantitative Evaluation of Stochastic Models" with the module "Software Engineering for Embedded Systems Laboratory" and/or the module "Stochastic Models Laboratory" take the examination by discussing an assignment, which can be developed individually or by a group of (typically two or three) students (ensuring that the contribution of each student is clearly identifiable).
Students who do not choose a laboratory module may take an oral examination on the course contents or discuss an assignment developed individually or with other students. Students taking the oral examination can develop individually a small self-assignment which is the starting point of the discussion.
Course program
Part 1: Real-time and embedded systems
- Scheduling algorithms for real-time embedded systems (basic concepts on real-time scheduling, periodic task scheduling, cyclic executive scheduling, rate monotonic scheduling, deadline monotonic scheduling, earliest deadline first scheduling).
- Resource access protocols for real-time embedded systems (priority inheritance protocol, priority ceiling protocol, extended schedulability tests).
- Real-time operating systems and standards (RT-POSIX, OSEK/VDX, ARINC-APEX, the real-time operating system VxWorks, development of real-time applications on Raspberry Pi).
Part 2: Advanced topics on schedulability analysis and testing
- Advanced topics on schedulability analysis (Petri nets, time Petri nets, preemptive time Petri nets, using preemptive time Petri nets in a V-Model SW life cycle subject to MIL-STD-498, timed automata).
- Software testing (testing methodology, control flow and data flow testing, finite state testing, real-time testing).
Part 3: Systems engineering
- Elements of model-based systems engineering (SysML).
- Scheduling algorithms for real-time embedded systems (basic concepts on real-time scheduling, periodic task scheduling, cyclic executive scheduling, rate monotonic scheduling, deadline monotonic scheduling, earliest deadline first scheduling).
- Resource access protocols for real-time embedded systems (priority inheritance protocol, priority ceiling protocol, extended schedulability tests).
- Real-time operating systems and standards (RT-POSIX, OSEK/VDX, ARINC-APEX, the real-time operating system VxWorks, development of real-time applications on Raspberry Pi).
Part 2: Advanced topics on schedulability analysis and testing
- Advanced topics on schedulability analysis (Petri nets, time Petri nets, preemptive time Petri nets, using preemptive time Petri nets in a V-Model SW life cycle subject to MIL-STD-498, timed automata).
- Software testing (testing methodology, control flow and data flow testing, finite state testing, real-time testing).
Part 3: Systems engineering
- Elements of model-based systems engineering (SysML).