Remote Control Convergence of Smart Phone: An

Remote Control Convergence of Smart Phone:
An Approach for iPhone
A Project
Presented to
The Faculty of the Department of General Engineering
San Jose State University
In Partial Fulfillment
Of the Requirements for the Degree
Master of Science in Engineering
By
Jayagopi, Geetha
Fall 2011
1
© 2011
Jayagopi, Geetha
ALL RIGHTS RESERVED
2
APPROVED FOR THE DEPARTMENT OF GENERAL ENGINEERING
_________________________________________________________
Dr. Weider Yu
University Reader,
Professor, Department of Computer Engineering,
San Jose State University
_________________________________________________________
Mr. Kunal Gaurav
Technical Advisor, Broadcom Corporation
_________________________________________________________
Dr. Leonard Wesley
Associate Professor, Department of Computer Engineering,
San Jose State University
3
Table of Contents
1.0 Introduction ............................................................................................................................9
1.1 Hypothesis ..........................................................................................................................10
2.0 Literature Review..................................................................................................................10
2.1 Why Common Framework?..................................................................................................10
2.2 Framework Architecture.......................................................................................................10
2.2.1 Components......................................................................................................................12
2.2.2 Interfaces..........................................................................................................................18
2.3 Tools Used ..........................................................................................................................19
2.3.1 For Development ..............................................................................................................19
2.3.2 For Testing .......................................................................................................................19
2.4 Technology Trends ..............................................................................................................19
3.0 Implementation .....................................................................................................................23
3.1 Implementation scope ..........................................................................................................23
3.2 Implementation Coverage.....................................................................................................26
3.3 Develop or Adopt Decision ..................................................................................................28
3.4 Implementation Process........................................................................................................28
3.5 Implementation resources.....................................................................................................30
3.6 Implementation activities .....................................................................................................32
3.7 Product Requirements ..........................................................................................................34
3.7.1 Functional Requirements ...................................................................................................35
3.7.2 Nonfunctional Requirements ..............................................................................................38
3.7.3 Product Requirement Analysis ...........................................................................................39
3.7.4 Future Enhancements ........................................................................................................41
4.0 Economic Justification...........................................................................................................41
4
4.1 Executive Summary .............................................................................................................41
4.2 Problem Statement ...............................................................................................................42
4.3 Solution and Value Proposition.............................................................................................43
4.4 Market Size .........................................................................................................................44
4.4.1 Marketing Strategies .........................................................................................................45
4.5 Competitors.........................................................................................................................47
4.6 Customer.............................................................................................................................48
4.7 Cost ....................................................................................................................................48
4.7.1 Cost Estimation.................................................................................................................48
4.7.2 Labor ...............................................................................................................................49
4.8 Detailed Component Breakdown...........................................................................................49
4.8.1 Manufactures Components ...............................................................................................50
4.8.2 Material Costs...................................................................................................................50
4.8.3 Labor Costs ......................................................................................................................51
4.9 Price Point...........................................................................................................................51
4.10 SWOT Assessment ............................................................................................................52
4.11 Investment Capital Requirements .......................................................................................53
4.12 Personnel ..........................................................................................................................54
4.13 Business & Revenue Model.................................................................................................55
4.14 Strategic Alliances / Partners ..............................................................................................56
4.15 Profit and Loss Statement ...................................................................................................56
4.16 Exit Strategy ......................................................................................................................57
5.0 Testing ...................................................................................................................................58
5.1 Testing Scope ......................................................................................................................58
5.2 Testing Coverage .................................................................................................................59
5
5.3 PASS/FAIL Criteria .............................................................................................................62
5.4 Testing Approach ................................................................................................................65
5.5 Testing Resources................................................................................................................66
5.6 Test Cases ...........................................................................................................................67
5.7 Testing Activities.................................................................................................................69
6.0 Project Schedule ....................................................................................................................71
6.1 Phase 1................................................................................................................................71
6.2 Phase 2................................................................................................................................72
6.3 Gantt Chart..........................................................................................................................73
6.4 CPM Chart ..........................................................................................................................74
7.0 Conclusion............................................................................................................................78
7.1 Learning Experience ............................................................................................................78
7.2 Recommendations................................................................................................................78
Appendix 1- Definitions...............................................................................................................79
8.0 References .............................................................................................................................80
6
List of Figures
Figure 1 Desktop End Module and iPhone End Module of Remote Control Convergence ......................11
Figure 2 Components of Remote Control Convergence for iPhone .......................................................12
Figure 3 Events in iOS ......................................................................................................................13
Figure 4 Main Event Loop, with Open Source ....................................................................................14
Figure 5 Path of a mouse event ..........................................................................................................15
Figure 6 Responder Chain in iOS.......................................................................................................16
Figure 7 Security Manager – Authorization System for Remote Control Convergence...........................18
Figure 8 Security Framework Components .........................................................................................20
Figure 9 Core Motion Framework Architecture ..................................................................................21
Figure 10 Architecture and Interaction of System Configuration framework components ......................22
Figure 11 Media Player Framework Architecture ................................................................................23
Figure 12 Collection of events generated by iPhone ............................................................................27
Figure 13 Water fall implementation process ......................................................................................29
Figure 14 Implementation Methodologies and Process Flow................................................................30
Figure 15 QFD Chart ........................................................................................................................40
Figure 16 Market Size of potential customers .....................................................................................44
Figure 17 Smartphone Market Trends ................................................................................................45
Figure 18 Smartphone OS Market Share ............................................................................................46
Figure 19 Smartphone Vendor Ranking..............................................................................................47
Figure 20 SWOT Analysis ................................................................................................................52
Figure 21 Break Even Chart ..............................................................................................................54
Figure 22 Profit/Loss Statement.........................................................................................................57
Figure 23 Testing Scope and Stages ...................................................................................................59
Figure 24 Bug Report Templates .......................................................................................................68
Figure 25 Use Case Diagrams............................................................................................................69
Figure 26 UML sequence diagram for Remote Control Convergence ...................................................69
Figure 27 Gantt chart ........................................................................................................................73
Figure 28 Activity-on-Arrow Diagram ...............................................................................................76
Figure 29 Activity-on-Arrow Diagram showing critical path ...............................................................77
7
List of Tables
Table 1 Implementation of Event Collector ........................................................................................24
Table 2 Implementation of Event Encoder ..........................................................................................25
Table 3 Implementation of Event Encoder ..........................................................................................25
Table 4 Implementation of Event Receiver .........................................................................................26
Table 5 Implementation of Event Decoder..........................................................................................26
Table 6 Develop or Adopt Decision ...................................................................................................28
Table 7 Implementation Resources ....................................................................................................31
Table 8 Implementation Resources ....................................................................................................32
Table 9 Requirements of Team ..........................................................................................................33
Table 10 Risks and Contingencies .....................................................................................................33
Table 11 Software and Hardware Requirements..................................................................................34
Table 12 Functional Requirements .....................................................................................................37
Table 13 Non-functional requirements ...............................................................................................39
Table 14 Framework Components and Cost Summary ........................................................................48
Table 15 Product/Service Cost...........................................................................................................52
Table 16 Investment Cash Flow .........................................................................................................53
Table 17 Required skill set of working group......................................................................................54
Table 18 Testing coverage of the Remote Control Convergence...........................................................60
Table 19 Pass/Fail Criterion at Component Level ...............................................................................63
Table 20 Testing approaches .............................................................................................................65
Table 21 Resources for Testing..........................................................................................................67
Table 22 Requirements for Testing Staff ............................................................................................70
Table 23 Phase-1 Project Schedule ....................................................................................................71
Table 24 Phase-2 Project Schedule ....................................................................................................72
Table 25 Activity table ......................................................................................................................74
Table 26 Precedence Table ................................................................................................................75
Table 27 Table to calculate critical path .............................................................................................76
8
1.0 Introduction
Our dependency on Smartphone is increasing manifold year over year. iPhone is an
example of Smartphone that has become an essential part of our lives. We always try to make
our work easier using this wonderful gadget. As part of the Master’s project, we would be
proposing an approach to provide a common framework for all the applications, which provides
the core functionalities to use iPhone as a remote control. Example of such an application is
Video LAN Client Remote (VLCREMOTE), which allows you to control your VLC media
player remotely. Many developers are now concentrating on giving this ‘remote-touch’ to their
applications.
This Remote Control framework provides API’s for preparing the remote control as well
as the module in the desktop application, which waits to receive remote events. On the remote
control side of the framework, collect various events generated by the remote control, encode the
data concerning to the events, and send it to the desktop application. On the desktop application
side of the framework, receive the incoming stream of encoded events, decode the data
concerning to the events, and pass it to the application for the usage. The framework would also
address the issues regarding the security.
Thus this project would mainly aim at developing a remote control framework which
enables developers of any application to take advantage of iP hone’s capabilities and use it as a
remote to enhance their applications. Utilization of iPhone as a remote in applications not only
enhances the existing applications, but also opens gates for a brand new variety of applications
which were only possible through dedicated hardware till today like Wii remote of Nintendo for
controlling Wii console applications.
9
1.1 Hypothesis
Proposing and developing a common framework can,

