CS 5500 Spring 2011

Managing Software Development

Specker Challenge Game Arena Project

Karl Lieberherr

Project 1

Due: Jan. 24. Avatars are typically developed in small teams of 2 or 3 students. So build teams of 2 or at most 3 students but you can also work individually, if you prefer. Teams turn in only one project and clearly mention the team members at the beginning of the submission. All submissions are to your Blackboard account for this course.

Reading

Read the first 4 chapters of the text book. Read the paper:

http://www.ccs.neu.edu/home/lieber/papers/SCG-Paper/main.pdf and the web page:

http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/sp11/projects/problem-statement.html to learn more about the background of the Scientific Community Game. See also the semi-formal definition:

http://www.ccs.neu.edu/home/lieber/evergreen/specker/software-development/faq/control.html

Read the Arena Problem Statement: Figure 4-17, page 154 in text book. Spread the reading over the two weeks.

Tool Usage

Use Rational Team Concert to produce your results (sandbox version). Get a jazz.net account. Read the Jazz vision:

https://jazz.net/about/about-jazz-vision.jsp. Use:

https://jazz.net/sandbox02/setup/web.

A part of Jazz is Rational Requirements Composer.

http://jazz.net/projects/rational-requirements-composer/ which is useful for dealing with our requirements.

Part 1: Familiarizing yourself with the requirements for the project.

Prepare a test case for your project. A test case for your project consists of components Propose, Oppose(Refute, Strengthen), ProposeProblem and SolveProblem for some computational problem. We use the highest safe rung problem.

Part 1.1: Having fun with SCG(HSR) (board version)

Play the game manually for which you are going to design and implement an arena. The game is called the Scientific Community Game. It is not important that you are perfect at playing the game but you learn most about the requirements, if you try to play the game well. Do the undergraduate homework:

http://www.ccs.neu.edu/home/lieber/courses/algorithms/cs4800/sp11/homeworks/hw1/hw1-stress-testing-1.doc which includes turning in your game history.

Part 1.2: Implement test case (HSR avatar) systematically from requirements to testable implementation

HSR is a sufficiently simple computational problem that you can transfer your knowledge about HSR to an avatar that serves as test case for the web arena later on. Your test case consists of programs so follow the spirit of Figure 1-2 on page 17 of your text book (see also inside cover when you open the book) to develop your test case. Your test case will need several test cases. Write a brief requirements document for your test case. Here are the interfaces you should use:

http://www.ccs.neu.edu/home/lieber/evergreen/specker/software-development/faq/tasks.html If you don't like them, come up with better ones.

http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/sp11/projects/p1/prototype/HSR/df/gen/ contains useful software for this part created by DemeterF. It defines the communication language for the avatars: http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/sp11/projects/p1/prototype/HSR/df/program.cd. Use the HSR avatar language wiki if you want to change it.

Apply problem reduction in this simple application of SCG: Which of the methods Propose, Oppose(Refute, Strengthen), ProposeProblem and SolveProblem is the most important one?

Turn in your source code and accompanying documents that you produced with RTC.

Part 2: Requirements for Arena

Falsify my High-Level Requirements Document

http://www.ccs.neu.edu/home/lieber/courses/se-courses/cs5500/sp11/projects/problem-statement.html (read about Falsification in the text book and in the slides). Falsification includes: is there a mismatch between what you see in the game you play and what is in the high-level requirements document? Make concrete suggestions of what should be added or changed. Turn in your suggestions. At most a page.

Part 3: Develop 3 use cases for the SCG Arena.

The use cases are a part of the software requirements specification (SRS). Turn in your use cases.

Part 4: (Optional)

Do you have creative ideas about how the system should be implemented as a web application? As tool we want to use Rational Team Concert from IBM.