基于模型软件开发

2024-09-24

基于模型软件开发(精选12篇)

基于模型软件开发 篇1

0 引言

随着制导武器装备向数字化、信息化、智能化、通用化程度的不断提高,在高新制导武器装备中的软件正面临着巨大的挑战,其研制周期越来越短,同时软件质量也越来越高,这迫使制导武器装备系统中的软件研制必须采用更高效、更规范的软件开发模型,才能满足这两方面的要求。

在软件工程发展完善的过程中,形成了许多种软件开发模型,几种常见的软件开发模型有:瀑布模型、增量模型、敏捷模型和智能模型。每种开发模型都有其优缺点,各自的适用范围也不一样。对于不同的软件系统,可选用不同的软件模型,也可根据待开发软件的特点,选用多种模型相结合的方式。

本文以一个典型的制导武器系统软件承研单位的软件开发过程为例,提出了一种不同研制阶段采用不同软件开发模型进行软件开发的方案,并详述了具体的实施过程。

1 制导武器系统软件特点

制导武器系统软件属于军用型号项目的配套软件,软件规模大多为中小型,其特点如下:软件研制周期长,研制分阶段进行;软件安全性和重要性等级高;研制任务紧,必须按时完成开发任务、及时列装使用;软件专业性强、实时性要求高,涉及知识面广,开发复杂度比较高;软件需求变化大,软件更改频繁。

2 软件开发模型研究

本文实例是某制导武器系统总体单位(文中称A单位),负责某型制导炸弹军用型号项目配套软件研制。

该型制导炸弹型号项目的研制工作分为三个阶段进行:方案阶段(原型样机)、工程研制阶段(初样阶段、正样阶段)和设计定型阶段。在每个阶段,软件研制工作的要求和目的都不太一样。因此,该项目的配套软件研制开发工作也分为三个阶段进行,与型号项目的研制工作阶段保持一致,即同样分为方案阶段、工程研制阶段和设计定型阶段。

针对A单位软件研制特点,本文提出如图1所示的软件开发模型与型号项目研制阶段的对应关系。

2.1 方案阶段软件模型

项目的方案阶段也是软件研制的起始阶段,在这个阶段软件开发人员对系统需求和软件需求理解不明确、不充分,理解无法一步到位,再加上用户需求在此阶段变化大,因此,软件项目组采用敏捷开发模型进行软件开发,首先第一步是在一个比较短的周期内,快速交付一个满足基本功能和性能要求的、可进行全弹地面系统联调联试“原型机1(软件)”。然后,通过节点评审会,用户提出反馈意见及修正需求,开发方进一步明确需求,进入第二个开发周期的迭代。通过不断迭代,软件开发人员进一步明确、完善软件需求,对软件架构设计、详细设计不断更改。软件设计实现过程,是基于原型机的迭代过程。详细实施过程如下图图2所示:

2.2 工程研制阶段软件模型

工程研制阶段(初样阶段和正样阶段),就是在原型机的基础上做适应性修改。相对而言,软件人员对系统和软件需求的理解比较到位,用户需求变更减少,软件主体已经形成,基本功能和部分性能已经实现。因此,在此阶段,可采用瀑布模型与智能模型相结合的软件开发模型进行软件开发工作。

由于A单位软件开发基础薄弱,软件工程化管理正处于起步阶段,选用瀑布模型相对比较容易操作、维护和管理。型号项目软件开发前期大部分需求已确定,软件的开发可以按照瀑布模型的固定顺序有计划的开展工作。以文档驱动的瀑布模型,极大程度上减小了在较长软件研发周期中,因技术人员时有变动所带来的开发风险,保证了软件的可靠性、稳定性。

同时,制导武器系统配套软件还具备涉及知识面广,专业性的特点,涉及的知识领域包括:惯性导航技术、制导控制系统设计和数字处理器原理等。而软件开发人员并不是这些领域的专家,为了保证武器装备的正常使用,必须在使用瀑布模型进行软件开发的同时还要融入智能模型的核心思想,即在软件开发过程中引入专家系统/知识库的支持,以指导软件开发人员在软件开发过程中以专家的水平解决专业性强的、复杂的问题。瀑布模型与智能模型的具体应用如下图3所示:

2.3 设计定型阶段软件模型

在项目设计定型阶段,全弹状态(包括各配套软件)基本已固定,全弹主要进行地面试验和飞行鉴定试验,对于软件来说,主要工作为完成软件第三方定型测评。

在此阶段,软件的变更较前期阶段减少很多,除非软件第三方定型测评发现问题、设计定型阶段大型试验定位的软件问题以及用户需求变更(极少发生),才会导致软件更改,因此采用瀑布模型的简化版“维护模型”,不仅保证了软件的质量,又降低了软件开发成本。

维护模型的分为:维护分析、维护实施、确认测试和维护验收评审四个阶段。

第一个阶段主要是针对出现的问题进行需求和设计改动分析;第二个阶段执行软件修改;第三个阶段进行软件回归测试;最后一个阶段进行维护总结。

3 结语

本文创新性地提出了一种基于制导武器系统软件不同研制阶段采用不同软件开发模型进行软件开发的方案。此方案已经在A单位某制导炸弹型号项目上成功应用,保证了项目研制工作的顺利进行,有力的保障了软件和武器系统质量。2015年7月,以该型号为GJB5000A的试点项目,A单位顺利通过了总装GJB5000A评价组《军用软件研制能力成熟度模型》二级正式评价。

通过此方案的成功应用,可以得出以下结论:

(1)合理制定软件开发模型,使软件开发活动科学、有序的进行,对提高软件开发效率,降低开发成本和风险,有效保证软件和武器质量发挥巨大作用;

(2)对于不同项目或同一项目的不同阶段,可使用一种开发模型,也可多种模型互相结合;

(3)为后续项目提供了技术基础,后续项目可在应用中不断探索如何取得最佳效果。

参考文献

[1]韩鹏.小规模团队的敏捷开发研究[J].软件学报,2012,1(2):12-15.

[2]邵山,付塍强,姚方圆,郑义.敏捷开发在战机飞控系统软件研制中的应用[J].计算机应用与软件,2015,32(1):44-46,54.

[3]田丽从,李铁牛,彭宏.中小型企业软件过程改进方法研究[J].计算机应用与软件,2011,28(4):208-211.

[4]杨萍,周云成,郭丹,朴在林.软件工程中主要开发模型的比较分析[J].鸡西大学学报,2008,8(1):86-88.

[5]张友生,李雄.软件开发模型研究综述[J].计算机工程与应用,2006,42(3):109-115.

[6]刘伟群,李雄.新型软件开发模型比较[J].现代计算机,2005,(10):69-72.

[7]邓智.基于中小型软件企业的软件开发模型研究[D],广东工业大学,2003.

基于模型软件开发 篇2

基于城市旅游的仿古街区开发决策模型

国内各个城市对历史建筑、历史街区的保护、再利用和开发的日益重视,使全国各地应运而生一批仿古街区。一方面由于仿古街迎合广大游客怀旧的旅游需求使其成为城市旅游的一种重要资源和众多旅游者选择的旅游目的地;另一方面仿古街区为城市的旅游经济带来新的增长点,也使它的开发受到地方政府与开发商的广大欢迎。但大多仿古街区没有达到其预期的效果,有的还造成一定资源的浪费和部分代表当地文化的老城区建筑被破坏等负面效果。面对这种开发的非理性,在对各类仿古街分析后认为,仿古街区的开发决策、开发的定位都必须是取决于城市旅游。

1、相关概念与研究现状

相关概念界定,城市旅游是指在空间上依托城市作为载体,在内容上以城市自然环境、城市的传统文化积淀、城市的生活、以及城市的基本功能所提供的服务为载体,兼有物质形态的一种旅游。在以城市旅游为背景支撑下,当旅游者在城市中围绕某特定主题的自然风景、历史文化、或其他主题性旅游产品而展开旅游活动时,称其为城市主题旅游。而仿古街区主要是指以旧区改造和功能置换的方式开发、代表城市传统风貌、保留历史文化特色,但又具有现代化的生活、工作、消费方式,集聚时尚休闲、文化消费、商贸地产等产业于一体的传统文化街区.研究现状:仿古街国内外理论研究现状。仿古街区是新兴的旅游方式,国内外对这个方面的研究很少。有关学者与专家都是在历史街区旅游发展的整体框架下对仿古街有所认识。目前国内对仿古街的研究主要是从:集中对仿古街的案例研究:个别案例分析或是对比案例分析。对仿古街本身该如何开发和管

本文由:远景设计研究院整理提供(专注古建筑设计、景观设计、农业规划、旅游规划)

理的研究。

2、仿古街区对城市旅游的依托

城市仿古街区的开发,不同于城市创意街区和真正的历史街区;因为无论是基于创意的街区还是基于历史原貌建筑的街区,它们本身的开发决策目的跟仿古街是不一致的,创意街区是为产生更多艺术或科技等其它创意而服务的集中性社区。历史街区其主要目的是出于对历史建筑、文物保护,而仿古街的开发主要目的是成为当地旅游区。

这个区分的意义在于说明后两者它们自己是有依托,具有独立性的,同时这种独立性还带来旅游吸引力使其可能成为旅游的目的地;而恰恰相反仿古街区旅游一方面是为旅游服务的,另一方面又是不能以某种特性作为独立的吸引力的。因为具有“仿造性”的嫌疑;它便很难独立成为一个鲜明的首要旅游吸引物,没有游客会仅仅为某个城市的一条仿造的古街而将这个城市选为其旅游目的地。

3、成功案例启示

通过对开发成功的仿古街区以及所在城市的旅游资源及状况进行分析,可以发现品牌化的仿古街区都是先有有效的城市旅游开发之后才形成的。远景设计研究院综合多年仿古商业街打造经验,认为有两个城市及它的仿古街可以说明。

上海新天地仿古街区。上海的新天地是“整旧如旧”型仿古街中的标识性样本,它开发成功为以后各个城市仿古街开发起到参照作用,它的经济效益更是吸引众多城市的聚焦,推动以后的开发。尽管它的成功与其内部的业态模式、街区市场定位、文化内涵的挖掘等因素密切相关;但成功的基础是上海城市旅

游。上海位于中国大陆海岸线中部的长江口,拥有中国最大的外贸港口和最大的工业基地。它是中国第一大城市,交通方便,经济发展名列前茅;更具有深厚的近代城市文化底蕴和众多的历史古迹。旅游资源状况方面,到2010年,上海有61个国家A级旅游景点,30个红色旅游基地。从旅游市场角度讲,2010年国内上海城市旅游接待人数达21463万人,国际接待人数达851.12万人。其次,上海常住人口总数为2347多万人,拥有庞大的本地游憩市场。如果换个城市来改建新天地,它成功的高度就未必能达到上海。所以新天地的典型性离不开上海。

