Software Engineering Practices in the development of applications for Smart Cities: An Experience Report of Teaching in a Contemporary Context
The heterogeneity of contemporary systems has turned the Software Engineering (SE) area even more challenging, since it is necessary to identify practices that are more adequate according to the technologies and context. Thus, practitioners need to be better prepared for these new systems. The area of Smart Cities (SC) is emerging and presents new challenges in conceptual, technical and academical degrees. This paper presents an experience report of SE practices in the development of SC applications. Five teams used the SC platform and developed their projects, creating software documentation, while applying agile practices. As a result, we identified that some UML diagrams were not adequate to model specific SC's aspects and microservices. Furthermore, we identified that there was a low application of the proposed agile practices, such as pair programming and daily meetings. Despite being the first time this class was taught, we identified gaps that need to be investigated in order to identify which SE practices are more adequate for such context.
Ari-Veikko Anttiroiko, Pekka Valkama, and Stephen J Bailey. 2014. Smart cities in the new service economy: building platforms for smart services. AI & society 29, 3 (2014), 323--334.
Luigi Atzori, Antonio Iera, and Giacomo Morabito. 2010. The internet of things: A survey. Computer networks 54, 15 (2010), 2787--2805.
Daniel Macêdo Batista, Alfredo Goldman, Roberto Hirata, Fabio Kon, Fabio M Costa, and Markus Endler. 2016. Interscity: Addressing future internet research challenges for smart cities. In 2016 7th International Conference on the Network of the Future (NOF). IEEE, 1--6.
Arthur M Del Esposte. 2018. InterSCity: A Scalable Microservice-based Open Source Platform for Smart Cities. Master's thesis. University of São Paulo.
Marion Gottschalk and Mathias Uslar.2015. Supporting the Development of Smart Cities using a Use Case Methodology. In Proceedings of the 24th International Conference on World Wide Web. ACM, 541--545.
Barbara Kitchenham, David Budgen, Pearl Brereton, and Philip Woodall. 2005. An investigation of software engineering curricula. Journal of Systems and Software 74, 3 (2005), 325--335.
Xabier Larrucea, Annie Combelles, John Favaro, and Kunal Taneja. 2017. Software engineering for the internet of things. IEEE Software 34, 1 (2017), 24--28.
Kamila Takayama Lyra, Marcela Lopes Alves, Fernando H. Carvalho Silva, Kathiani Souza, and Seiji Isotani. 2018. An Agile Project Management Experience: Points of View of Graduate Students. In Proceedings of the XXXII Brazilian Symposium on Software Engineering (SBES '18). ACM, New York, NY, USA, 240--249.
Rebeca C Motta, Káthia M de Oliveira, and Guilherme H Travassos. 2018. On challenges in engineering IoT software systems. In Proceedings of the XXXII Brazilian Symposium on Software Engineering. ACM, 42--51.
Gustavo Pinto, Clarice Ferreira, Cleice Souza, Igor Steinmacher, and Paulo Meirelles. 2019. Training Software Engineers using Open-Source Software: The Students' Perspective. In 41st ACM/IEEE International Conference on Software Engineering (ICSE 2019 - SEET Track). Montreal, Canada, 11.
Luis Sanchez, Luis Muñoz, Jose Antonio Galache, Pablo Sotres, Juan R. Santana, Veronica Gutierrez, Rajiv Ramdhany, Alex Gluhak, Srdjan Krco, Evangelos Theodoridis, and Dennis Pfisterer. 2014. SmartSantander: IoT experimentation over a smart city testbed. Computer Networks 61 (2014), 217--238. Special issue on Future Internet Testbeds - Part I.
Eduardo Felipe Zambom Santana, Nelson Lago, Fabio Kon, and Dejan S Milojicic. 2017. InterSCSimulator: Large-Scale Traffic Simulation in Smart Cities using Erlang. In The 18th Workshop on Multi-agent-based Simulation - MABS 2017.
Kleanthis Thramboulidis and Foivos Christoulakis. 2016. UML4IoT--A UML-based approach to exploit IoT in cyber-physical manufacturing systems. Computers in Industry 82 (2016), 259--272.
Fernando Antonio Mota Trinta and Emanuele Santos. 2017. Teaching Software Development for the Cloud: An Experience Report. In Proceedings of the 31st Brazilian Symposium on Software Engineering (SBES'17). ACM, New York, NY, USA, 338--347.
Eray Tuzun, Hakan Erdogmus, and Izzet Gokhan Ozbilgin. 2018. Are computer science and engineering graduates ready for the software industry?: experiences from an industrial student training program. In Proceedings of the 40th International Conference on Software Engineering: Software Engineering Education and Training. ACM, 68--77.
Franco Zambonelli.2017. Key abstractions for IoT-oriented software engineering. IEEE Software 1 (2017), 38--45.