软件工程作业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模型生成图像,结合前端实现交互,展示截图与提示词迭代过程。 |
| 学号 | 102402121 |
任务一:huggingface-API的调用
因为有先人之鉴,我一开始就使用英文来作为提示词。过程中发现主要问题是在获取API的过程中因网络问题常常卡顿。
我用python的flask来写后端,调用API。

点击查看代码
from flask import Flask,request,jsonify
from flask_cors import CORS
import requests,base64
app = Flask(__name__)
CORS(app)
HF_TOKEN = "保密"
API_URL = "https://api-inference.huggingface.co/models/XLabs-AI/flux-RealismLora"
headers = {"Authorization": f"Bearer {HF_TOKEN}"}
@app.route("/generate",methods=["POST"])
def generate_img():
json_data = request.get_json()
prompt_text = json_data["prompt"]
payload = {"inputs": prompt_text}
# 设置更长超时时间
response = requests.post(API_URL, headers=headers, json=payload, timeout=120)
image_bytes = response.content
img_base64 = base64.b64encode(image_bytes).decode("utf-8")
return jsonify({"image": img_base64})
if __name__ == "__main__":
app.run(host="127.0.0.1",port=5000,debug=True)
前端html文件打开,并输入提示词。

可以看见并没有出现很逆天的bug,但是还是可以看出是AI生成的
点击查看代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Flux-RealismLora图像生成</title>
</head>
<body>
<h2>Flux-RealismLora图像生成</h2>
<textarea id="promptInput" rows="4" cols="60" placeholder="输入写实提示词"></textarea>
<br><br>
<button id="genBtn">生成图像</button>
<h3>生成结果:</h3>
<img id="resultImage" style="max-width:800px;">
<script>
document.getElementById("genBtn").addEventListener("click", async function(){
const prompt = document.getElementById("promptInput").value;
try {
const resp = await fetch("http://127.0.0.1:5000/generate", {
method: "POST",
headers: {"Content-Type": "application/json"},
body: JSON.stringify({prompt: prompt})
});
const data = await resp.json();
document.getElementById("resultImage").src = "data:image/png;base64," + data.image;
} catch(e) {
alert("请求失败:" + e.message);
}
});
</script>
</body>
</html>
个人主页:[ https://github.com/Rong-hub1 ]

任务三、个人随笔
点击查看随笔内容
1.作为计算机专业学生我已经有了一定专业知识
学习了计算机专业的基础课程包括计算机网络,计算机操作系统,计算机组成原理等,有C语言、java、python基础。正在学习数据处理,机器学习,数据库等,从理论走向实践,加强薄弱的实践能力,完成更多团队项目。
2.代码量
目前我完成一道题目或作业用到百行代码,代码量千行吧,本学期希望能够将代码量提到万行
3.本学期课程的期待点
在本软件工程课中我期待详细学习工程化开发软件全步骤并体验团体开发的乐趣。借此加强个人能力。
4.学习指南
我选择deepseek来给我生成一份简要的软件工程课程学习指南,我认为其指南从宏观到微观囊括了学习内容、学习方法和学习思路,对我的学习在思路上有一定的帮助。
学习指南如下:
第一部分:核心知识体系(学什么)
建议围绕“生命周期”主线,重点掌握以下模块:
软件过程与生命周期
核心模型:瀑布模型(文档驱动)、敏捷模型(迭代驱动,重点理解Scrum)。
关键认知:没有最好的模型,只有最合适的。
需求工程
核心任务:搞清楚“做什么”,而非“怎么做”。
关键产出:SRS(软件需求规格说明书)。需掌握用例图(Use Case)和用户故事的编写。
软件设计
结构设计:体系结构(如MVC模式)、模块分解(高内聚、低耦合)。
细节设计:面向对象设计原则(SOLID) 及常见设计模式(工厂、策略、观察者等)。
软件质量与测试
核心观念:测试不是为了证明程序正确,而是为了发现错误。
测试分层:单元测试(白盒)→ 集成测试 → 系统测试(黑盒)。掌握等价类划分、边界值分析等用例设计方法。
项目管理基础
核心要素:范围、时间、成本、质量的平衡。
常用工具:甘特图(进度计划)、燃尽图(敏捷进度追踪)。
第二部分:学习策略与方法(怎么学)
1. 理论结合实践(项目驱动)
不要死记硬背过程名称。拿一个具体需求(如“在线订餐系统”),从头到尾在纸上或项目中走一遍完整生命周期,理解每一步的输入和输出。
2. 重视“UML(统一建模语言)”工具
UML是软件工程的通用语言。重点掌握:
用例图(表达需求)
类图(表达静态结构)
时序图(表达动态行为)
技巧:画图时,先关注核心逻辑,再完善细节。
3. 培养“权衡”思维
软件工程充满取舍(如:完美设计 vs 快速上线,详尽文档 vs 可运行代码)。思考问题时,请带上成本-收益分析的视角。
第三部分:常见误区提醒
误区1:软件工程等于写代码。
纠正:编码只是其中一个环节,前期分析设计和后期测试维护往往占项目总成本的60%以上。
误区2:敏捷开发就是不需要文档。
纠正:敏捷推崇“刚好够用”的文档,而非“无文档”。
误区3:测试是测试人员的事。
纠正:开发人员应首先做好单元测试,这是质量保障的第一道防线。
第四部分:备考与作业要点
简答题/论述题:多用对比(如瀑布vs敏捷)和场景分析(如在某场景下选何种模型)来作答,展现工程决策能力。
小组项目:沟通记录和版本控制(Git)的使用记录,往往比最终代码更能体现工程素养。
关键术语:熟记CMMI、CI/CD、TDD、Refactoring等英文缩写及其核心含义。
最后建议:保持好奇心,多问“为什么这个步骤必不可少?”。
附:后台博文编辑页面的截图如下


浙公网安备 33010602011771号