Measuring Program Comprehension: A Large-Scale Field Study with Professionals
Exploring Development of Micro-Apps
1. Exploring the Development of
Micro-Apps
Mark D. Syer, Bram Adams, Ying Zou and Ahmed E.
Hassan
mdsyer@cs.queensu.ca
Software Analysis and Intelligence Lab
Queen’s University, Canada
1
2. Huge number of apps
2
AvailableApps(000’s)
+244%
+150%
+70%
3. All users want the same apps
4 of the top 5 apps are
common to all platforms
.
3
Given the same app on
two different platforms,
how do they compare?
4. 4
Code Dependency Churn
Which platform
requires more
development effort?
Which platform
requires more
maintenance effort?
Which platform
provides more
support?
5. Popular Mobile App Platforms
5
WordPress
Google Authenticator
Facebook SDK
Functionally Equivalent App Pairs
7. 7
Code Dependency Churn
Which platform
requires more
development effort?
Which platform
requires more
maintenance effort?
Which platform
provides more
support?
8. Types of micro app dependencies
8
Unique Code Base Third Party Library
foo
bar
main
JAVA APIsAndroid or BlackBerry APIs
Platform Dependencies
JAVA
Dependencies
Unique Dependencies
Third Party
Dependencies
10. 10
Code Dependency Churn
Which platform
requires more
development effort?
Which platform
requires more
maintenance effort?
Which platform
provides more
support?
but, more third
party libraries
12. 12
Code Dependency Churn
Which platform
requires more
development effort?
Which platform
requires more
maintenance effort?
Which platform
provides more
support?
but, more third
party libraries
13. Discussion
• Platform support:
– Good? additional features and functionality
reduces development effort
– Bad? high platform dependency leads to lock-in
and increases the effort of porting
• How do micro apps compare to desktop
applications?
• How does adoption/migration of platform
dependencies vary o
13
Editor's Notes
Paper title
Introduce myself, my colleagues and my lab
[high level overview]
1. Since Sept 2010, added many more apps
1. How does the same app compare across two platforms
How does the same app compare across two different platforms?
1. Start by selecting platforms and apps to compare, then compare code base size
When we started our research, these platforms all had a ~25% market share
1. selected Android and BlackBerry because apps for these platforms are written in JAVA (easier to compare)
2. looked for functionally equivalent micro app pairs
Functionally equivalent means the each app (one for the Android and another for the BlackBerry) has nearly identical functionality
How does the same app compare across two different platforms?
1. next, dependency analysis
1. Divide code base into unique and third party
2. For each file, e.g., main
3. Look at how it depends on unique classes
4. And third party classes
5. We also look at how it depends on its environment, including the Java APIs
6. And the platform APIs
1. Platform - android apps depend on the android platform much more than blackberry apps depend on the blackberry platforms. What are blackberry apps depending on? Where is their additional functionality coming from?
2. APIs – android and blackberry apps depend on JAVA heavily
3. Third Party - here is where blackberry is really making up the difference
4. Unique - again, here is where blackberry is making up some difference
Android platform appears to provide more support, at least that it what developers are telling us
but, because blackberry apps depend heavily on third party libraries (that they don’t develop themselves) perhaps the development effort for blackberry apps isn’t as high as we thought it was
1. next, churn