Abstract
The software architecture community has played a crucial role in the development of mobile software. Many of the ideas used in the design of these systems came from traditional software architecture and those ideas have contributed to mobile computing becoming ubiquitous. Mobile applications in the context of smart cities are very challenging since they need to operate within the power, processor, and capacity limitations of mobile devices, the exacting demands of life critical smart city requirements, and the constantly changing and exposed environment which may not always be trusted. Since there are no widely accepted design models for this type of software, developers must resort to primitive design decisions to meet all the needs of these applications, which takes additional time and expertise. For this reason, this study aims to investigate the design process for mobile applications in the context of smart cities. In order to address the lack of verified information about designing mobile apps, we conducted a multi-case study with 9 applications from 4 different development groups to build a grounded theory. The applications were reverse engineered to expose the architecture of each application. Based on all the data, an initial grounded theory was constructed to explain how the selected design process produces an app with the desired characteristics. The resulting theory offers explanations for how software engineering teams design mobile apps for smart cities. This knowledge will serve as a basis to further understand the phenomena and advances towards more effective design and development process definitions.
Similar content being viewed by others
Notes
Supplementary Material site is available at https://rose2s.github.io/EMSE2019
A1 is private but indirect information is available at http://www.rescuer-project.org
A2, A3, and A4 are no longer available but the APK files are at our Supplementary Material site
A5 and A6 are private and not available for download
A7 is no longer available but the APK file is at our Supplementary Material site
A8 is available for download at https://goo.gl/8wBxVb
A9 is available for download at https://goo.gl/1njBJz
Since it is not a trivial task, we have created a tutorial about this study, and made it available in our complementary material.
Trint is available at https://trint.com
Atlas.ti is available at https://atlasti.com
QDA Miner is available at https://provalisresearch.com
Since interviews were performed in the participant’s native language, the quotes are around text that has been translated into English.
13Fiware is available athttps://www.fiware.org
Firebase is available at https://firebase.google.com
RabbitMQ is available at https://www.rabbitmq.com
We use“candidate” here to reflect the Patterns community’s belief that there be multiple published instances of a design before it is referred to as a pattern.
17Firebase Test lab is available athttps://firebase.google.com/docs/test-lab
Ionic is available at https://ionicframework.com
React Native is available at http://www.reactnative.com
ACME Studio is available at http://acme.able.cs.cmu.edu/AcmeStudio
Figure 6 was created using the ACME Studio tool. A full tutorial of the architecture reverse-engineering and recovered architectures are available in our complementary material.
References
Adolph S, Hall W, Kruchten P (2011) Using grounded theory to study the experience of software development. Empir Softw Eng 16(4):487–513
Ahvenniemi H, Huovila A, Pinto-Seppä I, Airaksinen M (2017) What are the differences between sustainable and smart cities? Cities 60:234–245
Ameller D, Ayala C, Cabot J, Franch X (2012) How do software architects consider non-functional requirements: An exploratory study. In: 2012 20th IEEE International Requirements Engineering Conference (RE), pp 41–50
Amorim AM, Boechat G, Novais RL, Vieira V, Villela K (2017) Quality attributes analysis in a crowdsourcing-based emergency management system. In: ICEIS 2017 - Proceedings of the 19th International Conference on Enterprise Information Systems, Porto, Vol 2, pp 501–509. https://doi.org/10.5220/0006360405010509
Bagheri H, Garcia J, Sadeghi A, Malek S, Medvidovic N (2016) Software architectural principles in contemporary mobile software: from conception to practice. J Syst Softw 119:31–44
Bosch J (2000) Design and Use of Software Architectures: Adopting and Evolving a Product-line Approach, ACM Press/Addison-Wesley Publishing Co., New York
Brereton P, Kitchenham BA, Budgen D, Li Z (2008) Using a protocol template for case study planning. In: EASE, vol 8, pp 41–48
Cocchia A (2014) Smart and digital city: A systematic literature review. In: Smart city. Springer, pp 13–43
Corbin JM, Strauss A (1990) Grounded theory research: procedures, canons, and evaluative criteria. Qual Sociol 13(1):3–21
Corbin JM, Strauss A (2008) Basics of Qualitative Research: Techniques and Procedures for Developing Grounded Theory. SAGE Publications, New York
Dameri R (2013) Searching for smart city definition: a comprehensive proposal, vol 11. https://cirworld.com/index.php/ijct/article/view/1142ijct
da Silva WM, Alvaro A, Tomas GH, Afonso RA, Dias KL, Garcia VC (2013) Smart cities software architectures: a survey. In: Proceedings of the 28th Annual ACM Symposium on Applied Computing. ACM, pp 1722–1727
de M Del Esposte A, Santana EF, Kanashiro L, Costa FM, Braghetto KR, Lago N, Kon F (2019) Design and evaluation of a scalable smart city software platform with large-scale simulations. Fut Gener Comput Syst 93:427–441. http://www.sciencedirect.com/science/article/pii/S0167739X18307301
Diniz HBM, Silva ECGF, Nogueira TCC, Gama K (2016) A reference architecture for mobile crowdsensing platforms. In: Proceedings of the 18th International Conference on Enterprise Information Systems, SCITEPRESS - Science and Technology Publications, Lda, ICEIS 2016, pp 600–607
Ferreira JE, Visintin JA, Okamoto J, Pu C (2017) Smart Services: A case study on smarter public safety by a mobile app for university of são paulo. In: 2017 IEEE Smartworld, ubiquitous intelligence computing, advanced trusted computed, scalable computing communications, Cloud Big Data Computing, Internet of People and Smart City Innovation (SmartWorld/SCALCOM/UIC/ATC/CBDCom/IOP/SCI), pp 1–5
FIWARE Foundation (2018) Fiware - developers. https://www.fiware.org/developers/
Francese R, Gravino C, Risi M, Scanniello G, Tortora G (2017) Mobile app development and management: Results from a qualitative investigation. In: Proceedings of the 4th International Conference on Mobile Software Engineering and Systems, MOBILESoft’17. IEEE Press, Piscataway, pp 133–143
Fraunhofer (2014) Fraunhofer project center for software systems and engineering. http://www.fpc.ufba.br/index.php/en/about-us/
Garlan D (2000) Software architecture: A roadmap. In: Proceedings of the Conference on The Future of Software Engineering, ICSE’00. ACM, New York, pp 91–101
Glaser B, Strauss A (1967) The discovery of grounded theory: Strategies for qualitative research observations (Chicago Ill.), Aldine
Glaser B (1998) Doing Grounded Theory: Issues and Discussions. Sociology Press, https://books.google.com.br/books?id=XStmQgAACAAJ
Google (2018a) Application fundamentals - android developer documentation. https://developer.android.com/guide/components/fundamentals
Google (2018b) Asynctask - android developer documentation. https://developer.android.com/reference/android/os/AsyncTask
Hoda R, Noble J, Marshall S (2012) Developing a grounded theory to explain the practices of self-organizing agile teams. Empir Softw Eng 17(6):609–639. https://doi.org/10.1007/s10664-011-9161-0
Hoda R, Noble J, Marshall S (2013) Self-organizing roles on agile software development teams. IEEE Trans Softw Eng 39(3):422–444
Imaginovation (2017) 16 reasons the app store rejects mobile apps & how to avoid them. https://medium.com/@Imaginovation/16-reasons-the-app-store-rejects-mobile-apps-how-to-avoid-them-63f73fa33a3a
Jansen AGJ (2008) Architectural design decisions. PhD thesis, University of Groningen
Janssen D, Janssen C (n.d.) Techopedia - the it education site. https://www.techopedia.com/definition/27913/technical-debt
Joorabchi ME, Mesbah A, Kruchten P (2013) Real challenges in mobile app development. In: 2013 ACM / IEEE International Symposium on Empirical Software Engineering and Measurement, pp 15–24
Katz K (2014) Eight security issues to prepare for in mobile app development. https://www.kony.com/resources/blog/eight-security-issues-prepare-mobile-app-development
Khatoun R, Zeadally S (2016) Smart cities: concepts, architectures, research opportunities. Commun ACM 59(8):46–57. https://doi.org/10.1145/2858789
Kitchin R (2015) Making sense of smart cities: addressing present shortcomings. Camb J Reg Econ Soc 8(1):131–136
Liu C, Zhu Q, Holroyd KA, Seng EK (2011) Status and trends of mobile-health applications for ios devices: A developer’s perspective. J Syst Softw 84(11):2022–2033. http://www.sciencedirect.com/science/article/pii/S0164121211001610, mobile Applications: Status and Trends
Medvidovic N, Edwards G (2010) Software architecture and mobility: A roadmap. J Syst Softw 83(6):885–898. http://www.sciencedirect.com/science/article/pii/S0164121209002854, software Architecture and Mobility
Mojica IJ, Adams B, Nagappan M, Dienst S, Berger T, Hassan AE (2014) A large-scale empirical study on software reuse in mobile apps. IEEE Softw 31(2):78–86
Morse JM (2003) Procedures and practice of mixed method design: Maintaining control, rigor, and complexity. The Sage Handbook of Mixed Methods Research in Social & Behavioral Research, pp 189–208
Nagappan M, Shihab E (2016) Future trends in software engineering research for mobile apps. In: 2016 IEEE 23Rd international conference on software analysis, evolution, and reengineering (SANER), vol 5, pp 21–32
Nandan N, Pursche A, Zhe X (2014) Challenges in crowdsourcing real-time information for public transportation. In: 2014 IEEE 15Th international conference on mobile data management, vol 2, pp 67-72
Newcombe T (2014) The rise of the sensor-based smart city. http://www.govtech.com/data/The-Rise-of-the-Sensor-Based-City.html http://www.govtech.com/data/The-Rise-of-the-Sensor-Based-City.html
Roman GC, Picco GP, Murphy AL (2000) Software engineering for mobility: A roadmap. In: Proceedings of the Conference on The Future of Software Engineering, ICSE’00. ACM, New York, pp 241–258
Runeson P, Höst M (2008) Guidelines for conducting and reporting case study research in software engineering. Empir Softw Eng 14(2):131
Saifi R (2017) The 2017 mobile app market: Statistics, trends, and analysis. https://www.business2community.com/mobile-apps/2017-mobile-app-market-statistics-trends-analysis-01750346#7Fi1f2awFZ0xIFTh
Santana EFZ, Chaves AP, Gerosa MA, Kon F, Milojicic DS (2016) Software platforms for smart cities: Concepts, requirements, challenges, and a unified reference architecture. CoRR arXiv:1609.08089
Seaman CB (1999) Qualitative methods in empirical studies of software engineering. IEEE Trans Softw Eng 25(4):557–572
Sharma A, Kumar M, Agarwal S (2015) A complete survey on software architectural styles and patterns. Procedia Comput Sci 70:16 – 28. Proceedings of the 4th International Conference on Eco-friendly Computing and Communication Systems
Sjøberg DIK, Dybå T, Anda BCD, Hannay JE (2008) Building Theories in Software Engineering. Springer, London, pp 312–336
Sousa L, Oliveira A, Oizumi W, Barbosa S, Garcia A, Lee J, Kalinowski M, de Mello R, Fonseca B, Oliveira R, Lucena C, Paes R (2018) Identifying design problems in the source code: A grounded theory. In: Proceedings of the 40th International Conference on Software Engineering, ICSE’18. ACM, New York, pp 921–931. https://doi.org/10.1145/3180155.3180239
Statista (2018) Number of available applications in the google play store from december 2009 to june 2018. https://www.statista.com/statistics/266210/number-of-available-applications-in-the-google-play-store/
Stol KJ, Ralph P, Fitzgerald B (2016) Grounded theory in software engineering research: A critical review and guidelines. In: 2016 IEEE/ACM 38th International Conference on Software Engineering (ICSE), pp 120–131
Syer MD, Adams B, Zou Y, Hassan AE (2011) Exploring the development of micro-apps: A case study on the blackberry and android platforms. In: 2011 IEEE 11th International Working Conference on Source Code Analysis and Manipulation, pp 55–64
Taylor RN, Medvidovic N, Dashofy EM (2009) Software architecture: foundations, theory, and practice, 1st edn. Wiley, New York
Tomas GH, da Silva WM, Da Mota Silveira Neto PA, Garcia VC, Alvaro A, Gama K (2013) Smart cities architectures - a systematic review. In: Hammoudi S, Maciaszek L A, Cordeiro J, Dietz J L G (eds) ICEIS (2). Scitepress, pp 410–417
United Nations DoE, Affairs S (2017) World population prospects: The 2017 revision, key findings and advance tables. Technical Report ESA/P/WP/248, Population Division, https://esa.un.org
Wasserman AI (2010) Software engineering issues for mobile application development. In: Proceedings of the FSE/SDP workshop on Future of software engineering research. ACM, pp 397–400
Wenge R, Zhang X, Dave C, Chao L, Hao S (2014) Smart city architecture: a technology guide for implementation and design challenges. China Commun 11(3):56–69
Yin RK (2013) Case study research: Design and methods. Sage Publications, Newbury Park
Zhang W, Wang Z, Xu L, Zhao D, Gong F, Lu Q (2016) An empirical study on big video data processing: Architectural styles, issues, and challenges. In: 2016 International Conference on Identification, Information and Knowledge in the Internet of Things (IIKI), pp 110–115
Acknowledgements
The authors would like to thank the practitioners who significantly supported this study, specially the interviewees for collaborating with our study and the reviewers for their valuable comments and suggestions. Finally, we are very grateful for the tool reported in Bagheri et al. (2016), which has been developed for reverse-engineering architecture of Android apps. We are grateful to those developers for answering our emails many times. This work is funded by CAPES/ (grant 1699166).
Author information
Authors and Affiliations
Corresponding author
Additional information
Communicated by: David Lo, Meiyappan Nagappan, Fabio Palomba, and Sebastiano Panichella
Publisher’s note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Farias, R.S., de Souza, R.M., McGregor, J.D. et al. Designing smart city mobile applications. Empir Software Eng 24, 3255–3289 (2019). https://doi.org/10.1007/s10664-019-09723-8
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10664-019-09723-8