军用软件工程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5 军用软件工程的标准化

随着软件工程学科的发展,人们对软件的认识逐渐深入。软件工作的范围从编写程序,扩展到整个软件生存周期。同时还有许多技术管理工作(如过程管理、产品管理、资源管理)及确认与验证工作(如评审与审计、产品分析、测试等)常常是跨越软件生存周期各个阶段的专门工作,所有这些都应建立标准或规范。

1.5.1 软件工程标准化的作用

软件工程标准化的进程是同软件工程化的发展水平相适应的。在 20 世纪60 年代,随着计算机的进步,涌现了大量的程序设计语言,即使是同一种语言,由于在不同型号上实现时做了不同程度的修改,也会为软件的移植造成很大的障碍。为了解决程序设计语言的不统一问题,人们制定了标准的程序设计语言,这便是软件工程标准化的开始。在软件工程化推动下,软件工程标准化的范围也从程序设计语言扩展到软件的开发、软件的维护直至软件整个生存周期的技术和管理,软件开发标准、软件文档标准、软件质量保证标准、软件验证和确认标准、软件生存周期过程标准等应运而生。

软件工程标准化就是通过制定、贯彻并监督实施标准,规范软件开发、运行、维护和引退全过程工作和产品,以提高软件产品质量。其作用具体体现在以下几点:

(1)通过开展软件工程标准化,可以为软件工程活动规定通用的框架和基本要求,有助于保证软件工程活动的完整性、有效性,提高管理的透明度、可控性和有序性。

(2)通过开展软件工程标准化,可以为软件开发的各单位或人员规定共同的行为准则,有助于协调和统一软硬件研制活动。

(3)通过开展软件工程标准化,把选定的软件工程方法变为具体规定,有助于克服由多种方法学并用所带来的困难,保证软件开发方法与硬件研制的方法相协调。

(4)通过开展软件工程标准化,可以统一软件产品可能具有的相同或相近的属性并用以指导设计和开发,有利于提高软件的重用率、互操作性、保障性和综合集成能力。

(5)通过开展软件工程标准化,可以规定检验软件开发工作成果的共同依据,有助于软件的评审、测试和验收等。

总之,通过软件工程标准化工作,可以大大提高软件的可靠性、安全性、可维护性、生产率、可移植性,促进软件的重用,从而有效保证产品质量、降低全生存周期费用、缩短开发周期及部署时间、提高综合保障能力。

1.5.2 软件工程标准

软件工程标准的类型可以从多个角度来划分。它可以包括过程标准(如方法、技术、度量等)、产品标准(如需求、设计、部件、描述、计划、报告等)、专业标准(如职别、道德准则、认证、特许、课程等)及记法标准(如术语、表示法、语言等)。

根据软件工程标准制定的机构和标准适用的范围有所不同,软件工程标准可分为5个级别,即国际标准、国家标准、行业标准、企业(机构)标准及项目(课题)标准。以下分别对5级标准的标识符及标准制定(或批准)的机构做简要说明。

1.国际标准

国际标准是指由国际联合机构制定和公布,提供各国参考的标准。国际标准化组织(International Standards Organization,ISO)有着广泛的代表性和权威性,它所公布的标准也有较大影响。

20世纪60年代初,该机构建立了计算机与信息处理技术委员会(简称ISO/TC 97),专门负责与计算机有关的标准化工作。截至目前,国际标准化组织共制定38项国际标准。软件工程标准框架,如图1.7所示。

图1.7 软件工程标准框架

2.国家标准

国家标准是指由政府或国家级的机构制定或批准,适用于全国范围的标准。我国标准化管理委员会是国家最高标准化机构,它所公布实施的标准简称为国标(GB)。比较常见的其他国家标准有:

(1)ANSI(American National Standards Institute)——美国国家标准。

(2)BS(British Standard)——英国国家标准。

(3)JIS(Japanese Industrial Standard)——日本工业标准。

3.行业标准

