You are on page 1of 40

Software Design Document

Project Report on

GAMING APPLICATION FOR THE ELDERLY

“A Dissertation Submitted in partial fulfillment of the requirements of Bachelor of


Technology Degree in Computer Science and Engineering of The Maulana Abul Kalam Azad
University of Technology for the year 2017-2018”

Submitted By:

SHAHAN ALI KHAN 14800114084 (Class Roll – 89)

MD ARMAN 14800114051 (Class Roll – 91)

MD ASIFUDDIN 14800114048 (Class Roll – 95)

MD TAHIR 14800114050 (Class Roll – 79)

GROUP NO. 28

Under The Guidance Of:

MR. SAMIR GHOSH


Professor
Dept.of Computer Science & Engineering
Future Institute Of Engineering and Management

[Affiliated to Maulana Abul Kalam Azad University of Technology, West Bengal]

Kolkata-700150, West Bengal.

i
Software Design Document

Certificate of Approval
This is to certify that this B.Tech 6th semester project, entitled “GAMING APPLICATION
FOR THE ELDERLY” is a record of bona-fide work, carried out by Md Arman, Md
Asifuddin, Md Tahir and Shahan Ali Khan under my supervision and guidance.

In my opinion, the report in its present form is in partial fulfillment of all the requirements, as
specified by the Future Institute of Engineering and Management and as per regulations of
Maulana Abul Kalam Azad University of Technology. In fact, it has attained the standard
necessary for submission. To the best of my knowledge the results embodied in this report are
original in nature and are worthy of incorporation in the present version of the report for B
Tech programme in Computer Science and Engineering in the year 2017-2018.

It is understood by this approval the undersigned does not necessarily endorse or approve
any statement made, opinion expressed or conclusions drawn therein, but approve this thesis
for the purpose for which it is submitted.

Guide/Supervisor

Prof. Samir Ghosh

Dept.of Computer Science & Engineering

Future Institute Of Engineering and Management

Examiner(s) Head of the Department

Computer Science and Engineering

Future Institute of Engineering and Management

ii
Software Design Document

Acknowledgement

We have taken efforts in this project. However, it would not have been possible without the
kind support and help of many Individuals and Organizations. We would like to extend my
sincere thanks to:-

 Our mentor and guide, Prof. Samir Ghosh for his continuous guidance and support.

 All the Faculty , Technical and Non Technical attendants of our college.

 Our batch mates for helping in any sort of problem in the project.

 Our parents for their encouragement and support.

 Our Head of the Department, Prof. Tapas Roy & Principal Dr. Aloke Kumar Ghosh
for providing us all facilities and cooperation during our work.

 We thank our god for providing us with everything that we require in

completing this Project.

iii
Software Design Document

Contents

1. CHAPTER 1 INTRODUCTION 1

1.1. Objective 1

1.2. Scope Of The System 1

1.3. Feasibility Study 2

1.3.1. Technical Feasibility 2

1.3.2. Operational Feasibility 3

1.3.3. Economic Feasibility 4

2. CHAPTER 2 SOFTWARE REQIREMENT SPECIFICATION 6

2.1. Functional Requirements 6

2.2. Non-Functional Requirements 7

3. CHAPTER 3 SOFTWARE DEVELOPMENT PROCESS MODEL 9

4. OVERVIEW 15

4.1. System Overview 15

4.1.1. Limitation Of Existing System 15

4.2. Proposed System 16

4.2.1. Objectives Of The Proposed System 16

4.2.2. Users Of The Proposed System 18

5. CHAPTER 5 ASSUMPTIONS AND DEPENDENCIES 19

6. CHAPTER 6 TECHNOLOGIES 21

6.1. Tools Used In Development 21

iv
Software Design Document

6.2. Development Environment 22

6.3. Software Interface 25

6.4. Hardware Used 25

7. CHAPTER 7 DESIGN 26

7.1. Class Diagram 26

7.2. Data Flow Diagram 28

8. CHAPTER 8 TESTING 30

