Class Notes (pdf)
Leveson, The Therac-25 Accident (pdf)
Flying in Place: The FAA's Air Control Fiasco (pdf)
Augustine, Yes But Will it Work in Theory?
Brooks, No Silver Bullet
Davis, Software Lemmingineering
Leveson,
The Role of Software in Spacecraft Accidents
Class Notes (pdf)
Spiral Model
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
Martin, eXtreme Programming
Highsmith and Cockburn, Agile Software Development: The Business of Innovation
Cockburn and Highsmith, Agile Software
Development: The People Factor
Bollinger, The Interplay of Art and Science ...
Question for Class Discussion: What project characteristics are
most important when selecting an appropriate life cycle model?
Class Notes (pdf)
Lawrence, Wiegers, Ebert: The Top Risks of Requirements Engineering
Leishman and Cook, Requirements Risks Can Drown Software Projects
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)
Leveson, Intent Specifications
Class Notes (pdf)
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
Class Notes (pdf)
Garland and Shaw, Software Architecture
Hatton, Does OO Sync with How We Think?
Meyer, A Really Good Idea
Vessey, Requirements Specification: Learning Object,
Process, and Data Methodologies
Ledgard, The Emperor with No Clothes
Carpenter, Avionics Integration for CNS/ATM
Budgen, Software Design Methods ...
Class Notes
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)
Class Notes
Kearney, Software Complexity Measurement
Extra reading:
Armour, Ten Unmyths of Project Estimation
Class Notes (pdf)
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)
Yamaura, How to Design Practical Test Cases
Yamaura, Why Johnny Can't Test
Hoare, An Axiomatic Basis for Computer Programming
Lipton, Perlis, DeMillo, Social Processes ...
Of Crazy Numbers and Release Criteria
Class Notes
Extra page for class notes
Naiditch, Selecting a Programming Language for
Your Project
Ziegler, Comparing Development Costs of C and Ada
Glass, One Giant Step Backward
Class Notes Part 1
The following papers are for discussion on Dec. 8. You need
not critique them, only a short summary is required.
Leveson, A New Accident Model for Engineering Safer Systems
Leveson, A Systems Theoretic Approach to Safety
Engineering (read only the case study, not the intro)
Leveson, A Systems-Theoretic Approach to
Safety in Software-Intensive Systems (read only the case study,
not the intro)
Class Notes
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 the last week is equivalent to a
"take home final exam" and includes the following four papers
for the usual critique:
Leveson, Software Engineering ...
Shapiro, Splitting the Difference ...
Wirth, A Plea for Lean Software
Bach, What Software Reality is Really About