软件工程第一次作业
软件工程第一次作业
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
这个作业的目标 | 创建并完善github账户及博客园账户,掌握markdown语法,掌握git基本命令的用法,熟练运用ai工具,明确自己具备的技能并做好职业规划 |
学号 | 102301524 |
markdown编辑截图
Github团队主页搭建
团队仓库: https://github.com/XunBo2023/cuddly-umbrella
团队logo
自我介绍: https://github.com/Halley7025/Halley7025/blob/main/README.md
个人评估
目前具备技能
- c/c++、python、matlab基础,能写简单程序
感兴趣的方面
- 对网络工程,人工智能感兴趣
目前缺少的能力
- 缺少大型项目开发经验
代码量
- 1k+
本学期学习目标
- 希望代码量能达到2k+
- 能完成一个项目
AI生成的学习指南
一、学习核心目标
软件工程的核心是以系统化、规范化、可度量的方法开发、运行和维护软件,核心目标聚焦“从‘写代码’到‘交付可靠软件产品’的思维转变”,具体拆解为3点:
- 理解软件从需求分析、设计、编码、测试、部署到维护的全生命周期流程;
- 掌握各环节的核心工具与方法,能独立完成小型软件项目的全流程落地;
- 建立“可维护、可扩展、高可用”的工程化思维,具备基础团队协作能力。
二、分阶段学习路径(适合新手,周期6-8个月)
阶段1:基础理论入门(1-2个月)
重点解决“软件工程是什么、为什么需要”的认知问题,避免后续实践陷入“盲目编码”误区。
- 必学内容:
- 软件生命周期模型:瀑布模型(线性流程,适合需求明确场景)、敏捷开发(迭代式,如Scrum,适合需求多变场景)、DevOps(开发+运维一体化)的适用场景与优缺点;
- 核心原则:模块化(拆分复杂功能)、信息隐藏(隐藏内部实现,暴露统一接口)、开闭原则(对扩展开放,对修改关闭);
- 基础文档:需求规格说明书(明确“做什么”)、设计说明书(明确“怎么做”)的核心要素。
- 推荐资源:
- 教材:《软件工程:实践者的研究方法》(入门经典,易懂且全面);
- 课程:中国大学MOOC《软件工程》(清华大学,免费,配套案例丰富)。
阶段2:工具与方法落地(2-3个月)
用工具将理论转化为实操能力,覆盖全流程关键环节,形成“方法+工具”的落地闭环。
学习环节 | 核心方法 | 推荐工具 |
---|---|---|
需求与原型设计 | 用户故事(用“角色-场景-目标”描述需求)、用例图(梳理用户与系统交互) | Axure(画交互原型)、Draw.io(画用例图/流程图) |
编码与协作 | 代码规范(如Java《阿里巴巴Java开发手册》、Python PEP8)、Git版本控制(分支管理、提交规范) | VS Code(编码,配代码检查插件)、GitHub/GitLab(团队协作) |
软件测试 | 单元测试(测试单个函数/模块)、接口测试(验证接口调用正确性) | JUnit(Java测试)、PyTest(Python测试)、Postman(接口测试) |
项目管理 | 任务拆分(按功能拆解为可执行小任务)、进度跟踪(记录任务完成情况) | Jira(专业项目管理)、Trello(轻量任务看板) |
阶段3:实战项目巩固(2-3个月)
通过“小而全”的项目验证学习成果,优先从个人项目入手,再过渡到团队协作:
- 个人项目(入门):
- 示例:个人博客系统(实现“用户注册登录、发布/编辑/删除文章、评论管理”功能);
- 目标:练手数据库设计(MySQL)、前后端基础交互(如 Python Flask/Java Spring Boot + 简单 HTML/CSS)、基础测试流程。
- 团队项目(进阶,3-5人):
- 示例:在线投票系统(分工“需求分析、前端开发、后端接口开发、测试”);
- 关键动作:用 GitHub 创建公共仓库,通过“分支开发、Pull Request 审核”协作,按流程输出需求文档、测试报告,模拟企业开发场景。
三、避坑与高效学习建议
- 拒绝“理论空转”:软件工程是实践学科,哪怕先做一个“待办事项APP”(实现增删改查),也比只看教材更能理解流程;
- 别忽视文档编写:新手常跳过“需求文档、设计文档”直接编码,导致后期需求变更时大规模改代码,初期可先写“简易笔记式文档”,明确核心逻辑;
- 多参考开源项目:去 GitHub 搜“spring-boot-demo”“flask-blog”等关键词,学习成熟项目的代码结构、文档规范和注释风格;
- 保持编码手感:每天花 30 分钟在 LeetCode 刷简单算法题(如数组、字符串处理),避免长时间不编码导致“手生”。
四、总结
软件工程的核心不是“学多少框架”,而是“建立‘系统化解决软件问题’的思维”。从理论入门打基础,用工具落地练技能,靠项目实战验成果,逐步推进就能形成完整的工程化能力,满足企业对软件开发的核心需求。