- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
用户登录或下订单都是一个用例,这些用例包括以下外围需求。这些外围需求包括:前置条件、后置结果和最小保证。这三类需求较为固定,在所有的用例中都大同小异。也就是说,我们在设计列表页,详情页、登录注册页、下订单和合同审核等用例时,所考虑的外围需求都是相似的。
前置条件是用例执行的前提,常见的前置条件有是否登录和网络情况。
是否登录是指在浏览页面时或进行某操作时,是否需要进行登录。
ATM 机取款的用例中,卡验证就是执行取款用例的前提条件。
对有的用例来说,是否登录是不言自明的。
比如,用户浏览首页、搜索、查看商品详情,自然不必登录。因此,产品经理也不需要强调。
但是,有些用例就要明确是否需要登录,因为不同业务有不同的方案。
比如, 对于用户将商品加入购物车的操作,系统可要求登录,也可要求不登录。要求登录可简化开发,不要求登录可以提升用户体验。
再如,在一个电商平台中,当用户下单支付时,系统就要要求登录。但在保险平台中,业务人员可以给用户发短信,用户单击链接可完成订单支付,这并不需要登录。
在以上案例中,登录和不登录都有道理可讲,因此产品经理需要明确其逻辑。
如果遇到网络问题,该页面就无法显示,这时系统就要提示网络有问题,并告知用户如何处理。网络问题很固定,产品经理只需对页面设计提示信息即可。
后置结果描述了系统在用例完成后要做的事情,包括完成后要跳转的页面、创建的数据和进行的操作。
比如,在订单支付完毕后,产品经理就要明确这三类内容。
再如,在用户登录的案例中,产品经理也要明确这三类内容。
在大多数情况下,产品经理要明确调转的页面,而对于创建的数据和进行的操作,则不需要考虑太多。产品经理即使不写,研发人员也能做好。
最小保证定义了即使用例未完成或发生意外,系统也要做的事。最小保证是一种特殊的后置结果,强调了在非正常情况下出现的结果。常见的最小保证是保留信息和记录日志。
用户在执行用例过程中,会不断输入信息,这些信息有时需要保留下来。
保留的信息在下次用户再执行该用例的时候显示,从而方便用户操作。
比如,用户因为意外关闭了一篇在线编辑的文章,系统就会保存已经编辑的内容。通常,只有当要保留信息时,产品经理才要在需求文档中写出,否则系统默认不保留的。
再如,在用户注册的过程中,用户在输入手机号并单击“获取验证码”后关闭了界面,这也是一种意外,通常该手机号不必保留。但有的时候,该手机号对销售人员来说是有用的,这时系统就要保留该手机号,并可考虑在用户下次注册的时候,还显示该手机号。
日志记录了用户的操作或系统执行的信息。记录日志的目的有两个。首先,便于系统进行逻辑判断。比如,在用户登录的时候,系统就要记录正常和异常的登录信息,便于在用户下次登录的时候,系统依据错误次数来评估是否要开启安全验证。其次,记录日志,也便于研发人员发现软件问题,从而修改代码。
您能否提供有关网站社交网络(例如 Facebook)类型(功能性、非功能性和用户要求)要求的示例? 提前谢谢 最佳答案 以下是 Facebook 应具备的要求的一些示例。然而,值得一提的是:对于每种类
我需要在另一个 Java 项目的 liferay 模块项目中使用一些类。我正在使用 gradle,当我部署应用程序时,即使 gradle 编译了我的 jar 文件,我也会收到 Unresolved 需
我最近发现了类似于button.setText(“Hello World”);的代码行如果您按如下方式分配按钮,则 onCreate() 方法中将抛出 nullPointerException: B
我有一些基于成本的供应链管理代码,其中供应尝试满足需求,但这仅在供应大于需求时才有效。有什么方法可以优化它以两种方式工作(即当 supply > demand 和 supply = model.dem
好吧,我快想多了。有没有一种方法可以组合接口(interface)和属性,使实现类中的特性属性满足接口(interface)契约? 在我的应用程序中,我想显示一个事件列表,它是系统中事件的集合,例如新
我想创建一个模型,在每个步骤中预测每个产品在多周内的 future 需求(预测每个产品明年的每周需求) 我有一些小尺寸(大约 100-200 条记录)的 csv。 这里有关 CSV 列的信息:- 第一
我有一个包含我所有依赖项的 requirements.txt 文件,但它没有被正确处理: pip install -r requirements.txt 后,我得到以下 pip freeze: arg
我对 Java EE 应用程序的性能测量(CPU 和磁盘 I/O 需求)很感兴趣。 对于CPU 我已经想出了如何测量每个方法调用的CPU 需求。通过在每个方法的开始和结束时调用 java.lang.m
如何获取从 yaml 文件创建的管道的需求? yaml 文件包含需求: ... jobs: - job: my_job displayName: My Job pool: name:
我的目标: 构建一个 AngularJS 服务 (MapService),它初始化 (MapService.initMap()) 第 3 方控件 (Esri ArcGIS Map) 并返回对我的 ma
我在我的一个项目中使用了 redis,并且有一个带有 redis = Redis.new 的初始化器并使用了 redis gem。问题是,如果 Redis 没有运行,我将无法执行简单的数据库迁移之类的
如果我们有三个模块名称 A、B 和 C,那么模块 A 需要 B 和 B 需要 C:这个调用会产生什么效果? var A = proxyquire('A', {'C': mockedModule}) 模
我正在为 Liferay 7 开发一些功能。我知道仍处于 beta 版本,但我在 OSGi 包依赖项方面遇到了一些麻烦。当我尝试部署服务项目时,部署时发生错误 Unresolved requireme
我有一个 list 文件 partials.js,其中包含: //= require_tree ./partials 然后 ./partials/ 中的每个咖啡文件都包含以下内容: $ -> #
在 brew 中有没有一种方法或特殊命令可以将安装的包卡住到 requirements.txt 文件中,就像在 python 中使用 pip 一样?然后从该文件快速重新安装它们? 最佳答案 使用Hom
我正在尝试在 g1 GKE 实例(g1 实例有 1 个 vCPU,或 1000 毫核)中运行一个小型应用程序,并且在调度 pod 时遇到 CPU 请求限制问题。有 4 个 pod,每个都是应用程序的不
我们计划为我们的 C++ 代码建立柯南存储库。我们只想向开发人员公开依赖项列表 (lib/version@user/channel),而不是我们放在 conanfile.py 中的逻辑检查。这个包装器
我正在尝试研究 Varnish 。 我的问题是。我确实有一个主要请求/响应,我想使用 Varnish 缓存它。 html结构内部有ESI标签。我想要很多。一个标签具有较长的 ttl,其他标签则具有 t
我有一个在运行时或编译/链接时连接接口(interface)的问题或最佳方法。对于我的嵌入式项目,设备驱动程序和 I/O 具有需要绑定(bind)(即粘合)到其相应接口(interface)依赖项的接
我有一个我创建的协议(protocol)(在 Swift 4.2 中),它的要求之一是一个与协议(protocol)本身类型相同的属性。 例如,我有一个这样定义的协议(protocol): proto
我是一名优秀的程序员,十分优秀!