Skip navigation
  • Home
  • Browse
    • Communities
      & Collections
    • Browse Items by:
    • Publication Date
    • Author
    • Title
    • Subject
    • Department
  • Sign on to:
    • My MacSphere
    • Receive email
      updates
    • Edit Profile


McMaster University Home Page
  1. MacSphere
  2. Open Access Dissertations and Theses Community
  3. Open Access Dissertations and Theses
Please use this identifier to cite or link to this item: http://hdl.handle.net/11375/31637
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorSmith, Spencer-
dc.contributor.authorDu, Ange-
dc.date.accessioned2025-05-06T17:38:30Z-
dc.date.available2025-05-06T17:38:30Z-
dc.date.issued2025-
dc.identifier.urihttp://hdl.handle.net/11375/31637-
dc.description.abstractModern scientific and engineering research increasingly relies on software for data processing, analysis, and simulation. However, research software is often developed ad hoc, with limited regard for sustainability or reproducibility, as researchers (domain experts) untrained in software engineering practices and developers new to the domain theories must both tread unfamiliar waters. While existing solutions (e.g., documentation template, software life-cycle, CI/CD, formal methods) aim to bridge this gap, they often assume large, specialized teams, leaving small research groups underserved. Building upon our experience from research software projects, this thesis proposes a practical framework to empower small teams of domain experts and developers—particularly those transitioning from scientific or engineering backgrounds—to collaboratively build robust, sustainable research software. The framework addresses common pain points, such as evolving requirements and researchers’ limited technical familiarity, while fostering practices that benefit both immediate project needs and long-term maintainability. Central to the approach is structured requirements elicitation, where developers guide domain experts through targeted questions about theories, typical uses cases, computational problem scale and possible tests. The answers directly inform modular design, verification, and documentation, all supported by our GitHub template for a seamless development process. Key recommended practices include: (i) theory should be documented with structures and notations that ease its transition into code, (ii) early introduction of continuous integration, (iii) low-level design documentation via code-embedded comments (e.g.\ docstrings), and (iv) performance-aware modularization suitable for the problem scale. By prioritizing clarity, flexibility, and developer-domain expert collaboration, this work aims to elevate research software from disposable tools to sustainable, peer-review-ready assets. The thesis reviews past studies on research software, examines our own software projects, details our methodology, and proposes a preliminary experiment design that would serve as a means to the proposed process and techniques.en_US
dc.language.isoenen_US
dc.subjectresearch softwareen_US
dc.subjectsoftware engineeringen_US
dc.subjectGitHub templateen_US
dc.subjectdocumentationen_US
dc.subjectdocument-driven developmenten_US
dc.subjectproject managementen_US
dc.titleA Collaborative Framework Toward Minimizing Pain Points in Research Software Developmenten_US
dc.title.alternativeMinimize Pain Points in Research Software Developmenten_US
dc.typeThesisen_US
dc.contributor.departmentComputing and Softwareen_US
dc.description.degreetypeThesisen_US
dc.description.degreeMaster of Science (MSc)en_US
dc.description.layabstractModern scientific and engineering research relies heavily on custom software for numerical analysis, yet the development of this class of software is often ad hoc for small projects. Domain experts and partnering developers frequently lack shared expertise. While existing solutions often assume large teams, this thesis proposes a practical framework enabling small domain expert-developer teams to build robust, sustainable research software. Supported by a GitHub template, our approach centers on structured requirements elicitation, where developers guide domain experts through key questions about theory, use cases, computational scale, and testing. Answers directly shape design, verification, and documentation. Key recommendations include: (i) theory documentation to ease development, (ii) early Continuous Integration adoption, (iii) low-level design via code-embedded comments, and (iv) performance-aware modularization. This framework elevates small research software projects from disposable tools to sustainable assets. The thesis reviews prior work, analyzes case studies, details our practices, and proposes experimental evaluations.en_US
Appears in Collections:Open Access Dissertations and Theses

Files in This Item:
File Description SizeFormat 
Thesis.pdf
Open Access
5.51 MBAdobe PDFView/Open
Show simple item record Statistics


Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.

Sherman Centre for Digital Scholarship     McMaster University Libraries
©2022 McMaster University, 1280 Main Street West, Hamilton, Ontario L8S 4L8 | 905-525-9140 | Contact Us | Terms of Use & Privacy Policy | Feedback

Report Accessibility Issue