التحقيق في هندسة البرمجيات البحثية: نحو بحث RSE
Investigating Research Software Engineering: Toward RSE Research

شارك:
المجلة: Communications of the ACM، المجلد: 68، العدد: 2
DOI: https://doi.org/10.1145/3685265
تاريخ النشر: 2025-01-20
المؤلف: Michael Felderer وآخرون
الموضوع الرئيسي: الحوسبة العلمية وإدارة البيانات

نظرة عامة

يتناول القسم تطور وأهمية هندسة البرمجيات، وخاصة في سياق هندسة البرمجيات البحثية (RSE). نشأت من المخاوف بشأن فشل البرمجيات في التطبيقات العسكرية الحرجة، وقد توسعت هذه التخصص لتشمل مجموعة أوسع من عمليات تطوير البرمجيات، مع التركيز على الحاجة إلى الجودة، والتوثيق، وقابلية الصيانة في البرمجيات البحثية. لقد ظهرت RSE كحقل متميز، يركز على المتطلبات الفريدة للبرمجيات البحثية، التي غالبًا ما تختلف عن البرمجيات التجارية القياسية.

يدعو المؤلفون إلى دمج تقنيات هندسة البرمجيات، مثل التطوير المدفوع بالنماذج والهندسة المعمارية المودولارية، في RSE لتعزيز استدامة وقابلية صيانة البرمجيات البحثية. يبرزون ضرورة أن يكتسب الباحثون مهارات هندسة البرمجيات تتجاوز البرمجة الأساسية، بما في ذلك الكفاءات المعمارية والإدارية. علاوة على ذلك، يدعو النص إلى التعاون الدولي في أبحاث RSE ويؤكد على أهمية ممارسات التمويل لدعم استدامة البرمجيات البحثية، مقترحًا مبادرات مثل إعلان أمستردام بشأن تمويل استدامة البرمجيات البحثية. كما يقترح المؤلفون تشكيل مجموعة اهتمام خاصة ضمن الجمعية الألمانية لعلوم الحاسوب لتعزيز المجتمع والتعاون في أبحاث RSE.

نقاش

يسلط النقاش حول تصنيف البرمجيات البحثية الضوء على ثلاثة أدوار رئيسية: النمذجة، والمحاكاة، وتحليل البيانات؛ برمجيات البحث التكنولوجية؛ وبرمجيات البنية التحتية البحثية. تصنيف البرمجيات البحثية ديناميكي، حيث يمكن أن تتطور البرمجيات التي تم تطويرها في البداية لأسئلة بحثية محددة إلى برمجيات بنية تحتية مع مرور الوقت. يؤكد البحث على أهمية الالتزام بمبادئ FAIR (قابل للاكتشاف، قابل للوصول، قابل للتشغيل المتبادل، قابل لإعادة الاستخدام) لتعزيز الشفافية، وإمكانية التكرار، واستدامة البرمجيات البحثية، والتي تشمل مجموعة من المكونات مثل الشيفرة المصدرية، والخوارزميات، وسير العمل الحسابي.

تم تحديد هندسة البرمجيات البحثية (RSE) كعلم حيوي يهدف إلى تحسين تطوير وصيانة البرمجيات البحثية. إنها تعالج تحديات فريدة، مثل المتطلبات الوظيفية غير المعروفة غالبًا في المشاريع العلمية، مما يعقد عمليات التحقق والتأكيد. يدعو البحث إلى دمج تقنيات هندسة البرمجيات المصممة لتلبية الاحتياجات المحددة للبحث، بما في ذلك هندسة المتطلبات والهندسة المعمارية البرمجية المودولارية. علاوة على ذلك، يدعو إلى إنشاء RSE كحقل بحثي معترف به، مؤكدًا على ضرورة التعاون الدولي وتطوير أدوات وأساليب محددة المجال لتعزيز استدامة وفعالية البرمجيات البحثية.

Journal: Communications of the ACM, Volume: 68, Issue: 2
DOI: https://doi.org/10.1145/3685265
Publication Date: 2025-01-20
Author(s): Michael Felderer et al.
Primary Topic: Scientific Computing and Data Management

Overview

The section discusses the evolution and significance of software engineering, particularly in the context of research software engineering (RSE). Originating from concerns over software failures in critical military applications, the discipline has expanded to encompass a broader range of software development processes, emphasizing the need for quality, documentation, and maintainability in research software. RSE has emerged as a distinct field, focusing on the unique requirements of research software, which often diverges from standard commercial software.

The authors advocate for the integration of software engineering techniques, such as model-driven development and modular architectures, into RSE to enhance the sustainability and maintainability of research software. They highlight the necessity for researchers to acquire software engineering skills beyond basic programming, including architectural and management competencies. Furthermore, the text calls for international collaboration in RSE research and emphasizes the importance of funding practices to support the sustainability of research software, proposing initiatives like the Amsterdam Declaration on Funding Research Software Sustainability. The authors also suggest the formation of a special interest group within the German Association for Computer Science to foster community and collaboration in RSE research.

Discussion

The discussion on research software categorization highlights three primary roles: modeling, simulation, and data analytics; technology research software; and research infrastructure software. The classification of research software is dynamic, with software initially developed for specific research questions potentially evolving into infrastructure software over time. The paper emphasizes the importance of adhering to FAIR principles (Findable, Accessible, Interoperable, Reusable) to enhance the transparency, reproducibility, and sustainability of research software, which includes a range of components such as source code, algorithms, and computational workflows.

Research Software Engineering (RSE) is identified as a crucial discipline aimed at improving the development and maintenance of research software. It addresses unique challenges, such as the often-unknown functional requirements in scientific projects, which complicate verification and validation processes. The paper advocates for the integration of software engineering techniques tailored to the specific needs of research, including requirements engineering and modular software architectures. Furthermore, it calls for the establishment of RSE as a recognized research field, emphasizing the necessity for international collaboration and the development of domain-specific tools and methods to enhance the sustainability and effectiveness of research software.