行业标准是指由行业机构、学术团体或国防机构制定,并适用于某个业务领域的标准。例如,美国电气和电子工程师协会(Institute of Electrical and Electronics Engineers,IEEE)。近年该协会专门成立了软件标准分技术委员会(SESS),积极开展了软件标准化活动,取得了显著成果,受到了软件界的关注。IEEE通过的标准常常要报请ANSI审批,使其具有国家标准的性质。因此,IEEE公布的标准常冠有ANSI字头,如ANSI/IEEE Str 828—1983《软件配置管理计划标准》。

GJB——中华人民共和国国家军用标准。这是由中国人民解放军原总装备部或我国国防科学技术工业委员会批准,适合于国防部门和军队使用的标准。例如,2004年总装备部发布实施的GJB 5235《军用软件配置管理》。

DOD-STD(Department of Defense-STanDards)——美国国防部标准。适用于美国国防部门。

近年来,我国许多行业和组织(如航天航空部、石油化学工业总公司等)开展了软件标准化工作,制定和公布了一些适应于本行业工作需要的规范。这些规范大都参考了国际标准或国家标准,对各自行业所属企业的软件工程工作起到了有力的推动作用。

4.企业(机构)标准

由于软件工程工作的需要,一些大型企业或公司,制定适用于本部门的规范。例如,美国IBM公司通用产品部1984年制定的《程序设计开发指南》,供该公司内部使用。

5.项目(课题)标准

由某一科研生产项目组织制定,且为该项任务专用的软件工程规范,如计算机集成制造系统的软件工程规范。

1.5.3 国外软件工程标准化现状

在软件工程界,比较有影响的非政府标准有国际标准化组织(ISO)标准、IEEE(美国电气和电子工程师协会);政府标准有美国军用标准。另外,NASA(美国国家航空航天局)、ESA(欧洲航空局)等也建立了完善的软件工程标准体系,在世界航空航天行业比较有影响。

ISO组织是一个非政府组织,其目的是促进标准化发展以推动国际贸易和技术转变;其活动的最终目的是出版国际标准。ISO 遍及各个领域,ISO/IEC联合技术委员会(JTC1)负责所有领域的信息技术标准,其中SC7“软件工程和系统工程”负责软件工程方面国际标准的制定。目前ISO标准代表当今软件工程水平和发展方向,是各国标准制定所参照的主要对象。ISO软件工程标准近几年来发展十分迅速,每年都有多项标准推出,其中软件过程方面的标准尤为突出。

IEEE 是一个经授权的标准团体,其成员包括用户、销售商和工程专业人员等。IEEE 标准由各技术委员会和标准协调委员会负责制定,每 5 年每项 IEEE 标准至少评审一次。目前 IEEE 计算机学会软件工程标准委员会(SESG)制定并维护大约66项标准,IEEE标准代表着当前软件工程的发展方向和水平,不少ISO标准是由IEEE标准提升的,而且IEEE标准是许多国家、行业标准制定时的主要参考对象。

美国国防部是世界上最大的软件及享受软件服务的消费者,历来都十分重视软件工程标准化工作,其软件工程标准化起步最早,并代表着世界软件工程化水平,对其他各国都有很大影响。从20世纪70年代起,美国国防部先后制定并确认了一系列软件标准,通过标准实施等手段来保证武器装备软件的质量。美国陆军早在1974年制定了MIL-STD-52779《软件质量保证规范》,1977 年制定了 DOD-STD-7935《自动数据系统文档编制标准》;空军1979 年制定了 MIL-STD-483《系统、设备、军需品和计算机程序的配置管理条例》;海军1978年制定MIL-STD-1679《武器系统软件开发》标准,其目的是规定软件开发等方面的基本要求。

到了20世纪80年代,美国国防部为了减少武器系统软件保障费用,改进各系统之间的通用性,不仅发布了一系列国防部指令和政策,而且还大力加强了软件开发过程标准化等方面的工作,并对已有标准进行了修订或整合,成为美国国防部标准。另外还组织制定了多个重大标准,如DOD-STD-2167;1985年《国防系统软件开发》、DOD-STD-2168;1988年《军用软件质量保证规范》、DOD-STD-1703;到 20 世纪 80 年代末期,形成了以一个DOD-STD-2167A为代表的完备配套的软件工程标准体系。

