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
- Appreciate embedded software engineering as a discipline;
- Master fundamental principles and methodologies of embedded software development;
- 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.
- Analyze a software development problem and express its essence succinctly and precisely;
- Design a module structure to solve a problem, and evaluate alternatives;
- Implement a module so that it executes efficiently and correctly;
- Work in a small team, cooperating on these aspects of software development, and exchanging ideas in a constructive and organized fashion;
- Utilize effectively the computing environment including operating systems, CASE tools, languages, etc.
- Master the basic knowledge about software requirements, software design, software construction, software management, and software quality.
- Understand the scope, roles, uses, and development trends of the most widely used embedded software engineering standards.
Course Outline
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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.
- This is from an email message related to this course sent from a former student:
"Right before my wedding on April 17th I received two simultaneous offers and I accepted both. One is a full time position working with a GPS/GIS equipment reseller for which I will eventually be programming custom applications. At the moment I am still learning this embedded technology. My second position (which is part-time/my-own time) started with doing some investigative program analysis for a small local company. To make a long story short my investigation and resulting report has now landed me with the opportunity to re-develop their business application.
"... First of all I wish to thank Dr. Wang for teaching such a "hands on" embedded systems class that has helped me greatly with the GPS/GIS units and the software I am working with. The Component Object Models make a lot of sense and the class notes have helped a lot."
- Here is a letter from a former student to our department chair:
"I have hopefully graduated this semester from the MSSE program and I would like to take a few minutes to share some thoughts with you regarding the faculty. Not only did I complete my graduate degree at SPSU, but I also completed my undergraduate degree at SPSU. Along the way I had some pretty good professors, but I also had quite a few lousy professors. Over the course of my graduate degree I was able to take about 7 courses from Dr. Tsui and Dr. Wang. From my experience with these professors and comments from my peers, I feel that these professors are extremely important to the SE program.
Dr. Wang is one of the few professors that I have had that I feel was able to challenge me technically. I have a few years of architecture and implementation experience in corporate American and Dr. Wang's courses have given me technical knowledge that I feel I can apply to my projects. I have not had many other professors who have the enthusiasm to teach the latest technologies (Java, CBE) like Dr. Wang. Dr. Wang also is compassionate towards his students and really relies on there feedback to shape his teachings.
I feel both the professors deserve a pat on the back. From my experiences, many professors do not really care if the students really learn anything and do not provide more than regurgitation of the textbook. Dr. Wang and Dr. Tsui are able to teach from their experiences and portray a passion for the subject that they are teaching."
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:
- Go to http://webct.usg.edu.
- Click on the "Log in to myWebCT" link (DO NOT CLICK ON CREATE myWEBCT).
- 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:
- If you have registered to this course but have problems to log into the course web site, please let the instructor know immediately.
- If you registered later than the scheduled registration time, your web account will be created after the "Add-Drop" deadline.
- Your WebCT account is managed by the USG (University System of Georgia).
[Course Description] | [Course Objectives] | [Course Outline] | [Student Comments] | [Projects and Demos] | [Course Web Site]
© 2004 Andy J Wang
Last modified: Tuesday August 3, 2004