软件工程第一次随笔
技术栈梳理与自我复盘
一、当前技能树与自我评估
(一)已具备的专业知识与能力
- 编程语言与算法基础
- 熟练掌握 C/C++、Python 基础语法,能够独立完成常规逻辑的编码实现
- 掌握常用数据结构与基础算法
- 基础开发与工具能力
- 能够独立完成简单 Web 静态页面的开发
- 熟练使用 VS Code等开发环境,掌握 Git 基础提交、分支操作,能够使用 Markdown 编写技术文档
- 计算机理论基础
- 系统学习过数据结构、计算机组成原理、计算机网络等专业基础课,理解计算机底层运行逻辑与网络通信基本原理
- 自主学习与问题排查能力
- 能够通过官方文档、技术社区独立解决常见开发问题,具备基础的报错信息检索与调试能力
(二)感兴趣的技术方向
人工智能:关注大模型应用落地方向,对 RAG、Agent 等开发模式有探索意愿,希望结合软件工程方法打造高质量 AI 应用
(三)目前欠缺的核心能力
- 软件架构与设计能力
仅能实现零散功能点,缺乏对大型项目的整体架构设计、模块拆分与接口设计能力;对设计模式的理解停留在概念层面,无法灵活应用到实际项目中。 - 深度问题排查与性能优化能力
对框架和工具多停留在“会用”层面,底层原理理解不深,遇到复杂 Bug 或性能问题时,定位与解决的效率较低。 - 需求分析与文档输出能力
不擅长从业务需求转化为技术设计,输出的设计文档、接口文档不够规范严谨,缺乏标准化的文档输出习惯与意识。
二、代码量积累与学期目标
1. 当前代码量现状
累计代码量约4000-5000行,以语法练习、算法实现、小型实验代码为主
2. 本学期目标代码量
本学期软件工程课程结束后,期望累计有效代码量达到 8000-10000 行
三、对课程的期待与收获预期
-
掌握完整的软件开发生命周期方法论
期待系统学习从需求分析、概要设计、详细设计、编码实现到测试、部署、维护的完整流程,建立“软件工程”的系统思维,摆脱“写代码就是做软件”的片面认知。 -
获得团队协作与项目管理的实战经验
希望通过课程小组项目,实践敏捷开发流程,掌握 Git 多人协作、任务拆分、进度管理、团队沟通的方法,积累真实的团队开发经验,弥补过往单打独斗的短板。 -
提升代码质量与工程化能力
期待学习代码规范、设计模式、单元测试、代码评审、重构等工程化方法,改掉“能跑就行”的粗放编码习惯,写出可维护、可扩展、符合工业标准的高质量代码。
软件工程课程学习指南
由chatgpt5.6生成
1. 软件工程基础
重点理解软件工程的基本概念,包括:
- 软件生命周期
- 软件开发过程
- 软件危机及软件工程的意义
- 常见开发模型:瀑布模型、增量模型、螺旋模型、敏捷开发
学习时要能比较不同开发模型的特点、优缺点及适用场景。
2. 软件需求分析
主要掌握:
- 功能需求与非功能需求
- 需求获取与需求分析
- 软件需求规格说明书(SRS)
- 用例图、用例描述
- 需求验证与需求变更
重点是能够根据实际问题提取用户需求,并将其转换为规范的软件需求。
3. 软件设计
主要包括:
- 软件体系结构设计
- 模块划分
- 高内聚、低耦合原则
- 接口设计
- 数据库设计
- UML 建模
常见 UML 图包括用例图、类图、顺序图、活动图和状态图,需要掌握基本含义和绘制方法。
4. 软件实现
重点关注:
- 编码规范
- 模块化编程
- 面向对象设计原则
- 版本控制
- Git 基本操作
建议通过小型项目练习代码组织、分支管理和团队协作。
5. 软件测试
需要掌握:
- 单元测试
- 集成测试
- 系统测试
- 验收测试
- 黑盒测试与白盒测试
- 测试用例设计
重点理解测试的目标不是证明程序“没有错误”,而是尽可能发现软件中的缺陷。
6. 软件维护与项目管理
主要内容包括:
- 软件维护类型
- 软件配置管理
- 项目进度管理
- 成本估算
- 风险管理
- 团队协作
可以结合 GitHub、GitLab 等工具理解实际的软件项目管理流程。
7. 推荐学习方法
建议按照 “理论 → 建模 → 实践 → 总结” 的顺序学习:
- 理解软件工程基本理论和开发流程。
- 学习 UML、需求分析和系统设计方法。
- 选择一个小型项目完成需求、设计、编码和测试。
- 使用 Git 管理代码和版本。
- 项目结束后整理需求文档、设计文档、测试报告和项目总结。
8. 考试复习重点
如果以课程考试为目标,可以重点复习:
- 软件生命周期与开发模型
- 需求分析
- UML 图
- 软件设计原则
- 软件测试方法
- 软件项目管理
- 各阶段主要文档及作用
个人分析:
该学习指南整体结构合理,覆盖了软件工程课程的主要知识点,能够帮助我快速建立软件工程课程的知识框架,学习关注到重点内容,也可以作为预习和考试复习的提纲。但指南内容的一些具体方法和实践内容需要结合教材、课堂教学和课程项目进一步学习。总体而言,该指南对我的软件工程课程学习具有一定的指导和辅助作用。

浙公网安备 33010602011771号