Embedded Software and Systems

6 EC

Semester 1, period 2

5364EMSS6Y

Owner Master Software Engineering
Coordinator dr. A.D. Pimentel
Part of Master Software Engineering, year 1

Course manual 2019/2020

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 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

56

Self study

84

Total

168

(6 EC x 28 uur)

Attendance

Requirements concerning attendance (TER-B).

  • Participation in practical exercises, tutorials and study group sessions is obligatory. Detailed rules are laid out in the study guide and/or the course catalogue for each unit of study.
  • Assessment

    Item and weight Details

    Final grade

    1 (50%)

    Assignments (average, 3)

    1 (50%)

    FInal (practical) project

    The grade of the final project should be 5 or higher.

    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

    • dr. A.D. Pimentel