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