8.6软件评审要素

8.6.1 软件任务书评审检查要素

软件任务书评审检查要素如表8-14所示。

表8-14 软件任务书评审检查要素

序号

章节

内容

1

资源和进度

软件项目组关键人员参加吗?开发进度要求可行吗

2

技术内容

²  软件任务书文档内容是否完整和正确?编制符合要求吗?

²  软件项目的功能描述正确吗?

²  软件项目的功能分配、设计约束、可靠性、安全性、可维护性、质量保证要求合理吗?

²  开发环境要求合理吗

3

项目费用

开发经费的初步计划适当吗

8.6.2 软件需求分析评审检查要素

软件需求分析评审检查要素如表8-15所示。

表8-15 软件需求分析评审检查要素

序号

章节

内容

1

资源和进度

²  项目组主要成员是否参加产品需求评审,确保与需求提供者达成共识?

²  承担需求分析的人员安排合理吗?

²  软件需求分析按进度完成了吗?

²  配置管理得到了适当地实施吗

2

需求内容

²  软件需求规格说明书文档内容是否完整和正确?编制符合要求吗?

²  软件需求说明书、跟踪矩阵是否经过评审?

²  产品需求到软件需求的跟踪关系是否正确和完整?

²  需求规格说明与系统要求一致吗?需求规格说明描述清楚且无二义吗?

²  软件的功能描述完整且正确吗?性能指标定得合理吗?接口描述、数据描述、开发环境、运行环境、可靠性指标符合要求吗?

²  尽可能地列出了所有的不期望事件及其响应吗?

²  是否存在计划等其他工作产品与需求变更不一致的情况?如果存在,项目经理是否在周报中对此不一致进行分析,并制定纠正预防措施

3

需求变更

²  需求变更是否获得合法批准(影响分析、CCB决策)?

²  需求变更时,项目组关键人员是否对变更的影响进行评估?

²  当需求变更发生时,是否对受影响的配置项(项目计划、需求文档、项目计划等)做出必要的修订?

²  当需求变更发生时,受变更影响的文档是否重新基线

8.6.3 软件概要设计评审要素

软件概要设计评审要素如表8-16所示。

表8-16 软件概要设计评审要素

序号

章节

内容

1

资源和进度

²  承担概要设计的人员安排合理吗?

²  概要设计按进度完成了吗?

²  配置管理得到了适当地实施了吗

2

依从性

²  概要设计说明书文档内容是否完整和正确?编制符合要求吗?

²  该文档是否遵循了该项目已文档化的标准?

²  是否采用了所要求的方法和工具来进行设计

3

功能性

²  概要设计是否覆盖需求,与需求规格说明相一致吗?是否各部分的设计都能追溯到需求说明书的需求?

²  是否明确设计任务及约束因素?所划分的软件层次结构合适吗?在软件的各层次中,各模块独立吗?数据流的描述正确且完整吗?

²  业务场景是否充分?模块分解、模块划分是否合理?功能处理是否合理?集成顺序是否合理?

²  如果项目中使用独立的可重用模块或者开发框架,需要描述在项目中使用它们中的哪部分功能,并且说明为何采用?是否对系统所需的关键技术做了说明?是否进行了设计?是否对系统的开发运行环境进行了说明?是否所有的设计决策都能追溯到原来确定的权衡因素?所继承设计的已知风险是否已确定和分析?是否对数据格式兼容性进行分析?考虑到以后新增较小需求的可能性,要考虑保留一定的扩展余地。业务流程在对用户数据进行操作时,是否考虑业务数据的唯一性、安全性、数据操作的合理性?是否所有的假设、约束、策略和依赖都被记录在文档了?是否对软件概要设计进行了同行评审

4

完整性

²  是否以前的TBD(待确定条目)都已经解决?

²  是否设计已可支持本文档中遗留的TBD有可能带来的变更?

²  是否所有的TBD的影响都已经被评估?

²  可能不可行的设计部分已不存在

5

一致性

²  数据元素、流程和对象的命名和使用在整套系统和外部接口之间的是否一致?

²  设计是否反映了实际的操作环境(硬件、软件、支持软件)?

²  是否存在与需求矛盾的现象

6

可行性

²  从进度、预算和技术角度上看该方案是否可行?

²  是否存在错误的、缺少的或不完整的逻辑

7

数据使用

²  所有符合数据元素、参数及对象的概念是否都已经标准化

²  是否还有任何需要的但还没有定义的数据结构,反之亦然?

²  是否已经描述最低级别数据元素?是否已经详细说明取值范围

