软件复用技术在科学计算软件中的应用研究
来源:六九路网
维普资讯 http://www.cqvip.com 第37卷第1期 航宅计算技术 Aeronautical Computing Technique Vo1.37 No.1 2007年1月 Jan.2007 软件复用技术在科学计算软件中的应用研究 李晓勇,薛 飞,鲁素芬,王- 敏 (中航第一飞机设计研究院第一研究室,上海200232) 摘要:首先介绍多层软件复用技术及它的两个实践形式,并讨论软件复用的应用策略;接着探讨 适合科学计算软件的开发模型;然后,描述民用飞机性能计算软件的开发以说明软件复用;最后,提 出软件复用在科学计算软件开发中的需注意的几点事项以及今后应用研究的方向。 关键词:软件复用;科学计算软件;开发模型 中图分类号:TP311 文献标识码:A 文章编号:1671-654X(2007)01-0091-05 引言 随着计算机技术的飞速发展,一方面,人们开发了 数量众多的科学计算程序用于型号研制项目之中,积 形式既有代码级又有二进制级。 2)基于设计模式的复用:设计模式是对某一类问 题的通用解决方案,实际上是一种设计方案和资料的 复用。 3)基于分析模式的复用:分析模式指领域内一组 相似应用的共同抽象。它可以看作是一种需求分析模 累了大量优秀的工程计算程序;另一方面,随着硬件水 平的不断提高、软件开发环境和人员的变更,有些软件 逐渐不能满足当前型号设计工作的要求,例如需要增 加新的功能,改善软件的易用性等。而自主开发的科 学计算软件一般都是采用经典的Fortran语言和命令 行式的交互界面,很多都没有严格遵守结构化程序的 设计思想,缺乏完整的设计文档,较难维护和修改。这 也就是“软件危机”表现之一,需要依据软件工程思想 进行解决,尤其是软件复用技术 的应用。它被视 为解决软件危机的一条现实可行的途径,实用的技术 型和资料的复用,是一种比设计模式层次更高的复用 技术。 1.2软件合成与软件集成 软件合成与软件集成技术是软件复用的两种实践 形式。软件合成是指软件间基于一定的软件构架模 型,按照特定的软件体系结构,通过某种标准的接口机 制进行无缝的连接,组装成新的具有某种功能特性的 软件系统或软件结构的活动过程。软件集成即软件系 有软件合成与软件集成等方面。 首先介绍软件复用思想和开发模型;然后,以性能 计算软件开发项目为例探讨软件复用技术应用方法; 统集成,是指对现有软件系统(软件构件、非软件构件 或遗留系统)按照一定的体系结构,通过特定的基础设 施(集成中间件),在分布式环境中进行同构或异构互 联、相互协作,并根据需要满足一定性能要求的活动过 程。 最后,提出软件复用技术在科学计算软件开发中需注 意的几点事项以及今后应用研究的方向。 1软件复用技术 1.1 多层次软件复用技术 这两种技术都需要某一体系结构的支持才能够达 到复用的目的,他们之间的主要不同点是:软件合成通 常适用于同构环境,它要求被复用的对象是为了复用 目的而设计的构件,属于纯粹意义上的复用,而软件集 成复用的对象往往是一些非构件化的遗留系统,侧重 于分布异构环境下构件问的集成。另外,在关键技术 软件复用是一种基于已有软件成分构造新系统的 开发过程。被复用的软件成分可以是现有的代码构 件,也可以是已有系统开发过程中生成的各种分析设 计资料。从复用层次上可以分为: 1)基于代码构件的复用:软件构件类似于标准化 的传统工业中的零部件,可以是函数、类和组件,封装 收稿日期:2006—12—14 修订日期:2007-01-24 研究的侧重点和主要应用目的等方面也是有区别的 (详见文献[2])。 1.3软件复用的应用策略 作者简介:李晓勇(1979一),男,陕西华阴人,助理工程师,硕士,主要研究方向为计算空气动力学,飞行力学。 维普资讯 http://www.cqvip.com 航空计算技术 第37卷 第1期 科研实践积累的软件主要如下几个特点: 1)一次性开发,由用户维护和升级; 2)非构件化的遗留系统; 3)开发文档不全面,维护性较差; 4)多数采用Fortran等结构化程序设计语言; 5)命令行形式的用户界面(UI)。 这些软件都经受了科研项目的考验,在运行过程 中,用户进行了大量的维护和修补工作,累积了许多的 实践经验。但是,随着需求的增长,维护和修改工作越 来越难以实现,最终需要升级换代。考虑到科研项目 的进度、工作的一致性和知识遗产的继承,采用软件复 用技术开发新软件不失为一种行之有效的捷径。 根据以上的背景信息,软件复用策略有三个主要 的方面: 第一,采用软件复用思想构建新的软件框架,以便 于今后的升级和维护。 第二,封装已有的遗留软件系统,开发中间层,利 用软件集成的方式集成于新软件。 第三,新开发的构件化软件模块,采用软件合成的 方式集成于新软件。如图1所示。 目标软件 层次软件 软件合成 代码 软件集成 设计 分析 资料 新开发模块 遗留软件系统 一构件 一非构件化 图1软件复用策略 2 开发模型 2.1主要的开发模型 在软件复用过程中,需要针对特定的问题选取适 当的开发模型 ]。适用于科学计算软件开发的模型 主要有: 1)瀑布模型(WM) WM(Waterfall Mode1)瀑布模型由W.Royece于 1970年提出,是最早的结构化开发模型,也称生命周 期模型。根据软件生存周期各个阶段的任务,瀑布模 型依次完成可行性研究、需求分析、系统设计、详细设 计、编码、测试和发布等各个开发阶段。它提供了软件 开发的基础框架,至今仍然被广泛使用。 2)增量模型(IM) IM(Incremental Mode1)螺旋模型由Mill于上世纪 70年代初提出并于80年代得到完善和发展。增量开 发把一个软件项目分成一个有序的开发周期序列,每 一个周期按照结构化生命周期思想完成一些特定软件 功能,向用户提交部分工作软件和文档。增量开发有 助于早期的和连续的质量评估,方便开发进度控制,避 免了在软件集成之后风险的继承。 3)快速原型化模型(RPM) RPM(Rapid Prototyping Mode1)根据已知的系统需 求,开发一个简化版的系统,实现系统的主要功能。用 户据此反馈回需要增加的需求及进一步可明确的需 求,开发者继续修改和增加原型系统,直到明确用户全 部需求。 4)面向对象螺旋型开发模型(OOSM) OOSM(Object Oriented Spiral Mode1)开发过程一 般分为三个阶段:通过面向对象分析(OOA)了解问题 域内该问题所涉及的对象和对象问的关系,建立问题 模型;通过面向对象设计(OOD)调整、完善和充实由 OOA建立的模型;通过面向对象编程(OOP)实现OOD 提出的模型。与瀑布模型不同,各个阶段的划分不是 非常严格,通常在分析、设计和实现等阶段需要进行反 复迭代。 2.2开发模型的选择 科学计算软件的开发可以分为计算内核和图形用 户界面(GUI)的开发两个部分。开发模型的选择依据 软件类型、需求明确程度以及进度要求等而定,可以选 择一个主要的模型,混合其他模型共同完成整个项目。 计算内核的需求通常比较明确可以采用传统的瀑 布模型或者增量模型。GUI的需求一般并不能完全确 定,可以选择快速原型化模型或者面向对象螺旋型开 发模型。 3 性能计算软件的开发过程 3.1性能计算软件背景 GAPP(V1.0)软件是80年代中期由各大航空研 究所共同开发的军民通用的性能计算软件。在某型民 机型号的研制过程中,其计算结果经历了数次技术评 审,计算精度得到了专家的认可。但是,GAPP 1.0不 能满足计算AFM和FMS数据的要求,需要开发新的 民用飞机性能计算软件。新软件(GAPP 2.0)的目标 和要求是: 1)功能完善 提供AFM数据计算模块,以及FMS的PDB(Per— formance Database)和VDB(V speed Database)数据的 计算功能。 2)计算精度高 精确定位计算边界,提供比GAPP 1.0更高的积 维普资讯 http://www.cqvip.com 2007年1月 李晓勇等:软件复用技术在科学计算软件中的应用研究 ・93・ 分精度。 3)易用性好 采用图形用户界面(GUI),并兼顾科研工作者的 习惯和工作效率。 4)工期短 须在2个月内完成。 3.2开发模型和框架设计 相对于瀑布模型,增量模型(IM)更容易控制软件 开发进度,而面向对象螺旋型开发模型(OOSM)则适 用于GUI的开发。因此,GAPP 2.0采用IM控制整体, 利用OOSM进行GUI的开发。依据先易后难的原则, 首先完成FMS的PDB的开发,然后完成AFM和VDB 模块。 合理的软件框架是软件复用的基础,科学计算软 件的框架主要有六种方式 j。性能计算的实时监控和 交互特性比较弱,采用文件作为接口集成各个计算模 块是可以接受的。软件框架见图2。 一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一一‘一一’ :计算内核 : 新计算模块 I(构件) l Il GAPP!(非构件).0计算模块 计算结果文件 (转换器) 场 长 限 重 l I蒌l I藿l lV lIV l lV l l萎l l霎 爬莛譬 GUI 图2 GAPP 2.0的软件构架 整个开发树采用一级目录形式,方便集成更多模 块。 3.3模块和接口设计 根据性能计算特点,软件模块见图3。 模块接口主要有输入解析器与Fo ̄ran内核模块 之间的接口(文件)、输入界面与输入转换器之间的接 口(类)、输出转换器与Fo ̄ran内核模块之间的接口 (文件)以及输出界面与输出转换器之间的接口(类) 等四部分内容。其中,虚线表示的解析/转换器分别是 输入参数类的操作和输出结果数据类的操作,如此表 述方便理解。 3.4基于.NET PropertyGrid控件的GUI设计 用户界面是应用软件的重要组成部分,对一般用 户来说,界面就是整个系统,可以说用户界面设计得好 坏直接关系到该应用软件的成败;对于开发者来说,用 户界面的开发和执行占整个系统开发和运行实践的很 大一部分。 采用.NET框架的PropertyGrid控件适用于配置大 量的参数,同时符合科研人员的工作习惯,相比传统的 对话框形式,更加简易、直观和高效(见图4)。 l 1—1 GUI I :1—2解析/转换器 l一输入模块I :一输入模块 l一输出模块l I、L…: 璺 … 圈 图3 GAPP 2.0一级模块 图4输入界面 配置参数的输人类见图5。 图5输入参数类 维普资讯 http://www.cqvip.com 航空计算技术 第37卷 第1期 3.5软件复用 性能计算软件的软件复用主要内容见下表。 软件复用内容表 设计模式复用表现在全新的数据结构方面,例如 新开发的计算内核统一采用了结构体STRUCT—PF— COM作为计算操作变量。 TYPE STRUCT PFC0M REAL T REAL X REAL Y REAL Z REAL MACH REAL VCAS REAL VTAS REAL THETAK REAL PSIK REAL MU REAL CL REAL CD REAL CC REAL ALPHA REAL BETA REAL W ENDTYPE 分析模式复用表现在对输入配置参数设计分析的 方法,采用PropertyGrid处理参数配置的方式可以为其 它科学计算软件的设计提供有益的经验。 采用软件集成的方式集成了GAPP 1.0中的起 飞、基本、下降、巡航、爬升和着陆模块,见图6。而新 开发的构件(例如复飞和进场性能等),则通过软件合 成方式集成于GAPP 2.0。 4结束语 利用软件集成技术复用已有科学计算程序,并选 择合理的软件开发模型,采用文件作为接口,能够快捷 的完成所需的功能,该思路具有一定工程实践意义。 软件复用的需注意: 1)采用合理的软件复用方式:在工期要求严格时, 采用软件集成的方式有利于保证软件进度,但是,新的 计算模块必须采用软件复用的思想开发,即构件化,这 有利于今后的维护和升级工作,也是软件复用性的前 进方向; 匝 互圈匝匣圈 场长限重 .1 起飞性能 杀’ 车能量限重 最最大平飞高度 l 、{起飞 l l ■ 最大巡航速度 爬升升限 大起飞重量(改进爬升起飞性能 轮胎速度) /| 巡航升限 爬升限重(梯度) / 基本 下降性能 净航迹参考梯度 . 等角度下降陛能 最后 乏爬升梯度 航路爬升净梯度 下降 远程巡航速度 靛路爬升速度 巡航耗油率 正争梯度 嘏 研重量 , 选近 毫晦 度 葭 巡航 N 爬升性能 最大着陵园重量(着陆爬升)最大着陆重量(进近爬升) J l 高低速包线边界 l争朊逦(越障) 爬升『 稳定转弯的 最大着陆重量(轮眙速度)r J着陆l l 梯度损失 复飞性能 失i毛速度vs 进近 子卜着陆爬升速度 j圭度 进场性能计算 起飞最终殴速度 [二巫巫 互] 图6集成遗留软件系统 2)注重设计模式和分析模式的复用:软件可复用 的程度随着设计模式和分析模式的进化而提高,不断 的提炼和积累方能解决持续增加的维护和升级要求; 3)选择适用的软件框架:首先确保软件质量,然后 再考虑方便软件复用技术的使用。 软件复用的广泛应用需要软件框架(软件体系结 构【71)的支持,研究科学计算软件领域适用的框架,将 是今后软件复用技术在科学计算软件应用研究的主要 方向之一 参考文献: [1] 和力,吴丽贤,陈晓林 基于构件和模式的多层次软件 复用技术[J] 计算机应用研究,2005,22(11):77— 78. [2] 黄靖,赵海光 软件复用、软件合成与软件集成[J].计 算机应用研究,2004,21(9):l18—120 [3] 周珂,李子丰.基于UML构件分析的软件复用技术[J]. 航空计算技术,2004,32(2):51—53. [4] 黎闯.软件开发过程的选择模型[J] 计算系统应用, 2005,3:91—94 5] 林正奎,杨德礼.软件开发模型研究:发展、问题和挑战 [J] 计算机应用研究,2005,22(3):6—9 [6] 秦明钰 科学计算软件开发框架的设计与实现[J] 北京 电子科技学院学报,2004,12(4):69—74. 维普资讯 http://www.cqvip.com 2007年1月 李晓勇等:软件复用技术在科学计算软件中的应用研究 ・95・ [7] 梅宏,申峻嵘.软件体系结构研究进展[J].软件学报, 2006,17(6):1257—1275 Research on Software Reuse for Scientiifc Computation LI Xiao-yong,XUE Fei,LU Su-fen,WANG Min (Department 1,The First Aircraft Institute ofAVIC一1,Shanghai 200232,China) Abstract:Various level software reuse and two successful practice examples of the software reuse are firstly showed in this paper,and the usage strategy of software reuse is provided.A software development model is secondly discussed for scientiifc computations.And then,the development of civil aircraft performance software is described as a demonstra— tion of the software reuse.Finally,some advices and further iobs about the software reuse for scientiifc computations are proposed. Key words:software reuse;scientific computation;software development model (上接第90页) 台湾大学机械工程学系/东北大学计算中心. 参考文献: [3] GJB3206—98技术状态管理宣贯材料[s].国防科技工 GJB3206—98技术状态管理国家军用标准[s].国防科 业标准化研究中心,2004,12. 学技术工业委员会,1998—03—16. [4] 网络办公自动化系统开发分析[z].中国论文下载中心, [2] 庞士宗/陆一平/雒兴刚,等.跨平台的三维参数标准零 2005,11. 件库与PDM系统的集成[z].东北大学欧磊技术中心/ Application and Research of Product Data Management(PDM)System on Configuration Management HUANG Xing-yuan (China Airborne Missile Academy,Luoyang,Luyang 47 1 009 1,China) Abstract:Based on the 4 fundamental contents of the Configuration Management,which are the Configuration Iden— tiifcation(CI),the Configuration Control,the Conifguration Status Accounting and the Configuration Audit,incorpora— ting the actual flow of OA system,this paper introduces the Configuration Management and its applications on product R &D processes,through the employment of the typical application software,Product Data Management System.Also,the problems emerging in the process of the application and its solutions are discussed in this paper. Key words:configuration rrianagement;PDM;solution;standard