GJB5000B 二级标准在军用软件研制过程中的应用
2024-06-09杨帅陶冠时万柳梅
杨帅 陶冠时 万柳梅
一、GJB5000B 标准概述
军用软件能力成熟度模型分为五个等级,每一等级是实现下一个等级的基础,实现分级递进。一级为初始级,二级为规范级,三级为全面级,四级为量化级,五级为卓越级[1]。
二级主要特征为:已建立过程改进组织机构和过程规范,逐步积累组织资产;基于估计和项目特点,制定和维护项目计划,获取、开发和管理项目的需求,并实施验证与确认;通过开展配置管理、质量保证、测量分析活动,监督其计划的执行,确保项目可控。该等级的组织具备在同类项目中复制成功经验的能力[2]。
但实施过程中往往存在管理效率较低、管理成本过高等问题,如何在研制周期短、需求变化频繁的情况下保证进度和质量,是军用软件研发所面临的重要挑战[3]。
二、软件的生命周期模型
软件生命周期模型的选择取决于项目的需求、规模和特点。常见的模型有瀑布模型、简化瀑布模型、增量模型、敏捷模型。
瀑布模型是较为传统的一种软件生命周期模型。它将软件开发过程划分为一系列线性阶段,主要包括需求分析阶段、系统设计阶段、编码阶段、测试阶段和维护阶段。每个阶段在上一个阶段完成后开始,并且很少会返回前一阶段,适用于需求稳定、项目规模和复杂度较小的项目。
简化瀑布模型是对瀑布模型的一种变体,它仍然包含需求分析、设计、编码、测试和维护等阶段,但允许某些阶段的合并和过程的裁剪。适用于对瀑布模型进行适度简化的项目,以提高开发效率和灵活性。
增量模型将软件开发过程划分为多个小型的版本或增量。每个增量都包含完整的开发阶段,从需求分析到维护。每个增量都是前一个增量的改进和扩展。增量模型适用于大型项目,可以提供早期的可用功能,并在后续增量中逐步完善系统。
敏捷模型是一组基于迭代和自适应开发原则的方法。它强调团队合作、快速响应变化和持续交付价值。敏捷模型包括多种方法,如Scrum 和Kanban,通过短周期的迭代开发交付可用软件功能。敏捷模型适用于需要灵活性和快速交付的项目[4]。
三、GJB5000B 二级在某型号项目中的应用
根据此软件实际开发应用情况,选择简化瀑布模型,划分为项目策划、需求开发与管理、软件设计、软件实现、软件单元集成与测试、软件配置项测试、软件验收与交付共7 个阶段。
项目QA(质量保证)负责对项目各个质量环节进行全面的监督和检查。包括对所有文件的符合性进行检查,完成相应的《过程、工作产品质量检查单》,确保项目文档和工作产品符合相关标准和规范。如发现不符合项,需编制《不符合项跟踪表》,并形成《软件质量保证阶段报告》。
项目CM(配置管理)主要负责项目文档的物理配置审核工作。包括维护管理开发库、受控库和存储库,登记文件的出入库记录,并进行基线发布和基线变更操作。通过配置管理员的工作,可以确保项目文档的版本管理和变更控制得以有效实施,为项目的顺利进行提供了良好的基础。
(一)项目策划阶段
本阶段主要为项目实施制定合理的工作计划,目的为使软件开发人员及项目管理人员对软件项目策划过程有充分的了解。本阶段项目管理人员制定项目计划书及执行相关策划活动,增加项目实现目标的可能性。项目策划阶段包含需要进行的活动、质量、资源、能力及其他要求,策划过程贯穿项目的整个生命周期。本项目策划阶段包含5 项内容,分别为项目启动、获取用户需求、软件项目策划、审核项目策划过程、项目计划评审。
在此阶段项目负责人根据用户需求编制《软件研制任务书》,项目QA 根据《软件质量保证程序》《软件不符合项处理规程》对《软件研制任务书》进行审核,项目CM 将评审通过的《软件研制任务书》入受控库、建立功能基线。依据《软件研制任务书》,项目负责人编制《软件开发计划》、项目CM 编制《软件配置管理计划》、项目QA 编制《软件质量保证计划》形成三大计划。
(二)需求开发与管理阶段
本阶段目的为开发、维护和管理需求,与相关方对需求达成一致,确保顾客的需求和期望得到满足。
在此阶段,项目负责人组织项目组成员编写《软件需求规格说明》,项目QA 根据《软件质量保证程序》《软件不符合项处理规程》对《软件需求规格说明》进行审核,项目CM 将通过评审的《软件需求规格说明》入受控库、建立分配基线。
(三)软件设计阶段
在软件设计阶段,软件开发人员完成《软件设计说明》编制工作。并完成评审及修改意见闭环,项目CM 将评审并修改后的《软件设计说明》入受控库、建立设计基线。
(四)软件实现阶段
本阶段软件开发人员依据受控库中的《软件设计说明》完成软件代码编写工作,实现《软件设计说明》文件中的设计过程。本阶段结束时,项目负责人组织阶段会议,团队成员共同回顾和评估工作成果,为后续工作奠定基础。
(五)软件单元集成与测试阶段
本阶段软件测试人员完成《软件单元测试计划和说明》编制,并执行软件单元和集成测试及软件集成回归测试。
(六)软件配置项测试阶段
本阶段软件测试人员完成《软件配置项测试计划和说明》编制,并执行软件配置项测试。
(七)软件验收与交付阶段
本阶段项目团队需要完成一系列文档编制和审核工作。由项目CM 完成《软件配置管理报告》,项目QA 完成《软件质量保证报告》,项目负责人完成《软件用户手册》《软件研制总结报告》和《软件验收报告》。
项目QA 在该阶段需要审核《软件质量保证报告》《软件配置管理报告》《软件研制总结报告》和《软件验收报告》,确保报告内容符合相关标准和要求。
此外,本阶段结束时,组织召开项目总结会,对整个阶段的工作进行总结和评估,为后续工作提供经验教训和改进建议。这一环节对于项目的进展和成果具有重要意义,能够促进团队的持续发展和提升工作效率。
(八)工作产品输出
本软件开发过程中共输出文件21 份,具体如下:项目策划阶段完成软件研制任务书、软件开发计划、软件配置管理计划、软件质量保证计划;需求开发与管理阶段完成软件需求规格说明;软件设计阶段完成软件设计说明;软件实现阶段完成源代码;软件单元集成与测试阶段完成单元集成测试计划、单元集成测试说明、单元集成测试报告;软件配置项测试阶段完成软件配置项测试计划、软件配置项测试说明、软件配置项测试报告;软件验收与交付阶段完成软件检验规程、源代码和可执行程序、软件质量保证报告。
除技术文档外,还需编制以下过程管理文件:(1)《需求跟踪表》;(2)《软件测量分析报告》;(3)《项目周或双周报告》。
四、GJB5000B 二级标准特点
通过此项目实践,对GJB5000B 二级标准特点总结如下:
(一)保证软件质量
GJB5000B 二级要求全面的测试和验证过程,有助于确保军用软件的质量和可靠性。通过严格的测试,可以发现和修复潜在的缺陷和问题,减少软件在实际使用中出现故障的可能性。
(二)规范软件开发过程
GJB5000B 二级对软件开发过程进行规范,要求详细的文档记录和技术资料,有助于提高软件开发的可追溯性和可管理性。这有助于团队合作、项目管理和后续维护工作。
(三)增加开发成本和时间
由于GJB5000B 二级要求的严格性和全面性,软件开发和评估过程可能需要更多的时间和资源投入。这可能导致开发成本的增加和项目进度的延迟。
五、结语
综合而言,GJB5000B 二级在军用软件研制中的应用有助于提高软件的安全性和可靠性,确保军用软件符合军事需求和标准要求。然而,应用该标准也需要权衡成本和时间因素,并在实际项目中进行适度的调整和定制,以满足具体项目的需求。