成都仿古街区。成都仿古街的数量在国内名列前茅,并且除极个别的开发不成功外,其它的基本都效益不错,尤其是锦里、宽窄巷子、琴台路更是成为这个城市的标识与品牌。其中锦里古街由旧民房改造而来,它是以蜀汉三国文化为背景,川西民风民俗为内涵,明清建筑为载体开发的仿古街。宽窄巷子是成都遗留下来的较成规模的清朝古街道,属于“整旧如旧”型仿古街。琴台路是以汉唐仿古建筑群为依托,以司马相如和卓文君的爱情故事为主线,展示汉代风土人情的仿古街;除此之外还有文殊院、及大慈寺仿古街。

4、决策模型

案例的分析,可以帮助从开发实践中来审视城市旅游与仿古街开发效益的相关性。那么不同的城市该如何区分不同城市仿古街区开发的定位?笔者探索性假设一个指标“城市旅游成熟度”,并根据它设计仿古街开发时决策与定位模型,以做参考。

城市旅游成熟度指标设定。城市的仿古街可以看作城市旅游产品的一种;那么它开发前的城市宏观环境、旅游资源状况和所面对的整体市场需求都对该类

旅游产品开发后的效益带来影响。因此可基于城市旅游设计一个指标“城市旅游成熟度”进行概括,用它为仿古街区的决策与定位做指导。

城市旅游成熟度指标的设计内容: 前提:城市旅游成熟度是一个只针对城市仿古街区旅游而设定的指标,它的相关评估因素都会与影响仿古街开发有直接或间接的因素联系,它不是用来评价不同城市地区的城市旅游成熟状况的指标,与国内优秀旅游城市的评估没有任何联系。指标评估因素选取:经济状况、旅游资源、历史文化、城市旅游需求市场、社会地理因素。这五个方面因素的选取是通过对城市旅游影响、及仿古街旅游文献综合分析而来的,它们构成城市旅游资源的基本框架,其中有的是具体概念因素,有的是构成概念因素,不同的类型决定其评估的难易程度。例如具体因素的经济状况可以用城市GDP衡量,而构成概念因素的旅游资源评估需要采用结构方程分析来选取内在变量,模糊综合评估或层次分析确定权重。

城市成熟度的评估方式采用: 以模糊综合评价的定量和专家讨论定性结合的方式选取一组标准城市,然后采用算术平均各评估因素取出标准值,如上海、北京、深圳的GDP算术平均作为经济因子标准,以三个城市的现有旅游景点总体数量、著名景点数量及其知名度、美誉度等因素的加权评价作为旅游资源评价标准。用比例的方式计算其他城市与标准值的百分比。

开发决策模式。当用以上评价方式得出某城市的旅游成熟度等级后,可以对仿古街开发的定位做一个总体的规划,例如高的资源保护类、中高的品牌标识类等。

5、结语

仿古街开发的成功不仅仅取决城市旅游,还包括:决策后仿古街的科学定

位体系,开发中如何从感知、体验、便利等方面来构建仿古街内在吸引力[5],以及开发后的运营管理等方面的内容。我国仿古街的开发要逐步回归理性才能体现出它的潜在价值。无论是政府还是开发商都不能盲目的跟风,应该以开发城市或地区的旅游为基础进行决策与定位。

基于模型软件开发 篇3

关键词:P2P;即时通信;安全加密

中图分类号:TP393.03 文献标识码:A文章编号:1007-9599 (2010) 09-0000-01

Secure Instant Messaging Microsoftware Research&Development Depend on the P2P Model

Wang Songhe,Dong Xinying

(Fuzhou University,Fuzhou350100,China)

Abstract:On the widely use of instant message(IM),P2P model is one of the core technologies;at the same time,use encryption to achieve security and confidentiality of communication and information exchanging. Instance security communication,add file transfer module,IP search function module and others into the communications platform,and ultimately the implement of the P2P model for security communication and secure transmission of documents is achieved.

Keywords:P2P;Instant Message(IM);Security;Encryption

一、引言

對等网络是一种与传统的Client/Serve网络完全不同的网络体系结构,在该网络中节点之间可以进行直接的通信,系统中的各个节点有着同等的地位,通过对等节点之间的交互操作就可以完成共享信息等工作。P2P对等网的出现,打破了传统的网络应用模式,尤其是无结构的P2P系统,由于其与生俱来的扩展性、容错性等优点,弥补了C/S模型对服务器的依赖性,被极为广泛地应用在即时通信方面。

同时,由于局域网的传输速率高和误码率低的特性,使用较复杂的加密算法对传输消息进行加密具有可行性,不会对即时性造成明显的影响。

二、P2P技术研究

P2P即对等计算机或网络,通常简称为P2P。关于P2P的概念是有多种定义的:Intel工作组定义为通过在系统之间直接交换来共享来交换计算机资源和服务的一种模式;A.Weytsel定义是在因特网周边以非客户地位使用的设备;D.J.Milojicic则定义为给对等体提供或从对等体获得共享。

(一)集中式P2P网络

集中式P2P网络形式上有一个中心服务器来负责记录信息以及回答对这些信息的查询。每一个对等实体对它简要共享的信息以及进行的通信负责,根据需要下载它所需要的其他对等体上的信息,对于这种新式,其具有中心化的特点,但却不同于传统意义上的C/S模型。

(二)完全分布式非结构化的P2P网络

该结构采用了随机图的组织方式来形成一个松散的网络。这种结构对网络的动态变化有较好的容错能力,也就是较好的可用性;同时它也支持复杂查询,如关键字查询、模糊匹配等。其典型代表是Gnutella。

(三)完全分布式结构化P2P网络

正是由于非结构化网络的不可扩展性,才成就了一个高度结构化的系统。其目的就是底稿正确查找信息的效率,最新的研究成果就是基于DHT的分布式发现和路由算法。这种算法避免了Napster的中心服务器,也不像Gnutella那样的基于广播进行查找二十通过分布式散列函数将输入的关键字唯一映射到某个节点上,然后通过某些特定路由算法和该节点建立连接。

三、加密机制及算法研究

数据加密算法在当今信息化社会飞速发展,密码算法标准化是信息化社会发展的必然趋势,成为全球保密通信领域的一个重要课题。按照发展进程来分,经历了古典密码、对称密钥密码和公开密钥密码阶段,古典密码算法有替代加密、置换加密;对称加密算法包含DES、AES和常规密码Blowfish、RC5等;非对称加密算法包括RSA、ELGamal等。我们的P2P即时通信系统,考虑到时效性和安全性,选取DES算法对即时通讯模块进行加密,利用RSA算法对文件传输模块。现对两种加密算法介绍如下:

(一)DES密码算法

该算法为密码体制中的对称密码体制,密钥长度56位,明文按64位进行分组,将分组后的明文组和56位的密钥按位代替或交换的方法形成密文组的加密算法。该加密算法主要有三个参数:key、data、mode。Key为加解密使用的密钥,data为加解密数据,mode为其工作模式。加密时,明文按照64位进行分组,形成明文组,key用于明文加密;解密时,key用于解密。实际运用时,密钥只用到64位中的56位,这样才具有安全性。

其算法特点:分组比较短,密钥太短,密钥生命周期短,运算速度慢。

(二)RSA签名算法

它是第一个既能用于数据加密也能用于数字签名的算法,易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest,Adi Shami和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。它经历了各种攻击,至今未被完全攻破。

四、加密模块

(一)即时通信模块

创建DESCipher类,主要函数为encrypt()和decrypt(),分别实现加密和解密的功能,下面是encrypt()的伪代码:

public void encrypt(){

permutation(plainText,ipBox,8,8,8); //明文IP置换

permutation(keyText,pc1Box,8,7,8);//原始密钥PC1置换

lastRoundKey=PC1Arr;

for(int i=0;i<16;i++)//求出16个密钥

generateRoundKeys(i,lastRounKey);

//16轮迭代

for(int i=0;i<16;i++)

roundI(flag,i,IPArr);

//最后一轮交换

for(int i=0;i<4;i++)

for(int j=0;j<8;j++)

cipherText[i][j]=IPArr[i+4][j];

for(int i=4;i<8;i++)

for(int j=0;j<8;j++)

cipherText[i][j]=IPArr[i-4][j];

permutation(cipherText,reipBox,8,8,8);//IP逆置换

}

decrypt()的伪代码与encrypt()类似。

在TelFrame类中创建DESCipher的实例,调用其encrypt()和decrypt()函数,调用时机取决于“加密/解密”复选框是否勾上。如果“加密”被选中,消息数据先经过调用encrypt()函数加密后,在通过socket发送。如果数据流被攻击者截获,由于攻击者没有密钥,所以他也无法从截取信息中获取有用信息。接收者socket收到密文后,利用会话开始之前得到的密钥解密,从而提高了即时通信的安全性。

五、实验与结果分析

(一)运行环境要求:

1.Windows XP2000Vista7;

2.已搭建java运行环境(jre)。

(二)软件测试步骤:

1.程序正常运行界面

程序主界面包括功能选项卡、聊天好友列表、状态栏三大部分,其中功能选项卡又包含聊天模块、系统设置、文件查询。

2.聊天模块

(1)用户管理

在聊天模块下,单击鼠标右键,弹出添加用户菜单,点击“添加用户”,弹出“输入”对话框,填入对方IP地址,按“确认”即可。

添加用户成功后,还可以选中该用户右键进行“更名”、“添加用户”、“删除用户”等。

(2)通信功能

选中某用户后,双击可以打开通信窗口,下面具体展示加密解密功能(用127.0.0.1测试):

(3)文件傳输功能:

点击“文件传输”,弹出文件选择器,选定文件,立即开始加密传输。对方在文件查询模块中,按“打开文件”就可以看到刚刚传过来的文件了,由于文件安全传输是自动加密解密的,这个过程对用户是完全透明的。

结束语

通过研究和测试,SecureCommu主要实现了安全即时通讯和安全文件传输功能。它面向局域网,采用了DES和RSA加密算法,性能稳定,速度较快,适用于一个企业或单位内部成员之间进行即时安全聊天通信。考虑到企业或单位的需求,还可以增加群聊、视频会议以及白板演示等功能。经过完善后,SecureCommu将在局域网内通信领域使工作学习更加高效安全。

参考文献:

[1]张书钦,芦东昕,杨永田.P2P文件共享网络中信任管理系统的设计[J].计算机工程,2005,31(18):160-162

[2]张文,赵子铭,杨天璐,魏小康.p2p网络技术原理与C++开发案例.网络技术,2008

[3]袁泉.JAVA安全解决方案.网络编程,2003,清华大学出版社,560

作者简介:

基于模型软件开发 篇4

关键词:汽车电子,CMMI,软件开发,软件质量

0 引言

在中国软件行业发展的近30年中,集成能力成熟度模型CMMI(Capability Maturity Model Integration)已经在国内的软件企业广泛实施并探索出有效的实施方法,越来越多软件企业通过实施CMMI来规范企业管理体系,提升软件产品质量。

随着中国汽车电子的飞速发展,汽车与软件的联系越来越紧密,已成为汽车创新发展不可缺少的因素之一。为了在有限资源范围内最大限度地提高主机厂自主开发的软件质量,必须引入CMMI管理体系指导软件开发。