8.1. Unit Testing 30

8.2. Data Integrity Testing 31

9. CHAPTER 9 SNAPSHOTS 32

10. CHAPTER 10 CONCLUSIONS AND FUTURE SCOPE 36

11. CHAPTER 11 REFERENCES 37

v
Software Design Document

1. INTRODUCTION
The Memory Match Game is an ancient card game which are interesting for all ages. They
help develop visual skills, spatial memory and recognition of objects and shapes. Previously
the game was played mostly by using real cards but this project focuses on the conversion of
the game to a virtual platform.

1.1. OBJECTIVE
Every college supposedly has a website but there are several cons like server crashes,
pages failing to load, etc. Moreover since websites aims at reaching out to a vast set of
audiences it doesn’t provide each and every minute details like routines, important
notices, contact information of the faculties etc. that helps a student. The Android
Application FIEM aims to solve those issues.

1.2. SCOPE OF THE SYSTEM

Memory match games are essential for exercising one's ability to be attentive while
playing and thus improve memory. These games are employed in the field of
psychology as techniques to train and gauge memory skills.

Memory match games helps in building concentration, visual memory and


discrimination abilities.

These games are a good start for game developers as a beginner and it provides the
team a challenge on how to work on the visual effects, the logic of the game, the
layers and the audio synchronisations.

These games are generally meant for all age groups but helps young kids and older
people increase their memory power and cognitive skills, and helps to discriminate
between objects. These are helpful for people with Alzheimer’s disease and a lot
more.

1.3.FEASIBILITY STUDY

1
Software Design Document

A Feasibility Study determines whether a project is worth doing. The process followed for
making this determination is called a Feasibility Study. This type of study determines
whether a project can and should proceed. Once it has been determined that a project is
feasible, the analyst can proceed and prepare the project specifications that finalize the
project specification.

1.3.1. TECHNICAL FEASIBILITY

Technical feasibility centers on the existing computer system, hardware, software


etcetera and to what extent it can support the system. In examining the technical
feasibility, the configuration of the system is given more importance than the actual
hardware. The configuration should provide the complete picture of the system
requirements, for example how many workstations are required and how these units
are interconnected so that they would operate smoothly, etcetera. The result of the
Technical Feasibility Study is the basis for the documents against which dealer and
manufacturer can make bids. Specific hardware and software products can then be
evaluated keeping in view the logical needs.

After performing Technical Feasibility over the concerned project, it is found that the
project is technically feasible. The following key areas were noted:

The Software bundle, required to develop the application is easily available online
with good amount of tutorials.

With the available resources, it is possible to develop the product skeleton within the
scheduled time.

It is possible to make very responsive and dynamic UI that will support all most all
the available mobile screen resolutions and dimensions.
2
Software Design Document

Online PHP servers, required for the application to host the Database online are
available. Both offline and online features can be included within the same
application, meeting the project specification.

1.3.2. OPERATIONAL FEASIBILITY

It determines how acceptable the software is within the organization. The evaluations
must then determine the general attitude and skills. Such restriction of the job will be
acceptable. To the users are enough to run the proposed budget, hence the system is
supposed to the feasible regarding all except of feasibility. In operational feasibility,
one attempts to ensure that every user can access the system easily.

So, after operational feasibility analysis, it is found that the application is


operationally feasible as well. The following reasons establishes the fact that the
application is operationally feasible:

Almost 90% of the students and faculty members uses Android Smartphone, for
which the application has been developed. So it will attract a large mass of students
and faculty members to use the application.

The application does not require a very high end mobile device. It is supported almost
all the present day available Android devices. As a result, anyone can use this
application, having an Android device.

The application will be available in the Google’s Playstore, from where anyone can
download and install the application for free of cost.

3
Software Design Document

Since both offline and online features are included within the same application, it will
be extensively used by the college students and faculty members.

The application exploits the native Android OS’s features for better and smooth
functionality, resulting in users’ satisfaction after using the application.

