软件工程第一次作业
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
|---|---|
| 这个作业要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
| 这个作业的目标 | 了解GitHub以及博客园的使用, 掌握git工具,进行Github团队主页搭建 |
| 学号 | 102301432 |
github主页以及成员介绍
github主页: https://github.com/xuezong691/fzuteam_lakers
成员介绍截图:

自我评估
已具备能力
1.通过课程习得一定的C语言与C++编程能力
2.较为熟悉各类算法与数据结构
3.正在学习数据库系统和操作系统相关知识
兴趣方向
1.编写能服务生活的应用程序
2.希望能将计算机编程相关知识和金融等领域结合起来
能力缺陷
1.学习深度不足, 对于各项技能学习均不深入
2.实践经验不足, 不具备实际开发能力
3.代码量偏少,没有进行太多的实践操作,大多数知识都停留在理论层面
4.英语水平较差,阅读代码的能力有待增强
代码量
代码量偏少,大概3000行,希望学习本课程之后能达到8000行
最期待在课程中能够学习到
1.希望学习自主工作所需的能力和知识,方便以后找工作
2.增强动手能力和自我学习能力,适应不同工作与学习需求
3.增强打代码的能力
软件工程学习方向
一、核心学习重点
1. 基础理论(必学)
软件工程定义与目标:核心是 “用系统化方法做软件开发、运行与维护”,最终追求 “高质量、低成本、按时交付”。
软件生命周期(SDLC):记住全流程 —— 需求分析→设计→编码→测试→部署→维护,每个阶段需产出对应文档(如需求文档、测试报告)。
核心概念:掌握软件质量三要素(可靠性、可维护性、易用性)、软件文档分类与作用、基础成本估算方法(如功能点估算)。
2. 核心开发方法(重点掌握)
瀑布模型:线性流程、阶段不可逆,适合需求明确稳定的项目(比如工具类软件)。
敏捷开发:迭代式推进、快速响应需求变化,互联网产品开发常用(如 APP 迭代)。
迭代模型:分阶段交付,每个阶段包含完整 SDLC,适合大型复杂项目(如企业管理系统)。
3. 关键技能(理论 + 实操)
需求分析:用 “用户故事”“用例图” 梳理需求(工具推荐 Visio、免费的 DrawIO),避免需求模糊。
软件设计:
概要设计:拆分项目模块(比如电商系统分用户、订单、支付模块);
详细设计:描述模块内逻辑(用流程图、伪代码写清算法);
设计原则:牢记 “高内聚、低耦合”“单一职责”。
软件测试:
类型:单元测试(测单个函数 / 类)、集成测试(测模块交互)、系统测试(测整体功能);
入门工具:Java 用 JUnit,Python 用 pytest,先理解黑盒 / 白盒测试思路。
版本控制与协作:熟练 Git 基础(提交、分支、合并、解决冲突),搭配 GitHub/GitLab 管理代码,理解团队协作流程。
4. 实践项目(必做)
入门级:开发简单工具(如待办清单 APP、图书管理系统),完整走一遍 “需求→设计→编码→测试”,产出全套文档。
进阶级:参与团队项目(如模拟电商网站原型),练敏捷迭代(比如 2 周 1 个迭代),用 Jira/Trello 跟踪任务。
二、分阶段学习路径
阶段 1:入门(1-2 个月)
目标:掌握基础理论与工具
具体任务:
读《软件工程导论》(张海藩),梳理 SDLC 流程;
用 DrawIO 画 1 个用例图(比如 “图书馆借书系统”);
学会 Git 基础操作(提交代码、创建分支)。
阶段 2:进阶(2-3 个月)
目标:深入开发方法与软件设计
具体任务:
学 1 种开发方法(优先敏捷,可看《敏捷软件开发:原则、模式与实践》);
做 1 个小项目(如学生成绩管理系统),产出需求文档 + 设计图 + 测试用例;
用 JUnit/pytest 写 3-5 个单元测试用例。
阶段 3:实战(持续进行)
目标:积累项目经验与协作能力
具体任务:
参与 GitHub 开源小项目,尝试提交 PR;
模拟团队开发,用 Jira 分配任务、跟踪进度;
学 1 个开发框架(Java 用 Spring Boot,Python 用 Django),提升编码效率。
三、推荐学习资源
1. 书籍
入门:《软件工程导论》(张海藩,教材级,逻辑清晰);
进阶:《敏捷软件开发:原则、模式与实践》(Robert C. Martin,敏捷领域经典);
实践:《代码整洁之道》(提升编码规范性,间接帮你做好工程质量)。
2. 在线课程
理论:Coursera《Software Engineering Principles》(斯坦福大学,侧重理论体系);
实操:慕课网《软件工程实战:从需求到部署》(侧重项目落地流程)。
3. 入门级工具
绘图工具:DrawIO(免费)、Visio,用来画用例图、流程图;
版本控制:Git+GitHub,管理代码 + 团队协作;
项目管理:Trello(轻量)、Jira,跟踪任务(敏捷团队常用);
测试工具:JUnit(Java)、pytest(Python),做单元测试。
四、关键注意事项
别只学理论,多做项目:软件工程是 “实践学科”,哪怕小项目,也要完整走一遍 SDLC,避免 “懂概念不会落地”;
重视文档:初学者容易忽略需求文档、设计笔记,但好文档是后续维护、协作的关键,从第一个项目就养成写文档的习惯;
关注团队协作:单人项目练流程,团队项目练沟通(比如对齐需求、解决代码冲突),这是企业招聘的核心考察点;
跟踪行业动态:了解 DevOps、低代码开发等新趋势,但先打好基础(SDLC、敏捷、Git),再拓展新技能,别本末倒置。
对于ai生成指南的分析
较为合理,为我提供了学习本门的课程的参考流程,帮助我更好了解这门课程,给出了一些我可能遇到的问题以及解决方法
Markdown编辑器的使用


浙公网安备 33010602011771号