1 CMMI概述及应用现状

CMMI起源于美国政府和军工软件企业的一些成功经验及实践。2002年1月,由美国国防部、卡内基-梅隆大学与美国国防工业协会共同开发研制并发布的CMMI1.1版本,标志着CMMI模型的正式启用。其研究目的主要是提高软件行业开发能力,帮助企业建立适合企业自身发展的软件开发质量保证体系,从而保证软件产品能及时、高效地输出到客户。另外,通过不断积累和发展使软件开发向着流水线方向发展、帮助企业节省开发成本也是CMMI的重要目的。CMMI按企业软件的成熟度共分为5级22个过程域,分别为初始级、可重复级、已定义级、量化管理级、优化管理级。

自1999年起,中国软件企业开始接受并逐步推广CMMI体系,通过学习和不断探索,已经在软件开发标准化方面取得了一定进展。据SEI统计,通过评估的软件公司对项目的估计与控制能力提升了40%~50%,生产率提高了10%~20%,软件产品出错率下降超过1/3[1]。截至2011年底,包括IBM中国、宝信软件、东软集团等在内的28家企业通过了CMMI5 级认证。如今,已有越来越多软件企业通过了CMMI认证,主要涉及计算机、手机软件等相关行业。随着汽车电子的快速发展,其规模和复杂度也日益提高,汽车嵌入式软件与其它行业软件相比有着更高的质量要求,其对响应速度及安全性的要求更高。

2 CMMI软件开发模型

CMMI开发模型(CMMI For Development)是在产品与服务开发活动中处理问题的最佳实验[2],此模型涵盖了工程学科共有的开发与维护活动,涉及产品开发的过程均可利用此模型来进行过程改进,包括银行、计算机软硬件、航空航天、国防等在内的各个领域。CMMI开发模型包含16个核心过程域及5 个开发活动特有的过程域,这5 个关于开发活动特有的实践包括:需求开发、技术解决方案、产品集成、验证和确认。

CMMI指出,CMMI的本质是软件管理工程的一部分[3]。就目前CMMI发展总体情况而言,SPI(Software Process Improvement)是软件管理工程的核心问题。对软件过程进行改进,可高效、高质量和低成本地开发软件,能够通过过程监控管理达到提高开发质量、减少产品缺陷、减少退货、提高用户满意度等目的,对于提高软件产品质量与生产率、缩短上市时间也能够起到重要的指导作用。

3 CMMI软件过程改进实施

汽车软件因其特殊的应用领域,不同于一般软件产品,其对产品的安全性和可靠性有着严格要求。因此汽车软件不仅需要一般的软件工程方法、软件质量管理手段来提高软件可靠性,为了满足针对性,首先要结合自身特点,如组织结构、工作范围、公司状况来明确当前需要改进的地方。选择合适的方法,从人力、物力上保证,对CMMI模型进行合理裁剪,避免周期过长、程度不够深入以及无法实施等问题。

3.1 支撑V模型开发的完善工具链

通常的产品开发模式是,开发工作从客户的需求定义开始,经过系统设计、软硬件架构设计到单元开发完成为止,将工程参数层层分解,需求逐步细化,最终形成软件代码。在该过程中首要的因素是各级理解必须正确,然后是追溯开发过程没有产生遗漏。当前业内流行的开发方式是V模型,不但满足了一般的开发需求,还将测试和验证过程加入开发迭代。

V模型的价值在于其非常明确地描述了测试阶段与开发过程期间的对应关系,工程开发人员往往期望有一款工具既能够支持V模型的工程开发需求,也能够实现测试和验证自动化。然而在业界,这样的工具往往属于大型企业的秘密,不会出售,一般软件也往往只解决流程问题,而无法解决技术整合问题。因此,泛亚汽车技术中心摸索开发了一系列自主工具,既能在流程上符合V模型开发方式,又能整合各层次的技术资源和分类工具,彻底实现了一个完整的工具开发链路,具有很高的产业价值。

3.2 基于AUTOSAR架构的分工和交付物管理协作模式

随着团队的扩大以及更细的人员分工,制定一套标准的开发流程能够显著降低开发成本,缩短开发周期。从制定各个里程碑开发节点出发,到软件需求理解、软件架构设计、软件编码及建模,再到软件集成测试,每个开发活动都有明确的输入需求、交付物以及对应人员。创建符合CMMI的软件开发流程关键,还在于在项目开发大节点有相应的质量阀评审,若评审不通过,则需要对交付物采取补救措施。

AUTOSAR(Automotive Open System Architecture,汽车开放系统架构)由全球汽车制造商、部件供应商及其它电子、半导体和软件系统公司联合建立,是目前汽车厂商统一、开放的软件架构,但国内应用此架构开发的汽车厂商还不多,都还处于初级阶段。企业应基于AUTO-SAR架构原理,根据专业工作细化结果,结合团队自身特点,制定相应措施以达到提高开发效率、缩短开发周期的效果;另一方面,还应强化软件架构设计及软件集成的执行,从软件架构流程确保整个项目开发的统一设计,再逐步细化到各个子模块的实现中,同时确保所有交付物都通过专家评审,力保在软件设计之初就发现问题,从而有效降低开发成本;此外,通过软件持续集成、统一发布,控制开发节奏,驱动开发进展,逐步完善软件成熟度。图1为基于AUTOSAR软件架构的软件开发流程。

3.3 软件质量目标定义

软件开发的质量管理主要细分为质量保证及质量控制两类活动。其中,质量保证是针对开发过程开展的活动,质量目标包括评审度量指标、评审投入比例、过程失控度目标等。质量控制主要是针对测试及验证活动,定义的主要度量指标包括项目测试收束目标、测试逃逸率以及逃逸的千行代码缺陷率。最常用的3个质量目标定义如表1所示。

3.4 软件度量制度建立

项目的健康化发展离不开对缺陷数据的统计,通过统计可知道项目的薄弱点,也能对项目进行横向比对。Mantis系统是软件行业最常使用的bug跟踪系统,在原有的统计功能上可通过定制化统计功能将上述3个指标(未修复不符合项平均Open时间、未解决不符合项数及过程失控度)通过二次开发纳入Mantis统计中,从而能够实时监控软件bug的状态;另外,通过Mantis系统能够对问题的各个纬度进行统计,包括问题的状态、项目、严重性、报告阶段、处理员等,通过这些数据能够清晰了解项目目前的缺陷状态,若出现超标和即将超标的情况,QA(Quality Assurance)人员将及时对项目报警,分析原因并采取相应措施,使项目处于一个健康状态。图2 为应用Mantis软件对bug进行处理的流程。

4 结语

目前,我国汽车软件的开发和管理能力与世界水平还存在一定差距,要开发高可靠性与稳定性的软件产品必须建立良好的软件工程文化和管理制度。本文基于CMMI开发模型,建立了软件开发流程及管理制度,有效提高了开发效率,缩短了开发周期。此外,软件质量保证体系的建立,可通过自查、评审、测试等活动在软件开发前期发现软件缺陷,从而大大降低因后期更改而带来的巨大维护成本,有效地提升了软件开发质量,加快软件管理的规范化进程。

参考文献

[1]周桂钧,周禄华.基于CMMI的空管系统软件管理技术研究及应用[J].计算机安全,2013(5):2-5.

[2]卡内基梅隆大学软件研究院.CMMI开发模型V1.3[M].赵悦,等,译.2010:39-43,211-221.

[3]刘婧.软件过程改进研究[J].软件导刊,2013(5):11-12.

网络处理器软件开发模型的研究 篇5

关键词:网络处理器 软件开发模型 微引擎 微模块 核心组件

引言

随着当今网络规模和性能迅速增长,Internet主干网络流量的指数性增长及新业务接连的出现,这就要求网络设备具有线速和智能的处理能力。网络处理器NP(Network Processor)便是一种新兴、有效的统一解决方案。它适用于各层网络处理,具有ASIC高速处理性能和可编程特性,既能保证系统灵活性,又能完成线速处理数据包所要求的高性能硬件功能。目前,网络处理器已经涌现出了一些成功的应用范例。这些应用主要包括:基于网络处理器的路由交换设备、智能安全设备和入侵检测设备等。比如,北京联想使用IBM的PowerNP构成了电信级的防火墙设备。与此同时,围绕着网络处理器应用展开的相关研究也得到了飞速发展,一些企业和科研机构也给予了足够重视。例如,Intel专门投资支持全球100所大学进行网络处理器及其相关应用的研究。

由于网络处理器特殊的体系结构,它的软件编程模型与传统网络应用/嵌入式应用开发有较大不同,更为复杂。本文将以Intel IXP2400网络处理器为例,对网络处理器软件开发模型进行较为详细地探讨。

1 网络处理器硬件架构

在一般程序设计中,可以不考虑操作系统和编译程序、线程调度的细节、寄存器的数量和容量,而在网络处理器的程序设计中,忽略这些因素就不能编写出优化的程序。在对网络处理器,尤其是微引擎编程之前,需要仔细了解网络处理器的系统结构和硬件平台。下面以Intel的IXP2400为例来说明。

IXP2400网络处理器是Intel在推出的第二代互联网交换架构(IXA)网络处理器。其中,IXP2400是面向中高端应用的网络处理器,可用于实现OC-48的网络路由交换设备。

(本网网收集整理)

Intel的IXP2400网络处理器结构允分体现了SoC(System on Chip)的思想。如图1所示,它的内部主要包括8个完全可编程的4线程微引擎(Mev2)和1个XScale核。此外,还有用于连接外部MAC设备的MSF单元、连接各种存储器和总线的接口单元等。这些单元通过内部的高速数据总线和控制总线彼些协作。

XScale核(core)是ARM系列处理器的一种,它在IXP2400中起控制和管理作用。具体包括:对系统初始化;提供系统的时钟;建立并管理路由表;提供一个对应于IXP2400各寄存器、存储器和外部存储器的地址映射表等。XScale核在系统启动时,从BootROM开始执行引导程序,对整个IXP2400系统进行初始化。

IXP2400中的每一个微引擎其它就是一个32位RISC处理器,可以由4个并行硬件线程共享。数据包的接收、处理和发送等任务,均由微引擎中的各线程并行执行微引擎指令存储区中的微代码程序来完成。网络处理器数据的高速转发正是因为充分利用了硬件的并行性,来弥补线速转发中的内存访问的延迟。

IXP2400嵌在开发板的中心,周围通过数据线连接着各种设备,如SRAM,SDRAM等。SDRMA主要用来存放需要处理和转发的数据包等,也作为XScale核的内存;SRAM主要存放对数据包包头进行处理所需的重要信息和数据包的队列描述等内容。通过IXP2400的数据单元是一个64字节的MAC包(MPKT),在每收到一个包的时候,MAC将一个数据分成若干个MPKT,MPKT就是网络处理器处理数据的单位。

综上所述,IXP2400拥有网络处理的一般特点,从系统角度看,IXP2400属于一个并行式的多算是器共享总线的计算机系统。对于网络处理器的程序设计和一般计算机的程序设计有很大不同。

基于模型软件开发 篇6

