CS 589
Software Engineering for Embedded Systems

Fall Semester, 2003
Location: MHP B7B
Time: M 2–5pm
Class number: 048-33711D
Prerequisite: CSCI 577A


Instructor | OverviewReadingsAssignmentsSchedule


Instructor

·        Nenad Medvidovic

o       Electronic Mail: neno@usc.edu

o       Office: SAL 338

o       Office Phone: (213) 740-5579

o       Office Hours: M 12:30–1:30pm or by appointment

 

Teaching Assistant

·        Sam Malek

o       Electronic Mail: malek@usc.edu

o       Office: SAL 327

o       Office Phone: (213) 740-6504

o       Office Hours: T 3:30–4:30pm or by appointment


Overview

Over the past decade, the world of computing has moved from large, static, desk-top machines to small, mobile, palm-top, and embedded devices.  The methods, techniques, and tools for developing software systems that were successfully applied in the former scenario are not as readily applicable in the latter.  Software systems running on networks of mobile, embedded devices must necessarily exhibit properties that are not always required of more traditional systems: near-optimal performance, robustness, distribution, dynamism, mobility.  This class will examine the key properties of software systems in the embedded, resource constrained, mobile, and highly distributed world.  The class will assess the applicability of mainstream software engineering methods and techniques (e.g., object-orientation, component-based development, software architecture) to this domain.  While not the primary focus of the class, enabling advances in other areas (e.g., embedded, real-time operating systems, wireless networking, the Internet) will be studied from a software application development perspective.  A class project will give students hands-on experience with building software development infrastructure and/or applications in this important domain.

Course requirements are

[1]   reading assigned papers,

[2]   presenting one of the papers,

[3]   participating in class discussions,

[4]   completing a written exam, and

[5]   completing a group project.


Textbook

·        Anthony Finkelstein, editor. The Future of Software Engineering. ACM Press 2000.

Additional Readings

  • Several papers (see the Schedule) will be used in addition to the textbook. All papers are available on-line.

Assignments

Name

Description

Weight

Questions about papers

A small set of questions will be posted about each reading set by the Friday of the week before the readings are due. Each student will be required to provide short answers (no longer than a single paragraph) to these questions, and mail them in plain text to the teaching assistant before the class in which the readings are due.  Each student will be allowed to skip up to three questions during the semester without penalty.

15%

Presentations 

Each student will present the details of one paper from the textbook or from additional readings; in certain cases two students may be assigned to a single paper. The presentation should include at least, but need not be restricted to, the material covered in the paper.  The presentation should also address the following four issues:

  1. summary of the paper,
  2. strengths of the approach,
  3. weaknesses of the approach, and
  4. relevance to embedded software

The presenters are responsible for familiarizing themselves with the necessary additional background information.  They are also responsible for staying within the time allotted for the presentation.  All presentations are 30 minutes long, unless otherwise noted in the schedule below.

15%

Class participation

Students are expected to prepare for each class (by reading papers) and actively participate in the discussions of the topics for which they are not presenters.

10%

Class project

Design and implementation of a novel application or development tool that exploits one or more existing approaches to software engineering in the context of embedded systems, demonstrates a novel idea in this domain, or overcomes a known significant challenge posed by embedded systems. The class project will be discussed in Week 4. Intermediate project reports will be due in Week 10.

40%

Examination

The written exam will assess the students’ understanding of the material covered in class.

20%


Schedule (articles taken from the textbook are bolded) 

Week

Discussion Topic

Readings
Presenters

1

  • Course Introduction

 

 

  • A. Finkelstein and J. Kramer. Software Engineering: A Roadmap. In The Future of Software Engineering, Anthony Finkelstein (Ed.), pp. 5-22, ACM Press 2000.
  • Medvidovic

2

 

Labor Day – No Class

 

3

  • Medvidovic & Malek

 

  • Medvidovic & Malek

4

 

 

5

  • The Problem Space
  • E. A. Lee. Embedded Software. In Advances in Computers, Ed Zelkowitz (Ed), Academic Press, 2002.

6

  • Project Discussion and Clarification
  • Lab Time
    (KAP103)

 

 

7

  • Project Clarification

 

 

  • Requirements Engineering

8

  • Project Clarification

 

 

  • Software Modeling

9

  • Project Clarification

 

 

  • Software Modeling (cont.)
  • Implementation Issues
  • M. Hicks, J. T. Moore, and S. Nettles. Dynamic Software Updating. In Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI’01), Snowbird, UT, June 2001.

10

  • Project Clarification

 

Intermediate Project Reports Due

 

  • Implementation Issues (cont.)
  • Analysis and Testing
  • M. J. Harrold.  Testing: A Roadmap. In The Future of Software Engineering, Anthony Finkelstein (Ed.), pp. 63-71, ACM Press 2000.

11

  • Simulation
  • Cross-Cutting Issues

12

  • Cross-Cutting Issues (cont.)

13

  • Project Clarification

 

 

  • Runtime Support:
    Deployment, (re)Configuration, Mobility

14

  • Runtime Support:
    Disconnected Operation
  • Kuan Lin
    Nikhil Kasinadhuni
    (30 min.)
  • Runtime Support: Location Awareness
  • Gunjan Sharman
    (30 min.)
  • Exam Review

 

Take-Home Exam

 

15

  • Runtime Support: Location Awareness (cont.)

 

  • Ping-Chuan Lai
    (30 min.)
  • Brijesh Gadhiya
    (30 min.)
  • Simulation (redo)

Finals

 

Project Presentation and Demonstration

 

 

Final Project Write-ups Due