结构推理 维护技术的副作用有哪些?
【正确答案】因修改软件而造成的错误或其他不希望出现的情况称为“维护的副作用”。维护的副作用有编码副作用、数据副作用、文档副作用三种。
   (1)编码副作用。在使用程序设计语言修改源代码时可能引入如下错误。这些错误要到运行时才能被发现。例如:
   ①删除或修改一个子程序、一个标号、一个标识符。
   ②改变程序代码的时序关系,改变占用存储的大小,改变逻辑运算符。
   ③修改文件的打开和关闭。
   ④改进程序的执行效率。
   ⑤把设计上的改变翻译成代码的改变。
   ⑥为边界条件的逻辑测试作出改变。
   以上这些变动都容易引入错误。
   (2)数据副作用。在修改数据结构时,有可能造成软件设计与数据结构不匹配,因而导致软件错误。数据副作用是修改软件信息结构导致的结果。例如:
   ①重新定义局部或全局的常量,重新定义记录和文件格式。
   ②增加或减少一个数组或高层数据结构的大小。
   ③修改全局或公共数据。
   ④重新初始化控制标识或指针。
   ⑤重新排列输入输出或子程序的参数。
   以上这些情况都容易导致设计与数据不相容的错误。数据副作用可以通过详细的设计文档加以控制,在此文档中描述了一种交叉作用,把数据元素、记录、文件和其他结构联系起来。
   (3)文档副作用。所有的维护活动都必须对相关技术文档进行相应修改。否则会导致文档与程序功能不匹配、默认条件改变、新错误信息不正确等错误,使文档不能反映软件当前的状态。如果对可执行软件的修改没有反映在文档中,就会产生文档副作用。
   例如:
   ①修改交互输入的顺序和格式,没有正确地记入文档中。
   ②过时的文档内容、索引和文本可能造成冲突等。
   因此,必须在软件交付之前对整个软件配置进行评审,以减少文档副作用。
【答案解析】