Please use this identifier to cite or link to this item:
http://hdl.handle.net/11375/31637
Full metadata record
DC Field | Value | Language |
---|---|---|
dc.contributor.advisor | Smith, Spencer | - |
dc.contributor.author | Du, Ange | - |
dc.date.accessioned | 2025-05-06T17:38:30Z | - |
dc.date.available | 2025-05-06T17:38:30Z | - |
dc.date.issued | 2025 | - |
dc.identifier.uri | http://hdl.handle.net/11375/31637 | - |
dc.description.abstract | Modern 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.iso | en | en_US |
dc.subject | research software | en_US |
dc.subject | software engineering | en_US |
dc.subject | GitHub template | en_US |
dc.subject | documentation | en_US |
dc.subject | document-driven development | en_US |
dc.subject | project management | en_US |
dc.title | A Collaborative Framework Toward Minimizing Pain Points in Research Software Development | en_US |
dc.title.alternative | Minimize Pain Points in Research Software Development | en_US |
dc.type | Thesis | en_US |
dc.contributor.department | Computing and Software | en_US |
dc.description.degreetype | Thesis | en_US |
dc.description.degree | Master of Science (MSc) | en_US |
dc.description.layabstract | Modern 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 | Size | Format | |
---|---|---|---|---|
Thesis.pdf | 5.51 MB | Adobe PDF | View/Open |
Items in MacSphere are protected by copyright, with all rights reserved, unless otherwise indicated.