An Empirical Study on Architecture and Collective Ownership of Free Real-Time Operating Systems Projects

Abstract


With the growth of Internet of Things (IoT) systems, there has been an increase in demand for Real Time Operating Systems (RTOS). Proportionally, the number of projects focused on developing this type of system has also grown. Some of these projects are produced by Free/Libre Open Source Software (FLOSS) communities. Since production by these communities involves many developers, a common practice includes modularization and collective code ownership. Given this, this study aimed to analyze the source code and understand collective code ownership in relation to modularity and its connection with developers. A sample of nine GitHub projects with over a thousand stars was used. Tools were introduced to perform calculations and analyze whether a developer can be considered a code owner. The algorithm is based on the Simple Matrix and the Degree of Authorship (DOA) method. Notebooks were used to transform the results into information with the help of charts. From these analyses, it was possible to determine the number of contributors and owners in each project. It was found that, on average, the number of owners per module ranged from 15.83% to 46.56%; the number of modules per owner, which ranged from two to twenty-seven, showed that one owner could be responsible for several modules; and finally, the number of owners per module, where it was possible to conclude that, on average, a module may have one or two developers as owners.

Keywords: modularity, collective code ownership, real time system operating

References

N. Nikolov, O. Nakov, and D. Gotseva, “Operating systems for iot devices,” in 2021 56th International Scientific Conference on Information, Communication and Energy Systems and Technologies (ICEST). IEEE, 2021, pp. 41–44.

N. Nikolov and O. Nakov, “Research of communication between stm32l475 and private cloud realized by using amazon freertos and mqtt,” in 2019 27th National Conference with International Participation (TELECOM). IEEE, 2019, pp. 82–85.

C. J. Fidge, “Real-time schedulability tests for preemptive multitasking,” Real-Time Systems, vol. 14, pp. 61–93, 1998.

G. S. Leh, J. Wu, S. Shukla, M. K. Farrens, and D. Ghosal, “Model- driven joint optimization of power and latency guarantee in data center applications,” SN Computer Science, vol. 1, pp. 1–14, 2020.

P. Hambarde, R. Varma, and S. Jha, “The survey of real time operating system: Rtos,” in 2014 International Conference on Electronic Systems, Signal Processing and Computing Technologies. IEEE, 2014, pp. 34–39.

E. v. Hippel and G. v. Krogh, “Open source software and the “private-collective” innovation model: Issues for organization science,” Organization science, vol. 14, no. 2, pp. 209–223, 2003.

D. L. Parnas, “On the criteria to be used in decomposing systems into modules,” Communications of the ACM, vol. 15, no. 12, pp. 1053–1058, 1972.

I. M. Pereira, C. S. N. dos Santos, and V. J. P. de Amorim, “Modularidade de código x propriedade coletiva: Um estudo empı́rico sobre projetos populares de código aberto,” in Anais do XLVII Seminário Integrado de Software e Hardware. SBC, 2020, pp. 93–103.

G. Avelino, L. Passos, A. Hora, and M. T. Valente, “A novel approach for estimating truck factors,” in 2016 IEEE 24th International Conference on Program Comprehension (ICPC). IEEE, 2016, pp. 1–10.

M. E. Conway and L. Spandorfer, “A computer system designer’s view of large scale integration,” in Proceedings of the December 9-11, 1968, fall joint computer conference, part I, 1968, pp. 835–845.

C. Y. Baldwin and K. B. Clark, Design Rules: The Power of Modularity Volume 1. MIT press, 1999.

C. Bird, N. Nagappan, B. Murphy, H. Gall, and P. Devanbu, “Don’t touch my code! examining the effects of ownership on software quality,” in Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering, 2011, pp. 4–14.

M. Greiler, K. Herzig, and J. Czerwonka, “Code ownership and software quality: A replication study,” in 2015 IEEE/ACM 12th Working Conference on Mining Software Repositories. IEEE, 2015, pp. 2–12.

T. Fritz, J. Ou, G. C. Murphy, and E. Murphy-Hill, “A degree-of-knowledge model to capture source code familiarity,” in Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering-Volume 1, 2010, pp. 385–394.

F. Ricca and A. Marchetto, “Heroes in floss projects: An explorativestudy,” in 2010 17th Working Conference on Reverse Engineering. IEEE, 2010, pp. 155–159.

D. Spadini, M. Aniche, and A. Bacchelli, “Pydriller: Python framework for mining software repositories,” in Proceedings of the 2018 26th ACM Joint meeting on european software engineering conference and symposium on the foundations of software engineering, 2018, pp. 908–911.

A. Mockus, R. T. Fielding, and J. D. Herbsleb, “Two case studies of open source software development: Apache and mozilla,” ACM Transactions on Software Engineering and Methodology (TOSEM), vol. 11, no. 3, pp.309–346, 2002.

J. Coelho, M. T. Valente, L. L. Silva, and A. Hora, “Why we engage in floss: Answers from core developers,” in Proceedings of the 11th international workshop on cooperative and human aspects of software engineering, 2018, pp. 114–121.

B. M. Randles, I. V. Pasquetto, M. S. Golshan, and C. L. Borgman, “Using the jupyter notebook as a tool for open science: An empirical study,” in 2017 ACM/IEEE Joint Conference on Digital Libraries (JCDL). IEEE, 2017, pp. 1–2.

G. Oikonomou, S. Duquennoy, A. Elsts, J. Eriksson, Y. Tanaka, and N. Tsiftes, “The contiki-ng open source operating system for next generation iot devices,” SoftwareX, vol. 18, p. 101089, 2022.

C. Bock, M. Marquardt, A. Martens, O. Simanski, and O. Hagendorf, “Smart sensors and actors with bacnet tm and mbed os on cortex-m microcontrollers,” in 2019 IEEE 5th World Forum on Internet of Things (WF-IoT). IEEE, 2019, pp. 937–942.

Y.-k. Lee et al., “Implementation of tls and dtls on zephyr os for iot devices,” in 2018 International Conference on Information and Communication Technology Convergence (ICTC). IEEE, 2018, pp. 1292–1294.

C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, A. Wesslén et al., Experimentation in software engineering. Springer, 2012, vol. 236.

A. Rule, A. Tabard, and J. D. Hollan, “Exploration and explanation in computational notebooks,” in Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 2018, pp. 1–12.
Published
2024-11-27
CARVALHO, Rafael de; PEREIRA, Igor Muzetti. An Empirical Study on Architecture and Collective Ownership of Free Real-Time Operating Systems Projects. In: LATIN AMERICAN CONGRESS ON FREE SOFTWARE AND OPEN TECHNOLOGIES (LATINOWARE), 21. , 2024, Foz do Iguaçu/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 290-298. DOI: https://doi.org/10.5753/latinoware.2024.245700.