基于GJB5000A框架的软件复用方法思考

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:candysan
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:针对科研院所软件研制过程中存在大量重复开发问题,分析了软件复用方法在软件研制过程中实施的难点,同时提出了在GJB5000A框架下对软件复用过程进行定义及组织实施的方法,为拓展科研院所的软件研制过程管理提出了新的思路。
  关键词:软件复用;GJB5000A;软件质量管理
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)12-0096-02
  On the Methods of Software Reuse Based on GJB5000A Framework
  WANG Ying
  (China Electronics Technology Group Corporation No.20 Research Institute Xi’an 710068,China)
  Abstract: In view of the existing problems in the process of repeated development of software development in scientific research institute, analyzes the difficulties in the process of implementing software reuse method of military software development process, and puts forward the definition and method of organization and implementation of software reuse process under the framework of GJB5000A, put forward new ideas for the development of software development process management.
  Key words: software reuse; GJB5000A; software quality management
  随着以国际航电系统为代表的软件规模突破一千万行,大规模软件研制已经迎来了爆炸式增长的时代,大规模的应用使得软件结构越来越复杂,开发周期变长。在科研院所中如果所有的软件项目都采取传统的方式研制,就可能出现耗费大量的时间和人力在较低水平重复上,难于保证如期交付。为了缩短研制周期,开发人员自发但无序的使用相类似软件文档、部件、代码等的情况屡屡出现,这种做法给软件研制带来了极大的质量风险,未经认真评估的应用差异和软件环境会给软件研制带来难以估量的安全性、可靠性隐患。所以,在GJB5000A过程管理框架下以组织的角度对软件复用进行过程定义,科学有效的利用软件复用技术,帮助项目组充分利用已有资源、避免重复劳动、提高生产效率和软件质量就显得尤为必要。
  1 科研院所软件复用的现状与难点
  1.1 关于软件复用
  软件复用是一种以已有工作为基础, 充分利用过去应用系统开发中积累的经验,将开发焦点集中在当前应用系统的特性部分的一种开发方式,这种开发方式使软件开发过程不再从零开始,而是在充分评估新旧软件需求的基础上,对软件生产过程中所有可用劳动成果的复用,复用范围不仅仅局限于软件代码,还可以包含软件开发计划、需求分析、设计文档、测试用例等。复用方式包括黑盒复用(源代码不可得而不对软件进行修改)、玻璃盒复用(源码可得且不对软件进行修改)、灰盒复用(源码进行少量修改)和白盒复用(在原设计基础上对软件进行变更)。复用层次可以分为代码复用、设计与分析复用、测试用例及测试信息复用等。复用关键技术包括软件构件技术、软件架构技术、软件再工程、领域工程、开发系统技术及本文着重关注的以GJB5000A为框架的软件过程技术等。
  1.2 软件复用技术应用在科研院所软件研制过程中的现状与难点
  科研院所软件研制过程一般要比商用软件研制有更多的约束,自2005年开始在GJB5000系列标准的约束下进行软件研制过程管理在科研院所中被广泛推行,目前,通过GJB5000A相应级别的能力评价是承研相应级别软件项目的必要条件。
  GJB5000A共定义了五个级别的22个过程域,用预先确定的过程域来定义组织的改进路径。当组织满足了一组过程域中全部目标后则可被判定为达到了某个特定过程域。目前通过GJB5000A软件成熟度能力评价的科研院所最高级别到达三级(已定义级)水平,大部分单位还停留在二级(已管理级)水平上,即仅能确保其过程能按照方针进行策划并得到执行。这种管理级别下的软件复用缺少组织的参与,没有足够及可靠的复用库供项目选择,所以软件复用行为更多的体现的是仅与某个项目组或者某个设计师相关的单个行为,主要表现在设计师个人能复用自身的设计模块,其他设计师无法复用,或者需求基本上没有变化的两个项目间有可能实现复用,有需求变化的软件无法实现复用。
  此外,过程管理方法也给复用带来了极大的障碍。一方面,在过去的管理习惯中,复用的部分很难计算工作量,甚至不计算工作量,而且在没有配套构件库的情况下,有需求的复用者只能在已有的项目中寻找自己需要的可用构件,这个识别和判断过程的效率可能比重新策划、编制的还要低,使得设计人员不愿意使用复用方法;另一方面,所有可复用部分都是无偿提供给其他项目使用的,这使得软件研制人员在设计过程中考虑构造通用模块或者可重用构件的积极性不高。所以,只有在过程管理上对复用建立起过程定义、在政策上鼓励复用方法、在培训方面提升复用技术教育、才有可能有效推广复用技术。
  2 GJB5000A质量管理体系下的软件复用
  2.1 软件复用的过程定义   任何一个软件项目,无论是基于系统开发或者是构件开发都要经历软件生命周期中的相关步骤,这些步骤放在GJB5000A质量管理体系的框架下观察,都可以看做是有标准的、可重复的、可持续改进的过程,组织应分级别定义软件复用过程,二级过程域管理应侧重复用过程的流程定义,三级过程域管理应建立起从构建开发到系统集成全过程的规程和准则。在项目执行过程中,已纳入二级管理的项目可以在相类似的项目中横向进行需求分析后定义复用构件,已纳入三级管理的项目则可以充分对组织已定义的标准过程进行剪裁后实施复用。
  2.2 组织级过程域定义与实施
  2.2.1 组织过程定义(OPD)与组织过程焦点(OPF)
  软件复用方法在实现这两个过程域的目标时应在建立起与复用相关的标准过程,同时定义好对标准过程的剪裁方法,如复用时的估算方法和模板、评审级别定义、测量项与测量目标、标准工作环境;为项目组定义复用方法下可选择的生命周期模型;建立软件复用组织资产库,并为资产库提供目录和检索方法,制定对复用组织资产的维护、修订过程,制定项目使用复用资产库的约束和规则,制定鼓励项目组丰富、更改库内容的相关条款。
  2. 2.2 需求开发(RD)
  需求开发的目的在于产生并分析顾客、产品和产品部件的需求。为引出顾客需求,组织可以建立《需求调研单》等相关工具充分了解相关需求,寻找可复用机会,有复用可能时建立《需求比对表》,内容至少包括需求项、功能、性能、接口、约束、环境等关键内容,甄别筛选可复用构件,并将其按优先级排序后,初步确定复用方案和新研方案,形成《用户需求列表》和《用户需求规格说明书》。其次,建立起产品和产品构件需求,着重关注内部接口关系,构件间的跟踪关系等,同时对需求进行最终确认,这个步骤基本确定了复用度和复用方式。组织级可以根据软件关键性等级区分复用方式,如没有任何更改的项目可以完全复用,存在文档或者接口更改的项目应依据其关键性等级和软件更改的程度定义复用方式等。
  2.2.3 其他相关过程域
  软件开发组织还应定义好与软件复用技术培训相关的组织培训(OT),将软件复用技术纳入技能培训课程计划;定义与贡献复用组织资产库的集成项目管理(IPM);定义复用方法解决方案和评价准则的技术解决方案(TS)等系列相关过程域。
  2.3 项目级软件复用实施
  2.3.1 软件项目复用可行性评估
  评估在项目的系统分析与设计或早期策划阶段进行,主要对项目的需求和组织资产库中的可复用构件的需求进行分析,形成《软件复用可行性评估报告》。主要实施步骤如下:
  1) 分析《软件研制任务书》需求,通过和顾客交流进行需求确认,形成需求列表,根据需求内容识别复用机会。将项目按照CSCI为单位进行初步分解,依据《需求对比表》确定复用类型。
  2) 黑盒或者玻璃盒复用被确认后直接进入下一步的复用流程。灰盒或者是白盒复用则应进一步区分复用层次是文档的修改(不涉及需求和设计文档)或者是代码更改。形成《复用构件评估表》,内容包含接口类型、算法、模型等内容的比对。结合软件关键性等级,评估产生变更的有效代码行占复用软件的比例。
  3) 提交《软件复用可行性评估报告》进行评审,评审应最终确定项目的哪些CSCI(部分或全部)可采取组织资产库中的哪个构件进行复用。
  2.3.2. 复用的开发过程策划
  通过可行性评估,经评审同意进行复用的项目应依据GJB5000A软件策划过程域的要求对复用部分进行策划,策划内容包括:定义生命周期模型(白盒、玻璃盒复用不适用)、项目估算、确定项目资源、编制进度表、制定数据管理计划、利益相关方参与计划、风险管理计划、测量分析计划等内容。
  着重要对配置管理和质量保证进行详细策划,其中要对复用软件建立单独的配置管理库,重新配置配置标识,不得与被复用项目混淆。建立配置控制机制,其中包含收集被复用项目的变更信息,确定当前项目是否同步变更,及在调试过程中发现被复用项目缺陷的反馈机制。建立质量审核体系,包括过程审核和产品审核,其中过程审核着重应对配置管理进行审核,其他过程视复用开发过程定义对审核进行策划,其中包含对项目任务分配、进度、测量、评审过程等审核;产品审核包括全生命周期中所产生的所有工作产品的审核。
  所有策划内容应形成《软件复用计划》,计划中除对以上内容进行详细说明外,同时还应明示因复用可能带来的风险,同时提出有效缓解措施。
  2.2.3复用的过程监控与集成
  复用过程开始实施后,所有在被复用软件上进行的变更都要依据《变更控制规程》严格执行,质量审核应随时关注变更的范围和内容,对测量分析过程进行审核,如对被复用软件的变更超出了原估算范围,则应重新评估复用方法和类型。所有部件开发完成后应对进行产品集成准备,确保复用软件的内外部接口与当前使用环境的兼容性,对部件进行组装,对产品进行最终的验证和确认。
  3 总结
  研究表明,软件开发过程中如果复用程度达到50%,可以帮助提高40%生产率、降低40%开发成本、降低50%软件缺陷,可以从根本上提高软件生产效率和质量。规范的使用软件复用技术将会是科研院所软件研制实现工业化生产的必然趋势。虽然目前国内尚缺少指导性强的行业标准,且缺乏真正的通用复用部件。但组织如果能持之以恒的在GJB5000A框架下对软件复用过程的定义进行探索和研究,项目组在实施过程中必能获益。
  参考文献:
  [1] GJB 5000A-2008军用软件研制能力成熟度模型[S].
  [2] 杨芙清, 朱冰, 梅宏. 软件复用[J]. 软件学报, 1995, 6(9): 525~533.
  [3] 石柱. 军用软件研制能力成熟度模型及其应用[M]. 北京: 中国标准出版社, 2009.
  [4] IEEE Std 1517-1999(R2004)[S]. IEEE Standard for Information Technology——Software Life Cycle Processes——Reuse Porcesses. 2004
