我的技能树、自我评估与软件工程学习规划
一、当前技能树
能力 A:C++ 编程基础
我已经具备 C++ 语言基础,能够完成课程练习和基础编程任务。截至目前,我估计自己的手写有效代码量约为 3000 行。
能力 B:持续学习与问题拆解
目前我正在从“完成单个编程任务”向“理解完整软件开发过程”过渡,希望在软件工程课程中建立更系统的分析、设计、测试和维护意识。
能力 C:待提升的工程实践能力
我正在提升需求分析、UML 建模、软件测试、项目管理和团队协作等工程化能力。
二、感兴趣的技术方向
- 方向:软件工程实践与 C++ 工程化开发。
- 原因:目前更希望理解一个软件从需求提出到设计、开发、测试、维护的完整过程。
- 本学期行动:结合课程项目实践需求分析、设计、编码、测试和复盘。
三、目前欠缺的能力
- 软件过程知识不够系统;改进动作:学习瀑布、V 模型、螺旋模型和 Scrum 敏捷开发,并记录适用场景。
- 需求分析与建模经验不足;改进动作:练习 UML 用例图、类图和相关图。
- 测试与维护经验不足;改进动作:学习白盒测试、黑盒测试以及校正性、适应性和完善性维护。
四、代码量与本学期目标
- 当前手写有效代码量:约 3000 行。
- 统计口径:不包含依赖库、自动生成文件和复制代码。
- 本学期代码量目标:累计达到 5000 行。
- 实现路径:软件工程课程项目、C++ 练习和个人小项目。
五、最期待学习的软件工程知识
- 软件工程介绍:理解软件危机与各类软件生命周期模型。
- 软件过程:掌握瀑布、V 模型、螺旋模型和 Scrum 敏捷开发。
- 软件项目管理:学习 COCOMO II、风险分析和项目计划编制。
- 需求分析:掌握 UML 建模、用例图、类图和相关图。
- 系统设计:理解架构设计及高内聚、低耦合原则。
- 软件测试:学习白盒测试、黑盒测试和示例测试。
- 软件维护:理解校正性、适应性和完善性维护。
六、AI 生成的软件工程学习指南与分析
使用的工具与提示词
工具:ChatGPT
请为一名福州大学计算机科学与技术专业大三学生制定一份软件工程学习指南,覆盖需求分析、设计、编码、测试、Git 协作与项目复盘,并为每周给出可执行任务。
AI 原始输出
| 阶段 | 学习重点 | 可执行任务 |
|---|---|---|
| 第 1 周 | 软件危机、软件生命周期 | 比较瀑布、V 模型、螺旋模型的适用场景,写一页学习笔记。 |
| 第 2 周 | Scrum 敏捷开发 | 为一个小型 C++ 工具写 Product Backlog,区分产品负责人、Scrum Master 与开发者职责。 |
| 第 3 周 | 项目估算与风险 | 使用 COCOMO II 的基本思想估算一个小项目;建立风险清单,写出概率、影响和应对措施。 |
| 第 4 周 | 需求分析 | 为课程项目写用户故事和用例说明,并绘制用例图。 |
| 第 5 周 | UML 建模 | 为核心对象绘制类图,选择一个典型交互绘制时序图。 |
| 第 6 周 | 系统设计 | 用高内聚、低耦合原则拆分模块,写出架构说明与模块职责。 |
| 第 7 周 | 编码与协作 | 用 C++ 实现一个最小可用功能,使用 Git 提交并写清提交信息。 |
| 第 8 周 | 白盒测试 | 为关键分支设计语句覆盖或分支覆盖测试,并记录测试结果。 |
| 第 9 周 | 黑盒测试 | 用等价类、边界值等方法设计测试用例,记录缺陷与修复过程。 |
| 第 10 周 | 软件维护 | 结合已写代码,分别举例说明校正性、适应性和完善性维护。 |
| 第 11 周 | 小型迭代 | 完成一个可演示版本,补充 README、运行方法和问题列表。 |
| 第 12 周 | 复盘 | 对照最初计划总结实际工作量、风险、质量问题和下一阶段改进点。 |
我的分析与调整
- 合理之处:指南按“过程—需求—设计—编码—测试—维护—复盘”的顺序组织,和软件工程的完整生命周期相对应;同时把 UML、COCOMO II、测试与维护纳入实践任务,和我本学期的学习目标一致。
- 不适合之处:我目前主要具备 C++ 基础、有效代码量约 3000 行,若每周同时完成全部建模和编码任务,可能会忽视质量。因此不把“写很多代码”作为唯一目标。
- 我实际采用的计划:本学期将有效代码量从约 3000 行提高到 5000 行,新增约 2000 行主要来自课程项目与 C++ 小练习;每一阶段至少保留一份可检查的产物,如需求文档、UML 图、测试用例或 Git 提交记录。
浙公网安备 33010602011771号