第一次作业
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
| 这个作业的目标 | 熟悉markdown语法,git,github基础功能 |
| 学号 | 022301121 |
个人资料

团队主页的网址
https://github.com/Hannezs/404-Team-Not-Found
自我评估
目前已具备能力
Java、MySQL、Redis、Spring Boot、Spring Security
感兴趣的方向
后端,网络编程
目前缺乏的能力
网络编程,多人协作经验
代码量和目标
5000+,希望能翻倍
期望学习的知识
多人项目的开发流程
软件工程学习指南
一、课程目标
软件工程是一门研究如何系统化、规范化、高效开发和维护软件的学科。学习这门课程的目标是:
- 掌握软件开发的流程与方法论;
- 学会项目管理与团队协作;
- 理解软件质量保障和工程化实践;
- 能够在实践中应用(比如课程设计、团队项目)。
二、核心知识点
1. 软件工程基础
- 软件的定义与特点
- 软件危机与软件工程的提出
- 软件生命周期模型(瀑布、V字、螺旋、敏捷等)
- 软件工程的基本原则
👉 建议掌握:不同生命周期模型的优缺点和适用场景。
2. 需求工程
- 需求获取、分析、规格说明、验证
- 用例图、需求文档(SRS)
- 用户需求 vs 系统需求
👉 建议练习:写一个小系统的需求文档,画用例图。
3. 软件设计
- 概要设计(系统架构、模块划分)
- 详细设计(数据结构、接口设计、数据库设计)
- 设计原则(高内聚低耦合、单一职责、开闭原则等)
- UML建模(类图、时序图、活动图)
👉 建议练习:给课程项目画类图、模块图。
4. 软件实现
- 编码规范(命名、注释、风格)
- 设计模式(工厂、单例、观察者、MVC等)
- 常见开发框架与工具
👉 建议:选用熟悉的语言(如Java/Python),在项目中尝试用 1–2 个设计模式。
5. 软件测试
- 单元测试、集成测试、系统测试、验收测试
- 白盒测试、黑盒测试方法
- 自动化测试框架(JUnit, PyTest 等)
👉 建议:学会写单元测试,掌握基本覆盖率分析。
6. 软件维护与演化
- 纠错性维护、适应性维护、完善性维护、预防性维护
- 软件重构与代码优化
👉 建议:尝试维护一个旧代码库,写下遇到的痛点和改进方案。
7. 软件项目管理
- 项目计划、进度控制、成本估算(COCOMO模型)
- 人员管理与团队协作
- 风险管理
- 敏捷开发(Scrum、Kanban)
👉 建议:在小组作业中用 Git + issue + Scrum 看板。
8. 软件质量与工程化
- 软件质量模型(McCall、ISO 9126)
- 配置管理与版本控制(Git, SVN)
- 持续集成与持续部署(CI/CD)
- 文档管理
👉 建议:学习使用 GitHub/GitLab 做版本管理,尝试CI工具。
三、学习方法
-
理论 + 实践结合
光背理论没用,要在项目或作业中应用(需求文档、设计图、测试报告等)。 -
多画图
UML图(用例、类、时序)非常重要,画图能理清思路。 -
团队合作
软件工程强调团队,学会分工、写文档、做评审。 -
工具熟练度
- Git / GitHub
- 项目管理工具(如 Trello, Jira)
- 设计工具(如 StarUML, PlantUML, draw.io)
- 测试工具(如 JUnit, Postman)
四、推荐学习资源
- 教材:《软件工程(第9版)》(Ian Sommerville)
- 中文书:《软件工程导论》(张海藩)
- 课程资源:MIT OpenCourseWare, Coursera 软件工程课程
- 工具实践:GitHub 实际项目协作
五、学习路线建议
- 第一阶段:理解软件工程概念和软件生命周期模型。
- 第二阶段:学习需求工程与UML建模,能写需求规格说明书。
- 第三阶段:学习软件设计,掌握架构设计和设计模式。
- 第四阶段:结合课程项目进行编码实践,掌握测试方法。
- 第五阶段:理解项目管理、配置管理,体验敏捷开发。
- 第六阶段:进行课程设计或大作业,写完整文档。
📌 总结:
软件工程不是光靠背书,而是一个“文档 + 团队 + 工具 + 规范”的综合实践课程。最好的学习方式就是在课程项目里,把每个阶段的知识点用上。
分析
符合当前软件开发流程,具有学习借鉴意义。

浙公网安备 33010602011771号