Colorado State University Computer Science Department

CS314 Software Development Methods
Fall 2005

Course Information
Course description:

The course introduces students to principles, concepts and techniques associated with team-based development of complex software systems. It is assumed that students know how to program and have developed programs using the Java language. Major topics include system and requirements engineering, object-oriented design, and systematic code testing techniques. Students will learn to use software tools.

Course date: Monday, August 22, 2005 through Friday, December 16, 2005
Location: 231 Wagar
Meeting day(s): Tuesdays, Thursdays
Meeting time(s): 3:35-4:50pm

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


Instructor Information
Name: Sudipto Ghosh
Email: ghosh @ cs DoT colostate DoT edu
Office location: 224 University Services Center
Office hours: TR 2:00-3:15
Phone: (970) 491-4608

GTA Information
Name: Lijun Yu
Email: lijun @ cs DoT colostate DoT edu
Cubicle: N1, 2nd floor, University Services Center
Office location: North or South lab on 3rd floor University Services Center
Office hours: Monday 12PM - 1PM, Tuesday 1PM - 3PM, Wednesday 12PM - 1PM
Phone: (970) 491-2556

Course Goals

  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


  • 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.

Required reading: Object-Oriented Software Engineering: Practical software development using UML and Java,, Timothy C. Lethbridge and Robert Laganiere, McGraw Hill, 2nd, 2005, 0077109082
Recommended reading: Java 2: The Complete Reference, Herbert Schildt, McGraw Hill Osborne, 5th Edition, 2004, 0072230738

Course Requirements

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

Quizzes 7%
Individual assignments 15%
Group assignments: 28%
Midterm exam: 20%
Final exam: 30%

Grades will be assigned according to the following table. The actual cutoffs may be adjusted depending on the performance of the entire class; cutoffs can be lower but never higher. After each midterm exam and before the final, we will announce "approximate" letter grades so that you know where you are.

[90-100] A-, A
[80-90) B-, B, B+
[70-80) C, C+ (no C- will be given)
[60-70) D
[0-60) F



Short unannounced quizzes will be given in class throughout the semester. The intent may be to:

  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 about 3 individual homework assignments covering topics such as software safety and software testing.

Team project

You will work in teams of three to develop a software application. During the course of the project, you will identify and analyze requirements, use techniques learned in this class to develop a high level object-oriented design, implement a working prototype, and develop a test plan. The project will involve iterative, incremental software development.


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

Exam Date
Midterm: Oct 6
Final exam: Dec 13, 1:30-3:30 pm

Last modified: August 24, 2005