3.1 特征调查
在明确地阐述产品质量改进计划之前,我们应该与不同操作过程中的关键技术员进行交谈,以较好地理解他们所认同的产品质量特征的含义。调查结果见下图。图中的数据代表项目的个数。调查涉及到的基本特征包括:操作性、可用性、有效性和改进能力。
可操作性模型
进度分析
原型&仿真
|
根据可操作性模型对代码部分进行精确估计 |
通过直接测试关注可操作性 |
在用户满意情况调查问卷中针对可操作性设计特定的问题 |
3.2 技术
与产品质量相关的关键技术组成包括:
—如何详细说明质量特征?
—如何为质量特征进行设计?
—如何分析和测试质量特征?
我们研究的重点将放在下面四个质量特征上:操作性能、可用性、改进措施和有效性。
3.2.1 操作性能特征
操作性能特征规范特别适用于对时间、存储器、带宽和CPU资源进行约束。操作性能特征规范的时间约束包括最终期限、周期等潜在约束。存储器约束包括内存占用范围的约束。
下面给出一个按照SMAP2000标准[2]得到的操作性能特征规范的例子。
|
最小值 |
最大值 |
平均值 |
评价结果 (是/否) |
运行时内存占用量 |
|
16 MB |
|
是 |
CPU 使用率 |
|
50% |
|
|
屏幕刷新率 |
1 sec |
|
|
|
作为操作性能规范的一部分,设计约束条件最好采用一种相似的格式单独获得。它们如同输入一样是特定的并经过处理的。
设计约束条件——操作性能模型的输入因素
|
最小值 |
最大值 |
数据达到率 |
0 Mbps |
10 Mbps |
设备响应时间 |
20 msec |
1 sec |
我们建议在设计期间[6]对所有的需要鉴定的性能规范进行分析,以确保该规范能用于设计过程。此外,我们还建议通过直接对案例进行测试来验证所有的性能规范[10]。
3.2.2 改进能力特征
改进能力是系统的一种适应需求变化、操作环境变更和执行技术变化的能力。改进特征包括产品的不同方面:可操作性、可更改性、可测量性、可扩展性。下面给出一个按照SMAP2000标准[2]得到的改进特征规范的例子:
可操作性规范:
—SMAP2000工具应可以基于NM平台在硬件或操作系统上运行。
可更改性规范:
—SMAP2000工具应可以支持新消息的添加。
可扩展性规范:
—当不得不提高操作性能时,SMAP2000工具应可以在分布式环境下运行。
可测量性规范:
—SMAP2000工具在ATM接口上应能达到155Mb/s的速度。
改进规范会影响设计结果。对设计类型、模式和技术进行分类并记录下来,做到有备无患,将有助于提高系统的改进性能。
分析
—可以使用SAAM技术(软件体系分析方法)[4]对体系/设计进行改进规范分析,并在设计检查时对它进行讨论。
—可以利用类似于复杂循环理论中的工具(如Logiscope)对代码进行静态分析,得出代码的可维护性。
3.2.3 可用性特征
指定可用性特征包括两个方面:
—鉴别用户的不同类型以及他们的基本特征
—可用性目标
可用性目标的例子可以是:
该工具应能够在60msec内启动。一个命令不应该有多于5个的选择,且选择不应该是含义模糊的。
下表描述了在软件开发的不同阶段关于可用性的各种可能的分析。
体系/ 设计
测试(UT, IT, ST)
最终用户反馈
原型基于SUMI对原型的可用性分析 通过对案例的测试来证明可用性规范的量化部分 通过使用 SUMI调查表对产品进行可用性分析
不同阶段的可用性分析
产品是服务于用户界面的,因此可以在设计和分析阶段建立可用性原型,让用户来评价产品的可用性。直观的案例测试可以用来验证可用性规范的量化部分。
3.2.4 有效性特征
有效性特征在5NINES小组[11]中已经介绍过了。在MIEL中,我们计划开设大量与有效性相关的MU课程。
3.3 特征说明
从某种意义上说,特征说明是需求分析过程的一部分。它的目的就是鉴别设计目标。设计必须满足的目标的范围是很广的:不仅要求实现正确的功能,还包括时间周期、费用、性能、可靠性、可用性、风险措施、安全、易更改性、可扩展性、可操作性、可测量性以及可重用性。在实践中,交付一个能够使所有不同的风险承担者感到完全满意,能够实现他们所关注的每一个软件质量特征的产品是不可能的。相反,我们必须在不同的特征之间根据它们的相对重要性进行权衡,从而做出选择。
在规范特征的行为中,我们应该按照平衡设计的观点,结合所有特征的相对重要性,得到单个特征的期望目标。可能会因为特征太多而不能把上面所列的每一个特征都加以考虑,所以我们建议在制定真正的特征规范之前,首先确定哪些特征是值得详细说明的。
在一个完整的特征规范化过程中,通常包括七个步骤。我们已经利用一些方法制订了一个用于特征规范的提问单[1]。下表解释了不同的提问单的目的。
表 2 提问单
提问单
|
得到什么? |
项目提问单
|
关于项目的一般性信息及其大致框架。 它的目的是在小组内部形成对项目的共识。该提问单通常只有2页。 |
最终用户提问单 |
该提问单从最终用户的角度获得产品特征的有关信息。该提问单在可用性、可靠性、有效性、操作性等方面向最终用户提出问题。与这些特征相关的关键概念会体现在一张图表里,这些概念通过接下来的步骤可以发展为一个详细的规范。该提问单最终形成系统使用说明书。 |
商业提问单 |
该提问单从商业前景的角度获得特征信息。该提问单在时间周期、费用、质量、可重用性等方面提出问题。与这些特征相关的关键概念会体现在一张图表里,并在项目计划中得到反应。 |
改进提问单 |
该提问单在系统的改进方面提出问题,比如易操作性、可扩展性、易更改性等。该提问单尽可能地符合生产线概念。
|
发展提问单 |
该提问单在发展特征上提出问题,比如可测试性、可调试性、可跟踪性等等。 |
3.4 特征分析
3.4.1 改进性能分析
SAAM(软件体系结构分析方法)
SAAM是由SEI,CMU开发的。它可以被用来分析例如易更改性这样的定性的特征。到目前为止,SAAM已经拥有成功地应用于工业领域的大量案例。
SAAM通过想定或指定一系列包括使用/修改系统的步骤,对系统体系结构进行演练,并由此评估该体系结构相对于使用/修改行为的适宜性。想定是对购买者与系统之间专门的交互作用的一段描述。
在SCS-NM项目中, 可以用SAAM方法来指导如何改进体系结构的易更改性。它还可以被用来评估体系/设计的定性的特征,例如可更改性、可操作性、可扩展性等等。
SAAM还可以做出进一步的指导并将成为高级设计培训课程的一部分。
3.4.2 可用性分析
SUMI(软件可用性方法集成)
这是一个基于提问单的可用性评价方法。它重视用户的理解。该方法分别对效率、影响、有用性、控制和易掌握性进行评分,同时给出一个综合得分。这些分数都是在调查的基础上通过科学的分析得到的。
效率得分取决于用户对软件的感觉,即软件是否有助于他们采用一种有效的方式来更快的完成工作任务。影响得分反应了用户使用工具后的心理状态,例如他们是否产生满意感或者失落感。有用性得分体现了用户这样一种感觉,即用户是否能通过一种有用的途径与软件进行交流,从而有助于处理操作过程中出现的问题(错误、警告等等)。控制得分体现了用户在是否能够有效地使用软件方面的感觉。易掌握性得分反应了用户在如下方面的感觉,即该软件是否能够通过帮助手册比较容易的掌握并开始使用。在MIEL中对该方法进行了具体的指导[12]。
3.4.3 技术性能分析
在设计的基础上,使用类似于在项目规模估计中使用的广义Delphi法,可以对内存占用率做出估计。利用执行曲线图[8]可以得到完成不同任务和部件的估计时间。当项目包括很多具有严格的最终期限约束的定期任务时,可以使用单调比率分析技术进行进度控制分析。进度控制模型考虑了由于对共享资源的争夺而引起的等待时间,因而能够对服务时间进行准确地估计。同样,我们可以建立队列模型用于估计一个已到达指令的完全响应时间及其单独的计算或服务时间。
在MIEL中,系统工程组主要基于体系结构和设计关注技术性能分析。
|