16.355 Software Engineering Concepts

Fall 2013 Class Syllabus for 16.355
Fall 2013 Class Syllabus for 16.842

General Reading Material for 16.842:

Guidelines for Development of Civil Aircraft and Systems
NASA Systems Engineering Handbook, 1995
NASA Systems Engineering Handbook, 2007
You will also read parts of Engineering a Safer World, which you can download for free from http://mitpress.mit.edu/books/engineering-safer-world


Sept. 6: Introducing The Problem

Class Notes

Reading only. Come to second class meeting prepared to discuss:

Leveson, The Therac-25 Accident (pdf)
Flying in Place: The FAA's Air Control Fiasco (pdf)
Davis, Software Lemmingineering
Brooks, No Silver Bullet
Leveson, The Role of Software in Spacecraft Accidents
Software and the Challenge of Flight Control

Augustine, Yes But Will it Work in Theory?
Brooks, No Silver Bullet
Leveson, The Role of Software in Spacecraft Accidents
Flying in Place: The FAA's Air Control Fiasco (pdf)
Software and the Challenge of Flight Control

Sept. 13: System Engineering and Systems Theory

Class Notes

16.355 and 16.842: Read only
Engineering a Safer World: Chapter 3
NASA-1995: 2.1 to 2.4

16.355 and 16.842: Read and summarize only
Booten and Ramo, The Development of System Engineering
Papers on history of SE by Miles, Machol and Miles, Pickering
Leveson, System of Systems

16.355 and 16.842: Read, summarize, and critique
Excerpts from a Mike Griffin paper
Griffin, How Do We Fix System Engineering

Sept. 27: Process and Life Cycle Models

Class Notes
Spiral Model

16.355 and 16.842: Read only
Wikipedia on Software Development Processes

16.355 read, summarize, and critique; 16.842 read only:
Paulk, et.al, The Capability Maturity Model for Software
Bach, The Immaturity of CMM
Bach, Enough About Process: What we Need are Heroes
Gray, No Cowboy Programmers!
Mackey, Mars versus Venus
McConnell, Cargo Cult Software Engineering

16.355 read, summarize, and critique
Martin, eXtreme Programming
Highsmith and Cockburn, Agile Software Development: The Business of Innovation
Pressman,Can Internet-Based Applications be Engineered?
email about Agile experiences

16.842 read,summarize, and critique
Learning from Failure in Systems Engineering

16.842 read only
ARP 4754: p. 16-19, 19-21, 25-31
NASA-1995: 2.5, 3., 4.7
NASA-2007: 6.5
email about Agile experiences

Written Question for 16.842:
Is the V model the best for system engineering or could system engineering learn from software engineering's rejection of the waterfall (V) model?

Oct. 4: Requirements, Stakeholders, and Specification

Class Notes

16.355 and 16.842: Read, summarize, and answer the question: What types of requirements problems have you run into on projects?

Lawrence, Wiegers, Ebert: The Top Risks of Requirements Engineering
Leishman and Cook, Requirements Risks Can Drown Software Projects

16.355: Read and summarize.
Wing, A Specifier's Introduction to Formal Methods (This one may be tough reading for some of you -- you can skim it if you are feeling overwhelmed by the math)

16.355 and 16.842: Read and summarize only: Leveson, Intent Specifications

16.842: Read and summarize
House of Quality

16.842: Read only
ARP 4754: p. 51-65
NASA-1995: 6.8, App. B.7
NASA-2007: 4.1, 4.2, 6.2

Oct. 11: Kathryn Weiss, JPL

Oct. 18: System Safety and Risk Management

Class Notes
Class Notes with answers

16.355 and 16.842: Read and summarize only.
Leveson, A New Accident Model for Engineering Safer Systems
Engineering a Safer World, Chapter 8 pp. 211-231.

16.833 and 16.842

STPA and Requirements Assignment Instructions . Due November 1.
STPA Primer (for reference if you need it in doing the assignment)

16.842 Reading
ARP 4754: pp. 23-24, 31-37, 97-109
NASA-1995: 4.6, 6.2
NASA-2007: pp. 63-64, Sections 4.4.2, 6.4, App. G

Oct. 25: Human Factors

Class Notes

16.355 and 16.864 Read and summarize:
Billings, Aviation Automation: The Search for a Human-Centered Approach
Engineering a Safer World, pp. 273-306

16.842: Reading
NASA-2007: pp. 67-69

Nov. 1: Building Confidence (Testing, Analysis, QA, Reviews)

Class Notes

16.355 and 16.842 Read, summarize, and critique
Dawn Schaible and Keith Britton, Testing in NASA Human-Rated Spacecraft Programs: How Much is Just Enough?, SDM Master's thesis, MIT, Feb. 2003 (only chapters 2, 4, and 5 are required reading)
Hoare, An Axiomatic Basis for Computer Programming
Lipton, Perlis, DeMillo, Social Processes ...

16.842 Reading APR 4754: pp. 22, 37-38, 66-71, 75-76
NASA-1995: 4.8, 6.1, 6.3, 6.6
NASA-2007: 2.4 (p. 33), 3.0-1, 3.0-2, p. 64-65, 5.3, 5.4, App. N

Nov. 8 Software Design

Class Notes
Class Notes

16.355: Read, summarize, and critique
Garland and Shaw, Software Architecture
Budgen, Software Design Methods ...
Parnas, On the Criteria to be used ... (html)
Parnas, Designing Software for Ease of Extension and Contraction
Wirth, Program Development by Successive Refinement
Bergland, A Guided Tour of Program Design Methodologies

16.842 Reading NASA-1995: 5.1
NASA-2007: 4.0, 4.0-1, 4.3, 4.4, 6.8

Nov. 15: Metrics and Reliability Assessment

Class Notes

16.355: Read and summarize
Kearney, Software Complexity Measurement
Armour, Ten Unmyths of Project Estimation

16.842: Read
NASA-1995: 5.2, 5.4, 5.4

Nov. 22 COTS and Reuse

Class Notes

16.355: Read, summarize, and critique
Ariane 5 Accident Report (html)
Kruger, Software Reuse [This is an excellent survey of reuse, but it is also very long so you can just skim it if you are not interested in becoming an expert on the topic. You need not write a summary of the Kruger paper.]
Weyuker, Testing Components
Glass, Reuse: What's Wrong with This Picture?
Leveson and Weiss, Making Embedded Software Reuse Practical and Safe
Gomez, Lessons Learned from Two Years of On-Orbit GPS Experience on International Space Station
OPTIONAL: Goodman, Lessons Learned from Flights of "Off the Shelf" Aviation Navigation Units on the Space Shuttle (Not required but may be of interest to those working with COTS products)

Nov. 29 Holiday

Dec. 6: Team Organization and People Management

Class Notes

16.355: Read only, no summary or critique
Personality Types (additional class notes)
Ferdinandi, Facilitating Communication
McConnell, Problem Programmers
Rettig, Software Teams
Williams, Strengthening the Case for Pair Programming
Howard, Software Project Management

The writing assignment for 16.355 for the last week is equivalent to a "take home final exam" and includes the following three papers for the usual summary and citique except for the Leveson one:
Shapiro, Splitting the Difference ...
Bach, What Software Reality is Really About
Leveson, Software Engineering ... Do not critique my paper. Instead write a page or so on what you would have written if you were asked to do what I was

Miscellaneous Reading for 16.842:
NASA-1995: 4.2-4.5 (management), 6.4 (maintainability), 6.5 (logistics)
NASA-2007: p. 65 (logistics), 65-66 (maintainability), 66-67 (producibility)