软件工程课程随笔

一、个人技能树、技术偏好与自我评估

✅ 已具备的专业知识与能力

  1. C / C++ 编程能力:掌握基础语法、指针、结构体、面向对象,能够完成课程实验、简单算法程序编写,可以实现基础数据结构代码。
  2. 数据结构与算法:熟练链表、栈队列、树、图、常见排序查找算法;能够手写基础算法,完成算法题训练。
  3. 计算机网络:理解 OSI/TCP‑IP 模型、TCP/UDP、HTTP、IP、路由等基础原理,熟悉网络各层核心协议概念。
  4. Java 后端基础:掌握 Java 基础语法,了解 SpringBoot 框架,能够编写简单接口,完成基础业务 Demo。
  5. 前端与数据库基础:会 HTML、CSS 简单页面开发;掌握 MySQL 基础 CRUD,能够编写简单 SQL。
  6. 版本控制工具:掌握 Git 基础操作,会使用 GitHub 完成代码提交、仓库管理。

🎯 感兴趣的技术方向

  1. 后端服务开发
  2. C++ 系统底层、网络编程
  3. AI 大模型 Agent 应用开发

❌ 目前欠缺的能力

  1. 软件工程工程化能力:不熟悉需求分析、软件设计、UML 建模、单元测试、项目规范、版本迭代流程,缺少规范化项目开发经验。
  2. 大型项目实战经验:只写过小 Demo 和课程实验,没有完整参与从需求到上线的完整软件项目。
  3. 系统设计能力:对模块划分、接口设计、解耦、架构设计缺少实践。
  4. 测试与调试工程化手段:缺少单元测试、集成测试、bug 系统性排查的实战经验。
  5. 团队协作开发:缺少多人协作开发、代码评审、分支协同开发真实项目经历。

二、代码量统计与目标代码量

  • 截至目前累计代码量:约 8000 行,主要为 C/C++ 算法实验、数据结构作业、Java 小 Demo、前端网页练习。
  • 完成本学期软件工程课程后希望达到代码量:累计 13000 行以上。增量主要来自课程小组大作业、规范化项目编码,包含需求、设计、编码、测试完整环节代码。

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

最期待学习的知识

  1. 软件生命周期完整流程:需求分析、概要设计、详细设计、编码、测试、维护各阶段工作内容。
  2. UML 各类图的绘制与使用,学会用图描述软件系统。
  3. 面向对象软件设计思想,设计模式基础,模块划分、接口设计方法。
  4. 软件测试方法:单元测试、集成测试,缺陷管理。
  5. 团队软件开发流程:分工、版本管理、项目文档撰写。

希望获得的收获

  1. 建立软件工程思维,不再只关注 “代码跑通”,学会关注软件质量、可维护性。
  2. 能够参与小组项目,完整走完一个软件项目全流程,会写规范项目文档。
  3. 掌握团队协作开发模式,学会分工、Git 多人分支协同。
  4. 学会评估软件质量,懂得测试、排查问题,提升工程实践能力。

四、AI 生成软件工程课程学习指南及合理性分析

选用 AI 工具:DeepSeek‑R1

AI 生成的软件工程课程学习指南

以下为 AI 输出原文:

软件工程课程学习指南

  1. 理清概念,重视理论
    软件工程不是单纯写代码,重点掌握软件生命周期、需求分析、概要设计、详细设计、实现、测试、维护。不要死记硬背,结合案例理解每个阶段的产出物。
  2. 掌握 UML 建模工具
    熟练使用用例图、类图、时序图。理解每种图的使用场景,课程作业优先动手画图,不要跳过设计直接写代码。
  3. 重视课程小组大作业
    小组项目是软件工程最重要实践。做好分工,先写文档,后写代码;做好版本管理,使用 Git 进行协作。
  4. 学习软件测试基础
    理解单元测试、黑盒测试、白盒测试,学会设计测试用例,明白测试不是找 bug 这么简单。
  5. 阅读设计模式基础
    掌握常用设计模式,理解面向对象封装、继承、多态如何用于工程开发,提升代码可扩展性。
  6. 重视文档编写
    需求规格说明书、概要设计说明书等文档是软件工程的核心产出,文档质量和代码同样重要。
  7. 复盘总结
    项目结束后复盘:需求有没有变更?设计有没有缺陷?团队协作存在什么问题,积累工程经验。

对这份指南的合理性分析

  1. 合理部分
  • 明确指出软件工程不等于写代码,强调设计、文档优先于编码,刚好对应我只擅长写代码、缺少设计思维的短板,对我有很强指导意义。
  • 突出小组大作业、Git 协作、UML 绘图,正是本课程核心考核内容,贴合课程要求。
  • 区分不同测试类型,强调测试用例设计,纠正 “测试就是随便运行程序” 的误区。
  • 提醒文档的重要性,很多同学容易忽略文档只写代码,这点对课程作业非常实用。
  1. 存在不足
  • 没有提及风险分析、软件项目管理、进度安排,小组开发中排期、分工冲突是高频问题。
  • 设计模式只建议阅读,没有区分课程需要掌握的程度,容易过度投入时间。
  • 缺少案例参考,没有给出文档、UML 图的简单示例。
  1. 对我个人能否带来帮助
    整体可以带来帮助。这份指南可以作为本课程学习的检查清单,提醒我不要一上来直接写代码,重视前期需求、设计与文档。但后续学习过程中,还需要补充项目管理相关内容,结合课堂课件,不能完全依赖 AI 指南。
posted @ 2026-09-04 15:34  gnahihsnil  阅读(8)  评论(0)    收藏  举报