2805ICT/3815ICT Software Engineering: Minesweeper Game Milestone 2

Verified

Added on  2023/06/04

|14
|1883
|165
Report
AI Summary
This document is a progress report for Milestone 2 of a Minesweeper game project, developed in Android Studio using Java. It outlines the functional and non-functional requirements, including the implementation of a game board, click counter, and restart option. The report discusses unimplemented features such as a timer, multi-sized boards, and the reveal-connected-blank-boxes functionality. It also covers the software architecture, highlighting the use of Java and XML layouts, and explains the dynamic modeling with sequence and activity state diagrams, UML design patterns, and prototype software patterns. The report further details the testing process, including unit testing and black box testing, to ensure the feasibility and interface flexibility of the application. Desklib offers a variety of solved assignments and past papers to aid students in their studies.
Document Page
Running head: MINESWEEPER GAME- MILESTONE 2
Minesweeper Game- Milestone 2 Progress Report
Name of the student:
Name of the University:
Author note:
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
1
MINESWEEPER GAME- MILESTONE 2
Requirement Analysis
A handful of the functional and non-functional requirements have already been
capitalized onto and implemented in the prototype version of the application. The application
is about a minesweeper game. It is a game where the player is needed to click on the buttons
from a grid of boxes. There are placed a random number of bombs under a few of these
boxes. The user or the player is needed to click on these boxes to reveal if there is actually a
bomb underneath. If there is no bomb or mine present in any of the vicinity boxes of the
clicked box, a green patch of land would appear, otherwise, the number of boxes in the
vicinity will be displayed within the clicked box. The player is required to play with his wit
and calculations to click on all safe boxes and end the game without hitting any mine, this
will lead to a victory. On clicking a box with a hidden mine, the user will be bombed and the
game will be over. The user needs to complete the game with minimum number of clicks and
most importantly minimum amount time consumed.
The protoype has already fulfilled the following requirements:
1. It already has a game board and allows the users to play as necessary, but only in a
easy game board with 6*6 cells and 10 mines placed.
2. The number of clicks are available with every click of the user. This can even be
updated into the end screen information where the gamer can view the number of
clicks that he survived the game in case of a defeat.
3. The user can freely restart the board at any point of time. This will allow the user to
refresh his or her mind and play in a new board with a newer set of mine placements
and the entire board will be cleared. The restart option can also be availed using the
Restart option from the End screen.
Document Page
2
MINESWEEPER GAME- MILESTONE 2
4. The End screen also fruitfully displays the congratulations or defeated message
according to the ending of the game.
However, some of the crucial requirements could not be implemented into the
preliminary prototype version of the software application. The development process for these
implementations are still in process and will be completed and deployed in the final project.
These on-going requirement designs are as follows:
1. Timer: The project is yet to be implemented with a timer that keep tracks about the
time that a particular game is going on for.
2. Multi-sized boards: The development for multiple difficulty levels is in process. On
implementation, the game will have two types of boards. Apart from the 6*6 that it
already has, a 12*12 massive board will be introduced with more mines and increased
difficulty. This will certainly induce more user interest into the game.
3. Reveal all connected blank boxes: This is one of the most important implementations
that is yet to be implemented. Through this functionality the game will be able to
reveal all the connected boxes within the board with no bombs in the vicinity.
Use Case analysis
As mentioned in the requirement analysis phase, few of the functional use cases has
been already implemented however a lot remains. These will allow the project and the
software to be scaled up to a recommendable gaming application for all android application
users. The use cases that have been implemented have already been described in the
requirement fulfillment phase above, however, the unfulfilled use cases are as follows:
1. Choosing the difficulty level is still now allowable in the prototype version. The
prototype will allow the users to play on the easy board of 6*6 boxes.
Document Page
3
MINESWEEPER GAME- MILESTONE 2
2. Saving and viewing high scores is a coveted use case for any gaming applications or
software. This application too needs to have this feature. Through this feature, the
user will be able to analyze the time taken by him to play the game in the past and
compete against his past performances to attain newer achievements.
3. The project is yet to be implemented with a timer that keep tracks about the time that
a particular game is going on for. This will be necessary for the scalability of the
gamer’s performance over the game and allow him or her to compare with the
competitors.
Software Architecture
The project has been developed in the Android Studio Platform using the Java
programming language. Java is the most commonly used programming language in the world
and when it comes to android programming it is generally the first and foremost choice for
any programmer or app developer. The programming language offers the best of Object
Oriented Programming features and functionalities. This application too had the utmost need
of implementing the OOP or object oriented programming features like inheritance,
polymorphism and data hiding. Most importantly the use of classes and objects has been
extremely helpful in this process.
The application as mentioned before has been designed and developed on the Android
Studio platform which is the Google approved and developed first choice application for
android app development. This platform has tons of features, tools and functionalities that
allow the smooth design of development of project within it. The platform not only gives the
developers the scope to design and develop programs, but also allows the testers to test the
programs based on various test case analysis tools and techniques.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
4
MINESWEEPER GAME- MILESTONE 2
The game’s interface has been designed using the XML layouts. XML or eXtensible
Markup Language was designed for the purpose of storing and transporting data. XML was
primarily designed to be both machine-readable and human-interpreted. Later, android started
the use of XML parsing to create interface layouts. This allows the implementation of various
layout patterns with design based and alignment rules and techniques. It also has the
functionalities to import buttons, images and other necessary widgets that are necessary for
the designing of a complete software application interface. This creates the View of the
program.
Using Java was the primary choice of all other programming languages that are
available. Java provides the best use of OOP features. In this project too, object and classes
have been extensively used. Every entity in the project is determined and represented as
classes and objects. For the game development process, the Box class has been designed to
represent each box within the boards. The matrix Board [ ] [ ] is made to hold multiple
instance of the Box class. Each box object has been created with a special set of attributes
that determines whether it a mine of a safe land. Multiple single dimensional arrays and
multidimensional arrays have been used to simulate the game and help in the data collection
and calculation process for the game. The methods have been made private within the
BoardActivity class to keep it out of access from the outside classes. This helps in
maintaining security, which is a crucial feature of OOP. Intents have been created and passed
between various activities to convey data from one page of the app to the other. This
represents the controller of the program with the logical implications.
In the future, a model based level will be added to the project which will deal with the
data. SQLite database is to be implemented to hold the scores of the user playing on a
particular device. Doing so, will allow the easy access of data whenever necessary for score
Document Page
5
MINESWEEPER GAME- MILESTONE 2
calculations. Further, threads are to be implemented within Java to allow the timer to be
executed flawlessly in the background while the user is busy in the game.
Sophistication Discussion
The project has been implemented in the prototype without much need of data access
or security features. This is because the project is yet to be connected to any database with
sensitive user information. The interface design has been done keeping in mind almost all
sizes of screens. It was necessary as the program was being developed for the mobile devices
and there are various sizes available nowadays. The interface has buttons and clickable icons
wherever necessary. This allows to exhibit a rich user interface with quality graphics and
interactive medium. The program has been so developed to display Toast messages in case of
all notifications that the use requires. This is one of the information access feature that the
program has already achieved in its prototype version.
As of now there is only one type of user that plays the game and therefore access
control and security measures have been overlooked. However in the future with the
implementation of the database and user login abilities, these will be induced. The entire
process will be repeated and the implementations will be done based on the Agile
Development process.
Testing
The prototype has been thoroughly tested using the tools and techniques provided by
Android Studio. The program has been tested not only for the feasibility of the functionalities
but also has the interface flexibility has been tested for various resolution screens. This has
been done with the help of the emulator that is provided by Android Studio.
The unit testing technique had been primarily used to test the application’s individual
units and activates. On successfully testing the modules individually, the project was tested
Document Page
6
MINESWEEPER GAME- MILESTONE 2
using the Black Box testing methods to check for fulfilment of the complete functionality
integrations.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
7
MINESWEEPER GAME- MILESTONE 2
Dynamic Modelling
Sequence Diagram
Document Page
8
MINESWEEPER GAME- MILESTONE 2
Activity State Diagram
UML Design Patterns
UML Class Diagram for prototype
Document Page
9
MINESWEEPER GAME- MILESTONE 2
Prototype Software Patterns
The BoardActivity java page of the application is being highlighted in this section to
describe the software design patterns.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
10
MINESWEEPER GAME- MILESTONE 2
Document Page
11
MINESWEEPER GAME- MILESTONE 2
Apart from the above java programming part, there is also the layout xml file that was coded
in order to design the interface of the activity. The code for the xml is being attached below.
chevron_up_icon
1 out of 14
circle_padding
hide_on_mobile
zoom_out_icon