CS3733-D05 Class Schedule

The following table shows the class schedule, by week, and the topics for the classes. While there may be some adjustment in the schedule as the term progresses, I will try to stick to the schedule as much as possible.

Date: 15-Mar, 17-Mar

Date
Topics Assignment Reading
15-Mar
Course introduction, spikes, teams, iterative development

Form teams. There should be three teams. Each should have the same number of members, ideally. However, if there are not enough to make this come out even, there should be no more than one team member difference. You can use myWPI for a discussion to find team members. When the teams are formed, post the member names on the myWPI discussion board.

Every student should get an account on the WPI SourceForge system. One member from each team should request a new project on SourceForge and then add the other project team members. (Due 18-Mar)

Introduction, Ch. 1
17-Mar Tools, Eclipse, CVS, SourceForge, pair programming

Students will work in pairs for this assignment. If there are an odd number of students, there may be one group that can have 3 students, but you need to make sure that you all get a chance to pair program.

Try an XP spike as described in Chapter 2 of the text. You should, at the minimum, pair program, estimate your work by writing simple user stories, and, if possible, try test-first programming. You will write a program that does the following:

  • There ae two inputs: first a series points (pairs of numbers, x y) that define the boundaries of some closed polygon in the Euclidean plane. The second is a set of inputs, each being a single point.
  • For each point in the second set, the program will putput either the word "in" or "out" depending upon whether the point is inside or outside of the polygon defined by the first set of inputs.

Submit your Eclipse project as a zipped file. You must have some sort of tests and include a description of how to run the tests. Use the attached report format to describe how to run your tests and assess your experience. Include it as part of your zipped file. Replace the blue text in the report with your information. (Due 21-March)

/cs/bin/turnin submit cs3733 hw2 homework2.zip

Ch. 2, 3, 4
18-Mar Introduction to the project, team selection, iterative and incremental development   Ch. 5, 6
21-Mar Requirements: use cases, user stories   Ch. 7, 8
22-Mar Project planning: the planning game, estimation   Ch. 9, 10
24-Mar Software lifecycle, agile methods, XP Slides are here. Ch. 11, 12
25-Mar Team meetings, exercises, iteration reports

You are to write user stories that describe the requirements for the following

The school bookstore has asked you to write a system that keeps track of textbooks. It is essentially an inventory system. Books can be removed from inventory and added to inventory. When a book hits some specified level of stock, it's time to reorder the title. When books arrive they are added to the inventory.

Your user stories should only describe the system in the above paragraph. You should not try to include any purchasing or sales information, just describe as completely as possible what is necessary to implement the above actions. (Due 29-March)

/cs/bin/turnin submit cs3733 hw3 homework3.{doc, xls, txt}

Ch. 13
28-Mar Pair programming, Test-first programming, JUnit  

Ch. 14

Optional reading:
Test Before you Code
JUnit home page

29-Mar People, Process, Tools, generating trust, team behavior   Slides from this class are here.
31-Mar Unit testing, mock objects, CVS

Modify the code we looked at in class on Monday. The assignment is in the README file. You should turn in a zipped Eclipse project that has all of the JUnit tests set up to run. Provide a README file that tells the grader how to run the tests. If your project does not load, or the tests do not run without change, you will be penalized, or possibly receive a zero for the assignment. (Due 4-Apr)

/cs/bin/turnin submit cs3733 hw4 homework4.zip

 
1-Apr Team meetings, exercises, iteration reports   Ch. 15
4-Apr Analysis: finding domain classes, interactions, introduction to UML    
5-Apr Analysis methods: CRC cards, textual analysis    
7-Apr Midterm exam    
8-Apr Team meetings, exercises, iteration reports    
11-Apr Design: architecture    
12-Apr Design: class design    
14-Apr Design: design patterns    
15-Apr Team meetings, exercises, iteration reports    
18-Apr Design: design patterns

Construct a sequence diagram on the following use case scenario. Show boundary, entity, and control classes. Insert classes as appropriate for performing good domain analysis.

  1. The application asks the client to free resources rights to access to which application obtained earlier.
  2. The client using resource name and TokenID data asks the server to free tokens.
  3. The server asks the dynamic database to free tokens.
  4. The dynamic database removes the token only if it is not on use.
  5. Application asks the client to check if the token with specific ID value is allocated.
  6. The client asks the server to check if the token with the specific ID value is allocated.
  7. The server asks dynamic database to give token state status, and returns it to the server.
  8. The server returns the state status to the client.
  9. The client notifies the application of the token state.

This is to be turned in at the beginning of class on Friday, April 22. It may be done using a UML program or hand drawn (neatly).

 
21-Apr Testing: fundamentals, test cases    
22-Apr Team meetings, exercises, iteration reports    
25-Apr Testing: integration and system tests   Parnas and Clements article
26-Apr Testing Complete the individual project report form and email it to me by May 1.  
28-Apr Exam review, IDEA forms    
29-Apr Final exam    
2-May Project presentations    
3-May Project presentations    

Modified: 28-Apr-2005
Gary Pollice