CS 589
Software Engineering for Embedded Systems

Fall Semester, 2004
Location: ZHS 252
Time: TTh 3:30 – 4:50pm
Class number: 048-33711D
Prerequisite: CSCI 577A


Instructor | OverviewReadingsAssignmentsSchedule


Instructor

    • Electronic Mail: neno@usc.edu
    • Office: SAL 338
    • Office Phone: (213) 740-5579
    • Office Hours: TTh 2:15 – 3:15pm

 

 

Teaching Assistant

 

    • Electronic Mail: mattmann@usc.edu
    • Office: SAL 327
    • Office Phone: (213) 740-6504
    • Office Hours: TTh 1:15 – 2:15pm

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 and/or leading the discussion on a given topic,

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

Presentation and Discussion

Each student will either present the details of one paper from the textbook or from additional readings, or (s)he may be tasked with preparing and leading the discussion on a topic; in certain cases two students may be assigned to a single paper and/or discussion topic. The presentation and discussion 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 discussions should be organized around the cross-cutting issues identified in the given set of papers.  The presenters and discussion leaders are responsible for familiarizing themselves with the necessary additional background information.  They are also responsible for staying within the time allotted for the presentation/discussion.  All presentations are 30 minutes long.

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

  • Medvidovic
  • Mattmann

3

 

  • Medvidovic & Mattmann

4

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

5

 

  • Mattmann
  • Project Discussion and Clarification
    Visit to KAP 103

 

 

6

  • Requirements Engineering
  • Discussion of Requirements Engineering

 

 

7

  • Software Modeling
  • Software Modeling and Simulation
  • Discussion of Software Modeling and Simulation

8

  • Implementation Issues (1)
  • 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.
  • Project Clarification

 

 

9

  • Implementation Issues (2)
  • Discussion of Implementation Issues

 

10

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

 

 

11

  • Cross-Cutting Issues (1)
  • Cross-Cutting Issues (2)

12

  • Discussion of Cross-Cutting Issues

 

 

  • Project Clarification

 

 

13

  • Runtime Support:
    Deployment, (re)Configuration,
  • Runtime Support:
    Mobility, Disconnected Operation, Location Awareness

14

  • Discussion of Runtime Support

 

 

Thanksgiving – No Class

 

15

  • Exam Review

 

 

Exam

Finals

 

Project Presentation and Demonstration

 

 

Final Project Write-ups Due