软件工程课程第一次团队作业
| 这个作业属于哪个课程 | 202501软件工程 |
|---|---|
| 这个作业要求在哪里 | 软件工程课程第一次团队作业 |
| 这个作业的目标 | 了解GitHub以及博客园的使用, 掌握git工具, 明确自身能力和不足, 以及未来规划 |
| 学号 | 102301409 |
github主页以及成员介绍
- github主页: https://github.com/xuezong691/fzuteam_lakers
- 成员介绍截图:
![QQ20251005-162207]()
自我评估
已具备能力
- 通过课程习得一定的C语言与C++编程能力
- 较为熟悉各类算法与数据结构
- java学习至连接数据库, 仍在继续学习
兴趣方向
- 深入学习java后端技术
能力缺陷
- 学习深度不足, 对于各项技能学习均不深入
- 实践经验不足, 不具备实际开发能力
代码量
- 约四千行, 希望能达到一万行
期望收获
- 代码编写能力的提升
- 团队协作能力提升, 熟悉团队协作开发的流程
- 掌握软件开发的流程以及框架
软件工程课程学习指南
一、课程目标
-
理解核心概念:掌握软件工程的基本定义、原则与价值,明确其与传统编程的区别,建立 “工程化开发软件” 的思维模式。
-
掌握开发流程:熟悉软件生命周期(需求分析、设计、编码、测试、部署、维护)各阶段的核心任务与输出物,能按流程推进简单软件项目。
-
学会工具与方法:了解主流的软件开发模型(如瀑布模型、敏捷开发)、项目管理工具(如 Jira、Trello)及协作工具(如 Git、GitHub),具备基础的工具使用能力。
-
培养团队协作:通过小组项目实践,提升需求沟通、任务分工、代码协作与问题解决能力,适应团队开发场景。
二、核心知识模块
1. 基础理论
-
软件工程概述:软件工程的起源、发展历程、核心原则(如模块化、高内聚低耦合)、软件质量属性(可靠性、可维护性、可扩展性等)。
-
软件生命周期模型:
-
传统模型:瀑布模型(线性流程,适合需求明确的项目)、原型模型(快速迭代验证需求,适合需求模糊场景)。
-
现代模型:敏捷开发(Scrum、Kanban 等,增量迭代,响应需求变化)、螺旋模型(结合瀑布与原型,强调风险评估)。
-
2. 各阶段核心任务
-
需求分析:学习需求获取(访谈、问卷、原型演示)、需求建模(用例图、用户故事)、需求文档(SRS,软件需求规格说明书)编写,确保需求清晰、可验证。
-
软件设计:
-
概要设计:划分系统模块、定义模块间接口,输出架构设计文档(如分层架构、微服务架构)。
-
详细设计:设计模块内部逻辑、数据结构、算法,输出类图、时序图等(可使用 UML 工具)。
-
-
编码与协作:遵循编码规范(如命名规则、注释要求),学习版本控制工具(Git)的基本操作(提交、分支、合并、冲突解决)。
-
软件测试:掌握测试分类(单元测试、集成测试、系统测试、验收测试)、测试方法(黑盒测试、白盒测试),了解测试工具(JUnit、Selenium)的使用,能编写测试用例并定位简单 Bug。
-
项目管理与维护:了解项目进度管理(WBS 任务分解、甘特图)、成本估算、风险管控,以及软件维护的类型(纠错性维护、适应性维护、完善性维护)。
三、学习方法建议
-
理论与实践结合:不要仅停留在课本知识,每学一个模块都需配套实践 —— 例如学完需求分析后,尝试为一个简单 APP(如待办清单)编写需求文档;学完 Git 后,搭建个人仓库练习分支管理。
-
参与小组项目:软件工程的核心是 “工程化” 与 “协作”,建议 3-5 人组成小组,共同完成一个小型项目(如校园二手交易平台、课程管理系统),模拟真实开发流程,分工负责需求、设计、编码、测试等环节。
-
多阅读案例与文档:阅读成熟软件的开发案例(如开源项目的设计文档、迭代日志),学习行业内的最佳实践;同时熟悉官方文档(如 Git 官方指南、UML 工具手册),培养自主解决问题的能力。
-
定期复盘总结:每完成一个阶段或项目后,复盘过程中的问题(如需求变更导致的进度延误、代码冲突解决不及时),总结经验教训,优化后续学习与实践流程。
四、推荐学习资源
- 教材与书籍:
-
《软件工程:实践者的研究方法》(Roger S. Pressman 著,经典教材,覆盖全生命周期)。
-
《敏捷软件开发:原则、模式与实践》(Robert C. Martin 著,深入讲解敏捷思想与实践)。
- 在线课程:
-
Coursera《Software Engineering Principles》(加州大学欧文分校,侧重理论与模型)。
-
B 站《Git 与 GitHub 零基础入门》(适合快速掌握版本控制工具)。
- 工具与平台:
-
设计工具:DrawIO(免费 UML 绘图)、Axure(原型设计)。
-
协作平台:GitHub(代码托管与协作)、Jira(项目管理)、Postman(接口测试)。
- 社区与文档:
-
Stack Overflow(解决编程与工程问题的社区)。
-
软件工程领域博客:Martin Fowler 的个人博客(分享软件设计与敏捷实践)。
五、常见问题与解决思路
-
问题 1:需求频繁变更,导致开发进度混乱?
解决思路:采用敏捷开发的增量迭代模式,将项目拆分为 1-2 周的小迭代,每次迭代前确认需求优先级,迭代中若有变更,评估影响后纳入下一个迭代,避免一次性全盘调整。
-
问题 2:团队协作时,代码合并频繁出现冲突?
解决思路:提前约定 Git 使用规范(如每人基于 develop 分支创建个人分支,定期同步 develop 分支代码),合并前先拉取最新代码解决本地冲突,复杂冲突及时与相关成员沟通。
-
问题 3:测试阶段发现大量 Bug,无法高效定位?
解决思路:从单元测试入手,确保每个模块独立可测;测试时记录详细的 Bug 复现步骤(环境、操作、预期结果、实际结果),结合日志工具(如 Log4j)定位问题代码。
对于ai生成指南的分析
- 较为合理> >
- 为我提供了学习本门的课程的参考流程
- 帮助我更好了解这门课程
- 给出了一些我可能遇到的问题以及解决方法
后台编写截图


浙公网安备 33010602011771号