1.3.3. ECONOMIC FEASIBILITY

Economic analysis is the most frequently used method for evaluating the effectiveness
of a new system. More commonly known as cost/benefit analysis, the procedure is to
determine the benefits and savings that are expected from a candidate system and
compare them with costs. If benefits outweigh costs, then the decision is made to
design and implement the system.

It is an analysis of the cost to be incurred in the system and benefits the derivable
from the system. An economic Feasibility Study should demonstrate the net benefit of
the proposed course of action in the context of direct and indirect benefits and costs to
the organization and to the public as a whole. It should be required for both pilot and
long-term activities, plans and projects. After performing this Analysis, it was found
that the project is economically feasible due to the following reasons:

The Software bundle, required to develop the application is easily available online at
free of cost. The whole package, which is the ADT Bundle is an open source software
package. So there is no Software cost.

4
Software Design Document

With the available hardware resources, it is possible to develop the product with all of
its specified functionalities.

Since a lot of quality online tutorials is available, no special trainer is required for the
training purpose.

Since both offline and online features are included within the same application, it will
be extensively used by the college students and faculty members. So, it is an overall
benefit for the college.

The application is the first of its kind and it offers the opportunity generate revenue
via advertisement within the native application.

2. SOFTWARE REQUIREMENT SPECIFICATION(SRS)

A software requirements specification (SRS) is a comprehensive description of the intended


purpose and environment for software under development. The SRS fully describes what the
software will do and how it will be expected to perform.

5
Software Design Document

An SRS minimizes the time and effort required by developers to achieve desired goals and
also minimizes the development cost. A good SRS defines how an application will interact
with system hardware, other programs and human users in a wide variety of real-world
situations. Parameters such as operating speed, response time, availability, portability,
maintainability, footprint, security and speed of recovery from adverse events are evaluated.

2.1. FUNCTIONAL REQUIREMENTS

The functional requirements of the project are as follow: -

The application requires four permissions

o Modify or delete the contents of the SD card

o Read the contents of the SD card

o Full Network access

o View Network Connections

New user have to register to use the online features of the Application Contacts stored in
the application can be called upon requirement

Mail can be sent to stored mail id upon requirement

The Google Map link for the college stored in the application can be used to directly
find the location and navigate using Google Maps

In case of a feature phone the receiver can see the address details and take necessary
steps Users can browse through various categories of information and view their
details
6
Software Design Document

In case of no Internet connection, the app can still be used with its offline features.
However the online features will not work.

2.2. NON FUNCTIONAL REQUIREMENTS

The non-functional requirements of the project are as follow: -

Reliability:
The capability to maintain the specified level of performance is what meant by
reliability. This application will run on any android phone having Android version 4.0
or above.

Availability:
The application will run 24 X 7 even if no internet connection is available. Its offline
features make sure that the application is useful even without the requirement of
Internet Connection.

Security:
Security requirements placed restrictions on the use of this application by the student
and the faculty of Wireless Lan communicator only, control access to the data,
provide different kinds of requirements to different people, require the use of
passwords. It provides proper security in its online access of sophisticated data.

Maintainability:
Maintenance is one form of change that typically is done after the software
development has been completed. As the time change, so do the needs. It revolves

7
Software Design Document

around the understanding of the existing s/w and the effects of the change. This
application needs a timely update of information table of the database by the admin
and developer. Any other feature as per the requirement can be added any time by the
admin and developer.

Portability:
The capability adapted for different specified environments without applying actions
or means other than those provided for this purpose in the product. Since, phones are
portable, so do the application. The application can be transferred from an Android
phone to another one through Bluetooth or direct Wi-Fi connection, making it more
portable.

3. SOFTWARE DEVELOPMENT PROCESS MODEL ADOPTED

This Application development project was a high risk project. It is due to the fact that the
number of developers was not enough for its development and Android development is
relatively a new Technology. So Spiral Model of Software development approach was
selected, since this model is best the best model for high risk project.

SPIRAL MODEL OF SOFTWARE DEVELOPMENT PROCESS

