非功能需求怎么写( 三 )


4. 什么是功能性需求和非功能性需求 (1) 在一般使用中,需求按照功能性(行为的)和非功能性(其它所有的行为)来分类 。
功能性需求是说有具体的完成内容的需求 。
例如:比如客户登录、邮箱网站的收发收发邮件、论坛网站的发帖留言等 。
非功能性需求是指软件产品为满足用户业务需求而必须具有且除功能需求以外的特性,包括系统的性能、可靠性、可维护性、可扩充性和对技术和对业务的适应性等 。
例如:性能要求:要求系统能满足100个人同时使用,页面反应时间不能超过6秒;
可靠性: 系统能7*24小时连续运行,年非计划宕机时间不能高于8小时 。要求能快速的部署,特别是在系统出现故障时,能够快速的切换到备用机 。
(2) 在统一过程(UP)中,需求按照“FURPS+”模型进行分类 。
功能性(Functional):特性、功能、安全性;
可用性(Usability):人性化因素、帮助、文档;
可靠性(Reliability):故障频率、可恢复性、可预测性;
性能(Performance):响应时间、吞吐量、准确性、有效性、资源利用率;
可支持性(Supportability):适应性、可维护性、国际化、可配置性 。
“FURPS+”中的“+”是指一些辅助性的和次要的因素,比如:
实现(Implementation):资源限制、语言和工具、硬件等;
接口(Interface);强加于外部系统接口之上的约束;
操作(Operation):对其操作设置的系统管理;
包装(Packaging)例如物理的包装盒;
授权(Legal):许可证或其他方式 。
使用“FURPS+”分类方案(或其他分类方案)作为需求范围的检查列表是有效的,可以避免遗漏系统某些重要方面 。
其中某些需求可以统称为质量属性(quality attribute)、质量需求(quality requirement)或系统的“某属性” 。这些需求包括:可用性、可靠性、性能和可支持性
5. 如何获取和分析非功能性需求 基于以上分析,本系统没有明显的质量属性冲突 。
第三步:确定这些质量属性的优先级 。这个优先级是根据各个质量属性对系统的影响程度来定性判断的 。
一般来讲,影响安全生产的要素要高优先级考虑,其次是影响企业经营的要素,最后考虑哪些支持性的要素 。因此,该案例的软件质量优先级排序如下:1.安全性2.持续可用性3.易用性4.可维护性5.可扩展性、可移植性、可重用性、可测试性 。
第四步:筛选关键的软件质量属性 。一个系统关键的软件质量属性和质量目标不可能太多,一般视系统的规模从2-5个不等 。
因此,该案例的关键软件质量属性可以选择前三个:1.安全性2.持续可用性3.易用性 。(二)获取和分析软件约束的过程如下: 第一步,获取约束 。
可以从以下4个方面获取软件约束 。(1)来自业务环境的约束,如:与其他系统集成、预算限制、上线时间紧等 (2)来自使用环境的约束,如:用户群特征(知识水平、语言能力、操作习惯等),系统运行环境(干扰、网络质量、移动性等) (3)来自构建(开发)环境的约束,如:开发人员的素质(技术水平、学习能力、)、团队分布等 (4)来自当前技术环境的约束,如:技术平台、中间件、编程语言等等 。
第二步,分析约束,发现功能性需求和软件质量属性 。案例:某公司欲开发一个全球农产品C2C电子商务项目,主要功能是提供一个便捷、快速的交易流程 。
投资5000万用于初期开发系统、运营和市场营销 。先期估算买卖会员一年内可以到达20万,以后计划每年确保50%的会员增长率 。