软件工程作业1

| 这个作业属于哪个课程 | [https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice] |
| 这个作业要求在哪里| [https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice/homework/16716] |
| 这个作业的目标 | 账号准备:注册GitHub、博客园并完善信息,关注老师及助教博客,加入班级(需实名)。|

API调用:注册Hugging Face获取API,调用Flux模型生成图像,结合前端实现交互,展示截图与提示词迭代过程。

个人主页:通过README或GitHub Pages搭建主页,包含自我介绍、成果技能、自我评估及三年规划。

博客随笔:梳理技能树与代码量,说明课程期待,并分析AI生成的学习指南的合理性。

格式:使用Markdown编写,附后台编辑截图。 |
| 学号 | 102402152 |

任务一:
1.1:前端互动页面及图片生成
image
1.2:api调用
image
1.3:提示词设计思路
最初的设计词较为简单,(生成荷花图片),由于画面太过动画,所以后续经过修改,最后的提示词为“生成一张现实世界的荷花”。
1.4:心得体会
(1):提示词会直接影响图像输出效果,需要不断调整关键词来控制画面内容、光影与画质。
(2):模型调用免费次数太少,没法进行多次修改提示词来生成满意的图像。
(3):在访问网站时还需要挂起VPN,通过*** verge实现访问网站。

任务二:
我选择了第一个方案,主页内容结构README相关内容如图所示:
image
任务三:
一:能力
我现在已经掌握了一些编程语言的基本使用方法,如

  1. c语言,以及其数据结构在不同场景下的灵活使用
  2. c++,同c语言,其数据结构在不同场景下的灵活使用
    3.python,
    4.java,
    并且对计算机操作系统,计算机网络也有了基础的认识。但是对于较难的编程以及多种数据结构的串联使用我无法独立自主的完成,我希望今后能够提升思维能力与编程能力,多参加一些项目与竞赛,多去提升自我。我感觉学习编程是一个接受新事物的过程,他的学习逻辑与平时的学习不太一样,所以我在学习编程上有点困难。
    二:代码量
    我当前的代码量一道中等题正常写80-120行,代码的总数估计就在几千个吧。我希望经过努力与训练,今后的代码量能够突破5位数,应该可以吧。
    三:期待学习的知识以及希望获得的收获
    对于这节课程我其实很期待能够自己设计并实现一个软件,比如能够帮我整合并筛选考研所需材料,注意事项以及在遇到困难时能够给予我具体到位的帮助。当然,最主要的还是要提升自身能力,打铁还需自身硬。
    四:学习指南
    4.1: 学习指南
    我这边使用deepseek生成了一份学习指南
    核心学习目标
    从“编码者”转变为“工程师”:不仅关注代码实现,更关注质量、成本、进度、风险的平衡。

第一部分:课程知识体系(学什么)
软件工程的核心是围绕 “过程” 、 “方法” 和 “工具” 展开的。

  1. 核心理论基础(占40%)
    软件过程模型:掌握瀑布、敏捷(Scrum/Kanban)、迭代与增量模型。重点理解何时选用何种模型。

可行性研究与需求工程:学习如何从模糊的用户想法中提炼出SRS(软件需求规格说明书),掌握数据流图、用例图的绘制。

软件架构与设计:理解“高内聚低耦合”。重点学习MVC、微服务、分层架构,并掌握UML(统一建模语言)中的类图、时序图、组件图。

软件测试:颠覆“测试就是找Bug”的认知。重点掌握V模型、测试用例设计方法(等价类、边界值),以及单元测试、集成测试、系统测试的区别。

  1. 工程化核心技能(占40%)
    配置管理:熟练使用 Git 进行分支管理(Feature Branch / Git Flow),理解解决冲突和代码审查(Code Review)的流程。

CI/CD(持续集成/持续交付) :理解“提交代码即触发构建、测试、部署”的自动化流水线逻辑。

项目管理:了解甘特图、燃尽图,以及如何评估工时(故事点估算)。

  1. 前沿与软技能(占20%)
    DevOps文化:开发与运维的融合。

软件伦理:隐私保护、AI生成代码的版权问题。

团队协作:高效开会、有效沟通。

第二部分:高效学习策略(怎么学)
软件工程不是靠“背”出来的,而是靠“做”和“复盘”。

  1. 实战驱动:以一两个项目贯穿始终
    不建议只做零散的课后题,最好能用一个2-3个月的项目把整个生命周期串起来。

阶段A(需求):找一款现有工具(如记账本),为其写一份需求规格说明书。

阶段B(设计):使用PlantUML或Draw.io绘制架构图,产出详细设计文档。

阶段C(实现):结对编程,严格遵守Git提交规范,每次提交写明目的。

阶段D(测试):为你的代码编写单元测试,争取核心模块覆盖率达到80%以上。

阶段E(维护):发布一个Release版本,并记录Issue。

  1. 工具链先行:磨刀不误砍柴工
    不要等到写代码时才学工具。提前一周熟悉以下工具,后期学习会顺畅很多:

IDE/编辑器:VSCode / IntelliJ IDEA(熟练掌握快捷键和插件)。

协作平台:GitHub / GitLab(学会提Issue、PR、Wiki维护)。

建模工具:Draw.io / ProcessOn / StarUML。

项目管理:TAPD / Jira / Trello。

  1. 经典书籍配合阅读
    教材太枯燥?可以配合以下书籍加深理解:

入门必读:《构建之法——现代软件工程》(邹欣)——接地气,适合初学者建立认知。

深度补充:《人月神话》——了解软件工程的“复杂性”本质。

设计精华:《Head First设计模式》——帮助理解架构设计中的复用原则。

第三部分:时间分配建议(3个月标准版)
第1-2周(全景认知) :过一遍教材目录,看完《构建之法》前5章,搭建好Git和IDE环境。

第3-5周(需求与设计攻坚) :重点攻克UML图绘制和文档撰写。(此阶段最难,坚持住)

第6-10周(工程实践) :带着项目做开发,重点实践测试驱动开发(TDD) ,每次写功能前先写测试。

第11-12周(维护与总结) :重点学习部署与监控,整理项目中的缺陷记录,写一份项目复盘报告(Post-Mortem)。

第四部分:避坑指南(重要提醒)
别当“文档工具人”:写文档的目的是为了指导开发,不是为了凑字数。建议先画图、写关键接口定义,再填充描述性文字。

警惕“银弹”陷阱:没有完美的开发流程。如果项目极小(如单页应用),不必硬套微服务,敏捷或简单模型可能更高效。

不要忽视“非功能需求”:性能、安全、可用性往往比功能更影响用户评价。设计时就要考虑高并发、数据备份。

重视代码规范:团队中统一的命名规范、注释规范,可能比技术选型更重要。

结语:一句话总结
软件工程 = 定义正确的做事流程 + 使用高效的协作工具 + 持续交付有价值的软件。

终极建议:学完课程后,可以尝试重写你三年前写的第一个程序,用上本次学到的工程化方法,你会直观感受到“工程化”带来的质变。祝你学习顺利!
4.2:合理性分析
我感觉这个学习指南对我来说难度有点大,但有些地方我觉得还是有点帮助,至少我有了前进的方向。
任务四:
image

posted @ 2026-09-05 14:02  庄剑钇  阅读(32)  评论(0)    收藏  举报