Provide the core functionalities to use iPhone as a remote control

Increase the performance of controlling desktop applications

Provide the application developer in enhancing the features of the app
2.0 Literature Review
2.1 Why Common Frame work?
The dependency on Smartphone by human kind is increasing manifold year over year.
iPhone is an example of Smartphone that has become an essential part of our lives. We always
try to make our work easier using this wonderful gadget. As a team we would be proposing an
approach to provide a common framework for all the applications, which provides the core
functionalities to use iPhone as a remote control. Example of such an application is Video LAN
Client Remote (VLCREMOTE), which allows you to control your VLC media player remotely.
Many developers are now concentrating on giving this ‘remote-touch’ to their applications. The
essential purpose of our framework is to allow the developers in providing low cost app to the
end users.
2.2 Frame work Architecture
Whenever there exists an application running on a dedicated hardware, users would
always prefer to have a remote touch to it. Remote Control Convergence for Smart Phone is a
10
framework that adds remote touch to any kind of iPhone application. iPhone is one such smart
phone that has become part of our lives. We always try to make our work easier using this
wonderful gadget.
Figure 1 Desktop End Module and iPhone End Module of Remote Control Convergence
In an attempt to make our work even simpler, we have developed applications which use
iPhone as a substitute for remote control. Example of such an application is VLCREMOTE,
which allows you to control your VLC player remotely. Many developers are now concentrating
on giving the ‘remote-touch’ to their applications. Remote Control Convergence is a framework
which facilitates the developers and speeds up the process of preparing iPhone applications,
which would use iPhone as a remote control.
11
iPhone Controller
Event
Collector
Event
Encoder
Desktop Receiver
Event
Transmitter
Event
Receiver
Event
Decoder
Network Detector (Reliability and Flow Control)
Multi-Thread Manage r
Security Manager
Figure 2 Components of Remote Control Convergence for iPhone
The architecture of remote control convergence would consist of several components
such as iPhone Controller, Desktop Receiver, Network Detector, Multi- Thread Manager,
Security Manager.iPhone Controller would consist of Event collector, Event encoder, Event
transmitter. Desktop Reciever would consist of Event Reciever and Event Decoder.
2.2.1 Components
Event Collector
Event Collector is a component that is responsible to collect events from various state
changes in iPhone like keypad events, touch events, accelerometer events, gyroscope events, etc.
In iOS UIKit and Core Motion frameworks are responsible for the event propogation and
delivery. Event Collector is used to collect the events generated by the remote control. An
instance of CMAccelerometerData class represents an accelerometer event. The accelerometer
12
would always measure the sum of two acceleration vectors: gravity and user acceleration.This
would measure the acceleration along the three spatial axes at a moment of time.
The superclass of CMAccelerometerData, CMLogItem, defines a timestamp. This would
record the time at which the acceleration measurement was taken. This event would be available
in iOS 4.0 and later. The attitude of iPhone is also considered to be as an event. CMAttitude
class represents a measurement of device’s attitude at a particular point in a time. The class
CMAttitude class would offer a rotation matrix, a quaternion, and Euler angles. The objects of
CMAttitude are accessed through the attitude property of each CMDeviceMotion objects passed
to an application. A device attitude can be tracked by the help of Core Motion using both the
gyroscope and the accelerometer.
Figure 3 Events in iOS
13
Event Encoder
This component is responsible to encode all the collected events to a data format, which
would then be a payload, ready to get transmitted to the desktop module. The events such as
touch events, motion and remote-control events are to be encoded to a data format, which would
then be a payload so that it is ready to get transmitted to the desktop module. The window
objects usually uses hit-testing and the responder chain in order to find the view to receive the
touch event.
Event Transmitte r
This component is responsible for transmitting the payload from iPhone to the desktop.
The Event transmitter would route the events to the desktop module in such a way that the events
generated by the mouse, keyboard, and other devices are handled efficiently and in a best suited
manner.
Figure 4 Main Eve nt Loop, with Open Source
14
Before an event is dispatched to the application, it is processed in various ways. It is
time-stamped. Let us consider an example for an event generated when a user presses a key on
iPhone. The device driver would first would convert or translate the raw scan code into the
virtual key code and it then passes off to the window server in an event record. The events such
as acceleration along axes are encapsulated by CMAccelerometerData object.
Figure 5 Path of a mouse event
Event Receiver
This component is responsible to collect all the events which are transmitted from
iPhone. Responder is an object that responds to events and handles them. The class
UIResponder is the base class for all the responder objects for handling all the events. Any
iPhone application must explicitly set a first responder in order to handle motion events, action
messages and editing menu messages.
When a system such as iPhone generates an event such as touch event, it would first send
it to a specific view. For all the touch events, hitTest: withEvent would return the view. For other
15
events such as editing menu messages, action messages and remote control events, view would
be the first responder. If there is no response from the view then the event or the message would
be passed up to responder chain by taking a certain path.
Figure 6 Responder Chain in iOS
Event Decoder
This component is responsible for decoding the events and passing it to the application
for corresponding action. The events such as Periodic events or key events or even various
events generated from various states in iPhone like keypad, touch events, and gyroscope events
are decoded by the Event Decoder and they are again passed it to the application.
16
Network Detector
This component is responsible for taking care of reliability and flow control issues since
large amounts of event data is being transmitted. There is a high probability that data is lost or
receiver getting swamped due to excess data transmission. This component takes care of these
issues. When there are multiple iPhones used by multiple users while accessing an application on
a Desktop, then there would exist excess data transmissio n or exchange between iPhone and the
Desktop. For multiplayer games, several events would be exchanged between iPhone and
Desktop application. Network Detector order to manage multiple events and in order to prevent
data losses.
Multi-Thread Manage r
This component is responsible for managing threads which comes into picture while
collecting events from various event generators, encoding them and transmitting them
simultaneously. Even the receiving side receives and decodes in a multithreaded fashion.
When there are applications, which are operated by more than one user at a time, then the multithread manager would have to manage in collecting various events.
Security Manager
This component ensures two things. First is the data encryption in the network while
transmitting and receiving. Second is the authorization of a remote controller to issue commands
to the application. Only the authorized users should be permitted to access any kind of
17
application. When there is exchange of data between iPhone and a desktop application, that data
should be exchanged in an encrypted format.
Figure 7 Security Manager – Authorization System for Remote Control Convergence
2.2.2 Inte rfaces
Remote Control Convergence for Smart Phone would act like a n interface, such that any
application developed on an iPhone would get its features enhances with a remote touch. This
would like an interface to other systems, subsystems and users. All the components in the
framework would also be interfaced with each other so that the events captured from an iPhone
are handled properly and communicated efficiently between the desktop and iPhone end.
18
2.3 Tools Used
2.3.1 For Development
Hardware – MAC INTEL
Operating System – MAC OSX
IDE – X-CODE
IOS Libraries – Core Motion, Core Foundation, Security, Network
2.3.2 For Testing
Hardware – Apple Developer Licensed iPhone
2.4 Technology Trends
The technology trends related to the Remote Control Convergence of Smart Phone has
evolved many years ago and is still evolving in several stages. In this project we are considering
the frameworks related to iOS, since the approach is for an iPhone. Several iOS frameworks
developed has enhanced the scope several iPhone applications. Some of the technologies related
to iOS framework are Security Framework, Core Motion Framework, System Configuration
framework, and Media Player Framework.
Security Frame work
The data managed by the applications can be guaranteed with added security features by
the help of Security Framework (Security. framework). This framework supports the storage of
cryptographic keys and certificates in the key chain. It is possible to share the key chain items
19
among the applications. It also supports the generation of cryptographically secure
pseudorandom numbers. This framework supports repository in order to store sensitive user data.
It has the application programming interfaces (APIs), which defines the methodology for
controlling access to software and protecting information.
In this framework, Certificate, Key, and Trust Services provide a C API for managing
the trust policies, certificates, private and public keys. The services can be used in the
applications in order to represent trust policies, create private-public key pairs, determine the
match between a certificate and its respective private key, import keys, certificates, and
identities. As mentioned earlier this framework provides Key Chain Services that enables the
users in order to add, modify, find, and delete keychain items. These items are defined b y a
CFDictionary of key- value pairs.
Figure 8 Security Frame work Components
Core Motion Frame work
Core Motion Framework allows your application to receive motion data from device
hardware. Accelerometer is one such device hard ware and gyroscope is one such device models.
CMMotionManager is a class in this framework, which allows receiving motion data from
20
gyroscope, accelerometer, and combined device motion events at a regular interval. The events
can be even polled periodically.
Figure 9 Core Motion Frame work Architecture
System Configuration Frame work
This framework provides support in order to access the networks, which are configurable,
and system resources. It also allows your application to maintain, set and determine
configuration settings and respond to any kind of changes occurring in that information
dynamically. This also supports wide range of configuration management. It allows high- level
access to network services.
21
The components in System Configuration Framework are a persistent storage structure
for network configuration preferences, a dynamic storage structure, which has the current
network state information, Configuration agents that manage the data consisted in the storage
areas, a comprehensive schema that defines the data types in the dynamic stores, a full range of
APIs that provide access to current network state information.
Figure 10 Architecture and Interaction of System Configuration frame work components
Media Player Frame work
This framework provides facilities for playing music, audio podcast, and audio book
files. It also allows your application to access iPod library, thereby allowing the users to find and
play audio-based media items synced from iTunes on the desktop. MPVolumeView class allows
users to control the system audio output volume. MPMoviePlayerController and
MPTimedMetadata classes allow users to play streamed video content. It allows you to respond
to time-based metadata contained in the stream.
22
MPVolumeViewSettingsAlertShow displays an alert panel. The alert panel is used to
control the system volume. The alert panel can also be dismissed programmatically using the
MPVolumeSettingsAlertHide function.
Figure 11 Media Player Frame work Architecture
3.0 Implementation
3.1 Implementation scope
The smart phone revolution is a recent one. Moreover, iPhone’s capabilities of processing
and transferring huge amounts of network data just got bigger, so is its capacity to be used as a
remote controller. Currently, we have applications available in the app store which lets you
control your iTunes and apple TV using an iPhone. But no framework was offered from APPLE
for developers to develop such sort of applications.
Recently a DVR company named TIVO announced a remote control framework for
developers to develop iPhone applications to control external devices like TV, AV receiver or
DVR. However, TIVO’s remote framework doesn’t address controlling of desktop applications
23
which are far more intelligent than video and audio transmitting devices. There will be several
questions that would arise during the implementation process. Will the product cause any
performance issues? What about the Scalability of the product? Do they have usability? Since a
new framework is to be developed, we need to have a better understanding towards the already
existing frameworks and their behavior. Since many frameworks present for the Smart phones
are available in the market, we need to first identify them and we need to strive to develop a cost
effective and an efficient framework.
In order to develop our framework, we have planned to use available resources in the
market. We have selected the resources based on their performance and need, a nd which was not
declined by any kind of vendor. When our framework is developed, we would test it by
developing an iPhone application, which would have remote touch feature. We would also have
a set of questionnaire which would be created for the customer. The questionnaires would be
helpful in giving suggestions as well as feedback in order to enhance the performance or
scalability of our framework.
Table 1 Impleme ntation of Event Collector
Implementation of Event Collector
Analyze the events generated from iPhone and the application residing in it.
List the types of events generated from iPhone.
Collect events from various state changes in iPhone like keypad events, accelerometer events,
gyroscope events etc.
In the next phase of our project, we will be developing the functionality of event encoder,
which can be used to encode the events that are collected by the event collector and convert it
24
into a data format so that it could be received by the module or an application existing in the
desktop end.
Table 2 Impleme ntation of Event Encode r
Implementation of Event Encode r
Analyze the strategy used in order to encode the events.
Analyze the strategy used in converting the encoded events to a data format.
Select a method which brings the best performance capabilities for an iPhone application.
In the next phase of our project, we will be implementing the functionality of event
transmitter, which can be used by the framework in order to transmit the events to the desktop
application end.
Table 3 Impleme ntation of Event Encode r
Implementation of Event Trans mitter
Analyze the strategy used in order to transmit the events.
Select a method which brings the best performance capabilitie s for an iPhone application.
Implement a methodology to transmit the events converted to a data format to the desktop end.
In the next phase of our project, we will be implementing the functionality of Event
Receiver. This component is responsible to collect events which are transmitted from iPhone.
25
Table 4 Impleme ntation of Event Receiver
Implementation of Event Receiver
Analyze the strategy used in order to implement the event receiver.
Select a method which brings the best performance capabilities of event receiver for an iPhone
application.
Implement a methodology to collect all the events which are transmitted from iPhone.
In the next phase of our project, we will be implementing the functionality of Event
Decoder. This component is responsible to decode the encoded events and pass it to the iPhone
application again for corresponding action. After this phase, we would concentrate even on
handling multiple events using multi- thread manager and also would be concentrating on the
security features such as access control by the help of security manager.
Table 5 Impleme ntation of Event Decoder
Implementation of Event Decoder
Analyze the strategy used in order to decode the encoded events.
Select a method which brings the best performance capabilities of event decoder for an iPhone
application.
Implement a methodology to pass the information again to the application resided in iPhone.
3.2 Implementation Coverage
Since the final goal of our project is to develop the APIs for our framework, we have
started the steps to be taken in order to achieve it. The APIs for our framework would be
developed and those APIs would be used by the iPhone application developers in order to
26
provide a remote-touch to their applications. We are also emphasizing much upon the security
features for our framework and also the capability of handling even multiple events at the same
time in an efficient manner. I order to achieve the capability of handling multiple events at the
same time; we have designed a set of algorithms. We are in the process of identifying the best
method or algorithm by which the events could be collected and transmitted efficiently between
the iPhone and the Desktop module without any delay and data losses. We have obtained the
license from APPLE for testing on an iPhone. We have also set up an Xcode project environment
by importing all the necessary frameworks like Network and Core data. We have also created a
test bed in order to test the scenarios.
We have implemented some core socket functions by passing large volumes of data from
iPhone to Desktop to test iPhone’s transfer capability and came to an understanding of the
performance of iPhone as a remote. We are also currently working on the collecting and
encoding of events module.
Figure 12 Collection of events generated by iPhone
27
3.3 Develop or Adopt Decision
This section would give us a clear idea whether we need to follow the general approach
in order to develop (make) or adopt (buy) decision. Since we have many software and hardware
that are readily available in the market, we can come to decision whether we need to make or
adopt a resource decision. The below table would let us know regarding the resources as well as
the decision.
Table 6 Develop or Adopt Decision
Resource Name
Version
Price
Decision
Mac Pro
Quad-Core
$1300
Adopt
Mac OS X
Snow
Leopard
Free
Adopt
Xcode
4.0
Free
Adopt
iPhone
Any
$300
Adopt
Apple Dev. License
iOS Dev.
Any
$100/yr
Adopt
Web Browser
Internet
explorer 9.0
Free
Adopt
Firefox 4.0
3.4 Implementation Process
In the process of development of remote control convergence for smart phone, we need to
follow step by step process. Since, the remote control framework consists of several independent
subsystems or components. The result obtained from each of the component would be the later
28
on used by the next component or subsystem existing in the framework module. Waterfall model
is the strategy that we have decided to follow in order to accomplish our goals in developing a
framework. The implementation stages are show in the figure below.
Figure 13 Water fall imple mentation process
The figure below would show the process and stages during the deve lopment of remote control
convergence for iPhone. In the figure below we can see that the result of Event Collector is taken
by the Event Encoder and the result of Event Encoder is taken by the Event Transmitter. This
strategy is called as the waterfall strategy. This would mean that Event Collector would be
implemented first and then it is the phase of Event Encoder and so on.
29
Figure 14 Imple mentation Methodologies and Process Flow
3.5 Implementation resources
In order to implement or develop the remote control convergence for smart phone, we
require several resources. We also require sufficient number of human resources too. The various
implementation resources and their role are described in the table below.
30
Table 7 Impleme ntation Resources
Name
Version
No.
Unit Price
Total
Status
Mac Pro
Quad-Core
2
$1300
$2600
Available
Mac OS X
Snow Leopard
2
Available
Xcode
4.0
2
Available
iPhone
Any
2
$300
$600
Available
Apple Dev.
License iOS
Dev.
Any
1
$100/yr
$100
Available
This is offered for
$100/yr and can
be registered in
the internet.
Web
Browser
Internet explorer
9.0
3
0
Available
This is offered
free and can be
downloaded from
the internet.
NA
Available
Prof. Weider Yu,
Project Advisor
Firefox 4.0
Human
resources
NA
4
NA
Comments
This is offered
free and can be
downloaded from
the internet.
Xcode IDE is
compatible only
with Mac OS X.
Vasili, Software
Engineer
Jayagopi,
Software Engineer
Javvaji, Software
Engineer
31
3.6 Implementation activities
We have set up a proper plan in order to accomplish this project successfully on time. We
have also distributed our work equally among ourselves. We have completed all the prerequisites of having a very good knowledge on all the technologies needed to develop the remote
control convergence for smart phone. The development and implementation of various key
functionalities of remote control convergence such as Event transmitter, Collection of events,
transmitting of events among the devices would be done by Jayagopi, the team design architect
and Developer. We also have an amazing project advisor Prof. Weider Yu, who always been
guiding us in the right direction in order to accomplish our goals in completing the project
successfully. The responsibilities are stated as below:
Table 8 Impleme ntation Resources
Staff
Prof. Weider Yu
Responsibility



