软件工程第一次作业随笔

个人技术随笔:技能树梳理与学习规划

一、技能树与自我评估

(一)已具备的专业知识与能力

  • 编程语言:系统学过 C / C++,能独立完成基础算法题和中小型课程作业;Python 处于入门阶段,能看懂简单程序、照着教程把例子跑起来
  • 专业基础:数据结构与算法、计算机网络、计算机组成原理、汇编语言
  • 数学基础:高等数学、线性代数、离散数学、概率论与数理统计
  • 开发工具:会在 VS Code 里配 Python 虚拟环境、用 pip 装依赖;会用 GitHub 网页端上传和编辑文件

(二)感兴趣的技术方向

  • AI Agent:任务拆解、工具调用、多步自主执行
  • 游戏软件开发:游戏逻辑与玩法实现、游戏内 AI 行为
  • C++ 工程实践与后端:服务端、接口与性能

(三)欠缺的能力

  • 自己动手写的代码太少,遇到问题习惯先要 AI 给的现成代码,只剩一张白纸和一个需求时就不知道从哪下手
  • 缺少完整项目经验,没走过"需求 → 设计 → 编码 → 测试 → 维护"的完整流程
  • 工程能力薄弱:写代码"能跑就行",不考虑可读性、可维护性、可测试性
  • 工具链不熟:Git 只会网页端,Linux 和 SQL 基本不会
  • 底层与算法深度不够:编译原理未修,面对复杂算法题思路容易卡住
  • 感兴趣的两个方向都还没动手:游戏开发只会玩不会做,AI Agent 停留在概念层面

二、代码量现状与目标

截至目前,累计代码量约 4000 行,主要来源于算法刷题(数据结构与算法练习题、C / C++ 课后作业)以及计组、汇编实验,其中有一部分是问 AI 之后照着改的,尚未包含完整项目代码。

希望本学期课程结束后,代码总量达到 8000 行,新增的部分要做到自己一行行写、有设计、有测试、有记录,主要通过软件工程课程实验和小型实践项目积累。

三、本课程最期待学习的知识与收获

(一)最期待学习的知识

  • 需求分析:怎么把模糊的想法写成别人能照着做的需求说明
  • 系统设计:怎么划分模块、定接口,而不是打开编辑器就开写
  • 软件测试:怎么设计测试用例,而不是点几下没报错就算测过
  • 团队协作:分支怎么开、什么时候合并、代码评审看什么

(二)希望获得的收获

  • 从"会写代码"成长为"会做工程"
  • 掌握团队协作开发的流程与工具链
  • 完整做一遍一个可用的项目,积累项目经验

四、AI 工具生成的软件工程课程学习指南及分析

(一)我选择的工具与提问方式

选择 DeepSeek,要求它生成一份简明的软件工程课程学习指南,包含学习重点、学习顺序和推荐工具。

(二)DeepSeek 生成的指南

以下是 DeepSeek 的回复:

一、课程定位

软件工程 = 用工程化方法开发、维护高质量软件。重点不是"会写代码",而是需求 → 设计 → 实现 → 测试 → 交付 → 维护的全过程管理。

二、核心知识模块

模块 关键内容 掌握重点
软件过程 瀑布、迭代、敏捷、Scrum、DevOps 各模型适用场景与优缺点
需求工程 需求获取、分析、规格说明、变更 用例图、用户故事、需求文档
软件设计 架构设计、详细设计、UML 类图、时序图、活动图
设计原则 高内聚低耦合、SOLID、设计模式 能解释并简单应用
编码与配置管理 规范、代码审查、Git 分支管理、提交规范
软件测试 单元、集成、系统、验收测试 黑盒 / 白盒、测试用例设计
项目管理 估算、进度、风险、质量 甘特图、燃尽图、风险管理
维护与演化 逆向工程、重构、再工程 理解软件生命周期成本

三、16 周学习路线

第 1-2 周:软件工程导论、过程模型;第 3-4 周:需求工程、用例建模;第 5-6 周:UML、架构与详细设计;第 7-8 周:设计模式、编码规范、Git;第 9-10 周:测试方法、测试用例、自动化测试;第 11-12 周:敏捷开发、Scrum、项目管理;第 13-14 周:综合项目迭代开发;第 15-16 周:项目演示、复习、考试。

四、实践建议

组队做一个小型软件项目(Web / App / 小程序均可),完整走一遍:需求 → 原型 → 设计 → 编码 → 测试 → 部署。
工具推荐:版本控制 Git / GitHub;建模 PlantUML、draw.io;项目管理 Trello、Jira;测试 JUnit、pytest、Postman;CI/CD GitHub Actions。
每阶段产出文档:需求规格、设计文档、测试报告、用户手册。

五、学习方法

课前预习看目录与关键概念;课后用 UML 把案例画出来;项目驱动,把理论套到自己的项目里;每次迭代写"做得好 / 待改进"的复盘;概念题结合真实软件案例理解。

六、常见误区

只背定义,不练建模和写文档;重编码、轻需求与测试;项目拖到期末才做;不用 Git,代码版本混乱;把敏捷理解为"不写文档、随意改需求"。

七、考试 / 考核重点

基本概念:软件生命周期、过程模型、敏捷原则;建模题:用例图、类图、时序图;设计题:模块划分、设计模式应用;测试题:等价类、边界值、路径覆盖;项目答辩:需求是否清晰、设计是否合理、测试是否充分、协作是否规范。

八、推荐资源

教材《软件工程:实践者的研究方法》《人月神话》;在线课程中国大学 MOOC、Coursera;文档 Git 官方文档、UML 规范、Scrum Guide;社区 GitHub、Stack Overflow、掘金 / 知乎的软件工程专题。

一句话总结:软件工程课程要"边学理论、边做项目、边用工具",最终能独立完成一个规范的小型软件项目。

(三)分析:这份指南是否合理、能否对我有帮助

这份指南整体比较合理,跟我的实际情况贴合度挺高的。规划得挺不错,把要学的东西都安排好了,八块内容也挺全,能当检查表用,看自己哪块是空白,推荐的工具也都是能用的。

但是它说得太虚,没讲每周大概要花多少时间、每个阶段要学会什么、能做出什么;十几周的时间对我来说有点短,我基础还比较弱,指南里提到的那些工具基本都没接触过;另外这份指南是 AI 写的,却没一条讲怎么用 AI 学软件工程。

posted @ 2026-09-10 16:10  caipo  阅读(7)  评论(0)    收藏  举报