产品软件控制程序
1 目的与适用范围
1.1 目的
本程序规定了产品配套软件的开发及管理所遵循的原则和一般要求,其目的是对设计和开发的全过程实施控制,确保以科学的控制流程、合理的资源配置实现顾客需求和期望,达到设计目标,并保证产品达到规定的质量要求。
1.2 适用范围
本程序适用于本公司配套软件产品(含外协)生存周期的控制与管理。
2 引用文件
GB/T11457 -95 软件工程术语
GB/T12504- 90 计算机软件质量保证计划规范
3 术语和定义
3.1 软件
软件指计算机程序和相应的数据文档;包括固件中的程序和数据,与其驻留的物理介质无关。
3.2 软件级别
根据产品可靠性、保障性大纲的规定,对系统中软件关键性进行分析,将软件按关键性分成A、B、C、D 四个级别,且对不同级别的软件在质量控制要求及方法上有所差别。
本公司所研制的软件属于D类软件:其失效可能造成轻微危害的软件。
3.3 产品配套软件分类
产品配套软件按功能分为:地面测试软件、数据处理软件、计算机软件等;按使用环境分为:地面软件、测试软件等;按规模分为:小、微型软件。
3.4 软件开发
软件开发过程是指从任务书或合同生效之日开始,到承办单位交付产品并有用户验
收为止的整个软件研制、生产过程。
3.5 软件维护
软件维护是在软件产品交付使用之后,为纠正故障、改善性能和其它属性,或使产品适应改变了的环境所进行的修改活动。
一般分为完善性维护、适应性维护和改正性维护三种类型。
3.6 文档
文档是对软件的书面描述和说明,它定义了软件的功能、性能、组成、设计、测试和使用方法。
3.7 软件生存周期
从设计软件产品开始到软件产品不能再使用时为止的时间周期。
3.8 软件开发库、受控库、产品库
软件开发库是指存放与软件开发工作有关的计算机可读信息和人工可读信息的软件库。
软件受控库是指在软件生存周期的某一阶段结束时,存放作为尖端产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。
软件产品库是指在软件生存周期和组装与系统测试阶段结束后,生产并存放最终产品而后交付给用户运行或在现场安装的软件的库。
4 职责
4.1 经营规划部负责软件的任务计划及节点跟踪;
4.2 总体室应在软件研制方案阶段制定《软件实施大纲》,提供软件开发的技术支援、按需求进行软件的测试和鉴定。
4.3 开发室负责产品配套软件(含外协)的开发及“软件开发库”的管理,对产品配套软件(含外协)的研制质量负责。
4.4 情报标准化室负责软件研发的质量管理,“软件产品库”、“软件受控库”及软件文档的管理及保密工作,负责生产和存放并向用户提供封存好的、现行有效的软件最终产品。
5 工作程序
5.1 基本要求
5.1.1 以保证产品配套软件(一下简称软件)质量为中心,把可靠性放在首位。
5.1.2 认真实施软件开发和管理工程化,杜绝有同一设计人员进行分析、设计、编程、测试、使用维护的开发模式。
5.1.3 建立健全软件工程化管理体系,明确分工,严格实行三级审签制度,实施软件的规范化管理。
5.1.4 软件的研制必须采取严格的质量控制措施,在产品软件工程化实施大纲中明确设置质量控制点。
在软件研制中实施软件开发阶段的评审,没有通过评审不得转入下一阶段。
5.1.5 总体室应在进度、资源、经费等计划中规定关于软件的内容,保证完成研制任务和使用、维护任务所需的资源;将软件列入实物配套表中,监督、检查软件按阶段完成情况。
情报标准化室负责组织软件的验收工作,负责软件的质量管理、监督、检查软件质量保证的执行情况,组织软件的测试和评审,以及软件生存周期内的各类重要信息的收集、整理、分析和反馈。
软件产品必须同硬件一样,进行考核和交付。
5.1.6 交付使用的软件必须是由情报标准化室出库已封存、现行有效的版本;由总体室领取和交付。
私人携带的软件不允许交付或提供使用。
5.1.7 凡按规定配置的专业计算机,必须专人专用,不得用户非本专业的其它任务。
计算机应采取防病毒措施并执行部相关保密规定。
5.2 软件开发
5.2.1 软件开发流程与硬件研制过程的关系
软件开发流程图见附录A。
产品配套软件的开发流程应按表1执行。
5.2.2 软件开发环境
在软件开发的技术和管理活动中,应尽可能选用相同的支持工具来完成编程、测试以及配置管理和文档管理。
5.2.3 编程语言
软件开发初期,同一产品配套软件源程序应尽可能用同一种高级语言编写。
表1:
5.2.4 软件开发程序
5.2.4.1 由总体室向外包单位提出软件研制任务书,任务书中应明确软件的关键等级。
5.2.4.2 软件项目组根据研制任务书或合同编制开发计划和质量保证计划报规划室,配套软件项目由软件项目组申报纳入技术配套表,总体室负责将开发计划纳入研制计划考核。
5.2.4.3 在研制的各阶段,总体室可根据具体要求组织制定软件研制质量控制要求,由研发中心主任批准后实施。
5.2.4.4 软件项目组是软件开发阶段管理的基本单位,成员一般由项目组长、配置管理员、组员组成,必须避免一项软件从设计、编程、配置到测试由一人完成。
软件项目组负责软件的具体开发任务,编制相应文档,并对其设计质量负责。
需求分析
根据用户提出的软件任务书,软件项目组应对所要开发的软件进行定义和需求分析,编制软件需求规格说明报告,经用户参与评审批准后,作为下一阶段工作的依据。
未经用户同意,不得修改这些要求。
软件设计
软件项目组必须保证软件设计完全满足软件任务书和软件需求规格说明。
设计应尽量简化,各分程序之间、模块时间和程序单元之间的依赖关系应减少到最低限度。
软件实现
软件实现时应尽量采用结构化方法自顶向下进行,使开发的软件具有良好的、清晰的结构。
软件测试
开发项目组按任务书或合同要求完成单元测试、组装测试和系统联调;按任务书或合同要求完成第三方确认测试,并向用户提供正确和完整的测试报告。
5.2.4.5 软件质量保证
软件质量保证计划:
软件开发初期,应根据产品具体要求,由经营规划部组织,总体室负责编制软件工程化实施大纲。
大纲应由研发中心主任批准。
软件项目组应根据软件级别和软件质量保证大纲在软件需求分析阶段制定质量保证计划,质量保证计划应由研发中心主任批准,由情报标准化室进行质量会签。
质量保证计划的制定参照附录B。
确定校验方法:
根据软件不同类型和级别,在软件任务书下达后,由研发中心主任去决定采用何种校验方法,并在质量保证计划中予以明确。
a)双岗制,应贯穿软件设计的全过程;
b)自检,由软件项目组检查所完成的开发工作和所编写的各种文档和程序;
c)互检,由软件项目组长负责组织组内人员互相检查。
评审:
在软件各阶段及系统转阶段前,软件应同硬件一样进行评审。
审批制度:
软件与硬件一样,实行三级审签制度。
更改控制:
软件更改必须履行严格的审批手续。
更改后要进行第三方确认测试或回归测试,更改前源软件配置项必须保留,记录可追溯。
更改后要进行回归测试,并更改相应文档,进行重新评审和验收。
5.4 软件文档管理
文档是软件的重要组成部分,是工作成功的体现,是后续工作的依据,是解决软件“透明性”设计和达到质量控制目的的基础。
新研制产品的软件文档应同硬件设计同样管理,主要内容是:
a)软件研制任务书;
b)软件需求规格说明;
c)概要设计说明;
d)详细设计说明;
e)软件测试计划;
f)程序;
g)软件测试分析报告;
h)软件使用说明。
5.5 提交验收和交付
提交验收和交付软件产品应与硬件同样要求。
5.6 外协软件的质量控制
在软件任务书或研制合同中,应有明确的质量保证条款内容。
质量保护增条款应包括如下内容:
a)双岗制要求;
b)阶段评审要求;
c)制定质量保证计划的要求;
d)执行软件工程化管理要求;
e)文档要求;
f)测试及验证要求;
g)信息反馈要求;
h)交付产品的质量证明文件要求;
研制单位可以根据实际情况与用户协商对此内容进行增删。
5.7 软件维护
已交付用户使用的软件产品发生维护,软件的更改需由研发中心主任批准;更改后(其更改控制要求同开发阶段更改控制)要进行回归测试,并更改相应文档,进行重新评审和验收;
软件项目组的维护活动应限定在已有系统的框架之内,必须在已有的设计和编码结构约束下做修改;应使用现有的测试数据进行回归测试,必要时要产生新的数据,对软
件修改及修改后的影响进行测试。
6 记录
B731-1 软件测试报告
B731-2 软件产品生产记录
B731-3 软件产品交接单
附录1:
流程
文档
软件可行性研究报告软件研制任务书
软件需求说明书软件测试计划书
概要设计说明书详细设计说明书需求分析评审报告
设计评审
程序代码可执行程序测试数据分析
评审验收报告
软件入库申请单软件更改入库申请单软件更改出库申请单软件出库申请单软件产品入库单
软件产品证明书
软件使用说明书软件产品交接单
软件开发流程
附录2:各阶段输出文档列表。