军用软件工程标准研究及意义分析
一、软件工程标准产生的背景
众所周知,计算机(硬件)一问世,软件即如影随形而来,井进而发展成一门产业--软件开发。早在60年代,软件开发通常还只是编程者个人行为,软件开发者和使用者往往是同一个(或同一小组的)人。这种个体化的特性使软件设计成为人头脑中的一个隐含过程,除了程序清单之外,没有其他文档保存下来。
从60年代中期到70年代中期,随着计算机应用的日益普及及软件需求量的急剧增加,出现了以小组或小集体为单位的"软件作坊",他们开发的软件主要供本单位使用。这种"软件作坊"基本上仍然沿用早期形成的"个体式"的软件开发方法。但是,由于用户不断提出新需求,所以程序也必须不断做出相应修改;随着硬件或操作系统的频繁更新,又要修改程序以适应新的环境;程序运行时发现错误也需设法改正,所以,不仅"作坊"式的开发方法不能满足客观需求,而且人们发现软件维护工作以令人吃惊的比例在耗费着资源。更严重的是,程序设计的个体化特性使软件最终难于甚至不能维护,于是出现了"软件危机"。软件危机主要体现在:
a. 不能正确估计软件开发的成本和进度;
b. 对"已完成的"软件系统,用户经常不满意;
c. 软件质量靠不住;
d. 软件常常不能维护;
e. 没有建立适当的文档资料记录软件开发过程中的信息及其变化;
f. 软件费用占计算机系统总费用的比例逐年上升等等。
软件危机的产生与软件开发和维护时所使用的方法有关,但根本的还是软件本身的特点使然。软件是计算机系统中的逻辑部件而不是物理部件,在计算机上运行之前,软件质量较难评价,因此,管理和控制软件开发过程相当困难。软件的另一个显著特点是规模庞大,复杂程度高,如美国穿梭号飞船的软件含4000万行代码,相当于4000人年的编程工作量,如何保证每个人完成的工作合在一起构成一个高质量的大型软件显然是一个极端复杂的问题。再者,软件维护常常意味着要修改原来的设计,这样大型复杂的软件的修改,其难度之大是不难想像的。
总之,解决软件危机,仅靠技术措施是办不到的,它更需要有先进的管理措施。60年代后期计算机科学家们就开始研究解决软件危机的方法,并逐渐形成了计算机科学技术领域中的一门新兴学科一一软件工程学。软件工程学是研究采用工程的概念、原理和方法进行软件开发和维护的一门学科。它是软件发展到一定阶段的产物。软件工程学的出现既有工程技术发展提供的客观背景,也是软件发展的必然。
软件发展到软件工程学时代,根本上摆脱了软件"个体式"或"作坊式"的生产方法,人们更注重项目管理和采纳形式化的标准和规范,并以各种生命周期模型来指导项目的开发进程。在此期间出现了CASE(计机算机辅助软件工程)工具,并被广泛用于辅助人们的分析和设计活动,并试图通过创建软件开发环境和软件工厂等途径来提高软件生产率和软件产品质量。
随着软件工程学的蓬勃发展,政府部门、软件开发机构以及使用部门等都深切感到了在软件工程领域内制定各种标准的迫切性,于是软件工程标准应运而生。
二、软件工程标准体系
软件工程标准是对软件开发、运行、维护和引退的方法和过程所作的统一规定。根据GB/T15538,软件工程标准体系可分为4个部分:过程标准、产品标准、行业标准和记法标准。其中过程标准和产品标准是软件工程标准的最基本也是最主要的组成部分,ISO/JTC1/SC7《软件工程》及我国军用软件工程标准通常也只包括这两部分内容。过程标准是用来规定软件工程过程中(如开发、维护等)所进行的一系列活动或操作以及所使用的方法、工具和技术的标准,如GJB2786《武器系统软件开发》、GB/T 14079《软件维护指南》和GB/T 15532《计算机软件单元测试》等都为软件工程过程标准。
产品标准是用于规定软件工程过程中,正式或非正式使用或产生的那些产品的特性(如完整性、可接受性)。软件开发和维护活动的文档化结果就是软件产品。这类标准有GJB2255《军用软件产品》、GJB 438A《武器系统软件开发文档》、GJB 9385《计算机软件需求说明编制指南》等。以下提供的表1"软件工程标准分类表"既可帮助标准化人员管理和规划软件工程标准也可帮助广大科研人员选用软件工程标准。
标准类型 | ||||
相关推荐技术专区 |
评论