软件工程课程第一次团队作业
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
| 这个作业的目标 | 完成GitHub的团队搭建以及项目构建,完成自我介绍,开通博客园并发布随笔 |
| 学号 | 102301129 |
作业相关
个人介绍

团队主页的网址
https://github.com/FantasyRL/HachimiONanbayLyudou
个人能力
技能
c、c++、python等
兴趣
小游戏程序的制作,有趣的神秘小程序的制作
代码量以及希望学习到的能力
目前代码量预计在5000左右
希望能在学习课程知识后,能够自主开发并完成一个完整的软件程序,并期望代码量能提升至8000左右。
学习建议
以下是我用deepseek生成的学习计划
核心目标: 不仅仅是学会编程,而是学会如何高效、协作、可控地构建和维护高质量的软件。
第一阶段:基础入门与思想启蒙 (约4-6周)
这个阶段的目标是建立对软件工程的宏观认识,并掌握最基本的单人开发流程。
| 学习模块 | 具体内容 | 实践任务 | 产出物/检验标准 |
|---|---|---|---|
| 1. 软件工程概述 | - 什么是软件工程?与编程的区别? - 软件生命周期(SDLC)的各个阶段 - 常见的软件开发模型(瀑布模型、V模型、增量迭代、敏捷) |
阅读《人月神话》或《代码大全》的经典章节,写一篇读书笔记。 | 能够清晰阐述软件工程的核心思想及其重要性。 |
| 2. 版本控制 Git | - 为什么需要版本控制? - Git 基本命令: clone, add, commit, push, pull- 分支管理基础: branch, merge |
1. 在 GitHub/GitLab 上创建个人项目仓库。 2. 每天将你的学习代码/笔记用 Git 提交并推送到远程仓库。 |
一个活跃的GitHub主页,能熟练使用 Git 进行日常代码管理。 |
| 3. 一门编程语言与IDE | - 选择一门主语言(如 Java/Python/C++)。 - 学习其基本语法、面向对象思想。 - 熟练使用一款IDE(如 IntelliJ IDEA, VSCode)及其调试功能。 |
实现一个简单的命令行小工具(如待办事项列表、计算器)。 | 能够用所选语言熟练编写、调试小型程序。 |
第二阶段:核心工程方法与技术 (约6-8周)
这个阶段是软件工程的“硬核”部分,学习如何将需求转化为稳定、可维护的软件结构。
| 学习模块 | 具体内容 | 实践任务 | 产出物/检验标准 |
|---|---|---|---|
| 1. 需求工程 | - 如何获取和分析需求? - 编写用户故事(User Story)。 - 学习绘制用例图(Use Case Diagram)。 |
为你计划开发的一个“个人博客系统”编写3-5个核心用户故事和用例图。 | 能够将模糊的需求转化为结构化的功能描述。 |
| 2. 软件设计 | - UML 图:类图(Class Diagram)、时序图(Sequence Diagram)。 - 设计原则:SOLID 原则。 - 设计模式:了解单例、工厂、观察者等常用模式。 |
为你的“个人博客系统”绘制核心类图和关键业务流程的时序图。 | 能够使用 UML 清晰地表达你的软件设计思路。 |
| 3. 软件测试 | - 测试的重要性与分级:单元测试、集成测试、系统测试。 - 学习编写单元测试(如 JUnit for Java, pytest for Python)。 - 测试驱动开发(TDD)初体验。 |
为你第一阶段的小工具或“个人博客系统”的核心类编写单元测试,力争达到高代码覆盖率。 | 养成“写代码必写测试”的习惯,理解测试对质量的保障作用。 |
| 4. 构建与依赖管理 | - 学习使用构建工具(如 Maven/Gradle for Java, pip for Python)。 - 理解依赖管理的概念。 |
将你的项目用构建工具进行配置,管理外部库依赖。 | 项目可以通过一条命令(如 mvn compile)完成编译和依赖下载。 |
第三阶段:团队协作与项目管理 (约4-6周)
软件工程是团队活动,这个阶段学习如何与他人协作,并管理项目进度。
| 学习模块 | 具体内容 | 实践任务 | 产出物/检验标准 |
|---|---|---|---|
| 1. 敏捷开发与 Scrum | - 敏捷宣言与价值观。 - Scrum 框架中的角色、工件和仪式(Sprint, Backlog, Daily Stand-up)。 |
与2-3名同学组队,模拟一个为期2周的 Sprint。使用看板工具(如 Trello, GitHub Projects)管理任务。 | 亲身体验一次完整的迭代开发周期,理解敏捷协作的流程。 |
| 2. 协作 Git 工作流 | - 学习主流的工作流:Git Flow 或 GitHub Flow。 - 代码审查(Code Review)的意义和流程。 - Pull Request/Merge Request 的创建与合并。 |
在团队项目中,为每个新功能创建特性分支,完成后发起 Pull Request 邀请队友进行代码审查。 | 能够在团队中规范地使用 Git 进行协作,并完成一次高质量的代码审查。 |
| 3. 项目管理基础 | - 任务分解(WBS)。 - 进度估算(如故事点)。 - 风险管理。 |
为你们的团队项目制定一个简单的迭代计划,并进行任务分解和估算。 | 能够对一个小型项目进行初步的规划和跟踪。 |
第四阶段:系统整合与进阶探索 (约4-6周)
将前面所学融会贯通,完成一个完整的项目,并接触现代软件工程的必备技能。
| 学习模块 | 具体内容 | 实践任务 | 产出物/检验标准 |
|---|---|---|---|
| 1. 综合项目实践 | - 将第二、三阶段的知识应用于一个更复杂的项目(如一个简单的Web应用)。 - 涵盖:需求分析、设计、编码、测试、部署。 |
团队大作业:开发一个“在线投票系统”或“简单的电商系统”。 | 一个功能完整、有文档、有测试、可运行的软件产品。 |
| 2. 持续集成/持续部署 (CI/CD) | - 理解 CI/CD 的概念和流水线。 - 学习使用 GitHub Actions 或 GitLab CI 编写简单的流水线脚本。 |
为你的团队项目配置一个 CI 流水线,实现代码推送后自动运行测试。 | 项目拥有一个自动化的 CI 流水线,并能成功运行。 |
| 3. 文档编写 | - 学习编写优秀的 README.md。 - 了解API文档、技术设计文档的写法。 |
为你的综合项目编写一份清晰的 README,包括项目介绍、构建和运行说明。 | 你的项目文档能让一个新成员快速上手。 |
| 4. 进阶主题选学 | - 软件架构:微服务 vs 单体架构。 - DevOps 文化与容器化(Docker 初步)。 - 代码质量:静态代码分析工具(如 SonarQube)。 |
尝试用 Docker 将你的项目容器化。 | 对现代软件开发的趋势有基本的了解。 |
学习建议
- 理论与实践结合:千万不要只看书。计划中的每一个理论点,都要通过“实践任务”去巩固。动手!动手!动手!
- 善用工具:尽早熟悉你的IDE、Git、命令行、项目管理工具,它们是你的“枪”,能极大提升效率。
- 拥抱社区:多逛 GitHub,看看优秀的开源项目是怎么组织的。在 Stack Overflow 上提问和回答问题。
- 重视文档和沟通:把你做的东西、遇到的问题、解决方案写下来。清晰的文档和沟通能力是高级工程师的必备素质。
合理性分析
该计划十分完善,但是同时难度也不小,不过如果可以努力跟着计划去学习,未来将能有很大的进步。
博客云截图


浙公网安备 33010602011771号