8
Software Design Document

The spiral model combines the idea of iterative development with the systematic, controlled
aspects of the waterfall model. This Spiral model is a combination of iterative development
process model and sequential linear development model i.e. the waterfall model with a very
high emphasis on risk analysis. It allows incremental releases of the product or incremental
refinement through each iteration around the spiral.

Spiral Model - Design

The spiral model has four phases. A software project repeatedly passes through these phases
in iterations called Spirals.

Identification

This phase starts with gathering the business requirements in the baseline spiral. In the
subsequent spirals as the product matures, identification of system requirements, subsystem
requirements and unit requirements are all done in this phase.

This phase also includes understanding the system requirements by continuous


communication between the customer and the system analyst. At the end of the spiral, the
product is deployed in the identified market.

Design

The Design phase starts with the conceptual design in the baseline spiral and involves
architectural design, logical design of modules, physical product design and the final design
in the subsequent spirals.

Construct or Build

9
Software Design Document

The Construct phase refers to production of the actual software product at every spiral. In the
baseline spiral, when the product is just thought of and the design is being developed a POC
(Proof of Concept) is developed in this phase to get customer feedback. Then in the
subsequent spirals with higher clarity on requirements and design details a working model of
the software called build is produced with a version number. These builds are sent to the
customer for feedback.

Evaluation and Risk Analysis

Risk Analysis includes identifying, estimating and monitoring the technical feasibility and
management risks, such as schedule slippage and cost overrun. After testing the build, at the
end of first iteration, the customer evaluates the software and provides feedback. The
following illustration is a representation of the Spiral Model, listing the activities in each
phase.

Fig. 3.1: Spiral Model of SDLC

Based on the customer evaluation, the software development process enters the next iteration
and subsequently follows the linear approach to implement the feedback suggested by the

10
Software Design Document

customer. The process of iterations along the spiral continues throughout the life of the
software.

Spiral Model Application

The Spiral Model is widely used in the software industry as it is in sync with the natural
development process of any product, i.e. learning with maturity which involves minimum
risk for the customer as well as the development firms.

The following pointers explain the typical uses of a Spiral Model −

When there is a budget constraint and risk evaluation is important.

For medium to high-risk projects.

Long-term project commitment because of potential changes to economic priorities as


the requirements change with time.

Customer is not sure of their requirements which is usually the case.

Requirements are complex and need evaluation to get clarity.

New product line which should be released in phases to get enough customer feedback.

11
Software Design Document

Significant changes are expected in the product during the development cycle.

Spiral Model - Pros and Cons

The advantage of spiral lifecycle model is that it allows elements of the product to be added
in, when they become available or known. This assures that there is no conflict with previous
requirements and design.

This method is consistent with approaches that have multiple software builds and releases
which allows making an orderly transition to a maintenance activity. Another positive aspect
of this method is that the spiral model forces an early user involvement in the system
development effort.

On the other side, it takes a very strict management to complete such products and there is a
risk of running the spiral in an indefinite loop. So, the discipline of change and the extent of
taking change requests is very important to develop and deploy the product successfully.

The advantages of the Spiral SDLC Model are as follows −

Changing requirements can be accommodated.

Allows extensive use of prototypes.

Requirements can be captured more accurately.

12
Software Design Document

Users see the system early.

Development can be divided into smaller parts and the risky parts can be developed
earlier which helps in better risk management.

The disadvantages of the Spiral SDLC Model are as follows −

Management is more complex.

End of the project may not be known early.

Not suitable for small or low risk projects and could be expensive for small projects.

Process is complex

Spiral may go on indefinitely.

Large number of intermediate stages requires excessive documentation.

13
Software Design Document

4. OVERVIEW
Before the emergence of smart phones and android applications, computer used to be the only
device to access the internet. Slowly smartphones made its entry into the digital world and
took it by storm, followed by the android. Google’s Play Store is flooded with apps every day
since it is an open source platform. These applications gradually took over websites due to
their reliability, consistency, connectivity, efficiency, easy-availability and more interactive
interface. Since it is more plausible to use android applications than opening webpages using
browser, we came up with the idea of FIEM College Android App.

