sizing android mobile applications - ifpug

30
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: g.a.sethumadhavan@accenture.com Reviewed By: Purnima Jagannathan Prashanth CM

Upload: others

Post on 03-Feb-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 2: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 3: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 4: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 5: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 6: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 7: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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]

Page 8: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 9: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 10: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 11: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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”

Page 12: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 13: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 14: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 15: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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 .

Page 16: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 17: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 18: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 19: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 20: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 21: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 22: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 23: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 24: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 25: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 26: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 27: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.

Page 28: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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

Page 29: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

Copyright © 2011 Accenture All Rights Reserved. 29

Questions

Page 30: SIZING ANDROID MOBILE APPLICATIONS - IFPUG

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.