第一篇随笔--自我能力梳理以及软件工程课程展望

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

已具备的专业知识与能力

  1. 编程语言基础:熟练掌握Python,能够完成简单的后端接口开发;掌握C/C++基础语法,可完成算法题、小型控制台程序;掌握Java基础语法。
  2. 计算机基础:掌握数据结构、常见算法;熟悉计算机网络、操作系统基础概念。
  3. 开发实践:会使用Git进行版本控制,能够完成代码提交、分支管理;做过小型个人项目,会调用第三方API。
  4. 工具能力:熟练使用VS Code、PyCharm等开发工具;熟练使用Claude Code。

感兴趣的技术方向

  1. 后端开发
  2. AI应用方向

欠缺的能力

  1. 软件工程体系知识薄弱:不了解实际的完整软件开发流程。

  2. 大型项目经验不足:只写过小体量项目,缺少多人协作大型项目实战,不会规范的模块拆分。

  3. 文档能力弱:不擅长编写规范的设计文档、需求文档。

二、代码量统计

截至目前,个人累计手写代码约5000-6000行,主要来源于算法练习、课程作业、数学建模项目。 经过本学期软件工程课程学习之后,希望总代码量达到10000行,重点放在规范化项目代码,而不是简单堆砌代码行数。

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

最期待学习的知识:完整的软件开发流程、软件设计、团队协作开发模式、软件文档撰写规范。

希望收获:

  1. 建立软件工程思维,跳出以往的简单编程思维。

  2. 掌握团队项目开发流程,学会分工协作、版本管理、项目文档输出。

  3. 学会软件测试,写出健壮、可维护的代码。

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

使用AI工具:GLM-5.3-Flash,生成的软件工程课程学习指南如下:

软件工程学习指南(简要版)

课程主线

软件工程 = 用工程化方法构建高质量软件。回答三个问题:怎么做(过程)、做什么(需求与设计)、怎么保证做好(测试与管理)。

五大核心模块

  1. 软件过程:瀑布、原型、增量、螺旋、敏捷(Scrum)——重点记各模型优缺点与适用场景(高频考点)
  2. 需求分析:功能/非功能需求;数据流图(DFD)、数据字典、E-R 图、用例图;产出需求规格说明书(SRS)
  3. 软件设计:概要设计(模块化、高内聚低耦合——必考)与详细设计;UML 类图、时序图;SOLID 原则
  4. 软件测试:单元→集成→系统→验收;黑盒(等价类划分、边界值分析)vs 白盒(逻辑覆盖、环复杂度 V(G)=E−N+2)
  5. 项目管理:甘特图与关键路径、COCOMO 估算、四类维护(改正/适应/完善/预防)、配置管理(Git、基线)

学习方法

  • 图表是核心:DFD、用例图、类图、时序图要能手画,用 draw.io / PlantUML 练手
  • 小项目走全流程:做一个"图书馆管理系统"级别的小项目,从写需求到写测试走完一遍,胜过刷十遍书
  • 对比记忆:过程模型横向对比;内聚/耦合按强度排序;测试覆盖准则按强弱排序

常考题型

名词解释(软件危机、内聚/耦合、SRS、基线)|画图题(DFD、用例图、类图)|计算题(环复杂度、COCOMO 估算)|简答(模型对比、测试与调试的区别)

推荐资源

  • 教材:张海藩《软件工程导论》(考试向)/ Sommerville《软件工程》(视野向)
  • 通识:《人月神话》;工具:Git、draw.io、PlantUML

一句话建议

这门课重在建立"先设计、再实现、持续验证"的工程思维——项目做一遍,概念自然通。

指南合理性分析

  1. 合理性:指南的模块划分清晰,过程模型、需求、设计、测试、管理五大块覆盖课堂主线;技术细节准确,兼顾考试题型和实践方法,可以作为课程初期的学习地图。
  2. 不足:可操作性不强,只讲了“学什么”,没讲“怎么学”,只能让我对软件工程课程有个粗略的理解
  3. 对我个人帮助 整体可以作为学习参考。提醒我要重视文档、测试和项目流程。但需要自己补充学习规划。

posted @ 2026-09-07 11:42  APOCA  阅读(7)  评论(0)    收藏  举报