CSCE 492: Software Engineering

Instructor: José M. Vidal
Office: SWGN 3A51
Office Hours: Check my Calendar, or email me for appointment.
Time: MWF 12:20PM- 1:10PM but we mostly just meet in my office, one group at a time: see my calendar.
Room: SWGN 2A24
Textbooks: Code Complete: A Practical Handbook of Software Construction
Grading and Schedule:

Deliverable Individual or Group Percentage of Final Grade Due Date
Weekly meetings Individual 5% Every week
Interview Questions (checklist) Individual 5% Occasionally
Proposal Presentation Group 5% Aug. 28
Pick project and platform (checklist) Group 0% Week of Aug. 31
Mockup, use Cases, third-party library analysis (checklist) Group 5% Week of Sep. 7
Detailed requirements (checklist) Group 5% Week of Sep. 14
Design: Class and Sequence diagrams: Project schedule broken down by pieces of code, testing, documentation, etc. by person. (checklist) Group 5% Week of Sep. 21
Test plan, unit test specifications (checklist) Group 5% Week of Sep. 28
Demo of proof-of-concept implementation and formal inspection (Chapter 21.3). These require a 2 hour meeting. Each student will explain their code. (checklist) Group (integration) and Individual (code) 20% Week of Oct. 19
Final project presentations to the whole class Group 10% Dec. 4 @12:20 in SWGN 2A24
Testing of other teams' project based using their specifications and test cases. If you find 0 bugs you get 0 points. Group 10% Dec. 12
Final writeup and project: well-commented code, documentation, svn checking history, unit tests, meet requirements. Group 30% Dec. 12
Individual assessment of other members' performance. Individual Up to 100% of grade Dec. 12

In general, all members of the team will receive the same final grade no matter how much work each one of them does. If you are having problems with a lazy teammate tell me as soon as possible so we can try to solve the problem.

We will adhere USC's statement on academic responsibility. This means that expulsion procedures will be initiated for anyone caught either giving or receiving help in a problem set or test. I will be grading everything myself since this class does not have a TA. Please, try to help out by properly commenting your code.

Overview: This class allows the students to experience a software development lifecycle, which includes requirements analysis and design, development, testing, and documentation.

Prerequisites: This class involves a lot of programming. You need to have taken Data Structures and Algorithms, as well as other programming classes. You also must be willing to dedicate a lot of time to this class as programming is always an extremely time-consuming activity.

Deliverables: Students who pass this class are be able to design and implemented complex software solutions using state of the art software engineering techniques. The have working knowledge of UML, source control, and project management. They know how to test and document software. Finally, they are capable of working as part of a software team and develop significant projects under a tight deadline.

A funny comic strip.

Jose M. Vidal
Last modified: Wed Nov 11 13:16:49 EST 2009