Colorado State University Computer Science Department


CS314
Software Development Methods
Fall 2004


Course Objectives

This course will expose students to techniques used to develop large software systems. Major topics include system and requirements engineering, object-oriented design, and systematic code testing techniques. Students will use CASE tools for many of the topics mentioned below.

The following topics will be covered in the course:

  1. Software product and process
  2. Examples of disasters related to "bad" S/W Engineering
  3. GUI-based application development using Java Swing
  4. Requirements analysis
  5. Object oriented design
  6. Software inspections and reviews
  7. Black box and white box testing
  8. Software configuration management
  9. Software metrics


Course Prerequisite

CS253 and all the prerequisites for CS253 including CS166 (Discrete Structures) and CS200 (Data Structures).


General Information

Instructor: Dr. Sudipto Ghosh
US Mail: Computer Science Department, Colorado State University, Fort Collins, CO 80523
Phone: (970) 491-4608
Fax: (970) 491-2466
Email: ghosh At cs Dot colostate Dot edu
Office Location: 224 University Services Center
Office Hours: Tuesday, Thursday: 2:15-3:15

GTA: James DeWitt
US Mail: Room 200 Cubicle W4, Computer Science Department, Colorado State University, Fort Collins, CO 80523
Phone: Lab: (970) 491-7458, Cubicle: (970) 491-1056
Fax: (970) 491-2466
Email: dewittj At cs Dot colostate Dot edu
Office Hours: M 6-8 pm, F 1-3 pm, South lab 3rd floor, USC

Lectures:
TR 3:35-4:50pm
167 Rockwell Hall


Policies:

  • We take cheating very seriously. Make sure you read and understand the departmental policy on cheating, incompletes and class attendance.
  • You are responsible for any announcements made in class and on WebCT. We will make our best effort to make each announcement both in class and on WebCT.
  • Individual homework assignments have to be done individually. Only group assignments may be done in a group.
  • No late submissions are allowed for team assignments. We will allow late submission for individual assignments with some penalty. You lose 25% of the assignment grade for one extra day, 50% for two, and 75% for three extra days. Assignments will not be accepted after 3 extra days. Extensions may be granted when permission is sought in advance for reasons that are unexpected and beyond your control.
  • All written work (homework or project) must be typed on 8.5 by 11 paper, have at least 1 inch margins and be printed in 10, 11 or 12 point size. Work should be single-spaced. Diagrams have to be drawn with the help of CASE tools. All work must be neat and legible.

Course Materials

WebCT will be extensively used to post all lecture notes, assignments, quiz solutions, and grades. Check WebCT regularly for new announcements, changes, and updates. Use the discussion groups to post questions and the chat-rooms for group assignments.


Grading

An overall course grade will be awarded based on continuous evaluation in the form of quizzes, individual and group assignments, a midterm exam and a final. Quizzes and assignments (either individual or group) will be given throughout the semester, so be prepared! The following table shows each component:

Quizzes 5%
Individual assignments 20%
Group assignments: 25%
Midterm exam: 25%
Final exam: 25%

Grades will be assigned according to the following table. The actual cutoffs may be lower (but never higher).

[90-100] A-, A
[80-90) B-, B, B+
[70-80) C
[60-70) D
[0-60) F


Quizzes

Short unannounced quizzes will be given in class throughout the semester with one of the following goals in mind:

  1. Review material covered in reading assignments or earlier lectures.
  2. Class exercise to reinforce material covered in the same lecture.
  3. Motivate material to be covered in remainder of the lecture.
All quizzes will be discussed in class. The quizzes will be individual or team-based depending on the topic being covered in the quiz. One quiz will be dropped from the final grade calculation.


Individual assignments

There will be 3 individual homework assignments covering topics on coding and testing. The following table shows the tentative dates for each assignment.

Assignment Assigned Due Topic
IHW1 Aug 31 Sep 9 Unit testing using JUnit
IHW2 Sep 9 Sep 21 White-box testing
IHW3 Sep 21 Oct 5 Java Swing-based application


Group assignment

You are expected to work in teams of three to develop a software application. During the course of this project, you will identify and analyze requirements, develop an object-oriented design, create a test plan, and implement a working prototype.

All students will work on the same application. You need to form a team consisting of three students. The group assignment is divided into 6 parts, some short, some long. The final demo will be held in the last week of the semester (before finals week). For each part, you will do a peer evaluation. The following table shows the tentative dates for the group assignments.

Topic Due
Project description Assigned on Sep 9
Team selection Sep 16
GHW1: Identify requirements Oct 14
GHW2: Use case analysis Oct 26
GHW3: Domain modeling Nov 4
GHW4: Design -- structure and behavior Nov 16
GHW5: Test plan Dec 2
GHW6: Demos Dec 7


Exams

There are two exams: one midterm exam in class (25%) and one final exam (25%) during the final's week.

Exam Date
Midterm exam: Oct 7 or 12 (TBD), during class
Final exam: Dec 13, 9:10-11:10 am