Embedded Software and Systems

6 EC

Semester 1, period 2

5364EMSS6Y

Owner Master Software Engineering
Coordinator Sebastian Altmeyer
Part of Master Software Engineering, year 1

Course manual 2018/2019

Course content

This course targets the software design and programming of embedded systems, i.e., computing systems which are not immediately recognized as such. Examples include mobile phones, TV sets, consumer electronics, Internet-of-Things, but also airplanes, cars, and satellites. Designing such embedded systems differs fundamentally from traditional design methods for general-purpose computer software: Embedded systems are subject to specific requirements, especially in terms of efficiency (size, weight and power) and costs. At the same time, embedded systems are subject to increased reliability constraints. The go-to solution to resolve system errors for general-purpose computing, i.e., a complete system restart, is typically precluded in an embedded system. The system must always be available and must always reliably produce correct results. To further complicate matters, the correctness of most embedded systems is not just defined by the correct result of a computation, but by the correct result and the correct timing. Imagine an air-bag controller, which must inflate the air-bag in time before the driver’s head hits the steering wheel, or a flight control system, which must correct turbulences, before the airplane becomes instable. Concerning less critical cases, we have for instance media players where the playback is delayed or the quality is degraded.

We will provide an introduction to the domain of embedded computer systems, and teach common design and development methods of embedded software and systems.

The course covers the following topics:

  • Characteristics and constraints of embedded systems
  • Embedded system design flow
  • Specification of the functional and non-functional behavior of an embedded system
  • Selection and configuration of suitable embedded architectures
  • Analysis of the non-functional behavior of embedded systems
  • Correctness verification of (non-)functional properties of embedded systems

Objectives

The overall course objective is the design, development and verification of embedded software and systems:

  • The students know the characteristics of embedded software and systems and how to accommodate these characteristics during the design-phase.
  • The students are able to specify and develop embedded software and systems for a given embedded architecture.

Teaching methods

  • Lecture
  • Self-study
  • Working independently on e.g. a project or thesis
  • Laptop seminar

Learning activities

Activity

Hours

Hoorcollege

28

Laptopcollege

84

Self study

56

Total

168

(6 EC x 28 uur)

Attendance

Requirements of the programme concerning attendance (OER-B):

  1. All parts and activities of the curriculum are obligatory (presence and participation).
  2. Exemptions for activities must be granted a-priori by the examiner.
  3. If no exemption has been granted and the conditions as stated in paragraph 1 are not met, acomponent is failed.

Assessment

Item and weight Details

Final grade

1 (50%)

Assignments (average, 4)

1 (50%)

Practical Project

Fraud and plagiarism

The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl

Course structure

Will be provided on Canvas.

Timetable

The schedule for this course is published on DataNose.

Contact information

Coordinator

  • Sebastian Altmeyer