第一次作业

第一次作业

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

个人资料截图

1

团队主页的网址

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
  • 推荐阅读:
    • 《代码大全》 - 软件构建的百科全书
    • 《人月神话》 - 经典之作,深刻洞察项目管理
    • 《敏捷软件开发:原则、模式与实践》 - 深入理解敏捷和设计模式
    • 《重构:改善既有代码的设计》 - 写出好代码的必读之书

指南分析

该指南较为合理,给出了详细的学习计划和学习内容,给我个人的学习指明了方向。

博文编辑页面截图

image

posted @ 2025-10-02 16:05  周韩煜  阅读(31)  评论(0)    收藏  举报