From UI Design Image to GUI Skeleton: A Neural Machine
Translator to Bootstrap Mobile GUI Implementation ICSE ’18, May 27-June 3, 2018, Gothenburg, Sweden
ACKNOWLEDGMENTS
We appreciate all participants for the human study, and we espe-
cially thank Yuekang Li for the constructive discussion in Android
UI development. We also thank the GPU support from Nvidia AI
center, Singapore to accelerate the experiments.
REFERENCES
[1] 2017. Adobe Photoshop. http://www.adobe.com/Photoshop/. (2017).
[2]
2017. Android Studio. https://developer.android.com/studio/index.html. (2017).
[3]
2017. Convert a psd to android xml ui and java. http://exportkit.com/learn/
how-to/export-your-psd/convert-a-psd-to-android-xml-ui-and-java. (2017).
[4]
2017. Sketch:Professional digital design for Mac. (2017). https://www.sketchapp.
com/
[5] 2017. Xcode. https://developer.apple.com/xcode/. (2017).
[6]
Miltiadis Allamanis, Hao Peng, and Charles Sutton. 2016. A convolutional at-
tention network for extreme summarization of source code. In International
Conference on Machine Learning. 2091–2100.
[7]
Apktool. 2017. Apktool. (2017). Retrieved 2017-5-18 from https://ibotpeaches.
github.io/Apktool/
[8]
Matej Balog, Alexander L Gaunt, Marc Brockschmidt, Sebastian Nowozin, and
Daniel Tarlow. 2016. Deepcoder: Learning to write programs. arXiv preprint
arXiv:1611.01989 (2016).
[9]
Alexandre Bartel, Jacques Klein, Martin Monperrus, and Yves Le Traon. 2012.
Dexpler: Converting Android Dalvik Bytecode to Jimple for Static Analysis with
Soot.
[10]
Tony Beltramelli. 2017. pix2code: Generating Code from a Graphical User Inter-
face Screenshot. arXiv preprint arXiv:1705.07962 (2017).
[11]
Léon Bottou. 2012. Stochastic gradient descent tricks. In Neural networks: Tricks
of the trade. Springer, 421–436.
[12]
Budget. 2017. Budget. (2017). Retrieved 2017-5-18 from https://github.com/
notriddle/budget-envelopes
[13]
John Canny. 1986. A computational approach to edge detection. IEEE Transactions
on pattern analysis and machine intelligence 6 (1986), 679–698.
[14]
Wing-Kwan Chan, Hong Cheng, and David Lo. 2012. Searching connected API
subgraph via text phrases. In Proceedings of the ACM SIGSOFT 20th International
Symposium on the Foundations of Software Engineering. ACM, 10.
[15]
Kyunghyun Cho, Bart Van Merriënboer, Caglar Gulcehre, Dzmitry Bahdanau,
Fethi Bougares, Holger Schwenk, and Yoshua Bengio. 2014. Learning phrase
representations using RNN encoder-decoder for statistical machine translation.
arXiv preprint arXiv:1406.1078 (2014).
[16]
Shauvik Roy Choudhary, Alessandra Gorla, and Alessandro Orso. 2015. Au-
tomated Test Input Generation for Android: Are We There Yet? (E). In 30th
IEEE/ACM International Conference on Automated Software Engineering, ASE 2015,
Lincoln, NE, USA, November 9-13, 2015. 429–440.
[17]
Ronan Collobert, Koray Kavukcuoglu, and Clément Farabet. 2011. Torch7: A
matlab-like environment for machine learning. In BigLearn, NIPS Workshop.
[18]
Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. 2009. Ima-
genet: A large-scale hierarchical image database. In Computer Vision and Pattern
Recognition, 2009. CVPR 2009. IEEE Conference on. IEEE, 248–255.
[19]
Yuntian Deng, Anssi Kanervisto, Jerey Ling, and Alexander M Rush. 2017.
Image-to-Markup Generation with Coarse-to-Fine Attention. In International
Conference on Machine Learning. 980–989.
[20]
Soot Developers. 2017. Soot. (2017). Retrieved 2017-5-18 from https://github.
com/Sable/soot
[21]
Morgan Dixon and James Fogarty. 2010. Prefab: implementing advanced behav-
iors using pixel-based reverse engineering of interface structure. In Proceedings of
the SIGCHI Conference on Human Factors in Computing Systems. ACM, 1525–1534.
[22]
Michael P Fay and Michael A Proschan. 2010. Wilcoxon-Mann-Whitney or t-test?
On assumptions for hypothesis tests and multiple interpretations of decision
rules. Statistics surveys 4 (2010), 1.
[23]
Daniel J Felleman and David C Van Essen. 1991. Distributed hierarchical pro-
cessing in the primate cerebral cortex. Cerebral cortex 1, 1 (1991), 1–47.
[24]
Google. 2017. Android UI Automator. (2017). Retrieved 2017-5-18 from http:
//developer.android.com/tools/help/uiautomator/index.html
[25]
Google. 2017. Monkey. (2017). Retrieved 2017-2-18 from http://developer.android.
com/tools/help/monkey.html
[26]
Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, and Sunghun Kim. 2016. Deep
API learning. In Proceedings of the 2016 24th ACM SIGSOFT International Sympo-
sium on Foundations of Software Engineering. ACM, 631–642.
[27]
Xiaodong Gu, Hongyu Zhang, Dongmei Zhang, and Sunghun Kim. 2017. DeepAM:
Migrate APIs with Multi-modal Sequence to Sequence Learning. arXiv preprint
arXiv:1704.07734 (2017).
[28]
Xiaocong He. 2017. Python wrapper of Android UIAutomator test tool. (2017).
Retrieved 2017-5-18 from https://github.com/xiaocong/uiautomator
[29]
Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long short-term memory. Neural
computation 9, 8 (1997), 1735–1780.
[30]
Ruozi Huang, Yonghao Long, and Xiangping Chen. 2016. Automaticly Generating
Web Page From A Mockup.. In SEKE. 589–594.
[31]
David H Hubel and Torsten N Wiesel. 1962. Receptive elds, binocular interaction
and functional architecture in the cat’s visual cortex. The Journal of physiology
160, 1 (1962), 106–154.
[32]
David H Hubel and Torsten N Wiesel. 1968. Receptive elds and functional
architecture of monkey striate cortex. The Journal of physiology 195, 1 (1968),
215–243.
[33]
Iman Keivanloo, Juergen Rilling, and Ying Zou. 2014. Spotting working code ex-
amples. In Proceedings of the 36th International Conference on Software Engineering.
ACM, 664–675.
[34]
Philipp Koehn. 2004. Pharaoh: a beam search decoder for phrase-based statistical
machine translation models. Machine translation: From real users to research
(2004), 115–124.
[35]
Alex Krizhevsky, Ilya Sutskever, and Georey E Hinton. 2012. Imagenet classica-
tion with deep convolutional neural networks. In Advances in neural information
processing systems. 1097–1105.
[36]
Yann LeCun, Yoshua Bengio, and Georey Hinton. 2015. Deep learning. Nature
521, 7553 (2015), 436–444.
[37]
Yann LeCun, Léon Bottou, Yoshua Bengio, and Patrick Haner. 1998. Gradient-
based learning applied to document recognition. Proc. IEEE 86, 11 (1998), 2278–
2324.
[38]
Tsung-Yi Lin, Michael Maire, Serge Belongie, James Hays, Pietro Perona, Deva
Ramanan, Piotr Dollár, and C Lawrence Zitnick. 2014. Microsoft coco: Common
objects in context. In European conference on computer vision. Springer, 740–755.
[39]
David G Lowe. 1999. Object recognition from local scale-invariant features. In
Computer vision, 1999. The proceedings of the seventh IEEE international conference
on, Vol. 2. Ieee, 1150–1157.
[40]
Collin McMillan, Mark Grechanik, Denys Poshyvanyk, Qing Xie, and Chen Fu.
2011. Portfolio: nding relevant functions and their usage. In Proceedings of the
33rd International Conference on Software Engineering. ACM, 111–120.
[41]
Guozhu Meng, Yinxing Xue, Jing Kai Siow, Ting Su, Annamalai Narayanan,
and Yang Liu. 2017. AndroVault: Constructing Knowledge Graph from Mil-
lions of Android Apps for Automated Analysis. CoRR abs/1711.07451 (2017).
arXiv:1711.07451 http://arxiv.org/abs/1711.07451
[42]
Lili Mou, Rui Men, Ge Li, Lu Zhang, and Zhi Jin. 2015. On end-to-end pro-
gram generation from user intention by deep neural networks. arXiv preprint
arXiv:1510.07211 (2015).
[43]
Naila Murray and Florent Perronnin. 2014. Generalized max pooling. In Proceed-
ings of the IEEE Conference on Computer Vision and Pattern Recognition. 2473–
2480.
[44]
Vinod Nair and Georey E Hinton. 2010. Rectied linear units improve re-
stricted boltzmann machines. In Proceedings of the 27th international conference
on machine learning (ICML-10). 807–814.
[45]
Tuan Anh Nguyen and Christoph Csallner. 2015. Reverse engineering mobile
application user interfaces with remaui (t). In Automated Software Engineering
(ASE), 2015 30th IEEE/ACM International Conference on. IEEE, 248–259.
[46]
Greg Nudelman. 2013. Android design patterns: interaction design solutions for
developers. John Wiley & Sons.
[47]
Kishore Papineni, Salim Roukos, Todd Ward, and Wei-Jing Zhu. 2002. BLEU: a
method for automatic evaluation of machine translation. In Proceedings of the
40th annual meeting on association for computational linguistics . Association for
Computational Linguistics, 311–318.
[48]
Steven P Reiss. 2014. Seeking the user interface. In Proceedings of the 29th
ACM/IEEE international conference on Automated software engineering. ACM,
103–114.
[49]
Patrice Y Simard, David Steinkraus, John C Platt, et al
.
2003. Best practices for
convolutional neural networks applied to visual document analysis.. In ICDAR,
Vol. 3. 958–962.
[50]
Ameer Armaly Siyuan Jiang and Collin McMillan. 2017. Automatically Generating
Commit Messages from Dis using Neural Machine Translation. In Automated
Software Engineering (ASE), 2017 32th IEEE/ACM International Conference on.
IEEE.
[51]
Ray Smith. 2007. An overview of the Tesseract OCR engine. In Document Analysis
and Recognition, 2007. ICDAR 2007. Ninth International Conference on, Vol. 2. IEEE,
629–633.
[52]
Ting Su. 2016. FSMdroid: Guided GUI testing of android apps. In Proceedings of
the 38th International Conference on Software Engineering, ICSE 2016, Austin, TX,
USA, May 14-22, 2016 - Companion Volume. 689–691.
[53]
Ting Su, Guozhu Meng, Yuting Chen, Ke Wu, Weiming Yang, Yao Yao, Geguang Pu,
Yang Liu, and Zhendong Su. 2017. Guided, Stochastic Model-based GUI Testing
of Android Apps. In Proceedings of the 2017 11th Joint Meeting on Foundations of
Software Engineering (ESEC/FSE 2017). ACM, New York, NY, USA, 245–256.
[54]
Ting Su, Ke Wu, Weikai Miao, Geguang Pu, Jifeng He, Yuting Chen, and Zhendong
Su. 2017. A Survey on Data-Flow Testing. ACM Comput. Surv. 50, 1, Article 5
(March 2017), 35 pages.