This course deals with the processes involved in software development, from requirements specification and analysis and through design, implementation, and verification. We discuss ways to organize and manage work processes as well as technical design models. A major portion of the course activity is the development of real software products in teams of about four students each.
Z Sweedyk, 2341 Olin, x78360
· Michael Bailey
· Jacob Creed
Rigorous introduction to the technological and managerial discipline
concerned with the design and implementation of large software systems.
Techniques for software
specification, design, verification, and validation. Formal methods for proving
the correctness of programs. Students working in teams are required to design,
implement, and present a substantial software project.
Prerequisites: Computer Science 70 and 80.
Class participation (5%), Homework (5%), Project 1 (20%), Project 2 (30%), Team software development project (40%)
The required text is:
Backets [...] denote assigned reading of pages in Larman.
UML = "Unified Modeling Language".
· Alistair Cockburn,Writing Effective Use Cases,Addison-Wesley, 2001.
· Ivar Jacobson, Grady Booch, James Rumbaugh,The unified software development process,Reading, Mass : Addison-Wesley, 1999.
· Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides,Design patterns: Elements of reusable object-oriented softwareReading, Mass : Addison-Wesley, 1995.
· Dean Leffingwell, Don Widrig,Managing software requirements : a unified approach,Reading, MA : Addison-Wesley, 2000.
· James Rumbaugh, Ivar Jacobson, Grady Booch,The unified modeling language reference manual,Reading, Mass : Addison-Wesley, 1998.
· Grady Booch, Ivar Jacobson, James Rumbaugh,The unified modeling language user guide,Reading, Mass : Addison-Wesley, 1998.
· Phillipe Kruchten, The Rational Unified Process, an Introduction, Second EditionAddison-Wesley, 2000, ISBN: 0201707101.
· Barry W. Boehm, et al.Software Cost Estimation with COCOMO II, Prentice-Hall, 2001.