This document proposes an approximate method for measuring the functional size of mobile apps using the COSMIC functional size measurement method. It begins with an overview of why measuring mobile apps is important and how they differ from other applications. It then provides a short introduction to the COSMIC method. The proposed method makes some basic assumptions about mobile app architecture and defines types of functional processes that can be quantified in COSMIC measurement units. The method aims to allow quick yet accurate sizing of mobile apps according to COSMIC standards.
2. |
Measure the functional size
of a mobile app
Using the COSMIC functional size measurement method
Harold van Heeringen
Senior consultant software metrics
Department Sizing, Estimating & Control
Sogeti Nederland B.V.
harold.van.heeringen@sogeti.nl
@haroldveendam Rotterdam, October 6th, 2014
IWSM-Mensura 2014 2
3. |
Overview
Reasons for this paper/presentation;
Mobile apps – why are they different?;
Why measure apps using COSMIC?;
Short COSMIC overview;
The proposed approximate method;
Conclusions.
IWSM-Mensura 2014 3
4. |
Beware!
This is a technical paper/presentation!
Knowledge of the COSMIC method is required!
IWSM-Mensura 2014 4
5. |
Reasons for this paper/presentation
IWSM-Mensura 2014 5
6. |
Why?
IT industry is changing – new types of applications and
ways to interact with software arise, for example:
Cloud computing;
Google glass;
Mobile apps.
Software sizing, estimation and benchmarking
challenges:
Fixed price/fixed date app development.
Need for methods and guidelines to apply standards
to sizing, estimating and benchmarking.
IWSM-Mensura 2014 6
7. |
Mobile apps
Do I really have to introduce these?
IWSM-Mensura 2014 7
8. |
Some characteristics
Downloaded on a mobile device, like phone or tablet;
Connects to the internet (Wi-Fi/cellular);
Many different application types;
Touch screen;
Use of GPS: content and functionality change,
depending on location;
Use of motion sensor: motion of device can result in
different display;
Content updates automatically;
Functionality may be updated periodically.
IWSM-Mensura 2014 8
9. |
Mobile apps – why are they different?
More ways of user interaction:
Changing position of device: toggling;
Voice input, e.g. Siri;
Reaction to real-time events:
Reach a certain location: message ‘flasher’;
Unclear where data is stored:
On device/on backend/in cloud;
Functionality to handle disruptions:
E.g. an incoming call;
Specific non-functional requirements:
Security, performance, data traffic, battery use.
IWSM-Mensura 2014 9
10. |
Why measure apps using COSMIC?
Measuring mobile apps with the IFPUG method has
already been published (the IFPUG guide to IT and
software measurement).
Using COSMIC may produce even better results:
More accurate measurement due to ratio scale;
Concepts of layers and peer components fits
mobile app architectures;
Lack of knowledge of the data model is no show
stopper for COSMIC.
Objective: create an approximate method to
accurately size mobile apps using COSMIC.
IWSM-Mensura 2014 10
12. |
Entries functional process
IWSM-Mensura 2014 12
Triggering
event
is sensed
by
Triggering
Entry
Functional
Boundary
user
Functional
process
13. |
Functional processes and data movements
IWSM-Mensura 2014 13
Functional User
Requirements
Functional
processes
Sub-processes
Software
Data movement Data manipulation
14. |
COSMIC overview
Users Functional process Data
IWSM-Mensura 2014 14
W
E
X R
16. |
Basic assumptions
A mobile app is an application layer, developed on
top of one ore more data layers:
The physical location of the data layer is irrelevant;
Logically, no persistent data is stored in the application
layer:
No Reads/Writes are measured, only Entries/eXits;
The app can use certain process data that is
spontaneously present:
E.g. date + time and GPS location;
Mobile apps are considered business applications:
One eXit for all (error) messages;
(Error) messages come from data layer: 1 Entry.
IWSM-Mensura 2014 16
17. |
Measurement strategy
Equal to ‘standard’ COSMIC measurements, identify:
Purpose, e.g. estimate realisation phase;
Scope, e.g. a set of functional requirements;
Functional users, e.g. the end users that download
the app from the app store;
Level of granularity, e.g. functional process level.
Keep basic assumptions in mind when doing so.
IWSM-Mensura 2014 17
18. |
Mapping phase
Equal to ‘standard’ COSMIC measurements, identify:
Functional processes;
Objects of interest;
Data groups.
Keep basic assumptions in mind when doing so.
IWSM-Mensura 2014 18
19. Measurement phase: approximate method
|
Two steps:
1. Indentify the type of functional process;
2. Quantify the parameters involved.
IWSM-Mensura 2014 19
20. |
Functional process types
Looking at the primary intent of a functional process:
1. View functionality;
2. Data manipulation (add, change, delete);
3. Enquiry (before update);
4. User supporting functionality, e.g. list box, selection
screen, pop-up function);
5. Special functionality:
• Dynamically generated menus;
• Log in/log out functionality;
• Help functionality;
• Invoking external functionality.
IWSM-Mensura 2014 20
22. |
View functionality
Basic view functional process: 6 CFP;
1 OOI/1 data group:
For each additional OOI/data group:
For each calculated/derived data group: 1 eXit.
IWSM-Mensura 2014 22
E Start entry
X Question for information to the data layer
E Receiving data
E Receiving application error messages
X Show data
X Show application error messages
E Receiving data
X Show data
23. Data Layer
|
View functional process
IWSM-Mensura 2014 23
Application layer
E
X
E
X
6 CFP
X
E
OOI / data group
Messages
24. Measurement phase: approximate method
|
For each functional process with primary intent to
present data to at least one of the functional users:
4 CFP
+ (2 CFP * number of data groups derived from the
data layer)
+ (1 CFP * number of data groups with calculated
and/or determined data)
IWSM-Mensura 2014 24
25. |
Data manipulation functionality
Basic add/change/delete functional process: 4 CFP:
For each additional OOI/data group manipulated:
For each data group shown to the user:
X Question for information to the data layer
E Receiving data
X Show data
For each validation for which referential data is needed:
IWSM-Mensura 2014 25
E Start entry
X Providing information to the data layer
E Receiving application error messages
X Show application error messages
E Entering data
X Providing information to the data layer
X Questions for information to the data layer
E Receiving data
26. Measurement phase: approximate method
|
For each functional process with primary intent to
manipulate data for at least one of the functional
users:
2 CFP
+ (2 CFP * number of data groups manipulated)
+ (3 CFP * number of displayed data groups)
+ (2 CFP * number of validations with referential data)
IWSM-Mensura 2014 26
27. |
Enquiry / user supporting functionality
Enquiry functionality (before update):
Identical to view functionality.
User supporting functionality (non mandatory):
Identical to view functionality.
IWSM-Mensura 2014 27
28. |
Special functionality - help
One functional process per help functionality type;
Identical to view functionality.
IWSM-Mensura 2014 28
4 occurrences of the same
output-type
29. |
Special functionality – Login / Logout
Standard log in: 5 CFP.
Log status is process data spontaneously present in all
functional processes.
Standard Log out: 2 CFP.
IWSM-Mensura 2014 29
E Start entry
X Providing credentials to the data layer
E Receiving log status
E Receiving application error messages
X Show application error messages
E Start entry
X Show application error messages
30. |
Conclusions
This approximate method is intended to be a guideline
to apply the COSMIC FSM quickly and correctly when
measuring mobile apps;
Based on a few simple steps, the size measurement
can be easily generated:
1. Indentify the type of functional process;
2. Quantifying the parameters involved.
Please read the paper if you are interested in a more
detailed explanation of the method.
IWSM-Mensura 2014 30
32. Harold van Heeringen
Senior Consultant Software Metrics /Software Cost Engineer
Sogeti Sizing, Estimating & Control (SEC)
@haroldveendam
harold.van.heeringen@sogeti.nl
President ISBSG (International Software Benchmarking Standards Group
(www.isbsg.org))
Board member NESMA (Netherlands Software Metrics Association (www.nesma.org))
IAC member COSMIC (www.cosmicon.com)