三、电子商务(EbookStore、EBank)项目的系统功能需求
1、获取用户需求
(1)什么是用户需求
它主要是说明系统所必须符合的条件或者应该具备的的功能,也即它用来描述系统应该和不应该做什么也即决定本系统应该有什么功能,从而开发者和用户可以创建一个初始化的商业联系。表达需求可以采用多种不同的方式,如你可以用商业的概念、该领域的术语、框图或者其它方法将功能性的需求写成文档。
需求分析活动其实本来就是一个和客户交流,正确引导客户能够将自己的实际需求用较为适当的技术语言进行表达(或者由相关技术人员帮助表达)以明确项目目的的过程。
(2)获得用户需求的目的
通过需求分析,其主要的目的是为了获得和描述系统中所有的要求,以及生成一个在该系统中定义关键域类的模型。从而在开发者与需求者之间建立相互理解和沟通。
(3)如何获取用户需求
- 了解客户方的所有用户类型以及潜在的类型。然后,根据他们的要求来确定系统的整体目标和系统的工作范围。
- 对用户进行访谈和调研。交流的方式可以是会议、电话、电子邮件、小组讨论、模拟演示等不同形式。需要注意的是,每一次交流一定要有记录,对于交流的结果还可以进行分类,便于后续的分析活动。
- 可以将需求细分为功能需求、非功能需求(如响应时间、平均无故障工作时间、自动恢复时间等性能和安全等方面的要求)、环境限制、设计约束等类型。
(4)应用要点
- 在这个阶段中,开发者一般不应该考虑具体的代码或程序细节。将那种以“如何实现”的表述方式转换为“实现什么”的方式,因为需求分析阶段关注的目标是“做什么”,而不是“怎么做”;
- 用例仅能捕获功能性需求,不适合捕获非功能性需求。
- 避免下面的情况出现
- 跨过需求,直接进入了设计甚至实现阶段。
- 因为在需求方面任何小的疏漏都可能导致进展不利乃致失败,因为太多的工作被浪费在错误的方向上。
- 用你的想法来理解客户的需求
设计不应该成为需求收集的一部分,将需求与设计分离是至关重要的。我们常常是提出问题,然后是解决问题。而不是有了一个解决方案之后,再找一个问题去适合它。问题的解决方案必须在问题已经被确定、形成文档、理解和达成共识之后产生。如果设计在需求之前提出,则系统用的就是自己的需求,并不能代表用户的利益。在设计之前完整地定义问题永远都是明智的。要做到这些的方法只有一个,就是站在用户的角度而不是设计者的角度看待系统。 - 从一开始你就没听清客户要的是什么
很多时候,用户并不知道自己要什么?需要我们去引导。当系统存在多个用户时,你会发现不同的用户在需求方面是矛盾的。
2、确定需求的流程
(1)需求工作流
- 找出功能性需求
- 找出非功能性需求
- 优先排序需求
- 跟踪用例和需求
(2)功能性需求的工作流
- 找出参与者和用例
- 优先排序用例
- 详述用例
- 组织用例模型
- 原型化用户界面
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/