Investigating changes in an existing codebase Personal proposal by Per-Arne Andersen S3 · Spring 2027 https://thesis.uya.no/proposals/find-your-way-through-legacy/ Find which parts of an existing codebase would be affected by a requested change. TECHNICAL - Parse Flask 3.1.0 imports and function calls into a dependency graph. - Build a graph viewer linking code and documentation to change-impact questions. DATA (mixed) Flask 3.1.0 + 20 change-investigation questions Use version-matched source, tests and docs. Write routing/session/error questions and independently review files worth inspecting; accept justified alternative files. Flask 3.1.0: https://github.com/pallets/flask/releases/tag/3.1.0 METHOD 8 Python developers answer 10 disjoint questions using graph-plus-search or the same search alone. Measure justified files found, incorrect files, time and regression-test choices; record Flask familiarity. OUTPUT Dependency viewer, answer key and comparison results. BACHELOR Task: Build a static call/dependency map for the pinned Flask checkout. Data: Flask 3.1.0 + 20 change-investigation questions (mixed) Use version-matched source, tests and docs. Write routing/session/error questions and independently review files worth inspecting; accept justified alternative files. Requires: Recruit developers and a second answer-key reviewer. Method: Validate sampled edges manually; observe students locating files for the specified maintenance tasks. Plan 4 participant sessions. Output: A code-navigation tool with known limitations and onboarding instructions. Use relevant literature to justify the established approach; a new research contribution is not the aim of this proposal. MASTER Investigate whether dependency views help impact analysis more than exact symbol lookup. Compare graph navigation with version-matched documentation; record unresolved dynamic edges and distinguish task-type effects from Flask familiarity. Intended contribution: Design knowledge about static context, uncertainty and maintenance-task fit. STARTING PAPERS Vessey & Galletta (1991) — Cognitive Fit: https://pubsonline.informs.org/doi/10.1287/isre.2.1.63 Test whether a representation helps one kind of task more than another. Wang & Strong (1996) — Beyond Accuracy: https://www.tandfonline.com/doi/abs/10.1080/07421222.1996.11518099 Distinguish accuracy, completeness, representation and fitness for the task. Search Scopus or Web of Science and ACM Digital Library using the topic query, then follow citations to the thesis start date. Record searches and compare methods, data, findings and limitations in literature-matrix.csv. Use that review to confirm or revise the gap and choose a current comparator. The linked papers are starting points. START HERE Tools: Python, ast, NetworkX, Streamlit 1. Check out Flask tag 3.1.0 and run its tests in an isolated development environment. 2. Trace one question each on routing, sessions and errors manually; get a second reviewer to check answers. 3. Parse imports first and document dynamic behaviour the graph cannot represent. Literature search: software maintenance change impact knowledge documentation information systems Study controls: - Parse imports and direct calls; mark unresolved calls and external dependencies explicitly. - An absent graph edge does not mean a file is unaffected. Do not claim exhaustive Python change-impact analysis. - Before collecting participant data, agree consent, storage and withdrawal handling with the supervisor. Use participant codes, not names, in study files. - Separate silent timed tasks from retrospective interviews. Timing during think-aloud sessions is descriptive, not an isolated interface-speed effect. - For the master’s study, use the research task above to define the factors and comparisons in this pilot plan. Preregister one primary outcome and feasible scope after the literature review; do not add every possible model or interface variant. REQUIRES Recruit developers and a second answer-key reviewer. -------------------- NON-TECHNICAL - Prepare 12 change cards for the fixed Flask version. - Compare code/tests-only investigations with code/tests plus version-matched documentation. DATA (public) Flask 3.1.0 + 12 change-request cards Prepare 4 cards per topic and a checked affected-file list. Recruit 8 Python developers for 45-minute sessions. Flask 3.1.0: https://github.com/pallets/flask/releases/tag/3.1.0 METHOD 8 Python developers perform timed searches, then explain their path retrospectively. Compare justified inspection files and strategies; record Flask familiarity. No graph or parser is built. OUTPUT Evidence of where maintainers get stuck and a documentation checklist. BACHELOR Task: Find where developers get stuck when investigating unfamiliar code. Data: Flask 3.1.0 + 12 change-request cards (public) Prepare 4 cards per topic and a checked affected-file list. Requires: Recruit developers; code reading required, no implementation. Method: Use the pinned Flask documentation and maintenance-task cards; map search steps and missing information. Plan 4 participant sessions. Output: An onboarding guide and code-documentation improvements. Use relevant literature to justify the established approach; a new research contribution is not the aim of this proposal. MASTER Explain how developers form and revise a mental model of an unfamiliar codebase. Compare evidence paths across lookup/impact tasks and analyse contradictory cases, rather than only listing documentation gaps. Intended contribution: An account of how representation and prior experience shape maintenance investigation. STARTING PAPERS Vessey & Galletta (1991) — Cognitive Fit: https://pubsonline.informs.org/doi/10.1287/isre.2.1.63 Test whether a representation helps one kind of task more than another. Orlikowski & Gash (1994) — Technological Frames: https://dl.acm.org/doi/10.1145/196734.196745 Compare how roles interpret the purpose, operation and use of the same system. Search Scopus or Web of Science and ACM Digital Library using the topic query, then follow citations to the thesis start date. Record searches and compare methods, data, findings and limitations in literature-matrix.csv. Use that review to confirm or revise the gap and choose a current comparator. The linked papers are starting points. START HERE Tools: LibreOffice Writer/Calc, audio recorder with consent; no programming required. 1. Prepare a pilot with 2 examples from: Flask 3.1.0 + 12 change-request cards. Write the task questions and a reference answer sheet. 2. Write a recruitment message, information sheet and consent form for the participants named above. Agree privacy handling with the supervisor before contact. 3. Pilot one session after approval; revise unclear questions, freeze the task sets and coding categories, then recruit the planned sample. Literature search: software maintenance change impact knowledge documentation information systems qualitative scenario study Study controls: - Use disjoint cards in each condition and independently checked, non-exhaustive inspection-file keys. - Do not attribute differences in prior Flask experience to the documentation. - Before collecting participant data, agree consent, storage and withdrawal handling with the supervisor. Use participant codes, not names, in study files. - Pilot separately, then freeze the questions and coding plan. Check objective answer keys independently; keep an audit trail of coding, including disagreements. - For comparisons, counterbalance order and case assignment; do not show a person both versions of one case. Report participant-level findings, not repeated tasks as independent people. - Separate silent timed tasks from retrospective interviews. Timing during think-aloud sessions is descriptive, not an isolated interface-speed effect. REQUIRES Recruit developers; code reading required, no implementation. Bachelor: apply established methods and evaluate a practical solution or study. Master: position a research question in current scientific literature, investigate a mechanism or unresolved problem, and explain the contribution. Final scope is agreed with me. Study sizes are proposed; participant recruitment and planned materials are not already arranged.