到了20世纪90年代,美国国家防务政策发生了重大调整,军费大规模削减,投入军用标准化的经费亦随之大幅减少。1994 年 6 月美国当时的国防部长佩里发表政策备忘录,决定对美国军用标准进行改革,这场军用标准改革是美国军用标准发展史上最重要的一次全面改革,全面清理整顿原有军用标准,消除“军标不军”现象,在这次清理整顿中,大部分软件工程标准宣布作废,同时提倡大力采用非政府标准来满足武器装备软件采办需要。

1.5.4 国内软件工程标准化现状

我国的软件工程标准化起步于1984年。全国信息技术标准化技术委员会(其前身为全国计算机与信息处理标准化技术委员会)成立了软件工程分技术委员会。目前已经制定了国家标准22项,主要是根据国际标准和IEEE标准而制定的。这些标准的制定对规范我国软件产业、开发维护高质量的软件产品、培养和提高软件开发人员的开发水平发挥了重要作用。常用的国家标准化管理委员会批准的软件工程国家标准如下。

GB/T 25000.10—2016《系统与软件工程 系统与软件质量要求和评价(SQuaRE) 第10部分:系统与软件质量模型》

GB/T 25000.1—2010《软件工程 软件产品质量要求与评价(SQuaRE) SQuaRE指南》

GB/T 8567—2006《计算机软件文档编制规范》

GB/T 9385—2008《计算机软件需求规格说明规范》

GB/T 9386—2008《计算机软件测试文档编制规范》

GB/T 11457—2006《信息技术 软件工程术语》

GB 13502—1992《信息处理 程序构造及其表示的约定》

GB/T 14085—1993《信息处理系统 计算机系统配置图符号及约定》

GB/T 14394—2008《计算机软件可靠性和可维护性管理》

GB/T 15532—2008《计算机软件测试规范》

GB/T 15535—1995《信息处理 单命中判定表规范》

GB 1526—1989《信息处理 数据流程图、程序流程图、系统流程图、程序网络图和系统资源图的文件编制符号及约定》

GB/T 16680—2015《系统与软件工程 用户文档的管理者要求》

GB/T 8566—2007《信息技术 软件生存周期过程》

我国军用软件工程标准化工作始于 20 世纪80 年代后期,到目前仅30余年。经过不断努力,军用软件工程标准体系已初具规模,军用软件工程标准重要性得到了重视,软件的研制和测评工作逐步规范化和标准化,为军用软件质量的提高起了重大作用。

目前,我国已初步建立了军用软件工程标准体系。软件工程标准主要是软件开发、运行、维护和引退的方法及过程等方面的标准。军用软件工程标准体系主要由基础标准、软件工程环境标准、软件过程标准、软件产品标准组成,标准体系框架如表1.3所示。目前现行有效的软件工程方面的主要国家军用标准见附录A。

表1.3 军用软件工程标准体系框架

续表

本章主要介绍了软件工程的一些基本概念,包括软件、软件危机、软件工程、软件过程、软件开发工具、软件工程管理等,这些概念是软件工程学的基础。软件工程是一门关于软件开发与维护的工程学科,它涉及软件生产的各个方面,能够为经济、高效地开发高质量的软件产品提供最有效的支持。

在近年的研究中,软件工程进一步发展出软件过程的概念,软件工程需要研究“如何做”的软件方法,也要研究支撑的软件开发工具和软件环境,软件过程则是研究如何综合软件方法和软件开发工具。软件过程是为了获得高质量的软件产品所需要完成的一系列工程活动,它规定了完成各项任务的工作步骤。为了保证在软件项目中能够有效地贯彻与正确地使用软件工程规程,我们应该遵循软件工程的基本原则。

通过本章的学习,了解软件的发展历程,掌握军用软件概念、特点及分类方法;了解软件危机的表现形式、产生根源;了解软件工程的概念、要素和基本原理;熟悉软件工程生存周期及生存周期模型的概念;掌握软件工程标准化的作用意义和主要标准。