结构推理 为什么要进行软件评审?软件设计质量评审与程序质量评审都有哪些内容?
【正确答案】因为软件生存期每个阶段的工作都有可能引入人为错误,如果某一阶段的错误不及时纠正,就会传播到开发的后继阶段,引出更多错误。因此,进行软件评审是必要的,评审可以揭露软件中的缺陷,然后加以改正。
   设计质量评审的对象是在需求分析阶段产生的软件需求规格说明、数据需求规格说明,在软件概要设计阶段产生的软件概要设计说明书等。主要内容有:
   (1)评价软件的规格说明是否合乎用户的要求,即总体设计思想和设计方针是否明确;需求规格是否得到了用户或单位上级机关的批准;需求规格说明与软件的概要设计规格说明是否一致等。
   (2)评审可靠性,即是否能避免输入异常(错误或超载等)、硬件失效及软件失效所产生的失效,一旦发生应能及时采取代替手段或恢复手段。
   (3)评审保密措施实现情况,即是否提供对使用系统资格进行检查;对特定数据的使用资格、特殊功能的使用资格进行检查,在查出有违反使用资格情况后,能否向系统管理人员报告有关信息;是否提供对系统内重要数据加密的功能等。
   (4)评审操作特性实施情况,即操作命令和操作信息的恰当性,输入数据与输入控制语句的恰当性;输出数据的恰当性;应答时间的恰当性等。
   (5)评审性能实现情况,即是否达到所规定性能的目标值。
   (6)评审软件是否具有可修改性、扩充性、可互换性和可移植性。
   (7)评审软件是否具有可测试性。
   (8)评审软件是否具有复用性。
   程序质量评审的内容如下:
   (1)软件的结构。为了使得软件能够满足设计规格说明中的要求,软件的结构本身必须是优秀的。它包括如下。
   ①功能结构。在软件的各种结构中,功能结构是联系用户跟开发者的规格说明,它在软件的设计中占有极其重要的地位。在评审软件的功能结构时,必须明确软件的数据结构。需要检查的项目如下。
   ·数据结构:包括数据名和定义;构成该数据的数据项;数据与数据之间的关系。
   ·功能结构:包括功能名和定义;构成该功能的子功能;功能与子功能之间的关系。
   ·数据结构和功能结构之间的对应关系:包括数据元素与功能元素之间的对应关系;
   数据结构与功能结构的一致性。
   ②功能的通用性。从功能便于理解、增强软件的通用性及降低开发的工作量等观点出发,希望尽可能多地使功能通用化。检查功能通用性的项目包括:抽象数据结构(包括抽象数据的名称和定义,抽象数据构成元素的定义);抽象功能结构。
   ③模块的层次。模块的层次是指程序模块结构。由于模块是功能的具体体现,所以模块层次应当根据功能层次来设计。
   ④模块结构。上述的模块层次结构是模块的静态结构。现在要检查模块间的动态结构。模块分为处理模块和数据模块两类。模块间的动态结构也与这些模块分类有关。对这样的模块结构进行检查的项目如下。
   ·控制流结构:规定了数据模块与处理模块之间的流程关系。检查处理模块之间的控制转移关系与控制转移形式(调用方式)。
   ·数据流结构:规定了数据模块是如何被处理模块进行加工的流程关系。检查处理模块与数据模块之间的对应关系;处理模块与数据模块之间的存取关系,如建立、删除、查询、修改等。
   ·模块结构与功能结构之间的对应关系:包括功能结构与控制流结构的对应关系;功能结构与数据流结构的对应关系;每个模块的定义(包括功能、输入与输出数据)。
   ⑤处理过程的结构。处理过程是最基本的加工逻辑过程。对它的检查项目有:要求模块的功能结构与实现这些功能的处理过程的结构应明确对应;要求控制流应是结构化的;数据的结构与控制流之间的对应关系应是明确的,并且可依这种对应关系来明确数据流程的关系;用于描述的术语标准化。
   (2)与运行环境的接口。运行环境包括硬件、其他软件和用户。与运行环境的接口应设计得较理想,要预见到环境的改变,并且一旦要变更时,应尽量限定其变更范围和变更所影响的范围。主要检查项目如下。
   ①与硬件的接口。包括与硬件的接口约定,即根据硬件的使用说明等作出的规定;硬件故障时的处理和超载时的处理。
   ②与用户的接口。包括与用户的接口规定;输入数据的结构;输出数据的结构;常输入时的处理;超载输入时的处理;用户存取资格的检查等。
   (3)运行环境变更带来的影响。随着软件运行环境的变更,软件的规格也在随之不断地变更。运行环境变更时,需要从以下三个方面来分析影响范围:
   ①与运行环境的接口。这是变更的重要原因。
   ②在每项设计工程规格内的影响。是指在每个软件结构范围内的影响。
   ③在设计工程相互间的影响。是指不同种类的软件结构相互间的影响。
【答案解析】