0% found this document useful (0 votes)
155 views4 pages

OOP Game Design Assignment Overview

The document outlines an assignment to design a game using object oriented principles. It includes an introduction to the game, system requirements, UML diagrams including use case, class and sequence diagrams, application testing, and a conclusion on what was completed. Code was borrowed from external sources and properly referenced. A video URL is also provided to demonstrate the working game.

Uploaded by

divyagoyal891
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
155 views4 pages

OOP Game Design Assignment Overview

The document outlines an assignment to design a game using object oriented principles. It includes an introduction to the game, system requirements, UML diagrams including use case, class and sequence diagrams, application testing, and a conclusion on what was completed. Code was borrowed from external sources and properly referenced. A video URL is also provided to demonstrate the working game.

Uploaded by

divyagoyal891
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

CT4030

Object Oriented Programming


& Software Design

Assignment-1
YOUR GAME NAME

May 2024
Contents
1. Introduction...................................................................................................................................3
a. Video URL..................................................................................................................................3
2. System Requirements....................................................................................................................3
3. Object Oriented Software Design..................................................................................................3
a. Usecase Diagram.......................................................................................................................3
b. Class Diagram.............................................................................................................................3
c. Sequence Diagram.....................................................................................................................3
4. Application Testing.........................................................................................................................3
5. Conclusion.....................................................................................................................................4
References.............................................................................................................................................4
1. Introduction
Motivation (2-3 lines).

Gameplay objectives overview (3-4 lines).

a. Codebase disclaimer
Example:

The code not marked with my student ID at the beginning of a class is borrowed from (provide URL).

The classes A, B and C are borrowed from (provide URL).

Briefly discuss the reason for this decision.

b. Video URL
A URL to your video demonstration. This could be a YouTube link, a OneDrive link or an attached file.

2. System Requirements
Bullet points and/or MoSCoW analysis (4-6 key requirements, prioritised)

3. Object Oriented Software Design


UML design approach, meaning,

a. Usecase Diagram
A Usecase diagram that has correlation to the key requirements.

Accompanied discussion (4-8 lines).

b. Class Diagram
(600-1500 words)

A Class diagram that can be seen fulfilling most requirements.

Highlight how classes were shortlisted.

Highlight where in the design OOP was adopted/used.

Provide examples of inheritance and polymorphism in your class diagram.

Discuss what benefits, if any, OOP/polymorphic behaviour has brought to the design.

Use code snippets where necessary.

Make sure that the class diagram has the same classes as the code.

c. Sequence Diagram
Optional.

If you provide one, it should have the same classes as in the class diagram.

4. Application Testing
At the minimum a test suite.

Tes Test Description Inputs Expected Actual Status


t Outcomes Outcomes
no.
1 The user can successfully login Username, Main System FAIL.
provided correct credentials. Password windows crashed. The
should load. system
crashed
because
of an
uncaught
exception.
1.a Main Main Pass.
windows windows
should load. should load.

5. Conclusion
What percentage of the requirements were completed. This could be a table or a list, same as
‘System Requirements’ section but now added with a ‘status’ column.

What worked well (2-3 lines).

What didn’t work well and why (3-4 lines).

References

Common questions

Powered by AI

Integrating a video demonstration, such as through a YouTube link, into project documentation can provide a visual and dynamic representation of the software in action, which might not be effectively conveyed through text alone. This approach allows stakeholders, such as project reviewers or clients, to visualize user interactions and game features, thereby enhancing understanding and engagement. The use of video can also help in showcasing the usability and functionality of the application, providing a clearer insight into the software's capabilities .

The conclusion section in a software project report is important as it summarizes the project's outcomes in relation to its initial objectives. It typically covers the percentage of requirements met, aspects that were successful, areas where challenges were encountered, and reasons for any shortcomings. This allows stakeholders to quickly assess the project's overall success, informs future development and planning, and provides accountability for the project's delivery. It is an essential part of communicating the value and performance of the project .

Potential challenges in borrowing elements from other codebases include compatibility issues, unclear licensing, and difficulty in integrating different coding styles or architectures. These can lead to increased debugging time and maintenance complexity. Such challenges should be addressed by thoroughly evaluating code compatibility and version compatibilities before integration, ensuring compliance with licensing agreements, and maintaining comprehensive documentation and attribution for all borrowed code to facilitate seamless integration and ensure legal and functional integrity .

The effectiveness of application testing is demonstrated by the test outcomes described. In this project, when the test case for user login failed due to an uncaught exception, it indicated an underlying flaw in exception handling, directly impacting software reliability. Conversely, successful subsequent tests suggest improvements were made, improving the system's robustness. This combination of outcomes highlights that thorough and iterative testing is crucial for identifying and fixing defects, ultimately enhancing software quality and ensuring the application performs as expected under various scenarios .

The MoSCoW analysis method helps in prioritizing system requirements by categorizing them into 'Must have,' 'Should have,' 'Could have,' and 'Would like to have' classes. This approach allows project managers and developers to focus on the critical requirements (Must have) necessary for project success, while also considering other levels of priority based on project resources and deadlines. For software projects, such as a video game, this ensures that the core gameplay elements and functionalities are implemented first, providing a solid foundation for adding additional features .

A failed application test, such as the user login test, can significantly impact project outcomes by introducing delays and additional development cycles to address the issue. Such failures indicate critical functionality shortcomings, necessitating immediate resolution to prevent cascading failures in dependent features. This can lead to a reassessment of project deadlines and resource allocation to prioritize bug fixes, potentially delaying the deployment schedule and affecting client satisfaction. Moreover, frequent or unresolved failures could undermine stakeholder confidence in the software's quality .

The Usecase Diagram is significant in relation to the key requirements of a software project as it provides a visual representation of the functional interactions between system actors and use cases. In a gaming context, it highlights the essential user interactions and system functionalities, ensuring that all critical gameplay objectives and system requirements are clearly identified and met. This helps in organizing and prioritizing development activities, thereby contributing to a more structured and comprehensive development process .

The implementation of object-oriented design principles such as inheritance and polymorphism benefits the software design of a video game by ensuring code reusability and scalability. Inheritance allows new game classes to derive properties and behaviors from existing classes, promoting a hierarchical structure that reduces redundancy. Polymorphism enables game objects to be treated as instances of their parent class, allowing behaviors to be implemented independently while maintaining a uniform interface. These principles facilitate easier maintenance and extensibility, as new features and modifications can be integrated with minimal disruption to existing code .

Software designers can ensure that their class diagram remains consistent with the actual codebase by implementing a rigorous documentation process that includes regular updates and reviews. Automated tools can be used to synchronize code changes with the design diagrams, detecting discrepancies early. Continuous integration practices enable real-time compliance checks, ensuring developed features align with design specifications. Moreover, regular team meetings and code reviews play a crucial role in maintaining consistency by facilitating communication among developers about any changes that need to be reflected in the diagrams .

A class diagram enhances understanding of a software design by providing a detailed blueprint of the system's structure through its classes, attributes, methods, and relationships. For a video game project, inheritance allows game entities to be structured logically, where subclasses inherit core behaviors from superclasses, reducing code duplication. Polymorphism allows for flexibility and scalability, enabling entities to process objects of the parent class types inherently, improving game behavior dynamics and performance. These principles are represented in the class diagram to illustrate how classes are organized and interact within the game's architecture .

You might also like