其他文献
有效的数据管理要求低成本存储和高速数据转移,因此提出了数据密集型网格应用到导航系统中,对传统的数据网格访问模型做了改进,从而减少车辆节点查询的响应时间,保障了大量分
摘要:《数据结构》课程是计算机专业的一门专业课,是高职学院与本科院校都要开设的一门课程。这门课理论性与逻辑性比较强,因此对主讲老师的备课、授课等各方面也有很高的要求。为了让老师在备课时对本课程有个大概的了解,该文从课程定位与课程目标、课程内容体系与教学设计、 教学方法与教学手段、教学资料和教学评价这五个方面对《数据结构》这门课进行了说课阐述。  关键词:《数据结构》;说课;计算机专业;备课  中图
本文描述了一种新奇的SOI技术:中子辐照单晶硅形成半绝缘材料,经激光扫描退火恢复表面层的半导体特性并由此组成了SOI结构.在这个结构上我们制作了n沟MOSFET.本文研究了这种
当今社会早已步入了信息时代,经济和科学技术飞速发展,时代的发展进一步对人才提出了更高的要求。因此,教育教学的方式也要发生改变。结合最近几年正在迅速崛起的移动数字平台,使
实验教学平台建设发挥着越来越重要的作用,该文对实验教学平台进行了需求分析、系统设计、数据库设计和模块的实现,构建了一个柔性实验教学平台,使全体教师和学生共同参与实
定理设f(z)是下级μ有穷的亚纯函数,P_4是f~(i)(z)的非零有穷亏值数,而f~(0)(z)=f(z);当i为负整数时,f~(i)(z)为f(z)的(i)次原函数(若存在的话).若对某一正整数k, ??和?? 则f
该文在长期的课程改革的经验基础上,以基于工作过程教学理论作为指导,对教改实践做了经验性的总结,并提出了存在的问题,旨在为职业学校的计算机教学提供有意义的参考。
该文详细介绍校园机房中二层交换机VLAN的划分,通过架设Linux服务器做网关,配置NAT规则,让多VLAN能同时访问Internet,并以实例加以说明。给校园机房组网提供一个可行的、稳定的组
本文探讨一个食饵、捕食者、空小区域之间关系的模型.研究一个三维非线性微分方程组论证它的平衡点的稳定性和周期解的存在性.
Sigma-1受体(Sigma-1 receptor,σ1R)主要参与调节细胞应激反应和细胞稳态,并与许多神经退行性疾病及肿瘤的发生发展密切相关。烷氧基异恶唑类化合物是一种新型的σ1R受体抑