软件工程第一次作业
| 这个作业属于哪个课程 | 2026软件工程与软件工程实践 |
|---|---|
| 这个作业要求在哪里 | 第一次作业 |
| 这个作业的目标 | 梳理自己的技术基础,完成 API 调用和 GitHub 个人主页搭建,并明确本学期的软件工程学习目标 |
| 学号 | 102402133 |
一、当前技能与自我评价
目前我主要接触的是 Python、人工智能基础以及一些简单的软件开发内容。
在编程方面,我主要使用 Python,也接触过 C++、MATLAB、HTML、CSS 和 JavaScript。现在能够完成课程作业和一些简单项目,但在代码规范、项目结构设计和完整的软件开发流程方面经验还比较不足。
在人工智能方面,我学习过机器学习、深度学习、图像分类、目标检测等基础内容,也接触过强化学习和自动驾驶相关项目。不过目前还主要处于学习和实践阶段,很多内容还需要继续深入。
我目前比较感兴趣的方向是人工智能、计算机视觉、强化学习和软件开发。
目前比较欠缺的能力主要包括:
- 软件需求分析
- 项目结构设计
- Git 团队协作
- 软件测试
- 代码规范和可维护性
因此,我希望通过这门课程逐渐提高自己完成一个规范软件项目的能力。
二、当前代码量与本学期目标
过去编写的代码主要来自课程实验、人工智能相关项目以及一些简单的软件开发练习,但我没有进行过准确统计。
粗略估计,目前自己累计编写和修改过的代码大约在几千行左右。本学期结束后,希望能够新增约 3000~5000 行有实际意义的代码实践。
本学期结束后,我希望能够通过课程作业和项目继续增加实际编程量,同时更加关注代码质量,而不仅仅是代码行数。
相比单纯追求代码数量,我更希望自己在以下方面有所提升:
- 代码结构更加清晰
- 命名和注释更加规范
- 学会基本的软件测试
- 学会使用 Git 管理项目
- 能够完成一个相对完整的小型软件项目
因此,本学期的目标不仅是“多写代码”,更希望提高自己写代码和组织项目的能力。
三、对软件工程课程的期待
在之前的学习中,我更多关注的是程序功能能否实现,对完整的软件开发流程了解得还不够系统。
因此,我希望通过这门课程进一步学习以下内容:
- 如何进行基本的软件需求分析
- 如何合理设计项目结构和划分模块
- 如何使用 Git 和 GitHub 进行版本管理和团队协作
- 如何进行基本的软件测试
- 如何提高代码的规范性、可读性和可维护性
我目前最希望提升的是“完整完成一个软件项目”的能力,而不仅仅是实现某一个单独的功能。
希望课程结束后,自己能够对软件从需求分析、设计、编码到测试和维护的过程有更加清晰的认识,并能够将这些方法应用到之后的课程项目和人工智能项目中。
四、AI 生成的软件工程学习指南
本次我选择使用 ChatGPT 生成一份简要的软件工程课程学习指南。
我向 ChatGPT 提出的问题是:
请为一名具有 Python 和人工智能基础,但软件工程经验较少的本科生,生成一份简要的软件工程课程学习指南。
ChatGPT 给出的建议如下:
软件工程学习指南
-
先了解软件工程的基本概念,认识软件开发不仅包括编写代码,还包括需求分析、设计、测试和维护等过程。
-
学习基本的软件需求分析方法,在写代码之前先明确软件需要实现哪些功能。
-
学习模块化设计,将一个较大的程序划分为不同功能模块,尽量减少模块之间的相互影响。
-
学习 Git 和 GitHub 的基本使用,包括 Commit、Branch、Merge 等操作,逐渐熟悉版本管理和团队协作。
-
学习基本的软件测试方法,在程序完成后检查功能是否正确,同时考虑异常情况和边界情况。
-
通过一个完整的小型项目实践软件开发流程,从需求分析开始,一直到编码、测试和总结。
-
在项目完成后检查代码结构和可读性,尝试进行简单的代码优化和重构。
五、对 AI 生成学习指南的评价
我认为 ChatGPT 给出的学习指南整体比较合理。
它不仅关注编程本身,还包括需求分析、软件设计、Git 版本管理、软件测试以及项目实践等内容,这些正好也是我目前比较欠缺的部分。
其中我最希望加强的是 Git 项目管理、软件测试和完整项目开发流程。以前做课程作业时,我通常更加关注功能是否能够实现,而较少考虑代码结构、测试和后期维护。
不过,这份指南的内容比较概括,实际学习时还需要结合课程进度和老师的具体要求进行调整。
总体来说,我认为 AI 可以帮助我快速梳理学习内容,但真正掌握软件工程知识,仍然需要通过实际项目不断练习。
六、本次作业实践
1. Hugging Face API 调用
本次作业主要学习 Hugging Face 平台中模型 API 的调用方法,并结合前端页面实现交互式图像生成。实验选择 XLabs-AI/flux-RealismLora 模型,通过 Hugging Face Inference Provider 调用模型
作业整体目录结构如下:

本次实验选择的模型为:XLabs-AI/flux-RealismLora



创建Access Token后使用 Flask 搭建本地 Web 服务,同时通过 huggingface_hub 调用 Hugging Face API,requirements.txt 内容如下:

后端使用 Flask

从 .env 中读取 Hugging Face Token,然后通过以下代码调用模型:

之后使用 JSON 将生成结果返回给前端:

于是就实现了:
前端输入提示词
↓
Flask 后端
↓
Hugging Face API
↓
Flux 模型生成图片
↓
Base64 图像数据
↓
返回前端并显示
为了方便直接输入提示词并查看生成结果,本次实验设计了一个简单的 Web 前端页面。用户输入提示词后点击按钮,JavaScript 使用 fetch() 向 Flask 后端发送 POST 请求:

前端页面:

运行代码显示:

访问输入提示词示例:

最初使用较简单的提示词:
A living room with a cup of coffee
第二版提示词在第一版的基础上增加环境和光照描述:
A cozy living room on a rainy evening,
a cup of coffee on the table,
warm lighting
最终使用的提示词为:
A cozy modern living room on a rainy evening,
warm lighting,
a cup of coffee on the table,
photorealistic,
highly detailed
最终生成图像能够较好地呈现雨天窗外环境、室内暖色灯光、沙发、桌面咖啡等内容,整体具有较强的真实照片效果。
通过本次实验,我对 Hugging Face 模型 API 的使用过程有了更加完整的认识。相比单纯在 Hugging Face 网页中输入提示词生成图片,将模型 API 集成到自己的程序中,需要进一步考虑身份认证、后端接口、数据传输以及前端交互等问题。本次实验最终完成了从 Hugging Face 模型选择、API Token 创建、模型调用,到前后端交互和最终图像展示的完整流程,加深了我对生成式人工智能 API 应用开发的理解。
2. GitHub 个人主页搭建
本次作业中,我创建了与 GitHub 用户名相同的 Shiyue999 仓库,并通过仓库中的 README 文件完善个人主页。
主页主要介绍了自己的学习方向、编程技能、项目经历以及未来学习计划。
通过这次操作,我进一步熟悉了 GitHub 仓库和 README 的基本使用,也了解了如何利用 Markdown 对个人主页内容进行整理和展示。






浙公网安备 33010602011771号