软件工程第一次作业
| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering |
|---|---|
| 这个作业的要求在哪里 | https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13546 |
| 这个作业的目标 | 了解并使用git操作,熟悉Markdown语法,增进团队协作能力 |
| 学号 | 102301312 |
团队网站
https://github.com/Boshsama/IG-theshyBigHorseHead
个人资料截图

自我评估
1.专业知识和能力
掌握c、c++的代码编写,会使用VS Code和VS Studio等工具
2.感兴趣的技术方向
对数据库与大数据开发方面有兴趣,想要学习数据采集和实时/离线计算方面的知识
3.缺少的能力
缺少项目的实践经验,在遇到突发问题时的解决能力有待提高
代码量
目前的代码量在2k行左右,希望学习完这门课程,能够达到4k行
对课程的期待
1.希望能够掌握工程化的设计与开发方法,通过设计模式解决重复开发、耦合过高等问题
2.希望学习提升软件可靠性的具体手段,比如如何应对高并发、大数据量等场景的性能优化
3.期待掌握大数据系统的测试与优化方法,比如如何设计针对分布式计算的单元测试
软件工程学习指南
一、课程目标
掌握核心理论:理解软件开发生命周期(SDLC)、需求分析、设计模式、测试方法等。
培养实践能力:学会使用工具(如Git、Jira、UML)和开发方法(如敏捷开发)。
提升工程思维:通过项目实践,培养团队协作、需求管理和风险控制能力。
二、核心学习内容
软件开发生命周期(SDLC)
阶段:需求分析 → 设计 → 编码 → 测试 → 部署 → 维护。
重点:对比瀑布模型与敏捷开发的优缺点。
需求工程
技能:用户故事编写、需求规格说明书(SRS)撰写、用例图(UML)绘制。
工具:Jira、Trello(需求跟踪管理)。
软件设计
架构设计:分层架构、微服务、客户端-服务器模型。
设计模式:单例模式、工厂模式、观察者模式(结合代码实例学习)。
工具:UML类图、时序图绘制(推荐使用Lucidchart或Draw.io)。
编码与实现
编码规范:命名规则、注释规范、模块化设计。
版本控制:Git基础操作(分支管理、冲突解决)。
协作:代码审查(Code Review)流程。
软件测试
类型:单元测试、集成测试、系统测试、用户验收测试(UAT)。
工具:JUnit(Java)、Selenium(自动化测试)、Postman(API测试)。
项目管理
方法论:Scrum框架(Sprint计划、每日站会、回顾会议)。
工具:Gantt图、燃尽图(Burn-down Chart)。
软件维护与演化
类型:纠错性维护、适应性维护、完善性维护。
技术债务管理:代码重构策略。
三、学习方法建议
理论结合实践
每学完一个章节,尝试用简单项目实践(如开发一个Todo List应用)。
推荐工具:GitHub开源项目、LeetCode(算法与编码实践)。
参与团队项目
模拟真实开发流程:角色分工(PM、开发、测试)、迭代开发。
重点:沟通技巧、需求变更管理、冲突解决。
阅读经典文献
书籍推荐:
《代码大全》(Steve McConnell)
《人月神话》(Frederick Brooks)
《敏捷软件开发:原则、模式与实践》(Robert C. Martin)
关注行业动态
博客/社区:Stack Overflow、Medium技术专栏、InfoQ。
会议:QCon全球软件开发大会、中国软件技术大会。
四、常见学习难点与解决
需求变更频繁
解决:使用敏捷开发中的“用户故事”和“最小可行产品(MVP)”策略。
代码质量难以保证
解决:引入代码审查(CR)、持续集成(CI)工具(如Jenkins)。
团队协作效率低
解决:明确角色职责、使用协作工具(如Slack、Microsoft Teams)。
测试覆盖不足
解决:编写单元测试用例、使用代码覆盖率工具(如JaCoCo)。
五、推荐学习资源
在线课程
Coursera:《Software Engineering Specialization》(University of Alberta)
edX:《软件工程基础》(MITx)
开源项目
GitHub热门项目:如VS Code、React,学习其架构设计。
实践平台
编程练习:LeetCode、HackerRank。
项目管理模拟:Miro(在线白板工具)。
六、考核方式与技巧
个人作业
重点:需求文档、设计文档、测试报告的规范性。
技巧:使用Markdown或LaTeX排版,附上图表和代码示例。
团队项目
重点:代码可维护性、协作效率、迭代日志。
技巧:使用Git进行分支管理,定期同步进度。
考试
重点:概念辨析(如白盒测试 vs 黑盒测试)、计算题(如COCOMO模型估算成本)。
技巧:整理思维导图,结合案例记忆。
七、学习进度规划(16周)
周次 内容 实践任务
1-2 软件工程概述、SDLC模型 绘制SDLC流程图
3-4 需求分析与UML建模 编写用户故事,绘制用例图
5-6 软件设计与设计模式 实现单例模式,设计类图
7-8 编码规范与Git基础 开发简单应用,提交PR
9-10 单元测试与CI/CD 编写JUnit测试,配置Jenkins
11-12 敏捷开发与Scrum框架 模拟Sprint周期,更新燃尽图
13-14 软件维护与重构 优化现有代码,撰写重构报告
15-16 项目答辩与复习 完成团队项目,准备考试
分析
这份指南比较合理,对我有很大的帮助
1.覆盖了软件工程全流程(需求→设计→编码→测试→维护),符合行业标准。
2.理论(SDLC、设计模式)与实践(Git、JUnit、团队项目)结合,避免“纸上谈兵”。
3.包含软技能(团队协作、项目管理)和硬技能(编码、测试)的平衡训练。

浙公网安备 33010602011771号