Vasili
Jayagopi











Dept
Provide valuable advice regarding
implementation of framework
Approve the project
Provide us valuable feedback and
comments regarding the development of
remote control convergence.
Research
Design architect
Coding
Testing
Documentation
Research
Architecture
Design architect
Coding
Testing
Documentation
32
CE
CE
MSE




Javvaji
SE
Research
Implementation
Design preparation
Documentation
Table 9 Require ments of Team
Requirements of Team
Knowledge of Objective-C programming skills
Good knowledge of Network security concepts.
Very good knowledge of Network Programming, Networking concepts.
Good knowledge in JAVA.
Good knowledge in testing concepts.
`
Every project would have its risks and contingencies involved in it. Every project would
impact to a certain level in the market. There should be proper contingency plans in order to face
the ricks and develop an efficient product.
Table 10 Risks and Contingencies
Mitigation/Contingency
Plans
Work together
Id
Risk
Probability
Impact
1
No planning
Low
High
2
Failure of Algorithm
Medium
High
Work hard on getting the
design better
3
Delay in implementing the Low
algorithm planned.
Medium
Allotted extra time to copeup with the delay time
4
Programming skills
High
Advanced training programs
5
Issues in the architecture Medium
Medium
Design proposals are kept as
Low
33
and design.
a back up
3.7 Product Require ments
The current section lists the software and hardware requirements to complete the Remote
Control Convergence for Smart Phone project. It would also list various kinds of skill sets for the
group in order to accomplish the project.
Software and Hardware requirements
Below is the list of minimum software and hardware requirements for our project.
Table 11 Software and Hardware Require ments
Name
Version
No.
Unit Price
Total
Status
Mac Pro
Quad-Core
2
$1300
$2600
Available
Mac OS X
Snow Leopard
2
Available
Xcode
4.0
2
Available
iPhone
Any
2
$300
$600
Available
Apple
Dev.
License
iOS Dev.
Any
1
$100/yr
$100
Available
This is offered for
$100/yr and can
be registered in
the internet.
Web
Browser
Internet explorer 9.0
3
0
Available
This is offered
free and can be
downloaded from
34
Comments
This is offered
free and can be
downloaded from
the internet.
Xcode IDE is
compatible only
with Mac OS X.
Firefox 4.0
Human
resources
NA
the internet.
4
NA
NA
Available
Prof. Weider Yu,
Project Advisor
Vasili, Software
Engineer
Jayagopi,
Software Engineer
Javvaji, Software
Engineer
The table below shows the information about skill set required to the working group for the
project.
3.7.1 Functional Requirements
The Functional requirements for Remote Control Framework would contain types of
inputs, number of inputs to be given, types of events to be handled, number of events to be
handled, types of outputs generated, number of outputs delivered, ma nipulations, behavior
constraints and design constraints of the framework This section would enlighten the functional
requirements of Remote Control Convergence for Smart Phones.

The Remote Control Convergence for Smart Phone will consist of 8 major components
namely: Event Collector, Event Decoder, Event Transmitter on the iPhone controller
end, Event Receiver, Event Decoder on the Desktop Receiver end, Network Detector for
Reliability and Flow control, Multi Thread Manager, Security Manager.
35

The components of Remote Control Convergence are responsible to collect all the events
from various states in iPhone like keypad events, touch events, accelerometer events,
gyroscope events etc.

The components of this framework are also responsible to encode all the collected events
to a data format, which would then be a payload and would transmit to the desktop
module

The Remote Control Convergence should also be effective so that the event receiver in
the desktop receiver module can collect all the events that are transmitted from iPhone.
Also it must be able function effectively such that the event decoder in the desktop
receiver module should decode the encoded events and pass it to the application in the
iPhone for corresponding action successfully.

The main customer of Remote Control Convergence would be iPhone application
developers, since we are developing this framework specific for iPhone. The iPhone
application developers will be able to enhance their applications by giving ‘remotetouch’.

Once the iPhone application is developed by the application developers, this product or
app can be used by any users who possess an iPhone. The applications developed with
the help of this framework can be used by the employees of any organization, students
etc. The applications when developed using this framework would have its remote-touch
feature added to it and thereby will be used by administrators, private sector, Technical
managers of an enterprise, when they wish to give any kind of presentation, which
requires a remote-touch application on their iPhone.
36

This framework would be a well-defined interface between a dedicated hardware device
and an application residing on iPhone.

Remote Control Convergence for Smart Phone should be effective enough so that there is
no delay in capturing of events generated by the iPhone and its affect on the desktop
application end.

The development of framework should be a common platform for all the iPhone
application developers and should leverage them in developing many applications by
adding the ‘remote-touch’ feature to it.
The table below represents various functional requirements needed for Remote Control
Convergence of Smart Phone.
Table 12 Functional Requirements
Requirement ID
Description
Req. ID 1
The remote control convergence developed for iPhone should first
be able to analyze the behavior of various events generated by
iPhone.
Req. ID 2
The remote control convergence should be able to analyze keypad
events, touch events, accelerometer events, gyroscope events etc.
Req. ID 3
The remote control convergence should be able to collect events
from various changes in iPhone with the help of its Event Collector
component.
Req. ID 4
The framework should be able to encode all the collected events to
data format, which would then be payload with the help of its Event
Encoder component.
Req. ID 5
The framework should be able to transmit the payload from iPhone
to the Desktop with the help of its Event Transmitter component.
Req. ID 6
The framework should be able to collect all the events which are
transmitted from the iPhone with the help of its Event Receiver
37
component.
Req. ID 7
The framework should also address the reliability and flow control
issues since large amount of event data is being transmitted.
Req. ID 8
The framework should also take care of the issues regarding the data
losses or receiver getting swamped due to excess data transmission.
Req. ID 9
The framework should also address the methodology used for
handling of events generated from multiple event generators.
Req. ID 10
The framework should be able to collect events generated from
various event generators, encoding them and transmitting them
simultaneously.
Req. ID 11
The framework should be able to collect the events generated in
receiving end and decode them in a multithreaded fashion.
Req. ID 12
The framework should be able to track the results in the
intermediate stages using a logger.
Req. ID 13
The framework should also be able to draw out the test cases to test
an iPhone application developed, with the help of Remote Control
Convergence framework.
Req. ID 14
The framework should be effective enough to provide the interface
between a dedicated hardware device and an iPhone application.
Req. ID 15
The framework should be able to draw the results generated by the
execution of test cases regarding the capture of events and handling
of events.
3.7.2 Nonfunctional Requirements
It is always a good practice to specify the criteria of the system or a framework and come
up with judgment and suggestions. It wouldn’t be a good practice if we analyze and perform the
validation of the system at the early stages. Some of the non- functional requirements that are to
be considered for Remote Control Convergence for Smart Phone are Scalability, Ma intainability,
Effectiveness, Usability, and Compliance to standards, Performance, Reliability, and
38
Supportability. Some of the important non- functional requirements are explained in the table
shown below.
Table 13 Non-functional requirements
Factors
Description
Scalability
The Remote Control Convergence for Smart Phone should be able
to perform and show its dynamic behavior based on the capturing of
events generated from various devices, and if it sets right according
to the requirements; then we can say that the framework is scalable.
Supportability
The Remote Control Convergence for Smart Phone should be able
to support all the iPhone applications and should not be specific to
one. The framework should also provide software support to all
kinds of iPhone applications.
Performance
The framework is said to be as working with good performance, if
an iPhone application built using this can tolerate any intrusion by
an unknown party, who possess no proper authentication, into the
system.
Robustness
The framework is said to be robust if the framework works
efficiently in spite of many changes made on an iPhone application.
This feature is very much essential and key since even though there
are many changes in the iPhone application, the framework must be
able to work stable and efficiently.
Usability
This feature would be satisfied by the Remote Control Convergence
if this can be used by any kind of iPhone application. The
framework should also behave efficiently and must be used
effectively by all kind of iPhone applications.
3.7.3 Product Requirement Analysis
The techniques to analyze functional and nonfunctional requirements are named as
Quality Function Deployment (QFD) techniques. It provides a good relation between the
39
demanded quality of the product and its quality characteristics. The below screenshot of the QFD
chart drawn is based on the system requirements.
Figure 15 QFD Chart
40
3.7.4 Future Enhancements
Since the development of Remote Control Convergence for Smart Phone would let the
iPhone application developers to enhance their applications with a remote touch feature, the next
goal for the developers of framework would be extending the scope of multiple users residing in
two different countries and are trying to access a common application residing on a desktop.
Example of such application can be multiplayer games.
4.0 Economic Justification
4.1 Executive Summary
Development of remote control framework targets iPhone application developers. Some
of the remote control apps available in the market are iTeleport, VLCREMOTE etc. iTeleport is
a remote control application available in the Apple App store in order to control desktop
applications. VLCREMOTE is a remote control application present in App store to control VLC
media player in desktop. Development of remote control framework eliminates the dependency
of users on the dedicated hardware. It also opens gates to all the iPhone application developers in
enhancing their applications by giving a remote touch.
The remote control framework addresses security aspects of socket programming and
also addresses efficient capability of handling events both on the remote control side and on the
desktop side.
We stand unique from our potential customers such as MSFT, TiVo, APPLE Inc., since
we provide remote control applications to the end users with lesser cost but with better
performance capability in handling events. Though we have spend $25,550 in order to develop
the framework, due to scarcity of remote control frameworks in the valley and also due to its
41
capability of handling all the events of an iPhone, we have a better demand of our product when
compared to our competitors. We incurred profits from the 2nd year by the help of this project.
We would be selling the APIs for $40,000 to the developers of iPhone applications. The
selling price is fixed on the basis of the flexibility offered by the framework. We process the
current market requirements by handling all the events generated by the iPhone. For the
maintenance of applications developed with the help of remote control APIs, the iPhone
application developers would be paying us $1000 for each request.
Our income to develop the remote control framework initially was $0. Initial expenses in
order to develop the framework were $25,550. This includes the amount spent for Mac Pro,
Apple Developer License, iPhones, Human Resources and other miscellaneous expenses. We
incurred negative figures in our Net cash flow and Cumulative cash flows until Year 1. Our
Income increased starting from $0 to $41r1240 by the end of 5 years. We could reduce our
expenses by reducing the number of human resources since we could maintain the framework
with a maximum of 2 Engineers and also other miscellaneous expenses like provision of on-site
services etc. We achieved Return on Investments (ROI) of 3.11% by the end of 5th year. This
was also possible due to the high demand of our services required by our potential customers in
the Valley.
4.2 Proble m State ment
There are several frameworks available in the market that is specific to a particular
product. Also there are iPhone applications available in the Apple App store with which an
iPhone user will be able to browse or edit any of the files existing in the hard drive. Example of
such an app is iTeleport. This app can be used to play any kind of flash games residing on the
42
desktop, read your saved chat history on the desktop, fill out your expense reports and access a
media player residing on the desktop which uses a Remote Desktop Protocol. Some of the
applications today are accessible only through a dedicated hardware. One such example is Wii
Remote of Nintendo for controlling Wii Console Applications.
Remote Control Convergence for Smart Phone is a common framework developed,
which when released in the market could be used by the iPhone application developers in
enhancing their applications with the remote touch feature. Utilization of iPhone as a remote not
only enhances the existing applications, but also opens up the gates for a brand new variety of
applications.
4.3 Solution and Value Proposition
The service we contribute is to develop a Remote Control Framework that enables iPhone
application developers to enhance their applications providing a cost efficient app to the end
users. We address security aspects of socket programming, design and develop remote control
framework. We provide API’s to prepare a module in the desktop application. We address and
collect various events generated by the remote control in the remote control side of the
framework. We encode the data concerning to the events of the remote control and send it to
desktop application. We address and receive the incoming stream of encoded events on the
desktop application and pass it to the application for the usage.
We stand unique from our competitors by providing open source software libraries,
minimum cost of app to the end user, developing a common framework which supports all
desktop applications; we also open gates and provide scope for all the iPhone application
developers for future enhancements.
43
4.4 Market Size
Some of our potential customers are TiVo, Peel, APPLE Inc., Microsoft, etc. TiVo and
Peel transform an iPhone into a universal remote control. TIVO spends 3.2 million dollars
annually in order to enhance their remote control framework a nd spends 1 million dollar for
online customer support. The revenue of TIVO has been depreciating since 2010. TIVO remote
control framework cannot handle all the events generated by iPhone. This raised many concerns
from their customers.
We support our customers with the enhanced features with a service charge of $10,000
per request. We spend less in processing the customer requests since our framework is capable of
reusing the existing code and handling the new custom events. Though the initial development
cost of our framework is high, i.e. $25,550 due to our high demand and supply we incurred
profits starting from the second year.
Figure 16 Market Size of potential customers
Source: Yahoo Finance, Dec 2011
44
4.4.1 Marketing Strategies
iPhone has become part of our lives. The dependency on Smartphone by human kind is
increasing manifold year over year. iPhone is an example of Smartphone that has become an
essential part of our lives. We always try to make our work easier using this wonderful gadget.
As per the market research, 18.65M iPhones were sold as of Apple earnings Q2’11. The revenue
of Apple has reached to $24.67B as of Q2’11. Also there exists over 350k apps; 10 billion
downloads on Apple store. As per the research, development of frameworks have not only
enhanced the existing applications, but also opens gate for a brand new variety of applications
which were only possible through dedicated hardware till today.
Figure 17 Smartphone Market Trends
Source: Digitimes Research – Shipment forecast for global top-10 Smartphone brands, 2011
45
Development of several device frameworks has enhanced the capability of iPhone. Some
of the frameworks are Accelerate Framework, Core Motion Framework, Media Player
Framework, System Configuration Framework and Store kit framework etc. Remote Control
Framework is also making good turn due to heavy demand of extending applications by utilizing
iPhone as Remote. There are some companies like Google, Samsung, Microsoft, and Sony etc,
which have been challenging in the field of Smart Phone Frameworks since many years.
Figure 18 Smartphone OS Market Share
Source: Millennial Media, Oct 2010
46
Figure 19 Smartphone Vendor Ranking
Source: The E Word, Dec 2010
4.5 Competitors
Our competitors are the framework developers who develop APIs in assisting the iPhone
application developers. The demand of the customers, using these APIs depends on the
performance of the framework. Better the performance of the framework more would be the
demand to the framework in the market.
Also our competitors are the developers of some of the applications such as
VLCREMOTE, TIVO etc. These applications give remote touch feature added to the iPhone.
The difference between our framework and these applications is re-usability of the APIs. This
capability of re-using the APIs makes us stand unique from our competitors. This feature would
attract the iPhone application developers to use the readymade APIs available through the
Remote Control Framework.
47
4.6 Custome r
Our customers are the developers of iPhone applications. An entry- level person, middle
management or even the senior management can either use the applications developed. Some of
the applications such as Gaming can be used by the entry level person. Applications developed
with remote touch such as accessing an account related application on the Desktop end
simultaneously by 4 to 5 members in a corporate office can be used by the middle management
customers. All the senior management customers can make use of applications such as
presenting any application on the desktop (projector) by using iPhone as a remote control.
The solution provided in developing the APIs can be used thereby by an individual or in a
department or corporate or in an industry.
4.7 Cost
The Development Cost of the framework is $25550 and the operating cost is $850/month
and the maintenance cost is about $100/year. The development cost includes the purchase of
Mac Book Pro, iPhones, Apple Developer License and other miscellaneous expenses.
4.7.1 Cost Estimation
Table 14 Frame work Components and Cost Breakdown Summary
Name
Version
Quantity
Unit Price
Total
Mac Pro
Quad-Core
3
$1300
$3900
Mac OS X
Snow Leopard
2
Xcode
4.0
2
iPhone
Any
2
$750
$1500
48
Apple Dev. License
iOS Dev.
Any
1
Web Browser
Internet
explorer 9.0
3
$100/year
$100
0
Firefox 4.0
Human resources
NA
3
$6400/month
$19200
Operating
Cost/Miscellaneous
expenses
NA
NA
$850/month
$850
4.7.2 Labor
The number of Software Developers required in order to develop the framework is 3 and
number of Software Quality Engineers required in order to test the Remote Control Framework
is 3. The number of days invested in order to implement the functionalities of framework is 56
Days. This includes the development of algorithms, development of complete application;
generate the test cases and also performing the system level testing for the entire fra mework.
4.8 Detailed Component Breakdown
Components required in order to develop the remote control framework are Mac Pro,
iPhone. We get the XCode and Mac OS X in built in the Mac Pro. It is always good purchasing
these components rather than developing a unique platform where we could have our framework
to run.
49
4.8.1 Manufactures Components
The Mac Pro should be of Quad- Core type, Snow Leopard MAC OS X, Xcode with
version 4.0 are required in order to develop the framework. The labor skills required fo r
manufacturing are as listed
1. Knowledge of Objective C programming skills.
2. Good Knowledge of Network Security concepts.
3. Very good knowledge of Network Programming concepts.
4. Good knowledge in JAVA.
5. Good knowledge in testing concepts.
4.8.2 Material Costs
In order to develop the Remote Control Framework we do have to invest some initial
costs. The initial costs would include purchasing of components such as Mac Pro, iPhone etc.
Each Mac Pro would cost $1300 and since we have need at the least of 2 Software Developers,
and 1 Quality Engineer we would require 3 Mac Pros. The Mac Pro can be also used as the
Desktop Server once the framework is developed. We also require iPhone, which acts like a
client in our project. We would require at the least of 2 iPhone in order to show the demo of
multi thread or multiple events handling capability of the framework. Each iPhone is worth of
$750. We also require Apple Developer License, which is worth of $100 per year.
50
4.8.3 Labor Costs
Based on the skill set required to develop the framework, every Software Developer in
our project should be paid $40 per hour. Also the Software Quality Engineers should be paid $40
per hour. In future, when we have patent rights for our APIs and when our team extends the
project in a manner that we develop our own smart phone applications and release in the market,
we would also possess a CEO for our company. The CEO in our company would be paid $200K
annually as a base salary.
4.9 Price Point
Our target customers are iPhone application developers. We would be selling the APIs
for $40,000 to the developers of iPhone applications. The selling price is fixed on the basis of the
flexibility offered by the framework. We process the current market requirements by handling all
the events generated by the iPhone. For the maintenance of applications developed with the help
of remote control APIs, the iPhone application developers would be paying us $1000 for each
request. We would also be selling remote control applications to the end users by releasing them
in the Apple App Store. The end users would be paying us $20 for each download of our remote
control framework application. These applications when downloaded on the iPhone can access
any kind of desktop application.
51
Table 15 Product/Service Cost
Services Offered
Cost of Services
Frame work/APIs
$40000
Processing service request
$1000
Maintenance/Support on frame work
$100
End user App download
$20
4.10 SWOT Assessment
Figure 20 SWOT Analysis
The strengths of our framework are its ability to fit into the development process of any
iPhone application and also its capability in handling the events generated by the iPhone. The
52
APIs developed can be re-used by any number of iPhone application developers. As the number
of iPhone users (clients) trying to access an application on the Desktop (server) end increases,
the ability of the framework in handling the events would depreciate gradually. This is one of
our key weaknesses that we are working on and trying to improve in increasing the scalability
aspect of the framework. Development of these kinds of frameworks would open gates for most
of the iPhone application developers, since they would develop applications which could not
only be accessible by dedicated hardware but also by the smart phones. The threats for the
framework would be due to the intrusion of strangers trying to access the applications without
proper authorization or coupling of their respective iPhone devices with the Server.
4.11 Investment Capital Require ments
Table 16 Investment Cash Flow
Investment
Cash Flow
Now
Year1
Year2
Year3
Year4
Year5
Income
$0
$121120
$201120
$291120
$362420
$411240
Expenses
$25550
$240700
$163900
$80350
$80350
$80350
Net Cash flow $25550
$119580
$37220
$210770
$282070
$330890
Cumulative
Cash Flow
$145130
$107910
$102860
$384930
$304580
$25550
53
500000
400000
300000
200000
100000
Cummulative Cash
Flow
Break Even at 3.5
years
Years
0
-100000
1
2
3
4
5
6
-200000
Figure 21 Break Even Chart
4.12 Personnel
Table 17 Required skill set of working group
Required Skill Set
Knowledge of Objective-C programming skills
Good knowledge of Network security concepts.
Very good knowledge of Network Programming, Networking concepts.
Good knowledge in JAVA.
Good knowledge in testing concepts.
We require a minimum of 2 Software Developers and 1 Software Quality Engineer in
order to develop this remote control framework with the above mentioned skill sets.
54
4.13 Business & Revenue Model
We plan to sell our product or service by efficient marketing of our framework to the target
application developers like APPLE, TiVo, MSFT, etc.
Table 18 Business Revenue Model - Services Offered
Products/Services
Description of
Product/Service
Potential Customers
Service Registration
Registering only for
specific services
required by the end
user like
accelerometer events,
gyroscopic events,
and keypad events
Controlling desktop
applications through
iPhone under 3G
network without
compromising the
security aspects
Ability to control
desktop applications
without dedicated
hardware
Uninterrupted
services of remote
control framework
while running
background
applications in iPhone
APPLE, MSFT, PEEL $10000/request
Usage under 3G
network
Remote control apps
Background
application
55
Cost of
Product/Service
APPLE, TiVo, MSFT,
PEEL
$18500/request
APPLE, TiVo, MSFT,
PEEL
$19.99/app
APPLE, TiVo,
CISCO
$15000/request
We plan to make money by:
By providing maintenance support to our customers based on their requirements. For
example, we can offer services like handling the issues caused due to opening of ports,
registering of services, admin access, etc.
By selling remote control applications that could be used in home, for business and
hospitals.
By selling remote control apps developed by our framework which will work under 3G
network and also apps that could control hardware applications.
4.14 Strategic Alliances / Partners
We would be partners only with the iPhone application developers in helping them to
make use of our framework, when required in order to give remote touch feel to their
applications. We would incur required amount of commission once the application is developed
based on the strategy or the deal set during the early stages.
4.15 Profit and Loss Statement
The below graph is plotted with Years mentioned on the X-axis and Dollars on the Yaxis. The graph is plotted considering Income, Expenses and Net Profit/Loss for the first 5
years. As per the break even analysis, we would incur profits from the third year. The income
for our project is less when compared to the expenses during the initial phase. When the number
of service requests processed by us gradually increase, the income keeps expanding. We would
incur profits starting from 2nd year. The profits are obtained by enhancing the features of our
56
framework like running background applications in iPhone, ability to work under 3G, etc. as per
the requests from our potential customers.
$500,000
$400,000
$300,000
Income
$200,000
Expenses
$100,000
Net Profit/Loss
$0
Now
Year 1
Year 2
Year 3
Year 4
Year 5
($100,000)
($200,000)
Figure 22 Profit/Loss Statement
4.16 Exit Strategy
Our income to develop the remote control framework initially was $0. Initial expenses in
order to develop the framework were $25,550. This includes the amount spent for Mac Pro,
Apple Developer License, iPhones, Human Resources and other miscellaneous expenses. We
incurred negative figures in our Net cash flow and Cumulative cash flows until Year 1. Our
Income increased starting from $0 to $411240 by the end of 5 years. We could reduce our
expenses by reducing the number of human resources since we could maintain the framework
with a maximum of 2 Engineers and also other miscellaneous expenses like provision of on-site
services etc. We achieved Return on Investments (ROI) of 3.11% by the end of 5th year. This
57
was also possible due to the high demand of our services required by our potential customers in
the Valley.
Table 19 Return on Investment
Investment
Cash Flow
Now
Year1
Year2
Year3
Year4
Year5
Income
$0
$121120
$201120
$291120
$362420
$411240
Expenses
$25550
$240700
$163900
$80350
$80350
$80350
Net Cash flow $25550
$119580
$37220
$210770
$282070
$330890
Cumulative
Cash Flow
$25550
$145130
$107910
$102860
$384930
$304580
ROI
-2%
-1.49%
-0.77%
1.62%
2.51%
3.11%
5.0 Testing
5.1 Testing Scope
This particular section would deal with the aspects of testing and stages at which the
testing has to be made on the product. Since the Remote Control Convergence has certain
number of components residing in it and since each of the subsystems are inter dependent on
each other, it is always a good practice to have a strategy for testing. Remote Control
Convergence has certain components such as Event Collector, Event Encoder, Event
Transmitter, Event Receiver, and Event Decoder. Apart from all these basic components, Remote
Control Convergence also has some of the common components for both iPhone end and
Desktop end modules such as Network Detector, Security Manager and Multi-thread manager.
Since the system is comprised of several subsystems, it is always a good practice to test the
components at the end of each and every stage of its implementation phase.
58
Testing the components at the early stages would not only help us to avoid the errors but
also would give us a better view of the approach to be followed for the development of an
efficient product. Now this phase of testing each and every component at the preliminary stage is
called as the unit level testing. We also need to perform the testing once the entire framework is
built, which is called as the function validation testing. If there are software or customer
requirements on the already existing framework, then the developer would develop the requested
change requirements from the customer and would again the build the framework. The testing
which has to be performed at this particular stage is called as the Regression Testing.
Figure 23 Testing Scope and Stages
5.2 Testing Coverage
In this section we would emphasis upon the functionalities that are to be tested and also
not to be tested. The Development of framework and its testing are completely two different
fields. In order to test a framework, an iPhone application has to be developed, which could use
59
the APIs of the framework and attain the remote touch feature. In the testing coverage we would
be covering the condition coverage, path coverage and function coverage.
Table 20 Testing coverage of the Remote Control Convergence
System Features
Testing / Not testing
Features of Event Collector

Testing
Types of Events generated
from iPhone

Number of Events generated
Testing
from iPhone

Number of Events collected
efficiently by Event Collector
Testing
residing in the iPhone end
module.
 Check the types of events
collected
Testing
Features of Event Encoder

Scan the type of events selected
Testing
and check the functionality of
Event Encoder

Check if the events are encoded
properly before transmitting it to
the Desktop end.

Testing
Check if the encoded event is
converted into a data format used
60
for transmission.
Testing
Features of Event Transmitter

Testing
Check if the events are transmitted
to the receiver end in an efficient
manner.

Check if multiple events are
transferred to the receiving end.
Testing
Features of Event Receiver

Testing
Check if all the events sent by the
event transmitter are received on
the receiving end by the Event
Receiver.

Check if there is any data loss
while receiving the events.
Testing
Features of Event Decoder

Check if the Event Decoder is able
to decode the events that were
encoded.
61
Testing

Log files - record

Log files mapping

Validation of log file.

Perform the action required and
Testing
send it back to the iPhone
Testing
Testing
application.
Testing
Features of Network Detector

Testing
Check if there are any data losses
occurring with the help of
functionality of Network Detector.

Connections Establishment

Configuration of individual
Testing
components
Testing
Overall system performance
Testing
Individual component performance
Testing
5.3 PASS/FAIL Crite ria
62
The Remote Control Convergence for Smart Phone has several components that are be
tested including its non- functional requirements such as Scalability, Usability, Performance etc.
In this section we would emphasis upon the test criteria that have to be satisfied in order for a
test case to be passed. The table below has the Pass/Fail criteria of various subsystems and
component of Remote Control Convergence for Smart Phone.
Table 21 Pass/Fail Criterion at Component Level
Component
Pass/ Fail Criteria
Event Collector
The below mentioned are all the criteria for a
test case to be PASS for the Event Collector
Component.

Types of Events generated from
iPhone

Number of Events generated from
iPhone

Number of Events collected
efficiently by Event Collector
residing in the iPhone end module.
Check the types of events collected
Event Encoder
The below mentioned are all the criteria for a
test case to be PASS for the Event Encoder
Component.

Scan the type of events selected and
check the functionality of Event Encoder

63
Check if the events are encoded properly
before transmitting it to the Desktop end.

Check if the encoded event is converted
into a data format used for transmission
Event Transmitter
The below mentioned are all the criteria for a
test case to be PASS for the Event Transmitter
Component.

Check if the events are transmitted to the
receiver end in an efficient manner.

Check if multiple events are transferred
to the receiving end.
Event Receiver
The below mentioned are all the criteria for a
test case to be PASS for the Event Receiver
Component.

Check if all the events sent by the event
transmitter are received on the receiving
end by the Event Receiver.

Check if there is any data loss while
receiving the events.
Event Decoder
The below mentioned are all the criteria for a
test case to be PASS for the Event Decoder
Component.
64

Check if the Event Decoder is able to
decode the events that were encoded.

Perform the action required and send it
back to the iPhone application.
5.4 Testing Approach
In order to test the components individually and also in order to test the integrated
version of all the components as a system, we need to follow certain testing approaches. As a
team we have decided to choose Unit level testing, System level testing and Integration testing
approaches.
Table 22 Testing approaches
Testing Approach
Description of the approach
Reason
for
choosing
the
approach
Unit Testing
There are two types of Unit The reason for choosing this
testing. They are Black Box approach because, the remote
testing and White Box testing. control convergence has many
These testing approaches can be subsystems residing in it. So in
used
in
order
to
test
components at the unit level.
the order to test the outcomes from
each of the individual
components, we have chosen unit
testing as the best approach to test
the components individually and
independently.
65
Integration Testing
Even though there exists
This testing approach is very
subsystems in a system; at the
much
end all the subsystems must be
components of the remote control
integrated in order to form a
convergence are integrated with
product. So this kind of testing is
each other.
useful
when
all
the
used to test an integrated
product.
System Testing
This testing approach primarily This testing approach is used in
concentrates on testing the whole this
project
system. This can be used in measurement
the
of
areas
like
performance,
order to test the performance of a reliability etc. Performance plays
system.
a key role in our project since
there should not be any delay
when there is any event occurring
on the
iPhone end
and
its
reflection on the desktop side.
5.5 Testing Resources
In order to test the Remote Control Convergence, we will have to develop and iPhone
application, which was developed by using the APIs of the framework developed in order to get
its remote-touch. So there would use of hardware resources as well as the software resources in
order for testing.
66
Table 23 Resources for Testing
Hardware
iPhone
Linksys Router WRT54GS
Software & Special tools
Bug Reporting Tools – Elementool
Xcode
5.6 Test Cases
While testing the Remote Control Convergence for Smart Phone, there exist many test
cases.
Some of the important test cases that we could come up are,

Testing of events collected by the Event Collector.

Testing of events encoded by the Event Encoder.

Testing of events transmitted by the Event Transmitter.

Testing of events received by the Event Receiver.

Testing of events decoded by the Event Decoder.

Testing of performance of handling of events.

Testing of various scenarios that could cause for the data loss.
67
The sample test case template and bug report are shown below. In this we would report the
incidents that would take place while testing.
Figure 24 Bug Report Templates
Use Cases:
Use Case for an iPhone user using his remote-touch featured application
68
Figure 25 Use Case Diagrams
Figure 26 UML sequence diagram for Remote Control Convergence
5.7 Testing Activities
As a team we have decided to perform the testing activities along with the development.
Both the testing and development activities would run in parallel. Once the Event Collector
functionality is implemented we would be testing it in parallel. This kind of approach is being
followed so that there doesn’t exist any kind of bugs raised or there should not be any affect on
the other functionalities of the framework.
69
All the bugs would be documented well and will be reported in the template followed.
The testing team would report the bugs obtained during the integration phase as well as during
the system level testing.
Table 24 Require ments for Testing Staff
Requirements of Testing Staff
Knowledge of the remote control framework
Knowledge of operation of individual subsystem or components of system.
Knowledge of inter-dependencies among the sub-systems
Knowledge of Objective C. C++ programming skills
Very good knowledge of Testing strategies, Testing methods
Very good knowledge of testing tools and bud reporting tools
Excellent communication skills, both written and verbal
Good networking knowledge; security in specific
70
6.0 Project Schedule
6.1 Phase 1
Table 25 Phase-1 Project Schedule
DURATION
TASK NAME
(Days)
START
FINISH
Remote Control Convergence for Smartphone - an
approach for iPhone
149 1/26/2011
Primary Task
12/09/2011
8
1/26/2011
2/2/2011
Finalize the Topic
5
1/26/2011
1/30/2011
Get approval from advisor
3
1/31/2011
2/2/2011
5
2/3/2011
2/7/2011
5
2/3/2011
2/7/2011
20
2/8/2011
2/28/2011
12
2/8/2011
2/20/2011
Get reviewed by advisor
4
2/21/2011
2/25/2011
Submit Abstract
2
2/26/2011
2/28/2011
20
3/1/2011
3/20/2011
Research over framework
6
3/1/2011
3/6/2011
Come out with requirement
2
3/7/2011
3/8/2011
Finalize requirements
3
3/9/2011
3/11/2011
Start Architecture
2
3/12/2011
3/13/2011
Prepare Project Plan
3
3/14/2011
3/16/2011
Get reviewed by advisor
2
3/17/2011
3/18/2011
Submit Project Plan
2
3/19/2011
3/20/2011
29
3/21/2011
4/15/2011
Research
9
3/21/2011
3/29/2011
Revised Requirement
4
3/30/2011
4/2/2011
Revised Architecture
4
4/3/2011
4/6/2011
Revised Initial Design
6
4/7/2011
4/12/2011
Pre Project Task
Research
Abstract
Develop Abstract
Project Plan
Revised Project Plan
71
Approval from professor
3
Implementation of Framework
56
Develop the algorithms
9
4/16/2011
4/24/2011
21
4/25/2011
5/16/2011
Develop the complete application
4/13/2011
4/15/2011
4/16/2011 10/25/2011
6.2 Phase 2
Table 26 Phase-2 Project Schedule
DURATION
TASK NAME
(Days)
Implementation of Framework (Continued)
Come out with test cases
Testing of Framework
Demo to professor
Testing
START
56
FINISH
4/16/2011 10/25/2011
8
9/1/2011
9/8/2011
15
9/9/2011
9/23/2011
3
9/24/2011
9/26/2011
15
9/27/2011 10/11/2011
Test Case preparation
4 10/12/2011 10/15/2011
Perform Testing
5 10/16/2011 10/20/2011
Bug Fixing
6 10/21/2011 10/25/2011
Finalization
16 10/26/2011
12/2/2011
Prepare Project Report
7 10/26/2011
11/1/2011
Get Reviewed by advisor
3
11/2/2011
11/4/2011
Working on change if given
3
11/5/2011
11/7/2011
Review Final Report
6
11/8/2011 11/13/2011
Submit Final Report
1
12/1/2011
12/1/2011
Demo
1
12/2/2011
12/2/2011
72
6.3 Gantt Chart
Figure 27 Gantt chart
73
6.4 CPM Chart
Table 27 Activity table
Activity
Description
A
Remote Control Convergence Research
B
Requirement Analysis on the Framework
C
Remote Control Convergence Design
D
Coding and Development of Framework
E
Testing of Remote Control Framework by the help
of iPhone Application.
F
Finalization
74
Precedence Table
Table 28 Precedence Table
Activity
Preceding Activity
Estimated time(Weeks)
A
-
2
B
A
2
C
B
2
D
B,C
4
E
D,C
4
F
E
2
75
Figure 28 Activity-on-Arrow Diagram
Table 29 Table to calculate critical path
Activity
ES
LS
EF
LF
Total
Free
Slack
Slack
A
0
0
2
2
0
0
B
2
2
4
4
0
0
C
4
4
6
6
0
0
76
D
6
8
10
12
2
2
E
12
16
12
16
0
0
F
16
16
18
18
0
0
Total Slack = LS - ES
Free Slack = LF – EF
The below activity-on-arrow diagram shows the critical path.
Figure 29 Activity-on-Arrow Diagram showing critical path
77
7.0 Conclusion
7.1 Learning Experience
Apart from applications like VLCREMOTE, we do not have any other common
framework by which we could use iPhone as a remote control. Developing a common framework
has opened open gates to all the iPhone application developers in enhancing their applications by
giving them a remote touch feature.
Developing the Remote Control Framework would also increase the comfort zone for the
iPhone application users, which feel to have a remote touch. Multiplayer gaming applications or
even applications which may require multiple users to handle can make use of this common
framework very well. Multiple users can access a single application by the help of this common
framework. Also any intrusion of a stranger trying to access an application shared with in a
private network can be avoided by the help of this common framework. Developing this
framework has given me and the team a wide range of exposure about the smart phones and also
their capability of having remote touch to their applications.
7.2 Recommendations
The Remote Control Framework developed would be useful for multiple users trying to
access their iPhone application on a Desktop simultaneously with in a Local Area Network. The
current framework should be developed in a manner that it can be used in the wider range of
network. Also the current framework has the APIs developed only for the iPhone applications
but not common for all the smart phones. More research and development has to be done in order
for this framework to be suitable for wide range of smart phones available in the market.
78
Appendix 1- Definitions
Event Collector: A component that is responsible to collect events from various state changes in
iPhone like keypad events, touch events, accelerometer events, gyroscope events, etc.
Event Encoder: A component that is responsible to encode all the collected events to a data
format, which would then be a payload, ready to get transmitted to the desktop module.
Event Transmitte r: This component is responsible for transmitting the payload from iPhone to
the desktop
Event Receiver: This component is responsible to collect all the events which are transmitted
from iPhone.
Event Decoder: This component is responsible for decoding the encoded events and passing it
to the application for corresponding action.
Network Detector: This component is responsible for taking care of reliability and flow control
issues since large amounts of event data is being transmitted.
Multi-Thread Manage r: This component is responsible for managing threads which comes into
picture while collecting events from various event generators, encoding them and transmitting
them simultaneously.
Security Manager: This component ensures the data encryption in the network while
transmitting and receiving.
79
8.0 References
Security Framework Reference, Apple Inc. March 2008. Retrieved from
http://developer.apple.com/library/ios/documentation/Security/Reference/SecurityFrameworkRef
erence/SecurityFrameworkReference.pdf
iOS Technology Overview, Apple Inc. October 2011. Retrieved from
http://developer.apple.com/library/ios/#documentation/Miscellaneous/Conceptual/iPhoneOSTec
hOverview/CoreOSLayer/CoreOSLayer.html
CM Accelerometer Data Class Reference, Apple Inc. April 2010. Retrieved from
http://developer.apple.com/library/ios/#documentation/CoreMotion/Reference/CMAcceleromete
rData_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40009671
Event Handling Guide For iOS, Apple Inc. March 2011. Retrieved from
http://developer.apple.com/library/ios/#documentation/EventHandling/Conceptual/EventHandlin
giPhoneOS/EventsiPhoneOS/EventsiPhoneOS.html#//apple_ref/doc/uid/TP40009541-CH2-SW1
80