SWE 6823: Embedded Systems Analysis and Design

Instructor: Dr. Andy Ju An Wang
School of Computing and Software Engineering
Southern Polytechnic State University


Course Description

Catalog Description:
This course focuses on using modern methods, techniques, and tools for specification and design of embedded systems. Topics include analytical methods, development methods, and notations like UML, Petri nets, etc. Performance evaluation based on modeling and simulation techniques is also covered. This is a project-oriented course.

Additional Description:
Fundamental principles and techniques for embedded software engineering are discussed. Major topics include: Hardware fundamentals for the software engineers, the embedded computing platforms, common software architectures, real-time operating systems, modeling and specification, program analysis and design, and embedded software development tools. C/C++/Java will be used as major programming languages for this course.

Course Objectives

The course covers a wide range of embedded software development skills, from analyzing a problem to implementing a solution. On completion of the course, students should be able to
  1. Appreciate embedded software engineering as a discipline;
  2. Master fundamental principles and methodologies of embedded software development;
  3. Appreciate engineering issues in the development of embedded software, such as the importance of addressing the user’s concerns, working with limited resources, maintainability, dependability, and division of labor.
  4. Analyze a software development problem and express its essence succinctly and precisely;
  5. Design a module structure to solve a problem, and evaluate alternatives;
  6. Implement a module so that it executes efficiently and correctly;
  7. Work in a small team, cooperating on these aspects of software development, and exchanging ideas in a constructive and organized fashion;
  8. Utilize effectively the computing environment including operating systems, CASE tools, languages, etc.
  9. Master the basic knowledge about software requirements, software design, software construction, software management, and software quality.
  10. Understand the scope, roles, uses, and development trends of the most widely used embedded software engineering standards.

Course Outline

  1. Introduction to Embedded Systems
    • Complex systems and microprocessors
    • Characteristics of embedded computing applications
    • Challenges in embedded computing system design
    • The embedded system design process
      • Requirements
      • Specification
      • Architecture design
      • Designing hardware and software components
      • System integration
    • Formalisms for system design
      • Structural description
      • Behavioral description
      • Semi-formal languages versus formal languages
    • Design examples
  2. Architecture and Basic Concepts of JES
    • Service-oriented programming
    • Motivation and architecture
    • Component-based model for embedded systems
    • Bundles and Framework
    • Cooperation among bundles and services
    • Life cycle of bundles within the Framework
    • Embedded resource management and security issues
  3. Smart Card Basics
    • History, basic card types, benefits, and applications
    • Smart card hardware and communications
    • Smart card operating systems and runtime environment
    • Java Card API, applets, and developing process
    • Package, applet naming convention, and installation
    • Java Card objects and exception handling
  4. Smart Sensor Networks
    • Sensor networks as networked embedded systems
    • Introduction to TinyOS and nesC
    • Event-driven sensor acquisition and data processing
    • Composing components to send and receive messages
    • Using TOSSIM simulator to develop TinyOS components
    • Applications and security issues in sensor networks
  5. Developing Embedded Systems in Windows Platform
    • Windows embedded product overview
    • Introduction to Windows CE .NET
    • Windows embedded application development
    • Platform wizzard and building an image
    • Emulator setup and downloading an image
    • Examples and lab practice
  6. Programming for Mobile Devices
    • Introduction to J2ME Wireless Toolkit 2.1
    • MIDlet life cycles and development
    • Servlets for mobile devices
    • Communication between MIDlets and Servlets
    • Web Services on mobile devices
  7. Embedded Applications for Residential Networks
    • Open service gateway (OSG)
    • Set-top box as a home gateway
    • Digital TV and interactive TV
    • Java TV environment and tools
    • Xlet application lifecycle model
    • Programming for networked appliances
  8. Security Solutions in Embedded Computing
    • Quick tour of cryptography
    • Encryption and decryption
    • Authentication and authorization
    • Message digest
    • Digital signature
    • Firewall technology
    • Confidentiality, integrity, and availability
Note:   Each semester will probably emphasize a specific technology while go through others briefly.

Student Comments

At the end of each semester, students were asked to provide their feedbacks on this course by answering the question "What do you like most and what do you dislike most about this course?" Below is a list of some comments from students.

Projects and Demos

Some projects and demos related to this course can be found here.

Course Web Site

The web URL for this course is: http://webct.usg.edu. Please log into your course web site following these directions exactly:
  1. Go to http://webct.usg.edu.
  2. Click on the "Log in to myWebCT" link (DO NOT CLICK ON CREATE myWEBCT).
  3. When asked, put in your user name and passwd following the format below:
    • username: Firstname_Lastname_last4digits of SSN
      (Example: John_Doe_1234)
    • password: SSN (no dashes or spaces)
      Or if you are a previous user with this ID, the password that you have been using.
    Please note that these are case sensitive.

Note for Students:


[Course Description] | [Course Objectives] | [Course Outline] | [Student Comments] | [Projects and Demos] | [Course Web Site]
© 2004 Andy J Wang
Last modified: Tuesday August 3, 2004