4.1. SYSTEM OVERVIEW

Every college supposedly has a website but there are several cons like server crashes, pages
failing to load, etc. Moreover since websites aims at reaching out to a vast set of audiences it
doesn’t provide each and every minute details like routines, important notices, contact
information of the faculties etc. that helps a student.

14
Software Design Document

4.1.1. Limitation of Existing System

The existing system has limitations like accuracy, expense, low speed and efficiency.
Websites of several other institutions have been carefully studied and some limitations
were noticed. In the existing system, all data processing is done manually. Data changes
or updates are not notified to the user. User needs to open the website through a browser
in order to check if any update has been made. It needs to be accessed online, so internet
connection is a must. It doesn’t have an app store (Google Playstore) presence, narrowing
the scope for publicity. Poor website designing can lead to performance issues, cluttered
design and poor usability than creates an overall bad experience for the user. Most
importantly existing system is inefficient in terms of providing several important
information that is needed by the user for everyday purpose.

4.2. PROPOSED SYSTEM

In the proposed system we propose to emphasize on the above-mentioned activities. In the


existing system, user needs to be updated manually. Availability of push notification in the
proposed system helps to keep users informed daily, a facility unavailable in the existing
system. It is much more interactive than existing systems. Proposed system offers better
personalization options as well. The system can operate in offline mode also making it much
more accessible and efficient. Innovative functionality of the system gives freedom in
designing. Moreover consumption of time can be reduced to far greater extend by the
implementation of the proposed system. The proposed android based information system is
aimed at eliminating the limitations of the existing system via increasing speed of
information retrieval and providing notifications on updates. The proposed system fully
satisfies user needs.

15
Software Design Document

4.2.1. Objectives of the Proposed System

The objectives of the proposed application are:

To promote our college in Google’s Play Store in order to reach greater mass of
people.

To promote healthy exercises to the brain by using the application on a regular basis.

To improve concentration by focusing on the game.

To enhance cognitive skills.

To boost the brain functionality

To train the visual memory of especially elder people as it can be very healthy in old
age.

To increase short-term memory of the people.

To reduce repetitive online data usage to a great extent.

16
Software Design Document

To make use of mobile device features like direct messages from the application,
direct e-mail, GPS etc.

To increase intra-college communication among teachers and students by


implementing app to direct call and app to direct mail features.

To prevent memory related illness and help to keep focus as this app will force people
to think fast and by retaining attention to the game.

To provide a smooth, user friendly UI (User Interface) in the application to attract


more people to use the application on a daily basis.

4.2.2. Users of the Proposed System

The Proposed system attracts the following users:

Students

Faculty Members

Guardians of the Students

Administrative Members from the College

Anyone and Everyone especially kids and elder people.

17
Software Design Document

5. ASSUMPTIONS AND DEPENDENCIES

The Memory Match Card Game application is the first of its kind. Hence a number of
assumptions were made before the beginning of the project and a number of dependencies
were noted down.

The assumptions of this application are listed below:

The user will provide all the data with location, needed to populate the application.

The application will be launched in the Google’s Play Store by the ministry of home
affairs.

Thus it can be downloaded and installed by the users easily in to their Android
Device.

18
Software Design Document

All the subsequent updates and maintenance of the application will be done by the
user.

The application can run in multiple platforms including Android devices, Mac, iOS
and windows.

The Dependencies of this application are listed below:

The Application shall be used with the assumption that the Android API/Unity3d
licensing agreement remains the same.

It shall be used with the assumption that the device has one or more Chat application,
through which messages can be sent to different players.

It shall be used with the assumption that the device’s network interface card and
driver are operating correctly.

It shall be used with the assumption that the device has a working GPS navigation
system and the preinstalled Google Maps application works fine in the device so that
the location of the player is known by the application.