8

接口

²  外部接口是否被正确描述?

²  功能或业务之间的接口是否被准确描述?

²  是否所有功能的输入和输出都被正确定义?

²  是否所设计的框架,包括数据流、控制流和接口,都清楚地表达了?

²  是否准确描述了并发任务直接的任务之间的创建、同步、互斥、销毁等关系?

²  是否用户界面都被清晰和准确地描述?

²  在与其他平台的交互协议中,业务流程中是否考虑对外来平台数据的合理性、合法性进行检查,有无保护措施

9

可维护性

²  该设计是否是模块化的?

²  这些模块是否具有高内聚和低耦合度?

²  是否已经对继承设计、代码或先前选择工具的使用进行了详细说明?

²  是否提供操作帮助功能

10

可靠性

²  软件可靠性指标的分解、可靠性和安全性设计符合软件需求吗?软件可靠性和安全性设计准则、指南得到了充分的实施吗?

²  是否已考虑非正常情况?是否所有的错误情况都被完整和准确地说明?该设计是否满足该系统进行集成时所遵守的约定?

²  该设计能够提供错误检测和恢复(例如输入输出检查)?对一些关键性操作,是否有提醒确认机制,避免误操作?关键性操作包括手工删除话单、计费数据配置等。

²  对一些关键性操作,是否有一定的恢复机制?关键性操作主要指手工删除话单、计费数据配置等,可让用户恢复,但要考虑到可恢复机制要占用较多的存储空间和较复杂的处理,因此对于可恢复时间要有一定的限制。

²  对一些关键性操作,是否有操作日志进行记录,包括操作人、操作时间、操作数据、具体操作等?

²  数据的处理是否具有可恢复性,当某个话单处理步骤异常,进行恢复后,后续的处理应该能够从断点处继续?

²  软件处理上,是否有一定的容错能力,能够防止轻度的软件异常?

²  对异常事件的处理合适吗

11

性能

²  主要性能参数是否已被详细说明(例如实时、速度要求、输入/输出接口等)?

²  有没有考虑出现性能瓶颈的时候,系统会做出怎样的反应?

²  是否对数据的规模进行分析,主要是对系统和子系统的数据处理能力、数据承载能力的考虑

12

安全性

²  是否对操作人员进行了分权处理,存在至少三种操作权限:无权、只读、可维护。必须考虑在本系统中应该提供对数据的哪些操作,这些操作如何进行权限划分和权限控制?

²  操作权限是否可以维护,便于以后功能的扩充不至于对权限造成影响?

²  用户无权限操作的功能是否明确,是否对用户不可见?

²  是否考虑数据传递过程中的安全性,主要指有无校验机制,对传递过程中出现的明显错误有无相应处理机制?

²  是否考虑数据的存储安全性,包括数据的存放周期、数据存放介质能力、多个数据存放点等?数据的存放周期依赖于存储介质的使用周期,如硬盘,超过一定的使用期后应及时更换。

²  对重大的隐患是否考虑预警功能,包括磁盘空间、数据传送路径等

8.6.4 软件详细设计评审检查要素

软件详细设计评审检查要素如表8-17所示。

表8-17 软件详细设计评审检查要素

序号

章节

内容

1

资源和进度

²  承担概要设计的人员安排合理吗?

²  详细设计按进度完成了吗?

²  配置管理得到了适当地实施了吗

2

依从性

²  详细设计的编制符合要求吗?该文档是否遵循了该项目已文档化的标准?

²  软件详细设计是否进行了同行评审?是否采用了所要求的方法和工具来进行单元设计

3

功能性

²  是否已概要描述了设计单元的所有功能?是否对模块功能进行了详细的描述?

²  是否全面描述功能组件的功能和相互关系?

²  是否已描述重要的类/模块、重要的方法、重要的属性、重要的流程、重要的状态迁移?

²  是否已详细说明开发方法,如开发环境和编译方式等?

²  所使用的数据结构适合吗?

²  确定的输入、输出和处理功能正确吗?

²  是否正确地规定了分支,逻辑没有颠倒?

²  所使用的算法适合吗

4

一致性

²  数据元素的命名和使用在整个单元和单元接口之间是否一致?

²  所有接口的设计是否互相一致并且和更高级别文档一致

5

数据使用

²  是否所有模块/类的数据结构都被详细说明?

²  是否所有修改共享数据(或文件)的程序都考虑到了其他程序对该共享数据(或文件)的存取权限

6

接口

²  接口参数在数量、类型和顺序上是否匹配?

