非功能需求怎么写( 二 )


系统的可靠性,可维护性和适应性是密不可分的 。当系统出现故障和用户出现错误的操作后是否支持恢复,当用户在使用过程中遇到错误的时候是否可以立即定位问题,但业务场景和逻辑发生变化的时候系统是否支持,当网络不稳定或使用中异常中断的情况下系统是否都有相应的容错措施,这些都是需要在非功能性需求中考虑到的问题 。
易用性也是我们在开发非功能性需求中必须要考虑到的问题,易用性同时还涉及到美工和UI界面,人机工程,交互式设计,心理学,用户行为模式等多方面的知识 。易用性的三原则就是易见,易学和易用或者叫为发现,易懂,效率 。易见就是各种功能操作不要藏得太深,用户很容易找到他们期望进行的各种操作;易学需要软件系统通过在线帮助,导航,向导等各种方式保证软件是可自学习的;易用的重点则在软件在熟练使用后应该可以更快的进行各项操作 。这三者相互间也存在冲突,需要平衡,而平衡的一个重点就是真正的做到以用户为中心进行设计,需要去细分场景和用户 。
对于非功能性需求的描述,在描述过程中必须要强调到人,业务场景,环境等各方面的内容 。强调的目的就是要说明非功能性需求不是无限度的,任何一项非功能性需求的实现往往会付出更大的研发人力成本和硬件网络成本 。比如我们在描述一个表单的模糊查询功能的时候,如果简单的描述为所有查询都要在多少秒内完成,那么这种需求将很难得到满足,以下是一些可选的描述方式 。
1.估计用户数为1万人,每天登录用户数为3000左右,网络的带宽为100M带宽 。
2.在非高峰时间根据编号和名称特定条件进行搜索,可以在3秒内得到搜索结果 。
3.当通过互联网接入系统的时候,期望在编号和名称搜索时最长查询时间<15秒 。
3. 需求开发中的非功能需求包括哪些 非功能性需求
4-1、系统需求(system requirement)用于描述包含多个子系统的产品(即系统)的顶级需求 。系统可以只包含软件系统,也可以既包含软件又包含硬件子系统 。人也可以是系统的一部分,因此某些系统功能可能要由人来承担 。
4-2、业务规则包括企业方针、政府条例、工业标准、会计准则和计算方法等 。业务规划本身并非软件需求,因为它们不属于任何特定软件系统的范围 。然而,业务规则常常会限制谁能够执行某些特定用例,或者规定系统为符合相关规则必须实现某些特定功能 。有时,功能中特定的质量属性(通过功能实现)也源于业务规则 。所以,对某些功能需求进行追溯时,会发现其来源正是一条特定的业务规则 。
4-3、功能需求记录在软件需求规格说明( SRS )中 。SRS 完整地描述了软件系统的预期特性 。SRS 我们一般把它当作文档,其实,SRS 还可以是包含需求信息的数据库或电子表格;或者是存储在商业需求管理工具中的信息;而对于小型项目,甚至可能是一叠索引卡片 。开发、测试、质量保证、项目管理和其他相关的项目功能都要用到 SRS。除了功能需求外,SRS 中还包含非功能需求,包括性能指标和对质量属性的描述 。
4-4、质量属性(quality attribute)对产品的功能描述作了补充,它从不同方面描述了产品的各种特性 。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要 。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实现的约束 。
4-5、约束(constraint)限制了开发人员设计和构建系统时的选择范围,如局限于软件工程学科 。注:分清楚那些是业务需求、哪些是用户需求、哪些是功能性需求和非功能性需求对软件的开发有着重大的指导意义,绝不可以以偏概全,错误地去揣摩用户的心思;对于开发者而言,所有软件功能的开发我们都应该一一征求用户的意见,对需求有了清晰的认识后再进行实质性的开发工作 。