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:
- Software product and process
- Examples of disasters related to "bad" S/W Engineering
- GUI-based application development using Java Swing
- Requirements analysis
- Object oriented design
- Software inspections and reviews
- Black box and white box testing
- Software configuration management
- 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:
- Review material covered in reading assignments or earlier lectures.
- Class exercise to reinforce material covered in the same lecture.
- 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 |
|