软件工程论文最常被导师批评的问题就是“题目太大”。比如“基于深度学习的代码质量分析”这种题目,几乎涵盖了整个领域,缺乏聚焦点。我们实验室在指导本科生论文时发现,从代码重构(Code Refactoring)这一具体技术切入,能有效收窄选题范围。代码重构涉及代码坏味检测、重构模式推荐、重构效果评估等子问题,每个子问题都能衍生出可操作的研究点。
一个实用的收窄方法是:先确定研究对象(如开源项目中的Java类),再限定重构类型(如提取方法、内联类),最后指定评估指标(如耦合度、圈复杂度)。例如,题目“基于图神经网络的提取方法重构推荐——以Apache Commons为例”就比“代码重构推荐研究”具体得多。我们在测试中发现,使用这种“对象-操作-指标”三元组结构,论文被导师一次通过的比例提高了约40%。
数学上,我们可以用公式表示选题的聚焦程度:设 $F = \frac{S}{G}$,其中 $S$ 是具体研究场景的数量(如特定项目、特定重构类型),$G$ 是通用场景的总数。$F$ 越接近0,题目越聚焦。例如,若只研究“提取方法”这一种重构($S=1$),而通用重构类型有20种($G=20$),则 $F=0.05$,属于高度聚焦。