Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
TouchDevelop Android
RQ1: How large are TouchDevelop apps?
H1: TouchDevelop Apps Are Small
RQ2: For given task: TouchDevelop-LOC vs. Android-LOC
H2: TouchDevelop-LOC < Android-LOC
RQ3: Programmer productivity: TouchDevelop vs. Android
H3: TouchDevelop-Productivity < Android-Productivity
Count logical source statements (LSS) [“Software Size Measurement: A Framework for Counting Source Statements” by Park. Technical report, Software Engineering Institute, Sept. 1992.]
27 students of CSE 5324 software engineering class
10 Samsung Focus Windows 7 Phones from Microsoft
One class period
Thanks to Microsoft Research Connections
Did not receive training in TouchDevelop
Students not allowed to use another device
0.01
0.1
1
10
100
1000
TD: TD An: TD TD: An An: An TD: Ec An: Ec
Tim
e to
lear
n
a te
chn
iqu
e (h
ou
r)
assigned to write A: learnt B in past
Median #hours spent
learning TouchDevelop = 0
Median #hours spent
learning Android = 30
Median #hours spent
learning Eclipse = 55
1
10
100
1000
10000
TD: TD An: TD TD: An An: An TD: J An: J TD: C# An: C# TD: All An: All
LOC
assigned to write A: written B in past
Median TouchDevelop LOC
written before experiment = 0
Median Android LOC written
before experiment = 250
Median non-Android Java LOC
written before experiment = 1,000
(P1) Any "Hello World" program that prints "CSE 5324" on the screen.
(P2) A program that takes as input an integer number representing degrees Fahrenheit, converts it to degrees Celsius (using the Fahrenheit to Celsius conversion rule: deduct 32, multiply by 5, then divide by 9), and prints the resulting value.
1
10
100
1000
[0,5
)[2
5,3
0)
[50
,55
)[7
5,8
0)
[10
0,1
05
)[1
25
,13
0)
[15
0,1
55
)[1
75
,18
0)
[20
0,2
05
)[2
25
,23
0)
[25
0,2
55
)[2
75
,28
0)
[30
0,3
05
)[3
25
,33
0)
[35
0,3
55
)[3
75
,38
0)
[40
0,4
05
)[4
25
,43
0)
[45
0,4
55
)[4
75
,48
0)
[50
0,5
05
)[5
25
,53
0)
[55
0,5
55
)[5
75
,58
0)
[60
0,6
05
)[6
25
,63
0)
[65
0,6
55
)[6
75
,68
0)
[70
0,7
05
)[7
25
,73
0)
[75
0,7
55
)[7
75
,78
0)
[80
0,8
05
)[8
25
,83
0)
[85
0,8
55
)[8
75
,88
0)
[90
0,9
05
)[9
25
,93
0)
[95
0,9
55
)[9
75
,98
0)
[10
00
,10
05
)[1
02
5,1
03
0)
[10
50
,10
55
)
Nu
mb
er o
f ap
ps
LOC
47% are ≤ 9 LOC
60% are ≤ 19 LOC
1
10
100
1 2 3 4 7
LOC
App
TD An
TouchDevelop Android
System Subjects Apps / subject
Some code Correct
TouchDevelop 10 3.7 2.4
Android 15 3.2 1.7
TouchDevelop is more focused on tasks Less configuration and setup in TouchDevelop
Modern language features: Type-inference Convenient for small tasks
Semi-structured TouchDevelop IDE
Programmers so far have written small TouchDevelop apps
Experiment comparing on-phone to off-phone development Small programming tasks
Student subjects
Subject training: Android > TouchDevelop
TouchDevelop LOC < Android LOC
TouchDevelop productivity > Android productivity
http://cseweb.uta.edu/~tuan/tdexp/
TouchDevelop LSS: 8 Android LSS: 25
1 2 3 4 5 6 7 8
9
10 11 12
13 14 15 16 17 18 19
20
21 22 23 24 25
1 2
3 4 5 6
7 8
-
20
40
60
80
100
>= 0 >= 1 >= 2 >= 3 >= 4 >= 5
Sub
ject
s (%
)
Number of apps implemented with desired functionality
TD An
Stu
den
ts (
%)
Lookup text view and
change text to ``CSE 5324''
Could have implemented this change
without changing code, just replace “Hello
World” string in XML configuration file
Modify result
expression
add e2 edit
text box
Requires addition to
XML configuration file
(not shown)
0
1
2
3
4
5
-1 1 3 5 7 9 11
Nu
mb
er
of
app
s im
ple
men
ted
wit
h
des
ired
fu
nct
ion
alit
y
Prior experience across programming languages (kLOC)
An TD Linear (An) Linear (TD)
TouchDevelop subjects mainly used code samples Android subjects: API sources and web sources
Source used Android
(%)
TouchDevelop
(%)
Code samples 13 80
API 53 0
Web sources 53 20
Other sources 7 20