ESD.355
Software Engineering Concepts
Fall 2005
Topics
- Introducing The Problem
- Process and Life Cycle Models
- Requirements and Specification
- Design
- Design (cont.)
- COTS and Reuse
- Metrics and Reliability Assessment
- Building Confidence (Testing, Analysis, QA, Reviews)
- Selecting a Programming Language
- Team Organization and People Management
- Software and System Safety
- Putting It All Together
Readings
- Lewyn, Mark. “Flying in Place: The FAA’s Air Control Fiasco.” Business Week (April 26, 1998): 87-88.
- Brooks, Frederick, Jr. “No Silver Bullet.” In Information Processing . Edited by H. J. Kugler. North-holland, BV: Elsevia Science Publishers, 1986. ISBN: 0444700773.
- Davis, Alan. “Software Lemmingineering.” IEEE Magazine (September 1993): 79-82.
- Ewusi-Mensah, Kweku. “Critical Issues in Abandoned Information Systems Development Projects.” Communications of the ACM 50, no. 9 (September 1997).
- ———. “Enough About Process: What we Need are Heroes.” IEEE Software (March 1995): 96-98.
- Gray, Lewis. “No Cowboy Programmers!” Abelia Corporation; Computer (April 1998).
- Mackey, Karen. “Mars versus Venus.” IEEE Software (May/June 2000): 14-15.
- McConnell, Steve. “Cargo Cult Software Engineering.” IEEE Software (March/April 2000): 11-13.
- Martin, Robert C. “eXtreme Programming.” IEEE Software (July/August 2000): 12-13.
- Highsmith, and Cockburn. “Agile Software Development: The Business of Innovation.” Computer (September 2001): 120-122.
- ———. “Agile Software Development: The People Factor.” Computer (November 2001): 131-133.
- Pressman. “Can Internet-Based Applications be Engineered?” IEEE Software (September/October 1998): 104-110.
- Bollinger, Terry. “The Interplay of Art and Science in Software.” Computer (October 1997): 128-131.
- Lawrence, Brian, Karl Wiegers, and Christof Ebert. “The Top Risks of Requirements Engineering.” IEEE Software (November/December 2001): 62-63.
- Leishman and Cook. “Requirements Risks Can Drown Software Projects.” Computer (November 2001).
- Wing, Jeannette M. “A Specifier’s Introduction to Formal Methods.” Computer (September 1990): 9-23.
- Parnas, D. L. “On the Criteria To Be Used in Decomposing Systems into Modules.” Communications of the ACM 15, no. 12 (December 1972): 1053-1058.
- Wirth, Niklaus. “Program Development by Stepwise Refinement.” Communications of the ACM 14, no. 4 (April 1971): 221-227.
- Bergland, G. D. “A Guided Tour of Program Design Methodologies.” Computer (October 1981): 13-37.
- Hatton, Les. “Does OO Sync with How We Think?” IEEE Software (May/June 1998): 46-54.
- Meyer, Bertrand. “A Really Good Idea.” Computer (December 1999): 144-147.
- Vessey, Iris, and Sue A. Conger. “Requirements Specification: Learning Object, Process, and Data Methodologies.” Communications of the ACM 37, no. 5 (May 1994).
- Ledgard, Henry F. “The Emperor with No Clothes.” Communications of the ACM 44, no. 10 (October 2001).
- Carpenter, Todd. “Avionics Integration for CNS/ATM.” Computer (December 1998): 124-126.
- Budgen, David. “Software Design Methods: Life Belt or Leg Iron?” IEEE Software (September/October 1999): 136-139.
- Kruger, Charles W. “Software Reuse.” ACM Computing Surveys 24, no. 2 (June 1992).
- Weyuker, Elaine J. “Testing Components-Based Software: A Cautionary Tale.” IEEE Software (September/October 1998): 54-59.
- Glass, Robert L. “Reuse: What’s Wrong with This Picture?” IEEE Software (March/April 1998): 57-59.
- Joseph K. Kearney, Robert L. Sedlmeyer, William B. Thompson, Michael A. Gray, and Michael A. Adler. “Software Complexity Measurement.” Communications of the ACM 29, no. 11 (November 1986).
- Armour, Phillip. “Ten Unmyths of Project Estimation.” Communications of the ACM 45, no. 11 (November 2002).
- Yamaura, Tsuneo. “How to Design Practical Test Cases.” IEEE Software (November/December 1998): 30-36.
- ———. “Why Johnny Can’t Test?” IEEE Software (March/April 1998): 113-115.
- Hoare, C. A. R. “An Axiomatic Basis for Computer Programming.” Communications of the ACM 12, no. 10 (October 1969).
- Lipton, Richard J., Richard A. De Millo, and Alan J. Perlis. “Special Process and Proofs of Theorems and Programs.” Communications of the ACM 22, no. 5 (March 1979).
- Rothman, Johanna. “Of Crazy Numbers and Release Criteria.” Computer (December 1998): 127-128.
- Naiditch, David. “Selecting a Programming Language for Your Project.” IEEE AES Systems Magazine (September 1999): 11-14.
- Ziegler, Stephen F. “Comparing Development Costs of C and Ada.” March 30, 1995. (Unpublished.)
- Glass, Robert L. “One Giant Step Backward.” Communications of the ACM 46, no. 5 (May 2003): 21-23.
- Ferdinandi, Patricia L. “Facilitating Communication.” IEEE Software (September/October 1998): 92-96.
- McConnell, Steve. “Problem Programmers.” IEEE Software (March/April 1998): 126-128.
- Mantei, Marilyn. “The Effect of Programming Team Structures on Programming Tasks.” Communications of the ACM 24, no. 3 (March 1981): 106-113.
- Rettig, Marc. “Software Teams.” Communications of the ACM 33, no. 10 (October 1990): 23-27.
- Williams, Laurie, Robert R. Kessler, Ward Cunningham, and Ron Jeffries. “Strengthening the Case for Pair Programming.” IEEE Software (July/August 2000): 19-25.
- Howard, Alan. “Software Project Management.” Communications of the ACM 44, no. 5 (May 2001).
- Shapiro, Stuart. “Splitting the Difference: The Historical Necessity of Synthesis in Software Engineering.” IEEE Annals of the History of Computing 19, no. 1 (1997): 20-54.
- Wirth, Niklaus. “A Plea for Lean Software.” Computer (February 1995): 64-68.
- Bach, James. “What Software Reality is Really About.” Computer (December 1999): 148-149.
- Instead of a textbook, required reading will consist of a carefully selected set of historically important and foundational papers as well as more current ones reflecting the latest thoughts. Some papers will be technical while others will be opinions or essays. The literature is vast, and papers have been selected for their historical relevance in the development of the field or for their ability to help you critique the assumptions underlying current software/system engineering dogma.
Sources
- Course catalogue ↗Historical OpenCourseWare
- MIT OCW readings ↗
- MIT OCW calendar ↗
- MIT OCW syllabus ↗
- Historical MIT OpenCourseWare offering. Named reading entries and schedule topics are automatically extracted from the linked source pages.