2021秋软工实践第一次结对编程作业

这个作业属于哪个课程 2021秋软工实践
这个作业要求在哪里 2021秋软工实践第一次结对编程作业-CSDN社区
这个作业的目标 需求分析与原型设计
学号 031902218

结对信息

学号 任务
031902218 需求分析、原型设计、博客撰写
031902226 需求分析、原型设计、博客撰写

需求

基于 NABCD 模型进行需求分析:

N——need

基本需求

  • 需要有一款博饼应用能够把线上和线下的大家都组织起来一起博饼

  • 能够应对骰子装备不够齐全的情况

  • 博饼的结果能够自动判定

  • 需要保证博饼游戏过程和结果的公平性

  • 界面风格应景活泼大方,流程逻辑清晰,用户易懂易用

拓展需求

  • 需要能够自定义奖品类型和数量
  • 需要一个功能对博饼中每个人获得的奖品进行统计,并显示剩余奖品类型和数量
  • 尽可能保留线下博饼的形式

A——Approach

设计一个微信小程序来模拟博饼的过程:

  • 登录界面:

    • 点击登录按钮获取玩家微信信息
  • 组织者创建房间:

    • 点击主界面创建房间按钮创建房间

    • 通过链接或邀请码邀请玩家加入

    • 设置奖品类型和数量

  • 玩家加入房间:

    • 打开小程序点击主界面加入房间按钮输入邀请码加入房间
    • 通过点击分享链接加入房间
  • 玩家掷骰子:

    • 玩家可以通过点击按钮投掷出虚拟的骰子,自动判定投掷结果
    • 玩家可以在线下投掷真实的骰子,拍照后通过多目标识别智能判定骰子点数
  • 投掷结果与奖品领取:

    • 判定骰子点数后显示是否获奖

    • 若获奖,显示获奖级别及可领取的奖品

    • 玩家可左右滑动选择想要的奖品

    • 将玩家选择的奖品自动加入奖品清单供后续兑换

  • 排行榜与奖品清单:

    • 左滑显示排行榜,右滑显示奖品清单

    • 排行榜中根据玩家博饼后获得的最高等级进行排名

    • 奖品清单显示玩家已获得的奖品类型和数量

B——Benefit

  • 让因各种原因不能一起线下博饼的同学朋友们参与进来,体会博饼的快乐

  • 适用人群广泛,对所有有博饼需要的大众都适用

  • 保留了线下使用真实骰子进行博饼的形式,使用目标识别让线上线下博饼统一起来

  • 让线下博饼玩家免去了统计自己获得奖品的麻烦,使得兑奖更加简单

  • 使用排行榜增加博饼的趣味性

  • 基于微信端开发,免去注册的繁琐;不需要另外安装 App ,即开即用;微信使用者多,通用性广;几乎不需要学习成本

C——Competitors

优势

  • 相比于其他同类型的博饼应用,增加了组织者自定义奖品类型和数量的功能,使得组织者能够更加灵活地使用应用进行管理;增加了添加奖品和奖品清单的功能,能让使用者更好地投入到游戏中,减少人工统计的麻烦;增加了排行榜,进一步提升博饼游戏的趣味性
  • 使用拍照识别的方式保留了线下真实掷骰子的形式,增加博饼趣味性的同时,使得博饼应用更加灵活,适用范围比同类型应用更广泛
  • 使用微信小程序作为博饼应用的载体。对于像博饼这样的轻量应用,使用微信小程序可以让使用者免去注册的繁琐,无需另外安装 App,即开即用

劣势

  • 使用人数较少,一年一般只有一些节日有人使用
  • 推广难度较大
  • 借助算法需要强大的算力支持,成本较高

D——Delivery Data

  • QQ、微信等平台宣传
  • 在相关节日前后宣传

Use Case

UML用例图

PSP表格

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实践耗时(分钟)
Planning 计划 45 60
Estimate 估计这个任务需要多少时间 20 20
Development 开发
Analysis 需求分析(包括学习新技术) 300 300
Design Spec 生成设计文档 120 135
Design Review 设计复审 30 30
Coding Standard 代码规范
Design 具体设计 480 720
Coding 具体编码
Code Review 代码复审
Test 测试(自我测试,修改代
Reporting 报告 120 180
Test Report 测试报告
Size Measurement 计算工作量 15 15
Postmortem & Process Improvement Plan 事后总结, 并提出过程改进计划 60 90
合计 1190 1550

原型展示

我们采用了墨刀作为原型制作的工具,原型展示在线链接如下:

博霸

封面与核心页面如下:

  • 封面

    image

  • 核心页面

    image

    投掷:点击投掷按钮,投掷虚拟骰子,得出投掷结果

    拍照:点击拍照按钮,拍下线下真实投掷结果,使用目标检测的方法智能识别骰子点数

照片展示

234_gaitubao_839x629

总结

难点与解决方案

  • 难点一:原型设计历史经验为0,对墨刀的使用比较陌生

    解决方案:以目的为导向较为系统地学习了原型设计,尝试了墨刀的多种功能

  • 难点二:拍照识别骰子点数的可行性不确定

    解决方案:在提出需求后了解了一些相关算法,发现YOLOvx比较适用于实现此功能,于是在这段时间内尝试学习了YOLOv5,标注了60张图片进行训练,大致效果如下:

    image

    效果还算不错,但是由于我们使用的数据集较小且较为单一,存在过拟合的现象,后续我们将继续增加数据集的大小,提高模型的泛化能力

结对体验

YJS:前期确定需求速度较快,也想出了一些有趣点子,也综合了开发的角度,对于一需要的技术,试着实现一个小demo,吸收经验,方便后期开发确定方向。另外,这是我第一次使用ui设计软件,感觉到ui设计还是需要天赋的,尽管参考了优秀的作品,但是真正鼠标来到自己手中,却不知道如何下手,也许,在此刻我能体验到那些被吐槽老年审美的APP,他们的设计者和我一样无力hhh。对于下一步的代码实现阶段,我很期待能看到我们的想法付诸实践之后的样子。这次开发经历第一次能全流程体验从ui设计到前后端开发,也希望自己能做好,learning by doing!

QJY:通过这次结对作业,我学习到了如何进行需求分析以及原型设计的基本方法,感觉还是挺奇妙的,能够将自己的想法通过原型设计的方式直观地展现出来,虽然由于水平有限,看上去还是比较老年风哈哈,但是总算是迈出了第一步。这次结对体验总体上来说非常不错,由于两个人都非常有想法,所以说经常会产生一些思维的碰撞,在这个过程中可以产生一些更有创造性的点子,拓宽思考的角度,同时也可以发现一些自己想法上的不足,能够互相学习,共同进步。期待后续具体实现这个应用的过程,希望自己能够收获满满!

posted @ 2022-01-12 22:46  NoahQ  阅读(78)  评论(0编辑  收藏  举报