案例概述
🎯 教学目标
知识目标
- 掌握AI工具在软件工程全生命周期的应用
- 理解DevOps + AIOps的核心理念
- 学会智能体(Agent)的搭建与使用
- 建立AI辅助编程的正确方法论
能力目标
- 能够独立使用AI工具完成项目开发
- 具备AI输出内容的评审与优化能力
- 掌握CI/CD自动化流水线的搭建(可选)
- 培养团队协作与AI协同工作能力
📋 案例特点
零成本
所有工具均为免费服务,无需付费购买
可操作
每一步都有详细截图和操作说明
已验证
所有流程经过实际操作验证,确保可行
教师端 - AI赋能教学实施
课前准备:搭建教学专用智能体
使用扣子Coze平台搭建3个教学专用智能体
智能体1:软件工程实训顾问
图1:扣子Coze平台首页
📝 角色设定(Persona):
你是一位拥有15年软件工程经验的资深实训指导老师,熟悉高校软件工程实训教学。
你擅长指导学生完成需求分析、系统设计、编码实现、测试部署全流程。
你的回答要专业、耐心,给出具体可操作的建议,避免空泛理论。
🔗 学生访问链接:
智能体2:报告评审专家
📝 角色设定:
你是软件工程文档评审专家,严格按照GB/T 9385国家标准评审学生提交的文档。
请从以下维度评审:格式规范性、内容完整性、逻辑一致性、技术可行性。
每个文档至少提出3个具体问题,标注位置并给出改进建议。
使用场景:学生提交需求/设计文档后,上传给此智能体自动生成评审意见,减轻教师批改负担
🔗 教师访问链接:
智能体3:代码质量检查助手
📝 角色设定:
你是代码质量检查专家,检查学生提交的Java/Python/JavaScript代码。
检查维度:代码规范、安全漏洞、性能问题、注释完整性、单元测试覆盖率。
输出格式:问题位置 + 问题描述 + 修复建议 + 优化后代码示例。
🔗 访问链接:
代码质量检查助手智能体课中实施:AI辅助教学流程
10天实训周期的AI赋能教学安排
| 天数 | 阶段 | 教师AI赋能动作 | 学生产出 |
|---|---|---|---|
| 第1天 | 可行性分析 | 演示AI生成可行性分析报告框架 指导学生使用豆包/DeepSeek |
《可行性分析报告》 |
| 第2天 | 项目计划 | 演示AI生成WBS任务分解 ProcessOn甘特图制作指导 |
《项目开发计划书》 |
| 第3天 | 需求分析 | 使用"AI产品经理"智能体引导需求挖掘 PlantUML用例图生成教学 |
《需求规格说明书》+ 评审意见 |
| 第4-5天 | 系统设计 | AI生成UML类图/时序图教学 数据库设计AI辅助技巧 |
《概要/详细设计说明书》 |
| 第6-7天 | 编码实现 | Trae IDE/Cursor现场教学 AI辅助调试与Bug排查演示 |
可运行的系统代码 |
| 第8天 | 系统测试 | AI生成测试用例方法教学 边界值测试思维训练 |
《测试报告》 |
| 第9天 | CI/CD部署(可选,可在本地开发环境进行演示) | Jenkins + Docker流水线搭建演示 AIOps监控智能体配置 |
部署完成的系统 |
| 第10天 | 验收答辩 | AI辅助生成答辩PPT 智能体模拟答辩提问 |
项目验收 + 总结报告 |
课后评价:AI辅助考核评价体系
建立客观、公正的AI辅助评价机制
📊 AI工具使用评价维度
- 1 日志完整性:AI工具使用日志是否完整记录每次交互
- 2 人工修改率:AI生成内容的人工修改比例(建议≥30%)
- 3 理解深度:学生是否真正理解AI输出的内容
- 4 创新性:在AI基础上是否有团队原创贡献
⚖️ 成绩构成(AI赋能版)
学生端 - AI辅助项目开发实战
阶段一:AI辅助需求分析(第3天)
以"校园实验室设备管理系统"为例
步骤1:使用"AI产品经理"智能体挖掘需求
💬 对话示例:
👤 你说:
我们要做一个校园实验室设备管理系统,用户包括学生、老师、管理员。请帮我挖掘需求,提出5个澄清问题。
🤖 AI产品经理回答:
- 学生借用设备是否需要老师审批?审批流程是几级?
- 设备是否需要分类管理?是否支持设备二维码扫码借用?
- 是否需要设备维护保养记录和损坏赔偿功能?
- 是否需要统计报表功能?按部门/设备类型/使用率统计?
- 是否需要与学校统一身份认证系统对接?
步骤2:AI生成PlantUML用例图代码
📝 提示词模板:
请为校园实验室设备管理系统生成用例图的PlantUML代码,
参与者包括:学生、教师、管理员。
用例包括:设备查询、设备借用、设备归还、审批申请、
设备管理、用户管理、统计报表。
要求:使用标准PlantUML语法,添加注释。
将生成的代码粘贴到 PlantUML在线编辑器 即可生成图片
可使用的软件工程实训顾问
📝 访问链接:https://www.coze.cn/store/agent/7629174469491703823?bot_id=true
阶段二:AI辅助编码实现(第6-7天)(时间可前置一些)
使用Trae IDE进行AI辅助编程(可使用其他工具,这里只是示范)
图2:Trae IDE 操作界面
✅ Trae IDE 安装配置
- 1 访问官网 www.trae.ai 下载对应系统版本
- 2 安装完成后使用手机号注册登录(完全免费)
- 3 打开项目,按 Ctrl+K 呼出AI对话
💡 高效编程提示词技巧
代码生成:
"在DeviceController中生成分页查询设备列表的REST接口,使用MyBatis-Plus,返回Page对象,包含异常处理"
Bug修复:
"分析这段错误堆栈信息,找出NullPointerException的原因并给出修复方案 [粘贴错误日志]"
代码重构:
"重构这段代码,应用策略模式消除if-else,保持原有功能不变 [粘贴代码]"
⚠️ 重要提醒:AI编程三原则
- 理解优先:AI生成的每一行代码都要理解其逻辑,禁止复制粘贴后不管
- 人工审查:重点检查SQL注入、空指针、权限控制等安全漏洞
- 团队贡献:必须在AI基础上加入自己的思考和改进,体现原创价值
阶段三:CI/CD自动化部署(第9天)注意:可选项,加分项
搭建Gitee + Jenkins + Docker自动化流水线(有能力的团队,可实现CI/CD。亦可在本地开发环境部署。)
🏗️ CI/CD 流水线架构图
📌 步骤1:本地启动Jenkins(一条命令搞定)
docker run -d --name jenkins -p 8080:8080 -p 50000:50000 \
-v jenkins-data:/var/jenkins_home \
-v /var/run/docker.sock:/var/run/docker.sock \
jenkins/jenkins:lts-jdk11
浏览器访问 http://localhost:8080 进入Jenkins
📌 步骤2:项目根目录创建Jenkinsfile
pipeline {
agent any
stages {
stage('代码检出') { steps { git 'https://gitee.com/your-name/project.git' } }
stage('后端构建') { steps { dir('backend') { sh 'mvn clean package' } } }
stage('前端构建') { steps { dir('frontend') { sh 'npm install && npm run build' } } }
stage('构建镜像') { steps { sh 'docker build -t myapp:latest .' } }
stage('部署') { steps { sh 'docker run -d -p 8080:8080 myapp:latest' } }
}
}
📌 步骤3:配置Gitee Webhook触发自动构建
在Gitee仓库设置 → WebHooks → 添加Jenkins提供的回调地址,选择"Push事件"触发
🎉 完成效果:
此后,团队成员每次 git push 提交代码,都会自动触发:代码拉取 → 编译构建 → 测试 → Docker镜像构建 → 自动部署上线!真正体验企业级DevOps开发流程!
Vibe Coding高效提示词工程大全
💡 提示词工程核心原则
角色明确
指定AI扮演专家角色
任务具体
清晰描述要完成的任务
格式指定
明确输出格式要求
约束清晰
说明技术栈和限制条件
1 阶段一:技术选型与架构设计
你是资深架构师。我要做【校园实验室设备管理系统】,团队5人,实训2周。
请从以下维度给出技术选型建议:
1. 后端框架(Spring Boot vs Node.js vs Python)对比
2. 前端框架(Vue3 vs React vs 原生)对比
3. 数据库(MySQL vs PostgreSQL vs SQLite)对比
4. 考虑因素:学习成本、开发效率、部署难度
5. 给出最终推荐方案及理由
输出格式:表格对比 + 推荐结论
你是企业级架构设计师。为【Spring Boot + Vue3 + MySQL】技术栈的设备管理系统设计:
1. 分层架构图(Controller/Service/Dao/Entity)
2. 核心模块划分(用户模块/设备模块/借用模块/统计模块)
3. 接口设计规范(RESTful API命名、返回值统一格式)
4. 数据库表设计原则
5. 给出包结构目录树
要求:符合阿里巴巴Java开发规范,适合学生团队开发
为校园实验室设备管理系统设计数据库表:
1. 用户表(管理员、老师、学生)
2. 设备表(分类、状态、位置)
3. 借用记录表(申请、审批、归还流程)
4. 设备维护记录表
请输出:
- MySQL DDL建表语句(含索引、外键、注释)
- 字段说明(类型、长度、约束、含义)
- ER关系说明
- 索引优化建议
2 阶段二:编码实现(GitHub Copilot/Cursor/Claude Code/Trae IDE(国内且免费)等)
基于以下数据库表结构,生成符合Spring Boot规范的Java代码:
【粘贴表结构】
生成内容:
1. Entity实体类(使用JPA/MyBatis-Plus注解)
2. DTO(新增/修改请求参数)
3. VO(返回给前端的视图对象)
4. Converter(DTO与Entity互转工具类)
要求:
- 使用Lombok @Data @Builder
- 字段添加swagger注解@ApiModelProperty
- 添加参数校验注解@NotNull @NotBlank等
- 命名规范:XXXEntity, XXXDTO, XXXVO
为【设备借用】功能生成完整的RESTful Controller:
功能点:
1. 分页查询借用记录(支持按状态、用户、设备筛选)
2. 提交借用申请
3. 审批借用申请(通过/拒绝)
4. 确认归还设备
5. 删除借用记录
技术要求:
- 使用MyBatis-Plus的IService和Page
- 统一返回Result
- 参数校验@Valid
- 日志注解@Slf4j
- 异常处理
- RESTful风格:GET POST PUT DELETE
参考已有代码风格:【粘贴类似Controller代码片段】
实现设备借用的业务逻辑Service层:
业务规则:
1. 同一设备同一时间只能被一人借用
2. 借用时长不能超过30天
3. 学生借用需要老师审批,管理员可直接审批
4. 逾期未还自动标记为异常
5. 设备损坏需要记录赔偿
实现要求:
1. 接口 + 实现类分离
2. 事务注解@Transactional(注意rollbackFor)
3. 业务校验抛出自定义BusinessException
4. 关键操作记录日志
5. 使用LambdaQueryWrapper构建查询
需要考虑的边界条件:重复借用、设备不存在、权限校验、日期冲突
使用Vue3 + Element Plus生成设备管理列表页面:
功能:
1. 搜索表单(设备名称、分类、状态)
2. 表格展示(分页、排序)
3. 新增/编辑弹窗表单
4. 删除确认
5. 批量操作
技术要求:
- <script setup>语法糖
- Composition API
- TypeScript类型定义
- axios请求封装
- ElTable + ElPagination
- 表单校验rules
- 响应式布局
参考API接口:GET /api/device/page, POST /api/device, PUT /api/device, DELETE /api/device/{id}
3 阶段三:自动化测试生成
为以下Service方法生成JUnit 5单元测试用例:
【粘贴Service方法代码】
测试要求:
1. 使用Mockito Mock依赖的Mapper/其他Service
2. 覆盖正常流程、异常流程、边界值
3. given-when-then三段式
4. assertAll批量断言
5. 参数化测试@ParameterizedTest
6. 测试方法命名:test方法名_场景_预期结果
需要测试的场景:
- 参数合法 → 成功执行
- 参数为null → 抛出参数异常
- 业务条件不满足 → 抛出业务异常
- 数据库操作成功/失败
针对【设备借用申请接口 POST /api/borrow/apply】设计完整测试用例:
请求参数:
- deviceId: Long (设备ID,必填)
- startTime: LocalDateTime (开始时间)
- endTime: LocalDateTime (结束时间)
- reason: String (借用原因,最长200字)
请按以下分类设计测试用例:
1. ✅ 正常用例(3个)
2. ⚠️ 边界值用例(5个:日期边界、字符串长度边界)
3. ❌ 异常用例(8个:参数缺失、非法值、业务冲突)
4. 🔒 权限用例(2个:未登录、无权限角色)
输出格式:表格(用例ID | 测试场景 | 输入数据 | 预期结果)
为设备管理模块的RESTful API生成Postman Collection JSON:
接口列表:
1. GET /api/device/page?pageNum=1&pageSize=10&name=xxx 分页查询
2. GET /api/device/{id} 查询详情
3. POST /api/device 新增设备
4. PUT /api/device 修改设备
5. DELETE /api/device/{id} 删除设备
要求:
- 完整Postman Collection v2.1格式
- 包含环境变量:{{baseUrl}}
- 预置Headers:Content-Type: application/json
- 请求示例数据(真实可用)
- Tests脚本:自动校验返回code=200、data不为空
- 保存到本地后可直接导入Postman运行
4 阶段四:Debug调试与代码优化
分析以下Java异常堆栈,找出根本原因并给出修复方案:
【粘贴完整错误堆栈信息】
请按以下格式回答:
1. 🎯 问题根因:(用一句话总结)
2. 🔍 错误位置:(类名+方法名+行号)
3. 💡 触发场景:(什么操作导致此错误)
4. ✅ 修复方案:(具体的代码修改建议)
5. 📝 预防建议:(如何避免类似问题)
如果有多种可能的原因,请按概率排序
重构以下代码,消除if-else嵌套,提升可读性和可维护性:
【粘贴需要重构的代码片段】
优化目标:
1. 应用设计模式(策略模式/工厂模式/责任链)
2. 单一职责原则
3. 消除重复代码
4. 提高方法内聚性
5. 不改变原有业务逻辑
请输出:
1. 重构前代码问题分析
2. 重构思路说明
3. 完整的重构后代码
4. 优化效果对比(圈复杂度、行数、可读性)
安全审计以下代码,检查OWASP Top 10安全漏洞:
【粘贴待审计代码】
重点检查:
1. SQL注入风险
2. XSS跨站脚本
3. CSRF攻击
4. 权限绕过
5. 敏感信息泄露
6. 输入验证缺失
输出格式:
| 风险等级 | 漏洞类型 | 代码位置 | 问题描述 | 修复建议 |
|----------|----------|----------|----------|----------|
| 高危/中危/低危 | SQL注入 | 第45行 | 字符串拼接SQL | 使用预编译 |
5 阶段五:部署与Docker容器化
为Spring Boot + Vue3前后端分离项目生成Docker部署方案:
项目结构:
- backend/target/*.jar (Spring Boot打包结果)
- frontend/dist/ (Vue3打包结果)
请生成:
1. 后端Dockerfile(基于openjdk:11-jre-slim)
- 设置时区Asia/Shanghai
- 优化镜像分层(依赖先COPY)
- JVM参数优化:-Xms512m -Xmx512m
- 健康检查HEALTHCHECK
2. 前端Dockerfile(基于nginx:alpine)
- 配置nginx.conf(支持history路由)
- gzip压缩
- 反向代理/api到后端
3. docker-compose.yml(一键启动前后端+MySQL)
- 网络配置
- 数据卷持久化
- 环境变量配置
- 启动依赖顺序depends_on
生成声明式Jenkins Pipeline脚本,实现CI/CD自动化:
流水线阶段:
1. 代码检出(Git拉取)
2. 代码质量检查(可选)
3. 后端Maven构建(跳过测试?)
4. 前端npm构建(npm install && npm run build)
5. Docker镜像构建与打标签
6. 停止旧容器,启动新容器
7. 健康检查与部署通知
特性要求:
- 使用environment定义环境变量
- post动作:成功/失败时的通知
- 超时设置timeout
- 重试机制retry
- 并行构建(可选)
- 保留构建历史
输出:完整的Jenkinsfile代码,可直接使用
🚀 高级提示词使用技巧
✅ 高效技巧
- • 使用「参考已有代码风格:[粘贴片段]」保证一致性
- • 指定「输出格式:JSON/Markdown表格/代码块」
- • 要求「分步解释,不要直接给答案」用于学习
- • 追加「继续优化,考虑XX场景」迭代改进
❌ 避坑提醒
- • 避免模糊描述:"写个接口" → "写分页查询设备的REST接口"
- • 不要让AI猜:明确技术栈、框架、版本
- • 一次一个任务:不要同时要求生成+优化+测试
- • 永远审查:AI会"幻觉",务必验证代码正确性
免费工具清单(全部零成本)
| 工具名称 | 用途 | 官方地址 | 费用 |
|---|---|---|---|
| 🔮 扣子Coze | 搭建AI智能体、工作流 | www.coze.cn | 完全免费 |
| 💻 Trae IDE | AI原生编程IDE | www.trae.ai | 完全免费 |
| 🤖 豆包 | 通用AI对话、文档生成 | www.doubao.com | 完全免费 |
| 🧠 DeepSeek | 深度代码理解、技术咨询 | chat.deepseek.com | 完全免费 |
| 📊 ProcessOn | 流程图、UML图、甘特图 | www.processon.com | 免费版够用 |
| 📐 PlantUML | 文本生成UML图 | www.plantuml.com | 完全免费 |
| 🐙 Gitee | 代码托管、Git版本控制 | gitee.com | 完全免费 |
| 🏭 Jenkins | CI/CD自动化构建 | www.jenkins.io | 开源免费 |
| 🐳 Docker | 容器化部署 | www.docker.com | 个人版免费 |
常见问题 FAQ
Q1: 实验室没有外网,学生无法使用在线AI工具怎么办?
A: 建议学生使用个人笔记本电脑,开启手机热点上网。每个小组至少保证2台设备可联网,其余设备可使用本地IDE编写代码,需要AI时轮流使用联网设备。Trae IDE和Cursor都支持离线使用基础编辑功能,AI功能按需联网即可。
Q2: 如何防止学生过度依赖AI,丧失独立思考能力?
A: 建立三道防线:1)强制要求完整记录AI使用日志,包括每次的提示词和人工修改内容;2)答辩时随机抽取代码片段要求学生解释原理;3)成绩构成中"AI合理使用"占20%权重,重点考察人工修改率和理解深度。
Q3: AI生成的代码有Bug怎么办?
A: 这正是培养学生能力的好机会!要求学生:1)学会阅读和理解AI生成的代码;2)学会调试和定位问题;3)学会向AI准确描述Bug获取修复建议;4)最终必须人工修复并理解修复原理。Bug排查能力是程序员的核心能力。
Q4: Jenkins + Docker环境复杂,学生搭不起来怎么办?
A: 采用分层要求:1)基础要求:能在本地运行项目即可;2)进阶要求:小组中至少1人成功搭建流水线,其他成员观摩学习;3)挑战要求:全组都能独立搭建。教师课前提前准备好Docker命令一键启动脚本,降低入门门槛。
Q5: 如何评估学生使用AI的贡献度?
A: 从四个维度评估:1)提示词质量 - 能否精准描述需求;2)修改幅度 - AI输出后人工修改的比例;3)创新程度 - 在AI基础上的原创改进;4)理解深度 - 答辩时对技术细节的掌握程度。禁止"零修改直接使用"。