软件工程第一次作业

软件工程第一次作业

基本信息

项目 内容
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering
这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546
这个作业的目标 初步了解软件工程
学号 102301336

团队github主页链接 https://github.com/b-yx/EchoLogic


我的技能树与学习规划

一、自我评估

1. 已具备的专业知识与能力

  • C++ 编程基础:熟练使用 C/C++ 编译和调试工具,掌握基本语法。

  • 算法与数据结构:掌握基本的数据结构以及常见基础算法。

2. 技术偏好与兴趣方向

  • 团队协作开发 较为感兴趣,希望更加深入了解多人协作开发。

3. 当前的不足

  • 项目经验缺乏:未参与过项目,缺乏经验。

二、当前代码量与目标

  • 当前代码量:约 20000 行,主要集中在c++算法题。
  • 学期目标:通过这门课学习,代码量提升到 3 万行以上,并完成一个小型项目的完整开发。

三、学习期望

  • 期待系统学习 软件开发的完整流程,从需求分析、设计到编码、测试与维护。
  • 希望能掌握:
    • 小型项目的具体开发全流程

五、软件工程学习指南(由 Deepseek 生成)

一、基础能力建设阶段

编程语言深度掌握
  • C/C++进阶学习

    • 掌握面向对象编程思想:封装、继承、多态
    • 学习内存管理:堆栈分配、智能指针、内存泄漏检测
    • 理解模板编程和STL标准库的底层实现
  • 多语言能力拓展

    • Python:用于脚本编写和快速原型开发
    • Java/C#:理解企业级开发框架
    • JavaScript:前端基础,了解全栈开发
开发工具熟练运用
  • IDE深度使用

    • Visual Studio/CLion调试技巧:断点、监视、内存查看
    • 代码重构工具:重命名、提取函数、修改变量作用域
  • 命令行工具

    • Linux基础命令和shell脚本编写
    • 编译构建工具:Makefile/CMake的使用

二、工程化思维培养

代码质量保障
  • 代码规范

    • 学习Google C++ Style Guide等编码规范
    • 使用Clang-Format、Clang-Tidy进行代码格式化检查
  • 单元测试

    • 掌握Google Test框架的使用
    • 学习测试驱动开发(TDD)的基本流程
  • 调试技能

    • 核心转储分析
    • 性能剖析工具使用
版本控制精通
  • Git高级用法

    • 分支管理策略:Git Flow工作流
    • 冲突解决技巧
    • 子模块管理
  • 代码审查

    • 学习编写清晰的代码审查评论
    • 掌握通过代码审查学习他人优点的能力

三、软件设计能力提升

设计原则与模式
  • SOLID原则理解

    • 单一职责原则
    • 开闭原则
    • 里氏替换原则
    • 接口隔离原则
    • 依赖倒置原则
  • 常用设计模式

    • 创建型:工厂模式、单例模式
    • 结构型:适配器、装饰器
    • 行为型:观察者、策略模式
架构设计入门
  • 系统分层架构
    • 表现层、业务逻辑层、数据访问层的划分
  • 模块化设计
    • 高内聚低耦合的模块划分原则
    • 接口设计规范

四、项目实战训练

个人项目实践
  • 项目选题建议

    • 简易HTTP服务器
    • 命令行工具开发
    • 小型游戏开发
  • 开发流程实践

    • 需求分析文档编写
    • 技术方案设计
    • 迭代开发计划制定
团队协作项目
  • 敏捷开发体验

    • 站立会议、迭代计划会、复盘会的参与
    • 用户故事编写和任务拆分
  • 协作工具链

    • 项目管理:GitHub Projects/Trello
    • 文档协作:飞书/Notion
    • 持续集成:GitHub Actions

五、工程全流程实践

开发阶段
  • 需求分析

    • 用户需求访谈技巧
    • 功能需求文档编写
  • 系统设计

    • 数据库设计:ER图绘制
    • API设计:RESTful接口设计原则
测试与部署
  • 测试策略

    • 单元测试、集成测试、系统测试的区分
    • 测试用例设计方法
  • 部署运维

    • 容器化基础:Docker使用
    • 日志管理和监控

六、持续学习与提升

学习资源推荐
  • 经典书籍

    • 《代码大全》
    • 《重构》
    • 《设计模式》
  • 实践平台

    • LeetCode算法练习
    • GitHub开源项目参与
能力评估方法
  • 代码量统计

    • 关注有效代码量而非单纯行数
    • 定期回顾代码质量提升情况
  • 项目成果检验

    • 完成至少一个完整项目从设计到部署的全流程
    • 获得真实用户反馈并进行迭代优化

执行建议

  1. 循序渐进:从1000行代码的小项目开始,逐步挑战更复杂的系统
  2. 刻意练习:每个技术点都要通过实际编码来巩固
  3. 及时复盘:每周总结学习收获和遇到的问题
  4. 交流分享:积极参与技术讨论,通过教授他人来深化理解

合理性分析

  • 它给了我全面的框架,把散落的知识点串联成完整链路,更关注软件的整体架构与开发流程。

  • 当然,由于是AI生成的,内容的深度和精确度需要我自己在实践中去校验和补充,它并非“标准答案”。


五、结语

对我而言,本学期的学习计划是开始理解并参与完整的软件开发流程。认识到自身经验的不足,我将通过课程与实践来积累,这也是为未来做准备的机会。


posted @ 2025-10-05 19:11  102301336_何顺康  阅读(23)  评论(0)    收藏  举报