GJB2786A—2009《军用软件开发通用要求》规定了软件开发过程的活动及要求。软件开发过程与硬件研制过程的对照如图2-1所示。
图2-1 硬件研制过程与软件开发过程
系统研制的第一个阶段是系统需求分析和系统设计阶段,这个阶段主要依据委托方要求,论证系统总体方案的可行性。在系统总体方案基本确定后,应将系统的功能进行分解,分别确定系统的哪些功能由硬件实现,哪些功能由软件实现,并分别给硬件研制部门和软件开发部门下达研制任务书。该研制任务书经评审和批准后,硬件与软件即可实施并行的研制。具体说明如下:
·图2-1的上行线是硬件的研制过程:由硬件需求分析、初步设计、详细设计、制造和HWCI测试等过程组成。
·图2-1的下行线是软件的开发过程:由软件需求分析、软件设计、编码和CSU测试、CSC集成和测试、CSCI集成和测试等过程组成。
根据软件工程思想,从软硬件的研制过程来看,软件开发与硬件研制的不同之处是:软件开发过程中往往需要较长的测试阶段(约占开发周期的40%)。原因在于软件是人脑思维逻辑的产物,而不是一种物理产品,软件中潜藏的缺陷不能像硬件那样由各种仪器、设备直接检测出来。因此,必须通过各个阶段的不同的测试手段,用各种不同的方式(如静态、动态测试,黑盒、白盒测试等)逐步排除软件中的缺陷。
当软硬件都完成了各自的配置项测试后,就将软硬件集成在一起进行系统集成和测试。系统测试完成后方能进入试验和评价阶段(一般称之为设计定型阶段),通过设计定型后方能进入生产和部署。
以上是软件的开发过程,也是软件生存期的主要组成部分。软件生存期还必须包括部署后的使用和维护阶段,直至最后系统完成使命后被弃置。
通常,嵌入式软件生存期的各阶段包括:
·系统分析与软件定义阶段;
·软件需求分析阶段;
·软件设计阶段(含概要设计和详细设计);
·软件实现阶段(含编码和软件单元测试);
·软件测试阶段(含软件集成测试、配置项测试和系统测试);
·软件验收与交付阶段;
·软件使用与维护阶段。