(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf_第1页
(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf_第2页
(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf_第3页
(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf_第4页
(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf_第5页
已阅读5页,还剩47页未读 继续免费阅读

(计算机应用技术专业论文)用面向对象技术重构遗留系统的方法研究.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

中文摘要 论文题目: 专业: 硕士生: 指导教师: 用面向对象技术重构遗留系统的方法研究 计算机应用技术 杜延宁( 签名) 王家华( 签名)势茳 摘要 本文中的遗留系统是指那些因为某种原因( 历史的、人为的) 在设计和实现阶段未 采用面向对象技术的旧有系统。 这类系统在经过一段较长时期的发展之后,其各项功能基本完善并趋于成熟,但由 于在整体上缺乏一个具有弹性、易于扩展的架构,从而在面对变化的用户需求以及自身 发展的需要时,无法及时有效地做出改变,使其进一步的发展受到了限制。 以面向对象的分析、设计以及实现方法为基础对这些系统进行改造( 重构) 的需求 变得越来越迫切。 本文将对利用面向对象技术对结构化遗留系统实施再工程的过程中涉及到的一般性 原则、方法以及一些具体的工程措施进行研究。 重构是个再工程的过程,与普通工程过程一样,涉及到分析、设计以及实现等若干 环节,所以本文不单局限于对于重构实现的讨论上,而是对包括需求分析、现状分析、 重构分析、重构设计以及重构实现在内的再工程过程的各个阶段进行了深入的探索。 本文以一个实际的系统( g a s o r ,储层地质统计分析系统) 为例,对重构所涉及的 各个方面作了详尽的分析,得出了对于指导结构化遗留系统面向对象重构具有实际意义 的若干原则和方法。同时作为这些原则与方法的应用结果,实现了从老g a s o r 系统以 储层地质方法为中心的系统架构到新g a s o r 系统以储层模型为中心、工作流为线索的 系统架构的转变。 关键词:遗留系统重构再工程架构面向对象 论文类型:应用研究 ( 本文得到“储层地质统计分析系统g a s o r p c 微机版开发与推广”,陕西省科技厅2 0 0 3 年科技推广计划项目( 项目编号为2 0 0 3 k t 0 0 8 ) 的资助) 英文摘要 s u b j e c t :as t u d y o f m e t h o d sf o rr e c o n s t r u c t i o no f l e g a c ys y s t e mw i t ho b j e c t - o r i e n t e d t e c h n o l o g y s p e c i a l i t y :c o m p u t e ra p p l i c a t i o nt e c h n o l o g y n a m e :d u y a n n i n g ( i n s t r u c t o r :w a n gj i a h u a a b s t r a c t t h ew o r d “l e g a c ys y s t e m s i nt h i sd i s s e r t a t i o nr e f e r st ot h o s eo l ds y s t e m st h a tf o rs o m e h i s t o r i c a lo rm a n - m a d er e a s o n sh a dn o tb e e nd e s i g n e da n di m p l e m e n t e du s i n go b j e c t - o r i e n t e d t e c h n i q u e s a f t e ral o n gp e r i o do fe v o l v e m e n t ,t h ef u n c t i o n so fs u c hs y s t e m sh a v eb e e nc o n s u m m a t e a n dm a t u r e 。h o w e v e r , a st h el a c ko faf l e x i b l e ,e a s yt oe x p a n da r c h i t e c t u r ea saw h o l e ,s oi n t h ef a c eo ft h ec h a n g i n gn e e d so fu s e r sa sw e l la st l l e i ro w nd e v e l o p m e n tn e e d s t h e ya l e u n a b l et om a k eat i m e l ya n de f f e c t i v ec h a n g e ,i t sf u r t h e rd e v e l o p m e n ti sl i m i t e d t h ed e m a n df o rr e c o n s t r u c t i o nb a s e do no b j c o t - o r i e n t e da n a l y s i s ,d e s i g na n d i m p l e m e n t a t i o nh a sb e c o m em o r ea n dm o r ep r e s s i n g t h er e s e a r c ho ft h i sd i s s e r t a t i o nf e a t u r e st h eg e n e r a lp r i n c i p l e s ,m e t h o d sa n ds p e c i f i c m e a s l e si n v o l v e di nt h er e - e n g i n e e r i n gp r o c e s so ft h es t r u c t u r e dl e g a c ys y s t e m sw i t ht h e o b j c o t - o r i e n t e dt e c h n i q u e s r e c o n s t r u c t i o ni sap r o c e s so fr e - e n g i n e e r i n g a sag e n e r a le n g i n e e r i n gp r o c e s s ,i t i n v o l v e ss e v e r a lp h a s e si n c l u d i n ga n a l y s i s ,d e s i g na n di m p l e m e n t a t i o n s ow ea r en o tl i m i t e d o nt h ed i s c u s s i o no ft h ei m p l e m e n t a t i o no ft h er e c o n s t r u c t i o n , a n dw i l lm a k ea ni n - d e p t h e x p l o r a t i o nf o rv a r i o u ss t a g e so ft h er e - e n g i n e e r i n gp r o c e s si n c l u d i n gn e e d sr e q u i r e m e n t a n a l y s i s ,s t a t u sq u oa n a l y s i s ,r e c o n s t r u c t i o na n a l y s i s ,r e c o n s t r u c t i o nd e s i g na n dr e c o n s t r u c t i o n i m p l e m e n t a t i o n b a s e do na na c t u a ls y s t e m ( g a s o r ,g e o s t a t i s t i c a la n a l y s i ss y s t e mo fr e s e r v o i r ) ,w e m a k eac o m p r e h e n s i v ea n a l y s i si n v o l v i n gv a r i o u sa s p e c t so fr e c o n s t r u c t i o na n dc o m et o s e v e r a lp r i n c i p l e sa n dm e t h o d sw h i c hh a sp r a c t i c a ls i g n i f i c a n c ef o rg u i d i n gt h er e c o n s t r u c t i o n o fs t r u c t u r a ll e g a c ys y s t e mw i t ho b j e c t - o r i e n t e dt e c h n i q u e s m e a n w h i l e ,a st h er e s u l to ft h e a p p l i c a t i o no ft h e s ep r i n c i p l e sa n dm e t h o d s ,t h et r a n s i t i o nf r o mt h er e s e r v o i rm e t h o d - c e n t r i c a r c h i t e c t u r eo fo l dg a s o rs y s t e mt ot h er e s e r v o i r - m o d e l - e e n t r i c ,w o r k f l o wa sc l u e a r c h i t e c t u r eo f n e wg a s o rs y s t e mh a db e e na c h i e v e d i i i 英文摘要 k e yw o r d s :l e g a c ys y s t e m r e c o n s t r u c t i o n r e e n g i n e r i n g a r c h i t e c t u r e o b j e c t - o r i e n t e d d i s s e r t a t i o n :a p p l i c a t i o ns t u d y ( t h i sp a p e ri ss u p p o r t e db ys c i e n c ea n dt e c h n o l o g ys p r e a d i n gp r o j e c to fs h a a n x ip r o v i n c e s c i e n c ea n dt e c h n o l o g yb u r e a ui n2 0 0 3 ) 学位论文创新性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他 人已经发表或撰写过的研究成果;也不包含为获得西安石油大学或其它教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中做 了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:丝主日期:口) - f ,f 学位论文使用授权的说明 本人完全了解西安石油大学有关保留和使用学位论文的规定,即:研究生在校攻读 学位期间论文工作的知识产权单位属西安石油大学。学校享有以任何方法发表、复制、 公开阅览、借阅以及申请专利等权利。本人离校后发表或使用学位论文或与该论文直接 相关的学术论文或成果时,署名单位仍然为西安石油大学。 论文作者签名:盎量丝 导师签名= 7 吕 日期:加0 7 r - , 日期:纱u 7 :f 厂 注:如本论文涉密,请在使用授权的说明中指出( 含解密年限等) 。 第一章绪论 第一章绪论 1 1 本研究的目的以及意义 本文中的遗留系统是指那些因为某种原因( 历史的、人为的) 在设计和实现阶段未 采用面向对象技术的旧有系统。 这类系统在经过一段较长时期的发展之后,其各项功能基本完善并趋于成熟,但由 于在整体上缺乏一个具有弹性、容易扩展的架构,从而在面对变化的用户需求以及自身 发展的需要时,无法及时有效地做出改变,使其进一步的发展受到了限制。 以面向对象的分析、设计以及实现方法为基础对这些系统进行改造( 重构) 的需求 变得越来越迫切。 本文将对利用面向对象技术对结构化遗留系统实施再工程的过程中涉及到的一般性 原则、方法以及一些具体的工程措旌进行研究。 重构是个再工程的过程,与普通工程过程一样,涉及到分析、设计以及实现等若干 环节,所以本文不单局限于对于重构实现的讨论上,而是对包括需求分析、现状分析、 重构分析、重构设计以及重构实现在内的再工程过程的各个阶段进行了深入的探索。 正如客观世界的多姿多彩,软件系统也同样具有丰富而迥异的类型,即使对于面向 对象这一技术来说,对于不同的遗留系统,该如何应用它也会随着对象的不同而有所差 异。其中最重要的影响因素便是遗留系统所处的应用领域。本文将结合一个用于地质建 模的软件系统g a s 0 r 的重构过程对如何应用面向对象技术重新理解、设计并重构一个 遗留系统提出一些观点,并期望能够籍此总结出一些对于遗留系统进行面向对象重构具 有指导性的基本原则以及一些具体的工程方法。同时作为这些原则与方法的应用结果, 将实现从老g a s o r 系统以储层地质方法为中心的系统架构到新g a s o r 系统以储层模 型为中心、工作流为线索的系统架构的转变。 1 2 国内外研究现状 本文涉及到的主要研究领域为重构的策略与方法,重构主要是架构的重构,通过面 向对象的分析、设计及实现技术对遗留系统进行再工程,所以也不可避免地涉及到面向 对象方法。 1 ) 重构 目前研究较多的都是如何用面向对象方法从头开发一个全新的系统,而对于如何将 面向对象方法应用到遗留系统的重构问题研究并不多见,即使有所涉及,也主要集中在 企业信息系统的重新整合方面 1 】 2 】1 3 1 ,而对于g a s o r 这类以模型建立、分析、模拟为主 的系统的重构工作的研究并不多见1 4 j 。 w s a d o l p h 在文 2 1 冲详细地介绍了在改造一个旧的铁路信号管理系统中对遗留 西安石油大学硕士学位论文 系统的处理,从软件工程的角度,讨论了在不同开发阶段如何进行人员组织和培训, c a s e 工具的运用。他认为只有设计人员对于遗留系统本身有足够的了解,才能利用遗 留系统来降低新系统开发的风险性。 wh i n m o n 讨论了遗留系统改造十分困难的5 点原因,总结了处理遗留系统的两 种趋势:系统重建( r e e n g i n e e r i n g ) 和业务数据与决策支持数据分离的趋势【捌。 胡侃等在文【1 】中就如何处理遗留系统提出了4 种模式:完全舍弃遗留系统、对遗留 系统的继承淘汰、对遗留系统的改造移植、遗留系统的集成扩展。 2 ) 面向对象 面向对象方法早已取代结构化方法成为软件开发的主流,无论是前期的需求捕获、 分析、设计,还是后期的实现、测试,整个软件开发过程中面向对象方法都得到了大量 应用,在这一方面有大量现成的工具、类库和技术的支持吼 3 ) 架构 统一开发过程( r i j p ) 是一个以架构为中心、迭代式的增量的软件开发过程,它被 设计用来指导面向对象软件系统的开发。针对这方面的研究成果非常丰富,特别是其中 有关架构和可运行的最小系统方面的研究对于g a s o r 系统的重构工作具有很大的指导 意义【6 j 。 1 3 构思及主要工作任务 本项研究将对g a s o r 系统目前面临的挑战以及困境背后各种矛盾进行详尽的考 察,并在此基础上分析当前g a s o r 系统架构的组织形式,探寻在目前的架构下实现新 功能时发生困难的原因以及目前的使用方式对用户造成困难的根源,从演化的角度分析 造成今天所面临的诸多问题的原因,并试图寻找一个恰当的解决方案。 整个工作涉及对遗留系统进行再工程的各个阶段。 首先,将对目前系统存在的问题作深入的分析,主要是对需求的重新认识,不仅涉 及到当前面i 临的需求与挑战,还包括对形成g a s o r 现状的历史原因的分析。 然后,在此基础上探讨问题形成的原因,以及制约这些问题得到解决的因素,主要 是对目前架构下满足这些需求的可能性的分析。 在分析了这些因素之后将提出对解决方案的初步设想,即以数据为中心、以用户体 验为中心的重构设计方向,以及以储层模型为中心、工作流为线索的面向对象的系统架 构。 然后对g a s o r 系统的内部结构进行分析,通过追踪g a s o r 系统的源代码中所反 映出来的数据处理加工流程,特别是用于各个模块问传递信息的数据文件之间的输入输 出关系,对各部分间依赖关系做出全面认识。在此基础上,以系统加工处理的地质数据、 模型结构为出发点,识别出系统中的基本对象及其属性与方法,即储层对象模型。然后 围绕这个储层对象模型,将系统提供的功能、方法以建模步骤和工作流的形式组织起来。 第一章绪论 这是对遗留系统进行面向对象的再设计的阶段。 最后在重构实现阶段,将通过实现全新的全局架构以及对遗留系统原有功能性代码 的复用来完成新的、面向对象的系统。 重构的最终的结果是为g a s o r 系统建立一个以储层模型为中心,工作流为线索的 面向对象的软件架构,并实现包括系统基本对象在内的可运行的最小系统。 项目对象、小层对象以及小层的各种属性子对象构成了以储层模型为中心的面向对 象系统,而建模步骤对象和工作流对象则实现了以工作流为线索的系统功能组织方式。 本文的重点将放在架构上,即以储层模型为中心,面向对象的架构上。 最后作为g a s o r 系统重构的推论,将给出一系列指导遗留系统进行面向对象重构 的基本原则和方法。 创新点如下: 以数据为中心、以用户体验为中心的重构设计方向; 以储层模型为中心、工作流为线索的面向对象的系统架构; 通过追踪用于各个模块间传递信息的数据文件之间的输入输出关系,对各部分间依 赖关系做出全面认识; 从g a s o r 系统加工处理的地质数据、模型结构中识别并定义构成g a s o r 储层模 型的基本对象,以及它们的类、方法和属性; 另外,在实现过程中,选择c + + 作为编程语言,开发工具选择v i s u a lc + + g 0 。类库 以m f c 为主,结合使用c + + 标准库以及b o o s t ,并将m f c 的使用范围限制在用户界面 实现上。 1 4 课题来源 本文得到“储层地质统计分析系统g a s o r f p c 微机版开发与推广”,陕西省科技厅 2 0 0 3 年科技推广计划项目( g a 目编号为2 0 0 3 0 r 0 0 8 ) 的资助。 1 5 论文的组织结构 本文共分5 章: 第一章:绪论。介绍了本课题的来源,研究目的以及意义。简单论述了该领域国内 外的研究现状,并对工作的构想以及主要工作任务作了说明。 第二章:g a s o r 系统的现状。阐述了g a s o r 系统目前面临的困难,以及对g a s o r 系统进行面向对象重构的迫切性,确定了工作方向。 第三章:问题的根源。对g a s o r 系统的演化过程进行了分析,在此基础上对存在 于g a s o r 系统中的主要矛盾进行了深入探讨,将问题的焦点集中到了g a s o r 系统的 架构上。 第四章:重构。确定了实施重构的指导原则、步骤,提出了以储层模型为中心、工 西安石油大学硕士学位论文 作流为线索、面向对象的解决方案。从用户角度和开发人员的角度对重构之后的设计进 行了详细描述。最后对重构实施过程中的一些基本措施进行了叙述。 第五章:结论。总结了重构对g a s o r 系统的影响以及通过g a s o r 系统的重构得 到的若干对于用面向对象技术重构遗留系统具有意义的一般性方法。 4 第二章g a s o r 系统的现状 第二章g a s o r 系统的现状 g a s o r 是一个用于油藏建模的地质统计分析系统,主要面向石油地质学家和油藏 工程师。 g a s o r 系统经过一段较长时期的开发,各项功能逐渐完善,但是由于在设计之初 没有对整个系统的架构作一长远规划,致使在功能不断增加的同时,功能间的相互衔接 与配合显得越来越不自然,这种不自然体现在各个功能模块间的数据共享上以及系统内 部对象的结构上。这种矛盾致使系统结构和系统所加工的储层模型越来越远,限制了 g a s o r 系统的进一步发展,导致许多新功能的加入都是以系统混乱程度的进一步增加 为代价的,这种饮鸩止渴似的恶性循环如果不能得到及时有效的遏制和解决,系统最终 将因混乱导致的无法维护而失去生机。 此外,从用户所提出的新的需求来看,随着市场上相关软件产品的逐渐成熟和丰富, 无论是在其他领域,还是油藏建模方面,对软件与用户的交互方式都已形成了一种事实 标准,如果一个软件在使用方式上不能和这些事实上的标准保持一致,带给用户的只有 漫长的学习和熟悉周期,不利于软件的进一步推广和发展。 况且g a s o r 系统最初被设计为在u n i x 工作站环境下运行,环境的不同,加之诞 生时日已久,致使g a s o r 系统在十几年后以w i n d o w s 为主的个人电脑平台上,与它周 围的整个软件生态系统显得格格不入,虽然在2 0 0 0 年左右曾经大规模地从工作站环境移 植到了w i n d o w s 平台下,但整个系统的结构与从前相比并没有实质性的变化,只是用一 个平台下的图形用户界面a p i 重新实现了原先平台下已经能够做到的东西。而且在移植 的过程中,因为整个软件系统的混乱导致后来接手的开发人员甚至不能完全搞清楚系统 中已经实现了哪些功能,以致一部分在工作站环境下已经实现了的功能在向w i n d o w s 平 台的迁移过程中丢失。这进一步说明,对整个系统的结构作一次重新梳理和改造的时机 成熟了。 现状是什么? 就是我们不得不面对的东西。 总的来说,g a s o r 系统的现状就是: 各种功能不断完善,基本上趋于成熟。 实际使用中用户提出的要求大多都是针对使用方式的,而不是针对具体功能。 国外同类产品大量进入市场,其风格、形式已经得到用户认同,集成开发环境( 1 d e ) 观念深入人心,而g a s o r 系统却是由多个风格迥异的可执行文件( e y e ) 构成,使用极其 不便。 因为已经存在很长的时间了,有大量的代码需要继承。但g a s o r 的开发队伍却极 不稳定,虽然在储层地质统计分析方法方面作了大量的积累,但在软件结构方面却没有 多少进展。所以,现在要考虑的是在目前这种情况下如何来更好地组织这些功能。 西安石油大学硕士学位论文 2 1g a s o r 系统面临的窘境 g a s o r 系统目前面临两个主要困难: 其一,对于用户,功能丰富却难以使用。 g a s o r 系统经过长期的发展,涵盖了地质统计分析方面的几乎所有重要方法,而 且对于一些前沿性的领域也有所涉及,这些方法在理论上是先进,g a s o r 系统对于它 们的实现也是相当高效的。 但是,通过反馈却发现用户很难掌握这套系统,以至于大部分用户在面对g a s o r 系统丰富的功能时竟然不知道该从何处下手。 其二,对于开发人员:具体功能不断加强的同时整个系统却出现了四分五裂的趋势。 g a s o r 系统的开发目前处在这样一种状态,整个系统被划分为若干模块交由若干 不同的开发人员,这些开发人员往往潜心于具体方法的高效实现上,却忽视了整个 g a s o r 系统作为一个整体这个事实,导致g a s o r 系统的各个模块往往不能很好地相 互协作。 2 2 对遗留系统进行重构的迫切性 对g a s o r 系统进行重构的迫切要求是以下两个因素共同作用的结果,即; 应用中不断有新的需求提出以及g a s o r 系统自身发展的要求。 1 ) 应用中不断有新的需求提出 g a s o r 系统的诞生就是为了解决生产实践中的具体问题,从用户反馈中可以了解 到这样的信息,用户需要一个简单的、易于使用的g a s o r 系统,而且要符合用户的一 般习惯,然而以g a s o r 系统目前的架构做出这样的改变很难。 2 ) g a s o r 系统自身发展的要求 g a s o r 系统的开发工作陷入了这样一种困境:各项功能不断增加,彼此之间的配 合却越来越困难。随着g a s o r 系统规模的不断扩大,相比添加新的地质方法的困难, 软件维护的困难变得越来越来越显著。 2 3 面临的任务 为了解决这些这些问题,走出困境,我们需要对g a s o r 系统做出一些重要的改变。 这些改变可分为两个方面。 从系统外部来看,我们要提供给用户一个自然直观的建模流程以及一个易于使用的 用户界面。从系统内部来看,需要改变系统架构,在新的架构基础上复用原有的各功能 模块。 6 第三章问题的根源 第三章问题的根源 3 1g a s o r 系统的演化 所有的遗留系统都经过了从酝酿到形成,从最基本的要素到逐渐成熟的发展过程, 特定的演化决定了我们所面临的遗留系统今天所具备的特质。 一个遗留系统不单纯是一个我们需要正视的现状,它更是一个结果,一个不断调整 自身以适应各种需求的发展的过程的结果。 一个遗留系统之所具有今天我们所看到的样子,是发展过程中面临的各种挑战,以 及为了应对这些挑战所选择的策略共同造就的。 这些挑战包括当时的市场环境、用户需求、开发队伍、技术平台等等一系列因素, 这些因素有些曾经是新系统前进的推动力,但在经过一段时期的发展之后却成了限制系 统进一步发展的不利因素。如果不对这些因素进行深入地考察和分析,是很难理解摆在 我们面前的遗留系统的。有相当一部分看似显而易见的不合理设计,在明白了它的形成 原因之后,你会发现,它们在当时的情况下都是一些必然的选择。 所以,本章将详述g a s o r 系统的演化过程,探讨形成现在各种问题的历史原因, 希望借此找到解决g a s o r 系统面临的困境的一些思路。 g a s o r 系统发展于八十年代初期,初期的开发主要是围绕g s l i b ( g e o s t a t i s t i c a l s o f t w a r el i b r a r y ) 来进行的,虽然在后来的发展过程中又独立发展了许多方法,但g a s o r 作为一个软件系统来说,它的基本架构以及开发模式是在这一阶段奠定的,并一直延续 了下来。g s l i b 对g a s o r 系统的结构影响是相当巨大的,所以为了对g a s o r 系统的 结构进行深入的分析,这里有必要简单说明一下g s u b 的情况。 g s l i b 基本上是由一组f o r t r a n 程序构成,但它的实际情况并不是像其字面意思 所表示的那样是一个l i b r a r y ,而是一些被编译成独立的e x e 文件的程序,各种参数的输 入,结果的输出,以及各个程序间信息的传递都是通过文件的形式来进行的。对程序本 身的行为使用者是缺乏控制的。为了得到最终的结果,使用者必须准备原始数据,然后 依次运行各个程序对数据进行逐步加工。 之所以这样,这与g s l i b 产生的环境以及产生的目的是密不可分的,g s l i b 产生于 图形用户界面尚未成熟的八十年代初期,u n i x 风格的用户控制台晃面是很显而易见的 选择;而且,因为受到计算机主存大小的限制,类似编译程序式的多遍加工也是普遍被 采用的技术;另外,g s l i b 在初期作为一个学术性的软件系统,重点是放在对地质分析 方法的探索而不是软件系统架构的设计上。 可以这样说,g a s o r 系统的架构在发展之初便已经由g s l i b 的架构决定下来了, 从g s l i b 继承而来的这个基本架构在g a s o r 系统的发展过程中有着异乎寻常的影响。 g s l i b 将对地质分析方法的探索作为主要重点的这个事实对于直接继承自它的 西安石油大学硕士学位论文 g a s o r 系统来说,一个最重要影响就是,整个g a s o r 系统的构造都是以地质方法为 中心的。从安装之后硬盘上的目录结构,到用户的操作方式,g a s o r 系统的方方面面 都是按照这种指导思想来进行规划的。 对数据进行多遍加工实际上也决定了用户使用g a s o r 系统的方式,因为这种划分 不是出于功能的需要,而是为了克服较小主存带来的限制,也就是说在某些情况下两遍 之间并不产生任何对用户具有直接意义的输出,这种中间性的输出结果在产生之后便立 即被下一遍的加工过程消费掉了,也不需要用户的进一步干预,然而为了让加工过程继 续进展用户却不得不手动地依次执行这两个过程。这种不得已而为之的繁复性对于今天 的计算环境来说显然是有些不合时宜了。 同g s l i b 一样,g a s o r 系统出自一个研究性机构而非商业化的公司,研究的性质 决定了它将方法的有效性,而不是系统的易用性放在第一位。在一项技术尚处在理论研 究阶段时这种矛盾并不表现得十分突出,但随着软件的日渐成熟,理论研究逐渐让位于 生产实践中的大量应用后,原先的那种只注重方法的有效性而忽视软件易用性的做法遇 到了不可克服的困难。 与g a s o r 这种将方法作为重中之重,而忽略它作为一个软件系统的事实直接相对 应的是g a s o r 系统的开发方式,在十几年的开发过程中,g a s o r 系统甚至从未使用 过任何形式的版本控制系统。对为什么会出现这种情况,以及为什么在不使用任何版本 控制系统的情况下开发依然能够继续这两个问题的回答,将有助于我们理解g a s o r 系 统的现状。 作为一个研究性机构,g a s o r 的创造者,西安石油大学软件研究所没有足够的资 金雇用专业的开发人员,g a s o r 系统主要是由一群研究生而不是商业软件公司的专业 程序员完成的。因而作为一项研究项目,g a s o r 系统虽然具有很高的学术价值,但作 为一个软件系统,g a s o r 系统的表现就有些不尽如人意了。 在九十年代后期g a s o r 系统从工作站转向w i n d o w s 平台的时候,必然地选择了 v i s u a lc + + 以及起出售的m f c 作为基础的软件平台,但由于m f c 在设计上种种与生 俱来的缺陷,g a s o r 系统的开发也受到了很大限制。这种限制不是功能性的,而是策 略性的。 随着不断的发展,g a s o r 系统作为一个成熟的、强有力的商业化软件系统而不单 单是g s l i b 以及一堆地质分析方法的一个图形用户界面的趋势也越来越明显,在这种情 况下,g s l i b 的那种简陋而单纯的架构,以及这架构主导下的开发方式已经越来越不能 适应需要,而渐渐成为g a s o r 系统继续发展的瓶颈。 3 2g a s o r 系统中存在的矛盾 通过以上对g a s o r 系统演化过程的分析,可以很明显地看出,在g a s o r 系统中 存在以下三对矛盾: 第三章问题的根源 矛盾一:重功能、轻架构; 矛盾二:老架构、新需求: 矛盾三:老系统、新人员。 下面将对这些矛盾及其形成原因作详细分析。 1 ) 老系统、新人员 从8 0 年代g a s o r 系统在d o s 下的最初实现算起。先后经历了9 0 年代从d o s 平 台向u n i x 工作站的转移,以及后来从u n i x 工作站向w m d o w s 平台移植的三个阶段。 在二十多年的时间里,g a s o r 系统不断发展,除了方法大量扩充之外,底层平台也随 着时代的前进以及用户的需求不断发展而变化着。 g a s o r 系统经过长时间的开发,不断地加进新的功能,无论从地质统计分析学的 角度来看,还是在软件工程的角度来说,都是一个规模庞大的系统,不同时期、不同风 格、甚至不同技术特征的代码在系统中错综交织、大量存在,对于缺乏经验的开发人员 遍地都是陷阱。 而且大部分开发人员缺乏对于储层地质统计分析学方面的知识更是知之甚少,这无 疑给开发造成了巨大的困难。 以下是对g a s o r 开发队伍的结构的分析: 早期的开发人员大多是在储层建模及软件开发方面具有丰富经验的教师,g a s o r 的基本结构也是在这一时期奠定的。在中后期,开发人员则主要由研究生构成。在正常 情况下,一个研究生从进入实验室到毕业为两年时间,从接触到熟悉,再到能够真正向 g a s o r 中添加代码这个过程大概需要半年左右的时间,如果之前从未接触过软件开发, 则真正有效的工作时间不超过一个学期。因为人员严重不足以及项目压力,这些远未达 到成熟的开发人员也承担了大量的工作,因而系统中有相当一部分代码都是由初学者在 学习的过程中写下的,这部分代码的质量可想而知。这些开发人员后来大多都意识到了 他们早期写下的代码中存在着明显的问题,但因为还有更重要的工作等着他们去做从而 也没有时间去进行修正。当一批研究生毕业之后,继承老系统的新的开发人员并不能很 快意识到系统中存在的这些问题,然后在此基础上继续引入更多的问题,也就是说,即 便在后期开发人员已经认识到了问题的存在,但已经没有时间去修正他们了,而新的人 员又在不断地引入着新的问题,情况就这样不断恶化着。 g a s o r 的开发队伍基本上是一个平面,缺少组织结构,一级级的研究生就像是一 批批在不同时间先后雇佣来的零时工,大多对项目缺乏忠诚感,在完成了自己的论文之 后就离开了。而在一个正常的环境下,开发队伍呈金字塔结构,越往上层,开发人员越 稳定、越不容易变动,他们的稳定性是系统持续发展的保证。这个结构的另外一个好处 是它有利于新开发人员的快速成长。 而在g a s o r 的开发过程中,这一点显然是得不到满足的。因为缺乏这样的组织结 构,g a s o r 的架构始终难以突破最初的模式。 9 西安石油大学硕士学位论文 每一批研究生的毕业对于g a s o r 的开发进程来说都无异于一场失血性休克,大部 分工作被迫停滞下来,直到新的人员能够小心翼翼地对一个完全陌生的系统进行并不那 么自信的修补。 这个问题归根结底其实还是架构的问题,由于g a s o r 开发团队人员变动频繁,缺 乏对系统有总体把握的人,也就是架构设计师的角色缺失。由于没有人负责系统的架构 造成了g a s o r 系统在架构上的先天不足。同系统架构一样,负责架构设计与维护的人 员也应该相对稳定的,对系统的过去、现在的状况以及未来的发展方向有个很好的把 握,他还应该负责起对新人员的组织协调工作,而就g a s o r 系统目前的开发模式来说, 是根本无法解决这一点的。 2 ) 老架构、新需求 目前的架构在g a s o r 系统诞生之初确定下来后便一直保持到今天,未有过任何变 化,虽然相比最初的实现功能上已经大大加强了,但这个基本的架构依然是二十多年前 的老样子。如果仅仅是时间久,并不能说明这个架构不好,反而可以认为它经住了时间 的检验。但是,这些话对g a s o r 系统并不适用,因为几乎是从一开始这个架构就是存 在问题的,只不过大家没有意识到,或者是虽然意识到了也没有真正着手去解决它。 由此也可见架构对于一个软件系统的重要性,在整个软件生命周期内,它是相对稳 定的,相对于其他功能性部分来说,它是最不大可能发生变化的部分。 g a s o r 系统一直以来采用的是这样一种架构,即以储层地质统计分析方法为核心, 按照数据加工处理过程的各个阶段对系统进行模块划分。 在后期的大范围推广应用中,生产实践不断地给g a s o r 系统提出了各种各样新的 要求,其中仅有一小部分是针对功能性的,而很大一部分都是针对g a s o r 系统的使用 方式的,在最近的使用中用户甚至明确地提出了“面向对象”的要求,用户显然不会去关 心系统是否采用了面向对象的设计,是否采用了支持面向对象的编程语言,那用户提出 的“面向对象”到底是在要求什么呢? 通过和用户的反复交流,以及对国外领先的同类产 品的研究,最终明确了,用户所要求的“面向对象”正是从用户的角度出发,一种最有 利实现用户价值的程序使用方式,即以数据为中心,以用户体验为中心的使用方式。 简单来说,就是一个软件系统不但要功能丰富,而且这些功能也要容易为用户所使 用。如果一个软件功能再丰富,却难以使用,从而很难给用户带来实际价值,用户在面 对它时也会因为它难以接近而不得不放弃。可以这样说,虽然g a s o r 是座富含地质 统计分析方法的宝藏,但一直没能提供给用户一座通向宝藏的方便之路。 对于用户来说,他关注的是储层模型本身,而对系统内部采用何种方法并不十分关 心,而g a s o r 系统却把对方法的展示放在了一种重要位置之上。所以,在g a s o r 系 统目前这种架构下是根本没有办法来解决易用性问题的。 3 ) 重功能、轻架构 g a s o r 系统可以对沉积相建模,对各种物性参数建模,而且每一种类型都包括了 l o 第三章问题的根源 大量的方法。g a s o r 的开发者在储层地质统计分析的各种方法的研究与探索上花费了 大量的时间和人力,因而g a s o r 系统如果单纯作为一个储层地质方法的集合来说,它 的水平是无可匹敌的。但是,与其在理论研究方面遥遥领先的地位相比,作为一个软件 系统,作为一个面向最终用户的应用软件,g a s o r 的处境就有些尴尬了。 这种状况与g a s o r 开发过程中长期以来的指导思想是分不开的,而这种指导思想 就是百分之百地把工作重心放在对现有方法的改进,以及对新方法的探索上,架构的问 题被忽视了。 g a s o r 的架构在一开始就是没有经过仔细考虑而直接继承自g s h b 的,后来也一 直没有专人来负责这件事情,也就是说g a s o r 系统的架构一直没有得到应有的重视。 g a s o r 在长期的开发过程中一直没有使用任何形式的版本控制系统这个事实也从 另外一个侧面说明了g a s o r 架构中存在重大问题。它可以不使用版本控制系统,一个 不需要版本控制系统的,却是由多个人同时开发的大型软件系统? 这就是问题的征兆。 3 3 一切矛盾指向系统架构 g a s o r 系统提供了丰富的建模方法和手段,但却缺乏一个能够将这些手段和方法 无缝地集成起来的操作环境,在表面上看,这仅仅是用户界面组织的问题,但经迸一步 研究我们发现,仅仅在用户界面的组织上下功夫还不足以解决这些问题,有一个更深层 次的问题根源制约着系统的组织方式,这就是g a s o r 系统的架构问题。 那g a s o r 系统目前的架构是怎样的昵? 它又是如何制约着系统的发展呢? 3 - 3 1g a s o r 系统目前的架构 g a s o r 系统目前的架构特征是以储层地质统计分析方法为核心,按照数据加工处 理过程的各个阶段对系统进行模块划分。 这种架构的特点是系统只提供功能模块,并不提供对建模过程的支持。这就要求用 户对各个模块所完成的任务有充分的了解,清楚为了完成自己的目标在每一阶段都需要 执行哪些操作,然后根据这些知识在不同的建模阶段选择不同的功能模块对原始数据或 中间数据进行处理加工,直到获得最终的结果。 这样的后果是对于那些并非储层地质统计分析学领域专家的一般用户来说,系统的 门槛实在是太高了。哪怕是要完成一个最基本的建模任务,也要求对整个储层地质统计 分析领域有一个相当完整和深入的认识,否则当面对众多的方法和繁复的处理过程时就 会不知所措了,这无疑增加了系统的复杂度。 另外,在g a s o r 中,将类型相近的功能模块组织在同一个代码模块( e 文件) 中的做法进一步加剧了这种状况。 这种情况可用下图说明,假设模块a 实现了两种功能a l 和a 2 ,模块b 实现了两种 功能b 1 和b 2 ,要运行b 1 需要先进行a l 和a 2 。但运行b 2 只需先进行a 2 即可,对于b 2 1 2 第三章问题的根源 而g a s o r 目前的划分方式是: 图3 - 2自然划分 图3 3非自然的划分 可以看到这两种方式有什么不同,前一种方式下各种功能部件呈现出一种层次关系, 而在后一种方式中,所有的功能处在同一个平面上。 让我们看看在完成某个任务时这两种不同划分方法的不同表现。 任务:用右手食指摁某个按钮 老g a s o r 怎么做? 从两条上臂中找到右上臂,抬起 蓖安石油大学硕士学位论文 从两条下臂中找到右下臂,抬起 从二十根手指中找到右手食指,摁按钮 这些黑体字对应的就是g a s o r 目前的模块,g a s o r 的方式就是,要完成某一任 务,需要由用户自己选择需要执行的步骤并决定运行的先后次序。这对于用户来说就意 味着不易掌握,容易出错。当抬起右上臂之后,用户有可能错误地选择拾起左下臂而不 是右下臂。在这种情况下,系统所能做的最好的事情就是提示用户“请注意:在抬起左下 臂之前必须抬起左上臂! ”,除此之外毫无办法。它根本不知道其实你想抬起的是右下臂。 功能的集合不等于系统,人绝不是两条上臂、两条下臂、二十根手指等等众多器官 堆砌起来的集合;同样,一个软件系统也绝不仅仅是功能的堆砌。和人一样,一个软件 系统需要一些器官( 功能) 之外的东西这就是架构 划分人体结构,我们会把人体划分成头、胳膊、身体,腿等部分,每部分又由更 细小的部分组成,而不是把人生应地割裂开来,所有的手算一个模块,所有的小臂算一 个模块。而g a s o r 系统目前的“架构”正是这种情况。 g a s o r 系统目前的架构实际上就是没有架构,没有架构就意味着各个功能模块之 间是一种松散的、仅仅同属一个集合的关系,它们之闻缺乏作为系统组成元素的那种紧 密的协作关系,相应地也不需要开发人员之间进行配合,自然也就不需要什么版本控制 系统。 因而前述所有问题,溯其根源,都是因为没有突出模型的在整个建模系统中的核心 地位。由于在模型这样一个核心概念上过于弱化,各个( 代码) 模块军阀割据般地各自 为政,重复设置的数据结构,功能相同的代码在各个模块间星罗棋布、比比皆是。而原 本被设计来用作各模块间进行信息传递的数据文件,由于被认为是相对于各模块所要实 现的功能比较次要的东西,则完全没有经过仔细的设计,无论是总的格式,还是各字段 类型的设置,都处于一种过于原始和朴素的状态,并时刻准备着迁就任何个功能模块 实现过程中出现的这样或那样的无理要求。这样一来,数据文件完全成了一个缺乏组织 的大杂烩,任何人都可以随心所欲地向其中添加自己认为是需要的东西,它们更多地是 被用作廉价的粘合剂,用来连接那些分别设计、各自为

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论