6 CONCLUSION
We performed a small case study to measure quan-
titatively the degree of code reuse possible between
Java and Android versions of an application. For
code sharing, we decomposed our application into
two parts: the platform-independent part (PIP) and
the platform-dependent part (PDP). The PIP is shared
between the two platforms, and each platform has its
own PDP to address platform-specific concerns. To
determine code reuse achieved in our application, we
measured the size of our code with a simple metric
counting the number of lines of code. Our finding is
very promising in that we were able to achieve 40%
and 37% code reuse for Java and Android versions,
respectively, for a UI-intensive application. We also
learned that the Android version requires 8% more
code than the Java version. The degree of code reuse,
of course, depends heavily on the types and degrees
of platform differences and variations. We noticed
several types of platform differences, each requiring
a different technique to cope with it. It would be in-
teresting future work to study the platform differences
systematically to categorize them, to measure quanti-
tatively their impacts on the code reuse, and suggest
effective techniques to address them.
REFERENCES
Abdalkareem, R., Shihab, E., and Rilling, J. (2017). On
code reuse from StackOverflow: an exploratory study
on Android apps. Information and Software Technol-
ogy, 88:148 – 158.
Ambler, S. (1998). A realistic look at object-oriented reuse.
Software Development, 6(1):30–38.
Brown, A. W. (2004). Model driven architecture: Princi-
ples and practice. Software and Systems Modeling,
3(4):314–327.
Cheon, Y. (2019). Multiplatform application development
for Android and Java. In 17th IEEE/ACIS Interna-
tional Conference on Software Engineering, Manage-
ment and Applications, May 29-31, 2019, Honolulu,
Hawaii. To appear.
Coplien, J., Hoffman, D., and Weiss, D. (1998). Common-
ality and variability in software engineering. IEEE
Software, 15(6):37–45.
Durschmid, T., Trapp, M., and Dollner, J. (2017). Towards
architectural styles for Android app software product
lines. In 4th International Conference on Mobile Soft-
ware Engineering and Systems, pages 58–62.
F. Bronsard, et al. (1991). Toward software plug-and-play.
In Symposium on Software Reusability, Boston, MA,
pages 19–29.
Gamma, E., Helm, R., Johnson, R., and Vlissides, J.
(1994). Design Patterns: Elements of Reusable
Object-Oriented Software. Addison Wesley.
Gonzalez, H., Kadir, A. A., Stakhanova, N., Alzahrani,
A. J., and Ghorbani, A. A. (2015). Exploring reverse
engineering symptoms in Android apps. In 8th Euro-
pean Workshop on System Security, pages 7:1–7.
Heitk¨otter, H., Hanschke, S., and Majchrzak, T. A. (2013).
Evaluating cross-platform development approaches
for mobile applications. In Cordeiro, J. and Krempels,
K.-H., editors, Web Information Systems and Tech-
nologies, pages 120–138. Springer.
Linares-V´asquez, M., Holtzhauer, A., Bernal-C´ardenas, C.,
and Poshyvanyk, D. (2014). Revisiting Android reuse
studies in the context of code obfuscation and library
usages. In 11th Working Conference on Mining Soft-
ware Repositories, pages 242–251. ACM.
Martin, R. C. (2003). Agile Software Development, Princi-
ples, Patterns, and Practices. Prentice Hall.
Meservy, T. O. and Fenstermacher, K. D. (2005). Trans-
forming software development: an MDA road map.
IEEE Computer, 38(9):52–58.
Minelli, P. and Lanza, M. (2013). Software analytics for
mobile applications-insights & lessons learned. In
European Conference on Software Maintenance and
Reengineering, Genova, Itally, pages 144–153. IEEE.
Mojica, I. J., Adams, B., Nagappan, M., Dienst, S., Berger,
T., and Hassan, A. E. (2014). A large-scale empirical
study on software reuse in mobile apps. IEEE Soft-
ware, 31(2):78–86.
Northrop, L. M. (2002). SEI’s software product line tenets.
IEEE Software, 19(4):32–40.
Palmieri, M., Singh, I., and Cicchetti, A. (2012). Compar-
ison of cross-platform mobile development tools. In
16th International Conference on Intelligence in Next
Generation Networks, pages 179–186.
Ruiz, I. J. M., Nagappan, M., Adams, B., and Hassan, A. E.
(2012). Understanding reuse in the Android market.
In 20th IEEE International Conference on Program
Comprehension, pages 113–122.
Syer, M. D., Nagappan, M., Hassan, A. E., and Adams, B.
(2013). Revisiting prior empirical findings for mobile
apps: An empirical case study on the 15 most popular
open-source Android apps. In Conference of the Cen-
ter for Advanced Studies on Collaborative Research,
pages 283–297.