关键词:软件测试;贝叶斯定理;测试有效性

中图分类号:TP393文献标识码:A文章编号:16723198(2007)11026801

1引言

长久以来,在软件开发生命周期中,软件测试一直扮演着举足轻重的角色。它帮助人们在软件产品正式发布以前,有效的侦测出软件设计中的错误和缺陷,及时予以纠正。更重要的是,软件测试除由专业技术人员进行外,通常有用户的参与,可以在测试的过程中准确理解用户的需求,对产品进行改进和完善,保证软件产品基于用户要求量身订制,真正实现产品客制化(Customization)。从而保证产品的高质量和高效益。

与软件测试的重要性随之而来的一个根本问题就是其有效性,即软件测试正确侦测出产品缺陷或错误的效率有多高。在软件测试环节中通常遇到的问题是:产品中存在的问题并没有被及时发现,从而导致产品的最终失败。或者产品中并没有缺陷,而由于人为或测试系统的误差,发出错误警报,迫使设计者不得不花费大量的时间和精力去寻找并不存在的产品缺陷,导致资源浪费和成本上升。那么如何避免上述两种情况的发生呢?有效软件测试的标准是什么呢?究竟什么样的测试可以被定义为有效测试呢?本文针对这一问题,从贝叶斯原理出发,提出了一种评估软件测试的简单模型。借助该模型,软件开发人员可以有效的判断软件测试是否达到预期的标准。

2理论基础——贝叶斯定理

如果两个事件A和B不是互相独立的,并且知道事件B中的一个事件已经发生,就能得到关于P(A)的信息。这反映为A在B中的条件概率,记为P(A|B):

P(A|B)=P(AB)P(B)

或

P(AB)=P(A|B)P(B)=P(B|A)P(A)

假设样本空间S被分成一个含有n个互斥事件的集合,每个事件称为S的一个划分:

S={A1,A2,A3,……,An}

AiAj=0i≠j

事件B可以写成由n 个不相交(互斥)事件BA1,BA2,..., BAn 组成,全概率定理:

P(B)=P(B|A1)P(A1)+P(B|A2)P(A2)+…+P(B|An)P(An)

用全概率定理和条件概率的定义可以得到贝叶斯定理:

P(Ai|B)=P(B|Ai)P(Ai)P(B)

=

P(B|Ai)P(Ai)P(B|A1)P(A1)(B)+…P(B|An)P(An)

3软件测试效果评估模型

正如大部分人所熟知的那样,软件测试是人们预测、分析、侦测和修正前期软件设计中的错误和缺陷的过程。通过软件测试,软件产品设计中致命的错误可以被及时发现,并予以补救,以确保产品失败的概率被降到最低限度。性能良好的软件产品可以极大的提高用户对产品的信心,从而积极配合新产品的使用和维护,最终形成软件开发与用户使用间的良好互动。然而,软件测试有其无法避免的局限性,比如:软件测试环境与软件实际运行环境之间的差异,使得人们因为无法模拟实际运行环境,而无从对系统中的关键部分或模块的错误发生率进行准确的评估,导致测试人员对产品可靠性作出错误的判断,最终可能使测试中运行良好的产品在实际运行中出现问题。 

那么,如何科学评价软件测试的有效性呢?或者,换句话说,什么是有效的软件测试呢?本文将建立一个软件测试有效性的评估模型,通过这种模型,软件测试的有效性可以用概率的方式进行表示和计算,从而将软件测试有效性的评价进行量化。该模型是基于贝叶斯定理建立的,以下将分两部分进行介绍:第一部分是模型的逻辑关系原理,用逻辑关系图表示;第二部分是在第一部分的基础上建立的数学模型,也是该评估模型的核心部分。

(1)逻辑关系图。

为便于阐述,我们将软件测试的结果表示为 “Detected Defects”( 侦测出的缺陷),同时将影响测试结果的因素分为两种类型:一种是“Wrong Caution”(错误警报),即产品本身并没有缺陷,由于系统或人为的失误导致测试结果错误的显示产品中有缺陷存在;另一种是“Successful Detection”(成功侦测出产品缺陷),即产品本身存在缺陷,软件测试成功将其发现。下图表示三者之间的逻辑关系,即:测试结果表明产品存在缺陷可能是由于两种原因之一导致的:错误警报或成果侦测。

(2)软件测试有效性评估模型。

基于上述逻辑图示,本文建立了以下软件测试有效性的评估数学模型。

Figure 1The relationship among 3 terms

(1)定义以下事件:

D: 缺陷存在;

D′:缺陷不存在;

S: 缺陷被侦测出;

S′: 缺陷未被侦测出。

(2)测试人员可根据以往的经验作出如下假设:产品存在缺陷的概率为0.3;产品缺陷被成功发现的概率为0.9;测试中发出错误警报的概率为0.2 。则,几种事件的概率分别表示为:

P( D ) = 0.3;

P(S|D) = 0.9; 

P(S|D′)=0.2。

根据贝叶斯定理,可计算得到:

P(D|S) = P(S|D) * P(D) / [P(S|D)P(D) + P(S|D′)P(D′)] 

= 0.9 * 0.3 / (0.9 *0.3+ 0.2*0.7 ) = 0.66.

也就是说,上例中能正确的测试出软件产品中的缺陷(或有效测试)的概率为0.66。如果事先设定的有效测试的概率为0.8,则说明目前的软件测试还无法达到有效测试的标准,应给予改进。

4结论

在实际的软件测试中,尽管人们无法保证完美无缺的测试,但至少计算出达到有效测试标准的概率是多少,即评价软件测试的效果如何。因此上述模型基于贝叶斯定理为软件测试者提供了一个简单的可量化评估测试效果的方法,帮助人们客观的评价软件测试的结果。如果与预期的概率仍有差距(如上例),则应进行测试环境的改进以达到理想的效果。

本文仅提出了一个测试效果评价的简单模型,未来进一步的研究将集中在影响测试效果的各种因素上,如:测试者的经验,技能;测试环境的仿真程度等,将进一步研究各种影响因素的相互作用及其各自对测试效果的影响程度。

基于模型驱动的软件开发方法研究 篇7

计算机及软件开发已有50余年历史, 其间历经了三个主要阶段:

20世纪50-60年代的机器码和汇编语言阶段。由于高昂的硬件成本, 使得机器成为计算的中心。20世纪60-70年代的面向过程的编程语言阶段。硬件技术的巨大进步使得内存空间和运算速度不再成为运算的瓶颈, 第三代编程语言的出现使得开发人员摆脱了手工编写汇编代码的繁琐劳动, 开始集中精力在应用逻辑上, 面向过程的结构化程序设计成为主流。20世纪80年代至今的面向对象编程阶段。面向对象技术使得开发人员可以从更高的抽象层次考虑软件的结构, 改善了软件开发管理、代码重用、系统升级与维护等一系列问题, 大大提高了开发效率, 面向对象思想仍是目前整个软件开发行业的主流。

从以上过程可以看出, 人们在软件开发时所考虑的层面越来越抽象, 越来越集中于领域逻辑而非计算平台上的具体实现细节, 软件开发的中心渐渐地从机器代码转移到领域逻辑上来。这些不断进步的软件工程方法改进了软件的质量, 缩短了软件开发的周期。

下面对几种典型的开发方法作深入探究, 分析对比各自的优缺点。

2. 模型驱动开发方法

模型驱动开发方法 (Model Driven Development, MDD) 是以软件模型贯穿整个系统的开发过程。它是采用模型驱动构架 (Model Driven Architecture, MDA) 的软件开发方法。通过合理地抽象建立系统模型, 用图形化的建模语言如UML, 对系统进行分析和设计。

MDA是由对象管理小组 (Object Management Group, OMG[4]) 提出的软件开发构架。与其说MDA是软件开发构架, 不如说它是一种开发方法更为准确。在MDA中, 整个软件的开发、维护和演变过程是由对软件系统的建模行为驱动的[5]。图1是OMG给出的模型驱动构架图。它是一种基于统一建模语言 (Unified Modeling Language, UML) 、元对象设施 (Meta Object Facility, MOF) 、元数据交换 (XML Metadata Interchange, XMI) 以及公共仓库元模型 (Common Warehouse Metamodel, CWM) 等标准的软件开发框架, 支持软件设计和模型的可视化、存储和交换[6]。

MDD给软件开发领域带来了新的理念, 它为软件开发人员和用户之间的沟通提供新的手段, 为软件开发过程的管理提供新的方法。总结MDD的优点如下:

(1) 需求分析比较彻底。

(2) 更适用于大型系统的开发。

(3) 框架代码的自动生成。

虽然模型驱动的方法在桌面系统开发方面取得了很大的成功, 但对于嵌入式系统开发仍未被广泛应用。其原因总结如下:

(1) MDA和UML是基于面向对象的方法;

(2) MDA没有提供面向特定应用领域的支持;

MDA提供的是通用的开发方法, 不是针对特定的应用领域, 它所采用的统一建模语言UML也不是面向特定的应用领域。而嵌入式系统有着明显的面向领域的特征, 为实现嵌入式系统的快速开发和有效应用, 需要有面向特定领域的开发环境的支持。

3. 面向领域建模

在2005年的OOPSLA (Object-Oriented Programming Systems, Languages, and Applications) 会议上, Bill Gates和Grady Booch等人一致认为面向领域建模 (Domain-specific modeling, DSM) 为提高软件的开发效率提供有效途径[7]。

面向领域建模是通过对特定领域的分析和抽象, 得到该领域的共性和变化特征, 建立该领域的构件库, 最后通过领域建模和代码生成实现领域应用。面向领域建模比模型驱动更能够提高开发效率, 缩短开发周期。因此, 面向领域的建模被称为“下一代建模方法”[8]。面向领域建模采用面向领域的建模语言, 而不是通用的UML。面向领域的建模语言是对特定领域的抽象, 而不是对代码的抽象, 它符合特定领域的使用习惯, 具有特定领域的语义。

如图2所示, 在MDD的实施过程中, 需要首先将领域的概念转换为系统模型, 然后再由模型转换为程序代码。这样不仅使开发周期加长, 同时在系统分析和设计中存在转换误差和重复劳动。而在DSM的实施过程中 (如图3所示) , 开发人员可以直接使用该建模语言进行系统开发, 根据自己的需求量身定做自己的软件。因此, DSM省略了MDD中的领域需求到系统建模、程序代码以及系统实现之间的映射过程, 从而提高了开发效率, 避免转换误差或错误, 提高整体的开发质量。

另外, MDD采用的是统一建模语言UML, DSM采用的是面向特定领域的建模语言。对于不同的领域, 其建模语言是不同的。特定领域的建模语言是由领域专家针对该领域的需求和特点来开发的, 它符合该领域的使用习惯。因此, 这种建模语言更能够有效地描述该领域的需求。

4. 结论

