Topic Coverage
18-649 Distributed Embedded Systems
Carnegie Mellon University
Fall 2012
NOTES:
Files indicated as "(local)" have access restrictions,
and can only be accessed from a CMU IP address.
Pointers to (IEEE) and (ACM) require subscriptions to on-line databases and
are not free. CMU has a blanket site license; where possible pointers to freely
available web material have been provided for non-CMU readers.
Pointers to the Embedded Systems Conference require
free registration.
Some articles for Embedded
Systems Programming are on-line for free. Others can be found on their
back issue CD-ROM, which you can
order from their web site.
"Kopetz" refers to the book: H. Kopetz, Real-Time Systems : Design
Principles for Distributed Embedded Applications, Kluwer, 1997.
Other interesting starting points:
Note on types of reading:
- Required reading: this is testable material. We expect you to have
read these and even know the main points of each item even if not discussed in
class.
- Recommended reading: we think this will help you understand the
material in class, especially if you are missing pieces or confused about a
topic. But we won't be designing test questions to check if you have read it.
We suggest you skim these and read the parts that seem helpful.
- Supplemental reading: this is purely if you want to know things
beyond what is taught in the class. These are largely there for you to refer
back to after you graduate, or to get you started if you want to learn more
about a particular topic of interest on your own.
Required Reading:
- Ebert, C. & Capers Jones, C., "Embedded software: facts, figures,
and future," IEEE Computer, April 2009. (IEEE |
local).
- Text chapter 2: Written Development Plan
- Text chapter 3: How Much Paper Is Enough?
Suggested Reading:
Supplemental Reading about Embedded Systems:
Supplemental Reading about Control Theory:
- Gaddy, G., "How to write a PID Algorithm", Embedded Systems
Programming, May 1997, pp. 62-72. (local)
Someday you're going to have to write a control algorithm. This is a good
how-to guide, although it's short on math.
- Crenshaw, J., "The Math of Control Systems", Embedded Systems
Programming, Parts I, II, III, October-December 1993. (local
part 1,
part 2,
part 3)
OK, here's the math.
- Morgan, D., "The PID Filter", Embedded Systems
Programming, July 2000, pp. 126-127. (local)
A kinder, gentler introduction to math and implementation for PIDs.
- Stewart, "How to choose a sensible sampling rate," Embedded
Systems Programming, July 2002. (Web |
local)
- Miller, B., "A case for fuzzy logic", Embedded Systems
Programming, December 1995, pp. 42-70. (local)
When the going gets tough, the tough get empirical.
Required Reading:
- Text Chapter 6: Measurable Requirements
- Text Chapter 8: Non-functional Requirements
- Text Chapter 9: Requirement Churn
Suggested Reading:
- Brombach, R., Customer requirements and requirements analysis
example, SAE 2001-01-0018, 2001. (local)
Examples of requirements analysis for automotive lighting systems.
- Wakeham, M., Requirements,
the most overlooked and undervalued area of software development, March
2000 (local)
Summary article, including chart suggesting that requirements errors are a
big source of problems.
- IEEE Std. 830-1998. IEEE Recommended Practice for Software Requirements
Specification. (IEEE)
- Kopetz Chapter 4
- The King's Toaster. (local)
A little levity, obviously written by a hardware engineer...
- Moore, A., "Capturing requirements and building solutions - why a
single architecture is not enough", Embedded Systems Conference,
Fall 1999. (local)
- Tech Solutions, Software
Development Standard Requirement Document, 2000.
A discussion of requirements at a high level.
- Bahill, A.T. & F. Dean, Discovering System Requirements, 1997.
(local)
Substantial discussion of the requirements process. Note that requirements
methods taught in this course are a small subset of the general requirements
process.
- Faulk, S., Software Requirements: a tutorial. 1997. (local)
A thorough discussion of sofwtare requiremetns.
Suggested Standards Reading:
- IEEE Std. 1223-1998. IEEE Guide for Developing System Requirements
Specifications. (IEEE)
Supplemental Reading:
- CMU software engineering design studio project report:
Ballistic SRS
SRS created according to the team software process (TSP) by a student group
that serves as an example from a real development project. Their assignment was
to re-engineer some of my research software.
- Brackett, J.,
Software
Requirements: SEI Curriculum Module SEI-CM-19-1.2, January 1990.
Sketch of topics to be taught in software requirements, with an annotated
bibliography.
- Gannsle, "Seven habits
of highly defective programmers", Embedded Systems Programming,
July 1998. (local)
An ironic view of system development practices.
- Douglass, "Capturing real-time
requirements", Embedded Systems Programming, November 2001. (local)
- Are Your Lights On?
: How to Figure Out What the Problem Really Is by Donald C. Gause,
Gerald M. Weinberg, Dorset House; ISBN: 0932633161, 1991
This is about problem solving approaches and requirements elicitation.
- Exploring
Requirements : Quality Before Design by Donald C. Gause, Gerald M.
Weinberg, Dorset House; ISBN: 0932633137, 1999
A discussion with examples about how to get requirements right in the first
place.
- Robertson, J. & S. Robertson,
Volare
requirements specification template. (local)
A template for a requirements document.
- Willey, "Engineering Specs: The Road Map of Reliability Testing",
Embedded Systems Conference, Fall 1999, Session 310. (local)
This is as much of a look at product development in general, although the
focus is on reliability.
Required Reading:
- Text Chapter 5: Written Requirements
- Taub, "Elevator Technology: inspiring many everyday leaps of
faith," NY Times, December 3, 1998, page D-12.
(local caution -- 9.4 MB)
- Paumgarten, N., "Up and then down," The New Yorker, April
21, 2008. (local)
Supplemental Reading:
- Strakosch, George (ed.), The Vertical Transportation Handbook, 3rd
Ed., Wiley, 1998
- Barker, F.,
Is 2000
feet per minute enough?, Elevator World, March 1997. (local)
Discussion of advanced elevatoring performance techniques.
- Connecting mathematics with work and life:
Scheduling
Elevators (local)
Why zoned elevators work.
Videos:
Required Reading:
Strongly recommended reading:
Supplemental Reading:
- Douglass, "The Unified Modeling
Language", Embedded Systems Conference, Fall 1999. (local)
- Douglass, "UML Class
Diagrams", Embedded Systems Programming, February 2003. (local)
- Douglass, "UML Sequence
Diagrams", Embedded Systems Programming, June 2003. (local)
- Douglass, "UML
Statecharts", Embedded Systems Programming, September 2003. (local)
- Mellor, S., "The case for using use
cases", Embedded Systems Conference, Fall 1999. (local)
- Moore, A., "Capturing requirements
and building solutions - why a single architecture is not enough",
Embedded Systems Conference, Fall 1999. (local)
- Full UML 1.5 specification (for hard-core junkies!):
OMG Original (local)
Required Reading:
- Text Chapter 7: Tracing requirements to test
- Text Chapter 13: Statecharts and modes
Supplemental Reading:
- Douglass, "UML
Statecharts," Embedded Systems Programming, January 1999, pp.
22-42 (local)
- Murphy, N., "Control the
source," Embedded Systems Programming, March 2004.
- Barr, M., "Code of
conduct," Embedded Systems Programming, May 2002. (local)
Proposes a simple set of minimal development activities.
Required Reading:
- Text Chapter 10: Software Architecture
- Text Chapter 11: Modularity
- Kvaser AB, "What is a distributed embedded control system", (local)
A brief look at centralized vs. embedded tradeoffs.
- Kassakian, J., H. Wolf, J. Miller & C. Hurton, "Automotive
electrical systems circa 2005", IEEE Spectrum, August 1996, pp. 22-27. (IEEE) (local)
Discusses potential evolution of automobiles to 42V DC instead of 12V
DC.
Suggested Reading:
- Kopetz Chapter 2
- Ganssle, "Keep it small", Embedded Systems Programming,
September 1998. (local)
Argues that breaking a system into small pieces lowers total design
complexity.
Supplemental Reading:
Required Reading:
- Text Chapter 17: Coding Style
- Text Chapter 22: Peer Reviews
Strongly Suggested Reading (back-up material for lecture):
- Ganssle, "Skip bugging to speed
delivery," Embedded Systems Design, January 2009. (local)
- Weigers, "Improving Quality
Through Software Inspections," Software Development, April
1995. (local)
- Ebert, C. & Capers Jones, C., "Embedded software: facts, figures,
and future," IEEE Computer, April 2009. (IEEE |
local).
Suggested Reading:
- Ambler, S., "Writing robust Java
code: the Ambysoft coding standards for Java," Ambysoft, 2000. (local)
- Boehm, B. & Basili, V., "Software
Defect Reduction Top 10 List", IEEE Computer, January 2001. (local)
Concise top-10 format list of observations from trying to understand what
causes defects in software projects. Good stuff.
- Brands, "Improving the software process for embedded systems,"
Fall Embedded Systems Conference, 1999. (local)
Discusses adoption of CMM by an embedded systems group
- Bromback, R., Weinfurther, J., Fenderson, A. & King, D., "Robust
embedded software begins with high-quality requirements", SAE 2002-01-0873
(local)
List of design review checklist items based on experience at Ford
- Ganssle, A Firmware
Development Standard, Version 1.2, Jan. 2004. (local)
- Ganssle, "Faster,
better code," Embedded Systems Programming, August 1998. (local)
- Madau, D., "Rules for defensive C
programming," Embedded Systems Programming, December 1999. (local)
- Weigers, K., Peer Reviews in Software: A Practical Guide,
Addison-Wesley, 2001.
Supplemental Reading:
- Brenner, "Ten project Haiku", Amplifying Your
Effectiveness, Dorset Press, 2000.
(local)
Insightful, but brief, commentary on project management
- Baldwin, "An
Abbreviated C++ Code Inspection Checklist, 1992. (local)
Code inspections and walkthroughs are the most cost-effective method for
improving software quality.
- Ganssle, "On Management," Embedded Systems Programming,
October 1999. (local)
- O'Neill, Peer
Reviews. (local)
Gives a general process for peer reviews. There are more comprehensive
treatments available (e.g., a book by Gerry Weinberg), but this has the virtues
of being brief and available on the Web.
Required Reading:
- Text Chapter 23: Testing and test plans
- Text Chapter 24: Issue tracking & analysis
- Whittaker, J., "What is software testing? And why is it so
hard?", IEEE Software, Jan/Feb 2000. (local)
Suggested Standards Reading:
- IEEE Std 829-1998. IEEE standard for software test documentation.
(IEEE)
Suggested Reading:
- Beatty, S., "Where
Testing Fails, Part 1," Embedded Systems Programming (web
supplement), August 2003. (local)
- Beatty, "Sensible software
testing", Embedded Systems Programming, August 2000. (local)
This is an intro level to software testing, and it focuses mostly on
module/small program testing practice than overall testing methodologies.
Supplemental Reading:
Required Reading:
- Yeh, "Design Considerations in Boeing 777 Fly-By-Wire Computers,"
1998 (local)
Required Reading:
Suggested Reading:
- Kopetz Chapter 7
- Leen, Heffernan & Dunne, "Digital networks in the automotive
vehicle," Computing & Control Engineering Journal, Dec. 1999. (local)
- Canosa, "Networking Protocols for
Consumer Internet Appliances", Questra Corp, Fall 1999 Embedded
Systems Conference. (local)
Survey with more of a slant to consumer electronics rather than real time
control.
- Dean, A. & Upender, B., "Embedded Communication Network
Pitfalls," Embedded Systems Programming, Sept. 1997. (Web |
local)
Supplemental Reading: (most of this is material beyond topics we'll cover in
class)
- Rushby, A Comparison of
Bus Architectures for Safety-Critical Embedded Systems, Technical
report, Computer Science Laboratory, SRI International, Sep. 2001 (local)
(The portions describing the different protocols are the most relevant
portions for our discussions.)
- Canosa, "Fundamentals of
Firewire", Questra Corp., Spring 1999 Embedded Systems
Conference. (local)
A look at a protocol used for consumer video and high-bandwidth
applications.
- Canosa, USB basics, Embedded Systems Programming, June-July 1997
(local: part 1;
part 2)
Universal Serial Bus -- mostly for I/O to desktop PCs; used with consumer
product embedded systems.
- Echelon,
Introduction
to the LonWorks System, 1999. (local)
This is a high-level look at the Echelon LonTalk protocol.
- Flynn, Understanding and
using the I2C Bus, Embedded Systems Programming, November 1997. (local)
A look at a low-end embedded network, mostly for use over very short
distances (e.g., a single circuit board).
- Kalinksy & Kalinksy, "Introduction to
I2C", Embedded Systems Programming, August 2001. (local)
- Digital
Output techniques (local)
Shows circuit techniques for driving loads, several of which are applicable
to embedded network drivers as well.
- Kerkes, "Real-Time
Ethernet," Embedded Systems Programming, January 2001. (local)
A master-slave protocol running on top of Ethernet.
- Koopman, "Critical Embedded Automotive Networks," IEEE
Micro, July 2002. (IEEE |
local)
- Madan, "Overview of control networking technology," Echelon
Corporation. (local)
Required Reading:
- Schill, Overview of the CAN Protocol, Embedded Systems Programming,
September 1997. (local)
Suggested Reading:
- Bosch, CAN Specification,
Version 2, 1991. (local)
This is the complete CAN specification. (note: "Robert Bosch GmbH"
as an author is a German Corporation, not a person).
- Fredriksson, "CAN for critical embedded automotive networks,"
IEEE Micro, July 2002. (IEEE |
local)
Supplemental Reading:
- Ferreira, J.; Pedreiras, P.; Almeida, L.; Fonseca, J.A., "The FTT-CAN
protocol for flexibility in safety-critical systems," IEEE Micro,
July 2002. (IEEE |
local)
- Zeltwanger, "CANopen for
embedded networking", Embedded Systems Conference, Fall 1999.
(IEEE |
local)
CANopen is an upper-level protocol stack built on top of CAN.
- Zuberi & Shin, "Real-time decentralized control with CAN,"
Proc. IEEE Conference on Emerging Technologies and Factory Automation,
Nov 1996.1996. (Web |
local)
Required Reading:
- Ellims, Parker & Zurlo, "Design and analysis of a robust real-time
engine control network," IEEE Micro, July/August 2002. (IEEE |
local).
Suggested Reading:
- Stewart & Barr, "Rate Monotonic Scheduling," Embedded
Systems Programming, March 2002. (Web | local)
This is a quick brush-up if you've forgotten what RM is about.
- Tindell & Burns, Guaranteeing Message Latencies on
Control Area Network (CAN), 1994. (local)
Believe it or not, CAN opponents say it is impossible to predict maximum
message response time in CAN; this article show that it is in fact possible to
analytically bound the worst case.
Supplemental Reading:
- Dean, A. & Upender, B., "Embedded Communication Network
Pitfalls," Embedded Systems Programming, Sept. 1997. (Web |
local)
A summary of issues such as message clumping.
Required Reading:
- Text Chapter 16: How much assembly language is enough?
- Text Chapter 18: The cost of nearly full resources
- Ganssle, "Firmware basics for the boss (part
| local),"
Embedded Systems Programming, Jan 2004
Discusses firmware costs at beginning of part 1, then discusses good
practices for development.
- Gansle, "Getting disciplined about embedded software
development," March 2010. (Web
| local)
Suggested Reading:
- Turley, J., "Silicon
101," Embedded Systems Programming, January 2004. (local)
Just the hardware side of the economics equation; see the Ganssle articles
below for the software side.
- Ganssle, "Firmware basics for the boss (part1)
(part2),"
Embedded Systems Programming, Jan & Feb 2004
Discusses firmware costs at beginning of part 1, then discusses good
practices for development.
Supplemental Reading:
- Boehm, B., "The high cost of software," In E. Horowitz, editor,
Practical Strategies for Developing Large Software Systems, pages 3-15.
Addison-Wesley, Reading, MA, 1975. (local)
Required Reading:
Suggested Reading:
- If you didn't take 18-348 or 18-349, we strong suggest you
read:
Obenza, "Guaranteeing real-time performance using RMA," Embedded
Systems Conference, Summer 2000 (local)
- Kopetz Chapters 9, 10, 11
- Ellison, K., "Scheduling algorithms for systems with hard
deadlines," Embedded Systems Programming, April 1995 (local)
- Madan, Overview of Control Networking Technology, Echelon Corp. (local)
- Kalinsky, "A survey of task schedulers," Embedded Systems
Conference, Fall 1999. (local)
Supplemental Reading:
- Beatty, S., "Where
Testing Fails, Part 2," Embedded Systems Programming (web
supplement), August 2003. (local)
- Bruyer, D., "Sizing throughput requirements on real time
systems", Embedded Systems Programming, Sept. 1999 (local).
Another look at the timing problems caused by interrupt service routines and
caches.
- Cantrell, "A
look at the IEEE 1451 Standard", Circuit Cellar INK, February
1999. (local |
local)
A look at a serial bus optimized for smart/distributed I/O.
- Dean, A., Shen, J. P. "Techniques for
Software Thread Integration in Real-Time Embedded Systems,"
Real-Time Systems Symposium, Madrid, Spain, December 2-4, 1998. (local)
Discusses using a tool to automatically insert software I/O routines as a
"guest" thread with other software in superscalar code to get polled
I/O "for free".
- Dibble, P., "Real Time Implementation Techniques," Embedded
Systems Programming, August 1995. (local)
- Hawley, "Selecting a Real-time Operating System," Embedded
Systems Conferent, Fall 1999. (local)
- Lemieux, The OSEK/VDX standard, Embedded Systems Programming, March
2000 (local)
This is a contender for an automotive operating system standard.
- Livani, M. & Kaiser, J., "EDF consensus on CAN bus
access for dynamic real-time applications", IPPS/SPDP'98 Workshops
Held in conjunction with the 12th International Parallel Processing Symposium
and 9th Symposium on Parallel and Distributed Processing, 1998. (local)
- Ready, J. & D. Barnett, "Tradeoffs drive embedded OS choice in
communications designs", Electronic Design, May 31, 1999, pp.
38-48. (local)
- Toeppe S. & Ranville, S., "Commercial RTOSes for Automotive
Applications", Embedded Systems Programming, July 2000, pp.
108-123. (local)
A look at RTOS & interrupt service overhead issues from an automotive
perspective.
Required Reading:
- Text Chapter 21: Static checking and compiler warnings
- Text Chapter 25: Run-time error logs
Standards:
- IEEE Std. 1012-1998, IEEE standard for software verification and
validation . (IEEE)
- IEEE Std 1483-2000, IEEE standard for verification of vital functions
in processor-based systems used in rail transit control . (IEEE)
Suggested Reading:
- Ganssle, J., "Mars ate my
spacecraft!", Embedded Systems Conference SV, May 2011.
- Knutson, C., "Verification and Validation for Embedded Systems", Embedded
Systems Conference, Fall 2000. (local)
- Kopetz Chapter 12
- Boehm, B. & Basili, V., "Software
Defect Reduction Top 10 List", IEEE Computer, January 2001. (local)
Concise top-10 format list of observations from trying to understand what
causes defects in software projects. Good stuff.
- Capitano, Anderson & Sverzhinsky, "Using accelerated aging to
evaluate automobile components," Evaluation Engineering, May 2000.
(local)
Accelerated aging helps find the weak spots in a design.
- Desai, "UL
1998 - Software in programmable components", Embedded Systems
Conference, Spring 2000. (local)
This is a software standard for consumer products that might be safety
critical.
- Jetley & Anderson, "Using static
analysis to evaluate software in medical devices,"
Embedded.com, April 14 2008. (local)
- Jones, "Introduction to
Lint," Embedded Systems Programming, May 2002. (local)
- MISRA automotive software
safety documents
Not really a process, but a set of checklist items to tell if you're
covering the important parts, along with comprehensive backup reports to
explain the isusses.
- Royal Technical Commision on Aviation, RTCA/DO-178B: Software
Considerations in Airborne Systems and Equipment Certification, Document,
1992. (local)
This is the standard used for aviation software. It's a bit long, but
skimming it will give you the idea of what designers of such systems do.
- Strock, "Look who's shaking", Evaluation Engineering, July
2000. (local)
"Shake and bake" environmental testing is an important part of
embedded product evaluation.
Supplemental Reading:
- Gluch, Obenza & Weinstock, "Model-based
verification of software and firmware," Embedded Systems
Conference, Spring 2000 (local)
Describes model-based checking, which is a maturing tool-based approach to
formal verification.
- Lakshminarayanan, V., "Minimizing Failures in electronic systems by
design", EDN, August 3, 2000, pp. 87-104. (local)
- Palshikar, G., "An
introduction to model checking", Embedded Systems Programming,
March 2004. (local)
Required Reading:
- Text Chapter 26: Dependability
Standards:
- IEEE Std. 1413-1998, IEEE Standard Methodology for Reliability
Prediction and Assessment for Electronic Systems and Equipment. (IEEE)
A rather skimpy treatment at the high level, but it is at least a
standard.
Suggested Reading:
- Kalinksy, D., "Design patterns for high
availability," Embedded Systems Programming, August 2002. (local).
A high level survey of various software fault tolerance approaches.
- Avizienis, Laprie & Randell, "Fundamental Concepts of
Dependability", 2001 (local)
- Kopetz Chapter 6
- Nelson, V., "Fault-tolerant computing: fundamental concepts",
IEEE Computer, July 1990. (IEEE) (local)
- Blanchard et al., Systems Engineering and Analysis, 1990, chapter 13
on reliability. (local)
- Siewiorek, D., "Fault tolerance in commercial computers", IEEE
Computer, July 1990. (IEEE) (local)
- Punches, K., "Design for Reliability: a checklist", EDN,
November 21, 1996. (local)
Gives a good intro-level overview to electronic reliability calculations and
methods.
- Meyer, B., "Every
little bit counts: toware more reliable software", IEEE
Computer, November 1999. (IEEE) (local)
A good synopsis of current techniques for reliable software.
Supplemental Reading:
- Lakshmin, F., "Minimizing failures in electronic systems by
design", EDN, August 3, 2000. (local)
Hardware failure mode discussion with some nice pictures.
- Reibman, A. & Veeraraghavan, M., "Reliability
modeling: an overview for system designers", IEEE Computer,
April 1991. (local)
- Butler, R., A
Primer on Architectural Level Fault Tolerance, NASA/TM-2008-215108,
Langley Research Center, Hampton VA., Feb. 2008. (local)
Required Reading:
- Text Chapter 28: Safety
- Nancy G. Leveson and Clark S. Turner. An Investigation of the Therac-25
Accidents. IEEE Computer, Vol. 26, No. 7, July 1993, pp.18-41. (
local) (IEEE)
Suggested Reading:
- Gannsle, "Disaster", Embedded
Systems Programming, May 1998. (local)
- Knutson, "Safety First: avoiding
software mishaps", Embedded Systems Programming, November 2000.
(local)
This is an expansion on the themes of the Gannsle article and give some
reasonable advice for how to think about designing critical systems.
- Storey, Safety-Critical
Computer Systems, Addison-Wesley, 1996, Chapter 3. (local)
- Dunn, "Designing safety-critical computer systems," IEEE
Computer, Nov. 2003. (local)
- Palca, J., "Despite glitches, electronics make cars safer," NPR,
Feb 12, 2010. (local |
web)
- Winter, D., "Zero Fatalities: Can Auto Makers Eliminate Vehicle Deaths
By 2020?", Wardsauto.com, Feb 26, 2010. (Web |
local)
Supplemental Reading:
- Brown, "Solving the software safety paradox," Embedded Systems
Programming, Dec. 1998. (local)
- Czerny, et al., "A software safety process for safety-critical
advanced automotive systems," 21st International System Safety
Conference, 2003. (local)
- Ganssle, "As good as it gets," Embedded Systems
Programming, Jan. 2002. (local)
- Leveson, N., "System
safety in computer-controlled automotive systems", SAE Congress, March
2000. (local)
This is an updated viewpoint, which concludes that ultimately the real
problem is system-level design rather than just software design, and that
improving software techniques will leave requirements defects as the largest
source of problems.
- Nisley, "Life Support," Dr. Dobbs, November 2001. (local)
An accessible argument about why embedded software is life critical and a
caution about embedded internet security/safety.
- Tribble, "Software safety," IEEE Software, July 2002. (local)
Short and sweet list of issues and predictions for the future from a
software engineering point of view.
- Williamson, "Software safety and reliability," IEEE
Potentials, Oct. 1997. (local)
- Leveson, "Software Safety: why, what, and how", Computing
Surveys, June 1986. (local)
You can think of this as the short version of the Safeware book mentioned
below.
- Leveson, Safeware,
Addison-Wesley, 1995
Graduate level text. This is the standard work on software safety. It has a
wider variety of material than Storey's book, but is writ at a somewhat higher
level.
- Storey, Safety-Critical
Computer Systems, Addison-Wesley, 1996, the whole book.
Undergraduate text. This is a practical engineering approach for critical
system design.
Required Reading:
- Hinerman, "Pardon Me, Do You Have the Time?", Embedded Systems
Programming, August 2000. (local)
- Kopetz Section 3.2
I was unable to find a reasonable non-book publication with the material we
need to cover. A copy of Kopetz is on reserve via the library if you did not
buy one.
The really important pages to read are pp. 52-55, which you can find here:
(local of 4 pages).
Suggested Reading:
- Kopetz Chapter 3
We're covering the majority of this chapter in the lecture; if it is not
crystal clear from the lecture then the book should help.
Supplemental Reading:
Required Reading:
Required Reading:
- Text Chapter 29: Watchdog Timers
- Text Chapter 30: System Reset
Suggested Reading:
- Slager, M., "Verifying
certified software: making the most of the tools you have", EE Times
on-line 9/6/2011. (Web)
- Koopman, P., "Critical Embedded
Automotive Networks," IEEE Micro, July-August 2002.
- Koopman, P. (ed.), Special Issue on Critical Embedded Automotive Networks,
IEEE Micro, July-August 2002. (Issue is available from:
IEEE Micro
Archives; IEEE Xplore Archives
- Redmill, "IEC 61508: Principles and use in the management of
safety," Computing & Control Engineering Journal, Oct 1998. (local)
Required Reading:
- Text Chapter 15: User Interface Design
Suggested Reading:
- Wise, J., "What
really happened aboard Air France 447," Popular Mechanics, December
2011. (local)
- Murphy, "Safe systems
through better user interfaces," Embedded Systems Programming,
August 1998. (local)
- Johnson, "Understanding user interface design rules," EE Times,
March 2011 (Web
part 1 |
Web
part 2 || local)
- Essay about averages and variations of population sizes
On Average
- Tilley, A., The Measure of Man and Woman, Whitney Library of Design,
1993.
Sample tables available locally (.pdf)
An update of a classic book-- one-stop shopping for anthropometry.
Supplemental Reading:
- Nielsen, J., Usability Engineering, Academic Press Professional,
1993.
Chapter 5 has a list of usability heuristics.
- Maddox, "Designing Medical
Devices to Minimize Human Error," Medical Device & Diagnostic
Industry Magazine, May 1997. (local)
- Murphy, N., "Mechanical vs. digital: a GUI isn't always the
answer," embedded.com, Jan 11, 2009. (Web |
local)
- NUREG-0700, Human-System Interface Design Review Guidelines, US Nuclear
Regulatory Commission, (Web
| local)
Required Reading:
- Text Chapter 27: Security
Suggested Reading:
Supplemental Reading:
- K. Koscher, A. Czeskis, F. Roesner, S. Patel, T. Kohno (University of
Washington), S. Checkoway, D. McCoy, B. Kantor, D. Anderson, H. Shacham, S.
Savage (University of California, San Diego, "Experimental Security
Analysis of a Modern Automobile." . IEEE Symposium on Security and
Privacy, May 16-19, 2010. (local)
- Casterline, R., "Serving up Web pages
from an Embedded Device", Embedded Systems Conference, Fall
2000. (local)
- Canosa, "Network Protocols for the
Home", Embedded Systems Programming, November 2000. (local)
- Fisher, "Protecting Binary
Executables", Embedded Systems Programming, February 2000. (local)
- Koopman, P., "Embedded System
Security," IEEE Computer, July 2004. (local)
- Morgan, S., "Jini to the
Rescue", IEEE Spectrum, April 2000, pp. 44-49. (IEEE)
(local)
Required Reading:
- McFarland, "Ethics and the safety of computer systems," IEEE
Computer, January 1991. (local)
Suggested Reading:
- Costlow, "The ethical organization," IEEE Spectrum, Dec.
2002 (IEEE |
local)
- "GM and the Law", The Economist, July 17, 1999, pg. 16 (local)
GM was awarded damages over a cost-driven feature vs. risk decision.
- Ganssle, "Who's
at fault when code kills?", Embedded.com, Nov 24, 2004. (local)
- Godbold, "What has ethics to do with me? I'm an engineer,"
Engineeringing Management Journal, April 1999. (IEEE) (local)
Brief summary of strengths and weaknesses of different ethical frameworks; a
few guidelines for resolving uncertain situations.
- Gotterbarn, "How the new software engineering code of ethics affects
you," IEEE Software, Nov/Dec 1999. (local)
- Koopman, "On being the bearer
of bad news", The Institute, IEEE, vol. 20, no. 6, pg. 15, June
1996.
Thoughts on how to handle being stuck in a difficult professional situation
-- see, it's that scar over there...
Required Reading:
- Crenshaw, "Implementing CRCs," Embedded Systems
Programming, January 1992. (local)
Suggested Reading:
- Koopman, P. & Chakravarty, T., "Cyclic
Redundancy Code (CRC) Polynomial Selection For Embedded Networks,"
DSN04, June 2004. (local)
- Barr, "Leveraging the
'Net", (Parity & Checksums), Embedded Systems Programming,,
November 1999. (local)
- Barr, "For
the Love of the Game" (CRCs), Embedded Systems Programming,
December 1999. (local)
- Barr, "Slow and steady never
lost the race" (CRCs),Embedded Systems Programming, January
2000. (local)
Supplemental Reading:
Required Reading:
- Bannatyne, R., Time Triggered Protocol: TTP/C, Embedded Systems
Programming, March 1999. (local)
Suggested Reading:
- Kopetz Chapter 8
(Note: Kopetz invented TTP, so he is the authoritative source for TTP
info)
- Kopetz, H., Holzmann, M. & Elmeureich, W., "A
Universal Smart Transducer Interface: TTP/A", TU Vienna, July 1999.
- Maier, Bauer, Stoger & Poledna, "Time-triggered architecture: a
consistent computing platform," IEEE Micro, July-August 2002. (IEEE |
local)
- Koopman, P., "Critical Embedded
Automotive Networks," IEEE Micro, July-August 2002. (local)
Supplemental Reading:
TTP Vs. FlexRay http://www.eetimes.com/story/OEG20010927S0080
Additional relevant topic areas not covered in this course:
Abstraction & Architecture
Strongly Suggested Reading:
- Garlan, D. & M. Shaw,
An
introduction to software architecture, Carnegie Mellon University Technical
Report, CMU-CS-94-166, January 1994. (local)
This is a seminal paper on the area. Read it for high-level understanding
through Chapter 3 -- the rest is details.
Suggested Reading:
Supplemental Reading:
- de Champeaux, D., D. Lea, & P. Faure,
Object-Oriented System
Development, 1993.
Complete book on OO Design on-line.
- Rechtin, E. & M. Maier, The Art of Systems Architecting, CRC Press,
1996.
One of the few books that talks about how to pick the right architecture for
your system.
Software Management & Metrics:
- Brooks, The Mythical Man-Month, Datamation, 1974. (local)
This is a magazine-article-length version of the famous book.
- Ganssle, "Metrics for
developers", Embedded Systems Programming, June 2002. (local)
- Ganssle, "Measuring bugs,"
Embedded Systems Programming, July 2002. (local)
- Briggs, "Manage your embedded
project," Embedded Systems Programming, April 2000. (local)
- Ganssle, "Keep it small," Embedded Systems Programming,
September 1998. (local)
- Gannsle, "On Management", Embedded Systems Programming,
October 1999. (local)
Discussion of management issues for embedded software projects.
TCN (Train Control Network):
- Kirrmann, H., "The IEC/IEEE Train Communication Network", IEEE
Micro, March 2001, pp. 81-92. (local)
- Fabri, A., Nieva, T., Umiliacchi, P., "Use
of the Internet for Remote Train Monitoring and Control: the ROSIN
Project," Rail Technology '99. (local)
Software & System Engineering:
- Boehm, "A spiral model of software development and enhancement",
IEEE Computer, May 1988, pg. 61. (local)
- Nossal & Lang, "Model-based system development", IEEE
Micro, July 2002. (IEEE |
local)
- Hewson, J., "Cross-functional
pair programming," Embedded Systems Programming, January 2004.
(For another take, see also: Ganssle, J., "XP
deconstructed," Embedded Systems Programming, January 2004.
- Paulk, "Using the software CMM
in small organizations", The Joint 1998 Proceedings of the Pacific
Northwest Software Quality Conference and the Eighth International Conference
on Software Quality, Portland, Oregon, 13-14 October 1998, pp. 350-361. (local).
Gives advice for using CMM when you have a small project.
- IEEE standard for application and management of the systems engineering
process, IEEE std 1220-1998, December 8, 1998. (local)
This is a recommended practice for system engineering and project
management, and in general is a comercial practice version of the older MIL-STD
499.
- Stewart, "Thirty pitfalls for
real-time software developers, Part 1", Embedded Systems
Programming, October 1999. (local)
Stewart, "More
pitfalls for real-time software developers", Embedded Systems
Programming, November 1999. (local)
A useful list of pitfalls in embedded software development.
Back to course home page.