²  是否所有的输入和输出都被正确定义和检查?

²  是否传递参数序列都被清晰地描述?

²  是否所有参数和控制标志由已描述的单元传递或返回?

²  是否详细说明了参数的度量单位、取值范围、正确度和精度?

²  共享数据区域及其存取规定的映射是否一致

7

可靠性

²  软件可靠性、安全性设计准则和指南得到了充分的实施吗?

²  是否执行输入、输出、接口和结果的错误检查?是否对所有错误情况都发出有意义的信息?

²  对特殊情况返回的代码是否和已规定的全局定义的返回代码相匹配?

²  是否所有的程序异常定义了适当的处理方法?

²  对异常事件的处理完善吗

8

清晰性

²  所有设计对象或过程的目的是否都已文档化?

²  数据流、控制流和接口的单元设计是否已清晰地说明

9

可追溯性

²  是否设计的每一部分都能追溯到其他项目文档的需求,也能追溯到更高级别文档的需求?

²  是否从公司模块库或事业部模块库提取出可用模块?

²  是否列出本模块可能输出的共享模块以准备加入模块化库

10

易测性

是否提供了必要的调试支持要求,例如运行日志、Debug信息

11

性能

是否模块/类的所有约束,例如过程时间和规模都被详细说明

12

可维护性

单元是否具有高内聚度和低耦合度,例如对该单元的更改不会在该单元有任何无法预料的影响,并对其他单元的影响很小

8.6.5 软件编码和单元测试评审检查要素

软件编码和单元测试评审检查单如表8-18所示。

表8-18 软件编码和单元测试评审检查要素

序号

章节

内容

1

资源和进度

²  承担软件实现的人员安排合理吗?

²  软件实现按进度完成了吗?

²  配置管理得到了适当地实施了吗

2

编码和测试

²  程序代码与详细设计一致吗?

²  编程格式符合规定吗?

²  模块调试结果正确吗?

²  对异常事件的处理适当吗?

²  静态检查充分吗?

²  单元测试用例正确吗?

²  单元测试指标符合要求吗?

²  程序单元在修改后,进行了回归测试吗?

²  是否填写了单元测试记录单

8.6.6 代码走查评审要素

代码走查评审要素如表8-19所示。

表8-19 代码走查评审要素

序号

章节

内容

1

代码走查评审要素

²  代码的注释与代码是否一致?注释是否是多余的?

²  是否存在超过3层嵌套的循环与/或判断?

²  变量的命名是否代表了其作用?

²  所有的循环边界是否正确?

²  输入参数的异常是否处理了?

²  程序中所有的异常是否处理了?

²  所有的判断条件边界是否正确?

²  是否存在重复的代码?

²  所有的文件名符合文件命名规范,见名知意。

²  数据库中是否定义有bit类型的字段?

²  常量是否全部大写

8.6.7 软件集成测试评审检查要素

软件集成测试评审检查单如表8-20所示。

表8-20 软件集成测试评审检查要素

序号

章节

内容

1

资源和进度

²  承担软件集成测试的人员安排合理吗?

²  软件集成测试按进度完成了吗?

²  配置管理适当地实施了吗

2

测试过程

²  《软件集成测试报告》的编制符合要求吗?

²  软件的集成过程适合吗?

²  测试用例充分吗?适当吗?

²  测试结果与测试用例的预期结果一致吗?

²  测试环境与运行环境相容吗?

²  测试分析过程与结论正确吗?

²  保存了测试用例、数据及相关程序吗?

²  进行了必要的回归测试吗?

²  问题报告单填写准确、清楚吗

8.6.8 软件配置项测试评审检查要素

软件配置项测试评审检查单如表8-21所示。

表8-21 软件配置项测试评审检查要素

序号

章节

内容

1

资源和进度

²  承担软件配置项测试的人员安排合理吗?

²  测试计划的安排合理吗?

²  软件配置项测试按进度完成了吗?

²  配置管理得到了适当地实施了吗

2

技术内容

²  《软件配置项测试计划》的编制符合要求吗?

²  《软件产品规格说明》的编制符合要求吗?

²  对软件功能,性能的测试合理而又全面吗?

²  测试方案合理且正确吗?测试用例全面吗?合理吗?测试数据全面吗?接口测试正确吗?测试环境选择合适吗?测试环境与运行环境等效吗?

²  强度测试适当吗?可靠性测试、安全性测试合适吗?测试分析结论正确吗?测试结果分析方法适合吗?测试结果与预期的一致吗?