随着计算机应用的不断扩大, 解决的问题越来越复杂, 软件开发的复杂性也与日俱增。为了适应这种发展趋势, 从更高层次对软件进行抽象成为不可逆转的方向, 而当前主流的面向对象软件设计与分析 (OODA) 方法, 已经显得力不从心。模型驱动开发、面向领域建模等新一代软件开发方法论是当前软件工程的前沿及热点, 实践表明此类方法相对于传统开发方法具有显著的优点和极大的发展潜力。

参考文献

[1]Gomaa H.并发与实时系统软件设计[M].姜昊, 周靖译.北京:清华大学出版社, 2003.

[2]周世杰, 秦志光, 刘锦德, 等.实时软件系统开发技术[J].小型微型计算机系统, 2004, 25 (1) :117-122.

[3]对象管理小组[EB/OL].http://www.omg.org/.

[4]Frankel D.S.应用MDA[M].鲍志云译.北京:人民邮电出版社, 2003.

[5]Kleppe A., Warmer J., Bast W..解析MDA[M].鲍志云译.北京:人民邮电出版社, 2004.

[6][EB/OL].http://www.dsmforum.org.

基于模型软件开发 篇8

软件公司采用同样的方式开发软件,通过软件配件的方式使他们在市场上取得了成功,软件配件是通过包的形式同软件一同发售的。软件配件被叫做组件或构件,很多学者从不同的角度给出了定义。一般认为可重用的二进制代码即为组件,组件观念和面向对象编程的对象思想很相似。一个组件是为了服务特定用途,具有独立功能的系统部件,比如:命令按钮,文本输入框等。组件就像模式一样强制开发人员采用已定义好的过程,将其插入到新软件系统中以满足的需求。

微软公司和SUN公司是主要的软件工具提供商,他们的工具被广泛用于应用软件开发。这两家公司和其他厂商也提供大量的组件使他们取得了成功。他们提出一个CBD过程模型,并且详细描述仓储在CBD中的重要性,让人们清晰地感受到CBD相比传统软件开发的优越性。

1 CBD过程模型研究现状

Bailey and Basili为组件重用和重设计提出了软件生命周期模型,模型提出的组件重用的五个策略:

1)分析现有程序,对可重用组件排序。

2)重新设计,消除特定领域的问题。

3)将可重用组件保存在仓库中。

4)以重用的方式构建独立状态组件并保存在仓库中。

5)利用组件开发新系统。

该模型还不是CBD的完整模型,但他的核心关注点在重用活动上。粗略的收集需求可能一个项目最终失败,这是由于需求的自然缺陷决定的。作者提出了构建软件的方法—基于知识的组件分类。通过知识将现有的组件表示、选择和整合到新的系统中。对重用工件的不同分类也有论述。这些是枚举,关键字,面和超文本,这边论文的目的是缓解基于知识的需求收集,但未提出全面的基于CBD的过程模型。

Eduardo Santana de Almeida等人提出了分布式CBD的渐进方法。这种方法基于两个阶段,第一阶段是组合问题域的需求并用面向对象的语言设计可用的组件,这些组件保存在仓库中,第二阶段是设计师根据需求从仓库中选择适当的组件来构建软件。作者没有提出一个足够清晰的过程模型,而且也需要特殊的工具支持。

Luiz Fernando Capretz等人提出了一种软件生命周期可用于面向对象的CBD构建。他主要的阶段是领域工程、系统分析、设计和实现。这个模型的主要问题是在设计阶段选择可重用组件,正常应该在分析阶段,进而分析师能够评估成本、时间安排、要求开发成果以及组件整合。

Hutchinson等人提出了四阶段的基于组件的开发过程模型。这是非常复杂的模型。核心的观念就是整合现有的和新开发的组件,而不是内部开发,仓库的概念没这篇文章没有体现。

Ning[11]的CBD过程模型包括的主要阶段是组件分析、架构设计、组件链接、组件生产和组件整合,作者修改了瀑布模型并这和了上面提到的阶段作为新的CBD过程模型。瀑布模型不适合商业应用,因为他重复的审核阶段。时间和成本消耗过程模型只适合研究项目。表1是对以上几个CBD过程模型的比较。

2基于CBD的过程模型

面向对象的过程模型是唯一能够表示对现有组件重用的过程模型,对象过程模型经过修改可以实现基于组件开发的重用。软件设计,构建和测试阶段体现了现有类的重用。本文提出的CBD过程模型的主要阶段有沟通、计划、分析与选择、可发与测试、评估,如图1。

项目开始通过与客户沟通获得基本的需求。初级用例在这个阶段开发出来。项目规格或提案文件在计划阶段完成。项目规格或提案文件包括可行性分析和风险评估,并提供成本效益分析(CBA)表。CBA表用于分析项目是否对客户可行。如果客户同意提案分析阶段才能开始。面向对象的过程模型能够依据CBD过程模型进行修改,所以新的分析阶段命名为分析与组件选择。这个阶段分析师收集详细需求并尝试定位和选择可重用组件,这里引入了组件仓库的概念,这些组件的之间的关系是确定的,而且组件的属性和行为也已经定义好,这个阶段需要最大化的重用组件,而不需要重复发明轮子。他将提高软件工程师的生产力和效率。基于面向对象模型的开发与测试阶段满足CBD过程模型的要求。被选择的组件依据新系统的需求进行修改和测试。对于新的组件要进行设计、开发和单元测试。对新开发的和重复使用的组件进行集成和系统测试。如果编程人员正在使用基于CORBA或RMI的架构,接口定义语言(IDL)可用于编码集成组件。面向对象的过程模型满足CBD过程模型的需要。客户需要评估和验证软件是否满足他们的实际需要。

3 仓库的角色和重要性

基于可重用组件的软件开发可以提高效率,仓库用于可重用组件的存储和管理,他的组要好处:分类、搜索、修改、测试、实施、版本控制、变更控制、最新和一致的文档。我们可以从多维仓库(一个或多个仓库组成)中选择和管理组件,多维仓库的好处在于基于领域的开发和分类。

4 CBD过程模型的优越性

基于组件开发的优点:可重用性、互操作性、可升级性、低复杂性、时间效益、成本效益、开发效率、可靠性、高质量。可重用性是基于CBD开发的重要特性,用ASP开发一个基于WEB的Email系统就是一个CBD应用的例子。协作数据对象的Windows NT服务器(CDONTS)是微软开发的邮件系统,这个组件能够用来开发类似的应用系统。一个特定工具的内嵌组件也放映了从用的好处,如微软VB的6.0文本框和命令按钮对象等,这些组件可以被频繁的使用,这就是VB6.0成为快速开发工具的原因。我们把经理花在业务开发实现上而不是基本的组件上。

CBD架构允许组件之间通信,使组件之间有互操作性,便于开发人员将系统整合到其他应用系统,不同银行ATM机上信息系统互联就是一个很好的例子。如果组件需要升级,对于WEB应用系统来说是很容易的,只需要用新组件替换原有组件而不需要更改应用系统。C/S架构用来开发分布式应用系统。这里有三中类型的C/S架构:1)将表示层,业务逻辑层和数据层封装在一起的应用系统比如微软的EXCEL和Access软件等。2)两层架构前端整合了表示层和业务逻辑层,后端是数据存储层,可以是Oracle SQLServer等。3)表示层,业务逻辑层和数据存储层作为独立的层次,即是三层架构或多层架构,前端我们可用JSP,Servlet表示,业务逻辑可以用EJB,DCOM等描述,后端可以用数据库或一般文件系统表示。

三层架构是目前用的最广的用于开发商业软件。商业逻辑随着商业环境的变化,很容易改变,这样只需要改变EJB或DCOM组件即可,而不需要太多改动表示层和数据持久层的代码。

CBD的一个优点就是不需要程序员关系组件内部是怎么工作的。他们只需要关系组件的接口以及怎样和他们的系统整合在一起。这就像一个司机一样,他不需要知道轿车的发动机是怎么运行的。对于程序员他们只要关注应用软件的业务逻辑而不去关系基本的组件,如文本框和按钮组件的实现。CBD是程序员从复杂的编程中脱离出来。他们可以是可重用的组件在类似的系统中频繁的应用,提高了开发效率,降低了开发成本,当然也使设计过程更有效率。可重用的组件第一次被使用后,彻底的被测试和维护,因此,可重用的组件相比新开发的组件更可靠更稳定,同时软件的质量也有一定程度的提高。可重用的组件得到了很好的测试和维护。新开发的组件需要大量的开发和维护,大量的缺陷没有被发现,软件质量受影响就是这个原因。

大量的案例也正名了基于CBD开发的重要性。Lim[12]表述,重用组件的项目总储蓄额冲410万美元增长到了560万美元,同时投资回报率也冲216%曾长到了410%。据他论述,重用代码的缺陷率是0.9每千行代码,而新开发的代码的缺陷率是4.1每千行代码,他通过两个项目的比较,一个项目是基于CBD开发,一个不是,基与CBD开发的系统时间只是没有基于CBD开发时间的51%。35%的软件质量得到了改善。

5 结束语

本文通过与传统软件开发的对比叙述了基于CBD的软件开发过程模型,并提出了一基于CBD的软件过程模型,同时讨论了仓库在CBD开发中的应用。通过以上的论述可以看出基于CBD开发的软件更具成本效益、节约时间和提高生产效率。一个可工作的原型系统将支持基于CBD的模型的。

参考文献

[1]冯冲,江贺,冯静芳.软件体系结构理论与实践[M].北京:人民邮电出版社,2004.

[2]Shaw M.Making Choices:A comparison of styles forsoftware architecture[J].IEEE Software,special issue onsoftware architecture,1995.

[3]覃征,何坚.软件体系结构[M].西安:西安交通大学出版社,2004.

基于UG二次开发的模型软件设计 篇9

在工程图学的教学过程中, 模型作为必不可少的教具可以辅助学生图学能力的培养[1]。传统的教学模型因其容易损坏、不便携带、不能修改、不能发挥学生的创新能力等缺点, 已经不能很好地满足教学要求, 教学模型软件的设计、制作已成为工程图学教学改革的重要内容。本文采用UG软件设计、制作教学模型, 辅助工程图学的教学, 更好地培养学生的图学能力和创新能力。

1 创新模型软件的功能

工程图学的教学中模型能辅助从三维形体到二维图形或者二维图形到三维形体的想象, 有利于培养学生的空间思维能力和图学素养[2,3]。要制作模型需要掌握如下三维设计软件:AutoCAD、SolidWorks、UG、Pro/Engineer等, 对于刚入学的学生来说很快掌握这些软件很不现实, 如果只是将生成的模型展示在学生的面前发挥不出学生的创造力、想象力, 调动不了学生的积极性。针对这些情况, 为了创新人才的培养, 本文的模型制作软件要达到以下要求:

(1) 模型制作应有真实感、制作过程应能体现操作者的动手能力, 能辅助工程制图教学。通过生成的模型使得课程中的难点变得容易理解, 能有效提高操作者的空间思维能力和创造思维能力。

(2) 软件应简单、容易操作。在没有掌握三维绘图软件的前提下就能经过简单的操作生成相应的模型。

(3) 软件应能让学生进行较简单的构形设计, 并生成相应的立体模型和三视图。