19
Software Design Document

6. TECHNOLOGIES

To make a successful Cross-platformed application, choosing the right software tools


according to the available hardware resources is very important. Currently, the best, updated
and official tool for developing a Gaming application is the Unity 3D software. But Unity 3D
requires a lot hardware resources. Hence the Unity3D game engine along with Android
Studio ADT bundle was chosen as the suitable development environment.

Another important aspect of this project is that this application must be supported on the
majority of Current day Android Devices and other platfoms. So Android SDK 14 was
chosen as the minimum SDK version, in order to support most of the available Android
devices today and for the application to be supported on other platforms, MonoDevelop was
used to develop the application for Linux, Windows and MacOS.

6.1.TOOLS USED IN THE DEVELOPMENT

6.1.1. Software tools

MonoDevelop for Microsoft Windows 8.1

20
Software Design Document

Android SDK

Microsoft Visual Studio Code for C# scripts

Java JDK 6 or later versions

Java Runtime Environment (JRE) 6

Android Development Tool (ADT) Eclipse Plug-in Android Virtual Device (AVD)
Manager

Adobe Photoshop 7.0 or higher

6.1.2. Hardware tools

A desktop having the following major specifications:

Intel Pentium G620 Dual Core 2.6Ghz Processor

6 GB RAM

NVidia GeForce GT 710 (2GB)

6.2. DEVELOPMENT ENVIRONMENT


Unity3D, equipped with Microsoft Visual Studio Code and MonoDevelop along with
Android Studio bundle has been chosen as the development environment due to its less
hardware resource requirement and efficient rendering and cross-platformed application
building operation. The Unity3D game engine provides everything that one needs to start
developing apps, including a version of C# and Android Studio bundle with built-in ADT
(Android Developer Tools) to streamline the Android app development.

21
Software Design Document

In short, with a single download, the Unity3D engine and The Android Studio bundle with
Android SDK includes everything one needs to begin developing cross-platformed
applications. Those components are discussed below:

MonoDevelop: MonoDevelop (also known as Xamarin Studio) is an open source integrated


development environment for Linux, macOS and Windows. Its primary focus is development
of projects that use Mono and .NET frameworks. MonoDevelop integrates features similar to
those of NetBeans and Microsoft Visual Studio, such as automatic code completion, source
control, a graphical user interface (GUI) and Web designer. MonoDevelop integrates a GUI
designer called Stetic.

It supports Boo, C, C++, C#, CIL, D, Java, Oxygene, Vala, and Visual Basic.NET.

MonoDevelop can be used on Windows, macOS and Linux. Officially supported Linux
distributions include CentOS, Debian, Fedora, openSUSE, SUSE Linux Enterprise, Red Hat
Enterprise Linux and Ubuntu, with many other distributions providing their own unofficial
builds of MonoDevelop in their repositories. MacOS and Windows have been officially
supported since version 2.2.

MonoDevelop has included a C# compiler (an alternative to MSBuild and CSC) since its
earliest versions. It currently includes a compiler that supports C# 1.0 to C# 6.0.

Microsoft Visual Studio Code: Visual Studio Code can be a great companion to Unity for
editing and debugging C# files. All of the C# features are supported and more.

22
Software Design Document

Unity has built-in support for opening scripts in Visual Studio Code as an external script
editor on Windows and OSX. Unity will detect when Visual Studio Code is selected as an
external script editor and pass the correct arguments to it when opening scripts from Unity.
Unity will also set up a default with file excludes, if it does not already exist.

Android SDK: The Android software development kit (SDK) includes a comprehensive set of
development tools. These include a debugger, libraries, a handset emulator, documentation,
sample code, and tutorials. Currently supported development platforms include computers
running Linux (any modern desktop Linux distribution), Mac OS X 10.5.8 or later, and
Windows XP or later. As of March 2015, the SDK is not available on Android itself, but the
software development is possible by using specialized Android applications.

