第一次作业
项目 | 内容 |
---|---|
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 完成个人技能评估、制定学习目标、分析AI生成的学习指南 |
学号 | 102301516 |
团队主页
https://github.com/xuezong691/fzuteam_lakers
成员介绍
技能数与技术偏好
具备的专业知识和能力:
- C和C++的基本语法结构
- 基本的数据结构和算法
技术偏好与兴趣方向:
- 对软件开发方面较有兴趣
缺少什么样的能力:
- 缺少项目开发的经验
- 缺少将实践与理论结合的能力
代码量:
- 目前代码量为1000到2000行,主要涉及C和C++,以及算法相关。
- 通过本学期的学习希望打到3000乃至4000行的代码量,并积累实践经验。
学习期望与规划:
- 我希望学习如何系统化地管理软件生命周期,掌握需求分析、系统设计和项目管理的方法论,而不仅仅是编写代码。
- 我渴望通过团队项目,亲身实践规范的版本控制、代码审查、持续集成和自动化测试,积累真实的协作开发经验。
软件工程学习指南(由deekseek生成):
第一阶段:工程思维与基础理论 (第1-4周)
核心目标:
- 建立软件工程的宏观视野,理解“工程化”与“编程”的区别。
学习内容:
- 软件生命周期与开发模型:深入理解瀑布模型、V模型、迭代模型,并重点掌握敏捷开发(特别是Scrum)的核心思想与流程。
- 需求工程:学习如何获取、分析和定义需求,掌握编写用户故事和使用案例的方法。
- 软件设计基础:了解软件架构的重要性,学习UML基础(如用例图、类图、时序图),并接触经典的设计原则(如SOLID原则)。
实践任务:
- 为一个小型项目(如“图书馆管理系统”)编写一份简要的需求规格说明书。
- 尝试绘制该项目的用例图和类图。
第二阶段:团队协作与开发工具链 (第5-8周)
核心目标:
- 掌握现代软件团队协作必备的工具和流程。
学习内容:
- 版本控制(Git):超越add/commit/push,学习分支策略(如GitFlow)、Pull Request、代码合并与冲突解决。
- 团队协作平台:熟练使用GitHub/GitLab的Issue、Project看板等功能进行任务管理和协作。
- 持续集成/持续部署(CI/CD):了解基本概念,并尝试为项目配置一个简单的CI流水线(如使用GitHub Actions),实现自动化的代码检查和测试。
实践任务:
- 与小组成员在GitHub上建立一个项目仓库,使用Issue分配任务,并通过Pull Request进行代码合并。
- 为项目配置一个基础的CI脚本,确保代码提交后能自动运行静态检查或单元测试。
第三阶段:质量保障与系统演进 (第9-12周)
核心目标:
- 培养构建高质量、可维护软件的能力。
学习内容:
- 软件测试:系统学习并动手编写单元测试、集成测试。理解测试金字塔模型。
- 代码规范与重构:学习编写清晰、可读的代码,了解常见的代码“坏味道”,并掌握基本的重构技巧。
- 文档编写:学习编写高质量的技术文档,包括API文档、设计文档和用户手册。
实践任务:
- 为你的项目核心模块编写覆盖率达到一定标准(如60%)的单元测试。
- 定期进行代码审查,并尝试对一段现有代码进行重构,提升其可读性和可扩展性。
第四阶段:项目实战与总结回顾 (第13-16周)
核心目标:
- 整合所学知识,完成一个完整的团队项目,并进行复盘。
学习内容:
- 项目冲刺:以团队形式,采用敏捷开发方法,完整地实现一个软件项目。
- 部署与发布:学习将项目部署到云服务器或云平台(如Heroku, Vercel, 阿里云等)。
- 项目总结与反思:进行项目回顾,总结在需求、技术、管理、协作方面的经验与教训。
实践任务:
- 完成整个项目的开发、测试和部署,并对外发布可运行的版本。
- 团队共同撰写一份最终项目报告,并进行成果展示。