Discovery of Ranking of Fraud For Mobile Apps
Discovery of Ranking of Fraud For Mobile Apps
Discovery of Ranking of Fraud For Mobile Apps
Abstract
The Mobile App is a very popular and well known concept due to the rapid advancement in the
mobile technology. Due to the large number of mobile Apps, ranking fraud is the key challenge
in front of the mobile App market. Ranking fraud refers to fraudulent or vulnerable activities
which have a purpose of bumping up the Apps in the popularity list. While the importance and
necessity of preventing ranking fraud has been widely recognized. In the existing system the
leading event and leading session of an app is identified from the collected historical records.
Then three different types of evidences are collected from the user feedbacks namely ranking
based evidence, rating based evidence and review based evidence. These three evidences are
aggregated by using evidence aggregation method. In the proposed system additionally, we are
proposing two enhancements. Firstly, we are using Approval of scores by the admin to identify
the exact reviews and rating scores. Secondly, the fake feedbacks by a same person for pushing
up that app on the leader board are restricted. Two different constraints are considered for
accepting the feedback given to an application. The first constraint is that an app can be rated
only once from a user login and the second is implemented with the aid of IP address that limits
the number of user login logged per day. Finally, the proposed system will be evaluated with
real-world App data which is to be collected from the App Store for a long time period.
Chapter I
Introduction
Body sensor network systems can help people by providing healthcare services such as medical
monitoring, memory enhancement, medical data access, and communication with the healthcare
provider in emergency situations through the SMS or GPRS. Continuous health monitoring with
wearable or clothing-embedded transducers and implantable body sensor networks will increase
detection of emergency conditions in at risk patients. Not only the patient, but also their families
will benefit from these. Also, these systems provide useful methods to remotely acquire and
monitor the physiological signals without the need of interruption of the patient’s normal life,
thus improving life quality.
Although present systems allow continuous monitoring of patient vital signs, these systems
require the sensors to be placed bedside monitors or PCs, and limit the patient to his bed. But
now, there is no relation between the sensors and the bedside equipment due to the wireless
devices and wireless networks. These systems do not require the patient to be limited to his bed
and allow him to move around but requires being within a specific distance from the bedside
monitor. Out of this range, it is not possible to collect data. In most cases, health monitoring will
be done by infrastructure oriented wireless networks such as commercial cellular/3G networks or
wireless LANs. But, the coverage of the infrastructure-oriented networks changes with time or
location. Sometimes, the coverage of wireless network is not available, or the coverage is
available but we cannot access to the network due to a lack of available bandwidth. So, with
these problems and restrictions, continuous health monitoring is not possible and emergency
signals may not be transmitted from a patient to healthcare providers. Under these conditions, we
can reach to continuous health monitoring by using ad hoc wireless networks that can transmit
vital signs over a short range presented a WMHRN for reliable and real-time transmission. In
most systems the health data from multiple patients can be relayed wirelessly using multi-hop
routing scheme to a base-station in.
System Analysis
System analysis is the overall analysis of the system before implementation and for arriving at a
precise solution. Careful analysis of a system before implementation prevents post
implementation problems that might arise due to bad analysis of the problem statement.
Thus the necessity for systems analysis is justified. Analysis is the first crucial step, detailed
study of the various operations performed by a system and their relationships within and outside
of the system. Analysis is defining the boundaries of the system that will be followed by design
and implementation.
Existing System
In our Existing systems require the sensors to be placed bedside monitors or PCs, and
limit the patient to his bed.
These systems do not require the patient to be limited to his bed and allow him to move
around but requires being within a specific distance from the bedside monitor.
Out of this range, it is not possible to collect data.
In most cases, health monitoring will be done by infrastructure-oriented wireless
networks such as commercial cellular/3G networks or wireless LANs. But, the coverage
of the infrastructure-oriented networks changes with time or location.
Sometimes, the coverage of wireless network is not available, or the coverage is
available but we cannot access to the network due to a lack of available bandwidth.
So, with these problems and restrictions, continuous health monitoring is not possible and
emergency signals may not be transmitted from a patient to healthcare providers.
Proposed System
Feasibility Study
1. Technical Feasibility
2. Economic Feasibility
3. Operational Feasibility
Technical Feasibility
The consideration that is normally associated with the technical feasibility includes where the
project is to be developed and implemented. The proposed software should have the security for
data and should be very fast in processing the data efficiently. A basic knowledge to operate a
computer is sufficient to handle the system, since the system is designed to provide user-friendly
access.
Economic Feasibility
Economic justification is generally the “Bottom Line” consideration for most systems. It
includes a broad range of concerns that include the Cost-benefit analysis. The cost-benefit
analysis delineates costs for project development and weights then against tangible and
development of the system. Hence, there are tangible and intangible benefits the project
development.
Operational Feasibility
The new system must be accepted by the user. In this system, the administrator is one of the
users. As users are responsible for initiating the development of a new system, this is rooted out.
Cost-benefit analysis (CBA) is an analytical tool for assessing and the pros and cons of moving
forward with a business proposal.
A formal CBA tallies all of the planned project costs, quantifies each of the tangible benefits and
calculates key financial performance metrics such as return on investment (ROI), net present
value (NPV), internal rate of return (IRR) and payback period. The costs associated with taking
action are then subtracted from the benefits that would be gained. As a general rule, the costs
should be less than 50 percent of the benefits and the payback period shouldn't exceed 12
months.
A CBA is considered to be a subjective (as opposed to objective) assessment tool because cost
and benefit calculations can be influenced by the choice of supporting data and estimation
methodologies. Sometimes it’s most valuable use when assessing the value of a business
proposal is to serve as a vehicle for discussion. Cost-benefit analysis is sometimes called benefit-
cost analysis (BCA).The CBAM consists of the following steps:
System Design
System design concentrates on moving from problem domain to solution domain. This
important phase is composed of several steps. It provides the understanding and procedural
details necessary for implementing the system recommended in the feasibility study. Emphasis
is on translating the performance requirements into design specification.
The design of any software involves mapping of the software requirements into Functional
modules. Developing a real time application or any system utilities involves two processes. The
first process is to design the system to implement it. The second is to construct the executable
code.
Software design has evolved from an intuitive art dependent on experience to a science, which
provides systematic techniques for the software definition. Software design is a first step in the
development phase of the software life cycle.
Before design the system user requirements have been identified, information has been gathered
to verify the problem and evaluate the existing system. A feasibility study has been conducted to
review alternative solution and provide cost and benefit justification. To overcome this proposed
system is recommended. At this point the design phase begins.
The process of design involves conceiving and planning out in the mind and making a drawing.
In software design, there are three distinct activities: External design, Architectural design and
detailed design. Architectural design and detailed design are collectively referred to as internal
design. External design of software involves conceiving and planning out and specifying the
externally observable characteristics of a software product.
Input Design:
Systems design is the process of defining the architecture, components, modules, interfaces, and
data for a system to satisfy specified requirements. Systems design could be seen as the
application of systems theory to product development. There is some overlap with the disciplines
of systems analysis, systems architecture and systems engineering.
Input Design is the process of converting a user oriented description of the inputs to a computer-
based business system into a programmer-oriented specification.
• Input data were found to be available for establishing and maintaining master and
transaction files and for creating output records
• The most suitable types of input media, for either off-line or on-line devices, where
selected after a study of alternative data capture techniques.
• The sequence of fields should match the sequence of the fields on the source document.
Design input requirements must be comprehensive. Product complexity and the risk associated
with its use dictate the amount of detail
• These specify what the product does, focusing on its operational capabilities and the
processing of inputs and resultant outputs.
• These specify how much or how well the product must perform, addressing such issues
as speed, strength, response times, accuracy, limits of operation, etc.
Output Design:
A quality output is one, which meets the requirements of the end user and presents the
information clearly. In any system results of processing are communicated to the users and to
other system through outputs.
In output design it is determined how the information is to be displaced for immediate need and
also the hard copy output. It is the most important and direct source information to the user.
Efficient and intelligent output design improves the system’s relationship to help user decision-
making.
1. Designing computer output should proceed in an organized, well thought out manner;
the right output must be developed while ensuring that each output element is designed so
that people will find the system can use easily and effectively. When analysis design
computer output, they should Identify the specific output that is needed to meet the
requirements.
3. Create document, report, or other formats that contain information produced by the
system.
The output form of an information system should accomplish one or more of the following
objectives.
• Future.
• Trigger an action.
• Confirm an action.
System Architecture
This section describes the components that make up the WBSN and their functionality. Sensor
nodes: Each node in the network has a different role.
All the sensors are wireless and sense different physiological parameters in a given interval and
simultaneously, the sampling interval is determined by the physician. For example sensors for
pregnant woman can be
Motion Detection-Accelerometers
To measure blood pressure, the patient should be seated or lying. So, these sensors can detect
patient’s position. If the patient is placed in a proper position, it will allow the other sensors to
sense.
Detection of the heart rate and the movement of the fetal used by medical practitioners to assess
the health of the fetal.
Coordinator Node
The coordinator node is a wireless node in the WBSN which is in charge of collecting and
packaging the arrival signals from the other sensors, and send them to the base station. This node
attaches on the patient’s body and it works with battery. Each coordinator node is identified by a
unique ID which is used to identify each patient in the network.
Chapter IV
Literature Survey
1. 1924
Chapter VI
System Requirements
The hardware and software specification specifies the minimum hardware and software required
to run the project. The hardware configuration specified below is not by any means the optimal
hardware requirements. The software specification given below is just the minimum
requirements, and the performance of the system may be slow on such system.
Software Requirements
• Database : MYSQL
Hardware Requirements
• RAM - 2 GB
• Monitor - SVGA
Chapter VII
Software Description
Android
Operating Systems have developed a lot in last 15 years. Starting from black and white phones to
recent smart phones or mini computers, mobile OS has come far away. Especially for smart
phones, Mobile OS has greatly evolved from Palm OS in 1996 to Windows pocket PC in 2000
then to Blackberry OS and Android.
One of the most widely used mobile OS these days is ANDROID. Android does a software
bunch comprise not only operating system but also middleware and key applications. Android
Inc was founded in Palo Alto of California, U.S. by Andy Rubin, Rich miner, Nick sears and
Chris White in 2003. Later Android Inc. was acquired by Google in 2005. After original release
there have been number of updates in the original version of Android.
Android applications are written in java programming language. Android is available as open
source for developers to develop applications which can be further used for selling in android
market. There are around 200000 applications developed for android with over 3 billion+
downloads. Android relies on Linux version 2.6 for core system services such as security,
memory management, process management, network stack, and driver model. For software
development, Android provides Android SDK (Software development kit). Read more
about open source software.
Applications
Google, for software development and application development, had launched two competitions
ADC1 and ADC2 for the most innovative applications for Android. It offered prizes of USD 10
million combined in ADC1 and 2. ADC1 was launched in January 2008 and ADC 2 was
launched in May 2009. These competitions helped Google a lot in making Android better, more
user friendly, advanced and interactive.
Chapter VIII
System Testing
Software Testing
Software testing is the process of evaluation a software item to detect differences between given
input and expected output. Also to assess the feature of a software item. Testing assesses the
quality of the product. Software testing is a process that should be done during the development
process. In other words software testing is a verification and validation process.
Types of testing
There are different levels during the process of Testing .Levels of testing include the different
methodologies that can be used while conducting Software Testing. Following are the main
levels of Software Testing:
Functional Testing.
Non-Functional Testing.
Functional Testing
Functional Testing of the software is conducted on a complete, integrated system to evaluate the
system's compliance with its specified requirements. There are five steps that are involved when
testing an application for functionality.
Steps Description
V The comparison of actual and expected results based on the executed test cases.
An effective testing practice will see the above steps applied to the testing policies of every
organization and hence it will make sure that the organization maintains the strictest of standards
when it comes to software quality.
Unit Testing
This type of testing is performed by the developers before the setup is handed over to the testing
team to formally execute the test cases. Unit testing is performed by the respective developers on
the individual units of source code assigned areas. The developers use test data that is separate
from the test data of the quality assurance team. The goal of unit testing is to isolate each part of
the program and show that individual parts are correct in terms of requirements and
functionality.
Testing cannot catch each and every bug in an application. It is impossible to evaluate every
execution path in every software application. The same is the case with unit testing.
There is a limit to the number of scenarios and test data that the developer can use to verify the
source code. So after he has exhausted all options there is no choice but to stop unit testing and
merge the code segment with other units.
Integration Testing
The testing of combined parts of an application to determine if they function correctly together is
Integration testing. There are two methods of doing Integration Testing Bottom-up Integration
testing and Top- Down Integration testing.
2 Top-Down integration
This testing, the highest-level modules are tested first and progressively lower-
level modules are tested after that.
System Testing
This is the next level in the testing and tests the system as a whole. Once all the components are
integrated, the application as a whole is tested rigorously to see that it meets Quality Standards.
This type of testing is performed by a specialized testing team. System testing is so important
because of the following reasons:
System Testing is the first step in the Software Development Life Cycle, where the
application is tested as a whole.
The application is tested thoroughly to verify that it meets the functional and technical
specifications.
System Testing enables us to test, verify and validate both the business requirements as
well as the Applications Architecture.
Regression Testing
Whenever a change in a software application is made it is quite possible that other areas within
the application have been affected by this change. To verify that a fixed bug hasn't resulted in
another functionality or business rule violation is Regression testing. The intent of Regression
testing is to ensure that a change, such as a bug fix did not result in another fault being uncovered
in the application. Regression testing is so important because of the following reasons:
Minimize the gaps in testing when an application with changes made has to be tested.
Testing the new changes to verify that the change made did not affect any other area of
the application.
Acceptance Testing
This is arguably the most importance type of testing as it is conducted by the Quality Assurance
Team who will gauge whether the application meets the intended specifications and satisfies the
client requirements. The QA team will have a set of pre written scenarios and Test Cases that
will be used to test the application.
More ideas will be shared about the application and more tests can be performed on it to gauge
its accuracy and the reasons why the project was initiated. Acceptance tests are not only intended
to point out simple spelling mistakes, cosmetic errors or Interface gaps, but also to point out any
bugs in the application that will result in system crashers or major errors in the application.
By performing acceptance tests on an application the testing team will deduce how the
application will perform in production. There are also legal and contractual requirements for
acceptance of the system.
Alpha Testing
This test is the first stage of testing and will be performed amongst the teams (developer and QA
teams). Unit testing, integration testing and system testing when combined are known as alpha
testing. During this phase, the following will be tested in the application:
Spelling Mistakes
Broken Links
Cloudy Directions
The Application will be tested on machines with the lowest specification to test loading
times and any latency problems.
Beta Testing
This test is performed after Alpha testing has been successfully performed. In beta testing a
sample of the intended audience tests the application. Beta testing is also known as pre-release
testing. Beta test versions of software are ideally distributed to a wide audience on the Web,
partly to give the program a "real-world" test and partly to provide a preview of the next release.
In this phase the audience will be testing the following:
Users will install, run the application and send their feedback to the project team.
Getting the feedback, the project team can fix the problems before releasing the software
to the actual users.
The more issues you fix that solve real user problems, the higher the quality of your
application will be.
Having a higher-quality application when you release to the general public will increase
customer satisfaction.
Non-Functional Testing
This section is based upon the testing of the application from its non-functional attributes. Non-
functional testing of Software involves testing the Software from the requirements which are
nonfunctional in nature related but important a well such as performance, security, and user
interface etc. Some of the important and commonly used non-functional testing types are
mentioned as follows:
Performance Testing
It is mostly used to identify any bottlenecks or performance issues rather than finding the bugs in
software. There are different causes which contribute in lowering the performance of software:
Network delay.
Data rendering.
Performance testing is considered as one of the important and mandatory testing type in terms of
following aspects:
Capacity
Stability
Scalability
It can be either qualitative or quantitative testing activity and can be divided into different sub
types such as Load testing and Stress testing.
Load Testing
A process of testing the behavior of the Software by applying maximum load in terms of
Software accessing and manipulating large input data. It can be done at both normal and peak
load conditions. This type of testing identifies the maximum capacity of Software and its
behavior at peak time. Most of the time, Load testing is performed with the help of automated
tools such as Load Runner, AppLoader, IBM Rational Performance Tester, Apache JMeter, Silk
Performer, Visual Studio Load Test etc. Virtual users (VUsers) are defined in the automated
testing tool and the script is executed to verify the Load testing for the Software. The quantity of
users can be increased or decreased concurrently or incrementally based upon the requirements.
Stress Testing
This testing type includes the testing of Software behavior under abnormal conditions. Taking
away the resources, applying load beyond the actual load limit is Stress testing.
The main intent is to test the Software by applying the load to the system and taking over the
resources used by the Software to identify the breaking point. This testing can be performed by
testing different scenarios such as:
Running different processes that consume resources such as CPU, Memory, server etc.
Usability Testing
This section includes different concepts and definitions of Usability testing from Software point
of view. It is a black box technique and is used to identify any error(s) and improvements in the
Software by observing the users through their usage and operation.
According to Nielsen, Usability can be defined in terms of five factors i.e. Efficiency of use,
Learn-ability, Memorability, Errors/safety, satisfaction. According to him the usability of the
product will be good and the system is usable if it possesses the above factors.
Nigel Bevan and Macleod considered that Usability is the quality requirement which can be
measured as the outcome of interactions with a computer system. This requirement can be
fulfilled and the end user will be satisfied if the intended goals are achieved effectively with the
use of proper resources.
Molich in 2000 stated that user friendly system should fulfill the following five goals i.e. Easy to
Learn, Easy to Remember, Efficient to Use, Satisfactory to Use and Easy to Understand.
In addition to different definitions of usability, there are some standards and quality models and
methods which define the usability in the form of attributes and sub attributes such as ISO-9126,
ISO-9241-11, ISO-13407 and IEEE std.610.12 etc.
UI vs Usability Testing
UI testing involves the testing of Graphical User Interface of the Software. This testing ensures
that the GUI should be according to requirements in terms of color, alignment, size and other
properties.
On the other hand Usability testing ensures that a good and user friendly GUI is designed and is
easy to use for the end user. UI testing can be considered as a sub part of Usability testing.
Security Testing
Security testing involves the testing of Software in order to identify any flaws ad gaps from
security and vulnerability point of view. Following are the main aspects which Security testing
should ensure:
Confidentiality.
Integrity.
Authentication.
Availability.
Authorization.
Non-repudiation.
Portability Testing
Portability testing includes the testing of Software with intend that it should be re-useable and
can be moved from another Software as well. Following are the strategies that can be used for
Portability testing.
Portability testing can be considered as one of the sub parts of System testing, as this testing type
includes the overall testing of Software with respect to its usage over different environments.
Chapter IX
Conclusion
Also, we have simulated the proposed WBSN in OMNet++ simulator and have compared this
with existing WBSN systems in terms of coverage, energy consumption and delay time and we
have observed the proposed system has better performance than others existing WBSN systems.
References
1. Stanford V (2002) Using pervasive computing to deliver elder care. IEEE Pervasive
Computing 1: 10-13.
2. Mcfadden T, Indulska J (2004) Context-aware environments for independent living, In
Proceedings of the 3rd National Conference of Emerging Researchers in Ageing, Brisbane,
Australia.
3. Anliker U, Ward JA, Lukowicz P, Troster G, Dolveck F, et al. (2004) AMON: a wearable
multi-parameter medical monitoring and alert system. IEEE Tran INF Technol Biomed 8: 415–
427.
4. Cho G, Yoo1 SK (2009) Wearable ECG Monitoring System Using Conductive Fabrics and
Active Electrodes, Proceedings of the 13th International Conference on Human-Computer
Interaction, Berlin, Heidelberg.
6. Shnayder V, Chen B, Lorincz K, FulfordJones TRF, Welsh M (2005) Sensor Networks for
Medical Care, Proceedings of the 3rd international conference on embedded networked sensor
systems, New York, USA.
7. Alemdar H, Ersoy C (2010) Wireless sensor networks for healthcare: A survey. Computer
Networks 54: 2688-2710.
8. Varshney U (2005) Using wireless networks for enhanced monitoring o patients. International
Journal of HealthCare Technology and Management 6: 489-499.
10. Lai CC, Lee RG, Hsiao CC, Liu HS, Chen CC (2009) A H-QoS-demand
personalized home physiological monitoring system over a wireless multi-hop relay network for
mobile home healthcare applications. Journal of Network and Computer Applications 32: 1229-
1241.
12. Hande A, Polk T, Walker W, Bhatia D (2006) Self-Powered Wireless Sensor Networks for
Remote Patient Monitoring in Hospitals. Sensors 6: 1102-1117.
13. Chung WY, Mo An S, Lee SC (2012) Real Time Multi-hop Routing Protocol for Healthcare
System Based on WSN, 14th International Meeting on Chemical Sensors, Nuremberg, Germany.
15. Lowe SA, Brown MA, Dekker G, Gait S, McLintock C, et al. (2008) “Guidelines for the
Management of Hypertensive Disoders of Pregnancy”. Society of Obstetric medicine of
Australia and New Zealand.
16. Fahim M, Fatima I, Lee S, Lee YK (2012) Daily life activity tracking application for smart
homes using android smartphone. Proceedings of 14th international conference on Advances
Communication Technology (ICACT), Pyeong Chang.
18. Keong HC, Yuce MR (2008) Low data rate ultra wideband ECG monitoring system.
Proceedings of IEEE Engineering in Medicine and Biology Society Conference, University
of Newcastle, Callaghan, Australia.