CENG 551

Advanced Software Engineering

This course will begin by explaining the concept of software engineering. Afterwards, the software development process is described. The course will then cover software requirements, software specification, software analysis, and formal analysis. Finally, quality management, product metrics, process metrics, COTS, and software psychology are addressed.

Course Objectives

To provide the graduate students with the ability to evaluate the software engineering techniques and approaches To present the current level of software engineering practices and inform about the historical progress To give the ability of professional decision making in choosing the right approaches for the project at hand.

Recommended or Required Reading

Glass, Robert L.;2003; “One Giant Step Backward.” Communications Of the ACM 46, no. 5. ,Gray, Lewis.;1998; “Gray Rebuts Bach: No Cowboy Programmers!” Computer pp 102, 103 and 105. ,Hatton, Les.;1998; “Does OO Sync with How We Think?” IEEE Software pp 46-54. ,Hoare, C. A. R.;1969; “An Axiomatic Basis For Computer Programming.” Communications of the ACM 12, no. 10 pp 576-583. ,Howard, Alan.;2001; “Software Engineering Project Management.” Communications Of The ACM 44, No. 5 pp 23 and 24. ,Kearney, Joseph K., Robert L. Sedlmeyer, William B. Thompson, Michael A. Gray, and Michael A. Adler.;1986; “Software Complexity Measurement.” Communications of the ACM 29, No. 11 pp 1044-1050. ,Krueger, Charles W.;1992; “Software Reuse.” ACM Computing Surveys 24, No. 2 pp 132-183. ,Lawrence, Brian, Karl Wiegers, and Christof Ebert.;2001; “The Top Risks of Requirements Engineering.” IEEE Software pp 62 and 63. ,Ledgard, Henry F.;2001; “The Emperor with No Clothes.” Communications of the ACM 44, no. 10 pp 126-128. ,Mackeyn, Karen.;2000; “Mars versus Venus.” IEEE Software pp 14-15. ,Mantei, Marilyn.;1981; “The Effect of Programming Team Structures on Programming Tasks.” Communications of the ACM 24, no. 3 pp 106-113. ,Martin, Robert C.;2000; “eXtreme Programming Development through Dialog.” IEEE Software pp 12 and 13. ,McConnell, Steve.;1998; “Problem Programmers.” IEEE Software pp 126-128. ,McConnell, Steve.;2000; “Cargo Cult Software Engineering.” From The Editor column, IEEE Software pp 11-13. ,Meyer, Bertrand.;1999; “A Really Good Idea.” Computer pp 144-147. ,Parnas, David Lorge.;1985; “Software Aspects of Strategic Defense Systems.” Communications of the ACM 28, 12 pp 1326-1335. ,Paulk, Mark C., Bill Curtis, Mary Beth Chrissis, and Charles V. Weber. “The Capability Maturity Model for Software.” IEEE Software. ,Pressman, Roger S.;1998; “Can Internet-Based Applications Be Engineered?” IEEE Software pp 104-109. ,Rettig, Mark.;1990; “Software Teams.” Communications of the ACM 33, no. 10 pp 23-27. ,Rothman, Johanna.;1998; “Of Crazy Numbers and Release Criteria.” Computer pp 127-128. ,Saiedian, Hossein.;1996; “An Invitation to Formal Methods.” Computer pp 16-30, New York. ,Schaible, Dawn, and Keith Britton.;2003; “Testing in NASA Human-Rated Spacecraft Programs: How Much is Just Enough?” SDM Master s thesis. MIT, Chaps. 2, 4, and 5. ,Shapiro, Stuart.;1997; “Splitting the Difference: The Historical Necessity of Synthesis in Software Engineering.” IEEE Annals of the History of Computing 19, no. 1 pp 20-54. ,Watkins, Robert, and Mark Neal.;1994; “Why and How of Requirements Tracing.” IEEE Software pp 104-106. ,Weyuker, Elaine J.;1998; “Testing Component-Based Software: A Cautionary Tale.” IEEE Software pp 54-59. ,Williams, Laurie, Robert R. Kessler, Ward Cunningham, and Ron Jeffries.;2000; “Strengthening the Case for Pair Programming.” IEEE Software pp 19-25. ,Wing, Jeannette M.;1990; “A Specifier s Introduction to Formal Methods.” Computer pp 8-24. ,Wirth, Niklaus.;1971; “Program Development by Stepwise Refinement.” Communications of the ACM 14, no. 4 pp 221-227. ,Wirth, Niklaus.;1995; “A Plea for Lean Software.” Computer pp 64-68. ,Yamaura, Tsuneo.;1998; “How to Design Practical Test Cases.” IEEE Software pp 30-36. ,Highsmith, Jim, and Alistair Cockburn.;2001; “Agile Software Development: The Business of Innovation.” Computer pp 120-122. ,Bollinger, Terry;1997; “The Interplay of Art and Science in Software.” Computer pp 125-127 and 128. ,Brooks.;1987; “No Silver Bullet: Essence and Accidents of Software Engineering.” Computer. ,Budgen, David.;1999; “The Loyal Opposition: Software Design Methods: Life Belt or Leg Iron?” IEEE Software pp 133-136. ,Cockburn, Alistair, and Jim Highsmith.;2001; “Agile Software Development: The People Factor.” Computer pp 131-133. ,DeMillo, Richard A., Richard J. Lipton, and Alan J. Perlis.;1979; “Social Processes and Proofs of Theorems and Programs.” Communications of the ACM 22, no. 5. ,Ferdinandi, Patricia L.;1998; “Facilitating Communication.” Culture At Work column, IEEE Software pp 92-96. ,Garlan, David, and Mary Shaw.;1993; “An Introduction to Software Architecture.” In Advances in Software Engineering and Knowledge Engineering. Vol. 1. Edited by V. Ambriola, and G. Tortora. New Jersey: World Scientific Publishing Company. Also appears as CMU Software Engineering Institute Technical Report CMU/SEI-94-TR-21, ESC-TR-94-21. ,Glass, Robert L.;1998; “The Loyal Opposition: Reuse: What s Wrong With This Picture?” IEEE Software pp 57-59.

Learning Outcomes

1. To have knowledge of software engineering concepts

2. Ability to learn from common software engineering faults

3. Discuss software engineering problems

4. Ability of professional decision making

Topics
The Problem
Process and Life Cycle Models
Requirements and Specification I
Requirements and Specification II
Design I
Design II
Building Confidence (Testing, Analysis, QA, Reviews)
Metrics and Reliability Assessment
COTS and Reuse
Formal Verification
Team Organization and People Management
Software Engineering Aspects of Programming Languages
Software Safety and Wrapup
Case Studies

Grading

Homework 100%