Class Project: Description

The class project is an opportunity for students to work in teams (of 3 to 4 people) to apply techniques learned in this class to do one of two things:

1. Construct a software system that uses concurrency in some fashion.

or

2. Understand and modify an existing concurrent software system.

For the first type of project, you will construct a set of requirements and a design for a concurrent system. You will use FSP to model the system's proposed concurrent behaviors and use the LTSA tool to analyze your models. You will then use the requirements and design to construct a prototype implementation of the proposed system. The prototype does not have to be complete, but needs to at least demonstrate its ability to support concurrency in its operation. (Teams will work with Prof. Anderson to determine the amount of the design that needs to be implemented for each project.)

For the second type of project, you will start with an existing software system (most likely an open-source software system) that is able to support concurrency in some fashion. You will then propose a modification to that system, either altering an existing concurrent behavior (or behaviors) of the system or adding a new feature that exploits concurrency in some way. You will construct requirements and design documents that models (some subset of) the existing system while also showing how you propose to modify that system.

The project will be split into three phases: requirements, design, and implementation. Your requirements documents will be due at the end of the 12th week of the semester. Your design documents will be due at the end of the 14th week of the semester. Your implementation will be due at the end of the 16th week (or into finals week, if needed).

Note: students can work individually on a project (although this is discouraged for in-class students) if they can't find a team that they want to work with, or if you are a CAETE student who can't join a team due to the fact that they work off-campus.

If a team of in-class students is willing to work with a CAETE student remotely, please let me know and I'll send a message to the CAETE students to look for a volunteer. Likewise, if you are a CAETE student and would like to work with someone via e-mail, wikis, telephone, etc., let me know and I'll arrange a way to help you form a team.

The project will be worth 300 points. Details for the requirements assignment will be posted shortly.

In the meantime, you should be busy joining a team and coming up with a project idea. Once you have a project idea, send it to Prof. Anderson for approval.

Kenneth M. Anderson, 2007.