A PROJECT REPORT ON
Guided By
Mr.Vishwesh A. Patel
Assistant Professor
BITS edu Campus
Prepared By:
PARTH TRIVEDI TANISHQ CHANDER
090050131054 090050131128
09CE86 09CE38
MAYANK SOLANKI PARTH DALAL
090050131102 090050131108
09CE20 09CE54
________________________________________________________________
BITS edu Campus
Babaria Institute of Technology
Department of Computer Science and Engineering
At: Varnama, Ta: Vadodara, Dist: Vadodara, Pin: 391240
REPORT
BITS/CSE/2012-2013/24
BITS (CSE) i
CANDIDATE’S DECLARATION
I declare that seventh semester report entitled “Digital Intelligence - a walkway to
chirology” is my own work conducted under the supervision of the guide Prof.
Vishwesh A. Patel.
I further declare that to the best of my knowledge the report for B.E. final year does not
contain part of the work which has been submitted for the award of B.E. Degree either
in this or any other university without proper citation.
(SIGN)
Student Name : Parth Trivedi
Student ID : 09CE86
Student Enroll. No. : 090050131054
BITS/CSE/2012-2013/24
BITS (CSE) ii
CERTIFICATE
This is to certify that the project entitled “Digital Intelligence-A Walkway to Chirology” is a
bonafied report of the work carried out by Mr. (1) Parth Trivedi (09/CE/86) (2) Tanishq
Chander (09/CE/38) (3) Mayank Solanki (09/CE/20) (4)Parth Dalal (09/CE/54) for User
Defined Project in Semester VII under the guidance and supervision of Mr. Vishwesh A.
Patel for the partial fulfillment of award of the Degree of Bachelor of Computer Science and
Engineering at Babaria Institute of Technology, BITS edu Campus, Varnama, Vadodara,
Gujarat.
To the best of my knowledge and belief, this work embodies the work of candidate
themselves. They have duly completed their work which fulfills the requirement of the
ordinance relating to the Bachelor Degree awarded by Gujarat Technological University and
is up to the standard in respect of content, presentation and language for being referred to the
Examiner.
Mr. Vishwesh A. Patel Mr. Saurabh Shah
Internal Project Guide Head of Department
BITS edu Campus
Babaria Institute of Technology
Department of Computer Science and Engineering
At: Varnama, Ta: Vadodara, Dist: Vadodara, Pin: 391240
B A B A R I A
Institute of Technology
BITS/CSE/2012-2013/24
BITS (CSE) iii
ACKNOWLEGEMENT
I would like to take this opportunity to bestow and dedicate my acknowledgement to all the
people needy indeed that directly or indirectly availed me from all prospects in making my
project feasible on the subject of “Digital Intelligence-A Walkway to Chirology”.
I would also like to thank Mr. Vishwesh Patel’s guidance for supporting and helping me
throughout the project development.
I would like to thank Prof. Saurabh Shah, Department Head of Computer Science and
Engineering for giving me their valuable suggestion, and taking out time from his busy
schedule.
Most of my close friends were continues source of inspiration throughout the project
development, they have been very supporting to me in achieving these milestones. And the
most precious part of my life, my parents who have showered their love and support which
can never be repaid in any form. Without them this achievement could not have been
achieved.
BITS/CSE/2012-2013/24
BITS (CSE) iv
TABLE OF CONTENTS
TITLE PAGE NO.
ABSTRACT ix
LIST OF FIGURES x
LIST OF TABLES xi
ABBREVIATIONS iv
NOTATIONS ivi
CHAPTER 1: INTRODUCTION 1-4
1.1 PROJECT SUMMARY 1
1.2 PURPOSE 1
1.3 SCOPE 1
1.4 OBJECTIVE 2
1.5 TECHNOLOGY & LITERATURE REVIEW 2
CHAPTER 2: PROJECT MANAGEMENT 5-11
2.1 PROJECT PLANNING 5
2.2 PROJECT DEVELOPMENT APPROACH & JUSTIFICATION 6
2.3 PROJECT PLAN 7
2.4 ROLES AND RESPONSIBILITIES 7
2.5 ESTIMATION 8
2.5.1 EFFORT ESTIMATION 8
2.5.2 COST ANALYSIS 11
2.6 FEASIBILITY STUDY 11
CHAPTER 3: SYSTEM ANALYSIS 12-14
3.1 STUDY OF CURRENT SYSTEM 12
3.2 PROBLEM AND WEAKNESSES OF CURRENT SYSTEM 13
3.3 REQUIREMENTS OF NEW SYSTEM 13
3.4 USER REQUIREMENTS 13
3.5 SYSTEM REQUIREMENTS 14
3.6 HARDWARE AND SOFTWARE 14
3.7 FEATURES OF NEW SYSTEM 14
15-34
BITS/CSE/2012-2013/24
BITS (CSE) v
CHAPTER 4: SYSTEM DESIGN
4.1 DATA MODELING 15
4.1.1 DATA DICTIONARY 15
4.1.2 ER DIAGRAM 16
4.2 USE CASE DIAGRAM 17
4.3 CLASS DIAGRAM 20
4.4 SEQUENCE DIAGRAM 21
4.5 ACTIVITY DIAGRAM 24
4.6 STATE DIAGRAM 28
4.7 COMPONENT DIAGRAM 31
4.8 DEPLOYMENT DIAGRAM 32
4.9 METHOD PSEUDO CODE 33
4.10 DESIGN OF FORMS, REPORTS AND INTERFACE 33
CHAPTER 5: IMPLEMENTATION 35-43
5.1 SYSTEM ARCHITECTURE 35
5.2 CODING STANDARDS 36
5.3 SCREEN SHOTS 38
CHAPTER 6: TESTING 44-48
6.1 TYPES OF TESTING 45
CHAPTER 7: LIMITATIONS AND FUTURE ENHANCEMENTS 49-50
CHAPTER 8: CONCLUSION 51
REFERENCES 52
EXPERIENCE 53
BITS/CSE/2012-2013/24
BITS (CSE) vi
ABSTRACT
In this do or die era, each and every entity on this planet is concerned about their own
future and the journey that an individual has to follow in the time to come. Even if one needs
to pay to get a token about their own fortune one is always ready. The only reason is the
uncertainty in our day to day lives. Just close your eyes and think about a software wherein
you need to upload an image of your palm and the software returns you your own future,
your own upcoming days, events to occur and whatnot. The design of this system helps in
predicting the palmistry details by scanning an image of the palm and then applying the
concepts of image processing and artificial intelligence so as to predict the palmistry based
details of the user. The system will provide the user an automated analysis of person’s palm.
The output produced by system will be unbiased and transparency shall be maintained as it
will use image processing for the extraction of lines.
BITS/CSE/2012-2013/24
BITS (CSE) vii
LIST OF FIGURES
Fig No. Title Page No.
1.1 Literature Review (NSTC) 3
1.2 Research Paper (Palm Printing) 4
2.1 Time Line Chart 5
2.2 Gantt Chart 5
3.1 Current Palmistry S/W Systems 12
4.1 Data Dictionary 15
4.2 ER Diagram 16
4.3 Use Case Diagram (WI-M) 17
4.4 Use Case Diagram (DIP-M) 18
4.5 Use Case Diagram (FT-M) 18
4.6 Use Case Diagram (RG-M) 19
4.7 Class Diagram of System 20
4.8 Sequence Diagram (WI-M) 21
4.9 Sequence Diagram (DIP-M) 22
4.10 Sequence Diagram (FT-M) 22
4.11 Sequence Diagram (RG-M) 23
4.12 Activity Diagram (WI-M) 24
4.13 Activity Diagram (DIP-M) 25
4.14 Activity Diagram (FT-M) 26
4.15 Activity Diagram (RG-M) 27
4.16 State Diagram (WI-M) 28
4.17 State Diagram (DIP-M) 28
4.18 State Diagram (FT-M) 29
4.19 State Diagram (RG-M) 30
4.20 System Component Diagram 31
4.21 System Deployment Diagram 32
BITS/CSE/2012-2013/24
BITS (CSE) viii
4.22 Overall GUI Design 33
4.23 Overall Report Design 34
5.1 System Architecture 35
5.2 Welcome Screen (GUI) 38
5.3 Upload Image Screen (GUI) 38
5.4 Image Filter (GUI) 39
5.5 Input Images (GUI) 39
5.6 Grayscale Transformation (GUI) 40
5.7 Gaussian Filter (GUI) 40
5.8 Image Portion Selection (GUI) 41
5.9 Selected Image Portion (GUI) 41
5.10 Sharpened Image (GUI) 42
5.11 Ridges Highlighted (GUI) 42
5.12 Coding in MATLAB 43
6.1 Blackbox Testing 47
LIST OF TABLES
Table No. Title Page No.
2.1 Distribution of Effort 8
2.2 Value Adjustment Factors 9
BITS/CSE/2012-2013/24
BITS (CSE) ix
ABBREVIATIONS
ABBREVIATIONS
DESCRIPTION
ID IDENTIFIER, used to identify someone
AI Artificial Intelligence
DIP Digital Image Processing
WI-M Web Interface Module
DIP-M Digital Intelligence Module
FT-M Fortune Teller Module
RG-M Report Generation Module
MCR MATLAB Compiler Runtime
BITS/CSE/2012-2013/24
BITS (CSE) x
NOTATIONS
BITS/CSE/2012-2013/24
BITS (CSE) xi
BITS/CSE/2012-2013/24 INTRODUCTION
BITS (CSE) 1
CHAPTER 1: INTRODUCTION
1.1 PROJECT SUMMARY
“If you want to know your future then you are at the right place!!! “
In this do or die era, each and every entity on this planet is concerned about their own future
and the journey that an individual has to follow in the time to come. Even if one needs to pay
to get a token about their own fortune one is always ready. The only reason is the uncertainty
in our day to day lives. Just close your eyes and think about a software wherein you need to
upload an image of your palm and the software returns you your own future, your own
upcoming days, events to occur and whatnot. The design of this system helps in predicting
the palmistry details by scanning an image of the palm and then applying the concepts of
image processing and artificial intelligence so as to predict the palmistry based details of the
user. The system will provide the user an automated analysis of person’s palm. The output
produced by system will be unbiased thereby maintaining transparency.
1.2 PURPOSE
To develop dynamic anti-corruption palm reading freeware
To make the application portable and highly scalable
To obtain higher precision and accuracy along with user satisfaction
To save User’s time and money
BITS/CSE/2012-2013/24 INTRODUCTION
BITS (CSE) 2
1.3 SCOPE
It can do dynamic analysis of the palm and generate relevant report that satisfies the
same
It cannot be 100% accurate since there are bundles of constraints involved in this case
It can bring a dead-end to corruption
It can save lot of valuable time and money of our clients
It can produce drastic different outputs even based on minor input changes
1.4 OBJECTIVE
Develop a freeware; a web based realistic Fortune Teller that shall bring a dead-end to
corruption. After all why should humans pay to know their own fortune . . . ?
1.5 TECHNOLOGY AND LITERATURE REVIEW
1.5.1 Technology Review
MATLAB (matrix laboratory) is a numerical computing environment and fourth-
generation programming language. Developed by MathWorks, MATLAB
allows matrix manipulations, plotting of functions and data, implementation
of algorithms, creation of user interfaces, and interfacing with programs written in
other languages, including C, C++, Java, and Fortran
BITS/CSE/2012-2013/24 INTRODUCTION
BITS (CSE) 3
Although MATLAB is intended primarily for numerical computing, an optional
toolbox uses the MuPAD symbolic engine, allowing access to symbolic
computing capabilities. An additional package, Simulink, adds graphical multi-
domain simulation and Model-Based Design for dynamic and embedded systems
MATLAB's support for object-oriented programming includes classes, inheritance,
virtual dispatch, packages, pass-by-value semantics, and pass-by-reference semantics
MATLAB can call functions and subroutines written in the C programming
language or Fortran. A wrapper function is created allowing MATLAB data types to
be passed and returned. The dynamically loadable object files created by compiling
such functions are termed "MEX-files" (for MATLAB executable)
Libraries written in Java, ActiveX or .NET can be directly called from MATLAB and
many MATLAB libraries (for example XML or SQL support) are implemented as
wrappers around Java or ActiveX libraries. Calling MATLAB from Java is more
complicated, but can be done with MATLAB extension, which is sold separately
by MathWorks, or using an undocumented mechanism called JMI (Java-to-MATLAB
Interface), which should not be confused with the unrelated Java Metadata
Interface that is also called JMI
As alternatives to the MuPAD based Symbolic Math Toolbox available from
MathWorks, MATLAB can be connected to Maple or Mathematica
Libraries also exist to import and export MathML
In MATLAB, graphical user interfaces can be programed with the GUI design
environment (GUIDE) tool
BITS/CSE/2012-2013/24 INTRODUCTION
BITS (CSE) 4
1.5.2 Literature Review
A report generated by NSTC & can be found at www.biometrics.org
Fig 1.1 Literature Review (NSTC)
A research paper published on: A Novel Approach for Automatic Palmprint
Recognition
Fig 1.2 Research Paper (Palm Printing)
A research paper provided by Jincy Madam – Electronics & Communication
Department, Institute of Technology, BITS edu Campus
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 5
CHAPTER 2: PROJECT MANAGEMENT
2.1 PROJECT PLANNING
Project planning for our project is shown below in form of two Charts:-
2.1.1 Time Line Chart
Fig 2.1 Time Line Chart
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 6
2.1.2 Gantt Chart
Fig 2.2 Gantt Chart
2.2 PROJECT DEVELOPMENT APPROACH & JUSTIFICATION
Our project development approach is more towards research and analysis. That is why from
the above charts we can observe that the time for vocational learning is given maximum time.
The requirement analysis for our domain is very small. But for developing this application,
basic system requirement is to be known. The system application runs on basic configuration
of system, and hence we do not spend much time in determining the requirements of system
for running the application software.
For the configuration point of view system will be using an MCR environment for running
the application because the whole coding and implementation is primarily based on
MATLAB, hence this environment will be required. Our team will try to make this
application run independent of this MCR environment.
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 7
Along with vocational learning, the various technical diagrams are being constructed, like
class diagram, ER diagram, Behavioural diagrams, all coming under the structural design and
modelling. These diagrams require a little bit of analysis of the study we have made in the
vocational learning. And hence, couple of months are being given for them. In this way our
implementation can also be started and can be performed easily with the help of these
diagrams.
In this way, we will complete our vocational learning after 150 days and 50%-60% of
implementation will also be completed with it.
We are going to give maximum time for coding because we are new to MATLAB and will
be making use of JAVA along with it, so our approach will be to make use of multiple
languages and show compatibility between them. The implementation will also include the
development of user interface too.
After the implementation, our approach will be to test is perfectly, so that the flaws could be
rectified.
2.3 PROJECT PLAN
Our current project plan is to learn and understand the fundamentals of digital image
processing and its functionalities relevant to our system and the methods to implement them.
Also we are currently focusing on the designing and modelling areas of software
development.
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 8
2.4 ROLES AND RESPONSIBILITIES
Time to time reporting to project guide and also to get some proper direction too
Facilitating the process of management
Following the deadlines
Gather the information and properly analyse it
Perform structural design modelling by observing the rules and conventions
To support each other’s work and find flaws to a certain extent to increase the
efficiency of system
Analyse and resolve project issues in timely and accurate manner
2.5 ESTIMATION
There are two basic categories involved in estimation:
2.5.1 Effort Estimation
Function Point Analysis:
Function points allow the measurement of software size in standard units,
independent of the underlying language in which the software is developed.
Instead of counting the lines of code that make up a system, count the number of
externals (inputs, outputs, inquiries, and interfaces) that make up the system.
There are five types of externals to count:
External inputs - data or control inputs (input files, tables, forms, etc.) to the system
External outputs - data or control outputs from the system
External queries - I/O queries which require a response (prompts, interrupts, etc.)
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 9
External interfaces - programs which are passed into and out of the system
Internal data files - groupings of data stored internally in the system (entities,
internal control files, directories)
In our system we have distribute assign weights to the above unit as below:
Information Count Easy Medium Complex Count Total
External Inputs 2 0 0 1 6 1 7 13
External Outputs 9 0 0 1 8 8 7 64
External Queries 1 0 0 0 0 1 6 6
No. Of files 1 0 0 1 6 0 0 6
External Interface 9 3 7 0 0 6 9 75
164
Table 2.1 Distribution of Effort
The Value Adjustment Factors (VAFs) are as follows:
[Note: Here answers to the questions are given using a scale that ranges from 0 (not at all
important or applicable) to 10 (absolutely essential)]
Does the system require reliable backup and recovery?
ANS. Our system must store the data even in worst condition.
10
Are data communications required?
ANS. Data communication is must since it takes all the details from the
database kept on the server.
10
Are there distributed processing functions?
ANS. No, our system is a desktop application.
8
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 10
Is performance critical?
ANS. Performance is critical since our system has to manage real time data
and maintain perfect accuracy.
9
Will the system run in an existing, heavily utilized operational environment?
ANS. It can run because it is not much resource consuming.
5
Does the system require on-line data entry?
ANS. Online data entry is the backbone of our system.
10
Does the on-line data entry require the input transaction to be built over
multiple screens or operations?
ANS. Since our project is online as well as desktop, so there will be a need of
multiple screens or operations.
8
Are the master files updated on-line?
ANS. The database master files are regularly updated online since they are
located on the server.
10
Are the inputs, outputs, files, or inquiries complex?
ANS. Some are complex but most of them are either simple or average.
8
Is the internal processing complex?
ANS. It is complex as compatibility of MATLAB with rest of the system is
an issue for getting the desired output.
10
Is the code designed to be reusable?
ANS. For future enhancement the code is reusable.
8
Is the application designed to facilitate change and ease of use by the user?
ANS. The administrator has all the authorities to change the details in the
database.
10
Total 106
Table 2.2 Value Adjustment Factors
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 11
UFP = (External Inputs)*4+ (External Outputs)*5 + (External Queries)*4 + (No. Of
files)*10 + (External Interface)*10
= 8+45+4+10+90
= 157
TCF = 0.65 + 0.01 * DI
= 0.65 + 0.01 * 106
=1.71
Function Point value =UFP*TCF
=1.71*157
=269
Fi is the sum of the weights assigned to the functions as per its importance in the software.
2.5.2 Cost Analysis
Lines of Code: 5309 (5300 approx.)
As per the Organic COCOMO model:
α =2.4
β =1.05
KLOC= Kilo Lines of Code
Effort= α*(KLOC) β PM where, PM = person-month
Salary of an Engineer per month is Rs. 15,000
CALCULATION OF EFFORT:
Effort = 2.4*(5.3) 1.05
PM
Effort ≈ 14 (13.89 Approx.)
BITS/CSE/2012-2013/24 PROJECT MANAGEMENT
BITS (CSE) 12
OVERALL SOFTWARE COST AND WEB-DEVLOPMENT COST:
= (Salary of an Engineer/month)*(Effort PM)
= (15,000)*(14)
= Rs. 2,10,000
2.6 FEASIBILITY STUDY
The System is completely feasible with the current technology. The technology which the
system comprises of is MATLAB and JAVA and most probably DOT NET (later). So,
possibly, the system is going to integrate all these three technologies will become an example
of inter-compatibility.
BITS/CSE/2012-2013/24 SYSTEM ANALYSIS
BITS (CSE) 13
CHAPTER 3: SYSTEM ANALYSIS
3.1 STUDY OF CURRENT SYSTEM
The current system is static, which neither involves neither Digital Image Processing
nor Intelligence of any type.
It is simply a static wizard which contains series of images of a palm and different
types of lines embossed on each of the images.
What a user has to do is nothing more than selection of these images based on
different options. The user selects those images that satisfies resonance criterion
matching his palm.
In order to gain precision the system ensures more and more options to be used in the
wizard.
Some GUI’s of the system are shown below:
Fig 3.1 Current Palmistry S/W Systems
BITS/CSE/2012-2013/24 SYSTEM ANALYSIS
BITS (CSE) 14
3.2 PROBLEM AND WEAKNESSES OF CURRENT SYSTEM
It certainly cannot meet 100% user requirements, i.e. palm reading of users palm
To maintain accuracy it may ask many questions which may confuse user. For ex-
selection of most matching line or shape of hand so on
The system is static and does not do any real time processing
It may be possible that some points or criteria’s are not covered or missed for a
particular user
Static report generated that does not show analysis of User’s Palm
3.3 REQUIREMENTS OF NEW SYSTEM
To meet user requirements and achieve maximum precision and accuracy
To make real-time decisions
Generate Dynamic Report that contains analysis of users Palm
3.4 USER REQUIREMENTS
Internet Connection
Adobe Acrobat Reader (possibly latest version)
BITS/CSE/2012-2013/24 SYSTEM ANALYSIS
BITS (CSE) 15
3.5 SYSTEM REQUIREMENTS
Windows 2007 and above as OS
32 or 64 bit OS
3.6 HARDWARE AND SOFTWARE REQUIREMENTS
A good Scanner or a Webcam having resolution greater than 800X600
A good quality printer, to print the report
Processor, Intel Family (Core2Duo and above)
Modem for Internet Connectivity
1 GB or more RAM
1 GB or more HDD space
3.7 FEATURES OF NEW SYSTEM
User Satisfaction
Analysis of Users Palm straight away with real time decision making capability
Extremely Portable and Highly Scalable
Generic Analyser
Generate a dynamic report which contains analysis of users palm and then the
detailed analysis of Palm Reading of the same
To save users time and money
To stop users from visiting fortune-tellers which are more than anything non-altruistic
entities and thereby bring a dead-end to corruption
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 16
CHAPTER 4: SYSTEM DESIGN
4.1 DATA MODELLING
4.1.1 Data Dictionary
TABLE NAME: member
Column Type Null Default Comments
id int(10) No None To identify user
fname varchar(255) No None First name of the user
mname varchar(255) No None Middle name of the user
lname varchar(255) No None Last name of the user
gender varchar(255) No None Gender of user
username varchar(255) No None It is used as primary key for login purpose
password varchar(255) No None Password for login purpose
rpassword varchar(255) No None Re-Password for matching password
email varchar(255) No None Email of the user to send activation key
altemail varchar(255) Yes None Alternate email id of the user
contact varchar(255) Yes None Contact number of the user
key varchar(255) No None Key for activation key
status int(10) No 0 Status which specify account is activate or not
TABLE NAME: contact
Column Type Null Default Comments
name varchar(255) No None Name of the user
email varchar(255) No None Email of user
company varchar(255) Yes None Company name of the user
subject varchar(255) Yes None Subject for query
message varchar(255) No None Problem Message
Fig 4.1 Data Dictionary
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 17
4.1.2 ER Diagram
Fig 4.2 ER Diagram
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 18
4.2 USE CASE DIAGRAM
Fig 4.3 Use Case Diagram (WI-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 19
Fig 4.4 Use Case Diagram (DIP-M)
Fig 4.5 Use Case Diagram (FT-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 20
Fig 4.6 Use Case Diagram (RG-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 21
4.3 CLASS DIAGRAM
Fig 4.7 Class Diagram of System
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 22
4.4 SEQUENCE DIAGRAM
Fig 4.8 Sequence Diagram (WI-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 23
Fig 4.9 Sequence Diagram (DIP-M)
Fig 4.10 Sequence Diagram (FTM-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 24
Fig 4.11 Sequence Diagram (RG-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 25
4.5 ACTIVITY DIAGRAM
Fig 4.12 Activity Diagram (WI-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 26
Fig 4.13 Activity Diagram (DIP-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 27
Fig 4.14 Activity Diagram (FTM-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 28
Fig 4.15 Activity Diagram (RG-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 29
4.6 STATE DIAGRAM
Fig 4.16 State Diagram (WI-M)
Fig 4.17 State Diagram (DIP-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 30
Fig 4.18 State Diagram (FT-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 31
Fig 4.19 State Diagram (RG-M)
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 32
4.7 COMPONENT DIAGRAM
Fig 4.20 System Component Diagram
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 33
4.8 DEPLOYMENT DIAGRAM
Fig 4.21 System Deployment Diagram
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 34
4.9 METHOD PSEUDOCODE
Step1 : Accept the input image from an End-User
Step2 : Preprocess the obtained image (DIP-M)
Step3 : Apply transformations on the image as per the selected algorithms (DIP-M)
Step4 : Pass-on the image to Fortune Teller
Step5 : As per algorithm decided perform Segmentation or AI on image
Step6 : Obtain the extracted Lines
Step7 : Redivide or Obtain the curve length by some function
Step8 : Do criticality analysis
Step9 : Pass-on analyzed data to Report Generator
Step10 : Display prepared report on the Web Interface and allow download
4.10 DESIGN OF FORMS, REPORTS AND INTERFACE
Fig 4.22 Overall GUI Design
BITS/CSE/2012-2013/24 SYSTEM DESIGN
BITS (CSE) 35
Fig 4.23 Overall Report Design
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 36
CHAPTER 5: IMPLEMENTATION
5.1 SYSTEM ARCHITECTURE
Fig 5.1 System Architecture
The system architecture is very simplified and the connections are explained below. The end-
user and the user both will be present on the client side, and hence will communicate with the
server indirectly. The connection will be bidirectional as the request will be sent by the users
or end-users to the client side and the client-side will be sending this request in the form of
http-request to the server. This connection, that is , between the client –side and the server is
also bi-directional. The client side can be any browser like Google chrome. The server can be
any application server like JBOSS, Apache Tomcat etc. As we already know there will also
be a connection between the database and the server, as required. This connection will also
be bi-directional.
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 37
Now, when the client- side will send a request for accessing or using the system, the server
will first contact with the database to check whether the user is already registered. Depending
on that the user will either register himself and then a downloading option will start. The
downloading will provide the client side browser a package for getting .exe file and as well
as the MCR environment on the desktop. That is why a separate connection is provided
between the client –side browser and a combo-package. This connection is unidirectional as
the package is supplied from server to client not vice-versa. This combo package is also
unidirectional connected to the server, respectively. So, in this way the server will
communicate with the client side. The end-user will then install the MCR environment on his
computer and will run the system application.
5.2 CODING STANDARDS
Variables
Variable names should be in mixed case starting with lower case.
Variables with a large scope should have meaningful names. Variables with a small
scope can have short names.
The prefix n should be used for variables representing the number of objects.
Functions
The names of functions should document their use.
Names of functions should be written in lower case.
Functions with no output argument or which only return a handle should be named
after what they do.
The prefixes get/set should generally be reserved for accessing an object or property.
The prefix compute can be used in methods where something is computed.
The prefix find can be used in methods where something is looked up.
The prefix is should be used for boolean functions.
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 38
General
Names of dimensioned variables and constants should usually have a units suffix.
Abbreviations in names should be avoided.
Consider making names pronounceable.
All names should be written in English.
M Files
Modularize.
Make interaction clear.
Partitioning
Use existing functions.
Any block of code appearing in more than one m-file should be considered for
packaging as a function.
Global
Use of global variables should be minimized.
Use of global constants should be minimized.
Loops
Loop variables should be initialized immediately before the loop.
The use of break and continue in loops should be minimized.
The end lines in nested loops can have comments
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 39
5.3 SCREEN SHOTS
Fig 5.2 Home Page of tannypartnerz.com
Fig 5.3 Registration form of tannypartnerz.com
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 40
Fig 5.4 Activation Link sent to end user
Fig 5.5 End User giving input by using webcam
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 41
Fig 5.6 Edge Detection using CANNY Algorithm
Fig 5.7 Selection of heart line using Crosshair tool
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 42
Fig 5.8 Report Generation in PDF format
BITS/CSE/2012-2013/24 IMPLEMENTATION
BITS (CSE) 43
Fig 5.9 Coding in MATLAB
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 44
CHAPTER 6: TESTING
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, but are not limited to, the process of executing a program or application with the
intent of finding software bugs (errors or other defects).
Software testing can be stated as the process of validating and verifying that a computer
program/application/product:
meets the requirements that guided its design and development,
works as expected,
can be implemented with the same characteristics,
And satisfies the needs of stakeholders.
Software testing, depending on the testing method employed, can be implemented at any
time in the development process. Traditionally most of the test effort occurs after the
requirements have been defined and the coding process has been completed, but in
the Agile approaches most of the test effort is on-going. As such, the methodology of the test
is governed by the chosen software development methodology.
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 45
6.1 TYPES OF TESTING
Static vs. dynamic testing
There are many approaches to software testing. Reviews, walkthroughs, or inspections are
referred to as static testing, whereas actually executing programmed code with a given set
of test cases is referred to as dynamic testing. Static testing can be omitted, and unfortunately
in practice often is. Dynamic testing takes place when the program itself is used. Dynamic
testing may begin before the program is 100% complete in order to test particular sections of
code and are applied to discrete functions or modules. Typical techniques for this are either
using stubs/drivers or execution from a debugger environment.
The box approach
Software testing methods are traditionally divided into white- and black-box testing. These
two approaches are used to describe the point of view that a test engineer takes when
designing test cases.
White-Box testing
White-box testing (also known as clear box testing, glass box testing, transparent box testing,
and structural testing) tests internal structures or workings of a program, as opposed to the
functionality exposed to the end-user. In white-box testing an internal perspective of the
system, as well as programming skills, are used to design test cases. The tester chooses inputs
to exercise paths through the code and determine the appropriate outputs.
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 46
While white-box testing can be applied at the unit, integration and system levels of
the software testing process, it is usually done at the unit level. It can test paths within a unit,
paths between units during integration, and between subsystems during a system–level test.
Though this method of test design can uncover many errors or problems, it might not detect
unimplemented parts of the specification or missing requirements.
Techniques used in white-box testing include:
API testing (application programming interface) - testing of the application using
public and private APIs
Code coverage - creating tests to satisfy some criteria of code coverage (e.g., the test
designer can create tests to cause all statements in the program to be executed at least
once)
Fault injection methods - intentionally introducing faults to gauge the efficacy of
testing strategies
Mutation testing methods
Static testing methods
Code coverage tools can evaluate the completeness of a test suite that was created with any
method, including black-box testing. This allows the software team to examine parts of a
system that are rarely tested and ensures that the most important function points have been
tested. Code coverage as a software metric can be reported as a percentage for:
Function coverage, which reports on functions executed
Statement coverage, which reports on the number of lines executed to complete the
test 100% statement coverage ensures that all code paths, or branches (in terms of control
flow) are executed at least once. This is helpful in ensuring correct functionality, but not
sufficient since the same code may process different inputs correctly or incorrectly.
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 47
Black-box testing
Fig 6.1 Blackbox Testing
Black-box testing treats the software as a "black box", examining functionality without any
knowledge of internal implementation. The tester is only aware of what the software is
supposed to do, not how it does it. Black-box testing methods include: equivalence
partitioning, boundary value analysis, all-pairs testing, state transition tables, decision
table testing, fuzz testing, model-based testing, use case testing, exploratory testing and
specification-based testing.
Specification-based testing aims to test the functionality of software according to the
applicable requirements. Test cases are built around specifications and requirements, i.e.,
what the application is supposed to do. It uses external descriptions of the software, including
specifications, requirements, and designs to derive test cases. One advantage of the black box
technique is that no programming knowledge is required. Whatever biases the programmers
may have had, the tester likely has a different set and may emphasize different areas of
functionality. They do not examine the source code, there are situations when a tester writes
many test cases to check something that could have been tested by only one test case, or
leaves some parts of the program untested.
This method of test can be applied to all levels of software testing: unit, integration, system
and acceptance. It typically comprises most if not all testing at higher levels, but can also
dominate unit testing as well.
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 48
Grey-box testing
Grey-box testing involves having knowledge of internal data structures and algorithms for
purposes of designing tests, while executing those tests at the user, or black-box level. The
tester is not required to have full access to the software's source code. Manipulating input
data and formatting output do not qualify as grey-box, because the input and output are
clearly outside of the "black box" that we are calling the system under test. This distinction is
particularly important when conducting integration testing between two modules of code
written by two different developers, where only the interfaces are exposed for test. However,
modifying a data repository does qualify as grey-box, as the user would not normally be able
to change the data outside of the system under test.
Visual testing
The aim of visual testing is to provide developers with the ability to examine what was
happening at the point of software failure by presenting the data in such a way that the
developer can easily find the information he requires, and the information is expressed clear.
Visual testing provides a number of advantages. The quality of communication is increased
dramatically because testers can show the problem (and the events leading up to it) to the
developer as opposed to just describing it and the need to replicate test failures will cease to
exist in many cases. The developer will have all the evidence he requires of a test failure and
can instead focus on the cause of the fault and how it should be fixed.
Visual testing is particularly well-suited for environments that deploy agile methods in their
development of software, since agile methods require greater communication between testers
and developers and collaboration within small teams.
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 49
6.2 TEST CASES
6.2.1 Purpose, Input & Steps to yield expected output
testcase_login_page: Test Case Title
Purpose: To allow only the person to log-in only if the STATUS flag is set to 1 in the
database i.e. the person has registered to tannypartnerz.com
Prerequisite: Registration followed by activation
Test Data: Username = {sequence of characters or digits with length 5-20};
Password = {should not contain escape sequences and a length of 7-12};
Steps: Steps to carry out the test :
1. visit Login Page
2. enter Username
3. enter Password
4. click Login
5. click on the “go” button just below
6. verify that the page on site now contains correct username
7. verify that the page on site now contains a download button beside the
slider
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 50
testcase_registration_page: Test Case Title
Purpose: To allow users to register at tannypartnerz.com
Prerequisite: Must have a valid e-mail account and contact
Test Data: First Name ={sequence of characters with length 3-20};
Middle Name ={sequence of characters with length 3-20};
Last Name ={sequence of characters with length 3-20};
Username ={sequence of characters or digits with length 5-20};
Password ={should not contain escape sequences and a length of 7-12};
Gender ={allow any one of the options};
E-mail ={only valid email addresses are allowed};
Contact ={only digits of length 10 are allowed};
Steps: Steps to carry out the test :
1. Visit Registration Page
2. Enter the required Details
3. Click Submit if done or click Reset to set the fields again
4. If successfully submitted then follow-up the actions specified
thereafter. .
5. Open your Mail-Box & click on the activation link just received from
tannypartnerz.com
6. Now you will be redirected to the Home-Page where you are required
to log-in again to avail full benefits of an End-User
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 51
testcase_contact_page: Test Case Title
Purpose: To allow users to contact admin at tannypartnerz.com
Prerequisite: Must have a valid e-mail account
Test Data: Name ={sequence of characters with length 3-20};
E-mail ={only valid email addresses are allowed};
Message ={cannot be null};
Steps: Steps to carry out the test :
1. Visit Contact Us Page
2. Enter the required Details
3. Click Send Message if done
4. If successfully submitted then admin will receive the message sent by
you and you need to wait for the response from the admin
testcase_GUI_userdetails_page: Test Case Title
Purpose: To allow users to embed general details in the Report
Prerequisite: Must have a valid contact
Test Data: Name ={sequence of characters with length 3-20};
Date of birth ={picker tool is used, mm/dd/yyyy format, age limit is used};
Contact ={sequence of numbers with length 10 only};
Identity photo={Photo must be greater than or equal to 300px X 300px};
Address ={cannot be null};
Steps: Steps to carry out the test :
1. Open the GUI
2. Enter the user details when the GUI appears
3. Click Next icon and continue with implementation of the software
BITS/CSE/2012-2013/24 TESTING
BITS (CSE) 52
testcase_GUI_devicetesting: Test Case Title
Purpose: To allow users to use hardware peripherals only if found connected
Prerequisite: Must have scanner or camera connected. The Quality of the same should be
satisfied as per the Hardware Requirements specified in the Report
Test Data: If scanner or camera is not connected appropriate error messages are
displayed otherwise the user can continue with the implementation
Steps: Steps to carry out the test :
1. Open the GUI
2. Follow step by step instructions and when it is the right time to upload
the image click on the scanner or camera icon to find the availability
of the required resource
BITS/CSE/2012-2013/24 LIMITATIONS & FUTURE ENHANCEMENT
BITS (CSE) 53
CHAPTER 7: LIMITATIONS & FUTURE ENHANCEMENT
Limitations
User Expectations
When different fortune tellers analyze the same palm in their own ways and produce
different reports on analyzing how one can expect that the S/W would be very correct
at once . . . The S/W cannot achieve 100% accuracy since it is analyzing God’s
creation after all!!!
Deployment Issue
We are facing a serious problem with the deployment of the UI because we want the
things to be online which requires MATLAB COMPILER RUNTIME and the same
is of 332 MB which needs to be downloaded on the user end.
Technology Compatibility
We are using “Concept of Synergy”, i.e. combining distinct powers of .NET,
MATLAB, JAVA and much more which makes it difficult to find out hidden
compatible corners and thereby bind them altogether.
A never ending research
We are carrying out a research project which itself indicates that we may constantly
evolve through the project and to bring even 0.01 % of precision we may change our
coding and the user may have to bear with the differences in the results of the same.
BITS/CSE/2012-2013/24 LIMITATIONS & FUTURE ENHANCEMENT
BITS (CSE) 54
Future Enhancement
Work on any type and quality of image
You can even dare to i/p a blur, completely rotated or an incorrect image to which our
system counter-dares to respond not only correctly but accurately.
Complete WEB DEPLOYMENT . . . No S/W downloading Required
You don’t need to download the S/W instead upload the image online, carryout
various processes, see the changes and download the report . . . A “.pdf” file with size
hardly greater than 500Kb.
BITS/CSE/2012-2013/24 CONCLUSION
BITS (CSE) 55
CHAPTER 8: CONCLUSION
The project “Digital Intelligence – a walkway to chirology” is certainly a Research &
Development project. Specifically, the system is a desktop application which can be made
portable and scalable through a website. The core concepts in this project are comprised from
the branch of Artificial Intelligence and Digital Image Processing. The research projects
usually do not have a well-defined end. However we have completed the implementation but
with elapsed time we shall try to refine predictions based on algorithms and transform our
project into product. Success is of great importance, which is achieved by a great dedication,
keenness and hard work. This project requires understanding of those concepts which needs
learning, understanding and especially research to get the result in the best manner. From
technical-point of view, the project is primarily covering four modules, out of which we have
successfully accomplished all the modules in which third module is full of research. Our
team is going to work harder to achieve 99.99% accuracy in the prediction made by our
Digitally Intelligent System.
BITS/CSE/2012-2013/24 REFRENCES
BITS (CSE) 56
REFRENCES
Digital Image Processing Using Matlab by Richard E.Woods
Master: http://www.google.com
MathWorks Website: http://www.mathworks.in/discovery/digital-image-processing.html
MathWorks Blog: http://www.blogs.mathworks.com/
Matlab Videos on YouTube
W3C Schools
www.quackit.com
www.tizag.com
BITS/CSE/2012-2013/24 EXPERIENCE
BITS (CSE) 57
EXPERIENCE
The experience of working on a research and development project is really very great. We
came to learn about how to deal with things independently. Real coding of the project is not
what we studied in theory, but it is the real-time application of the same and is so interesting
and wonderful. The best thing was to do lots of research in making the core application
module that uses AI in making pivot predictions. Implementation is done using 4th
generation
programming language, MATLAB which is not only vast and deep but elegant too. The zeal
to learn a new language was satisfied with the help of this project. The experience of doing
such big tasks was great. Engineering shaped our thinking and helped us to discover
innovative ways and then replace them with other better primitive techniques. This helped us
to move from perfection to greater perfection. The experience of working together was so
awesome. We not only learnt to share knowledge but we learnt how to co-ordinate and stay
blissful. This kind of project made our team more robust as we had to do lots of things within
short time. During confusions we also consulted with great experts in the field like digital
image processing, MATLAB. With their help we enhanced our skills in many different
computing fields. The universal teacher so called as GOOGLE helped us a lot in thinking
innovative and make smart decisions at tough times. The experience of our project guide
helped us to jump out from fuzzy decision making process. Our Overall experience was a
learning one; we gained enough knowledge from working on a research based project and
also learned various interesting new methodologies of developing and maintaining a project.
Top Related