所谓非功能性需求,是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性。软件产品的非功能性需求包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等。下面对其中的某些指标加以说明。在这里可以看到非功能性需求涉及的范围很广,软件产品本身不是孤立存在的,还涉及到诸多外在环境的影响。非功能性需求必须考虑软件既要可用,又要易用。
对于非功能性需求描述的困难在于很难像功能性需求那样,可以通过结构化和量化的词语来描述清楚,在描述这类需求时候我们经常采用软件性能要好,查询要在多少时间内出结果,软件健壮性要好等较模糊的描述词语。这类描述词语都是脱离了软件的执行环境,人和相关的场景的描述,因此信息很难体现到软件架构设计和具体的实现中。我们在架构设计中关注的安全,系统开发框架,并发和性能,异常日志等不是凭空产生出来的,而是来源于我们对非功能性需求的分析。
一个软件系统必须完整,因此不仅仅包括了可执行的程序,还包括了在线帮助,数据和用户管理,日志异常查询,自动升级等相关功能特征。这些需求不仅仅是为了满足用户的需要,也是为了我们后续维护和监控系统的需要。
系统的可靠性,可维护性和适应性是密不可分的。当系统出现故障和用户出现错误的操作后是否支持恢复,当用户在使用过程中遇到错误的时候是否可以立即定位问题,但业务场景和逻辑发生变化的时候系统是否支持,当网络不稳定或使用中异常中断的情况下系统是否都有相应的容错措施,这些都是需要在非功能性需求中考虑到的问题。
易用性也是我们在开发非功能性需求中必须要考虑到的问题,易用性同时还涉及到美工和UI界面,人机工程,交互式设计,心理学,用户行为模式等多方面的知识。易用性的三原则就是易见,易学和易用或者叫为发现,易懂,效率。易见就是各种功能操作不要藏得太深,用户很容易找到他们期望进行的各种操作;易学需要软件系统通过在线帮助,导航,向导等各种方式保证软件是可自学习的;易用的重点则在软件在熟练使用后应该可以更快的进行各项操作。这三者相互间也存在冲突,需要平衡,而平衡的一个重点就是真正的做到以用户为中心进行设计,需要去细分场景和用户。
对于非功能性需求的描述,在描述过程中必须要强调到人,业务场景,环境等各方面的内容。强调的目的就是要说明非功能性需求不是无限度的,任何一项非功能性需求的实现往往会付出更大的研发人力成本和硬件网络成本。比如我们在描述一个表单的模糊查询功能的时候,如果简单的描述为所有查询都要在多少秒内完成,那么这种需求将很难得到满足,以下是一些可选的描述方式。
1.估计用户数为1万人,每天登录用户数为3000左右,网络的带宽为100M带宽。
2.在非高峰时间根据编号和名称特定条件进行搜索,可以在3秒内得到搜索结果。
3.当通过互联网接入系统的时候,期望在编号和名称搜索时最长查询时间<15秒。
有了这些场景和数据后,我们在进行架构设计的时候就可以有针对性的选择我们的开发框架和模式,数据库,软硬件环境配置已经复杂功能的具体实现方式等。同时这些需求还可以更好的指导我们对通过性能测试等工具对这些非功能性需求进行验证。
分享到:
相关推荐
最后,作者探讨了何为“正确的需求”,并将其分为两个方面:一致性与全面性。一致性意味着需求间的逻辑自洽,无矛盾冲突;全面性则要求覆盖所有相关场景和用户群体,避免遗漏关键功能。 第三章中,作者提出了需求...
- **灵活性**:敏捷能够迅速适应需求变更,这是其最显著的优势之一。 - **跨职能团队**:团队成员具备不同的技能,能够独立完成项目所需的所有任务。 - **用户参与**:在整个开发过程中,用户可以随时提供反馈,确保...
1. **功能性质**:商业房地产不同于住宅房地产,其主要目的是为了进行商业运营,提供产品或服务,而非居住。例如,办公楼用于企业办公,购物中心用于商品销售,酒店用于住宿和餐饮服务。 2. **产权类型**:商业房...
### 何为HDMI?步入数字化需要知晓的点滴 #### HDMI概述 HDMI(High Definition Multimedia Interface,高清晰多媒体接口)是一种专为音频和视频信号传输设计的接口技术,被视为下一代音视频主流接口。它能够在...
HDI板是用于电子设备中,以便于高速处理与传递电子信号的电路板,它在维持小型化设计的同时,还能够提高电子设备的性能和功能。为了达到这一目标,HDI板采用了高密度线路布局和微孔技术来满足日益增长的技术要求。 ...
如果能够围绕计算行为的需求、计算过程的设计、计算效果的评估来构建教学情境,那么,即便是一个看上去虚拟的情境,也是具有真实性的,如能将真实和现实区分开来,就不必非要回溯到产生出这个计算需求的具体事件并将...
网络存储技术的发展旨在满足日益增长的数据存储和访问需求,尤其是随着互联网和企业信息化的快速发展。在探讨主流的网络存储类型之前,我们先要理解RAID(Redundant Array of Independent Disks,独立磁盘冗余阵列)...
关系型数据库的特点包括二维表、数据集中控制、数据独立、数据共享、减少数据冗余、数据结构化、统一的数据保护功能等。 各编程语言的特点 各编程语言的特点包括 C 语言的运算符丰富、数据结构丰富、结构式语言、...
尺寸精度的选择需基于零件的功能要求和经济性考虑,配合类型(间隙、过渡、过盈)则取决于零件的工作状态和装配需求。 **形位公差标注与特点** 形位公差包括形状公差和位置公差,用于控制零件的几何特征偏离理想...
- **属性与方法的选择**:优先使用属性而非方法来表示只读数据,以增强代码的可读性。 - **构造函数设计**:提供至少一个默认构造函数,并考虑提供带有参数的构造函数以支持更复杂的初始化需求。 #### 异常设计准则...
本课件旨在提升员工的品质意识,理解品质的定义及其重要性,从而更好地满足顾客需求。\n\n在第一章“何为品质?”中,我们探讨了品质的多元定义。对于消费者而言,品质可能意味着性能优越、美观、操作便捷、服务周到...
然而,对于何为嵌入式系统,以及什么样的技术能够被称为嵌入式技术,这一问题至今仍存在一定的争议。本文将深入探讨嵌入式系统的定义、特点及其核心技术。 #### 什么是嵌入式系统? 嵌入式系统是指专门设计用于...
敏捷测试强调的是理念而非流程,其核心在于促进尽早开始测试、持续不断的及早交付、快速响应需求变化、让更多的人参与到测试过程中以及通过这些手段降低风险和提高产品质量。 #### 二、敏捷测试与传统测试的区别 -...
2. **何为情感化设计**:情感化设计是指在产品设计过程中,不仅考虑其功能性和实用性,还注重创造能够触动用户情感的设计元素。这包括三个层次:本能水平的设计(主要关注外观),行为水平的设计(关注使用过程中的...
这些路径包括寻找替代产业和他择产业间的空隙、跨越战略集团的思维模式、跨越买方链、跨越针对客户的功能性或情感性诉求、跨越互补性产品和服务项目以及跨越时间。 最后,报告通过“非顾客”战略的案例,详细解释了...
7. 语言的多元化与社会功能:提到的“地区性和社会性的英语变体”反映了语言如何随着地域和社群的不同而发展,展示了语言的多元性和适应性。 总结来说,这个阅读理解主题涉及到英语在全球的广泛使用,其作为世界...
在实际应用中,设计师会根据品牌调性、内容需求和目标受众来挑选字体,以确保设计既符合功能要求,又能引起情感共鸣。 此外,对于字体的版权问题也需要重视。许多商业字体需要购买授权才能在特定项目中使用,因此在...
软件体系结构模型通常包括组件(表示系统的基本功能单元)、连接器(描述组件间的交互)和约束(规定组件和连接器的行为)。目前,软件体系结构的研究和应用中还存在一些挑战,如模型的可视化和形式化描述不充分,...