美国处于数千枚敌方导弹的威胁之下。当大规模毁灭性袭击发生时,美国防御卫星上的计算机会被启动,它制导空间武器和地基导弹摧毁敌人的攻击。但是在什么也没发生的情况下,战略防御倡议(SDI)的计算机软件系统作过确实系失误的响应。这种情况说明了许多计算机科学家为所谓“星球大战计划”(即SDI)担心的原因。自从由国防部任命的一个专门小组的结论指出,先前的研究忽略了如何设计能操纵空基反导弹系统的计算机程序的基本问题以后,关于SDI系统的控制软件的争论就加剧了。
SDI系统必须对许多情况迅速地作出反应。防御卫星必须探测导弹发射的微弱的红外辐射,跟踪导弹;识别真假弹头以及判断这些导弹是否正在进攻本国目标;然后选定弹头目标加以摧毁;还要把任何溜过本防御层的导弹的情报通知其他防御卫星与此同时,卫星还得自我防卫。所有这些决策运算都得在大约半小时以内进行。
目前,SDI软件的可靠性是至关紧要的问题。一个关于SDI计算问题的政府咨询小组(Eastport Group)的结论是:快速、容错、自校正和适应性强的软件系统是切实可行的。这个小组的主任、加利福尼亚大学信息科学研究所的丹尼 · 科恩(Danny Cohen)认为可以编制出一个满足要求的程序,而且可以运行。不过这种设计的细节尚须进一步研究改进。
一个主要的问题是系统的复杂性。为了把它减低到最小限度,SDI的研究者们推出了一种结构,在此结构中,局部单元控制它们的内部操作而与其他单元和主系统无关。在这种系统的最低级,软件将传感器数据集中送入导弹的影像区以供评价分析。中间级应能把真正的导弹与诱惑假弹和协同攻击区分开来,以保证没有疏漏,也没有重复。最高级则应判断出那些将被攻击的目标,确保众多的弹头不能重返大气层飞到任一目标的上空。
SDI软件计划要求大量程序在分布于各地和空间的不同类型的计算机中同时运行,这些计算机应能相互通信,当其他计算机被破坏时还要能独立地工作。帕纳斯相信这样错综复杂的关系是不能保证系统正常工作的。他把这个比作一个高峰期间的交通系统,这种系统尽管是松散的联系,但仍然事故不断。他警告说,在SDI系统中会发生同样的事情。
第二个问题是计划的SDI计算机程序的规模。估计至少要达一千万行程序代码。科恩强调一个没有致命错误、成功的巨型软件是存在的:“航天飞机的飞行软件大约有一百万行代码,而最关键的起飞与降落程序则有二十五万行。尽管发生了惨剧,但它仍然支持了巨型软件这样一个例子,因为在这个关键的部分没有查到差错。”
第三个问题是如何试验这么一个复杂的系统。SDI组织的主任詹姆斯 · 亚伯拉罕森(James Abrahamson)说过,一个SDI原型的有效的试验将是发射一枚或两枚装着假弹头的真实导弹,同时模拟多枚导弹的发射,观察系统如何反应。然而目前美国的条约义务不允许这样的试验,因此还没有这方面的打算。
[刘炜译自Science Digest 1986年5月号]