今天我们在办公室讨论了所需文档中的 UI 元素。
问题是 UI 需求是功能性的还是非功能性的。
- “背景必须是蓝色的”
这是功能性需求还是非功能性需求?
这是一个非功能性需求,它说明了系统如何执行,而不是执行什么。
如果这个明显的区别太黑白了,也许太简单了,忽略它或提供一个更好的!而且,你为什么在乎?
编辑:由其他答案提示。需求是功能性的还是非功能性的对其需求无关紧要——如果这是一个需求,你最好在你的产品中满足它。
在查看 Wikipedia 给出的两个定义时,我都不会说。
非功能性需求是一种需求,它指定了可以用来判断系统运行的标准,而不是具体的行为
功能需求定义了软件系统或其组件的功能
背景颜色不是系统的特定功能或行为,也不能用来判断系统的运行情况。
我认为这些 UI 需求不需要在软件设计周期开始时指定。如果在开发过程中您发现描述了错误的蓝色类型怎么办?这些选择不是要求,而是需要在UI开发的时候进行梳理(最好有一个用户群来判断)。
我目前正在为客户的可访问性要求而苦苦挣扎。
基本需求是支持部分失明和失明的用户。前者通过仔细选择字体、颜色对比等。后者通过保持 HTML 非常简单,以便应用程序可以解析它并将其转换为语音或盲文。
所以我会说演示的细节是值得规范的。
我还要说屏幕布局,确切地显示什么数据确实是功能规范,并且通过扩展配色方案是其中的一部分。
像这样的定义因组织而异。不幸的是,只有普遍接受的做法,功能性和非功能性或“什么”和“如何”之间的区别通常比大多数人意识到的要主观得多。对于 UI 设计师来说,企业标准配色方案很可能是“什么”而不是“如何”。
我将其称为 UI 规范,或者更准确地说,称为 UI 规范要求。这不是一个标准术语,但有时您只需要更具体以避免混淆。您可能有一个非功能性要求说要遵循公司准则,然后将 UI 规范要求放在该准则中。
有时边界是模糊的。但在这种情况下,我会明确地说没有功能。功能性是核心业务需求,独立于技术、人体工程学,如果您更改 UI,则必须具备这些要求。颜色是关于 UI 的,除非它代表了一些对业务特别的东西。
UI 中的性能改进也是一项可以衡量的关键非功能性需求。缓存静态主数据,使用 ajax 调用部分提交(而不是加载整个页面),以及最初加载繁重的 javascript 或 css 文件肯定会提高 UI 层的性能。背景可能不被视为 NFR。