第一次作业
第一次作业
| 这个作业属于哪一个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
| 这个作业的目标 | 初步学习git操作和markdown语法的使用,熟悉如何对团队的仓库进行修改以及博客园的使用 |
| 学号 | 102301111 |
个人资料截图

团队主页的网址
https://github.com/FantasyRL/HachimiONanbayLyudou
自我评估
1.能力基础
能力A:基础代码能力
- 学习了c,c++,python等高级语言以及汇编语言,有一定的代码能力基础,能够实现一些简单的基础问题。
- 学习了算法与数据结构,对于排序算法和搜索算法能较位熟练掌握,对于图算法和动态规划算法有一定基础。
能力B:专业基础知识
- 学习了计算机网络,了解了计算机直接如何通过协议和传输介质进行通信和资源共享。
- 学习了计算机组成原理,了解了计算机系统内部的工作原理,掌握了计算机五大基础部件是如何协作的。
- 学习了如何在Linux系统上实现进程的控制与通信。
2.感兴趣技术方向
- 对人工智能领域较为感兴趣,想学习机器学习和深度学习模型在实际现实场景的应用。
- 对于前端开发较为兴趣,我希望深入掌握行业主流的前端框架与技术栈,构建复杂、高效的现代化Web应用。
3.能力缺乏
- 项目开发经验不足,对于一些协作开发平台如Github的使用不够熟悉。
- 代码能力较弱,对于一些复杂模型的代码难以实现,代码量也不够多。
代码量
- 当前代码量:5000-6000行。
- 课程完成后代码量:7000-8000行。
期望知识
- 增加自己的项目经验,学习如何开发设计一款软件。
- 增强团队交流的能力,学习如何将软件工程知识用于软件开发。
- 提高自己的代码能力和实践水平。
学习指南(deepseek)
好的,这是一份为您量身定制的软件工程课程学习指南。它遵循了软件工程的核心思想,将学习过程模拟为一个迭代和增量的“项目”,并附带了详细的时间计划表。
软件工程课程学习指南
本指南旨在帮助你不仅通过考试,更能真正理解如何像一名工程师一样,系统地构建和维护高质量的软件。
核心学习理念
- 理论与实践结合: 软件工程不是纯理论学科。学习每个概念时,都要思考“它如何应用于实际项目?”
- 迭代与增量: 学习是循序渐进的。不要期望一次就掌握所有知识,通过多次复习和实践来加深理解。
- 工具链意识: 尽早熟悉并使用现代软件工程工具(如 Git),这是工程师的基本素养。
学习时间计划表(以16周教学为例)
第一阶段:基础与启蒙(第1-4周)
这个阶段的目标是建立对软件工程的宏观认识,并搭建起核心工具链。
| 周数 | 学习主题 | 具体内容与目标 | 实践任务 |
|---|---|---|---|
| 第1周 | 课程导论:什么是软件工程? | 1. 理解软件工程的定义、目标和挑战(如“软件危机”)。 2. 了解软件的生命周期(从需求到废弃)。 3. 熟悉几种基本的软件过程模型(瀑布模型、V模型)。 |
1. 搜索并阅读一两个著名的软件项目失败案例(如 Ariane 5 火箭爆炸)。 2. 思考这些失败与软件工程实践的关系。 |
| 第2周 | 软件过程模型(一) | 1. 深入学习敏捷开发的核心思想(敏捷宣言)。 2. 掌握 Scrum 框架的核心角色、工件和事件(Product Backlog, Sprint, Daily Stand-up)。 3. 了解极限编程(XP)的实践(如结对编程、测试驱动开发)。 |
1. 与3-4名同学组队,尝试为一个虚拟项目(如“班级活动管理App”)进行一次为期1周的迷你Sprint。 2. 撰写简单的用户故事(User Story)。 |
| 第3周 | 版本控制 - Git | 1. 理解版本控制的必要性和基本概念(仓库、提交、分支、合并)。 2. 掌握基本的 Git 命令: clone, add, commit, push, pull, branch, merge。3. 了解基于 Git 的协作工作流(如 GitHub Flow)。 |
1. 在 GitHub 或 Gitee 上创建账户。 2. 创建一个项目仓库,并与你的小组成员协作,共同维护一个文档。 3. 务必完成:解决一次合并冲突。 |
| 第4周 | 需求工程(一) | 1. 区分功能需求与非功能需求。 2. 学习如何获取和分析需求(访谈、问卷、原型等)。 3. 掌握编写需求规格说明的要点。 |
1. 为你的小组项目编写一份简单的需求列表,明确区分功能和非功能需求。 2. 绘制一个简单的用例图(Use Case Diagram)来描述系统与外部用户的交互。 |
第二阶段:设计与建模(第5-9周)
这个阶段是软件工程的核心,学习如何将需求转化为可执行的蓝图。
| 周数 | 学习主题 | 具体内容与目标 | 实践任务 |
|---|---|---|---|
| 第5周 | 软件设计基础与UML | 1. 理解软件设计的基本原则(高内聚、低耦合)。 2. 认识统一建模语言(UML)及其常用图表。 3. 重点掌握类图(Class Diagram) 和时序图(Sequence Diagram)。 |
1. 为你小组项目的核心业务逻辑绘制类图和时序图。 2. 使用工具如 StarUML, Draw.io 或 PlantUML。 |
| 第6周 | 软件架构与设计模式 | 1. 了解常见的软件架构风格(分层架构、客户端-服务器、MVC)。 2. 学习几种常用的设计模式(如单例、工厂方法、观察者模式)。 3. 理解模式解决的是什么问题。 |
1. 为你小组的项目选择一个合适的架构风格,并说明理由。 2. 尝试在代码中实现一个简单的设计模式(如观察者模式用于事件通知)。 |
| 第7周 | 实现与编码规范 | 1. 理解好代码的特征(可读性、可维护性)。 2. 学习基本的编码规范(命名、注释、格式)。 3. 了解代码坏味道(Code Smells)和重构的基本概念。 |
1. 为你选择的编程语言(如 Java/Python)找一个官方或流行的编码规范(如 Google Style),并尝试遵循。 2. 互相评审小组内其他成员的代码(Code Review)。 |
| 第8-9周 | 期中复习与项目中期检查 | 1. 复习前8周的所有理论知识点。 2. 整合小组项目的需求、设计和部分实现代码。 3. 准备一次简单的演示。 |
1. 整理学习笔记,制作知识脑图。 2. 小组进行一次 Sprint 评审会议,展示已完成的功能。 3. 根据反馈调整后续计划。 |
第三阶段:质量保证与维护(第10-14周)
这个阶段关注如何确保软件质量,并理解软件的长期生命周期。
| 周数 | 学习主题 | 具体内容与目标 | 实践任务 |
|---|---|---|---|
| 第10周 | 软件测试(一) | 1. 理解测试的重要性与分级(单元测试、集成测试、系统测试)。 2. 掌握黑盒与白盒测试技术。 3. 学习编写有效的测试用例。 |
1. 为你项目中的一个核心函数/类编写单元测试(使用 JUnit, pytest 等框架)。 2. 追求较高的测试覆盖率。 |
| 第11周 | 软件测试(二)与 DevOps 初探 | 1. 了解自动化测试和持续集成(CI)的概念。 2. 学习使用 CI 工具(如 GitHub Actions, Jenkins)。 3. 理解 DevOps 文化。 |
1. 为你的项目配置一个简单的 GitHub Actions workflow,使其在每次代码推送时自动运行测试套件。 |
| 第12周 | 软件维护与演化 | 1. 理解软件维护的类型(改正性、适应性、完善性、预防性)。 2. 学习软件再工程和重构。 3. 认识技术债务(Technical Debt)及其影响。 |
1. 分析你小组项目的代码,找出一处“代码坏味道”,并实际进行重构。 2. 讨论项目中可能存在的技术债务。 |
| 第13周 | 项目管理与团队协作 | 1. 学习项目估算技术(如功能点分析)。 2. 了解风险管理和质量保证。 3. 掌握有效的团队沟通和协作技巧。 |
1. 使用看板工具(如 Trello, GitHub Projects)来管理小组项目的剩余任务。 2. 进行一次项目回顾会议,总结整个项目过程中的得失。 |
| 第14周 | 项目收尾与复习 | 1. 完成所有项目功能的开发与测试。 2. 准备最终的项目演示、报告和代码提交。 3. 开始系统性复习全书内容。 |
1. 录制一个简短的项目演示视频。 2. 撰写最终的项目报告,涵盖从需求到测试的全过程。 3. 整理所有学习材料。 |
第四阶段:复习与展望(第15-16周)
| 周数 | 学习主题 | 具体内容与目标 | 实践任务 |
|---|---|---|---|
| 第15-16周 | 总复习与课程展望 | 1. 梳理整个课程的知识体系,查漏补缺。 2. 了解软件工程的前沿领域(如AI辅助编程、云原生、微服务)。 3. 准备期末考试。 |
1. 与同学进行小组问答和讨论。 2. 完成往年试卷或老师提供的练习题。 3. 思考软件工程知识在你未来项目或职业中的应用。 |
推荐工具与资源
- 版本控制: Git, GitHub / Gitee
- 建模工具: Draw.io (免费), StarUML, Visual Paradigm
- 项目管理: Trello, Notion, GitHub Projects
- CI/CD: GitHub Actions, GitLab CI
- 推荐阅读:
- 《代码大全》 - 软件构建的百科全书
- 《人月神话》 - 经典之作,深刻洞察项目管理
- 《敏捷软件开发:原则、模式与实践》 - 深入理解敏捷和设计模式
- 《重构:改善既有代码的设计》 - 写出好代码的必读之书
指南分析
该指南较为合理,给出了详细的学习计划和学习内容,给我个人的学习指明了方向。
博文编辑页面截图


浙公网安备 33010602011771号