The purpose of this assignment is to construct and document a Requirements Specification, Design, and Development Process for a classic computer game Pac-Man. You should apply, as far as possible, the software engineering techniques introduced in this course. You should employ an OO design and demonstrate capability to use advanced design patterns and tactics in your project. The following problem statement is provided. The assignment is to be conducted in groups with no more than four students in one group.
Problem Definition
Pac-Man is a classic maze action game developed and released by Namco in 1980. Please study the Wikipedia page of Pac-Man Wikipedia for the detailed introduction of this game. You are asked to reproduce this game for computers of different platforms. All important features in the original game should be included in your design and development (please check the marking criteria for important features must be implemented in your game).
Apart from the requirements from the original game, your program should have a start up page, the start up page should contain:
- The title and logo of Pac-Man
- The year and course code
- The list of all students in your group
- An exit button
- A configure button. In the configure page, a player can select normal predefined maze and randomly generated mazes.
- A play button to take the player to the game
Guidance
The emphasis of the assignment is upon the use of best software engineering practices to produce high quality software products. The assignment has two stage submissions with 15% weight each in the final grade.
- At the outset of the assignment you should create a plan which documents in tabular form, when you expect to complete each phase of the development process. This should include the time/date when you expect to complete the development, verification and correction of the product produced in each phase. You should also include the number of person hours that you expect to spend on each activity. Later, when each phase is completed you should record the actual time taken and when the task was completed. There should also be documentation which shows which team members were responsible for each task
Project Planning and Documentation =
| Task | Task description | |
| Projection plan | Based on the template to create a project plan1. Project plan is reasonable and complete.2. The actual working hours are recorded fully.3. The effort and contribution table is complete with justification (if needed) | |
| Version control system | The overall documentation is good regarding layout, spelling, grammar. Use screenshots to demonstrate that a version control system has been applied for the project. |
Requirements Analysis =
| Task | Task description | Marks |
| Functional requirements | All functional requirements are identified, list, and described properly in a table. Each functional requirement should have a unique functional requirement id, and it should be described clearly and completely. | |
| Non-functional requirements | Applying FURPS+ to identify, list, and describe at least 5 non-functional requirements. | |
| Use case diagram | Draw a use case diagram to show all use cases.1. All the use case diagram elements are included correctly.2. All functional requirements are covered3. All use cases are named properly (as verb + noun )4. Correctly use include and extend relationship | |
| Full use case description | Pick up a use case and develop a complete full use case description. All the elements in a full use case description should be presented. | |
| Requirement use casetraceability matrix | To create a traceability matrix to show the relationship between functional requirements and use cases |
Design and software architecture =
| Task | Task description | Marks |
| Class diagram | Draw a complete class diagram to demonstrate your design1. All functional requirements are covered, all classes are identified.2. Important attributes and methods should be given in each class.3. Correctly use UML notations.4. Should include correct multiplicity5. Should include all three different types of relationship: aggregation (composition), generalization, and association | |
| 6. Use CapitalCamelCase for class names and lowerCamelCase for method names. | ||
| Sequence diagram | Draw a sequence diagram to show one scenario 1. Correctly use sequence diagram notation.2. The class names and method names must match what in the class diagram.3. At least one option frame or if-else frame is used properly and correctly in one sequence diagram.4. At least one loop frame is used properly and correctly in one sequence diagram. | |
| Activitydiagram | Draw an activity diagram1. Correctly use activity diagram notation.2. Start and stop symbol must be presented correctly.3. At least a pair of synchronization bars are used properly and correctly in one activity diagram.4. At least one decision diamond is used properly and correctly in one activity diagram | |
| Component and ControllerView | Draw software architecture of the system in a C&C view type:1. You need to explain the style of this view.2. The view should cover the entire system3. The view should be a high level enough to highlight the structure. | |
| Implementation style view | Draw software architecture of the system in a implementation style:1. The folder structure should be complete and reasonable.2. You need to list most important files3. The function and key content of each folder and file need to be explained. | |
| Deployment style view | Present the projects software architecture in deployment styles1. You need to create a diagram to show the deployment setting, both hardware and software should be considered.2. You also need to give a list view to show the deployment environment of the project |
Video marking scheme =
| Task | Task description | Marks |
| Video submission | You are asked to submit a video to demonstrate the execution of the prototype of the game. The video should be shorter than 20 seconds, video content beyond 20 seconds will not be assessed.1. The video should be shorter than 20 seconds. | |
| Cross platform | The video demonstrate that the game prototype can execute at least on two different platforms | |
| Start up page | When the game is start, it should show a start up page, on this page it needs to display:1. The title and logo of Pac-Man2. The year and course code3. The list of all students in your group4. An exit button (must be functional)5. A configure button (maybe not function at this stage).6. A play button to take the player to the game (must be functional)7. | |
| Move Pacman | In the play screen, the pac-man can move in the maze based on key control. | |
| Monster | In the play screen, the monsters can move in the maze by them selves |
MARKING SCHEME Second stage submission
Project Planning and Documentation =
| Task | Task description | Marks |
| Projection plan | Based on the template to create a project plan1. Project plan is reasonable and complete.2. The actual working hours are recorded fully.3. The effort and contribution table is complete with justification (if needed) | |
| Automate document generation | The overall documentation is good regarding layout, spelling, grammar etc. Use screenshots to demonstrate that doxygen or other auto documentation generator has been used for the project to generate documents. |
Advanced Design =
| Task | Task description | Marks |
| MVCarchitecture design pattern | You need to apply MVC architectural design pattern in your game. You need to1. Briefly explain MVC2. Use design diagrams (part of a class diagram and or sequence diagrams) to explain how MVC implied in your design.3. Use relevant source code to show how MVC has been applied in implementation.4. Make sure the design diagrams and the source code are matching each other. | |
| Two other design patterns | You need to demonstrate that youve applied two design patterns (not including architectural design patterns such as MVC and three tiers) in your game. For each design pattern, you need:1. Explain what design pattern has been applied and why to use it.2. Use design diagrams to demonstrate your design3. Use relevant source code to demonstrate your implementation 4. Make sure the code and the diagram are matching each other. | |
| Design tactic | You need to demonstrate that youve applied one design tactic to improve certain quality attributes:1. Explain what design tactics has been applied and what quality attributes can be improved through the design tactics.2. Use design diagrams to demonstrate your design3. Use relevant source code to demonstrate your implementation4. Make sure the code and the diagram are matching each other. | |
| Random maze generation | Study the Wikipedia page (Maze generation algorithm Wikipedia) for random maze generation. | |
| Use relevant design diagram and source code to demonstrate that you have successfully applied a random maze generation algorithm in your game | ||
| Path search algorithms | Study the Wikipedia page (A* search algorithm Wikipedia) and(Maze-solving algorithm Wikipedia) to design two different monsterAI. One is dummy, that may use random search and the other one should be smarter. You need to show relevant design diagrams and souse code to demonstrate that youve applied at least two algorithms. |
Testing =
| Task | Task description | Marks |
| Software test description | Based on the STD template, produce a software test description.1. You will not create a separate document, just put relevant information in the single report.2. You might remove some irrelevant items from the STD template.3. Test cases must cover all use cases | |
| Software test report | Based on the STR template, produce a software test report.1. You will not create a separate document, just put relevant information in the single report.2. You might remove some irrelevant items from the STR template.3. Make sure all the use cases are tested (its fine if some of the test cant passed). |
Reflection =
| Master students need to write one page project reflection, fail to do so or the reflection doesnt make sense could result up to 10 mark deduction. | 0 |
Video marking scheme =
| Task | Task description | Marks |
| Video submission | You are asked to submit a video to demonstrate the execution of the full game. The video should be shorter than 30 seconds, video content beyond 30 seconds will not be assessed.1. The video should be shorter than 30 seconds. | |
| Cross platform | The video demonstrate that the game prototype can execute at least on two different platforms | |
| Configure page | The configure page works | |
| Sound and music | The game has suitable sound effect and music (could be different from original Pac-Man) | |
| Eat dots function | The Pac-man eat dots function is successfully demonstrated. After touch a dot, a dot is disappear and the score increases. | |
| Captured by monster | The Pac-man is killed by a monster function is successfully.1. When the Pac-man is capture by a monster, it will die,2. Another Pac-man will appear, and all monster will go back to base. The dots and power pallet should not recover when a Pac-man is dead.3. If all three Pac-mans are died, the game will be over | |
| Powerpallet function | Power pallet function is implemented as in the original Pac-man game | |
| Win condition | After a Pac-man eats all the dots, the game will display you win, when press a button, game back to start up page. No need to implement next level. | |
| Random maze generator | A random maze generator is successfully implemented. The randomly generate maze should not contain un-reachable spot. You may need to start a new game a few times to show that mazes are definitely randomly generated | |
| Game AI | Demonstrate that some monsters are dummy, just randomly move around and some monsters are smarter, they clearly know what are the good paths to catch the Pac-man |
You may use following tables as templates for your project management.
| Task | Plan | Actual | ||||||
| # | Task Name | Student | Planed Time | Cumulative Time | Finished Date | Time | Cumulative Time | Finished Date |
| 1 | Project plan | Smith | 2 Hours | 2 Hours | 17/03/20 | 2.5 | 2.5 | 18/3/20 |
| Mark | 3 Hours | 3 Hours | 17/03/20 | 3 | 3 | 17/3/20 | ||
| Task Total | 5 Hours | 5 Hours | 17/03/20 | 5.5 | 5.5 | 18/3/20 | ||
| 2 | Documentation | Smith | 3 Hours | 5 Hours | 21/03/20 | 2 | 4.5 | 21/3/20 |
| Anna | 2 Hours | 2 Hours | 20/03/20 | 3 | 3 | 21/03/20 | ||
| Task Total | 5 Hours | 10 Hours | 5 | 10.5 | ||||
| 3 | Draw Behavior Trees | |||||||
Project Working Load Summary
| Plan (hours) | Actual (hours) | |
| Total time | 100 | 105 |
| Average time per person | 20 | 21 |
| Smith | 20 | 25 |
| Anna | 20 | 15 |
| Mark | 20 | 20 |
| Joe | 15 | 18 |
| Tom | 25 | 27 |
Individual marking adjustment table (Example)
| Student | Effort Level* (Rating from 0 5, the information is filled by the group) | Contribution Level* (Rating from 0 5, the information is filled by thegroup) | Justification If a student received level rating of 3 or less, your group need to give explanation for the low level rating |
| Smith | 5 | 4 | |
| Anna | 5 | 5 | |
| Mark | 5 | 5 | |
| Joe | 4 | 3 | Joe didnt complete all the tasks assigned to him (he didnt draw the class diagram assigned to him) andMark helped to complete the tasks. |
- *Level ratings, 5 = excellent, 4 = good, 3 = reasonable, 2 = poor, 1 = unacceptable, 0 = none
Individual score is calculated based on the score of the submission and the students effort level and contribution level. Suppose the submission score is S, a students efforts level is e and contribution level is c. The students score is calculated based on the algorithm below:
T = e + c
| T | Student score |
| 7-10 | S x 100% |
| 5-6 | S x 80% |
| 3-4 | S x 40% |
| 1-2 | S x 20% |
| 0 | 0 |

![[Solved] ICT Assignment 1-Pacman](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip.jpg)

![[Solved] ICT Assignment 1-Pacman](https://assignmentchef.com/wp-content/uploads/2022/08/downloadzip-1200x1200.jpg)
Reviews
There are no reviews yet.