Software Engineering

UC Santa Cruz – CMPE 276 – Fall 2000
T Th 12-1:45PM

Baskin Engineering 372



Jim Whitehead


BE 123


Office Hours:

Thurs 10-11, or by appointment



Software Engineering, Merlin Dorfman and Richard H. Thayer (Eds.), IEEE Computer Society Press, 1997


Week 1 – Origins of Software Engineering

Reviews due: Monday, Sept. 25

1.       “Software’s Chronic Crisis”, W. Wayt Gibbs, Scientific American, Sept. 1994, pp. 86-95. (Reader: p. 4-12)

2.        “Foreward: Software Engineering—A European Perspective”, Fredrich L. Bauer, Software Engineering—A European Perspective, R.H. Thayer, A.D. McGettrick eds., p. vi, IEEE Press, 1993. (Reader: p. 75).

3.        “Software Engineering—20 Years On and 20 Years Back”, J. N. Buxton, J. Systems and Software, Vol. 13, 1990, p. 153-155. (Reader: p. 76-77)

4.        “The Roots of Software Engineering”, Michael S. Mahoney, CWI Quarterly, 3(4), 1990, p. 325-334. (Not in reader).

5.        “No Silver Bullet: Essence and Accidents of Software Engineering”, Frederick P. Brooks, Jr., IEEE Computer, 20(4), April, 1987, pp. 10-19. (Reader: 13-22).

Total pages: 33

Week 2 – System and Software Engineering

Reviews due: Monday, Oct. 2

1.        “Engineering a Small System”, Kurt Skytte, IEEE Spectrum, March, 1994. (Reader: p. 26-28)

2.        “Software Systems Engineering: The Case for a New Discipline”, Stephen J. Andriole, Peter A. Freeman, Software Engineering Journal, May 1993. (Reader: p. 29-43)

3.        “Software: Its Nature and Qualities”, in Fundamentals of Software Engineering, Carlo Ghezzi, Medhi Jazayeri, Dino Mandrioli, Prentice-Hall, 1991, p. 17-36. (Not in reader)

Total pages: 38

Week 3 – Software Requirements and Software Architecture

Reviews due: Monday, Oct. 9

in-class, Tuesday, October 10


1.        “Software Requirements: A Tutorial”, in Software Engineering, p. 82-103.

2.        “Programming-in-the-Large Versus Programming-in-the-Small”, Frank DeRemer, Hans H. Kron, IEEE Trans. Software Engineering, 2(2), June, 1976, p. 80-86. (Not in reader)

3.        “Foundations for the Study of Software Architecture”, Dewayne E. Perry, Alexander L. Wolf, ACM Software Engineering Notes, 17(4), Oct. 1992, p. 40-52. (Not in reader)

Total pages: 33

Supplemental readings:

