Bilimsel Yazılım Geliştirme Süreçleri için bir Yazılım Mühendisliği Yetkinlik Envanteri

Araştırma amaçlı bilimsel yazılım geliştirme süreçleri, yazılım yaşam döngüsü açısından hem süreç hem girdi ve çıktılar bakımından iş veya endüstri amaçlı yazılımlardan bazı farklılıklar göstermektedir. Bilimsel yazılım geliştiricilerin, kod yazma deneyimi olsa da yapısal ve güncel yazılım mühendisliği yetkinliklerinin olmama olasılığı, bilimsel yazılımların gereksinimleri karşılaması ve sürdürülebilirliği açısından sorun yaratabilmektedir. Bu çalışmada literatürde bilimsel yazılım geliştirme alanında gereksinim duyulduğu belirtilen pratikler ile temelde IEEE Yazılım Mühendisliği Yetkinlik Modeli’nin (IEEE’s Software Engineering Competency Model -SWECOM) yetkinlikleri eşleştirilmiş; ve bilimsel yazılım geliştirme açısından en gereksinim duyulan yazılım mühendisliği pratikleri belirlenmiştir. Yapılan sıklık analiziyle özellikle yazılım tasarımı ve yapımı sırasındaki detaylı tasarım ve planlama yetkinliklerine ihtiyaç duyulduğu belirlenmiştir. Üretilen envanter, Ar-Ge destekleri çerçevesinde eğitim programları geliştirmek ve iyileştirmek için kullanılabilecektir.

A Software Engineering Competency Inventory for Scientific Software Development Processes

Scientific software development processes display some differences from business/industry-aimed software in terms of both processes and input/outputs. Although scientific software developers might have some coding experience, the fact that they may not possess formal and up-to-date software engineering competencies can affect negatively the scientific software produced in terms of meeting the requirements and sustainability. A matching inventory has been created in the current work, pairing requirements for software engineering practices documented in scientific software development literature with competencies mostly from IEEE’s Software Engineering Competency Model (SWECOM). Frequencies of the pairings have shown especially a need for software engineering competencies in software design and construction including detailed design and planning. The inventory may be used to generate and improve training programs within research and development support.

___

  • Johanson, A., & Hasselbring, W. (2018). Software Engineering for Computational Science: Past, Present, Future. Computing in Science and Engineering.doi:10.1109/MCSE.2018.108162940
  • Taatgen, N. A., Vugt, M. K. van, Borst, J. P., & Mehlhorn, K. (2016). Cognitive modeling at ICCM: state of the art and future directions. Topics in Cognitive Science. 8(1), 259-263. doi:10.1111/tops.12185.
  • Arvanitou, E. M., Ampatzoglou, A., Chatzigeorgiou, A., & Carver, J. C. (2021). Software engineering practices for scientific software development: A systematic mapping study. Journal of Systems and Software, 172. doi:10.1016/j.jss.2020.110848
  • Heaton D., & Carver, J. (2015). Claims about the use of software engineering practices in science: A systematic literature review. Information and Software Technology, 67, 207-219. doi:10.1016/j.infsof.2015.07.011.
  • Storer, T. (2017). Bridging the chasm: a survey of software engineering practice in scientific programming. ACM Computing Surveys, 50(4), 1-32. doi:10.1145/3084225.
  • Segal, J., & Morris, C. (2008). Developing scientific software. IEEE software, 25(4), 18-20. doi:10.1109/MS.2008.85
  • IEEE. (2014). A Software Engineering Competency Model (SWECOM). Version 1.0. IEEE Computer Society Press.
  • Kurtaran, F. (2018). “An Evaluation of the Use of Software Engineering Practices by Cognitive Modeling Researchers.” MSc Thesis. Department of Computer Engineering. Atilim University, Turkey. https://tez.yok.gov.tr/UlusalTezMerkezi/
  • Wagner S., Pflüger, D., & Mehl, M. (2015). Simulation software engineering: experiences and challenges. Proceedings of the 3rd International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering - SE-HPCCSE '15, 1-4. doi:10.1145/2830168.2830171.
  • AlNoamany Y, Borghi JA. (2018). Towards computational reproducibility: researcher perspectives on the use and sharing of software. PeerJ Computer Science 4:e163. doi:10.7717/peerj-cs.163
  • Wiese, I., Polato I. & Pinto, G. (2020). Naming the Pain in Developing Scientific Software. IEEE Software, 37(4), 75-82, July-Aug. 2020, doi:10.1109/ms.2019.2899838.
  • Hermann, S., Fehr, J. (2022). Documenting research software in engineering science. Scientific Reports, 12 (6567). doi:10.1038/s41598-022-10376-9
  • Sanders, R. & Kelly, D., 2008. Dealing with Risk in Scientific Software Development. IEEE Software, 25(4), pp.21–28. doi:10.1109/ms.2008.84. Bilgisayar Bilimleri ve Mühendisliği Dergisi (2023 Cilt: 16 - Sayı:2) - 175
  • Software Carpentry. https://software-carpentry.org/. Erişim Tarihi: Haziran, 2022.
  • Code Refinery. https://coderefinery.org/ . Erişim Tarihi: Haziran, 2022.
  • Say, B. Bilimsel Yazılım Geliştirme Yetkinlik Envanteri Çalışması Tabloları https://drive.google.com/drive/folders/10SP32GlOXTNXKBxstVBhme1XkfWJXwwm?usp=sharing . Erişim Tarihi: Kasım, 2022.
  • CC2020 Task Force. (2020). Computing Curricula 2020: Paradigms for Global Computing Education. Computing Curricula 2020. ACM. doi:10.1145/3467967
  • Bourque P. & Fairley, R. E. (Ed.) (2014). Guide to the Software Engineering Body of Knowledge (SWEBOK), Version 3.0. Retrieved from https://www.computer.org/education/bodies-of-knowledge/software-engineering
  • Carver JC, Weber N, Ram K, Gesing S, Katz DS. (2022). A survey of the state of the practice for research software in the United States. PeerJ Computer Science, doi:10.7717/peerj-cs.963
  • The jamovi project (2022). jamovi. (Version 2.3) [Yazılım]. https://www.jamovi.org.
  • Balcı, S. (2022). ClinicoPath jamovi Module doi:10.5281/zenodo.3997188. [R package]. https://github.com/sbalci/ClinicoPathJamoviModule.