还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
软件设计和开发控制程序1目的和范围本程序规定了公司军用软件设计开发的要求,包括软件来发的基本活动、支持活动和管理活动等方面本程序适用于本公司军用软件设计开发过程公司军用软件分两类,一类属于硬件-软件系统,软件嵌入硬件内一并交付顾客对于这类情况,本程序只适用于其中的软件部分;一类是单纯软件作为产品交付顾客,本程序适用这类产品设计开发全过程2规范性引用文件下列文件对于本程序的应用是必不可少的凡是注日期的引用文件,仅注日期的版本适用于本程序凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本程序GB/T-2016质量管理体系要求GJB9001C-2017质量管理体系要求GJB2786A-2009军用软件开发通用要求GJB438B-2009军用软件开发文档通用要求GJB5235-2004军用软件配置管理GJB439A-2013军用软件质量保证通用要求GJB5234-2004军用软件验证和确认软件失效的危险严重性等级IV(轻微的)事故说明轻于ni级的损伤,但义务不受影响
5.4软件规模按源码行数或指令条数将软件规模划分为五类,见表
2.表2软件规模划分软件规模巨大中小微嵌入式软件源码行数或指令条数n100,000n10,000n100,0003,000n10,000300n3,000n300非嵌入式软件源码行数n500,000n50,000n500,0005,000n50,000500n5,000n
5005.5可靠性、安全性一般要求软件的可靠性、平安性一般要求为a)对于A级和B级软件,必须明确其冗余和容错要求,并进行多版本程序设计限于条件不能进行多版本程序设计时,应采取其他技术措施以确保安全性及可靠性,并将情况报告指挥系统;b)各软件成份的失效容限见表3;c)软件可靠性、安全性需求中必须包括对各种不期望事件加以响应的要求;d)关键软件成份多为实时嵌入式软件成份,对此类成份须确保其实时性,应通过采用适全性;e)软件应根据有关要求,进行软件FMEA和软件安全性分析表3不同软件成份的故障容限要求关键性级别A级B级C、D级故障容限21注可根据实践情况,采用软硬件结合的办法到达这一容限目的
5.6平安关键软件成份的设想561不安全情况的检测a)设计时应重点考虑使软件能检测出系统中潜在的不安全情况和状态,并能将系统恢复到某个平安状态;b)软件应提醒操作人员注意到已检测到的异常情况、应采取的措施,以及安全的系统配置和状态
5.
6.2接口软件a)接口软件必须可以识别合法的及非法的外部中断,并能从错误的外部中断事件中规复到安全状态;b)接口软件必须考虑检测外部硬件输入或输出设备失效,并在发生失效时规复到平安状态;c)必须采用可靠的校验方法保证数据传输的正确性
5.
6.3人机界面a)人机交互软件必须使操纵职员用单一动作处理当前事件,退出潜在的不平安状态,并使系统规复到已知平安状态;b)对启动平安关键功能时,必须由两个或两个以上自力的操纵职员的动作完成,并有完善的误触发保护机制,以避免无意激活;c)操纵表现、图标及其它交互关系必须清晰、简明;d)人机交互软件必须能够检测出操作人员的不正确输入和操作,并提供各类手段使操作职员易于正确操纵及得到各类反馈信息
5.
6.4警报必须向操纵职员提供极明确的声光报警警报的设想必须使平安性关键警报极易与例行警报相区分6程序
6.1软件设计和开发过程和活动软件设想和开辟过程如图
1.图1软件设计和开发流程软件设想和开辟活动包括a)项目策划和监控;b)软件开发环境的建立;c)软件需求分析;d)软件设计;e)软件实现和单元测试;f)单元测试和集成;g)CSCI合格性测试;h)CSCI/HWCI集成和测试;i)软件合格性测试;j)软件使用准备;k)软件移交准备;1)软件验收支持;m)软件配置办理;n)软件产批评价;o)软件质量保证;p)纠正措施;q)联合评审;r)测量与分析;s)风险管理;t)保密性有关活动;u)分承制方的管理;v)与软件独立验证和确认(IVV)机构的协调;w)与相关方的协调;x)项目过程的改进
6.2软件文档软件开辟过程当中产生的文档如下a)运行计划说明(0CD);b)系统/子系统规格说明(SSS);c)接口需求规格说明(IRS);d)系统/子系统设想说明(SSDD);e)接口设计说明(IDD);f)软件研制任务书(SDTD);g)软件开辟计划(SDP);h)软件配置管理计划(SCMP);i)软件质量保证计划(SQAP);j)软件安装计划(SIP);k)软件移交计划(STrP);1)软件需求规格说明(SRS);m)软件设计说明(SDD);n)软件测试计划(STP);o)软件测试说明(STD);p)软件测试报告(STR);q)软件产品规格说明(SPS);r)软件版本说明(SVD);s)软件用户手册(SUM);t)软件输入/输出手册(SI0M);u)软件中心操作员手册(SCOM);v)计算机编程手册(CPM);w)计算机操作手册(COM);x固件保障手册FSM;y软件配置管理报告SCMR;z软件质量保证报告SQAR;al软件研制总结报告SDSR o上述文档视软件等级或顾客要求,可以剪裁
6.
2.1软件项目负责人根据合同或《软件研制义务书》对软件项目的开辟进行策划,编制《软件开发计划》
6.
2.2按计划对软件设计开发的各阶段进行评审软件研制任务书、软件需求规格说明、软件设计说明、软件测试和分析报告应进行正式评审做好评审记录,对发现的问题应进行分析并实施闭环办理623软件设想、测试工作由不同职员承担
6.
2.4软件设想和开辟各阶段应严格按有关尺度或规范编制软件文档,实施分阶段的办理软件设想开辟外包时应对外包方软件设想开辟能力进行考察并归入合格供方名单,实施动态管理;对外包方提出软件质量保证要求,参加其阶段评审,检查软件测试结果并参与验收测试,对提供的软件是否符合技术和质量要求予以确认
6.
2.6建立软件问题报告、分析和纠正措施系统,按规定记录、整理分析软件的故障数据,采取纠正措施实施闭环办理627软件设想开辟过程形成的各类文件应予以控制,设想义务完成后一并归档已归档软件的更改必须履行审批手续,更改后的软件应进行回归测试,并从头归档
6.3软件设想和开辟阶段
1.
1.1软件设计和开发一般分为五个阶段A)任务确定策划阶段;B)需求分析阶段;C)开发计划阶段;D)设计阶段,包括代码编制、单元集成、部件集成及相对应的测试;E)测试阶段;F)运行、维护阶段
1.
1.2每一阶段设计开发工作完成并达到规定的要求后方可转入下阶段工作
1.
1.3在软件设想开辟各阶段明确该阶段输入要求,并作为该阶段开展设想开辟工作的依据
1.
1.4软件设想开辟各阶段应严格按有关尺度或规范编制软件文档
6.4任务确定策划阶段设计开发任务明确后,应按以下步骤开展工作A)项目组编制《运行方案说明》(OCD),销售经理、项目经理会签,总工程师批准单独交付软件必须协调顾客(或顾客代表)同意后方可进行下一步工作;B)项目组编制《软件研制义务书》(SDTD);C)项目组编制《软件开发计划》(SDP);D)质量工程师编制《软件质量保证计划》(SQAP);E)项目组编制《软件配置管理计划》(SCMP);f)总工程师组织对SDTD、SDP、SQAP、SCMP进行评审
6.5需求分析阶段项目组编制《软件需求规格说明》(SRS),需要时编制《接口需求规格说明》(IRS)予以补充软件需求主要包括以下几个方面GJB1267-1991军用软件保护GJB1268A-2004军用软件验收要求GJB5716-2006军用软件开辟库、受控库、产品库通用要求3术语和缩略语
3.1术语
3.
1.1新产品产品功能指标超呈现有技术程度,工艺设备没法保障研制条件,必须采用新技术、新工艺、新器件(材料)、新设备才干满意用户要求的产品界说为新产品新产品含军队、军工单位立项委托研制项目以及公司自筹经费的自研项目
3.
1.2软件与计算机系统的操作有关的计算机程序、规程和可能相关的文档
3.
1.3软件开发产生软件产品的一组活动
3.
1.4软件开发文件与特定软件开发有关的资料库其内容一般包括(直接或通过引用)有关需求分析、设计和实现的考虑、理由和约束条a)功能需求;b)性能需求;c)数据需求;d)接口需求;e)环境和资源约束需求;f)测试要求;g)可靠性、平安性需求;h)可维护性需求;i)其他需求
3.
1.5功能需求a)必须给出软件的每一项功能及其目的,特性,并辨别主、次要功能;b)必须确定与功能相关的所有输入、处理、输出信息;c)必须确定系统是否有特殊要求或应急措施
3.
1.6机能需求必须定量地描述软件应满意的具体机能要求这些要求包括a)处理数据的最大容量;b)精度要求;c)最长响应时间;d)顺应用户需求变化的能力;e)其他性能需求
3.
1.7数据需求a)必须明肯界说所使用的各类数据;b)必须规定静态数据、动态输入输出数据及内部生成数据的逻辑结构;c)列出数据清单,明确对数据元素的约束;d)必须明确规定数据采集的要求和被采集数据的特性、要求和范围
3.
1.8接口需求必须指明软件与外部的各种接口关系,并说明各个接口的特性
3.
1.9余量设计在每个软件使用时,存数量、输入输出通道的吞吐量以及处理时间应留有20%的余量软件关键成份软件的关键成分应包括a)中断处理的软件成份;b)所产生的旌旗灯号能间接影响硬件部件或能对硬件进行自动控制的软件成份;c)所产生的旌旗灯号能启动平安性关键行为的软件成份;d)其输出是显示可靠性、安全性关键硬件状态的软件成份可靠性、安全性要求a)对于A、B级软件必须明确其冗余和容错要求;b)明确各种不期望响应;c)对于实时性软件成份,必须确保其实时性,同时要通过适当的采样周期和适当软件工作时序来保证其可靠性和安全性;d)进行可靠性、安全性分析
6.6设计阶段软件设想一般要求为a)应采用自上而下渐渐细化的办法将软件需求转换为软件设想,软件应采用分层结构,低层模块不得调用高层模块,并尽量削减同层模块间的相互调用;b)每个软件模块均应考虑相应的防错措施;c)对每个软件模块,必须肯定其存储量、输入输出通道及处理工夫要求,应保证在软件在使用时,所有计算机的存储量、输入输出通道及处理工夫留有20%以上的余量;d)必须确定该软件与其他系统的接口,明确数据量、效率、速率、格式、内容及换算要求等;e)有详细的单元测试计划及组装测试计划;f)完成《软件设计说明》、《软件测试计划》、《软件安装维护手册》、《软件操作使用说明》的编写
6.7测试阶段
6.
7.1软件测试工作流程软件测试由项目经理牵头,研发部软件组、质量管理部参加a)制定测试计划;b)建立测试环境;c)产生测试用例集;d)执行测试;e)分析结果,若通过则进行步骤f,否则修改软件及文档并从头测试;f)评估,满意则进行步骤g,否则进行补充测试;g)编写测试报告
6.
7.2测试种类和要求应根据软件关键级别按表4选择测试类型或项目表1测试的种类及要求测试类型代码审查单元测试组装测试确认测试强度测试可靠性测试安全性测试系统联试第三方测评软件等级A△△AA△△△A△B△△△Ao△△c△△AAoooAoDAAooo△注1:在表中“△”透露表现必选项目,“”透露表现可选项;注2小规模以下的单元测试和组装测试可以合并;注3C、D级软件可剪裁单元测试和组装测试,但应完成确认测试和系统联试
6.
7.3单元测试在程序单元完成并通过代码审查之后进行单元测试测试前应编写单元测试计划,设计并执行单元测试用例对于A、B级软件,语句覆盖率应达到100%,分支覆盖率应达到100%,达不到的要说明原因、弥补方法及分析对测试结果的影响根据详细设计说明、单元测试结果和发现的错误信息,评价每个单元的设计及其实现测试完成后,应完成单元测试分析报告
6.
7.4组装测试组装测试主要检验软件单元和(或)软件部件间的接口关系,逐步将软件单元和(或)软件部件集成成为一个新的符合设计要求的软件部件,最终形成软件配置项组装测试应在每个供组装的单元完成单元测试之后进行测试前应编写组装测试计划,建立组装测试环境,设计并执行组装测试用例根据概要设计说明、组装测试结果和发现的错误信息,评价软件结构的设计及其实现测试完成后,应完成组装测试分析报告
6.
7.5确认测试根据软件需求规格说明中界说的所有要求,制定确认测试计划,建立确认测试环境,履行确认测试用例根据软件需求规格说明、确认测试结果和发现的错误信息,评价软件功能、机能及其它需求的设想及实在现确认测试的软件必须是经过受控库管理的正式版本A、B级软件确认测试型号总体单位指定的第三方测试机构进行测试测试完成后,应完成确认测试分析报告
6.
7.6系统联试系统联试由分系统在系统(包括硬件和软件)综合试验中进行,设计师系统参加,考核软件是否满足系统的总技术要求,包括功能、性能、可靠性、安全性等要求
6.
7.7回归测试a)测试后又修改的软件,必须进行相应的回归测试;b)已归入配置办理的软件,修改后应进行相应的回归测试,并进行软件版本的升级c)关于测试类型,若进行强度测试和安全性测试,可以参考以下内容
6.
7.8强度测试强度测试是把软件强制在其设想能力极限,进而超越设想能力极限的状态下运行,以保证软件在饱和状态下的功能和机能的降低不会引发系统灾害性的故障
6.
7.
8.1强度测试环境强度测试必须在系统和软件设想的最终使用环境下进行假如最终使用环境不能顺应强度测试所施加的压力,其替换环境必须与最终环境有相同的硬件强度测试的其它部分的要求(如测试工夫长度)必须满意最终使用环境的要求
6.782被测软件版本强度测试所用的软件必须是最新批准的基准版本,并处于研制单位的配置办理下,这些软件必须由设想师系统预先同意的支持软件来生成
1.
1.
1.3文档的提供强度测试之前,与测试有关的文档,必须正式提供给测试人员使用
1.
1.2强度测试工夫长度软件强度测试工夫长度规定为在输入状态不断变化条件下,继续测试工夫一般不少于10h,且有充足的累计工夫;对于系统义务工夫长度小于15min的软件,测试工夫应为义务工夫长度的50倍以上
1.
1.
3.5强度测试内容强度测试的内容包括a)数据处理量超过设想允许最大处理量时,软件正常运行的能力;b)数据传输量、传输速率超过设计饱和值时,软件正常运行的能力;c)存储范围超过额定范围时,软件正常运行的能力;d)与实时处理有关的时间特性超出设计允许最大值时,软件正常运行的能力;件;开发方内部的测试信息;以及进度和状态信息软件产品作为界说、保护或实施软件过程的一部分而生成的任何成品,包括过程说明、计划、规程、计算机程序和相干文档等,无论是不是计划将它们交付给顾客或最终用户软件产品在开辟过程当中也称软件工作产品
3.
1.6软件单元计算机软件配置项(CSCI)设想中的一个元素比方,CSCI的一个首要构成部分、这种构成部分的一个部件、一个类、对象、模块、函数、子程序或数据库软件单元可以呈现在层次结构的不同层上,并可以由其他软件单元组成设想中的软件单元与实现它们的代码和数据实体(子程序、过程、数据库、数据文件等)之间,或与包含这些实体的计算机文件之间并不一定有逐一对应的关系
3.
1.7可重用软件产品为一种用途开发但还具有其他用途的软件产品,或者专门为了用于多个项目或一个项目的多种任务而开发的软件产品例如商业现货软件产品、需方提供的软件产品、重用库中的软件产品和开发方现有的软件产品每一次使用可以包括这些软件产品的全部或部分,也可以包括它的修改部分e)硬件降级使用情况下,软件正常运行的能力
6.
7.9可靠性、平安性测试对于A、B级软件,应由分系统组织进行可靠性、平安性测试,测试时应尽可能模拟其所在系统的实在环境可靠性、平安性测试应考虑以下几方面的内容a)对安全关键的最小软件成份,须单独进行测试,以确保其满足可靠性、安全性需求;b)对软件设想中用于提高可靠性、平安性的结构、算法、容错、冗余等计划,必须进行针对性的测试;c)应增加对可能导致系统故障或不安全的各种异常条件(如各种输入错误)下的测试;d)对在测试中发现的缺点,必须在纠正后,在同样条件下进行回归测试,以消除危险或将其风险降到可承受程度;e)选择适当的可靠性增加模型,通过可靠性测试实现可靠性增加,以满意对软件的高可靠性要求
6.
7.10第三方测评项目经理牵头,软件组、质量管理部参加,联系协调第三方软件测评单位,并配合其完成测评工作
1.
1.
2、运行、保护阶段
6.
8.1软件交付嵌入式系统软件可随产品进行验收交付流程一般为a)在软件产品归档同时,将母盘复制二份,一份作为工作母盘供生产复制使用,一份交付顾客;b)进行软件复制,应有检验职员参加并验证复制的正确性;c)依据生产计划,复制人员提取工作母盘,应填写《软件复制申请单》;d)复制完成后,操纵职员归还工作母盘,归档部门对母盘进行验证,符合要求后入库软件防护软件存储应满意防震、防潮、防静电、防电磁场的要求定期循环复制,每两年复制一次
1.
1.3管理软件配置管理由研发部负责,质量管理部监督
6.
9.1配置管理的任务软件配置管理的任务主要是a)确定配置管理项;b)建立配置办理项标识体制;C)对配置办理项的更改进行控制;d)提供软件产品;e)对软件版本进行控制与办理
6.
9.2配置基线划分在软件研制周期中,配置基线的划分如图2所示:配置项管理任务书需求分析说明开辟计划概要设计说明详细设计说明程序源代码测试计划测试报告研制流程系统界说基线功能需求分析分配软件设计开发软件实现实现软件测试产品验收交付图2配置基线划分
6.
9.3建立三库为实施软件配置办理,应建立军用软件“三库”办理,开辟库、受控库和产品库a)开发库建在软件组,受控库和产品库建在综合管理部档案组;b)经评审和批准的配置管理项应适时地纳入配置管理;c)提交给确认测试和系统联试的软件由受控库提供;d)客户使用的软件产品由产品库提供
6.
9.4更改控制a)对软件的修改,应严格履行审批手续,以软件更改单或软件文档更改单的形式进行修改,并将更改单一并保存;b)严格对软件接口的修改审批若软件对外接口确需修改,必须经相关系统会签,并提交客户领导审批;c)对已经测试过的软件进行修改时,必须进行相应的回归测试;d)验收交付后的软件要严格控制更改确需要更改时,要提出书面申请,并提交客户领导审批修改后,必须进行回归测试;e)对软件配置办理项的更改要做到XXX一致、文实相符
1.
1.4件归档要求注可重用软件产品可以是任何软件产品(例如需求、体系结构等),而不只限于软件本身
3.
1.8软件配置在软件生存周期各阶段产生的各种形式和各种版本的文档、程序、数据及环境的集合软件配置项满足最终使用要求并由需方指定进行单独配置管理的软件集合计算机软件配置项的选择基于对下列因素的权衡软件功能、规模、宿主机或目标计算机、开发方、保障方案、重用计划、关键性、接口考虑、需要单独编写文档和控制、以及其他因素
3.
1.10软件配置管理为保证软件配置项的完整性和正确性,在整个软件生存周期内应用配置管理的过程软件保障为确保软件安装后能继续按既定要求运行,而且在系统的运行中能起到作用而发生的一系列活动软件保障包括软件维护、用户支持和有关活动
3.
1.11软件可靠性在规定的条件下和规定的时间内,软件完成规定的功能且不引起系统失效的能力软件安全性软件不会引发影响人身平安的事故的能力
3.
1.12软件可维护性软件被校正、被修改、被完善的容易程度
3.
1.13软件成份计算机软件配置项中各不相同的部分它可进一步分解为其他计算机软件成份或计算机软件单元
3.
1.14软件关键成份其错误可能招致系统发生危险,或使系统落空控制的软件成份软件关键成份包括a)中断处理的软件成份(指含此功能的最小软件成份,下同);b)所产生信号能直接影响硬件部件或能对硬件进行自动控制的软件成份;c)所产生信号能启动安全性关键行为的软件成份;d)其输出是显示可靠性、安全性关键硬件状态的软件成份
3.2缩略语CASE-computer aidedsoftware engineering计算机辅助软件工程;COM-computer operationmanual计算机操作手册;CPM-computer programmingmanual计算机编程手册;CSCI-computer software configuration item计算机软件配置项;DBDD-database designdescription数据库设计说明;FSM-XXX固件保障手册;HWCI-hardware configurationitem硬件配置项;IDD-interface designdescription接口设想说明;IRS-XXX接口需求规格说明;IVV-XXX自力验证和确认;OCD-XXX运行方案说明;SCMP-software configurationmanagement plan软件配置办理计划;SCMR-softwareconfigurationmanagement report软件酉己置办理报告;SCOM-XXX操作员手册;SDD-software designdescription软件设计说明;SDF-XXX软件开发文件;SDP-XXX plan软件开发计划;SDTD-software developmenttask description软件研制义务书;SDSR-software developmentsummary report软件研制总结报告;SIOM-XXX软件输入/输出手册;SIP-XXX软件安装计划;SOW-software ofwork工作说明;SPS-XXX软件产品规格说明;SQAP-software qualityassurance plan软件质量保证计划;SQAR-software qualityassurance report软件质量保证报告;SRS-XXX软件需求规格说明;SSDD-XXX系统/子系统设计说明;SSS-XXX子系统规格说明;STD-software testdescription软件测试说明;STP-software testplan软件测试计划;STR-software testreport软件测试报告;STrP-XXX软件移交计划;SUM-XXX软件用户手册;SVD-XXX软件版本说明4职责
4.1研发部是本程序的主管部门,负责组织软件的开发、评审和文档的审核
4.2研发部软件组负责软件开发全过程的组织、协调、实施工作,包括进行开发的策划、确定开发的组织和技术的接口、输入、输出、验证、评审、设计开发的更改和确认等,软件设计人员负责软件的设计和开发,负责编制软件文档
4.3项目经理负责项目分解、指标分配及软件各部分之间、软件与硬件之间的协调,明确关键性软件成份,制定可靠性、安全性及质量控制措施,确保可靠性、安全性要求的全面落实
4.4总工程师负责审核软件开辟输出文件和成果;
4.5总经理负责批准项目可行性研究报告、项目立项报告
4.6质量管理部负责组织对软件开发过程进行监督
4.7综合管理部档案组负责军用软件“三库”的建立和维护5要求
5.1软件采用软件工程化的研制方式,通过对软件需求分析、概要设计、详细设计、编码实现、文档编写、调试、测试、联调、评审与验收、交付使用等全过程的管理与控制,提高软件的可靠性和安全性,保障软件质量
5.2研发部软件组应统筹安排,确保军用软件的需求分析与软件实现、软件设计与软件实现、软件实现与软件测试施行“双岗制”
5.3软件关键级别按软件失效可能造成危险的严重程度,将软件的软件关键级别划分为四级,见表
1.表1软件关键级别划分软件平安关键等级ABC软件失效的危险严重性等级I(灾难的)II(严重的)III(轻度的)事故说明人员死亡或系统报废职员严重受伤、严重职业病、系统严重损坏或义务失败人员轻度受伤、轻度职业病、系统轻度损坏或任务受影响软件安全关键等级D。