(4) 应有一定数量的基本模型库及其二维视图库, 供参考和学习。

三维模型软件的组成结构如图1所示。

2 UG的二次开发

模型软件的制作主要依靠三维设计软件, 本文通过C++语言对UG软件进行二次开发来设计模型软件。

UG软件是由美国Unigraphics Solutions of EDS公司开发的CAD/CAM/CAE一体化软件[4,5], UG/OpenAPI是Unigraphics软件中的一个重要模块, 是UG的二次开发工具之一。UG/OpenAPI是UG与外部应用程序之间的接口, 是UG软件为用户提供的最主要的开发工具。UG/Open API工具功能比较强大, 能够实现UG的绝大部分操作, 易于进行交互操作, UG软件的二次开发工具关系图如图2所示。UG/Open支持C、C++、NX C++、GRIP、.NET、Java六种语言, 其中C++既支持面向对象的程序设计也支持面向过程的程序设计, 所以UG软件的二次开发常用C++集成环境进行编译[6]。

3 UG软件二次开发在教学模型软件制作中的应用

由于操作对象是没有掌握UG软件的学生, 因此模型软件生成的模型只是借助UG软件来间接生成立体模型, 而不是直接通过对UG操作来生成模型。

3.1 人机交互界面的建立

本文利用C++开发工具对UG进行二次开发, 建立方便快捷的人机交互界面, 在UG原有功能的基础上增加了新的功能, 如立体截切、基本体叠加等选项, 如图3所示。通过对这些选项的操作借助UG软件生成三维模型, 摆脱了只有掌握UG软件的操作才能生成三维模型的限制。由于不会涉及到UG软件的其他操作, 相应界面的操作变得简单、容易。这里具体到每一个选项的功能设置应根据UG对每一功能实现的具体方法而定。

3.2 基于UG的三维模型制作过程

为实现生成模型不依赖于直接操作UG软件而是通过C++在后台调用UG软件的方法, 首先对要求制作的模型进行分类, 然后设置相应的功能选项。此模型主要是为教学用, 所以模型的分类应与课堂内容相结合。

以工程图学课程中立体截切部分的内容为例, 来研究教学模型的建立。在脱离使用UG软件操作的前提下, 先调出基本立体模型, 然后直接在界面上选取截切位置点来生成相应截切操作的模型是不可能实现的。为此提出了设置约束点参数来确定截切位置, 生成相应的三维模型的方法。具体操作步骤如下: (1) 建立基本立体模型的数据库; (2) 设置相关选项, 通过程序调用基本立体; (3) 对操作的内容以及截切的相关模式进行分析, 设置约束点转换成UG上能实现的操作。设置的约束点应具有一定范围的适用性, 能概括某一类或某几类截切操作。

为了更好地配合教学、提高教学质量, 软件中约束点的设置应与立体截切部分的教学思路相一致。

在立体截切部分, 约束点是根据截切种类来设置的, 每种约束方式适应一种及以上的截切种类。由于不能直接用UG生成模型, 为了能通过UG软件间接地实现相应的模型, 先对截切样式进行了分析, 然后通过分析选取合适的、能概括某一种或几种截切类型的约束点。图4是为了实现圆柱截切模型的界面, 根据3种截切样式设置的相应约束点坐标参数。选取截切样式, 并对约束点参数进行合理的赋值后, 由程序控制利用UG软件生成如图5所示的立体模型和相应的三视图。

4 结论

本文利用C++开发UG软件, 主要针对工程图学的教学进行了不同于以往的功能的开发。对UG进行二次开发后的软件不仅可以使图形或三维模型的生成有直观性的操作、发挥了学生的构形设计能力, 而且操作过程摆脱了须掌握UG软件的限制。此软件通过设置约束点参数在UG上成功地生成了相应的三维模型, 解决了在没有掌握三维绘图软件UG的前提下生成立体模型的难题。利用此软件操作者可以自己动手操作生成相关的模型, 使得课程中的难点变得容易理解, 调动了学生的学习积极性, 有效地提高了学生的空间思维能力和创新能力, 为更好地提高教学质量提供了技术前提。

参考文献

[1]李虹.画法几何及机械制图网CAI教学系统的研究与开发[J].工程图学学报, 2009 (6) :164-169.

[2]赵国霞.工程图学虚拟模型库系统的开发与研究[D].兰州:兰州理工大学, 2006:1-3.

[3]祝锡晶.超声光整加工及表面成型技术[M].北京:中国科学文化出版社, 2005.

[4]童秉枢.谈工程图学教学中学生创新能力的培养[J].工程图学学报, 2008 (6) :1-6.

[5]史丽媛.基于UG参数化设计系统的研究[J].图学学报, 2013, 34 (2) :108-112.

基于模型软件开发 篇10

1 基于模型的含义与嵌入式软件

1.1 基于模型的含义

简要地来说, 基于模型就是从形式上来描述一个系统或子系统的行为。一个系统可以是数学意义上的, 即由一系列关于系统属性的生明构成;一个模型也可以是架构意义上的, 描述的是一个系统对于外界的激励所做出的响应。

1.2 嵌入式软件及其特点

说到嵌入式软件就不得不提嵌入式系统。嵌入式系统是一种用来监视、控制或辅助机器设备运行的系统。它一般是由外围硬件设备、嵌入式操作系统、嵌入式微处理器及用户的应用程序等四个基本部分构成, 且具有配置专一、结构紧凑、快速处理、稳定可靠的特点。而嵌入式软件就是以嵌入式系统为平台设计的软件。和计算机软件一样, 它同样由程序及文档组成, 可细分为支撑软件、系统软件、应用软件三类。嵌入式软件可以根据不同的需求定向开发, 有针对性的面向产业和市场。所以, 每种嵌入式软件都有自己独有的实用价值与应用环境。嵌入式软件应有灵活的适用性。即嵌入式软件可以在不更改或破坏原有系统的功能和特性的前提下, 可以非常灵活方便的在各种嵌入式系统运用。

2 开发方法

2.1 传统嵌入式开发

传统的嵌入式软件的开发方法是按照逐步细化、由上向下流程来实现的。这样的一种自上而下的设计流程具有易于实现、方便快速的特点。但是, 随着科学技术的发展和人们对软件的及其开发的效率的要求, 利用传统的设计开发方法来开发一些比较复杂的嵌入式系统或开发一些设计研发周期较短的嵌入式系统时, 传统的设计方法就会暴露出许多的不足和问题。第一, 不同的开发研究人员对技术规范文档会有不一样的理解;第二, 因为嵌入式软件的运行和测试要在硬件平台上完成, 所以前期的资源投入会占整个投入的很大一部分;第三, 测试工作只能在原型样机完成之后进行, 这样就会不可避免的造成一定的潜在市场风险。根据以往从业人员的经验和相关资料的描述有超过一半以上的错误实在编制技术规范是产生的, 且这时只有很少一部分能被及时发现, 绝大部分的错误要等到测试时才能被发现。

2.2 基于模型的嵌入式开发方法

基于模型的设计过程, 又被称为称为v字形设计流程。我们已经知道, 文档不能够被执行而且很容易产生理解错误和歧义, 而可视化的模型则可以避免这些麻烦的产生。所以, 在软件的开发设计过程中, 分管不同设计任务的工程师们可以在一个统一的环境中工作, 在他们之间产地信息的是模型而不是文档。另外, 工程师们可以由自己的任务要求来设计各个子系统的模型, 且可以在设计过程中随时更改可视化的模型, 使更改工作变得准确快速;还有就是在开发完成后, 代码生成工具会自动生成主要的代码, 经过整合后紧接着进行产品测试工作。如此一来不仅彻底解决了传统设计方法时手写代码带来的效率低易出错的问题, 还省去了手写代码这个繁重的工作, 大大缩短了软件开发周期, 提高了效率, 节省了大量的人力物力资源。下面以设计实现基于单片机的GPS定位移动通讯端机为例, 通过对该系统的总体结构设计的概括, 来具体简单的体会一下基于模型的嵌入式开发技术, 。实例通过对嵌入式软件设计的一种方法以及对嵌入式操作系统微内核技术的研究, 得出了一种适用于嵌入式软件开发的嵌入式软件模型。要完成该工作需要完成以下的几个方面的工作:要研究实现基于单片机的GPS定位移动通讯端机, 需要对基于单片机的嵌入式系统的开发中的一些关键技术环节进行研究;;根据基于单片机的嵌入式应用系统特性, 开发设计基于单片机的操作系统微内核EOS51的构架体系, 并且针对设计和实现过程中的一些难点技术、核心技术进行研究和讨论;下一步在设计实现定位控制软件的基础上, 引进一种适用于嵌入式软件开发设计方法;, 当然要完成这一步需要对嵌入式软件开发技术进行了比较深入的学习研究;最后还需要将集成测试代码嵌入到软件设计开发的过程中, 以指导和约束系统的开发设计过程, 提高系统的可靠性、易策性和可观察性。

3 结语

生活在当今这个科技分速发展的时代, 嵌入式软件正在变得无处不在, 并势必将以星星燎原之势发展。随着嵌入式系统的应用环境越来越复杂和多样, 目前我们所掌握的嵌入式系统的开发设计能力还远远满足不了嵌入式系统设计复杂性需求, 嵌入式系统的发展正面临新的挑战和机遇。而开发嵌入式系统的一个重要制约因索就是软件的开发, 因此掌握一个科学有效的开发方法, 对于嵌入式系统的发展有重要的意义。而基于模型的嵌入式软件开发方法对于嵌入式软件的发展会产生巨大的推动作用。虽然基于模型的嵌入式软件开发方法手打了人们的高度重视, 但是随着嵌入式系统的飞速发展, 其不断出现产生立许多需要完善和改进的的地方。例如嵌入式软件模型应该可以根据软件的运行和配置来正确地建立模型, 也就是运行时的代码与建模的对象系统要一致。

摘要:嵌入式系统是一种以计算机技术为基础, 以应用为中心, 且软硬件都可裁剪的专用的计算机系统。嵌入式系统在最近的几十年来发展速度很迅速, 因而作为嵌入式系统的的核心, 嵌入式操作系统的应用在信息家电、手持设备等领域的应用也变得越来越广泛。但是由于嵌入式软件的开发设计起步晚可借鉴的经验不足, 所以到目前仍未形成一套完善、通用且有效的设计方法和规范。本文列举了一个基于单片机GPS定位移动通讯端开发设计思路的实例。通过这个实例, 可以体会出基于模型的嵌入式软件开发方法的较传统开发方法的进步与发展。

关键词:基于模型,嵌入式系统及软件,开发方法

参考文献

[1]徐芸呈, 唐明浩.基于u C/OS-II的嵌入式构件系统设计[J].单片机与嵌入式系统应用, 2008:12:9-12.

[2]徐芸星, 唐明浩.基于Java的嵌入式远程监控系统的设计[J].计算机技术与发展, 2008:10.141-143.

软件质量保证模型探析 篇11

【关键词】能力成熟度模型;软件生命周期;软件质量保证

