这个作业属于哪个课程 | 202501 软件工程 |
---|---|
这个作业要求在哪里 | <软件工程第一次团队作业> |
这个作业的目标 | 熟悉git协作和markdown语法,深入了解自己的能力并寻找发展方向 |
学号 | 102301537 |
一、团队网页
https://github.com/XunBo2023/cuddly-umbrella
二、技能树与技能偏好
技能树
A. Python 全栈开发
- 爬虫与基础数据挖掘
- Web 全栈开发
- 小程序与简单移动端 App 开发
B. 人工智能
- 机器学习与深度学习基础课程
- 数据处理能力
C. 游戏方向
- C# 与 Unity(兴趣向)
技能偏好
比较偏向人工智能及其衍生领域,未来计划在此方向深入精进。
此外,也希望涉猎其他领域以拓展新视角,学习不同领域的思维方式以提升产出。
在意识与系统思维层面,希望在进行软件或项目开发时,具备完整的逻辑链条与架构框架,
同时增强系统的可扩展性与鲁棒性。
因此,近期学习重点除技术外,也关注系统性思维的培养,
以提升整体软件设计与实现的能力。
三、代码量
目前所有代码量(包括学习代码)约为数千行,未来计划持续增加代码实践量。
关于代码量目标:
- 取决于所实现功能的复杂度。
- 代码过于冗余会影响性能。
- 重点不在于数量,而在于质量与结构设计。
总体目标:持续练习,不断改进,没有办法量化具体的数值
四、在课程中的预期收获
希望能完整体验一个软件从概念提出 → 设计实现 → 团队协作 → 成果落地的全过程。
通过实践了解项目中各个环节的关系与衔接。
同时,希望在团队协作中积累经验,提高沟通与任务分配能力。
不期望从课程当中学到很多软件开发的知识,更希望通过团队项目与自主学习,了解成熟社区的技术体系与开发流程。
五、ChatGPT 生成的软件工程学习计划
1. 总体目标
通过系统化的学习与实践,掌握软件工程的核心理论、设计原则和开发流程,
能够独立完成中等规模的软件项目开发,
并理解团队协作、软件生命周期管理和工程化思想。
2. 学习阶段规划
阶段一:基础理解(第 1~3 周)
目标: 建立软件工程的基本概念和工程化思维。
学习内容:
- 软件工程基本概念与生命周期:需求分析、系统设计、实现、测试与维护。
- 常见开发模型:瀑布模型、迭代模型、敏捷开发(Agile)、DevOps。
- 软件开发角色与职责:产品经理、开发工程师、测试工程师、架构师、运维工程师。
- 版本控制:Git 基本操作、分支管理、GitHub / GitLab 使用。
实践任务:
- 使用 Git 完成一个小型管理系统的版本控制练习。
- 撰写《软件需求规格说明书》(SRS)初稿。
阶段二:系统设计与团队协作(第 4~8 周)
目标: 学会从需求到设计的系统建模方法,并掌握团队开发流程。
学习内容:
- UML 建模:用例图、类图、顺序图。
- 设计模式:单例模式、观察者模式、工厂模式、MVC 架构。
- 软件架构设计:分层架构、微服务架构、事件驱动架构。
- 团队协作工具:GitHub Projects、Trello、Jira 等。
实践任务:
- 小组协作完成一个“选课系统”或“图书管理系统”项目。
- 每个成员负责一个模块,使用 Git 进行协作开发与合并。
- 提交项目文档与 UML 设计说明。
阶段三:工程化与自动化实践(第 9~14 周)
目标: 掌握测试、持续集成、部署与维护的工程实践方法。
学习内容:
- 软件测试与质量保障:单元测试、集成测试、Mock 测试。
- 持续集成(CI)与持续部署(CD):GitHub Actions、Jenkins 等工具。
- 构建与部署:Maven / Gradle、Docker 容器化。
- 数据库与 API 开发:E-R 图、SQL、RESTful API 设计。
实践任务:
- 为阶段二的项目编写测试用例,并集成 CI/CD 流程。
- 将项目部署至云服务器(如阿里云或 Vercel)。
- 提交《软件测试报告》。
阶段四:系统优化与专业扩展(第 15~20 周)
目标: 提升架构分析与系统优化能力,形成完整的软件工程理解。
学习内容:
- 软件架构优化:高可用性、高并发、可扩展性设计。
- 设计原则:SOLID、KISS、DRY。
- 日志与监控:Prometheus、Grafana。
- 项目管理与维护:Scrum 框架、需求追踪矩阵、版本管理。
实践任务:
- 对项目进行性能分析与架构优化。
- 编写完整的《软件工程报告书》(包括设计、测试与优化方案)。
3. 长期发展方向建议
方向 | 推荐学习内容 | 实践建议 |
---|---|---|
AI 工程化方向 | Python、FastAPI、Docker、微服务设计 | 实现 AI 服务封装与部署 |
后端系统方向 | Java、Go、数据库、分布式架构 | 开发可扩展的任务调度系统 |
DevOps 工程方向 | CI/CD、Kubernetes、云原生 | 实现自动化部署与监控系统 |
4. 总结
软件工程学习的核心在于:
从编写代码的个人能力,提升到管理系统与团队协作的工程能力。
通过以上四个阶段的学习与实践,可以:
- 系统理解软件开发全过程;
- 具备团队协作与版本控制能力;
- 掌握测试、部署与持续集成;
- 具备软件架构与优化的基础能力。
六、分析可行性
ChatGPT 生成的学习计划较为详细(可能是平时调教的好),其内容与未来计划学习的软件架构与面向对象编程方向存在较多交叉点,具有较强的参考价值。
计划中的工程化阶段与团队协作环节尤其有助于未来项目管理与实际开发能力的提升,
同时也能帮助培养系统性思维与完整的软件开发意识。
总体来看,该学习计划合理且具可执行性。
七、图片
markdown图片
个人主页图片