软件设计和开发控制程序1 目的和范围本程序规定了公司军用软件设计开发的要求,包括软件来发的基本活动、支持活动和管理活动等方面。
本程序适用于本公司军用软件设计开发过程。
公司军用软件分两类,一类属于硬件-软件系统,软件嵌入硬件内一并交付顾客。
对于这类情况,本程序只适用于其中的软件部分;一类是单纯软件作为产品交付顾客,本程序适用这类产品设计开发全过程。
2规范性引用文件下列文件对于本程序的应用是必不可少的。
凡是注日期的引用文件,仅注日期的版本适用于本程序。
凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本程序。
GB/T19001-2016 质量管理体系要求GJB 9001C-2017 质量管理体系要求GJB 2786A-2009 军用软件开发通用要求GJB438B-2009 军用软件开发文档通用要求GJB5235-2004 军用软件配置管理GJB 439A-2013 军用软件质量保证通用要求GJB5234 -2004 军用软件验证和确认GJB1267 -1991 军用软件维护GJB1268A -2004 军用软件验收要求GJB5716 -2006 军用软件开发库、受控库、产品库通用要求3 术语和缩略语3.1 术语3.1.1 新产品产品功能指标超出现有技术水平,工艺设备无法保障研制条件,必须采用新技术、新工艺、新器件(材料)、新设备才能满足用户要求的产品定义为新产品。
新产品含军队、军工单位立项委托研制项目以及公司自筹经费的自研项目。
3.1.2 软件与计算机系统的操作有关的计算机程序、规程和可能相关的文档。
3.1.3 软件开发产生软件产品的一组活动。
3.1.4 软件开发文件与特定软件开发有关的资料库。
其内容一般包括(直接或通过引用)有关需求分析、设计和实现的考虑、理由和约束条件;开发方内部的测试信息;以及进度和状态信息。
3.1.5 软件产品作为定义、维护或实施软件过程的一部分而生成的任何制品,包括过程说明、计划、规程、计算机程序和相关文档等,无论是否打算将它们交付给顾客或最终用户。
软件产品在开发过程中也称软件工作产品。
3.1.6 软件单元计算机软件配置项(CSCI)设计中的一个元素。
例如,CSCI的一个主要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或数据库。
软件单元可以出现在层次结构的不同层上,并可以由其他软件单元组成。
设计中的软件单元与实现它们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有一一对应的关系。
3.1.7 可重用软件产品为一种用途开发但还具有其他用途的软件产品,或者专门为了用于多个项目或一个项目的多种任务而开发的软件产品。
例如商业现货软件产品、需方提供的软件产品、重用库中的软件产品和开发方现有的软件产品。
每一次使用可以包括这些软件产品的全部或部分,也可以包括它的修改部分。
注:可重用软件产品可以是任何软件产品(例如需求、体系结构等),而不只限于软件本身。
3.1.8 软件配置在软件生存周期各阶段产生的各种形式和各种版本的文档、程序、数据及环境的集合。
3.1.9 软件配置项满足最终使用要求并由需方指定进行单独配置管理的软件集合。
计算机软件配置项的选择基于对下列因素的权衡:软件功能、规模、宿主机或目标计算机、开发方、保障方案、重用计划、关键性、接口考虑、需要单独编写文档和控制、以及其他因素。
3.1.10 软件配置管理为保证软件配置项的完整性和正确性,在整个软件生存周期内应用配置管理的过程。
3.1.11 软件保障为确保软件安装后能继续按既定要求运行,而且在系统的运行中能起到作用而发生的一系列活动。
软件保障包括软件维护、用户支持和有关活动。
3.1.10 软件可靠性在规定的条件下和规定的时间内,软件完成规定的功能且不引起系统失效的能力。
3.1.11 软件安全性软件不会引发影响人身安全的事故的能力。
3.1.12 软件可维护性软件被校正、被修改、被完善的容易程度。
3.1.13 软件成份计算机软件配置项中各不相同的部分。
它可进一步分解为其他计算机软件成份或计算机软件单元。
3.1.14 软件关键成份其错误可能导致系统发生危险,或使系统失去控制的软件成份。
软件关键成份包括:a)中断处理的软件成份(指含此功能的最小软件成份,下同);b)所产生信号能直接影响硬件部件或能对硬件进行自动控制的软件成份;c)所产生信号能启动安全性关键行为的软件成份;d)其输出是显示可靠性、安全性关键硬件状态的软件成份。
3.2 缩略语CASE-computer aided software engineering 计算机辅助软件工程;COM-computer operation manual 计算机操作手册;CPM-computer programming manual 计算机编程手册;CSCI-computer software configuration item 计算机软件配置项;DBDD-database design description 数据库设计说明;FSM-firmware support manual 固件保障手册;HWCI-hardware configuration item 硬件配置项;IDD-interface design description 接口设计说明;IRS-interface requirement specification 接口需求规格说明;IV&V-independent verification and validation 独立验证和确认;OCD-operational concept description 运行方案说明;SCMP-software configuration management plan 软件配置管理计划;SCMR-software configuration management report 软件配置管理报告;SCOM-software center operator manual 软件中心操作员手册;SDD-software design description 软件设计说明;SDF-software development file 软件开发文件;SDP-software development plan 软件开发计划;SDTD-software development task description 软件研制任务书;SDSR-software development summary report 软件研制总结报告;SIOM-software input/output manual 软件输入/输出手册;SIP-software installation plan 软件安装计划;SOW-software of work 工作说明;SPS-software product specification 软件产品规格说明;SQAP-software quality assurance plan 软件质量保证计划;SQAR-software quality assurance report 软件质量保证报告;SRS-software requirement specification 软件需求规格说明;SSDD-system/subsystem design description 系统/子系统设计说明;SSS- system/subsystem specification 系统/子系统规格说明;STD-software test description 软件测试说明;STP-software test plan 软件测试计划;STR-software test report 软件测试报告;STrP-software transition plan 软件移交计划;SUM-software user manual 软件用户手册;SVD-software version description 软件版本说明。
4 职责4.1 研发部是本程序的主管部门,负责组织软件的开发、评审和文档的审核。
4.2 研发部软件组负责软件开发全过程的组织、协调、实施工作,包括进行开发的策划、确定开发的组织和技术的接口、输入、输出、验证、评审、设计开发的更改和确认等,软件设计人员负责软件的设计和开发,负责编制软件文档。
4.3 项目经理负责项目分解、指标分配及软件各部分之间、软件与硬件之间的协调,明确关键性软件成份,制定可靠性、安全性及质量控制措施,确保可靠性、安全性要求的全面落实。
4.4 总工程师负责审核软件开发输出文件和成果;4.5 总经理负责批准项目可行性研究报告、项目立项报告。
4.6 质量管理部负责组织对软件开发过程进行监督。
4.7 综合管理部档案组负责军用软件“三库”的建立和维护。
5 要求5.1 软件采用软件工程化的研制方式,通过对软件需求分析、概要设计、详细设计、编码实现、文档编写、调试、测试、联调、评审与验收、交付使用等全过程的管理与控制,提高软件的可靠性和安全性,保障软件质量。
5.2 研发部软件组应统筹安排,确保军用软件的需求分析与软件实现、软件设计与软件实现、软件实现与软件测试施行“双岗制”。
5.3 软件关键级别按软件失效可能造成危险的严重程度,将软件的软件关键级别划分为四级,见表1。
表1软件关键级别划分5.4 软件规模按源码行数或指令条数将软件规模划分为五类,见表2。
表2软件规模划分5.5 可靠性、安全性一般要求软件的可靠性、安全性一般要求为:a)对于A级和B级软件,必须明确其冗余和容错要求,并进行多版本程序设计。
限于条件不能进行多版本程序设计时,应采取其他技术措施以确保安全性及可靠性,并将情况报告指挥系统;b)各软件成份的失效容限见表3;c)软件可靠性、安全性需求中必须包括对各种不期望事件加以响应的要求;d)关键软件成份多为实时嵌入式软件成份,对此类成份须确保其实时性,应通过采用适当的采样周期和适当的软件工作时序来保证其可靠性和安全性;e)软件应根据有关要求,进行软件FMEA和软件安全性分析。
表3不同软件成份的故障容限要求5.6 安全关键软件成份的设计5.6.1 不安全情况的检测a)设计时应重点考虑使软件能检测出系统中潜在的不安全情况和状态,并能将系统恢复到某个安全状态;b)软件应提醒操作人员注意到已检测到的异常情况、应采取的措施,以及安全的系统配置和状态。
5.6.2 接口软件a)接口软件必须能够识别合法的及非法的外部中断,并能从错误的外部中断事件中恢复到安全状态;b)接口软件必须考虑检测外部硬件输入或输出设备失效,并在发生失效时恢复到安全状态;c)必须采用可靠的校验方法保证数据传输的正确性。