Um Estudo Empírico Sobre a Arquitetura e a Propriedade Coletiva de Projetos de Sistemas Operacionais de Tempo Real Livres
Resumo
Face ao crescimento de sistemas de internet das coisas (IoT), têm-se observado um aumento na demanda por Sistemas Operacionais de Tempo Real (RTOS). Proporcionalmente, cresceu o número de projetos focados em desenvolver esse tipo de sistema. Entre esses projetos, pode-se encontrar aqueles produzidos por comunidades de software livre (FLOSS). Dado que a produção por essas comunidades envolvem muitos desenvolvedores, uma prática comum abrange a modularização e a propriedade coletiva de código. Diante disso, este estudo objetivou analisar o código-fonte e entender a propriedade coletiva de código quanto à modularidade e a relação dela com os desenvolvedores. É utilizada uma amostra de nove projetos do GitHub com mais de mil estrelas. Foram apresentadas ferramentas para executar cálculos e analisar se o desenvolvedor pode ou não ser considerado proprietário de código. O algoritmo é baseado na Matriz Simples e no método Degree of Authorship (DOA). Já os notebooks transformaram os resultados em informação com auxílio de gráficos. A partir dessas análises foi possível determinar o número de contribuidores e de responsáveis em cada projeto. Verificou-se que em média o número de responsáveis por módulo variou entre 15,83% e 46,56%; a quantidade de módulos por responsável, a qual variou entre dois e vinte e sete, demonstrou que um responsável pode ser proprietário de vários módulos; e por fim a quantidade de responsáveis por módulo, em que foi possível concluir que em média um módulo pode possuir um ou dois desenvolvedores como proprietários.
Referências
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.