Final Project - Due
CMSC 335 6381 Object-Oriented and Concurrent Programming (2158)
The star indicates that the pair of fields may be repeated 0 or more times.
j:<index>:<name>:<creature index>:<time>[:<required artifact type>:<number>]*
The project will be graded according the criteria for the final project - see below.
1. An addition to the data file - specifying jobs for creatures.
o j:<index>:<name>:<creature index>:<time>[:<required artifact type>:<number>]*
2. Resource pools - data structures supporting unassigned artifacts of a given type, along with supporting assignment to creatures
3. Creature job threads - connected to the resource pools and supporting the concept of blocking until required resources are available before proceeding.
4. GUI showing:
o Resources in pools
o Thread progress, resources acquired, and resources requests still outstanding
NOTE - The details of this section are subject to change, but the spirit will remain:
This is meant to be a learning experience, not a death march! Do the best you can, explain what you have done, what should still be done and how you would go about implementing the additional features. Make sure your test cases cover ALL the issues - thus demonstrating that you have considered and understood all the issues in the project, even you have have not had time to implement all the features.
One more thing - you can help each other, just be clear about what code is yours and what you have shared from others.
So, let's focus on the aspect that I think is most critical here - communicating threads.
Start with the following (Functionality points):
1. Start a thread for each job, by implementing Runnable in the Job (or equivalent) class.
2. (F: 30/40) Read the data file and create the appropriate jobs (threads).
3. (F: 35/40)Implement the resource pools.
4. (F: 38/40)Implement the connections between the resource pools and the threads using a resource management approach.
5. (F: 40/40) Add elements to the GUI to make user control convenient.
I would say that accomplishing 1-2 is worth 90% of this project, 3 goes to 95%, and 4 would produce a 98% project, then the final GUI for 100%.
1. Java source code files
2. any configuration files used
3. a well-written Word document describing:
a. your overall design, including a UML class diagram showing the type of the class relationships
b. description of how to set up your application
c. your test plan, including test data and results, with screen snapshots of each of your test cases
d. your approach, lessons learned, design strengths and limitations, and suggestions for future improvement and alternative approaches
Your project is due by midnight, EST, on the date posted in the class schedule. Your instructor's policy on late projects applies to this project.Submitted projects that show evidence of plagiarism will be handled in accordance with UMUC Policy 150.25 — Academic Dishonesty and Plagiarism.
Documentation format and length. The documentation describing and reflecting on your design and approach should be written using Microsoft Word, and should be no more than five pages in length and no less than two pages. The font size should be 12 point. The page margins should be one inch. The paragraphs should be double spaced. All figures, tables, equations, and references should be properly labeled and formatted using APA style.
o header comment block
o appropriate comments within the code
o appropriate variable and function names
o correct indentation
This activity is awarded 20 percent of the total grade in the course. In the grade book, the total number of points will be set to 100. The project elements will be assessed as follows: