110
社区成员
发帖
与我相关
我的任务
分享发布时间:2025-10-23 10:00:00
为了方便阅读以及助教评分,请大家在博客开头给出博文目录,作为内容的索引
第二部分 分析
🔺本次作业要求与邹欣老师发布的 软件工程-案例分析作业类似,希望同学们认真对待本次作业~
本次作业截止时间为:2024年10月27日 23:59
注:博客发布后需要审核,请同学们记得提前发布博客,避免影响作业提交。
很多同学有疑惑:
软件工程课是否就是枯燥的理论课?
或者是几个牛人拼命写代码,其他人抱大腿的课?
要不然就是学习一个程序语言,练习某个框架,搞一个职业培训的课?
都不对!软件工程有理论,有实践,更重要的是分析,思辨,总结。在课程中,同学们自己组织团队写一个软件发布,然后分析其中的得失,的确是学习软件工程的一个好方法。这样能根据切身体会来分析,很有价值,但也有可能“身在此山中,未能看清全局。而且,课程时间有限,我们也不能做很多具体的项目。因此,我们也需要从间接经验中学习,分析。别的项目的成败同样给我们很多启发!
我们生活中很多时候要和软件打交道,大家上课开小差时候玩的手机游戏,背英语单词的手机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 [作者 赖安顺]
注:请先仔细阅读本次作业的要求,根据要求完成自己的思考,在完成作业后可以选择参阅,看看自己是否有可以提升的地方。前几次作业有出现模仿去年博客的情况,一旦助教发现将进行扣分处理,请同学们 独立完成作业,严禁一切形式的模仿和抄袭。
1、本学期供分析的产品
随着人工智能和大语言模型(LLM)的发展,许多软件都具备了自然语言交互能力。
在软件工程实践中,如何设计自动化测试场景来客观评估模型性能,是非常重要的能力。
本次作业要求同学们:
💡 通过编写代码来自动化完成一个“购车决策”任务,并对不同大模型在该任务中的表现进行量化评测和对比分析。
本作业旨在让学生掌握以下能力:
注:至少测试两个大模型
2、博客具体要求
第一部分 调研,评测
(参考知识点:软件的 bug,功能评测,黑箱测试,第8章用户调研,12章软件的用户体验)
体验两个产品的功能
(1)使用体验
介绍和使用软件: 介绍软件基本功能;注册并使用这个软件的主要功能,并上传使用软件的照片
优缺点分析: 描述使用这个产品的过程,解决了用户的问题么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么?
用户对产品有什么改进意见?
采访另一个用户: 让TA使用10–30分钟被测产品的基本功能, TA能上手使用么? 有什么明显的困难, 软件的开发团队为何没有意识到这些初始用户会碰到的困难?(请将采访过程以图片和文字的方式记录下来,且要求采访对象为计算机、软件相关专业的学生)
记录请至少包含以下几点:
a. 采访对象的背景,为什么选择这个人采访?TA的需求是什么?
b. 描述采访对象实际使用的产品栏目
c. 采访对象使用软件的过程中会遇到的问题和亮点
d. 采访对象觉得从用户体验的角度来说需要改进的地方有哪些?
(2)自动化测试
1.请通过编程方式创建一个模拟的购车决策环境
在该环境中,程序应能与两个大模型(例如:阿里百炼 Qwen、智谱 ChatGLM 等)进行多轮对话,完成从需求到决策的全过程:
2.提出购车意图
例如:“我最近打算买车,预算大约20万元左右,主要用于城市通勤,希望空间舒适、安全性高。”
3.大模型给出初步推荐
程序自动捕获模型推荐的几款车型,并保存为候选列表。
4.输入购车要点
程序向模型逐条提出更具体的购车需求(如动力、续航、油耗、安全、保值率、品牌口碑等),要求模型基于这些要点分析或更新推荐。
5.性能参数表格化对比
让模型输出几款候选车型的性能参数对比表(例如动力、续航、空间、安全配置等),程序自动提取表格内容并保存。
7.选出目标车型
程序要求模型结合前面信息,给出最终推荐,并说明理由。
8.自动化评测
程序对模型的回答进行自动或半自动评分,量化其表现差异。
第二部分 分析
(参考知识点:8.6节对工作的估计,和14.1节软件工程的质量)
从书上我们可以得知:
程序 = 算法 + 数据结构
软件 = 程序 + 软件工程(软件服务还有数据,内容的因素)
软件企业 = 软件 + 商业模式
请分析你所使用的大模型平台或测试系统分别体现在哪些层次?
1.程序层面:算法/数据结构体现?
2.软件工程层面:有哪些服务、文档、协作机制?
3.商业层面:它的商业模式或竞争优势在哪里?
(参考知识点:《构建之法》第8章功能的定位和优先级;第9章项目经理)
这个软件/网站/服务有很多可以提高的部分,如果你是新上任的项目经理,如何提高从而在竞争中胜出?请针对以下的问题进行思考
4.市场概况
首先市场有多大?
其次直接的用户有多少?潜在的用户又有多少?
5.产品规划
你要在当前模型的基础上设计什么样的新功能?为何要做这个功能,而不是其他功能?为什么用户会用你的产品/功能?你的创新点在哪里?可以用NABCD分析。
本次作业满分100分:
第一部分(50‘):
【覆盖课程目标4】↓
第二部分(40‘):
【覆盖课程目标5】↓
第三部分(10‘):
【覆盖课程目标6】↓
1、为了方便其他学校的老师或者助教了解课程实况,请大家在作业开头添加作业的基本信息:(必做)
| 这个作业属于哪个课程 | <班级的链接> |
|---|---|
| 这个作业要求在哪里 | <作业要求的链接> |
| 这个作业的目标 | <写上具体方面> |
| 其他参考文献 | ... |
2、作业提交规则
在deadline前交,分数为实际得分 ;
若帖子发布后在审核(帖子显示404),可以在deadline 之前先于作业页面提交链接,再等待审核通过
不接受上传失败、网络原因等补交理由
缺交:在deadline 之后未补交视为博客缺交,分数为0分;
作业抄袭:当助教发现两篇博客文字/图片/代码过于相似时,判定两篇博客都为抄袭,分数都为-100%(注意是倒扣!)
3、注意事项
班级群如果发布相关通知也是作业要求一部分,请及时查看群通知;
若需要在群填写相关信息,未能在deadline之前完成填写的,扣实际得分的50%;
如对作业存在疑问,请在deadline之前三天在班级群提出; 若助教对作业要求有修改,会在群内公告,请务必查看并按新的要求完善作业;
请及时回复老师或助教的点评并作出相应修改。即使提交了作业,也应该关注班级群中助教的公告!
4、疑惑解疑
若有对题意不清或者有不理解的地方,可在QQ群或微信群中直接提问
1.l雷达图中各个指标是如何计算?请给出计算公式。2.用以自动化测试的数据来自哪里?3.每次测试的intent包含在main函数中?不太合理,请考虑提升一下。