软件工程作业一

表格

这个作业属于哪个课程 [H202601软件工程与软件工程实践] (https://edu.cnblogs.com/campus/fzu/2026-01SoftwareEngineeringandSoftwareEngineeringPractice)
这个作业要求在哪里 软件工程个人作业(第一次)
这个作业的目标 适应软件工程实践体系,体验大模型的实际应用流程,完成GitHub的注册与个人主页搭建,梳理个人技能、代码量和学习期望
学号 072401214

一. Hugging Face API的调用

1.API成功调用记录

本次调用 Hugging Face 推理路由(router.huggingface.co),转发至 fal.ai 托管的 FLUX 模型,并挂载 XLabs-AI/flux-RealismLora 写实增强 LoRA。
后端脚本 test_api.py 运行结果如下:

  • 请求端点:https://router.huggingface.co/fal-ai/fal-ai/flux-lora
  • HTTP 状态码:200(生成成功)
  • 图片地址:https://v3b.fal.media/files/b/0aa96bda/xw-jxabH69OwbWsmBV-W2.png
    HTTP 200 状态码代表推理请求完全成功,后端可正常解析返回的 JSON 结构,并提取 images[0].url 图片地址自动下载保存为本地 PNG 文件。

2. 前端交互页面与最终生成图像

本项目采用 Flask + urllib后端 + HTML/JS 前端 架构。启动 python app.py 后,浏览器打开 http://127.0.0.1:8765/,在输入框填写提示词、点击「生成图片」,后端完成「保存请求记录 → 调用推理接口 → 下载图片」,前端展示结果并提供图片与记录下载入口。
前端页面如下:

hugging face
生成图片如下:

c0118fac6c4f

3.提示词设计与修改思路

故宫雪景图像的生成,要从主体场景、环境细节、人物、光影色彩、镜头与风格媒介五个维度对模型进行约束,明确告诉模型输出是一张纪实摄影照片。
第一版:

Snowy Forbidden City in Beijing, realistic photo

效果有限,没有定义红墙黄瓦、白雪屋檐等故宫标志性视觉元素,没有光照、镜头参数,画面出现色彩失真问题。
第二版:

A realistic documentary photograph of the Forbidden City in Beijing on a snowy day. Heavy snow is falling all over the ancient palace. Vermilion red walls, golden glazed tiles, snow‑covered eaves and white marble stone terraces. One tourist in thick winter coat walks away in the distant background. Soft overcast winter daylight, cold solemn atmosphere, contrast between snow‑white, crimson and gilded colors, eye‑level view, candid real‑world ancient‑palace wintry scene.

强制输出纪实摄影,指定故宫标志性建筑元素,,定义阴天冬日漫射柔光并采用平视视角,使得图片符合预期。

4.API调用的体验与心得

步骤 1:注册账号,获取 Token。需要 fine-grained 类型的 Token,并勾选 inference.serverless.write 权限(普通 Read/Write Token 会返回 403 权限不足)。
步骤 2:将 Token 与代理配置写入 .env,加入 .gitignore 避免泄露。
步骤 3:后端 app.py 先保存请求记录,再发送推理请求,成功后下载图片。关键代码如下:

payload = {
        "prompt": prompt,
        "seed": record["seed"],
        "image_size": {"width": record["width"], "height": record["height"]},
        "num_inference_steps": record["num_inference_steps"],
        "guidance_scale": record["guidance_scale"],
        "num_images": 1,
        "loras": [{"path": LORA, "scale": 1}],
        "enable_safety_checker": True,
        "output_format": "png",
    }
    req = urllib.request.Request(
        ENDPOINT,
        data=json.dumps(payload).encode("utf-8"),
        headers={
            "Authorization": "Bearer " + HF_TOKEN,
            "Content-Type": "application/json",
        },
        method="POST",
    )

前端通过 fetch('/api/generate') 调用本地接口,X-Session-Key 为本地会话校验值。
步骤 4:启动服务,浏览器打开 http://127.0.0.1:8765/,填写提示词 → 点击生成。每次生成后端都会保存提示词、seed、尺寸、步数、HTTP 状态码和耗时。
心得:<1>Hugging Face 的推理 API 只需一个 Token + 一次 HTTP POST 即可调用大模型,适合快速原型验证。
<2>具体、可量化的描述如镜头、光线、材质比堆形容词更有效。
<3>Token 只在后端读取,前端通过本地接口交互,避免了把密钥暴露给浏览器。
<4>创建Token时Presets选inference比较好。

二、AI生成的《软件工程课程学习指南》

以下是由DeepSeek生成的一份简要软件工程课程学习指南:

📚 课程概述

软件工程是计算机/软件相关专业的核心必修课程。本课程从工程化的角度介绍软件开发所需各阶段的理论、方法和技术,旨在帮助学生掌握利用软件工程思想指导开发实践、解决实际问题、构建高质量软件系统的能力。

🎯 学习目标

  1. 知识层面:掌握软件工程的基本概念、原理与方法,了解软件生命周期及各阶段任务
  2. 能力层面:能够运用面向对象或结构化方法进行需求分析、系统设计、实现与测试
  3. 素养层面:培养问题分析、解决及团队协作能力,建立工程化思维

🗺️ 核心知识模块

第一阶段:基础概念(建议2-3周)

  • 软件与软件工程的概念、软件危机
  • 软件生命周期与软件过程
  • 各类过程模型:瀑布模型、原型模型、增量模型、螺旋模型等

第二阶段:传统开发方法(建议4-6周)

  • 可行性研究:任务、数据流图、数据字典、成本效益分析
  • 需求分析:需求获取、行为建模
  • 总体设计:设计原理、启发规则、面向数据流的设计
  • 详细设计:过程设计工具、程序复杂度度量
  • 实现与测试:单元测试、确认测试、白盒/黑盒测试技术

第三阶段:面向对象方法(建议3-4周)

  • 面向对象基本概念:抽象、封装、继承、多态
  • UML建模与面向对象分析(用例建模、类建模、动态建模)
  • 面向对象设计(架构设计、顺序图、详细设计)

第四阶段:项目管理与维护(建议2-3周)

  • 软件规模与工作量估算、进度计划、人员组织
  • 软件维护的定义与类型

🛠️ 实践建议

  1. 工具掌握:学习使用Git等版本控制工具、UML建模工具
  2. 项目驱动:跟随课程完成一个小型项目,体验从需求到交付的完整流程
  3. 代码规范:培养良好的编程实践习惯

📖 推荐资源

  • 国家高等教育智慧教育平台《软件工程》课程
  • 经典教材:《软件工程》自考指定教材等

指南合理性与帮助分析

合理之处

1. 知识体系覆盖全面

该指南涵盖了软件工程课程的核心内容——从软件危机、生命周期等基础概念,到结构化开发方法,再到面向对象方法,最后是项目管理和维护。这一结构符合国内多数高校《软件工程》教学大纲的编排逻辑。

2. 理论与实践并重

指南专门设置了“实践建议”板块,强调Git工具、项目驱动和代码规范。软件工程本质上是一门工程学科,必须在实践中体会各个阶段的价值。

3. 学习路径清晰

按“基础概念→传统方法→面向对象→项目管理”四个阶段组织内容,层次递进合理。先建立宏观认知,再深入具体技术,符合认知规律。

对我个人的帮助评估

有帮助的方面:

  • 指南提供了一个清晰的知识框架,让我对软件工程这门课有了整体把握,避免盲目学习
  • 四个阶段的划分可以帮助我制定学习计划,合理分配时间
  • 实践建议提醒我不能只读书不写代码

明白了,你希望把表格形式的技能梳理改为纯 Markdown 列表/标题结构,完全不用表格。以下是重新整理后的版本,内容不变,格式全部改用标题、加粗和项目符号,更符合纯文本 Markdown 风格,且在任意平台都能清晰展示。

三.自我评估

1.1 当前技能树与自我评估

Python 数据开发

  • 已经掌握的知识与实践
    使用 Python 完成数据清洗、统计分析、可视化;能够针对具体问题完成模型实现、结果评估与报告输出。
  • 仍需深入的部分
    大规模工程化部署、MLOps 相关实践,例如如何将训练好的模型打包为稳定的线上服务、如何进行模型版本管理与持续迭代。

数据库处理

  • 已经掌握的知识与实践
    会使用 MySQL 完成基础查询、数据筛选,参与简单业务数据处理与结果核对,能够配合项目需求完成常规的增删改查操作。

  • 仍需深入的部分
    索引底层原理(B+树结构)、数据库建模与范式设计、高并发场景下的事务隔离与数据可靠性校验。

编程基础

  • 已经掌握的知识与实践
    掌握 C/C++ 基础语法,熟悉数据结构相关算法,能够完成常规算法题目的编写与调试,对内存和指针有基本的理解与使用经验。

  • 仍需深入的部分
    复杂算法调优。

工程协作

  • 已经掌握的知识与实践
    使用 Git 完成版本管理,熟悉 Markdown 文档编写,能够完成项目文档的整理与思路梳理。

  • 仍需深入的部分
    完整项目需求拆解、多人协作开发中的分支管理与代码审查流程。

1.2 项目经历

  • 项目 A:英语口语桌面助手(2025)
    使用 Python 与 PyQt6 开发了一款英语口语练习应用。项目实现了两种核心练习模式:自由对话模式下,用户录音后通过语音识别接口转写为文本,调用大模型 API 进行语法纠错与回答生成,并通过语音合成朗读反馈;跟读练习模式下,导入电子书后随机抽取句子,用户跟读并由 AI 进行发音判断。在技术实现上,所有网络请求均通过 QThread 子线程执行,主界面无阻塞、交互流畅。

  • 项目 B:电工杯数学建模竞赛——养老站选址分配模型(2026)
    使用 Python 以及递推马尔科夫链算法、迭代线性规划求解算法等构建了养老站选址分配模型。通过模型调优最终获得三等奖。


1.3期待

我最期待学习的是软件工程中从需求到交付的完整流程,包括需求分析、系统设计、编码实现、测试验证和项目协作等各个环节。过去我更多是凭感觉写代码,虽然能把功能跑起来,但缺少系统的方法论,遇到需求变更或多人协作时就容易混乱。我希望通过这门课程,建立起一套规范的工程化思维,真正理解一个项目应该怎样有序地推进。

1.4截至目前的代码量

截至目前,我积累的代码总量估计在2000行左右。这些代码主要来自课程作业、课程设计以及平时自己写的项目和小工具。代码大部分是单文件或小型项目,规模较小,缺少完整的工程结构和配套文档。本学期课程结束后,我希望代码总量能增加2000行左右。新增的部分主要来自课程的大作业或小组项目,希望在项目中尽可能完整地覆盖从需求分析、设计、编码到测试的各个环节,写出更有结构更规范的代码。

四.GitHub个人主页搭建

https://github.com/wangenjia/wangenjia/blob/main/README.md
wechat_longscreenshot_2026-09-08_224853_542

五.markdown截图

1

posted @ 2026-09-09 22:16  fswtkb  阅读(11)  评论(0)    收藏  举报