103
社区成员
发帖
与我相关
我的任务
分享请确认目录可以 正确跳转!
请在博客中 加一个链接指向本次作业——软件工程 大模型评测作业
请务必包含以下大标题,标题含义相近即可,你可以个性化你自己的大标题,并添加下属的小标题:
很多同学有疑惑:
软件工程课是否就是枯燥的理论课?
或者是几个牛人拼命写代码,其他人抱大腿的课?
要不然就是学习一个程序语言,练习某个框架,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,同学们自己组织团队写一个软件发布,然后分析其中的得失,的确是学习软件工程的一个好方法。这样能根据切身体会来分析,很有价值,但也有可能“身在此山中,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别的项目的成败同样给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,背英语单词的手机App,买火车票的网站,互相联系用的微信微博,等等,都是软件,都很值得分析。
- 你为何成为该软件的用户?
- 软件背后的团队做对了什么,做错了什么?
- 软件工程质量如何?
- 如果你来做,会做得更好么?
通过各种案例分析,评测,思辨,总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。
分析什么样的软件也有讲究,这就要说到一个故事:
某国空军为了提高飞机在空战中的存活率,决定加固飞机,但是加固什么地方呢?他们研究空战后飞回基地的飞机,飞机各部分中弹的地方和密度,想以此得出结论。但是专家们忽略了一点,那些被击中要害的飞机,都没有能飞回基地,也没有能够参加这些调查。
幸存者偏差 (Survivorship bias)是一种常见的逻辑谬误,意思是只能看到经过某种筛选而产生的结果,而没有意识到筛选的过程,因此忽略了被筛选掉的关键信息。这东西的别名有很多,比如“沉默的数据”、“死人不会说话”等等。
因此,我们不光要分析那些经历战场的考验而最后 "活着出来" 而胜利的软件,还要分析那些在战场中被打败,或者伤痕累累,正在挣扎的软件,这样才能全面地了解软件工程的原理在好/坏软件上所起的作用。
有的同学会说:
“我只会看看界面,写不出来...”
那么,可以看看这个 **只评价界面的分析报告**,争取写出类似水平的报告来:
2023年软件评测优秀作业展示:
https://blog.csdn.net/m0_51697851/article/details/129953018 [作者 talada]
https://blog.csdn.net/qq_53904588/article/details/130022579 [作者 凰宸ovo]
https://blog.csdn.net/W_B_camel/article/details/129998914 [作者 琴和悠扬]
https://blog.csdn.net/anshun33/article/details/130015029 [作者 赖安顺]
注:请先仔细阅读本次作业的要求,根据要求完成自己的思考,在完成作业后可以选择参阅,看看自己是否有可以提升的地方。前几次作业有出现模仿去年博客的情况,一旦助教发现将进行扣分处理,请同学们 独立完成作业,严禁一切形式的模仿和抄袭。
随着人工智能和大语言模型(LLM)的发展,许多软件都具备了自然语言交互能力。
在软件工程实践中,如何设计自动化测试场景来客观评估模型性能,是非常重要的能力。
本次作业要求同学们:
💡 通过编写代码来自动化完成一个“购车决策”任务,并对不同大模型在该任务中的表现进行量化评测和对比分析。
本作业旨在让学生掌握以下能力:
注:至少测试两个大模型
(参考知识点:功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)
体验两个大模型的功能
(1)使用体验
(2)自动化测试
1.请通过编程方式创建一个模拟的购车决策环境
在该环境中,程序应能与两个大模型(例如:阿里百炼 Qwen、智谱 ChatGLM 等)进行多轮对话,完成从需求到决策的全过程:
2.提出购车意图
例如:“我最近打算买车,预算大约20万元左右,主要用于城市通勤,希望空间舒适、安全性高。”
3.大模型给出初步推荐
程序自动捕获模型推荐的几款车型,并保存为候选列表。
4.输入购车要点
程序向模型逐条提出更具体的购车需求(如动力、续航、油耗、安全、保值率、品牌口碑等),要求模型基于这些要点分析或更新推荐。
5.性能参数表格化对比
让模型输出几款候选车型的性能参数对比表(例如动力、续航、空间、安全配置等),程序自动提取表格内容并保存。
7.选出目标车型
程序要求模型结合前面信息,给出最终推荐,并说明理由。
8.自动化评测
程序对模型的回答进行自动或半自动评分,量化其表现差异。
(参考知识点:8.6节对工作的估计,和14.1节软件工程的质量)
从书上我们可以得知:
程序 = 算法 + 数据结构
软件 = 程序 + 软件工程(软件服务还有数据,内容的因素)
软件企业 = 软件 + 商业模式
请分析你所使用的大模型平台或测试系统分别体现在哪些层次?
程序层面:算法/数据结构体现?
软件工程层面:有哪些服务、文档、协作机制?
商业层面:它的商业模式或竞争优势在哪里?
(参考知识点:《构建之法》第8章功能的定位和优先级;第9章项目经理)
这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?请针对以下的问题进行思考
市场概况
本次作业满分100分:
【覆盖课程目标4】↓
| 这个作业属于哪个课程 | <班级的链接> |
|---|---|
| 这个作业要求在哪里 | <作业要求的链接> |
| 这个作业的目标 | <写上具体方面> |
| 其他参考文献 | ... |
班级群如果发布相关通知也是作业要求一部分,请及时查看群通知; 若需要在群填写相关信息,未能在deadline之前完成填写的,**扣实际得分的50%**; 如对作业存在疑问,请在deadline之前三天在班级群提出; 若助教对作业要求有修改,会在群内公告,请务必查看并按新的要求完善作业; 请及时回复老师或助教的点评并作出相应修改。即使提交了作业,也应该关注班级群中助教的公告!
若有对题意不清或者有不理解的地方,可在QQ群或微信群中直接提问