第一篇随笔--自我能力梳理以及软件工程课程展望
一、个人技能树与自我评估
已具备的专业知识与能力
- 编程语言基础:熟练掌握Python,能够完成简单的后端接口开发;掌握C/C++基础语法,可完成算法题、小型控制台程序;掌握Java基础语法。
- 计算机基础:掌握数据结构、常见算法;熟悉计算机网络、操作系统基础概念。
- 开发实践:会使用Git进行版本控制,能够完成代码提交、分支管理;做过小型个人项目,会调用第三方API。
- 工具能力:熟练使用VS Code、PyCharm等开发工具;熟练使用Claude Code。
感兴趣的技术方向
- 后端开发
- AI应用方向
欠缺的能力
-
软件工程体系知识薄弱:不了解实际的完整软件开发流程。
-
大型项目经验不足:只写过小体量项目,缺少多人协作大型项目实战,不会规范的模块拆分。
-
文档能力弱:不擅长编写规范的设计文档、需求文档。
二、代码量统计
截至目前,个人累计手写代码约5000-6000行,主要来源于算法练习、课程作业、数学建模项目。 经过本学期软件工程课程学习之后,希望总代码量达到10000行,重点放在规范化项目代码,而不是简单堆砌代码行数。
三、课程期待学习的知识与收获
最期待学习的知识:完整的软件开发流程、软件设计、团队协作开发模式、软件文档撰写规范。
希望收获:
-
建立软件工程思维,跳出以往的简单编程思维。
-
掌握团队项目开发流程,学会分工协作、版本管理、项目文档输出。
-
学会软件测试,写出健壮、可维护的代码。
四、AI生成软件工程学习指南以及分析
使用AI工具:GLM-5.3-Flash,生成的软件工程课程学习指南如下:
软件工程学习指南(简要版)
课程主线
软件工程 = 用工程化方法构建高质量软件。回答三个问题:怎么做(过程)、做什么(需求与设计)、怎么保证做好(测试与管理)。
五大核心模块
- 软件过程:瀑布、原型、增量、螺旋、敏捷(Scrum)——重点记各模型优缺点与适用场景(高频考点)
- 需求分析:功能/非功能需求;数据流图(DFD)、数据字典、E-R 图、用例图;产出需求规格说明书(SRS)
- 软件设计:概要设计(模块化、高内聚低耦合——必考)与详细设计;UML 类图、时序图;SOLID 原则
- 软件测试:单元→集成→系统→验收;黑盒(等价类划分、边界值分析)vs 白盒(逻辑覆盖、环复杂度 V(G)=E−N+2)
- 项目管理:甘特图与关键路径、COCOMO 估算、四类维护(改正/适应/完善/预防)、配置管理(Git、基线)
学习方法
- 图表是核心:DFD、用例图、类图、时序图要能手画,用 draw.io / PlantUML 练手
- 小项目走全流程:做一个"图书馆管理系统"级别的小项目,从写需求到写测试走完一遍,胜过刷十遍书
- 对比记忆:过程模型横向对比;内聚/耦合按强度排序;测试覆盖准则按强弱排序
常考题型
名词解释(软件危机、内聚/耦合、SRS、基线)|画图题(DFD、用例图、类图)|计算题(环复杂度、COCOMO 估算)|简答(模型对比、测试与调试的区别)
推荐资源
- 教材:张海藩《软件工程导论》(考试向)/ Sommerville《软件工程》(视野向)
- 通识:《人月神话》;工具:Git、draw.io、PlantUML
一句话建议
这门课重在建立"先设计、再实现、持续验证"的工程思维——项目做一遍,概念自然通。
指南合理性分析
- 合理性:指南的模块划分清晰,过程模型、需求、设计、测试、管理五大块覆盖课堂主线;技术细节准确,兼顾考试题型和实践方法,可以作为课程初期的学习地图。
- 不足:可操作性不强,只讲了“学什么”,没讲“怎么学”,只能让我对软件工程课程有个粗略的理解
- 对我个人帮助 整体可以作为学习参考。提醒我要重视文档、测试和项目流程。但需要自己补充学习规划。

浙公网安备 33010602011771号