CS 599
Software Engineering for Embedded Systems

Fall Semester, 2001
Location: SCI 352
Time: Tuesdays 2:00 - 4:50 pm
Class number: 048-33636D
Prerequisite: None (desired CS 578 or CS 612)

Instructor | OverviewReadingsAssignmentsSchedulePitM ToolsFinal Grades


        Nenad Medvidovic

o       Electronic Mail: neno@usc.edu

o       Office: SAL 338

o       Office Phone: (213) 740-5579

o       Office Hours: Tuesdays 11:00 am – 12:00 pm

Teaching Assistant

        Marija Rakic

o       Electronic Mail: marija@usc.edu

o       Office: SAL 327

o       Office Phone: (213) 740-6504

o       Office Hours: Thursdays 2:00 pm – 3:00 pm


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 and reviewing assigned papers,

[2]   a presentation of one of the papers,

[3]   participation in class discussions,

[4]   final exam, and

[5]   a semester project.






Paper reviews

You will be required to write 1-page reviews of each paper assigned in class, starting with Week 4.  You are not required to provide reviews of the papers marked as “supplemental” and highlighted in the Schedule. Additionally, these papers will not be presented in class.  However, extra credit questions on the final exam may be based on these papers. Each paper review should

  1. summarize the paper,
  2. highlight its strengths,
  3. highlight its weaknesses, and
  4. point out its relevance to embedded software.

Each student will be allowed to miss up to three reviews during the semester without penalty.



Each student will be required to collaborate with one or two classmates and present the details of two papers and any accompanying information. The presentation should include at least, but need not be restricted to the material covered in the paper.  The presentation should also address the same four categories as required for the paper reviews (summary, strengths, weaknesses, and 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.


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.


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.



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


Schedule (Subject to Change) 



Discussion Topic




Aug 28

  • Course Introduction


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


Sep 4

  • Overview of Embedded Software Research at USC
  • Background and History of Embedded Systems


Sep 11

ESEC/FSE 2001 - No Class


Sep 18

  • The Problem Space
  • E. A. Lee. Embedded Software. Technical Memorandum UCB/ERL M001/26, University of California, Berkeley, CA, July 12, 2001.
  • Project Discussion



Sep 25

  • Project Discussion (cont.)


  • Requirements Engineering
  • supplemental


Oct 2

  • Software Modeling
  • supplemental


Oct 9

  • Implementation Issues
  • supplemental
  • 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.


Oct 16

  • Analysis, Testing, and Simulation
  • M. J. Harrold.  Testing: A Roadmap. In The Future of Software Engineering, Anthony Finkelstein (Ed.), pp. 63-71, ACM Press 2000.
  • D. Jackson and M. Rinard. Software Analysis: A Roadmap. In The Future of Software Engineering, Anthony Finkelstein (Ed.), pp. 135-146, ACM Press 2000.
  • supplemental


Oct 23

  • Cross-Cutting Issues
  •  supplemental


Oct 30

  • Runtime Support:
    Deployment, (re)Configuration
  • Project Discussion


  • Medvidovic (40 min.)


Nov 6

  • Runtime Support:
    Mobility, Location Awareness, and Disconnected Operation
  • supplemental
  • A. Fuggetta, G. P. Picco, and G. Vigna. Understanding Code Mobility. IEEE Transactions on Software Engineering, vol. 24, no. 5, pp. 342-361, May 1998.



Exam (90 min.)

  • Project Discussion


  • Medvidovic (60 min.)


Nov 20

  • Project presentations and discussions
    (40 min. each)
  • Extending the PitM Communication Model for Real-Time Guarantees
  • Aatash Patel
  • Ajit Sonawane
  • Douglas Su
  • Disconnected Operation
  • Raghbir Banwait
  • Mandar Samant
  • Implementing Publish-Subscribe Services on the Palm
  • Ritu Varma
  • Ruchi Gupta
  • Vishal Kudchadkar


Nov 27

  • Project presentations and discussions
    (40 min. each)
  • Location Tracking System using PitM Framework
  • Prasad Balasubramanian
  • Anmol N M
  • Lakshmilant Prashanth
  • Border Connectors
  • Apurva Shah
  • Sahitya Gupta
  • John Powell
  • DRADEL for the 21st Century
  • Vladimir Jakobac
  • Roshanak Roshandel
  • Ebru Dincel
  • Marija Mikic-Rakic


Dec 4

  • Project presentations and discussions
    (40 min. each)
  • IP Forwarding on Handhelds
  • Sachin Chouskey
  • Rohan Puri
  • Manu Prasanna
  • Prism
  • Dapeng Xie
  • Pangsha Qiu
  • Border Connector
  • Jin Lin
  • Wei Xion
  • Yulong Liu
  • Dependency Graphs for Disconnected Operation
  • Ahmad Alsawi
  • Katherine Barrow
  • Bob Chen


Dec 10

Final project write-ups due


PitM Tools


Last updated:  12/19/01