·         “An Introduction to Software Architecture”, David Garlan, Mary Shaw, Tech. Report CMU-CS-94-166 (Also appeared in Advances in Software Engineering and Knowledge Engineering, ed. by V.Ambriola and G.Tortora, World Scientific Publishing Company, New Jersey, 1993. (Available in PDF at:

·         “Specifying Software Requirements for Complex Systems: New Techniques and Their Application”, Kathryn L. Heninger, IEEE Trans. Software Engineering 6(1), Jan. 1980, p. 2-13.

Week 4 – Software Design and Development

Reviews due: Monday, Oct. 16

in-class, Thursday, October 19


1.        “Software Design: An Introduction”, David Budgen, in Software Engineering, p. 104-115.

2.        “On the Criteria To Be Used in Decomposing Systems into Modules”, David L. Parnas, Communications of the ACM, 15(12), December, 1972, p. 1053-1058. (Not in reader)

3.        “Designing Software for Ease of Extension and Contraction”, David L. Parnas, IEEE Trans. on Software Engineering, 5(2), March 1979, p. 128-138. (Not in reader)

4.        “Object-Oriented Development”, Linda M. Northrop, in Software Engineering, p. 148-159.

Total pages: 41

Supplemental readings:

·         “A Field Study of the Software Design Process for Large Systems”, Bill Curtis, Herb Krasner, Neil Iscoe, Communications of the ACM, 31(11), Nov. 1988, p. 1268-1287.

Week 5 – Formal Methods and Coding

Reviews due: Monday, Oct. 23

1.        “Specification Techniques for Data Abstractions”, Barbara H. Liskov, Stephen N. Zilles, IEEE Trans. on Software Engineering, 1(1), March, 1975, p. 7-19. (Not in reader)

2.        “A Review of Formal Methods”, Robert Vienneau, extracted from A Review of Formal Methods, Kaman Science Corp., 1993, p. 3-15 and 27-33. (Reader, p. 181-192)

3.        “Go To Statement Considered Harmful”, Edsger W. Dijkstra, Letter to the Editor in Communications of the ACM, 11(3), March 1968, p. 147-148. (Not in reader)

4.        “Structured Programming: Retrospect and Prospect”, Harlan D. Mills, IEEE Software, 3(4), Nov. 1986, p. 58-66 (Reader: p. 195-203)

5.        “The Programming Language”, Doug Bell, Ian Morrey, John Pugh, in Software Engineering, p. 204-216.

Total pages: 49

Supplemental readings:

·         “An Axiomatic Basis for Computer Programming”, C. A. R. Hoare, Communications of the ACM, 12(10), Oct. 1969, p. 576-583

·         “Program Development by Stepwise Refinement”, Niklaus Wirth, Communications of the ACM, 14(4), April 1971, p. 321-334.

·         “A Specifier’s Introduction to Formal Methods”, Jeannette M. Wing, IEEE Computer, Sept. 1990, p. 8-22.

·         “Seven Myths of Formal Methods”, Anthony Hall, IEEE Software, Sept. 1990, p. 11- 19.

Week 6 – Validation, Verification, and Testing

Reviews due: Monday, Oct. 30

1.        “Software Verification and Validation (V&V)”, Roger Fujii and Dolores R. Wallace, in Software Engineering, p. 220-234.

2.        “Software Inspections and the Cost Effective Production of Reliable Software”, in Software Engineering, p. 235-255.

3.        “A Review of Software Testing”, P. David Coward, Information and Software Technology, 30(3), April 1988, p. 189-198. (Reader: p. 277-286).

4.        “Social Processes and Proofs of Theorems and Programs”, Richard A. De Millo, Richard J. Lipton, Alan J. Perlis, Communications of the ACM, 22(5), May 1979, p. 271-280. (Not in reader).

Total pages: 56

Supplemental readings:

·         “Theory of Modules”, John D. Gannon, Richard G. Hamlet, Harlan D. Mills, IEEE Trans. on Software Engineering, 13(7), July, 1987, p. 820-829. (Not in reader)

·         “Design and Code Inspections to Reduce Errors in Program Development”, M. E. Fagan, IBM Systems Journal, No. 3, 1976, p. 182-211.

Week 7 – Quality, Reliability and Safety

Reviews due: Monday, Nov. 6

1.        “Software Quality Assurance: A Survey of an Emerging View”, in Software Engineering, p. 308-319.

2.        “Measurement and Experimentation in Software Engineering”, Proceedings of the IEEE, 68(9), Sept. 1980, p. 1144-1157. (Not in reader)

3.        “Software Reliability Models: Assumptions, Limitations, and Applicability”, IEEE Trans. on Software Engineering, 11(12), December 1985, p. 1411-1423. (Not in reader)

4.        “Software Safety: Why, What, and How”, Computing Surveys, 18(2), June 1986, p. 125-163. (Not in reader) ** You are only responsible for pages 125-139 (i.e., up to the beginning of Section 6) **

Total pages: 54

Week 8 – Software Process

Reviews due: Monday, Nov. 13

in-class, Tuesday, Nov. 14


1.        “The Mythical Man-Month”, Frederick P. Brooks, Jr., extracts from The Mythical Man Month, Addison-Wesley, 1975. (Reader p. 350-357)

2.        “A Spiral Model of Software Development and Enhancement”, Barry W. Boehm, IEEE Computer, 21(5), May 1988, p. 61-72. (Reader, p. 415-426)

3.        “The Capability Maturity Model for Software”, Mark C. Paulk, Bill Curtis, Mary Beth Chrissis, Charles V. Weber, in Software Engineering, p. 427-438.

4.        “A Rational Design Process: How and Why to Fake It”, David L. Parnas, Paul C. Clements, IEEE Trans. on Software Engineering, 12(2), February, 1986, p. 251-257.

Total pages: 39

Supplemental readings:

·         “Alternative Software Life Cycle Models”, Edward R. Comer, Aerospace Software Engineering: A Collection of Concepts, American Institute of Aeronautics, 1991. (Reader, p. 404-414)

·         “Software Processes are Software Too”, Leon Osterweil, Proc. 9th Int’l Conference on Software Engineering (ICSE-9), 1987, p. 2-13.

Week 9 – Management, Maintenance, and Reuse

Reviews due: Monday, Nov. 20

1.        “Why Does Software Cost So Much?”, Tom DeMarco, IEEE Software, 10(2), March 1993, p. 89-90. (Reader: p. 372-373)

2.        “Software Maintenance: A Tutorial”, Keith Bennett, in Software Engineering, p. 289-303.

3.        “Software Reuse”, Charles W. Krueger, Computing Surveys, 24(2), June 1992, p. 131-183. (Not in reader) ** You are only responsible for pages 131-147 (i.e., to the beginning of Section 6) **

Total pages: 33

Supplemental readings:

·         “Software Cost Estimation”, F. J. Heemstra, Information and Software Technology, 34(10), Oct. 1992, p. 627-639. (Reader: p. 374-386)

Week 10 – Software Engineering Environments

Reviews due: Monday, Nov. 27

1.        “A Classification of CASE Technology”, Alfonso Fuggetta, IEEE Computer, 26(12), Dec. 1993, p. 25-38. (Reader: p. 469-482)

2.        “Elements of Software Configuration Management”, Edward H. Bersoff, IEEE Trans. on Software Engineering, 10(1), Jan. 1984, p. 79-87. (Reader: p. 320-328)

3.        “Chimera: Hypertext for Heterogeneous Software Environments”, Kenneth M. Anderson, Richard N. Taylor, E. James Whitehead, Jr., Proc. 1994 European Conference on Hypermedia Technology (ECHT’94), p. 94-107 (Not in reader)

Total pages: 37

Supplemental readings:

·         “Lessons from the Arcadia Project”, R. Kadia, DARPA Software Technology Conference, p. 287-302, April 1992.

·         “The Interlisp Programming Environment”, Warren Teitelman, Larry Masinter, IEEE Computer, April 1981, p. 25-33.

·         “Connecting Tools Using Message Passing in the Field Environment”, Steven P. Reiss, IEEE Software, July 1990, p. 57-66.

Friday, December 1


TBA, sometime in Dec. 4-7


Acknowledgements: I would like to thank Linda Werner for her work and experience developing previous versions of CMPE 276, on which this is based.