ENCE463-14S2 (C) Semester Two 2014

Embedded Software Engineering

15 points

Details:
Start Date: Monday, 14 July 2014
End Date: Sunday, 16 November 2014
Withdrawal Dates
Last Day to withdraw from this course:
  • Without financial penalty (full fee refund): Sunday, 27 July 2014
  • Without academic penalty (including no fee refund): Sunday, 12 October 2014

Description

Software engineering practice and methods for embedded systems, focused around state machines as a unifying formalism for understanding software, hardware, and systems. Embedded software requirements, specification, and analysis. Principles of embedded software architecture and design. Design of concurrent systems. Testing and analysis techniques for embedded systems.

Embedded software is found in cell-phones, cars, robots, the electrical power grid, and anything else that isn't what we traditionally think of as a “computer” but needs software smarts built in to it. This course takes you beyond simply knowing how to program an embedded system, and looks at applying the principles of software engineering to embedded systems. Software engineering in general is about the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. The essential principles of software engineering apply to the development of embedded software, but the application of these principles sometimes differs due to the unique nature of embedded systems.

Developing software for an embedded system differs from developing desktop or server software because embedded systems must run on non-standard processors and custom PCBs, often must work without fail, must interact with the physical world through application-specific sensors and actuators, and are typically resource-constrained. Making the design of our software reliable and flexible enough to accommodate these needs involves careful use of abstraction and interfaces to break the design into understandable, testable, and adaptable modules. During the course we'll look at various principles and patterns for developing well-structured designs, as well as techniques for implementing those designs in code. To help understand how our modules should behave, and how the software will interact with the physical world, we'll look at the various models of computation typically found in embedded systems and where they are best applied. Knowing the primary models of computation in given design can guide our choice of execution model (cyclic, event-driven, time-driven, or some mix) as well as facilitating analysis and testing. Many embedded systems are faced with the problem of carrying out multiple tasks concurrently, so we'll also look at the various ways we can write code to do this, the pros and cons of different approaches, and design techniques for achieving robust concurrency.

The course includes two practical projects in which the ideas taught during lectures are applied to actual software design and implementation.

Learning Outcomes

  • This is an advanced specialist course in software engineering for embedded systems, including both theoretical knowledge that facilitates design and analysis of embedded software, and issues of practical implementation.

    At the end of this course, the student will be able to:
  • Specify, design, and implement complex embedded software using a principled approach.
  • Select and implement appropriate models of computation for a given design problem.
  • Design, analyse, and implement robust concurrent, multithreaded, and distributed software.
  • Select and apply analysis and testing techniques that will help to ensure design and implementation quality.
  • Use appropriate tools and techniques to work on large software projects that involve more than one developer.

Prerequisites

ENCE361, Subject to the approval of the Dean of Engineering and Forestry

Restrictions

ENEL428

Lecturers

Phil Bones and Mike Shurety

Assessment

Assessment Due Date Percentage  Description
Assignment 1 10% Team Project Specification
Assignment 2 15% Team Project Performance Modelling
Assignment 3 25% Team Project Demonstration and Report
Final Exam 50%

Course links

Course Outline

Indicative Fees

Domestic fee $841.00

International fee $4,638.00

* All fees are inclusive of NZ GST or any equivalent overseas tax, and do not include any programme level discount or additional course-related expenses.

For further information see Electrical and Computer Engineering .

All ENCE463 Occurrences

  • ENCE463-14S2 (C) Semester Two 2014