目前,软件企业面临的最大的问题是顾客对产品不满意,究其原因,软件质量保证技术的不完善是主要原因之一。就整体而言,我国的软件质量管理和质量保证工作仍处于创建阶段,国外的软件质量管理和质量保证工作也不尽完善,现有的软件质量保证是在软件开发过程中的每一步都进行“保护性活动”。主要内容包括对方法和工具应用的规程、技术复审、测试策略、保证与标准符合的规程,以及度量和报告机制。在技术上的主要手段是测试和复审,在管理上的主要手段是ISO9001的认证[1]。ISO9001是一种“静态”的质量保证标准,只规范了质量体系的最低可接受水平,并不描述一个组织如何实现这些系统质量要素来满足顾客的需求;CMM是一个致力于组织过程改进的框架,问题是并未提供有关实现关键过程域所需要的具体知识和技能[2],在一定程度上造成了开发过程的僵化,对于当前软件业来说也是很难实现的。

一、ISO9001与CMM的联系

CMM和ISO9001都涉及质量管理和过程管理,并且都受到类似的利害关系驱动,两者之间的相似之处总结为以下四点:

(1)它们的精神一致,都有一个基本思想:“言所行,行所言”;

(2)二者都强调管理、过程、規范化和文档化;

(3)ISO9001与CMM的出发点都是通过对生产过程进行管理来确保产品的质量;

(4)都源自以戴明为首的管理专家的制度管理思想。

首先,不管是CMM还是ISO9001都强调对产生应用软件之过程的管理,提高软件产品的生产效率和软件的质量,同时,软件工程理论的广泛运用也推动了软件产业由小规模生产到集成自动化生产迈进。这也充分说明,软件产品的质量不仅表现在最终产品的质量,还应该包含软件产生过程的质量,只有这样,才能使软件组织连续不断地生产出高质量的软件产品。

此外,CMM和ISO9001并不是孤立或彼此矛盾的。它们的核心思想都来源于埃华茨·丹明和约瑟夫·佐兰提出的全面质量管理思想,这种质量管理思想强调预防,而不是检修缺陷与错误改正。因此,它们之间的结合在理论上是可能的。ISO9001的每一个质量要素都可以对应到CMM2-3级中关键过程区域的特征上。而CMM在生产过程中的管理重点,又弥补了ISO9001在微观管理上的不足。另外ISO9001:2000版中增加的度量正好是CMM第四级强调的重点。

二、ISO9001与CMM的区别

(一)保证质量的方式不同

ISO9001作为质量保证标准,只论述了质量体系的最小需求,即合格质量体系的最低可接受水平。它是一种“静态”标准,企业只要符合它要求的条件并通过权威机构的审核,就可以通过认证,证明企业的内部管理已经达到一定水平,符合该标准规范的要求。而CMM则强调过程控制、过程管理、持续的过程改进。CMM不仅仅是对产品质量的认证,更是一种改善软件过程的模型,它以一种结构化的成熟度框架描述了软件管理和工程实践,指出了软件过程不断改进的科学途径[3]。它所定义的5个级别就像5个台阶,企业必须一步一步地“攀登”。每一个成熟度级别,既是企业发展的阶段性目标,又是评价企业能力水平的一个标准。当通过某一级CMM评估后,企业还必须持续不断地改进过程,其目标是要达到可持续发展、可优化的程度,以此来实现高质量、高效率、低成本的生产软件。因此,可以认为CMM是一个“动态”模型。

需要强调的是,ISO9001着重于考核产品的质量和产品过程的受控状态,给企业提供一种PASS/FAIL的检查体系,即企业的过程能力只有两种状态,虽然在缺陷预防和内审管理中涉及到了过程改进,但是并没有对改进的目标和方法进行指导和控制。CMM则重点考核软件组织的工程能力,而且突出不断改进、升级的要求。显然过程不断的改进、能力不断的增强,新技术的应用就会收到更好与更快的成效,产品的质量就会不断的得到提高和保障。

(二)认证审核过程不同

ISO的认证过程分为两个情况——机构或者通过了ISO认证,或者没有。如果机构通过了ISO认证,其过程已满足ISO9000的标准要求。与此不同的是,CMM给出的是过程改进的体系。CMM将软件过程划分成5个成熟度级别——从原始级(第一级)到优化级(第五级)。软件机构可处在其中的任何一个级别,它的每一级对所要实现的关键过程域都有详细的要求,并且强制企业能自我更新和持续改进,以实现缺陷预防[4]。这对于提高软件企业自身质量管理素质是非常有利的。

但CMM毕竟是一个在学术报告基础上建立起来的一套评估体系,它的认证结果是由SEI授权的首席评估员寄一封带有本人签名的信给被评估者,并在SEI备案,没有任何证书,终生受用,中间不再审查。而通过ISO9000认证的企业,要在中国技术监督局备案,并且发证给企业,并要求每年审查,所有参加多边认可协议的国家必须认可,适用性强。

(三)适用范围不同

ISO9001标准是一个适用于提供各种产品/服务企业的通用型的企业标准,而且主要是针对制造业制定的[5]。正是由于ISO9001的通用性,使得它无法满足软件企业更深层次的专业化管理需求。而CMM是专门针对软件开发企业设计的,可以帮助软件企业有效地管理软件过程。

ISO是通用的,并且是从客户和外部审计者的角度来写的,它提出的是最基本的要求,所以不是十分具体。而CMM是面向软件的,即面向软件开发人员的,它提供了机构内部过程改进的指南,而且CMM对每个级别的关键过程域都有很详细的说明,光CMM的关键实现的说明就有500页之多。

(四)管理层次不同

从管理层次上看,ISO要比CMM所处的级别高,ISO只是提出了一个质量管理框架,是属于指导性的框架,而CMM提出的框架是一个操作性很强的框架,其KPA过程非常明确地提出了过程目标和过程注意事项。

三、相关建议

在软件组织中,可以将ISO和CMM结合起来应用,即:把ISO作为软件质量管理的指导性框架,把CMM作为具体实施层的应用,这样就可以充分利用二者的优势来共同完成对软件开发过程的质量控制,从而达到既提高软件开发效率又保证所开发的软件具有较高的质量。我国中小软件企业在建立软件质量保证模型时,应该考虑以下几个方面的因素:

(1)某种程度上市场目标决定质量目标,只有能满足客户需求的软件才可以称为好的软件。

(2)在考虑最终软件成品的同时,要考虑软件过程的质量保证。

(3)全面质量管理及CMM思想的集成,要关注软件过程控制能力以及过程持续改进能力。

参考文献

[1]李娟.基于QFD的软件质量保证模型研究[D].西北工业大学,2006.

[2]李娟.CMM实施过程模型及实例化方法研究[D].中国科学院软件研究所,2005.

基于模型软件开发 篇12

GIS工程学来源于系统工程学, 软件工程学和地理信息科学的结合。系统学、系统工程学、软件工程学、地理信息科学都是其理论基石。GIS设计是利用软件工程的思想, 结合GIS软件开发的特点和开发目标, 制定GIS软件开发的项目计划, 并对软件的用户需求和可行性进行分析, 从而设计软件的技术实现方案, 最后对软件进行实施和维护。

2 软件工程

在了解软件工程之前先介绍软件危机, 它是一种现象, 是落后的软件生产方式无法满足迅速增长的计算机软件需求, 从而导致软件开发与维护过程中出现的一系列严重问题的现象。

软件工程是多学科、跨学科的一门学科, 它借鉴了传统工程学的原理和方法, 同时应用了计算机科学、数学、工程科学和管理科学的很多理论与知识, 以求高效地开发高质量软件。从20世纪60年代软件工程学的产生到现在, 软件工程演变了三代。分别是20世纪70年代以结构化分析、结构化设计和结构化编程的第一代软件工程又称传统软件工程;20世纪80年代以研究面向对象分析和设计的第二代软件工程又称对象工程;20世纪90年代以组件技术的研究发展而来的第三代软件工程又称组件工程。软件工程代与代之间没有鸿沟, 他们不仅交叉重叠, 也携手并进。

3 软件过程模型以及其在GIS设计的作用

软件过程是按照软件项目的进度、成本和质量要求, 开发和维护软件所必需的一系列有序活动的集合。软件工程模型是按照工程化的思想设计提出的指导策略, 是一个覆盖整个软件生存周期全部活动和任务的结构框架, 这个框架给出了软件开发活动各阶段之间的关系, 相应的工作方法与步骤。

3.1 瀑布模型

瀑布模型 (Waterfall Model) 又称生存周期模型。是由W.Royce于1970年提出来的, 也称为软件生存周期模型。其核心思想是按工序将问题化简, 采用结构化的分析与设计方法, 将逻辑实现与物理实现分开。

3.1.1 瀑布模型的原理

瀑布模型是一种线性模型, 软件开发的各项活动严格按照线性方式进行, 每一项开发活动均以上一项的活动结果为输入对象, 实施该项活动应完成的内容, 给出该项活动的工作结果作为输出传给下一项活动, 对该项活动实施的工作进行评审。若工作得到确认, 则继续进行下一项活动, 否则返回前项, 甚至更前项的活动进行返工。

3.1.2 瀑布模型在GIS设计的作用

由于瀑布模型是一种以文档作为驱动的模型;阶段之间存在有序性和依赖性;将逻辑设计与物理设计清楚的划分开, 尽可能的推迟程序的物理实现;具有质量保证的观点;清晰的提供了软件开发的基本框架的特点使其在软件工程中占有重要地位。

瀑布模型一般适用于功能完整、性能明确、无重大变化的GIS软件系统的开发。但同时也应注意瀑布模型因为过早的考虑程序实现, 常常导致大量返工;它的阶段间的依赖特征会导致工作中发生“阻塞”状态, 如果大的错误在软件生存周期的后期才发现, 将导致灾难性的后果;它各阶段之间的大量规范化文档和严密评审增加了项目工作量;缺乏灵活性, 特别是无法解决软件需求不明确或不准确的问题, 因此其应用具有一定局限性。

3.2 快速原型模型

快速原型模型 (Prototyping Model) 是在用户不能给出完整、准确的需求说明, 或者开发者不能确定算法的有效性、操作系统的适用性或人机交互形式等许多情况下, 根据用户的一组基本需求, 快速建造一个可运行的软件, 然后进行评估。同时也使开发者对将要完成的目标有更好的理解, 再进一步精化、调整原型, 使其满足用户的要求。

3.2.1 快速原型模型基本原理

快速原型模型从需求分析开始, 软件开发者和用户一起定义软件的总目标, 说明需求, 并规划出定义的区域, 然后快速设计软件中对用户可见部分的表示。快速设计导致了原型的建造, 原型由用户评估, 并进一步求精, 逐步调整原型使之满足用户需求, 这个过程是迭代的。详细过程:第一步, 弄清用户的基本信息需求;第二步, 开发初始原型系统;第三步, 用原型系统完善用户/设计者的需求;第四步, 修改和完善原型系统。

3.2.2 快速原型模型在GIS设计的应用

