Skip to main content

TDDM4IoTS: A Test-Driven Development Methodology for Internet of Things (IoT)-Based Systems

  • Conference paper
  • First Online:
Applied Technologies (ICAT 2019)

Abstract

This paper presents a development methodology for Internet of Things (IoT)-based Systems (IoTS) that gathers ideas from several of the most outstanding software development paradigms nowadays, such as Model-Driven Engineering (MDE) and Test-Driven Development (TDD), in addition to incorporating the principles that govern agile software development methodologies, such as SCRUM and XP. The methodology presented here, called Test-Driven Development Methodology for IoTS (TDDM4IoTS), has been proposed after an exhaustive review of different software development methodologies, leading us to conclude that none of them are specially oriented towards the development of IoTS. The methodology mainly consists of eleven phases, whose order of application can be established by the team that will develop the project in question. In this paper, we suggest an order to follow, as well as existing software tools that could be used as support for obtaining the corresponding deliverables at each phase.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. Dahl, O.-J., Hoare, C.A.R.: Chapter III: Hierarchical program structures. In: Structured Programming, pp. 175–220. Academic Press Ltd. (1972)

    Google Scholar 

  2. Ingalls, D.H.H.: The Smalltalk-76 programming system design and implementation. In: Proceedings of the 5th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages - POPL 1978, pp. 9–16. ACM (1978)

    Google Scholar 

  3. Pashtan, A.: Object oriented operating systems: an emerging design methodology. In: Proceedings of the ACM 1982 Conference on ACM 1982, pp. 126–131. ACM (1982)

    Google Scholar 

  4. Schwabe, D., Rossi, G.: The object-oriented hypermedia design model. Commun. ACM 38(8), 45–46 (2002)

    Article  Google Scholar 

  5. Ashton, K.: That ‘Internet of Things’ thing. RFID J. 22(7), 97–114 (2009)

    Google Scholar 

  6. Ray, P.P.: A survey on Internet of Things architectures. J. King Saud Univ. – Comput. Inf. Sci. 30(3), 291–319 (2018)

    Google Scholar 

  7. Leotta, M., et al.: An acceptance testing approach for Internet of Things systems. IET Softw. 12(5), 430–436 (2018)

    Article  Google Scholar 

  8. Benedetto, J.I., González, L.A., Sanabria, P., Neyem, A., Navón, J.: Towards a practical framework for code offloading in the Internet of Things. Future Gener. Comput. Syst. 92(March), 424–437 (2019)

    Article  Google Scholar 

  9. Cervantes-Solis, J.W., Baber, C., Khattab, A., Mitch, R.: Rule and theme discovery in human interactions with an Internet of Things. In: Proceedings of the 2015 British HCI Conference on - British HCI 2015, pp. 222–227. ACM, UK (2015)

    Google Scholar 

  10. Ciccozzi, F., Spalazzese, R.: MDE4IoT: supporting the Internet of Things with model-driven engineering. In: Badica, C., et al. (eds.) IDC 2016. SCI, vol. 678, pp. 67–76. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-48829-5_7

    Chapter  Google Scholar 

  11. Khaleel, H., et al.: Heterogeneous applications, tools, and methodologies in the car manufacturing industry through an IoT approach. IEEE Syst. J. 11(3), 1412–1423 (2017)

    Article  MathSciNet  Google Scholar 

  12. Cai, H., Gu, Y., Vasilakos, A.V., Xu, B., Zhou, J.: Model-driven development patterns for mobile services in cloud of things. IEEE Trans. Cloud Comput. 6(3), 771–784 (2018)

    Article  Google Scholar 

  13. Lekidis, A., Stachtiari, E., Katsaros, P., Bozga, M., Georgiadis, C.K.: Model-based design of IoT systems with the BIP component framework. J. Softw.: Pract. Exp. 48(6), 1167–1194 (2018)

    Google Scholar 

  14. Brambilla, M., Umuhoza, E., Acerbis, R.: Model-driven development of user interfaces for IoT systems via domain-specific components and patterns. J. Internet Serv. Appl. 8(1), 1–21 (2017)

    Article  Google Scholar 

  15. Harbouche, A., Djedi, N., Erradi, M., Ben-Othman, J., Kobbane, A.: Model driven flexible design of a wireless body sensor network for health monitoring. Comput. Netw. 129-2, 548–571 (2017)

    Article  Google Scholar 

  16. Usländer, T., Batz, T.: Agile service engineering in the industrial Internet of Things. Future Internet 10(10), 100 (2018)

    Article  Google Scholar 

  17. Pico-Valencia, P., Holgado-Terriza, J.A., Paderewski, P.: A systematic method for building internet of agents applications based on the linked open data approach. Future Gener. Comput. Syst. 94, 250–271 (2019)

    Article  Google Scholar 

  18. Sosa-Reyna, C.M., Tello-Leal, E., Lara-Alabazares, D.: Methodology for the model-driven development of service oriented IoT applications. J. Syst. Architect. 90, 15–22 (2018)

    Article  Google Scholar 

  19. de Farias, C.M., et al.: COMFIT: a development environment for the Internet of Things. Future Gener. Comput. Syst. 75, 128–144 (2017)

    Article  Google Scholar 

  20. Fortino, G., et al.: Towards multi-layer interoperability of heterogeneous IoT platforms: the INTER-IoT approach. In: Gravina, R., Palau, C.E., Manso, M., Liotta, A., Fortino, G. (eds.) Integration, Interconnection, and Interoperability of IoT Systems. IT, pp. 199–232. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-61300-0_10

    Chapter  Google Scholar 

  21. Patel, P., Cassou, D.: Enabling high-level application development for the Internet of Things. J. Syst. Softw. 103, 62–84 (2015)

    Article  Google Scholar 

  22. Martin, R.C.: Clean Coder Blog, TDD (2017). https://blog.cleancoder.com/. Accessed 11 Sept 2019

  23. Rising, L., Janoff, N.S.: Scrum software development process for small teams. IEEE Softw. 17(4), 26–32 (2000)

    Article  Google Scholar 

  24. Heeager, L.T., Nielsen, P.A.: A conceptual model of agile software development in a safety-critical context: a systematic literature review. Inf. Softw. Technol. 103, 22–39 (2018)

    Article  Google Scholar 

  25. Abrahamsson, P., Salo, O., Ronkainen, J., Warsta, J.: Agile Software Development Methods: Review and Analysis. VTT Publications 478 (2002)

    Google Scholar 

  26. Holzinger, A., Errath, M., Searle, G., Thurnher, B., Slany, W.: From extreme programming and usability engineering to extreme usability in software engineering education (XP+UE→XU). In: 29th Annual International Computer Software and Applications Conference (COMPSAC 2005), vol. 2, pp. 169–172. IEEE, UK (2005)

    Google Scholar 

  27. Mowday, R.T.: Leader characteristics, self-confidence, and methods of upward influence in organizational decision situations. Acad. Manag. J. 22(4), 709–725 (1979)

    Google Scholar 

  28. Koo, K., Park, C.: Foundation of leadership in Asia: leader characteristics and leadership styles review and research agenda. Asia Pac. J. Manag. 35(3), 697–718 (2018)

    Article  Google Scholar 

  29. Beck, K.: Manifesto for Agile Software Development (2001). http://agilemanifesto.org/. Accessed 11 May 2019

  30. Hazzan, O., Dubinsky, Y.: The agile manifesto. In: Zdonik, S., et al. (eds.) Agile Anywhere. SCS, pp. 9–14. Springer, Cham (2014). https://doi.org/10.1007/978-3-319-10157-6_3

    Chapter  Google Scholar 

  31. Sachdeva, V., Chung, L.: Handling non-functional requirements for big data and IoT Projects in Scrum. In: 2017 7th International Conference on Cloud Computing, Data Science & Engineering - Confluence, pp. 216–221. IEEE (2017)

    Google Scholar 

  32. Tort, A., Olivé, A., Sancho, M.R.: An approach to test-driven development of conceptual schemas. Data Knowl. Eng. 70(12), 1088–1111 (2011)

    Article  Google Scholar 

  33. Janzen, D., Saiedian, H.: Test-driven development: concepts, taxonomy, and future direction. Computer 38(9), 43–50 (2005)

    Article  Google Scholar 

  34. Martin, R.C.: Clean Code, A Handbook of Agile Software Craftsmanship, 1st edn. Pearson Education Inc., Boston (2011)

    Google Scholar 

  35. Madeyski, L., Kawalerowicz, M.: Continuous test-driven development: a preliminary empirical evaluation using agile experimentation in industrial settings. In: Kosiuczenko, P., Madeyski, L. (eds.) Towards a Synergistic Combination of Research and Practice in Software Engineering. SCI, vol. 733, pp. 105–118. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-65208-5_8

    Chapter  Google Scholar 

  36. Braithwaite, K., Joyce, T.: XP expanded: distributed extreme programming. In: Baumeister, H., Marchesi, M., Holcombe, M. (eds.) XP 2005. LNCS, vol. 3556, pp. 180–188. Springer, Heidelberg (2005). https://doi.org/10.1007/11499053_21

    Chapter  Google Scholar 

  37. Sosa-Reyna, C.M., Tello-Leal, E., Lara-Alabazares, D.: An approach based on model-driven development for IoT applications. In: Proceedings of the 2018 IEEE International Congress on IoT, ICIOT, 2018 IEEE World Congress on Services, pp. 134–139. IEEE, San Francisco, EEUU (2018)

    Google Scholar 

  38. Rasch, R.H., Tosi, H.L.: Factors affecting software developers’ performance: an integrated approach. MIS Q. 16(3), 395–413 (1992)

    Article  Google Scholar 

  39. Nyznar, M., Pałka, D.: Generating source code templates on the basis of unit tests. In: Grzech, A., Świątek, J., Wilimowska, Z., Borzemski, L. (eds.) Information Systems Architecture and Technology: Proceedings of 37th International Conference on Information Systems Architecture and Technology – ISAT 2016 – Part II. AISC, vol. 522, pp. 213–223. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-46586-9_17

    Chapter  Google Scholar 

  40. Chen, Z., Liu, Z., Ravn, A.P., Stolz, V., Zhan, N.: Refinement and verification in component-based model-driven design. Sci. Comput. Program. 74(4), 168–196 (2009)

    Article  MathSciNet  Google Scholar 

  41. Monteiro, K., Rocha, E., Silva, E., Santos, G.L., Santos, W., Endo, P.T.: Developing an e-health system based on IoT, fog and cloud computing. In: 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), pp. 17–18. IEEE, Zurich (2018)

    Google Scholar 

  42. Guerrero-Ulloa, G., Rodríguez-Domínguez, C., Hornos, M.J.: IoT-based system to help care for dependent elderly. In: Botto-Tobar, M., Pizarro, G., Zúñiga-Prieto, M., D’Armas, M., Zúñiga Sánchez, M. (eds.) CITT 2018. CCIS, vol. 895, pp. 41–55. Springer, Cham (2019). https://doi.org/10.1007/978-3-030-05532-5_4

    Chapter  Google Scholar 

  43. Latorre, R.: Effects of developer experience on learning and applying unit test-driven development. IEEE Trans. Softw. Eng. 40(4), 381–395 (2014)

    Article  Google Scholar 

  44. Shihab, E., Jiang, Z.M., Adams, B., Hassan, A.E., Bowerman, R.: Prioritizing the creation of unit tests in legacy software systems. Softw.: Pract. Exp. 41(10), 1027–1048 (2011)

    Google Scholar 

  45. Pressman, R.S., Maxim, B.: Software Engineering: A Practitioner’s Approach, 8th edn. McGraw-Hill Education, Boston (2015)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Gleiston Guerrero-Ulloa .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Guerrero-Ulloa, G., Hornos, M.J., Rodríguez-Domínguez, C. (2020). TDDM4IoTS: A Test-Driven Development Methodology for Internet of Things (IoT)-Based Systems. In: Botto-Tobar, M., Zambrano Vizuete, M., Torres-Carrión, P., Montes León, S., Pizarro Vásquez, G., Durakovic, B. (eds) Applied Technologies. ICAT 2019. Communications in Computer and Information Science, vol 1193. Springer, Cham. https://doi.org/10.1007/978-3-030-42517-3_4

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-42517-3_4

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-42516-6

  • Online ISBN: 978-3-030-42517-3

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics