sizing android mobile applications - ifpug
TRANSCRIPT
Copyright © 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.
SIZING ANDROID
MOBILE APPLICATIONS
GURUPRASATH S, CFPS
Email: [email protected]
Reviewed By:
Purnima Jagannathan
Prashanth CM
Copyright © 2011 Accenture All Rights Reserved. 2
Agenda
About ANDROID Application
Determining Counting Scope & Boundary
Challenges & Approach
Data Functions & Transaction Functions
General System Characteristics
Miscellaneous
Copyright © 2011 Accenture All Rights Reserved. 3
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. 4
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. 5
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. 6
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion
Determining
Counting Scope &
Boundary
Counting 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.
Boundary:
Boundary 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
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. 7
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion
Determining
Counting Scope &
Boundary
List of Applications: (non exhaustive)
Messaging App [Application used to send and receive Messages]
Contacts App [Application that maintains Phone book entries]
Browser App [Application used to access web]
Map App [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]
Music App [Application used to manage music]
Clock App [Application that shows system Time]
Alarm App [Application used to set Alarms/Timer alerts]
Copyright © 2011 Accenture All Rights Reserved. 8
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion
Determining
Counting Scope &
Boundary
Android Architecture Showing Different Apps
Copyright © 2011 Accenture All Rights Reserved. 9
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion Challenges &
Approach
Challenges & Approach – Counting 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.
Copyright © 2011 Accenture All Rights Reserved. 10
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion Challenges &
Approach
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
“Counting Scope” example: Saving New number embedded in SMS into Contacts
Copyright © 2011 Accenture All Rights Reserved. 11
Slide title: can span two lines of the
slide and uses this font color (26pt)
COUNTING SCOPE
& BOUNDARY
Data Function
Transaction Function
GSC’s Miscellaneous Conclusion Challenges &
Approach
Challenges & Approach – Boundary:
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
“Search results
(Browser App)
with embedded
Map of the
location”
Copyright © 2011 Accenture All Rights Reserved. 12
Slide title: can span two lines of the
slide and uses this font color (26pt)
DATA
FUNCTION
Counting Scope&
Boundary
Transaction Function
GSC’s Miscellaneous Conclusion
Data Function
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,
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. 13
Slide title: can span two lines of the
slide and uses this font color (26pt)
DATA
FUNCTION
Counting Scope&
Boundary
Transaction Function
GSC’s Miscellaneous Conclusion
Data Function
Storing Device data upon Bluetooth Connection Establishment
Copyright © 2011 Accenture All Rights Reserved. 14
Slide title: can span two lines of the
slide and uses this font color (26pt)
DATA
FUNCTION
Counting Scope&
Boundary
Transaction Function
GSC’s Miscellaneous Conclusion
Data Function
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
App, Contact details is considered as EIF.
Display of Incoming call referring Contacts
Copyright © 2011 Accenture All Rights Reserved. 15
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
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. 16
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
‘Capture Image’ transaction to store Images
Copyright © 2011 Accenture All Rights Reserved. 17
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
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. 18
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
“Displaying of Snooze Alert ” “Elapsed Time” Example of an EO
Examples of an EO
Copyright © 2011 Accenture All Rights Reserved. 19
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
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. 20
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
“Listing all Contacts”
“Searching of Contacts” Example of an EQ
“Display of Message in Inbox” Examples of an EQ
Copyright © 2011 Accenture All Rights Reserved. 21
Slide title: can span two lines of the
slide and uses this font color (26pt)
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
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.
Ongoing call Screen is shown is EO for Phone App.
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. 22
Slide title: can span two lines of the
slide and uses this font color (26pt)
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
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
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. 23
TRANSACTION
FUNCTION
Counting Scope&
Boundary
Data Function
GSC’s Miscellaneous Conclusion Transaction
Functions
Flow diagram for the interaction with indicated EPs
Copyright © 2011 Accenture All Rights Reserved. 24
Slide title: can span two lines of the
slide and uses this font color (26pt)
GENERAL
SYSTEM
CHARACTERISTICS
Counting Scope&
Boundary
Data Function
Transaction Function
Miscellaneous Conclusion
General
System
Characteristics
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
Reusability
Installation Use
Copyright © 2011 Accenture All Rights Reserved. 25
MISCELLANEOUS
Counting Scope&
Boundary
Data Function
Transaction Function
GSC’s Conclusion
Miscellaneous
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. 26
MISCELLANEOUS
Counting Scope&
Boundary
Data Function
Transaction Function
GSC’s Conclusion
Miscellaneous
Non-FP countable
Example of FP Not Countable – “Clock”
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.
Copyright © 2011 Accenture All Rights Reserved. 27
Conclusion
Counting Scope &
Boundary
Data Function
Transaction Function
GSC’s Miscellaneous 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. 28
[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
References
Copyright © 2011 Accenture All Rights Reserved. 29
Questions
Copyright © 2011 Accenture All Rights Reserved. 30
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.