Prerequisites: CS 2201 or one of the following: CS 2360, CS 2390, or CS 2430; and junior standing.
Introduction to current techniques used in large-scale software development. Topics include requirements analysis, functional specification, systems design, implementation, testing and maintenance.
Revised Course Description (from the instructor): The difficult part in designing any software system is usually not the coding of the software. And the executable object is not the only artifact of importance in the entire design process. One of the principal concerns of software engineering is the disciplined development of an application that meets certain market or customer demands and can be developed by a group of people in a controlled and somewhat predictable manner. Consequently, the emphasis in this course is not so much on the construction of code as it is on the construction and documentation of a design by a team.
Software engineering is about building systems that people will use. Therefore, there is also a strong emphasis in this class on a real-world educational experience. The projects chosen for this course have been selected because they are not only interesting but potentially useful to a wide audience.
Goals:
| Required? | Title | Author | Publication information |
| Yes | The Mythical Man-Month | Frederick P. Brooks, Jr. | 20th Anniversary edition, Addison-Wesley, 1995 |
| No | Software Engineering: A Pracitioner's Approach |
Roger S. Pressman | Third edition, McGraw-Hill, 1992 |
| date | review link | |
| Midterm | 4/17 | ![]() |
| Final | take-home | ![]() |
| Week | Date | Topic | Reading from MM-M |
Lecture notes |
Project info |
Assignments | Handouts |
| 1 | 3/27 | Introduction | Overview | job-application | policies | ||
| 3/29 | Job applications | Win 96 projects | |||||
| 2 | 4/1 | Projects | Chs. 1-4 | Web notebook | |||
| 4/3 | Teams | Yourdon lecture | Group pages | ||||
| 4/5 | Schedules and Meetings | Plan | |||||
| 3 | 4/8 | Requirements | Chs. 5-8 | Requirements | Project Plans due | ||
| 4/10 | Demo 1 | status report | |||||
| 4/12 | Chs. 9-12 | Demo 1 | Midterm review |
||||
| 4 | 4/15 | Source code control | Slides (.ps.gz) |
CM info | |||
| 4/17 | Midterm | ||||||
| 4/19 | status | Peer evaluations | |||||
| 5 | 4/22 | Design | Chs 13-15 | Design doc | Requirements due | ||
| 4/24 | status | ||||||
| 4/26 | status | ||||||
| 6 | 4/29 | The Silver Bullet | Chs. 16 | ||||
| 5/1 | status | Demo 2 | |||||
| 5/3 | status | Demo 2 | |||||
| 7 | 5/6 | More Silver Bullet | Ch. 17 | Design due | |||
| 5/8 | status | ||||||
| 5/10 | status | Prototype | |||||
| 8 | 5/13 | Reflections on MM-M | Ch. 19 | ||||
| 5/15 | |||||||
| 5/17 | Final presentation Final notebook |
||||||
| 9 | 5/20 | Final prototype demo |
|||||
| 5/22 | Final prototype demo |
||||||
| 5/24 | Final presentations | ||||||
| 10 | 5/27 | Final presentations | |||||
| 5/29 | Final presentations | Final notebook Peer evaluations |
|||||
| 5/31 | Final presentations |