怎样定义任务书中的性能需求?
我们在进行GJB5000A评价的时候,对于需求描述存在的问题总结起来就是:功能需求描述基本都能说清楚,接口需求也能结合一些通信协议看得明白,但是性能需求有的就描述的不准确,甚至不会描述;而安全性、可靠性、保密性等关键需求描述最差。
今天这里暂且放下其它的需求,只谈谈性能需求。
有些开发人员反映,不知道性能需求怎么定义。其实定义性能需求并不难,只要掌握以下几个要点。
性能需求一般只在任务书中定义
按照GJB438B要求,性能需求仅在任务书中有明确的章节内容,在需求规格说明中并没有性能需求的章节。这是因为需求规格说明是需求开发完成之后的产物,而性能需求在需求开发的过程中应当被分配到相关的功能需求中。所以在需求规格说明中是没有性能需求章节的。有些组织为了需求追溯的方便(需求追溯仅按照文档中的章节进行追溯),而自己调整了需求规格说明的文档结构。这样实际上违背了需求开发对性能需求进行分配的要求,如果是实施GJB5000A三级的组织,这样做是不符合标准要求的。
性能需求的内涵在GJB438B中已经明确
有些开发人员并不清楚哪些需求是性能需求。他们常常会把可靠性要求,甚至设计约束要求写到性能需求中。其实,在GJB438B中对性能需求已经有了明确的描述:
性能应描述精度、实时性、时间、占用存储空间及余量等指标。
周转时间。周转时间是指一旦向计算机发出要求处理的请求时,从输入数据开始,经过处理直到输出结果为止的整个时间。
响应时间。响应时间即标准中所说的实时性。当用户向计算机发出处理请求,从输入开始到输出最终结果的一段时间内,需要多次的输入输出,而一次输入输出的时间就是响应时间。
吞吐量。吞吐量是指单位时间内计算机能够处理的数据量。
精度。精度是指在进行科学计算或工程计算时,运算的精确度要求。
余量。计算机运行软件时占用存储空间(内存、硬盘等)剩余的余量要求。
定义性能需求依据是用户要求和系统指标
性能需求应描述的内容在GJB438B中已经规定,但是对于一个项目来说,具体的性能需求定义要来源于用户的要求或期望,以及从更大的系统指标分解而来的。
这正是:
性能需求是特殊,几个指标说清楚
项目定义有来源,不记分解魂归处
参考书目:军用软件工程,作者:黄震宇等,出版社:电子工业出版社