摘要:随着软件工程化进程的推进,各种软件开发模型层出不穷。在软件工程活动中,首要的任务是选择一个适合于组织实际情况的软件开发模型。文章以制导武器系统软件为研究对象,根据其软件开发特点,提出了一种软件开发的不同阶段采用不同的软件开发模型的方案,并详述了此方案的具体应用过程。此方案在某制导武器单位成功应用,对该领域的其他软件开发也具有可借鉴性。
关键词:制导武器系统软件;软件开发模型;瀑布模型;敏捷模型;智能模型
引言
随着制导武器装备向数字化、信息化、智能化、通用化程度的不断提高,在高新制导武器装备中的软件正面临着巨大的挑战,其研制周期越来越短,同时软件质量也越来越高,这迫使制导武器装备系统中的软件研制必须采用更高效、更规范的软件开发模型,才能满足这两方面的要求。在软件工程发展完善的过程中,形成了许多种软件开发模型,几种常见的软件开发模型有:瀑布模型、增量模型、敏捷模型和智能模型。每种开发模型都有其优缺点,各自的适用范围也不一样。对于不同的软件系统,可选用不同的软件模型,也可根据待开发软件的特点,选用多种模型相结合的方式。本文以一个典型的制导武器系统软件承研单位的软件开发过程为例,提出了一种不同研制阶段采用不同软件开发模型进行软件开发的方案,并详述了具体的实施过程。
1制导武器系统软件特点
制导武器系统软件属于军用型号项目的配套软件,软件规模大多为中小型,其特点如下:软件研制周期长,研制分阶段进行;软件安全性和重要性等级高;研制任务紧,必须按时完成开发任务、及时列装使用;软件专业性强、实时性要求高,涉及知识面广,开发复杂度比较高;软件需求变化大,软件更改频繁。
2软件开发模型研究
本文实例是某制导武器系统总体单位(文中称A单位),负责某型制导炸弹军用型号项目配套软件研制。该型制导炸弹型号项目的研制工作分为三个阶段进行:方案阶段(原型样机)、工程研制阶段(初样阶段、正样阶段)和设计定型阶段。在每个阶段,软件研制工作的要求和目的都不太一样。因此,该项目的配套软件研制开发工作也分为三个阶段进行,与型号项目的研制工作阶段保持一致,即同样分为方案阶段、工程研制阶段和设计定型阶段。针对A单位软件研制特点,本文提出如图1所示的软件开发模型与型号项目研制阶段的对应关系。2.1方案阶段软件模型项目的方案阶段也是软件研制的起始阶段,在这个阶段软件开发人员对系统需求和软件需求理解不明确、不充分,理解无法一步到位,再加上用户需求在此阶段变化大,因此,软件项目组采用敏捷开发模型进行软件开发,首先第一步是在一个比较短的周期内,快速交付一个满足基本功能和性能要求的、可进行全弹地面系统联调联试“原型机1(软件)”。然后,通过节点评审会,用户提出反馈意见及修正需求,开发方进一步明确需求,进入第二个开发周期的迭代。通过不断迭代,软件开发人员进一步明确、完善软件需求,对软件架构设计、详细设计不断更改。软件设计实现过程,是基于原型机的迭代过程。详细实施过程如下图图2所示:2.2工程研制阶段软件模型工程研制阶段(初样阶段和正样阶段),就是在原型机的基础上做适应性修改。相对而言,软件人员对系统和软件需求的理解比较到位,用户需求变更减少,软件主体已经形成,基本功能和部分性能已经实现。因此,在此阶段,可采用瀑布模型与智能模型相结合的软件开发模型进行软件开发工作。由于A单位软件开发基础薄弱,软件工程化管理正处于起步阶段,选用瀑布模型相对比较容易操作、维护和管理。型号项目软件开发前期大部分需求已确定,软件的开发可以按照瀑布模型的固定顺序有计划的开展工作。以文档驱动的瀑布模型,极大程度上减小了在较长软件研发周期中,因技术人员时有变动所带来的开发风险,保证了软件的可靠性、稳定性。同时,制导武器系统配套软件还具备涉及知识面广,专业性的特点,涉及的知识领域包括:惯性导航技术、制导控制系统设计和数字处理器原理等。而软件开发人员并不是这些领域的专家,为了保证武器装备的正常使用,必须在使用瀑布模型进行软件开发的同时还要融入智能模型的核心思想,即在软件开发过程中引入专家系统/知识库的支持,以指导软件开发人员在软件开发过程中以专家的水平解决专业性强的、复杂的问题。瀑布模型与智能模型的具体应用如下图3所示:图3瀑布模型与智能模型相结合应用示意图2.3设计定型阶段软件模型在项目设计定型阶段,全弹状态(包括各配套软件)基本已固定,全弹主要进行地面试验和飞行鉴定试验,对于软件来说,主要工作为完成软件第三方定型测评。在此阶段,软件的变更较前期阶段减少很多,除非软件第三方定型测评发现问题、设计定型阶段大型试验定位的软件问题以及用户需求变更(极少发生),才会导致软件更改,因此采用瀑布模型的简化版“维护模型”,不仅保证了软件的质量,又降低了软件开发成本。维护模型的分为:维护分析、维护实施、确认测试和维护验收评审四个阶段。第一个阶段主要是针对出现的问题进行需求和设计改动分析;第二个阶段执行软件修改;第三个阶段进行软件回归测试;最后一个阶段进行维护总结。
3结语
本文创新性地提出了一种基于制导武器系统软件不同研制阶段采用不同软件开发模型进行软件开发的方案。此方案已经在A单位某制导炸弹型号项目上成功应用,保证了项目研制工作的顺利进行,有力的保障了软件和武器系统质量。2015年7月,以该型号为GJB5000A的试点项目,A单位顺利通过了总装GJB5000A评价组《军用软件研制能力成熟度模型》二级正式评价。通过此方案的成功应用,可以得出以下结论:(1)合理制定软件开发模型,使软件开发活动科学、有序的进行,对提高软件开发效率,降低开发成本和风险,有效保证软件和武器质量发挥巨大作用;(2)对于不同项目或同一项目的不同阶段,可使用一种开发模型,也可多种模型互相结合;(3)为后续项目提供了技术基础,后续项目可在应用中不断探索如何取得最佳效果。
参考文献:
[1]韩鹏.小规模团队的敏捷开发研究[J].软件学报,2012,1(2):12-15.
[2]邵山,付塍强,姚方圆,郑义.敏捷开发在战机飞控系统软件研制中的应用[J].计算机应用与软件,2015,32(1):44-46,54.
[3]田丽从,李铁牛,彭宏.中小型企业软件过程改进方法研究[J].计算机应用与软件,2011,28(4):208-211.
[4]杨萍,周云成,郭丹,朴在林.软件工程中主要开发模型的比较分析[J].鸡西大学学报,2008,8(1):86-88.
[5]张友生,李雄.软件开发模型研究综述[J].计算机工程与应用,2006,42(3):109-115.
[6]刘伟群,李雄.新型软件开发模型比较[J].现代计算机,2005,(10):69-72.
[7]邓智.基于中小型软件企业的软件开发模型研究[D],广东工业大学,2003.
作者:黄晓芳 任延超 张巧 胡益红 单位:国营八六一厂