SIZING ANDROID MOBILE APPLICATIONS GURUPRASATH S, CFPS Email: g.a.sethumadhavan@accenture.com Reviewed By: Purnima Jagannathan Prashanth CM Copyright 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
Agenda About ANDROID Application Determining Scope & Challenges & Approach Data Functions & Transaction Functions General System Characteristics Miscellaneous Copyright 2011 Accenture All Rights Reserved. 2
Abstract a Call it the boom in hand-held devices, there is a new genre of applications covering up IT marketplace. There is plethora of these devices released to market every year. Major players in the communications industry are also focusing on bringing up their own platforms and attracting application developers through their SDK and App Centers. If we visit these App Centers, we can clearly see few applications getting added every day. This makes it an interesting and ever growing genre of applications. This paper suggests the approaches for Sizing ANDROID mobile applications a Copyright 2011 Accenture All Rights Reserved. 3
Abstract - Key Points Exploring possibility of FP Analysis of Android Applications, to cover fast growing genre of the applications Challenges posed by coherent applications while defining boundary or identifying scope Identifying transactions among deeply nested interactions between applications, and logical grouping of data, based on these transactions Differentiating factors that impact the size of Android applications as compared to PC based applications The approach coupled with illustrations, is surely an enabler to size compact applications running on mobile devices Copyright 2011 Accenture All Rights Reserved. 4
About Android Application About Android: Android is an open source platform that allows developers to write new applications as well as enhance existing applications. Compared to other smart phone platforms Android resides in numerous handsets from various manufacturers. From a FP perspective, Android does not give any unique functionality compared to other platforms. Few differences exist on the technical side (Performance, processing optimization etc.) that leads to change in values for GSC s (Non- Functional). All mobile platforms will have common features such as Phone, Contacts, Messaging, and Calendar etc. However covering all these features for a wide variety of platforms is not feasible. What is an Android application and its characteristics? An application in Android is packaged as an.apk file Android application is made up of Activities, Services, Broadcast receivers and Content Providers and gets invoked by messages called Intents. The application can also be viewed as the features that are independently installed on an Android Device. Example of applications Messaging App, Contacts App. Copyright 2011 Accenture All Rights Reserved. 5
Determining Scope & COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion Scope: Scope is defined as the set of functionalities to be included in the function point count. Purpose of conducting FPA is to cover all functionality given by a particular application, scope will include all the features of that application. : is the border between the application and its Users. Each application is conceptually enclosed within its boundary. An android application can be visualized as a bundle of related functionalities, encapsulated with application specific data. Each functionality or App is developed independently and will perform a Slide title: can span two lines of the slide and uses this font color (26pt) specific function that differentiates it from other applications.(for Eg: the Messaging App will be different from the Phone App and each has a specific function to perform). As each application is an independent entity, we would place an application boundary around each App within the Android platform. Copyright 2011 Accenture All Rights Reserved. 6
Determining Scope & COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion List of Applications: (non exhaustive) Messaging App [Application used to send and receive Messages] Contacts App Browser App Map App [Application that maintains Phone book entries] [Application used to access web] [Application used to display geographic data] Bluetooth App [Application uses the Bluetooth Services] Phone App [Application used for making calls] Camera App [Application used for capturing Images] Slide title: can span two lines of the [Application used to manage music] slide and uses this font color (26pt) Music App Clock App [Application that shows system Time] Alarm App [Application used to set Alarms/Timer alerts] Copyright 2011 Accenture All Rights Reserved. 7
Determining Scope & COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion Slide title: can span two lines of the slide and uses this font color (26pt) Android Architecture Showing Different Apps Copyright 2011 Accenture All Rights Reserved. 8
Challenges & Approach COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion Challenges & Approach Scope: Some of the android applications use services given by other applications to fulfill their business case. In such situations associating a feature to a specific application is a challenge. Messaging App receives an SMS with a phone number embedded in it. User can save the embedded number into his Contact List, by choosing options, Save Number. The feature Save Number is supported by Contacts App. If the purpose is to size Messaging App, this feature will not be in the scope, as the feature belongs to Contacts App. Instead, if the purpose is to count Contacts Apps as well, Save Number feature must be included. Slide title: can span two lines of the slide and uses this font color (26pt) Copyright 2011 Accenture All Rights Reserved. 9
Challenges & Approach COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion Search (Google) made on Browser App, results in a web page containing the location along with a map of the location. In this scenario, displaying the Search page should be counted in Browser App. However, displaying the map should be counted in Map App Slide title: can span two lines of the slide and uses this font color (26pt) Scope example: Saving New number embedded in SMS into Contacts Copyright 2011 Accenture All Rights Reserved. 10
Challenges & Approach COUNTING SCOPE & BOUNDARY Data Transaction GSC s Miscellaneous Function Function Conclusion Challenges & Approach : Defining boundary of an application which interacts with multiple applications is not obvious. Search (Google) made on Browser App, results in a web page containing the location along with a map of the location. In this scenario, displaying the Search page should be counted in Browser App. However, displaying the map should be counted in Map App Slide title: can span two lines of the slide and uses this font color (26pt) Search results (Browser App) with embedded Map of the location Copyright 2011 Accenture All Rights Reserved. 11
Data Function DATA FUNCTION Transaction Scope& GSC s Miscellaneous Function Conclusion Data functions are the functionality given to the user to meet internal and external data storage requirements. These are part of Base Functional Components (BFC). Internal Data Storage : Data storage internal to an application forms Internal Logical Files (ILF). ILFs correspond to data maintained within boundary of an application. In other words, data maintained by an application through processes like Create, Edit and Delete is essentially ILF. Example: Bluetooth App has an ability to sense the available devices around and list them. While this is done, Slide title: can span two lines of the slide and uses this font color (26pt) internally handshaking between Bluetooth devices is done and the Bluetooth App of the initiator device stores the available device profiles. Device data hence stored becomes ILF for the Bluetooth App. Copyright 2011 Accenture All Rights Reserved. 12
Data Function DATA FUNCTION Transaction Scope& GSC s Miscellaneous Function Conclusion Slide title: can span two lines of the slide and uses this font color (26pt) Storing Device data upon Bluetooth Connection Establishment Copyright 2011 Accenture All Rights Reserved. 13
Data Function DATA FUNCTION Transaction Scope& GSC s Miscellaneous Function Conclusion External Data Reference : External data storage corresponds to EIFs (External Interface File), data referenced by application under discussion, but maintained outside its boundary. Example: Phone App owns incoming call; however Name of the calling person and image shown as part of incoming call screen are referred from Contacts App. Hence, for Phone Slide title: can span two lines of the slide and uses this font color (26pt) App, Contact details is considered as EIF. Display of Incoming call referring Contacts Copyright 2011 Accenture All Rights Reserved. 14
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Transaction Functions are functionality given to the user to process data. There are three types of transaction functions, which are also part of Base Functional Components (BFC). Transaction functions can be visualized as data under motion, while data functions corresponding to stationary data of the application. External Input: External Inputs are transaction functions that accept data from user and maintain ILFs. Example: Capturing of an image using the Camera App. While an image is being captured via user action, shutter tone is heard and flash is used, and image is stored in Image ILF. Error message is displayed if anything goes wrong. Hence, upon counting Image Capture transaction, Image, shutter tone and Flash can be seen as DETs along with Capture action and Error Message (Memory Full, Low Battery, closed shutter etc.). Deleting the captured image is also an EI. Copyright 2011 Accenture All Rights Reserved. 15
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Capture Image transaction to store Images Copyright 2011 Accenture All Rights Reserved. 16
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion External Outputs: External Outputs are transaction functions that present information to the user with help of additional processing logic like Calculations and generation of derived data. Example: Snoozed Alarm Alert of Alarm App is an example of EO. the calculation involves stored alarm time, snooze duration and current time. Alert displays message to the user along with Alert Tone Listing Call Log is an EO, as it lists the call records along with the count of calls made to a specific number or calls from specific number. Copyright 2011 Accenture All Rights Reserved. 17
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Examples of an EO Elapsed Time Example of an EO Displaying of Snooze Alert Copyright 2011 Accenture All Rights Reserved. 18
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion External Enquiries: External Enquiries are transaction functions that present information to the user with retrieval of data from logical data. EQ examples include listing the contacts, searching for contacts in Contacts App, list of music files in Music App etc. Example: Listing of Contacts in Contacts App is one of the examples for EQ. Here entries stored in Contacts file are retrieved and displayed to user in alphabetical order for ease of usage. Searching specific contacts in Contacts List can also be seen as EQ. User enters search key, based on which entries matching the key are retrieved and displayed. List of music files in Music App is an EQ as well. Viewing Inbox, which shows a list of messages, is another interesting example of EQ. Copyright 2011 Accenture All Rights Reserved. 19
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Searching of Contacts Example of an EQ Listing all Contacts Examples of an EQ Display of Message in Inbox Copyright 2011 Accenture All Rights Reserved. 20
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Challenges in identifying transactions among deeply nested interactions It is very common to see complicated interactions spanning multiple applications in smart phones. A common use case of sending a message while user is on an ongoing call has been explained below. This shows a user interaction stepwise, indicating the applications that involve in each step. Phone gets a signal of incoming call - Phone App is invoked and incoming call screen is shown One EO for Showing incoming call screen in Phone App. For Ringtone playback, ringer and audio manger services are used. - Ringtone Manager is invoked. This process belongs to Ringtone Manager, and doesn't contribute to Phone App One EQ for Ringtone manager. User Accepts the incoming call Ringtone App ceases, ongoing call screen is shown by Phone App. Slide Ongoing title: call can Screen span is shown is two EO for lines Phone App. of the slide and uses this font color (26pt) Navigates to Contacts from ongoing Call screen Contact App is invoked. X This is just navigation hence not an Elementary Process. Copyright 2011 Accenture All Rights Reserved. 21
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Challenges in identifying transactions among deeply nested interactions Contact list is shown - Contacts App elementary process to show contact list Contact List is considered as EQ for Contacts App. Selects a contact, contact detail is shown - Contacts App elementary process to show contact details. Contact details are considered as EQ for Contacts App. 'Compose Message' screen is shown - Messaging App Invoked. X Compose screen displays a blank screen. Hence not Counted. User composes message and sends it Messaging App elementary process to send message; Composing a Message is an EI for Messaging App Slide title: can span two lines of the slide and uses this font color (26pt) Sending message is an EO for Messaging App, as Time sent' is recorded in ILF. Navigates back to ongoing call screen Contact App ceases; Ongoing call is Phone App s elementary process and User Ends the call. Copyright 2011 Accenture All Rights Reserved. 22
Transaction Functions TRANSACTION FUNCTION Data Scope& GSC s Miscellaneous Function Conclusion Flow diagram for the interaction with indicated EPs Copyright 2011 Accenture All Rights Reserved. 23
General System Characteristics GENERAL SYSTEM CHARACTERISTICS Data Transactio Scope& Miscellaneous Conclusion Function n Function The current set of GSC s might look very far from the view point of applications designed for Android. These applications are light (less memory, less functionality) and will not have complex scenarios compared to PC counter parts. Only GSC s, that hold to a better extent for these applications are: Data communication Performance Online Data Entry End-User Efficiency Online Update Slide title: can span two lines of the Reusability slide and uses this font color (26pt) Installation Use Copyright 2011 Accenture All Rights Reserved. 24
Miscellaneous MISCELLANEOUS Data Transactio Scope& Function n Function GSC s Conclusion Differentiating factors - Android applications Vs PC based Applications Applications running on handheld have limitations due to power and resource constraints. Limited memory size and greedy power strategies limit application s size and functionalities Thereby, handheld devices will offer minimal functionalities compared to their PC counterparts. Due to this, the FP size of the functionality in mobile application will be very small compared to the FP size of its PC counterparts. Example: Adobe Reader gives Saving, Adding notes, extracting, printing and many such features in the PC version. In the Android version, it just gives view PDF option. Hence Android version of Adobe reader will be very small in FP size compared to PC based version. Copyright 2011 Accenture All Rights Reserved. 25
Miscellaneous MISCELLANEOUS Data Transactio Scope& Function n Function GSC s Conclusion Non-FP countable Some transactions in applications might be handling static and system data. Such functionalities might not be countable from FP perspective. As an example, we see Clock utility which part of platform. It s just a wrapper around System Clock and gives functionality to view current time. Example of FP Not Countable Clock Copyright 2011 Accenture All Rights Reserved. 26
Conclusion Scope & Data Transaction GSC s Miscellaneous Function Function CONCLUSION An Effort has been made to demonstrate function point analysis concepts as applied to Android Applications. It addresses the challenges posed and suggests the approach to be followed while Sizing such applications. This serves as a guide for applying FPA on Android Mobile applications. Any specific applications needing additional considerations, then the approaches discussed in this paper need to be considered as an extension. Copyright 2011 Accenture All Rights Reserved. 27
References [1] http://developer.android.com/index.html [2] http://www.ifpug.org/ [3] IFPUG CPM - 4.3 [4] www.talkandroid.com/google-android-application- guide Copyright 2011 Accenture All Rights Reserved. 28
Questions Copyright 2011 Accenture All Rights Reserved. 29
About Author Guruprasath is holder of M.Sc Software Engineering Degree from Bharathiar University. He has total 5 years of experience in IT industry, predominantly worked on Finance and Banking Domain. He has been with Accenture for last 1 year and in his current assignment owns a responsibility of Function Point Analysis for a Major Telecom Client. Guruprasath is Certified Function Point Specialist (CFPS, 4.3) and an active contributor in IFPUG Bulletin Board Discussions. Copyright 2011 Accenture All Rights Reserved. 30