概要设计验证的主要内容
(1)设计系统在项目软件中所处的层次结构描述是否准确以及在本设计系统中的指导性作用。
重点验证以下两个方面:
一是验证《概要设计规格说明》中对所要设计的系统在整个项目软件(或在大系统中)中所处的地位、作用,及其与同级、上级系统之间的关系描述是否准确;二是《概要设计规格说明》是否可以作为《详细设计规格说明》撰写的基础性文档是否对《详细设计规格说明》具有指导性作用。
(2) 验证系统描述是否具有可追溯性
重点验证以下四个方面
一是验证《概要设计规格说明》的每一部分的设计是否都可以追溯到《软件需求说明书》、《接口设计说明书》或其他开发文档;二是验证非功能需求项(如:接口需求、操作需求、资源需求、可靠性需求、安全性需求等)是否已经分配到《概要设计规格说明》中。三是验证对《软件需求说明书》中不完整、易变动或潜在的需求项是否都进行了相应的设计分析,对各种设计限制是否做了全面的考虑;四是验证《概要设计说明书》中模块的规格及大小划分是否和《软件需求说明书》中的功能需求项以及约束性需求项之间保持一致。
(3)验证总体设计是否合理
重点验证以下五个方面:
一是检查《概要设计规格说明》的设计目标描述是否明确清晰;二是检查《概要设计规格说明》是否阐述了设计所依赖的运行环境,并核对是否和《软件需求规格说明》中规定的运行环境相一致;三是检查《概要设计规格说明》中的业务逻辑是否准确并且完备;四是《概要设计规格说明》中是否对不同的设计方案作了介绍并比较,是否有选择方案的结论,是否清楚阐述了方案选择的理由。五是检查《概要设计规格说明》是否合理地划分了模块并对各模块之间的关系作了清晰的阐述。六是检查《概要设计规格说明》中给出的系统设计结构和数据处理流程是否能满足软件需求规格说明中所要求的全部功能性需求。
(4)接口设计是否合理
重点验证以下几个方面:
一是验证《概要设计规格说明》中用户接口设计是否正确全面,是否有单独的用户界面设计文档;二是验证《概要设计规格说明》是否包含有硬件接口设计,硬件接口设计是否正确且全面;三是验证概要设计规格说明是否包含有软件接口设计,软件接口设计是否正确且全面;四是验证《概要设计规格说明》是否包含有通信接口设计,通信接口设计是否正确且全面;五是验证《概要设计规格说明》是否描述了各类接口的功能、各接口与其他接口或模块之间的关系已经接口的设计是否具有可测试性。
(5) 验证模块及模块内部分的设计是否合理
重点验证以下四个方面:
一是验证模块的划分是合适(如:代码规模是否适中?是否便于协同开发?)、模块与模块之间是否具有一定的独立性(如:模块与模块之间应做到低耦合,模块设计应做到高内聚)。二是验证每个模块的功能和接口定义是否正确(如:数据的输入输出、模块间的通信等等)。三是验证数据结构的定义(比如面向对象编程中的数据封装是否适当?继承的使用是否合适?各方法中的的参数定义及使用是否适当?各数据项的数据类型是否适当?数据项的初始值设定和值域范围是否有考虑?等等)是否正确。四是验证模块内的数据流和控制流的定义(如:串行操作和并行操作、同步和异步等)是否正确。
(6) 验证概要设计是否包含相关属性设计
重点验证以下几个方面:
一是验证《概要设计规格说明》中是否有可靠性设计,设计是否合理、有效;二是验证概要设计规格说明中是否有安全性设计,设计是否合理、有效;三是验证《概要设计规格说明》中是否有可维护性设计,设计是否合理、有效;四是验证《概要设计规格说明》中是否有可移植性设计,设计是否合理、有效。五是验证《概要设计规格说明中》是否有可测试性设计,设计是否合理、有效。六是验证是否对上述属性设计进行了性能分析,是否有论证过程的性能数据。
(7) 验证计算机资源的利用和余量设计是否合理
重点验证《概要设计规格说明》是否对余量设计做了相应考虑。包括:CPU的处理能力要求是否留有余量;内存的容量要求是否留有余量;外存储设备的容量要求是否留有余量;算法的效率是否可接受;安全关键软件部件发生故障时是否有快速恢复能力等等。
以上我们讨论了概要设计验证的一般性内容,各测试团队可以根据待测项目的规模进行裁减和细化。概要设计在执行中采取的形式以评审会形式为多,也可以采用非正式审查或内部专题会议的形式进行。由于概要设计的验证在很大程度上与软件需求规格说明的内容有关,建议聘请软件需求规格说明的起草人参与到概要设计的验证活动中来。