




已阅读5页,还剩54页未读, 继续免费阅读
(计算机科学与技术专业论文)复杂网络环境下基于模型驱动的软件进化方法研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
原创性声明 本人声明:所呈交的学位论文是本人在导师的指导下进行的研究工作及取得的研究成 果。除本文已经注明引用的内容外,论文中不包含其他人已经发表或撰写过的研究成果,也 不包含为获得内墓直盍堂及其他教育机构的学位或证书而使用过的材料。与我一同工作的同 志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。 学位论文作者签名:圣正盈i 茎 。指导教师签名:励荔 日期: 丝丛:笸:! ! e t期:蒸丝乏丝 在学期间研究成果使用承诺书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,即:内蒙古大学有权将 学位论文的全部内容或部分保留并向国家有关机构、部门送交学位论文的复印件和磁盘,允 许编入有关数据库进行检索,也可以采用影印、缩印或其他复制手段保存、汇编学位论文。 为保护学院和导师的知识产权,作者在学期间取得的研究成果( 含计算机软件、程序) 属于 内蒙古大学计算机学院。作者今后使用涉及在学期间主要研究内容或研究成果,须征得内 蒙古大学计算机学院就读期间导师的同意;若用于发表论文,版权单位必须署名为内蒙古大 学计算机学院方可投稿或公开发表。 学位论享作者签名:童:j 面乏i 军 指导教师签名: 肭拐 一一。_ 内蒙古大学硕士学位论文 复杂网络环境下基于模型驱动的软件进化方法研究 摘要 随着网络技术的不断发展,网络环境也日益复杂。在复杂的网络环境尤其 是当前云计算环境下,人们对软件功能的要求和期望越来越高,致使软件开发 过程的后期维护和改进的需求更加迫切,因此软件进化的重要性和必要性就越 发突显出来。 针对这个问题,论文研究了从一般网络环境到云计算环境下的软件进化过 程。利用模型驱动方法,主要做了以下几个方面的工作: ( 1 ) 研究从一般网络环境到云计算环境下软件进化的整体流程。在分析总结 软件进化的一般过程后,基于模型驱动方法,给出了从一般网络环境到云计算 环境下的软件进化过程。 ( 2 ) 研究源代码到平台无关模型的转换。在模型驱动方法的指导下,分析了 平台无关模型极其模型转换的工具,利用已有的模型转换工具对应用程序软件 进行建模,得到u m l 的类图。 ( 3 ) 研究平台无关模型到代码的转换。依据模型驱动方法,通过平台无关模 型,结合云计算环境平台的特点,最终实现应用程序在云计算环境下运行的目 的。 i 通过模型驱动方法来指导软件开发过程,进行软件进化过程的研究,实现 了从应用程序软件到平台模型以及平台无关模型到代码的转换,最终实现将_ 般网络环境的应用程序进化到云计算环境下运行,提高了软件开发过程的整体 效率。 关键词:软件进化,云计算,模型驱动,建模,转换 一 复杂网络环境下基于模型驱动的软件进化方法研究 二二二- 二二二二二二二二_ 二一一 r e s e a r c h0 ns o f t w ar ee v o l u t i o n b a s e d0 nm o d e l d r i v e n i nt h ec o m p l e x n e t w o i e n v i r o n m e n t a bs t r a c t w i t hc o n t i n u o u s d e v e l o p m e n to fn e t w o r kt e c h n o l o g y , c u r r e n tn e t w o r ke n v i r o n m e n t sa r e b e c o m i n gm o r ec o m p l e x i ns u c hc o m p l e xn e t w o r ke n v i r o n m e n t se s p e c i a l l yi nt h ec l o u dc o m p u t i n g e n v i r o n m e n t ,t h er e q u i r e m e n t sa n de x p e c t a t i o n so fp e o p l ef o rs o f t w a r ef u n c t i o n sa r e i n c r e a s i n g ,a n d t h el a t t e rp a r to ft h es o l w a r ed e v e l o p m e n t p r o c e s si sn e e d e dt om a i n t a i na n di m p r o v em o r eu r g e n t l y t h es o f t w a r ee v o l u t i o ni ss oi m p o r t a n tt h a tw es h o u l df o c u sm o s t l v0 n i t i nt h i st h e s i s ,t h ef o l l o w i n gt o p i c sc o n c e r n i n gt h es o f t w a r ee v o l u t i o np r o c e s sf r o mt h eg e n e r a l n e t w o r ke n v i r o n m e n tt ot h ec l o u dc o m p u t i n ge n v i r o n m e n th a sb e e ns t u d i e db a s e do nm o d e l 一“v e n a p p r o a c h : ( 1 ) r e s e a r c h0 1 1t h es o f h v a r ee v o l u t i o np r o c e s sf r o mt h eg e n e r a ln e t w o r ke n v i r o n m e n tt ot h e c l o u dc o m p u t i n ge n v i r o n m e n t b ya n a l y z i n ga n ds u m m a r i z i n gt h e e x i s t i n gp r o c e s so fs o f t w a r e e v o l u t i o n ,t h es o f t w a r ee v o l u t i o np r o c e s sw h i c hi sf r o mt h eg e n e r a ln e t w o r ke n v i r o n m e n tt ot h e c l o u dc o m p u t i n ge n v i r o n m e n tb a s e do nm o d e l d r i v e na p p r o a c hw a sg i v e n ( 2 ) c o n v e r s i o nf r o mt h es o u r c ec o d et ot h ep l a t f o r m i n d e p e n d e n tm o d e l t h em o d e l d r i v e i l a p p r o a c hh a sm o r ef r e ea n df l e x i b l ea b i l i t yt os u p p o r tt h ep l a t f o r m i n d e p e n d e n tm o d e la n dt h e m o d e lc o n v e r s i o nt o o l s u s i n gt h ee x i s t i n gm o d e lc o n v e r s i o nt o o l s ,t h eu m l c l a s sd i a g r a m sc o u l d b eo b t a i n e db y m o d e l i n go nt h ee x i s t i n ga p p l i c a t i o ns o f t w a r e ( 3 ) c o n v e r s i o nf r o mp l a t f o r m - i n d e p e n d e n tm o d e lt ot h ec o d e b a s e do nm o d e l d r i v e n a p p r o a c h ,w ec o u l dc o n v e r s et h ep l a t f o r m - i n d e p e n d e n tm o d e lt ot h ec o d eb yc o m b i n i n gw i t ht h e c h a r a c t e r i s t i c so fc l o u dc o m p u t i n gp l a t f o r m s ,s ot h a tt h ea p p l i c a t i o nc a nr u ni nt h ec l o u dc o m p u t i n g e n v i r o n m e n ta tl a s t i naw o r d ,u s i n gm o d e l d r i v e na p p r o a c ht og u i d et h es o f t w a r ed e v e l o p m e n t p r o c e s s ,w ec o u l d 内蒙古大学硕士学位论文 目录 摘要:。i a b s t ra c t 。i i 第一章绪论。:1 1 1 弓i 言。l 1 2 复杂网络环境1 1 3 云计算二3 1 3 1 云计算的定义。3 1 3 2 云计算的特点:3 1 3 3 云计算下的软件。5 1 4 有关本论文5 第二章软件进化和模型驱动技术7 2 1 软件进化7 2 1 1 软件进化的由来和发展。7 2 1 2 软件进化的定义及方法8 2 1 3 软件进化过程1 0 2 2 模型驱动j 一h 1 l 2 2 1 模型驱动开发( m d d ) :1 1 2 2 2 模型驱动体系结构1 1 2 3 本章小结:1 5 第三章云计算环境下基于模型驱动的软件进化= 1 6 3 1 软件进化的一般过程。1 6 3 2 从一般网络环境到云计算环境下的软件进化过程1 8 3 3 从源代码到p i m 模型的转换:2 0 3 3 1p i m 模型的选择:2 0 3 3 2 转换工具的选择2 l 3 4p i m 模型到代码的转换:2 2 3 , 4 1 云计算平台的选择。2 2 3 4 2 选取平台相关类2 5 3 4 3 分析获得信息。:2 6 3 4 4 转换2 6 3 5 本章小结2 7 第四章应用实例2 8 i h 复杂网络环境下基于模型驱动的软件进化方法研究 4 1 由源代码到平台无关模型的转换实现2 8 4 1 1p i m 模型的选定2 8 4 1 2 转换工具的选定2 8 4 1 3 转换实现3 0 4 2 由平台无关模型到云计算环境下的转换实现3 4 4 2 1 云计算平台的选定j 3 4 4 2 2c l o u d s i m 平台相关类3 5 4 2 3c l o u d s i m 使用3 7 4 2 4 模型到代码的转换实现4 2 4 3 本章小结:4 3 第五章结论和进一步工作4 4 5 1 论文总结4 4 5 2 进一步工作4 4 参考文献4 6 j s c 谢4 9 i v 内蒙古大学硕士学位论文 图表目录 图2 1 进化的分阶段过程模型7 图2 2 进化的分阶段过程模型( 2 0 0 0 a c m ) 7 图2 3 模型驱动体系结构软件开发过程1 3 图3 1 一般网络环境的软件进化过程1 8 图3 2 云环境的软件进化过程1 9 图3 3 源代码到p i m 模型的转换过程2 0 图3 4p i m 模型到代码的转换过程2 2 图3 5 云计算分类图2 3 图3 6 获取云计算环境下的信息2 6 图4 1 源代码到p i m 模型的转换过程2 9 图4 2v s n e t 成功安装界面:2 9 图4 3t r u f u nk a n txs t u d i o 的界面3 0 图4 4v s 2 01 0 界面。j 。3 0 表4 1c 撑到u m l 的转换。3 1 图4 5 部分类:3l 图4 6 部分类图1 _ :;3 2 图4 7 部分类图2 3 2 图4 8 部分类图3 。3 3 图4 9o r g c l o u d b u s c l o u d s i m 包中的主要接口3 5 表4 2o r g c l o u d b u s c l o u d s i m 主要接口及接口功能。3 6 图4 1 0c l o u d s i m 饬真过程3 9 图4 11c l o u d s i m 应用实例。4 0 图4 1 2 命令提示符下运行界面4 0 图4 1 3 编译后界面j 4 l 图4 1 4 打包后界面- 4 l 图4 1 5 扩展实例运行界面 。4 2 图4 1 6 测试界面。- 4 3 v 复杂网络环境下基于模型驱动的软件进化方法研究 二= 二= 二二二二二_ 二二二二一 内蒙古大学硕士学位论文 1 1 引言 第一章绪论 随着社会的飞速发展,一已有的软件系统已经不能满足人们日益增长的需求,所以每个软 件系统在投入使用后需要不断进行改进和完善。有关调查表明,软件进化和软件后期的维护 费用占到整个软件开发过程中总费用的4 0 至1 j9 0 n 1 。软件进化在软件开发中占有很重要的位 置,而且直是软件工程研究的热点之一乜1 。软件进化过程是一个以改变程序形态来适应市 场需求的、从已有程序演变而来的一个长期过程,它贯穿于软件开发的整个生命周期,它使 所有不清楚的问题越来越清楚,使所有不完善的问题越来越完善,以能更好的实现客户需求 , 为最终目标。 为了将软件开发过程的设计和体系结构相分离,o m g 提出了模型驱动体系架构b 1 。其目 的是将软件的开发从开发层次提升到分析模型的层次,模型不再是一种辅助工具,而是一种 形式化的开发产品。所以,当需求变动或环境变化时,从修改模型做起,令软件开发和修改 过程变得更加简洁,易于把握软件全局。由于模型驱动方法在软件开发过程中站在模型的角 度,可以忽略开发时的很多细节问题,所以可以使软件的更新和进化更加易于操作,易于控 制,易于把握。也就是说,模型驱动方法对软件开发过程中由于各种因素所导致的软件进化 问题具有指导意义。 导致软件需要不断的更新和进化的一个重要因素是当今的网络环境不断成熟并日益复 杂。网络环境的发展已经从原先的分布式处理发展到并行处理、网格计算,到了现在的云计 算时代。软件运行环境也由从前的静态封闭的状态变成互联网环境下动态开放的状态,这也 对软件进化的过程提出了挑战。复杂网络环境中对于软件进化提出了新的要求,所以研究复 杂网络环境中的软件进化势在必行。 1 2 复杂网络环境 网络环境是指将分布在不同地点的多个多媒体计算机物理上互联,依据某种协议互相通 信,实现软、硬件及其网络文化共享的系统。似1 随着网络技术的日益发展,网络环境也变得日益复杂。复杂网络是随着网络技术的发展 而出现的对现有一些网络的统称,它有别于传统的规则网络和随机网络1 ,但又是由这些传 l 复杂网络环境下基于模型驱动的软件进化方法研究 统概念的网络构成的。它不等同于构成简单,结构清晰,功能单一的简单网络,也不等同于 简单网络的复合叠加。 目前,还没有给出复杂网络精确严格的定义,之所以称其为复杂网络,大致有以下一些 原因:首先,它是大量真实复杂系统的拓扑抽象;其次,它至少在直观上比规则网络和随机 网络复杂,因为目前的科技可以比较容易地生成规则和随机网络,但还没有一种简单方法能 够生成完全符合真实统计特征的复杂网络;最后,由于复杂网络是大量复杂系统得以存在的 拓扑基础3 ,所以,复杂网络可能是由某种规则网络或随机网络组成,也可能是由某种复杂 网络组成的更为复杂的网络,也可能是由其他的某种网络或某些网络以某些方式组成的复杂 。网络等。 复杂网络的特点可从网络构成、网络模型、网络技术和网络管理四方面进行研究m 。 在网络构成上,一般来说,网络构成主要关心构成网络的各元素的类型、数量及其组成 等问题。其中构成设备主要有终端设备、传输设备、交换设备、复用设备等。并且复杂网络 环境是由不同历史时期建设的各种专业网互连而成的,它往往包含了多种不同类型的专业子 网,这些专业子网都属于简单网络,它们共享信息,协同工作,共同完成通信任务。由于这 些专业子网也是随着网络的发展建设的,因此构成这些子网的设备大多都不是同一时期生产 投运的,存在同一功能设备由不同厂商生产、同一厂商生产同一功能的多种型号的设备等情 况,这就增加了网络的复杂度。 从网络模型来讲,网络模型是个笼统的概念,一般认为,网络模型主要包括功能模型、 拓扑模型和应用模型等,其中功能模型是核心部分,而应用模型复杂多样,不同的使用场景 产生不同的应用模型。就功能模型而言,目前国际上公认成熟的模型主要有七层参考模型和 四层参考模型;就拓扑模型而言,常见的网络拓扑模型有规则模型、随机模型、层次化模型 和基于幂法则的模型等。规则模型的优点是易于处理,因此它们常常被用于对算法性能的分 析,常见的几种规则模型包括链状模型、环状模型、星型模型及网格模型。 从网络技术上来讲,网络技术指应用于通信网络的各种技术,包括业务应用技术、交换 传输技术、支撑技术、网管技术等各方面。网络发展至现代的复杂网络环境,众多的网络新 技术层出不穷,形成了多种技术共存,相互融合的局面。 从网络管理上来讲,网络管理所研究的主要内容有故障管理、配置管理、计费管理、性 能管理和安全管理等。由于复杂网络环境中,网络的规模越来越大,网络结构越来越复杂, 网络应用系统越来越多,使得网络管理问题日益复杂。网络管理已由单纯的网络本身的管理 发展到综合化网络管理,综合化集中体现在层次化、集成化、化和智能化。 2 内蒙古大学硕士学位论文 可见,无论从哪个方面的特点来分析,都可以明显地看出复杂网络环境都具有不同层次 的复杂性。云计算是符合复杂网络环境特点中的一种网络形式,是当今网络环境中很流行很 重要的一种形式,有其自身的特殊性。本论文研究的环境背景就是云计算环境。 1 3 云计算 1 3 1 云计算的定义 目前关于云计算系统没有统一的定义,很多专家学者从不同层面对云计算进行了诠释, 比较具有代表性的列举如下: h e w i t t 呻1 认为云计算系统主要是将信息永久地存储在云中的服务器上,在使用信息时只是 在客户端进行缓存。客户端可以是桌面机、笔记本、手持设备等。 w a n gl i z h e 等人m 从云计算系统应该具有的功能角度给出了科学云计算系统的定义,指 出计算云系统不仅能够向用户提供硬件服务h a a s ( h a r d w a r ea sas e r v i c e ) 、软件服务 s a a s ( s o i t 、) v a r ea sas e w i c e ) 、数据资源服务d a a s ( d a t a a sa s o r v i e e ) ,而且还能够向用户提供能够 配置的平台服务e a a s ( p l a t f o r m 嬲as o r v i c ) 。因此用户可以按需向计算平台提交自己的硬件配 置、软件安装、数据访问需求。 b u y y a 等人【伯1 从面向市场的角度认为云计算是由一组内部互连的虚拟机组成的并行和分 布式计算系统,系统能够根据服务提供商和客户之间协商好的服务等级协议动态提供计算资 源。 u cb e r k e l e y l l l l 的观点认为:云是指数据中心的硬件和系统软件,云分为公共云( 对公众开 放) 和私有云( 业务组织自己使用) 。在公共云的基础上,云计算系统是指终端用户应用软件通 过i n t e r n e t 以服务的形式由s a a s 提供商交付,云提供商向s a a s 提供商提供数据中心的硬件和 软件服务: 1 3 2 云计算的特点 综合文献n 和埔1 ,对云计算特点进行总结,主要从云计算的服务,技术和性能几个方面进行 分析: 就服务方面,在这一环境下,提出了一切即服务( x a a s ) 的理念。首先,在云计算环境 下,用户越来越少地关注服务的实现细节,供应商可以更多地关注服务的提供方面。这样供 应商就可以根据用户的需求来调整成本、系统质量,进而实现最为有效的系统模型。这也是 3 复杂网络环境下基于模型驱动的软件进化方法研究 提供服务的本质。其次,在提供服务方面,采取了按需服务的方式。根据需要,可以短期地 支付计算使用资源,并在不需要的时候释放,是即需即用的资源使用方式。 就技术方面,对计算资源进行动态切割及动态分配,它以w e b 为中心、交付服务。w e b 是承载云计算的核心。w e b 结构简单并以超链接连接h t m l 文档,以标记语言描述和存放内 7 容及其之间的关系,非结构化的存储使其具备强大的描述能力。尽管技术体系繁杂,相互之 间存在差异,但是整个业界唯一共同认定的是w e b 标准,它使w e b 成为承载不同业务、不同 系统的云计算的唯一平台。 就性能方面,云计算具有很多特点,比如说:超大规模,虚拟化,通用性,安全可靠性, 可扩展性,易伸缩性( 云计算的系统可以非常方便地按照意愿自由地调整其规模,满足用户 大规模或者小规模的需要) ;及其廉价,强大的计算和存储能力;对客户端设备要求低,用户 使用便捷,易于实现数据与应用共享;充分利用网络的强大功能。 一提到云计算,人们都习惯与网格环境进行比较,因为他们有很多相似之处。他们同样以 w e b 为核心,都试图将各种i t 资源看成一个虚拟的资源池,都可以看成是分布式计算所衍生 出来的概念,都是为了让i t 资源能够对用户透明,让i t 资源能够达到更好的使用率。二者 的意义都在于无论是用户还是企业开发者都能够通过互联网来获得数据或者进行计算,尽管 本地资源有限,但都能够通过网络进行复杂的运算n 。但云计算这种网络环境本身还是具有 其特殊性的,综合分析文献n 7 。1 钔,总结如下: 初衷不同。网格以科学计算为主要研究目的。云计算作为一种商业服务,它对不同的用 户按需服务,计时收费,和日常家用的电和煤气的模式类似,而网格不是这样。 服务范围不同。网格的构建大多数是为完成某一特定任务而设定。而云计算一般都是为 了通用应用而设计,不是某一特定任务。 资源来源不同。网格所需要的资源是通过一些闲散资源来提供服务。+ 而云计算是用集中 的大量的资源,不一定是闲散资源,来构建一个大的资源池,用户的需求就从这个资源池中获 取。 获取方式不同。云计算只需要说明自己所需的服务,用户可以不必购买新的服务器和部 署软件,就能得到应用环境或者应用本身。用户可以直接使用其服务,只需按需付费即可。 对待异构性方面,二者理念上有所不同。网格计算用中间件屏蔽异构系统,力图使用户 面向同样的环境,把困难留给中间件,让中间件完成任务。而云计算实际上承认异构,它是 用镜像执行j 或者提供服务的机制来解决异构问题。在不同应用上它也有所不同。 提供资源与否二者也有不同。网格计算强调资源共享。任何人都可以作为请求者使用其 4 一 一一 内蒙古大学硕士学位论文 它节点的资源,并都需要贡献一定资源给其他节点。云计算强调专有,任何人都可以获取自 己的专有资源,并且这些资源是由少数团体提供,使用者无需贡献自己的资源。 虽然云计算本身存在一定特殊性,但从某种意义上讲,云计算和网格还是有着很多相通 之处,他们之间可以通过多种方式进行关联。比如说,就资源来源来讲,其实闲散与否只是 一个概念,完全可以把一个计算机认为是一个闲散资源,也可以认为是云环境下的专有资源。 这时,云计算和网格就没有很大的差异了。所以云计算的特殊性只是一个相对的概念,并非 是绝对化的。 1 3 3 云计算下的软件 在软件工程领域,随着软件规模和复杂度不断增大,软件开发过程的后期维护和软件功 能变化所导致的一系列问题一直是研究者所关注的问题之一。如何解决软件危机,如何将其 影响最低化,成为研究者不断探讨的热点。为了解决软件危机,降低系统复杂性,一个重要 的思路就是提供合理有效的复用软件和通用的应用程序,这也正是云计算产生的原因。云计 算使得一个服务在多个组织用户之间的复用成为可能。所以,从某种意义上讲,云计算是软 件发展到一定程度一定阶段下的网络环境的衍生物,而这种特殊的复杂网络环境又对软件的 发展提出了新的要求,这就需要云计算的运行商对软件开发过程有所创新。我们目前使用的 绝大多数软件都是应用在一般的网络环境中的,而完全摒弃原先所有软件重新编写,工作量 庞大,不切合实际,所以切实可行的方法是将原先的软件移植到云计算环境下,让他们能够 继续正常使用。与此同时,由于环境变化和用户需求变更等多方面因素的影响,已经在云计 算环境下可以应用的软件可能需要继续对其进行改进,不断创新。综上,研究云计算环境下 的软件进化问题是有价值的。 1 4 有关本论文 本文结合了教育部“春晖计划合作项目“软件工程与再工程中的模型驱动方法研究 , 主要研究以下几个方面的内容: ( 1 ) 提出了从一般网络环境到云计算环境下的软件进化的整个流程 首先,基于模型驱动方法,总结分析了软件进化的一般过程。云计算环境下的软件进化 包括从一般网络环境到云计算环境下的进化,以及云计算环境内部的软件进化两个方面。本 文主要针对前者,基于模型驱动方法,对软件进化的整个过程进行了描述,给出从一般网络 环境到云计算环境下软件进化的整体流程。 5 复杂网络环境下基于模型驱动的软件进化方法研究 ( 2 ) 利用模型驱动的方法对平台无关模型进行建模 以模型驱动体系结构为依据,选定合适的平台无关模型,对一般网络环境中的软件进行 建模,实现从源代码到平台无关模型的转换,得到u m l 的类图,为后面将软件进化到云计 算环境做基础。 ( 3 ) 利用模型驱动的方法实现平台无关模型到代码的转换 依据模型驱动方法,结合云计算环境的平台特点,对已得到的平台无关模型进行转换, 得到代码,使得源应用程序可以在云计算环境中运行。 下面对本论文各章节组织简单介绍如下: 第一章绪论简述复杂网络环境及其云计算环境的相关概念和特点,说明了云计算环境 下软件进化的必要性,并阐明了本论文所要研究的主要工作。 第二章软件进化与模型驱动技术综述软件进化的基本概念和必要性,简要介绍模型驱 动方法的基本概念,简述了模型驱动体系结构的基本概念,体系结构,开发流程,优势等相 关内容,为后面的转换提供理论基础。 第三章云计算环境下基于模型驱动的软件进化在分析软件进化的一般过程后,给出了 从般网络环境到云计算环境下的软件进化的整体过程。并依据模型驱动体系结构,给出了 在源应用程序转换为平台无关模型时所选用的模型和所使用的工具,最后给出了从平台无关 模型到云计算环境下代码转换时云计算平台的选择,平台所使用的重要接口以及转换的方法。 第四章应用实例按照第三章所给方法和所选工具,将一个一般网络环境下的白板应用 程序进行转换,基本实现了进化到云计算环境的目标,验证了从一般网络环境到云计算环境 下软件进化过程的可行性。 第五章结论和进一步工作总结全文内容,并指出需要进一步研究的工作。 6 一 图2 1 进化的分阶段过程模型一 f i g u r e 2 1t h es t a g e dp r o c e s sm o d e lf o re v o l u t i o n 同时在7 0 年代,m a n n yl e h m a n 明确描述了软件进化的规则,这是一个对现在的软件进 化很重要并颇具启发意义的著名规则。这个规则的假定是基于l e h m a n 实践的早期工作,以 理解应用于m m 操作系统的改变的过程。他最初的发现在后期其他软件系统中的学习中被逐 渐证实。洲 尽管如此,软件进化这个术语直到9 0 年代才获得了广泛的关注,在软件进化方面的研究 才开始变得热火朝天。这也同时导致了被称作进化过程的阶段模型被认可,比如g i l b 的进化 开发,b o h e m 的螺旋模型,b e r m e t 螺旋模型,b e n n e t t 和r a j l i c h 这些都是进化过程的阶段模 型。阶段模型如图2 2 所示。在第一个运行版本的初始开发阶段,进化阶段允许软件任何一 种方式的修改,只要依然保持完整性即可。啪1 c h a n g ep a t c h e s 图2 2 进化的分阶段过程模型( 2 0 0 0 a c m ) f i g u r e 2 2t h es t a g e dp r o c e s sm o d e lf o re v o l u t i o n ( 2 0 0 0 a c m ) 7 复杂网络环境下基于模型驱动的软件进化方法研究 现在,软件进化已经并是一个不陌生的词语了,它是已经被软件工程所认可的一个领域。 现如今已经有很多的会议和研讨会关注于这个课题的研究,相关方面的文献也是频频出现。 软件进化成为了软件工程研究很活跃很重要的一个领域。 软件进化发展至今,都是一个活跃的研究课题,并且这种态势将会继续持续下去,主要 是基于以下几个原因:首先,在一般的大型复杂系统中,它的生存期都比较长;其次,这些 系统本身的动态性都较强;此外,很多机构的系统在前期都投入了很多的资金,所以完全摒 弃原来系统,开发新的系统不是一种行之有效的方法,而更加可行的方式是需要通过系统的 进化来保持系统的价值。在系统这个比较长的生存期期间,系统的动态性很强,主要是受到 以下几个需求变更方面的影响: 首先,客户需求变更。比如新需求的提出,这种需求可能是客户以前不需要现在需要的, 或者是以前没有注意到的问题等。在软件开发周期当中,客户由于各种因素所导致的需求变化 是导致软件需要不断进化的一个很重要的原因。每一次客户需求的改变都推动着软件或多或 少的进行进化。 其次,软件提供者需求变更。比如说已发布的软件版本中用户未明确提出或特别要求的 功能需要完善,或者对软件系统某些缺陷的修补,或者对开发的软件提出修改意见,以后需要 进一步做的软件功能或性能方面的进化。这一方面的需求变更是随着软件提供者对用户需求 不断的深入了解,揣摩用户内心的想法,以及在实现软件的过程中对软件更进一步的深入理 解之后所作出的必要的软件进化。 再次,环境变更。其中包括硬件结构的变化,操作系统的变化,编程语言的变化,网络 协议的变化,中间件的改变,使用框架的变化等多个方面。无论是操作系统,实现所使用的 编程语言类型,软件框架的更新替换,还是在软件工程和网络方面的新的技术,新的方法的 引进都会迫使软件进化必要的修正更新,所以这种意义上的软件进化也必不可少。 从以上几方面可以看出,从使用环境到使用者再到提供者,无论是哪一方面有了调整, 都会产生软件功能不同程度的变更,而这些变更无疑都会触发软件系统做进一步的功能或性 能等方面的完善改进,由此可见软件进化势在必行。 2 1 2 软件进化的定义及方法 虽然软件进化已经是近多年研究关注的热点,但目前为止对软件进化这个术语还没有统 一的定义,已有的一些定义都从不同层面对软件进化的内容进行诠释,以下为其中几种定义 2 1 - 2 5 内蒙古大学硕士学位论文 r i s e ( t h e r e s e a r c hi n s t i t u t ef o rs o f t w a r ee v o l u t i o n ) 认为:一般的软件进化涉及到了软件交 付给客户之后所发生的所有活动。它定义软件进化为一系列的活动,包括技术上和管理上的, 这些活动能够确保软件产品不断达到商业要求的目标,且是低成本高效的完成。 m a n n ym l e h m a na n dj u a nr r m n i l 定义软件进化为:有目的地从早期的可操作版本来产 生新的软件版本的所有规划设计活动。 l a b e l a d y 的定义为:软件系统在它们的生命周期里被维护和增强的动态行为。 n e dc h a p i n 定义软件进化为:它是软件维护活动和过程的_ 个运用,以及对这些活动和 过程质量的保证和管理。这些活动和过程是用来从一个早期的可运行版本中来产生一个新的 软件版本,这个新的软件必须满足客户要求改变的功能或属性。 尽管软件进化的定义没有统一,但总结分析会发现它的实质都一样,软件进化是一个长 期动态的过程。在这个过程中,程序要改变其形态来适应市场的要求并获得从先前程序中继 承而来的特性。实现进化的最终目标是使软件能够更好地实现客户的需求,更好地适应环境 的改变,使软件的功能不断地完善和增强。软件进化是包含各种行为的,这些行为可以改变 软件系统,可以影响软件的发展,同时可以改变行为之间的各种关系。从某种意义上讲,进 化不再是维护的另一个代名词,不再是简单意义上的维护,它贯穿于整个软件开发的生命周 期中韵一种行为。软件进化所强调的行为包括从适应需求到更新工作系统,从需求改变的回 应,性能,透明性,修改错误,版本,配置,文档,测试到代码生成器等的改善。总之,软 件进化渗透在软件开发整个生命周期的每一个环节。 随着人们日益认识到软件进化的重要性,软件进化的研究也越来越多,如今软件进化的 已有方法虽不是很成熟稳定,但是也有很多,将一些主要方法列举如下: ( 1 ) 基于形式化语言w s l ( w i d es p e c t r u m1 觚g i l a g e ) 的方法乜町 这是一种形式化的程序转换方法,它是一个基于形式化语言w s l 的方法。这些转换在程 序改变其形式时,可保持其语义不变。它们被应用于重构系统,并抽象其中高层的表示,借助 于一系列合适的转换,可以使这些抽象的表示等同于代码。 ( 2 ) 中f b q $ 1 jf i 晶( a r t i f a c t ) 司 这种方法依赖于一系列在需求和代码之间由映射连接的中间制品,这些中间制品及其连 接可以被构造和维护,它们可以用一个系统的方法来指导软件的进化过程。它将需求对应于 问题域,将最终的代码对应于解决域,用中间制品来搭建需求和代码之间的良好桥梁。 ( 3 ) 基于开放实现与反射的软件进化模型船1 本研究基于这样一个认识:系统的扩充和进化不是随意的,而是可以在相当程度上预见 复杂网络环境下基于模型驱动的软件进化方法研究 的。所以,对软件的进化进行了预处理,提前分析了系统的进化特性;提供了功能接口,定 制接口。其中的功能接口是既定的,而定制接口是开放可扩展的,用于日后功能的扩充和完 整 口o ( 4 ) 基于超图的软件进化模型瞳6 2 7 1 利用超图进化模型进行软件开发时,可对顶层超图中的步骤进行分解,从而使得软件开 发过程有更明确的思路。为了支持软件进化过程的跟踪能力,该方法使用复合箭头说明一个 步骤的所有路径,即借助复合箭头的表示来反映一个步骤的一个公共输出结点和不同的路径 ( 主输入驱动路径或从输入驱动路径) 。它是侧重于专用领域的一种软件开发结构。 ( 5 ) 面向方面( a o p ) 的软件进化隗冽 a o p 专注于解决系统中某些属性横切基本功能时所产生的问题。关注点可以理解为对系 统是进行功能分解得到的对象或功能单元,也可以是一些非功能性的特性,比如安全性,同 步,存储管理和一致性,甚至是开发周期。a o p 的设计层采用一般关注点( 实现为组件) , 横切关注点( 实现为方面) ,最后通过a o p 环境提供的织入器将其组合。 2 1 3 软件进化过程 研究软件进化的一个重要方面就是在软件进化过程中找到促进整个软件进化发展的最合 适的模型。关于与进化过程相关的阶段模型在本章2 1 1 节中已经介绍了很多。i e e e 标准是 用于软件维护的,i s o i e c 标准不仅是用于软件维护,还可用于提出维护过程模型n 羽。这些 著名的标准都说明了软件维护以及软件进化在软件工程领域中的重要性。由于软件进化的行 为是一个连续的反馈系统,软件过程模型的选择本身可能就是一种进化的体现。研
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 民爆行业安全培训内容课件
- 民法课件模板
- 民法合同课程讲解课件
- 初一历史期末考试及答案
- 报关实务考试题库及答案
- 新质生产力与传统产业的融合
- 民族资产阶级革命课件
- 医护家属关系管理
- 新质生产力的多元主体
- 促进新质生产力发展的关键举措
- 2025年中国电信招聘考试行政职业能力测试预测题集
- 静脉治疗知识培训课件
- 学风建设科研诚信宣教课件
- 《机械制图(多学时)》中职全套教学课件
- 2024过敏性休克抢救指南(2024)课件干货分享
- 胸心外科常见病诊疗
- 高中数学 人教A版 必修一 《集合与常用逻辑用语》 1.2 集合间的基本关系
- GB/T 3452.2-1987O形橡胶密封圈外观质量检验标准
- 部编版三年级语文上册第2课《花的学校》精美课件
- 遥感大数据应用解决方案课件
- (精选word)洪恩识字-生字卡片1-200
评论
0/150
提交评论