CS 589
Software Engineering for Embedded Systems

Fall Semester, 2007
Location: GFS 218
Time: TTh 2:00 – 3:20 pm
Class number: 048-30161D
Prerequisite: CSCI 577A


Instructor | OverviewAcademic Integrity | ReadingsAssignmentsSchedule


Instructor

  


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.


Academic Integrity

Students must work independently on all individual assignments; collaborating on individual assignments is considered cheating and will be penalized accordingly. All USC students are responsible for reading and following the USC Student Conduct Code, which prohibits plagiarism. Some examples of behavior that is not allowed are: copying all or part of someone else’s work (by hand or by looking at others’ files, either secretly or if shown), and submitting it as your own; giving another student in the class a copy of your assignment solution; consulting with another student during an exam; and copying text from published literature without proper attribution. If you have questions about what is allowed, please discuss it with the instructor.

 

Students who violate University standards of academic integrity are subject to disciplinary sanctions, including failure in the course and suspension from the University. Since dishonesty in any form harms the individual, other students, and the University, policies on academic integrity will be strictly enforced.


Textbooks

Additional Readings


Assignments

Name

Description

Weight

Questions about papers

A short quiz may be given about the readings for each week, consisting of at least two questions. Each student will be required to provide answers that are no longer than a single paragraph to these questions.  Each student will be allowed to skip up to two quizzes during the semester without penalty.

10%

Presentation and Discussion

Each student will either present the details of two paper from the textbooks 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 or discussion leaders.

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 (tentative). Intermediate project reports will be due in Weeks 8 and 12 (tentative).

40%

Examination

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

25%


Schedule (subject to change) 

Week

Discussion Topics

Readings and Assignments
Presenters

1

  • Course Introduction

 

  • Edwards

Class cancelled

2

  • Brief overviews of Software Engineering and Embedded Software
  • Embedded Software Research at USC (1)

3

  • Embedded Software Research at USC (2)
  • Mobility and Ubiquitous Computing (1)

4

  • Mobility and Ubiquitous Computing (2)
  • Mobility and Ubiquitous Computing (3)
  • Discussion
  • Medvidovic

5

  • Overview of class project
 
  • Real-time (1)

6

  • Real-time (2)
  • Discussion
  • Brian DSouza and Joshua Garcia
  • Reliability, Fault-tolerance, and Safety (1)

7

  • Reliability, Fault-tolerance, and Safety (2)
  • Discussion
  • Medvidovic and Eric Johnson
  • Project Clarification

 

  • Medvidovic

8

  • Modeling, Analysis, and Simulation (1)
  • D. Jackson and M. Rinard. Software Analysis: A Roadmap. In The Future of Software Engineering, Anthony Finkelstein (Ed.), pp. 215-224, ACM Press 2000.
  • Modeling, Analysis, and Simulation (2)
  • Discussion
  • Ivo Krka and Prakash Gupta

9

  • Project Clarification
 
  • Medvidovic
  • Implementation (1)

10

  • Implementation (2)

  • P. Narasimhan, T. A. Dumitras, A. M. Paulos, S. M. Pertet, C. F. Reverte, J. G. Slember and D. Srivastava. MEAD: Support for Real-Time Fault-Tolerant CORBA. Concurrency and Computation: Practice and Experience, vol. 17, no. 12, 2005, pp. 1527-1545.
  • Discussion
  • Sarthak Datt and Natachart Laoteppitak
  • Configuration and Deployment

Project Part I Due (November 2)

11

  • Configuration and Deployment

  • Discussion
  • Sidharth Kumar and Eunyoung Song
  • Domain-Specific Approaches (1)

  • Natachart Laoteppitak

12

  • Domain-Specific Approaches (2)

  • Discussion
  • Tarun Nainani and Hossein Tajalli
  • Project Clarification
 
  • Medvidovic

13

  • The Big Picture

 

  • Medvidovic

Thanksgiving – No Class

14

  • Exam Review

 

  • Medvidovic

Class cancelled (VSoE event)

15

Exam

Project Part II Due (December 10)