Android applications are packaged in .apk format and stored under /data/app folder on the
Android OS (the folder is accessible only to the root user for security reasons). APK package
contains .dex files (compiled byte code files called Dalvik executable), resource files, etc.

Java development kit: The Java Development Kit (JDK) is a software development
environment used for developing Java applications and applets. It includes the Java Runtime
Environment (JRE), an interpreter/loader (java), a compiler (javac), an archiver (jar), a
documentation generator (javadoc) and other tools needed in Java development.

Android ADT: Android Development Tools (ADT) is a plugin for Unity3D that is designed
to give you a powerful, integrated environment in which to build Android applications.ADT
extends the capabilities of Unity to let you quickly set up new Android projects, create an
application UI, add packages based on the Android Framework API, debug your applications
using the Android SDK tools, and even export signed (or unsigned) .apk files in order to
distribute your application.

23
Software Design Document

Developing in Unity with ADT is highly recommended and is the fastest way to get started.
With the guided project setup it provides, as well as tools integration, custom unity editors,
and debug output pane, ADT gives you an incredible boost in developing Android
applications.

6.3. SOFTWARE INTERFACE

The software will run on the Android and Windows operating system, specifically version 4.0
(Ice-cream Sandwich) and above (for android) and XP(32-bit) and above (for Windows).
Apart from the updated OS version, it device should also have the working built in
application like Dialer, any E-Mail application, Maps etc. for the smooth functioning of the
application.

6.4. HARDWARE USED

The Application has been designed in such a way, that it will run on all the android and
windows devices, with user-defined screen resolution, size and orientation. Android devices
with android version 4.0 and Windows XP and above having RAM 256 Mb and 12Mb
graphics will be sufficient to run this application.

24
Software Design Document

7. DESIGN

System design is the process of defining the architecture, modules, interfaces and data for a
system to satisfy specified requirements. System design could be seen as the application of
system’s theory to product development. There is some overlap with the disciplines of
systems analysis, systems architecture and systems engineering. To explain the system design
of this project, its class diagram, data flow diagram and context diagram are given.

7.1. CLASS DIAGRAM

In software engineering, a class diagram in the Unified Modelling Language (UML) is a type
of static structure diagram that describes the structure of a system by showing the system's
classes, their attributes, operations (or methods), and the relationships among objects.

The class diagram is the main building block of object-oriented modelling. Class diagrams
can also be used for data modelling. The classes in a class diagram represent both the main
elements, interactions in the application, and the classes to be programmed. In the design of a
system, a number of classes are identified and grouped together in a class diagram that helps
to determine the static relations between them. With detailed modelling, the classes of the
conceptual design are often split into a number of subclasses.

A relationship is a general term covering the specific types of logical connections found on
class and object diagrams. UML defines the following relationships, shown in the figure:

25
Software Design Document

Fig 7.1.1: Relationships in a class diagram

26
Fig 7.1.2: Class Diagram of Memory Game Application
Software Design Document

7.2. DATA FLOW DIAGRAM

A data flow diagram (DFD) is a graphical representation of the "flow" of data through an
information system, modelling its process aspects. A DFD is often used as a preliminary step
to create an overview of the system without going into great detail, which can later be
elaborated. DFDs can also be used for the visualization of data processing (structured
design).

A DFD shows what kind of information will be input to and output from the system, how the
data will advance through the system, and where the data will be stored. It does not show
information about the timing of process or information about whether processes will operate
in sequence or in parallel unlike a flowchart which also shows this information.

Data flow diagrams are also known as bubble charts. DFD is a designing tool used in the top-
down approach to Systems Design. A context diagram is a top level (also known as "Level 0")
data flow diagram. It only contains one process node ("Process 0") that generalizes the
function of the entire system in relationship to external entities. Below, the top level data flow
diagram of this project is shown:

Fig 7.2.1: Context Level Diagram of Memory Game Application

27
Software Design Document

Fig 7.2.2: Flow Chart of Memory Game Application

28
Software Design Document

8. TESTING

Testing is an investigation conducted to provide stakeholders with information about the


