就因为少分析了这一段,年终奖直接砍半...
第35期:再也不说“不就是个Ctrl + Z吗”了
等交付完的测试结果让钱小美傻眼了。
对话框里有这些问题:
1.Ctrl+Z只支持一次操作,不能连续执行多个撤回。
2.如果什么都没有做就直接按下Ctrl + Z,则系统会崩溃。
3.撤回后无法重做。
4.当一次操作涉及到多个对象时,Ctrl + Z可能会非常缓慢。
5.如果选中某个控件,则Ctrl + Z将无效。
6.在多选多个控件并执行相关操作时使用Ctrl + Z进行撤销可能会出现不可预测的错误。
那么,如何分析一个Ctrl + Z这样的需求才能够确保质量?
首先Ctrl + Z在处理的是一个操作池,记录了每个操作的日志,包含了操作前后的两个状态信息。通过Ctrl + Z可以撤回相关的操作。那么一个Ctrl + Z的操作过程应该如下。
建立一个包含所有已完成操作日志的“操作池”,并以栈方式进行管理。每次执行新的命令都应该记录其状态,并将其添加到栈顶。当用户需要撤销上一个命令时,则从栈顶弹出最近记录的命令,并恢复它所改变过的状态信息。
通过以上步骤可以有效解决以上问题,并提供更好、更流畅、更可靠地用户体验。
操作4 |
操作3 |
操作2 |
操作1 |
为了能够重做,还需要建立重做池:
操作5 |
操作6 |
操作7 |
操作8 |
这样,需求描述如下:
1.功能性需求
操作 |
操作池 |
重做池 |
新操作 |
Push |
|
Ctrl + Z |
Pop |
Push |
Shift + Ctrl + Z |
Push |
Pop |
栈的尺寸:20
2.动作定义
POP
条数 |
处理 |
0 |
不出栈 |
n(0 |
出栈 |
20 |
出栈 |
Push
条数 |
处理 |
0 |
入栈 |
n(0 |
入栈 |
20 |
入栈,最下一条删掉 |
3.非功能性需求
1. 每次要处理的非常及时,1s之内处理完
2. 对内存占用不能过大
4.需求的质量标准
完整性(Completeness):确保需求描述中包含了所有必要的内容,并且这些内容都被清晰地定义。任何没有定义的部分都有可能导致产生bug。
正确性(Correctness):需要确保需求描述是正确的并且不会引起歧义。如果一个功能没有得到正确地定义,那么就很容易出现错误实现。
精确性(Accuracy):在文档中使用精确、明确和一致的术语来描述所需功能,避免使用模糊或歧义词汇以及让开发人员做出错误决策。
易读性(Readability):文档应该容易阅读,减少阅读理解所花费时间。包括文字语句易理解程度还有各种图表表达清晰程度。
一致性(Consistency):采用一致格式、语法和工具去描述相同事物,降低阅读成本并提高可维护性。
灵活性(Flexibility):在需求变更时能够轻松进行修改,并保持原始结构和逻辑顺畅;同时要考虑到需求变更对系统的影响。
复用性(Reusability):将反复出现和引用过多次数相同内容只需要修改一次即可,以提高代码的可维护性和复用性。
可测性(Testability):文档中描述的内容应当是可测试、可验证的,以确保功能实现符合需求规格。同时也需要明确测试标准和流程,并进行充分测试。
可实现性(Feasibility):需求文档中所描述的功能在技术上能够被实现,并且不会出现无法解决或难以解决的问题。同时还需要考虑到成本和时间等方面因素是否可以接受。
回复【电子书】领取需求分析实用技巧。数万名产品经理、BA汇聚地,深入需求分析与产品设计、产品运营,帮助你提升产品思维与洞察能力。原创知识体系:可视化需求分析。