由于快速原型模型使系统更易维护、用户交互更友好;能得到良好的需求定义, 比传统的生存周期法好很多, 使开发者与用户充分交流, 以改进原先设想的、不尽合理的系统;可降低总体开发费用, 节约开发时间。

快速原型模型比较适合低风险和柔性较大的GIS软件系统的开发。但同时也应注意避免对于开发者不熟悉的领域把次要部分当作主要框架 (模型效应) ;原型的迭代不收敛于开发者预先的目标;它不太适合嵌入式软件、实时控制软件、科技数值计算软件的开发。

3.3 螺旋模型

螺旋模型 (Spriral Model) 是B.Boehm于1988年提出的。螺旋模型将瀑布模型与原型的迭代特征结合起来, 并加入两种模型均忽略了风险分析, 弥补了两者的不足。

3.3.1 螺旋模型的基本原理

螺旋模型可以看做是连接的弯曲了的线性模型。螺旋模型沿着螺线旋转, 在笛卡尔坐标的四个象限上分别表达了四个方面的活动, 即:制定计划, 确定软件目标, 选定实施方案, 弄清项目开发的限制条件;风险分析, 分析所选方案, 考虑如何识别和消除风险;实施工程, 实施软件开发;用户评估, 评价开发工作, 提出修正建议。

3.3.2 螺旋模型在GIS设计的应用

由于螺旋模型是一种风险驱动模型, 为项目管理人员及时调整管理决策提供了方便, 进而可降低开发风险;特别强调原型的可扩充性, 原型的进化贯穿了整个软件生存周期, 这将有助于目标软件的适应能力;原型可看做形式的可执行的需求规格说明书, 易于为用户和开发人员的共同理解。

螺旋模型支持需求不明确, 特别是较高风险的大型GIS软件系统的开发。但同时需要注意要求构造的原型的总体结构、算法、程序、测试方案应具有良好的可扩充性和可修改性;如果每次迭代的效率不高, 会导致迭代次数过多, 将会增加工作量和成本并有可能推迟提交时间;它要求开发队伍水平较高;它是出现较晚的新模型, 不如瀑布模型普及。

3.4 增量模型

增量模型 (Incremental Model) 融合了瀑布模型的基本成分和原型模型的迭代特征, 其实质就是分段的线性模型。

3.4.1 增量模型的基本原理

增量模型采用随着日程时间的进展而交错的线性序列, 每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时, 第一个增量往往是核心的产品, 也就是说第一个增量实现了基本的需求, 但很多补充的特征还没有发布。用户对每一个增量的使用和评估, 都作为下一个增量发布的新特征和功能。这个过程在每一个增量发布后不断重复, 直到产生最终的完善产品。增量模型强调每一个增量均发布一个可操作的产品。

3.4.2 增量模型在GIS设计的应用

由于增量模型每次增量交付过程都可以总结经验和教训, 有利于后面的改进和进度控制;每个增量交付一个可操作的产品, 便于用户建立好模型做出反应, 易于控制用户需求;任务分配灵活, 将风险分布到几个更小的增量中, 降低了项目失败的风险。

增量模型适合初期的需求不够确定或需求会有变更的GIS软件系统开发。但同时需要注意至始至终需要用户亲密配合, 以免影响下一步进程;要避免把难题往后推, 首先完成的应该是高风险和最重要的部分;要避免退化为边做边改模型, 从而使软件的控制失去整体性;由于一些模块必须在另一个模块之前, 必须定义良好的接口。

3.5 面向对象的软件过程模型

传统的软件开发过程大多建立在软件生存周期概念的基础上, 螺旋模型、原型模型、增量模型等实际上都是从瀑布模型拓展或演变而来的, 通常把它们称为传统的软件过程模型。

面向对象的软件开发过程的重点放在软件生存周期的定义阶段。这是因为面向对象方法在开发早期就定义了一系列面向问题域的对象, 建立了对象模型。整个开发过程统一使用这些对象, 并不断地充实和扩展对象模型。

3.5.1 构件复用模型

面向对象技术将事物实体封装成包含数据和数据处理方法的对象, 并抽象为类。构件 (component, 也译为组件) 是软件系统中有价值的、几乎独立的并可替换的一个部分, 它在良好的定义体系结构语境内满足某项清晰的服务功能, 可以通过其他接口访问他的服务。经过适当的设计和实现的类也可以成为构件, 在基于构件的软件开发中, 软件由构件装配而成。

构件复用模型如图1-1所示, 它融合了螺旋模型的特征, 本质上是演化的, 并且支持软件开发的迭代方法, 它是利用预先包装好的软件构件的复用为驱动构造来应用程序。首先标识候选类, 通过检查应用程序操纵的数据及实现算法, 并将相关的算法和数据封装成一个类。把以往软件工程项目中创建的类存于一个类库或仓库中, 根具标识的类, 就可搜索该类库。如果该类存在, 就从类库中提取出来复用。如果该类不存在, 就采用面向对象方法开发它。以后就可以使用从库中提取的类及为了满足应用程序的特定要求而建造的新类。进而完成待开发应用程序的第一次迭代。过程流程后又回到螺旋, 最后进入构件组装迭代。

统一过程模型 (Rational Unifi ed Process, RUP) 具有较高知名度的原因之一恐怕是因为其提出者Rational软件公司聚集了面向对象领域三位杰出专家Booch、Rumbaugh和Jacobson, 同时它又是面向对象开发的行业标准语言——标准建模语言 (Unifi ed Modeling Language, UML) 的创立者, 是目前最有效的软件开发过程模型。

3.5.2. 1 统一过程模型的基本原理

统一过程首先建立了整个项目的不同阶段, 包括初始阶段、细化阶段、构造阶段、交付阶段。同时每个阶段中又保留了瀑布模型的活动, 这里称为工作流, 即从需求、分析到设计和实现、测试等活动。所以, 可以将其理解为一个二维坐标, 工作流是一个竖坐标, 阶段构成了横坐标。但是, 二维坐标不是统一过程的主要思想, 它的主要思想是每个竖坐标表示的活动可能会产生多次迭代, 每个迭代会随着横坐标 (阶段) 的进展而产生变更, 最终逐渐减少甚至消失, 如图1-2所示。四个阶段, 九个核心工作流, 十大要素。

3.5.2. 2 统一过程模型开发过程各个阶段的里程碑

RUP中软件生命周期在时间上被分解为四个顺序阶段, 每个阶段结束于一个主要里程碑。初始阶段结束时是第一个重要里程碑:生命周期目标里程碑。主要成果有:项目蓝图文档、初始的用例模型、初始的项目术语表、业务用例模型。细化阶段结束时是第二个重要的里程碑:生命周期结构里程碑。主要成果有:系统架构基线、UML静态模型、UML动态模型、UML用列模型、修订的风险评估、修订的用例、修订的项目计划、可执行的原型。构造阶段结束时是第三个重要的里程碑:初始功能里程碑。主要成果有:可运行的软件系统、UML模型、测试用例、用户手册、发布描述。在交付阶段的终点是第四个里程碑:产品发布里程碑。主要成果有:可运行的软件产品、用户手册、用户支持计划。

RUP十大要素包括:开发前景;项目计划;标识和减小风险;分配和跟踪任务;检查商业理由;设计组件构架;对产品进行增量式的构建和测试;验证和评价结果;管理和控制变化;提供用户支持。

3.5.2. 3 统一过程模型在GIS设计的应用

由于RUP中的每个阶段可以进一步分解为一次迭代。与瀑布模型比较, 统一软件过程模型具有降低了在一个增量上的开支风险;加快了整个开发工作的进度;迭代过程的这种模式使适应需求的变化更容易;它的迭代模型建立了简洁和清晰的过程结构, 为开发过程提供较大的通用性。

统一软件过程模型非常适合GIS软件系统的开发。但是我们需注意的是RUP只是一个开放过程, 并没有涵盖软件过程的全部内容, 例如它缺少关于软件运行和支持等方面的内容;没有支持多项目开发结构, 这在一定程度上降低了在开放组织内大范围实现重用的可能。

3.6 敏捷开发过程

“敏捷”一词意味着快速、简单、灵活。敏捷开发过程强调以人为本, 注重编程中人的自我特长发挥。强调软件开发的主体是程序, 文档是为软件开发服务的, 不是开发的主体。敏捷开发特别重视客户参与开发, 因为开发者不是客户业务的专家, 所以一定要客户来阐述实际的需求细节。编制周密的计划是为了最终软件的质量, 但是为了要适应客户需求的不断变化, 计划和设计要不断调整。

敏捷就是“快”, 要快就要充分发挥每个人的个性思维, 个性思维的增多会造成软件开发规范性、一致性和可复用性的下降, 因此把敏捷开发与传统的“瀑布式”开发有机地结合。支持敏捷开发过程的极限编程就是强调交流、简单、反馈和勇气。另外并不是所有的GIS软件项目都适合敏捷开发, 例如, 难以分解的大型GIS应用软件、需要分布式开发的应用GIS软件等不适合敏捷开发。

4 GIS设计的未来展望

至上世纪90年代GIS进入产业化的阶段发展以来, GIS已经是一个全球拥有超过十万开发人员和数十亿美元的产业。世界各国已经设计出大量实用化的地理信息系统, 常见的GIS软件已经超过400种。当今国内外GIS的重要发展趋势是将地理信息系统融入国家信息化和知识经济的主体, 为资源环境问题的研究提供高技术手段, 形成新的经济增长点, 提高国家的安全能力。为此在未来仍需要大力发展业务化的GIS运行系统, 提高GIS的应用水平和效益。

由于GIS软件不同于一般程序, 它的一个显著特点是规模庞大, 而且程序复杂性将随着程序规模的增加呈指数上升。因此现有的计算机软件工程方法也不完全的适用于GIS设计, 未来还需要工程师和系统分析人员在GIS项目工程实施过程中进行研究与探索, 努力发展适用的GIS软件开发方法。

摘要:GIS从20世纪60年代问世以来已经经沥了近60个春秋的飞速发展。但随着GIS软件数量的飞速增长和软件规模的扩大, GIS软件危机情况已日益严重, GIS设计也将面临更大的挑战。笔者结合软件工程学的理论和思想, 通过合理的选用软件过程模型来为GIS设计提供思路。

关键词:软件工程,GIS工程学,GIS设计,软件过程模型

参考文献

[1]李满春, 任建武, 陈刚, 周炎坤.GIS设计与实现[M].北京:科学出版社, 2006.

[2]李伟波, 刘永祥, 王庆春.软件工程[M].武昌:武汉大学出版社, 2010.

[3]刘光, 刘小东.地理信息系统二次开发实例教程[M].北京:科学出版社, 2004.

[4]吴洁明, 方英兰.软件工程实例教程[M].北京:清华大学出版社, 2010.

[5]俎晓芳.浅析统一软件开发过程与GIS软件开发[J].内江科技, 2006, 27 (6) :103-104.

[6]郭建文, 冯敏, 李新.统一软件过程与地理信息系统的应用开发[J].遥感技术与应用, 2003, 18 (6) 422-428.

上一篇:气流干燥下一篇:电梯安全检验