Professional Documents
Culture Documents
Project Report on
Submitted By:
GROUP NO. 28
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
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 Head of the Department, Prof. Tapas Roy & Principal Dr. Aloke Kumar Ghosh
for providing us all facilities and cooperation during our work.
iii
Software Design Document
Contents
1. CHAPTER 1 INTRODUCTION 1
1.1. Objective 1
4. OVERVIEW 15
6. CHAPTER 6 TECHNOLOGIES 21
iv
Software Design Document
7. CHAPTER 7 DESIGN 26
8. CHAPTER 8 TESTING 30
9. CHAPTER 9 SNAPSHOTS 32
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.
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.
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.
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.
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.
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.
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.
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.
New user have to register to use the online features of the Application Contacts stored in
the application can be called 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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
12
Software Design Document
Development can be divided into smaller parts and the risky parts can be developed
earlier which helps in better risk management.
Not suitable for small or low risk projects and could be expensive for small projects.
Process is complex
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.
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
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.
15
Software Design Document
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 train the visual memory of especially elder people as it can be very healthy in old
age.
16
Software Design Document
To make use of mobile device features like direct messages from the application,
direct e-mail, GPS etc.
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.
Students
Faculty Members
17
Software Design Document
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 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 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
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.
20
Software Design Document
Android SDK
Android Development Tool (ADT) Eclipse Plug-in Android Virtual Device (AVD)
Manager
6 GB RAM
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:
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.
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.
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.
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
26
Fig 7.1.2: Class Diagram of Memory Game Application
Software Design Document
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:
27
Software Design Document
28
Software Design Document
8. 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.
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.
Ensuring the data compatibility against old hardware or old versions of operating
systems.
Running data tests for all data files, including clip art, tutorials, templates, etc.
30
Software Design Document
9. SNAPSHOTS
31
32
Software Design Document
33
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 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/)
35