quality of the product or service under test. Software testing can also provide an objective,
independent view of the software to allow the business to appreciate and understand the risks
of software implementation. Test techniques include the process of executing a program or
application with the intent of finding software bugs (errors or other defects), and verifying
that the software product is fit for use.

8.1. UNIT TESTING

Unit Testing is a level of software testing where individual units/ components of a software
are tested. The purpose is to validate that each unit of the software performs as designed.

A unit is the smallest testable part of software. It usually has one or a few inputs and usually a
single output. In procedural programming a unit may be an individual program, function,
procedure, etc. In object-oriented programming, the smallest unit is a method, which may
belong to a base/ super class, abstract class or derived/ child class. After performing unit
testing, the following benefits were obtained:

Unit testing increased confidence in changing/ maintaining code. Codes were made
less interdependent to make unit testing possible, thus the unintended impact of
changes to any code is less.

In order to make unit testing possible, codes were needed to be modular. So now, the
codes are more reusable.

29
Software Design Document

The cost of fixing a defect detected during unit testing is lesser in comparison to that
of defects detected at higher levels. So, successful Unit testing ensured faster future
development speed.

Unit testing made debugging easy. When a test failed, only the latest changes were needed to
be debugged. With testing at higher levels, changes made over the span of several days/
weeks/ months need to be scanned.

8.2. DATA INTEGRITY TESTING

Data integrity corresponds to the quality of data in the databases and to the level by which
users examine data quality, integrity and reliability. Data integrity testing verifies that the data
in the database is accurate and functions as expected within a given application. It involves:

Checking whether or NOT a blank value or default value can be retrieved from the
database.

Validating each value if it is successfully saved to the database.

Ensuring the data compatibility against old hardware or old versions of operating
systems.

Verifying the data in data tables can be modified and deleted

Running data tests for all data files, including clip art, tutorials, templates, etc.

30
Software Design Document

9. SNAPSHOTS

Fig 9.1: Home Page

Fig 9.2: Help Page

31

Fig 9.3: Credits Page


Software Design Document

Fig 9.4: Level 1

Fig 9.5: Level 2

32
Software Design Document

Fig 9.6: Cards when unmatched

Fig 9.7: Cards when matched

33

Fig 9.8: Cards Asset


Software Design Document

10. CONCLUSION AND FUTURE SCOPE


We are a presently having the largest population of youth and that is the bedrock of our
future. However, we are soon also going to have perhaps the largest population of the elderly
and get the label of the Geriatric nation. But these elderly have been the backbone of our
nation and we must ensure that it remains strong-physically as well as mentally.

It is the latter issues (mental) and the challenges that it entails that we wish to bring to the
notice of make the youth to offer viable solutions.

One possible way to arrest the onset or at least lessen the impact of these challenges is to
engage the elderly in mind games.

To turn this program into a fully complete software application, we are required to:

• Add a suitable splash screen.

• Add an option for the user to access some online help and information about it.

• Construct a user guide with more detailed information about the program and how it
works.

Challenges we face:
• Adding some styling rules to make the game more appealing.
• Increasing the size of the board to make the game more complex.
• Setting the timer for how long the user has to make all of the matches to level up.
• Coming up with a way to shuffle the cards so that the cards are shuffled each time the
program runs.
• Adding new levels to the game so that the number of cards in the game increases with
each card having exactly one match in the game and increasing the time limit for each
level.
• Coming up with a way for scoring to be done both on single and multiple level scale.
• Increasing the number of players to 2 to make the game more interesting.

11. REFERENCES

34
Software Design Document

Official Android Developers’ Website – Providing the Android SDK and documentation
for app developers and designers (https://developer.android.com/)

Tutorialspoint – Online Unity Tutorial (https://www.tutorialspoint.com/unity/)

Unity 3D – Online Unity Tutorials (https://unity3d.com/learn/tutorials/)

Udemy – Online Tutorial in Unity (https://www.udemy.com/unitycourse/)

35

You might also like