The Software Project Day

The Problem

Team Responsibility

You are to design and implement a concurrent program to simulate one day's activities at the firm. All significant events should be logged with the simulated time at which they occur, e.g., 12:02 Manager goes to lunch. Identify individual developers, where significant, by the notation Deverloper NM, where N is the team number (1-3) and M is the employee's number on the team (1-4, where 1 is the team lead). Teams should be identified as Team N, where N is the team number as specified previously.

Obviously, multiple runs should result in different mixes of meetings, questions, etc.

All persons must be represented by independent threads; you should use passive resources to synchronize these threads as necessary (say, to ensure everyone is in the conference room before the manager starts reporting status). In addition, you should accumulate statistics on the total amount of time across the manager and all his developers (a) working, (b) at lunch, (c) in meetings, and (d) waiting for the manager to be free to answer a question.

We strongly suggest that you implement a test bed allowing you close control over the activities described above.

You should make and document plausible assumptions about the time between questions for a team, average lunch break, arrival and departure times, etc. Experiment with different assumptions to see their effect, and document the results. In addition to the well-structured and well-documented Java source code, you must write a report that details your design (especially decisions related to concurrency, use of data structures, special synchronization, etc.), alternatives you considered, and the results of your experiments (e.g., were any race conditions uncovered? were you able to correct these?).

Discussion Forum

A discussion forum, Project 1, has been created for this project. Post any questions or comments you have to this forum, and I will respond ASAP with clarifications and examples.

Submission

Submit your team's solution to the Project 1 - A Day In The Life dropbox by due date and time shown in the course schedule. The submission is to consist of one ZIP file, day.zip, containing the following:

Any team failing to abide by these instructions will receive a grade no greater than 80.