




已阅读5页,还剩67页未读, 继续免费阅读
(计算机应用技术专业论文)面向对象技术在gasor微机版开发中的应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
论文题目:面向对象技术在g a s o r 微机版开发中的应用 专业:计算机应用技术 硕士生:张先洪( 签名) 指导教师:王家华( 签名) 摘要 目前,w i n d o w s 己成为主流操作平台,u n i x 版的“储层地质统计分析系统g a s o r ” f g e o s t a t i s t i c a l a n a l y s i ss y s t e mo fr e s e r v o i r ) 不能适应广大油田用户的需求,开发微机版 g a s o r 势在必行。利用面向对象技术开发g a s o r 微机版,有利于软件的重用和维护, 更有利于扩充软件的性能,以更好的适应油田现场实际变化的需要。 本文利用面向对象技术对g a s o r 中“数据变换”模块,“二维变异函数”模块和“二 维图形显示”模块进行分析与设计。利用统一建模语言u m l 工具( r a t i o n a l r o s e 2 0 0 0 ) 建 立这三个模块的静态模型和动态模型,具体包括各模块的用例图模型、类图模型、对象图 模型、顺序图模型、协作图模型、状态图模型和活动图模型。然后,利用v i s u a lc + + 6 0 进行面向对象编程,实现这三个模块。面向对象编程的可重用性有助于软件的重用。面向 对象技术中的继承性和封装性有助于对g a s o r 进行系统维护和扩充。 本文还研究了利用a v s ( a d v a n c e d v i s u a ls y s t e m ) 开发“二维图形显示”模块。a v s 是 一个完全面向对象的商品化图形开发平台。利用a v s ( a d v a n c e d v i s u a ls y s t e m ) 定制可重用 的组件,并利用组件合成技术将定制的组件与a v s 集成的组件连接以构成“二维图形显 示”模块。鉴于面向对象技术有助于软件的重用,本文迸一步论述了面向对象技术和软件 重用技术的关系,并阐述了软件重用技术在g a s o r 微机版开发过程中的应用。 关键词:面向对象技术统一建模语言面向对象编程软件重用技术 论文类型:应用研究 ( 本研究得到陕西省科技厅2 0 0 3 年科技推广计划项目研究基金的资助) s u b j e c t :t h e a p p l i c a f i o n o fo b j e c to r i e n t e dt e c h n o i o g y i np e r s o n a lc 。m p u t e 。v e 3 b n o f g a s o r s p e c i a l t y :c o m p u t e r a p p l i c a t i o nt e c h n o l o g y n a m e :z h a n gx i a n h o n g ( s i g n a t u r e ) 耋兰缒基趋删 i n s t r u c t o r :w a n gj i a h u a ( s i g n a a b s t r a c t w h d o w sh a sb e e nt h em a i no p e r a t i n gs y s t e m t h e o l dv e r s i o no fo a s o r ( g e s t a t i s t i c a l a n a l y s i ss y s t e m o fr e s e r v o i r ) i nu n i x c a l ln o ta d a p tt h er e q u i r e m e n to f t h eu s e r si no i lf i e l d - c o n s e q u e n t l yi t i si m p e r a t i v et od e v e l o pp e r s o n a lc o m p u t e r v e r s i o n t h ea p p l i c a t i o no fo b j e c 0 r i e n t e d t e c h n o l o g y ( o o t ) i n t h e d e v e l o p m e n t o fn e wv e r s i o n ,b e n e f i t t or e u s ea n d m a i n t e n a n c eo ft h es o f t w a r e ,a n db e n e f i tt oe n l a r g i n gt h ef u n c t i o n o fs o f t w a r e - i nt h i sw a y , t h e n e wv e r s i o nc a nm e e tt h ed e m a n do f t h eu s e r so nt h es p o t d a t at m s f o r m a t i o nm o d u l e ,2 i ) v a r i o g r a m m o d u l ea n d2 dv i e wm o d u l eo fg a s o r a l e a n a l y z e da n dd e s i g n e dw i t ho o t t h es t a t i c a n dd y n a m i cm o d e l s ,w h i c hi n c l u d eu s ec a s e d i a g r a mm o d e l ,c l a s sd i a g r a mm o d e l ,o b j e c td i a g r a mm o d e l ,s e q u e n c ed i a g r a mm o d e l , c o h a b o r a t i o nd i a g r a mm o d e l ,s t a t em a c h i n ed i a g r a mm o d e l a n da c t i v i t yd i a g r a mm o d e lo f t h e s en 1 i t e em o d u l e sa r ee s t a b l i s h e dw i t hr a t i o n a lr o s e 2 0 0 0 a n d t h e n ,t h em o d u l e s a l er e a l i z e d v i ao b j e c to r i e n t e dp r o g r a m m i n g ( o o p ) w i t hv i s u a lc + + 6 0 r e u s a b l ec h a r a c t e ro fo o p b e n e f i tt or e u s eo ft h es o f t w a r e i n h e r i t a b l e a n d e n c a p s u l a t i n g c h a r a c t e rb e n e f i tt ot h e m m n t e n a n c ea n de n l a r g i n gt h ef u n c t i o no fg a s o r t h ed e v e l o p m e n to f2 dv i e wm o d u l ew i t ha v s ( a d v a n c e dv i s u a ls y s t e m ) i sa l s o d e s c r i b e di nt h ep a p e r a v si sac o m p l e t eo b j e c to r i e n t e ds y s t e m r e u s a b l ec o m p o n e n t sa l e c u s t o m i z e dw i t ha v s 2 dv i e wm o d u l ei sc o m p o s e do f t h e s ec o m p o n e n t sa n di nt h er e u s a b l e c o m p o n e n tl i b r a r y ( r c l ) b e c a u s eo o t b e n e f i tt os o f t w a r er e u s a b l et e c h n o l o g y ( s r t ) ,t h e r e l a t i o n s h i pb e t w e e n o o ta n ds r ti sd e s c r i b e d ,m o r e o v e r t h ea p p l i c a t i o no fs r t i nt h ec o u r s e o ft h ed e v e l o p m e n to fg a s o r i sd e s c r i b e di nt h ep a 【p e r k e y w o r d s :o b j e c to r i e n t e dt e c h n o l o g y , u n i f i e dm o d e l i n gl a n g u a g e ,o o p , s o f t w a r e r e u s a b l e t e c h n o l o g y t h e s i s :a p p l i c a t i o ns t u d y t h e p a p e ri ss u p p o r t e db ys c i e n c er e s e a r c hf o u n d a t i o no f s c i e n c ea n dt e c h n o l o g ys p r e a d i n g p r o j e c to f s h a n x ip r o v i n c es c i e n c ea n dt e c h n o l o g yb u r e a u i n2 0 0 3 学位论文创新性声明 v 8 0 5 5 1 2 本人声明所呈交的学位论文是我个人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不包含其他 人已经发表或撰写过的研究成果;也不包含为获得西安石油大学或其它教育机构的学位 或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中做 了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 论文作者签名:当垒堑坚: 日期:o 矿咖 圹真 学位论文使用授权的说明 本人完全了解西安石油大学有关保留和使用学位论文的规定,即:研究生在校攻读 学位期间论文工作的知识产权单位属西安石油大学。学校享有以任何方法发表、复制、 公开阅览、借阅以及申请专利等权利。本人离校后发表或使用学位论文或与该论文直接 相关的学术论文或成果时,署名单位仍然为西安石油大学。 论文作者签名: 导师签名 水缸识 丝 日期:迦丛坳坚殳 日期:伽。仁s - ,j , 第一章绪论 第一章绪论 油气储层随机建模是八十年代后期兴起的一项油藏描述高新技术。“储 层地质统计分析系统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 m o f r e s e r v o i r ) 是 用于油气储层随机建模的一个u n i x 版本的软件系统。该系统自从1 9 9 0 年 开始研究,历经“八五”国家重点科技攻关项目、“九五”国家重点科技攻关 项目、中国石油天然气集团公司等重点科研项目的攻关,以及和大庆、胜利、 辽河、长庆等油田的横向合作项目的研究,已经不断完散功能,扩大应用范 围,提高运行质量,成为国内第一个油气储层随机建模方面的商品化软件系 统。目前,w m d o w s 已成为主流操作平台,u n i x 版的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 开发中的应用。 1 1 研究背景 1 1 1 面向对象技术 面向对象技术在国外的普及程度比国内要深入,对面向对象的领悟也要 比国内深。面向对象的软件开发技术是在人们认识到软件危机之后提出的, 进而产生了许多面向对象的编程语言。由于面向对象编程语言更适合问题域 的概念向计算机领域概念的转化,所以面向对象的编程语言很快在应用程序 开发领域普及。接着由面向对象的编程,面向对象的技术逐渐向软件的分析 和设计领域扩展,最后软件开发的整个过程都有相应的面向对象技术来支持。 但是面向对象的技术思想不同于面向过程的软件开发思想,只有深刻领会面 向对象的思想实质之后才能开发出面向对象的应用软件。故许多c 程序员在 学过c + + 之后仍然不能开发出真正的面向对象的软件,仍然用c + + 开发出c 西安石油大学硕士学位论文 的程序,这说明面向对象的软件开发仍有许多技术思想需要去领悟。 软件研究人员提出了面向对象的软件开发方法。面向对象的软件开发方 法o m t ( o b j e c t m o d e l i n g t e c h n o l o g y ) 是美国通用电气公司提出的一套系统 开发技术,它以面向对象的思想为基础,通过对问题进行抽象,构造出一组 相关的模型,从而能全面地捕捉问题空间的信息。这是一种自底向上和自顶 向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出 的数据结构,实际上也包含了所有对象的数据结构。它将数据和对数据的操 作作为一个相互依赖、不可分割的整体。采用数据抽象和信息隐蔽技术,使 得对现实世界问题的求解简单化。这种方法符合人类的思维模式,并且有助 于控制软件的复杂性,提高软件的生产效率,从而得到了广泛的应用,成为 目前最为流行的一种软件开发方法瞳1 。 面向对象的软件开发方法针对软件工程的各个阶段,人们把它分为面向 对象的分析( o o a ) 、面向对象的设计( o o d ) 、砸向对象的编程( o o p ) 三 个部分,这几部分相辅相成,构成一个整体。 1 1 2 软件重用技术 软件重用技术( s o f t w a r er e u s et e c h n o l o g y ) 能显著地提高软件的开发效 率、增强软件的可维护性,从而达到延长软件的生命周期、降低开发成本和 缩短开发周期的效果,因此对软件重用方向的研究一直是软件工程中的重点 和热点。3 。传统上的软件重用一般指程序源代码的重用,而事实上源代码级 的重用并不能给软件开发的效率和质量带来数量级上的提高,重用应当包括 软件的分析、设计、实现、维护阶段以及相应的文档、知识等一切与软件开 发过程有关的对象,特别是大型系统的开发,由于系统固有的复杂性,不仅 包括功能方面的需求,还包括了许多非功能性方面的需求,如灵活性、适应 性、可靠性等,要满足这些特性,重用性是必不可少的。对于一个特定领域 来说,通常其工作流程和规范大多是相同或相似的,当软件开发人员为该领 域中的某个企业设计和开发系统后,其大多数成果都是可以运用到同领域的 其他企业,从而不必对类似的项目从零开始开发h 1 。 西安石油大学硕士学位论文 1 2 课题来源、目的和意义 本课题来源于陕西省科技厅2 0 0 3 年科技推广计划项目一储层地质统计 分析系统g a s o r f p c ”微机版开发与推广,项目编号为2 0 0 3 k t - 0 0 8 。 目前,w i n d o w s 己成为主流操作平台,u n i x 版的g a s o r 不能适应广 大油田用户的需求,开发g a s o r 微机版势在必行。 利用面向对象技术开发g a s o r 微机版,有利于软件的重用和维护,有 利于对g a s o r 进行功能扩充。 1 3 研究内容 g a s o r 的微机版与u n i x 版一样,主要包括“数据加载”、“直方图显 示”、“数据变换”、“二维变异函数”、“三维变异函数”、“构造分析”、“有效 厚度”、“随机模拟”、“模型验证”、“网格粗化”、“二维图形显示”、“三维图 形显示”模块和“储量分析”模块。在这仅对“数据变换”、“二维变异函数”、 “二维图形显示”三个模块作详细研究。 本论文主要研究以下内容: a 利用面向对象技术对系统进行分析与设计,分别建立“数据变换”、t 一二 维变异函数”、“二维图形显示”三个模块的静态模型和动态模型,具体包括 用例图模型、类图模型、顺序图模型、协作图模型、活动图模型等。 b 利用v i s u a lc + + 6 0 开发“数据变换”和“二维变异函数”模块。“数 据变换”模块中主要包括对数据作正态变换,主成份分析,相组提取三部分 功能。“二维变异函数”模块对“数据变换”模块产生的结果数据作变异函数 计算,其中包括顶面,底面,地层厚度,断面,孔隙度,渗透率,饱和度有 效顶面,有效底面,有效地层厚度等物性参数数据。然后对计算的曲线进行 拟合,保存拟合参数,供“构造分析”模块调用。 c 利用v i s u a lc + + 6 0 和o p e n g l 开发“二维图形显示”模块。对“随 机模拟”模块结束后产生的数据进行直观显示,包括项面二维图,底面二维 图,地层厚度二维图,孔隙度二维图,渗透率二维图,相分布二维图,含气 饱和度二维图,泥质含量二维图,有效顶面二维图,有效底面二维图,有效 西安石油大学硕士学位论文 厚度二维图,丰度二维图。然后对生成的二维图形进行处理,包括边界剪裁, 图形放大缩小。 d 利用a v s e x p r e s s 开发“二维图形显示”模块。 1 4 论文结构 第一章绪论 简单论述了本课题的研究背景,课题来源、目的和意义以及研究的主要 内容。并对论文中的一些术语进行了解释。 第二章面向对象技术 论述了面向对象系统分析、设计和编程的过程。接着论述了统一建模语 言u m l 及其工具r a t i o n a lr o s e2 0 0 0 。然后论述了利用面向对象技术开发 g a s o r 微机版的优点。最后还论述了软件重用技术,以及它与面向对象技 术的关系。 第三章系统分析与设计 对g a s o r 中“数据变换”、“二维变异函数”,“二维图形显示”三个模 块进行面向对象分析与设计,利用r a t i o n a lr o s e2 0 0 0 对g a s o r 分别建立这 三个模块的静态模型和动态模型。 第四章系统的实现及结果 根据分析与设计过程建立的模型,对系统进行面向对象编程。论述了 g a s o r 中“数据变换”、“二维变异函数”,“二维图形显示”三个模块的类 和类之间关联的实现,并展示了三个模块的实现结果。 第五章软件重用技术在系统中的应用 本章论述软件重用技术的三个层次,即重用设计、重用数据和重用组件。 以及它们在g a s o r 中的应用。主要论述了重用组件技术在系统中的应用。 包括组件的定制过程和合成过程。 第六章结论 对全文的研究作总结,并指明了下一步的研究方向。 堕窒堑塑盔堂堕主堂焦笙壅 1 5 术语介绍 a 直方图:用来表示各种参数的概率分布整体情况。 b 孔隙度:用来表示岩石中孔隙空间大小的参数,用孔隙体积占整个岩 石体积的百分比来表示。 c 渗透率:是流体通过储层岩石能力的最重要量度。一个达西单位的渗 透率表示,长度为1 c m 和截面为lc m 。的岩样,在压力梯度为l a t m 的作用下, 能通过粘度为1 c p 流体的流量1c m s 。在国际标准( s i ) 系统中,渗透率的单位 是面积:常以删z ( 平方微米) 表示。 d 泥质含量:用百分比表示砂体内部泥质的多少。是研究储油构造特点 和沉积环境的重要参数。 e 井位图:用来描述油井的分布情况,在二维平面坐标系中,在各井位处 标记某个特定的油井符号便成了一幅井位图。 f 变异函数:是储层随机建模乃至整个地质统计学中的一个重要概念。 它可看成是一种估计方差,即用空间变量在点x + 处的值对其在点x 处的值 进行估计所产生的误差的方差。变异函数的引入,使得区域性变量的空间相 关性质得以定量的描述和体系化的运算。 第二章面向对象技术 第二章面向对象技术 2 1 面向对象技术开发g a s o r 微机版 g a s o r 微机版的结构与u n i x 版的一致,包括1 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 中的1 2 个模块都 看作为包,由这些包组合成了g a s o r 。这样,类和对象是g a s o r 的原子 单位,包可以作为分子单位。由可复用的原子或分子单位便可以组织成其它 的类似软件。 2 2 面向对象系统分析、设计与编程 2 2 1 面向对象系统分析( o o a ) 在本文中,0 0 a 的任务是运用面向对象的方法,对“数据变换”模块, “二维变异函数”模块,“二维图形显示”模块进行分析和理解,最终得到构 成各模块的类和对象及其关联,产生一个符合用户需求的分析模型及说明。 主要包括以下活动: a 发现并确定各模块中的类,定义包括属性和服务的类结构。 b 标识类之间的关联。 c 定义用例,建立用例模型图和交互图。 o o a 采用从特殊到一般的归纳方法,其重点是建立现实世界的类模型, 从问题域中抽象出类和对象来研究系统的实际需求。3 。 2 2 2 面向对象系统设计( o o d ) o o d 是一种设计方法,包括两方面,一是面向对象的分解过程,二是使 用面向对象表示方法描述所设计系统的逻辑模型和物理模型。o o d 针对实现 的有关因素对问题域、人机交互、任务交互和数据管理四部分进行设计跚。 西安石油大学硕士学位论文 o o d 采用一般到特殊的演绎方法,在对实际系统认识的基础上,对已建 立的分析模型进行改进。从o o a 到o o d 是一个渐进的模型扩充过程。1 。 2 2 3 面向对象编程( o o p ) 0 0 p 是一种系统实施方法,在0 0 a 及0 0 d 的基础上,利用面向对编程语 言和工具实现应用的软件系统,即实现相关的类。 0 0 p 的基础是对象模型,程序由一组相互协作的对象组成。0 0 p 需要相应 软件开发环境的支持,具有以下三个重要特征峙3 : a 系统的基本逻辑组件是对象而不是算法。 b 对象是类的实例。 c 类之间通过关联连接。 2 3 面向对象统一建模语言u m l 对象建模常采用u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 语言。u m l 是一种 构件软件系统和文档的通用可视化建模语言。它能表达系统的静态结构和动 态信息,并且能管理复杂的系统模型,便于软件团队之间的合作开发口。u m l 是所有建模人员都可以使用的通用建模语言,包含主流建模方法的概念,能 与现有的开发方法一同使用,用于软件开发的整个生命周期。r o s e 是美国 r a t i o n a l 公司的面向对象建模工具,利用这个工具,可以建立用u m l 描述的 软件系统的模型,从而自动生成和维护c + + ,j a v a ,v b ,o r a c l e 等语言和系统 的代码”1 。 u m l 中提供了许多概念和组件,这些组件和概念之间并没有严格的界 限,为了方便u m l 把这些概念和组件划分为不同的视图模型,每种视图模型 用来表达建模过程中某一方面的思想”3 。下面对u m l 提供给分析设计人员的 各种模型符号进行论述。本文在系统分析与设计过程中提供的模型全部是在 r a t i o n a lr o s e2 0 0 0 中建立的。 a 用例图模型( u s e c a s e d i a g r a m ) 用例图模型是参与者所能观察到的系统功能的模型图。参与者可以理解 为某个事件的发起者,参与者可以是狭义上的用户也就是人,也可以是一个 西安石油大学硕士学位论文 系统、一个硬件设备。一个用例代表一个系统或系统的一部分行为,是对一 组动作序列的描述,系统执行该动作序列来为参与者产生一个可观察的结果 值。 由于用例图模型表达了参与者观察到的系统功能,因此,用例图模型一 般用于软件工程的需求分析阶段,用它来描述用户的需求。 用例图模型由参与者、用例和相互之间的连线组成,一个软件系统中可 以有多个用例图模型。还可以把这些单个的用例图模型绘制为一个综合的用 例图模型,在这个综合的用例图模型中,需要用u m l 的关系符号来表达出各 个用例之间的关系。 用例之间的关系可能有如下几种: 关联,是用来描述参与者与参与者发起执行的用例之间的通信路径。 表示符号:一 包含,有很多种情况,某个用例的完成建立在其它几个较为简单的用例 完成的基础上,也就是说,这个用例的行为包含其它用例的行为,这种用例 之间的关系称为包含。 表示符号:g 峨她登 扩展,当一个用例自身无法完全说明它的某些特殊情况时,可以再用其 它的用例进一步说明,这种用例之间的关系可以用扩展来表示。 表示符号:蹩卿;旦蛾j 用例泛化,用例之间的一般和特殊关系就是泛化关系。 表示符号:一 本文研究的g a s o r 系统共包括“数据加载”、“直方图显示”、“数据变换”、 “二维变异函数”、“三维变异函数”、“模型验证”、“随机模拟”、“构造分析”、 “有效厚度”、“二位图形显示”、“三维图形显示”模块和“储量分析”模块。 将g a s o r 系统的这些模块分别定义为用例,图2 - 1 给出的是g a s o r 的用例图 模型,其中参与者用小人表示,用例用椭圆表示。 值得注意的是,并不是任何软件系统的用例视图必须包括全部的用例关 系,要根据实际情况。作为一种建模语言来说,它尽可能的提供表达手段, 西安石油大学硕士学位论文 但是作为用户来说,不一定全部使用到。 二蛙眺示 三蛙酗显示 赭量分析 圈2 1g a s o r 系统的用例图模型 b 类图模型( c l a s sd i a g r a m ) 类图模型是静态图模型的表达方式。u m l 中,状态机图模型、活动图模 型、交互图模型用来表达系统中对象的动态行为。静态图模型是从静态的角 度考虑对象,它不描述与时间相关的系统行为,是对系统中实体及实体实现 相关的内部实体的建模。 类图用矩形框表示,矩形框内分为三行,第一行写入类的名称,第二行 写入类的属性特征,即类的数据成员,第三行写入类的行为特征,即类的成 员函数描述。对于整个系统而言,它的类图中放置了所有类的类图,这些类 图之间用不同的连线及不同的连线注释联系在一起,当然不同的连线和不同 的连线注释代表不同的类关系。类可能的关系包括:关联、泛化及各种形式 的依赖关系。关联用来表达类实例之间的连接。泛化表示一般和具体的关系, 用面向对象的语言来描述就是父类和子类的关系。依赖关系包括实现和使用 关系。图2 2 是“数据变挣”模块的一个类图模型。该模型将在第三章中详 鳆安石油大学硕士学位论文 细论述。 围2 2 “数据变换”模块的樊图模型 c 交互图模型( i n t e r a c t i o nd i a g r a m ) 交互图模型描述了执行系统功能的各个角色之间相互传递消息的顺序 关系。交互图模型显示了跨越多个对象系统的控制流程。交互图模型有两种 表达方式:一种是顺序图模型,另一种是协作图模型。这两种图的侧重点有 所不同,下面分别介绍这两种交互图模型。 顺序图模型( s e q u e n c ed i a g r a m ) ,侧重于对象之间发送消息的时间顺序, 一般情况下,可以把一个用例设计为一个顺序图,用顺序图可以把某个用例 ( 即功能单元) 的动作行为顺序描述清楚。 面向对象技术中,各个对象之间是通过消息来通信的,而且程序中真正 操作的数据是类的实例即对象,顺序图正是表达了这种对象之间相互通信的 时间顺序。顺序图中每条消息对应的动作就是对象进一步抽象后产生的类的 成员函数。 顺序图模型中,对象图排列在图的顶部,从上到下代表了时间的流逝, 箭头表示消息在对象之间的传递。消息可以分为异步消息和同步消息。简单 地说,如果对象a c t o r 发送给对象n e w p r e d l g 异步消息,那么对象a c t o r 会 继续其它的行为,而不去等待对象n e w p r e d l g 对此消息响应结束;如果对象 a c t o r 发送给对象n e w p r e d l g 的是同步消息,那么对象a c t o r 一直等待对象 西安石油大学硕士学位论文 n e w p r e d l g 对此消息响应结束并返回为止,在这段时间对象a c t o r 处于等待 阻塞状态。图2 3 是“数据变换”模块的正态变换部分的顺序图模型。 圈圜 : : i p 叫 俨黼讨簟 |9 赢,船一拙 il 幽2 3 正忑变换顺序图模型 协作图( c o l l a b o r a t i o nd i a g r a m ) ,协作图是交互视图的另外种表达方 式,是对在一次交互中有意义的对象之间的链建模。顺序图的侧重点在对象 之间传递消息的时间顺序上,而协作图的侧重点在于体现一个交互活动中对 象之间的关系上。 在协作图中,对象图放置在图中任何位置,用连线将将对象图连在一起 来表示对象之间的关联。用箭头线表示对象之间消息的传递及传递的方向, 并且箭头线上带有消息序号和消息名称。消息序号是对象之间交互的先后顺 序。 图2 4 是“数据变换”模块的正态变换部分的协作图模型。 3 :揍氅竞魅漱,并垛黪数 图2 - 4 正态变换协作图模型 l l 西安石油大学硕士学位论文 d 状态图模型( s t a t em a c h i n ed i a g r a m ) 类是o o 程序的静态部分,对象是动态部分。对象的行为主要决定于对 象状态和对象状态的转移。面向对象设计方法通常采用状态图建立对象的动 态行为模型。状态图模型用于刻画对象响应各种事件时状态发生转移的情况, 图中结点表示对象的某个可能状态,结点之间的有向边通常用“事件动作” 标出【8 】。状态图模型中的结点代表对象的逻辑状态,而非所有可能的实际状 态。如图2 5 的示例中,表示当对象处于状态1 时,若接收到事件a 则执行 相应的操作且转移到状态2 ,当对象处于状态2 时,若接收到事件b 则执行 相应的操作且转移到状态3 。因此,对象的状态随各种外来事件发生怎样的 变化,是考察对象行为的一个重要方面。 状态图模型用来描述对象在它所能经历的历程中状态的变化。 状态图模型由对象的各个状态及各个状态之间的转换连线组成。对象的 状态用圆角矩形表示,并在圆角矩形内写上状态的名称。状态的转换用有向 连线表示,连线上标注出引发状态变化的条件或消息。 图2 5 是状态图模型。 幽2 - 5 状态图模型 e 活动图模型( a c t i v i t yd i a g r a m ) 活动图模型用来描述执行各个算法所经历的步骤或者称为业务逻辑流 程,与软件界广泛使用的流程图功能相似,但又有所区别。活动图模型可以 用泳道的概念表达出业务流程中每个操作对应的对象,也就是能够表示某个 操作是由哪个对象执行的,而流程图没有把对象的概念表达出来。在这一点 上,u m l 适合面向对象开发方法也可见一斑。 活动图模型用个圆角矩形表示每个步骤,用菱形图标表示条件的判断 点,用有向连线将各个步骤和判断点连接起来。图2 - 6 是“数据变换”模块 蕊安石油大学硕士学位论文 的活动图模型。 围2 6 “数琚变换”模块的活动图模型 2 4 利用面向对象技术开发g a s o r 微机版的优点 面向对象的设计方法基于信息隐蔽和抽象数据类型概念。它把系统中所 有资源,如数据、模块以及系统都看成对象,每个对象把一组数据和一组过 程封装在一起,使得仅这一组过程可以对这组数据进行处理,并在定义对象 时可以规定外界请求的权限。设计者可以创建自己的对象,并将问题映射到 该对象上,这一方法直接,自然,设计者将主要精力放在系统的级别上。利 用面向对象技术开发g a s o r 微机版主要有以下优点: a 利用面向对象技术开发g a s o r 微机版,可以更方便更有效地实现 g a s o r 的重用。由于面向对象编程的可重用性,可以在应用程序中大量重 用成熟的类,比如利用v i s u a lc + + 6 0 进行面向对象编程时,就重用了大量 的v i s u a lc + + 6 0 的类,包括对话框类,视图类和控件娄等从而缩短了开 西安石油大学硕士学位论文 发时i 司。 b 利用面向对象技术开发g a s o r 微机版,有利于g a s o r 的维护。对 象实现了抽象和封装,使其中可能出现的错误限制在该对象自身,不会向外 传播,易于对g a s o r 进行检测和修改,从而有助于对g a s o r 进行系统维护。 c 利用面向对象技术开发g a s o r 微机版,有利于对g a s o r 进行功能 扩充。面向对蒙系统可以通过继承机制不断扩充功能,而不影响原有软件的 运行。当需要对g a s o r 进行功能扩充时,只需要对该功能进行分析,将该 功能定义为g a s o r 中所属类的行为,即类的成员函数,作为然后实现该行 为。如果该部分出现错误,也仅限于该行为所属的类,而不影响其它类的实 现。 2 5 软件重用技术概述 软件重用技术( s o t t w a r er e u s a b l et e c h n o l o g y ) 是指利用可重用的软件成 分开发软件的技术,它同时也指开发可重用软件的技术。1 。而软件重用技术 分三个层次,即重用数据、重用组件、重用设计。重用数据是指程序不做任 何修改,连输入输出的格式都不改变,就可把程序从一个环境移到另个环 境中使用。重用的对象是代码片段,诸如子程序,程序模块、类等等。重用 组件是指不需要进行逐行编码就可以直接使用一个已有的组件。相对来说, 重用组件是较完整和独立的应用系统,必要时可能对某些部分做些小的变化。 比如,当程序运行环境发生变化时,将导致运行结果发生变化:其它如提示 信息的修改,重复次数增加等都可以利用重用源代码以实现新的软件开发。 重用设计是指同一个软件设计使用在不同的方面。例如可以采用不同的实现 方法,由于实现的环境发生改变要求程序移植,实现的语言发生改变要求程 序的修改等。重用的对象是软件结构和软件设计思想。 目前使用得比较多的软件重用技术是基于可重用组件库r c l ( r e u s a b l e c o m p o n e n tl i b r a r y ) 的技术,重用组件r c ( r e u s a b l ec o m p o n e n t ) 在入库前 必须经过标识、验证和分类三个过程,而从库中提取重用组件则必须经过检 索、定制和组合三个过程。”。进行软件重用的前提是标识,它是指寻找r c 西安石油大学硕士学位论文 的候选者。验证是指r c 在入库前必须经过严格的测试和审查。分类是r c 入库前的最后一个过程,是指对r c 的功能、使用方法、适用范围、接口等 进行说明性描述。检索是组件重用过程活动中最重要的一个过程,它根据一 定的查询要求得到与之匹配的可重用组件。定制过程的主要工作是对检索得 到的r c 进行一定的修改和裁剪以符合用户的要求。组合是指经过定制后的 r c 和其它的组件合成在一起,形成新的软件系统。重用组件必须满足的条 件有( 1 ) 模块独立性强,具有单一、完整的功能且经过反复测试被确认是正 确的;( 2 ) 具有高度可塑性,必须提供为适应特定需求而扩充或修改已有组 件的机制,而且所提供的机制必须使用起来非常简单方便;( 3 ) 接口清晰、 简明、可靠,而且还应有详尽的文档说明,以方便用户使用1 1 。 在基于对象的软件重用技术中,重用组件技术最具普遍性,也有很重要 的地位“”。利用面向对象技术,可以更方便更有效地实现软件重用。面向对 象技术中的“类”,是比较理想的重用组件。面向对象的程序设计方法以软件 重用技术为中心,构造独立于具体工作的重用组件,这些组件经组合即可构 成新的目标系统,从而大大提高软件开发的效率。重用组件包括两类:系统 已经集成的,并加入到重用组件库中的组件,和软件开发人员制作的重用组 件。 下面论述定制重用组件的过程。 首先对组件进行标识,即对组件命名。在重用组件库中存在很多的组件, 合理的标识对软件开发人员查找并使用该组件将有很大的帮助。其次要对组 件进行验证,因为重用技术是通过继承类中的属性和方法来实现,组件就是 抽象的对象,即组件就是类。对组件进行验证,就是验证该组件存在的必要 性,也即验证该组件作为类存在而必须具有属性和方法两大要素。要准确、 全面的确定系统的类在软件设计过程中不是一件容易的事。因此,这一步是 最复杂,也是利用面向对象技术,实现组件可重用的关键。最后对制作的组 件进行分类。重用组件库中的组件很多,要在以后充分利用制作的组件,就 必须在加入重用组件库之前,对该组件划分类型。这样,在以后的软件开发 中,能够准确快速的在重用组件库中找到它。也可以根据实际需要对重用组 鳗安石油大学硕士学位论文 件库中的组件进行修改,比如添加一些属性和方法等,使其成为对自己有用 的组件,然后加入到重用组件库中。 在开发“二维图形显示”模块时,要将开发人员制作的组件和软件重用 组件库中的组件连接起来,以形成一个完整的软件系统,涉及到重用组件技 术中的合成技术。合成技术是以抽象的数据类型为理论基础,用可重用的组 件构造成软件的集成块,再由集成块组成模块,通过连接、调试这些组件, 最终形成一个满足需要的软件系统。在合成技术中,组件是软件构造块,最 理想的情况是在应用时不需改变,但是在实现过程中,组件都必须修改或增 删,使之符合具体问题的要求,通过一个外部机构对组件处理,合成为实用 的程序或程序段。合成技术的方法有三种。它们是连接方法:就是通过连接 将组件和别的组件合成一个系统;消息传递和继承机制:就是通过面向对象 的方法将消息传递和继承结合起来;管道机制:就是通过管道机制和别的组 件构成一个新的系统“。 软件重用技术中还有重用数据和重用设计。重用数据技术中用得很多的 是重用程序。目前,人们开发了很多通用的子程序,重用数据技术就可以直 接重用已有的子程序。重用设计只有在对软件进行重新编写代码,但系统的 需求没有变化,该软件的设计就不用变化,例如更换语言环境等。重用技术 中的重用设计不常用,但重用设计在三个重用层次上重用层次是最高的。 2 6 面向对象技术和软件重用技术的关系 2 6 1 o o 方法对软件重用技术的支持 面向对象方法的主要概念及原则与软件重用的要求十分吻合,例如对象 和类、抽象、封装、继承与一般一特殊结构、聚合与整体一部分结构、多态性 等,所以0 0 方法特别有利于软件重用“。针对这些概念和原则的研究,指 明了在运用0 0 方法进行软件开发时,应该从哪些方面着眼寻求对软件重用 的支持与改进。 对象和类具有完整性、独立性、可标识性、一般性的特征,正好符合重 用技术中对组件的要求。抽象意味着忽略事物的某些差异而提取它们的共同 西安石油大学硕士学位论文 特征,抽象是0 0 方法的基本原则,也同样是定义组件时必须遵循的。严格 的软件组件只有体现某种程度的抽象才能具有一般性,才能被应用到细节有 差异的多个系统中。封装把对象的属性和行为结合为一个整体,对外屏蔽了 对象的实现细节,只有一个有限操作的接口,使组件具有更好的完整性、独 立性,有利于软件的重用。 继承与一般一特殊结构:通过继承形成的一般一特殊结构体现了不同层次 的抽象,其中的类适应于不同的重用范围。低层的类含有较多的信息,高层 的类可在更广的范围内被重用。继承也是使用可重用的组件的一种有效方式。 如果一个可重用的组件只是从一般意义上描述了某种事物或解决了某个问 题,但缺乏某些具体细节,可以把它作为一般类使用,通过对它的继承而定 义系统中的特殊类。 聚合与整体一部分结构:一个庞大的软件组件能被重用的机会将是很小 的,但是其中的某些局部可能有很强的可重用性。从组件使用者的角度看, 聚合也是实现重用的一种有效方式,例如目前的o l e 就是把可重用的组件对 象通过链接或嵌入而聚合为新的对象和新的应用。 多态性:对象的多态性使对象在不同的使用条件下可以具有不同的语 义。以这样的对象类、结构或主题作为可重用组件,将符合更多应用系统需 求,因此具有较强的适应性。 2 ,6 2 软件重用技术对0 0 方法的支持 a 利用组件库存储和管理类库。类库可以被看作一种特殊的可重用组件 库,它为在面向对象的软件开发中实现软件重用提供了一种基本的支持。但 是类库和组件库不是完全相同的概念。类库只能存储和管理以类为单位的可 重用组件,不能保存其它形式的组件,但是它可以更多地保持类组件之间的 结构与连接关系。组件库中的可重用组件,既可以是类,也可以是其它软件 单位。其组织方式,可以不考虑对象类特有的各种关系,只按一般的组件描 述、分类及检索方法进行组织。在这样的组件库中,组件的形式及内容比类 库更丰富,它可为面向对象的软件开发提供更强的支持。有了这样的组件库, 西安石油大学硕士学位论文 可以考虑不再另设类库,即把类作为一种普通组件存放到这个组件库中。但 是要想在组件库中继续保持类之间的各种关系,并支持使用者有效地重用这 些关系信息,将大大增加组件库的设计难度。所以另一种方案是使组件库与 类库同时存在,用类库存放各个开发阶段的类组件,用组件库存放其它组件。 对于后一种方案,应采取适当的组织管理策略
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国化妆品行业消费新趋势与品牌竞争力评估报告
- 企业就职员工保密合同书7篇
- 2025河南郑州联勤保障中心二季度社会人才招聘132人考前自测高频考点模拟试题附答案详解(考试直接用)
- 2025年安徽师范大学人才招聘51人模拟试卷及完整答案详解一套
- 2025年智能制造的工业信息化
- 2025年海洋能发电在海岛可再生能源消费市场分析报告
- 2025年海洋能发电海水淡化联合系统市场前景与竞争格局分析报告
- 2025江西南昌市劳动保障事务代理中心招聘统计监测劳务外包人员1人模拟试卷及1套参考答案详解
- 重庆梁平区公务员遴选考试真题2024
- 2025广西玉林市玉州区人力资源和社会保障局招聘编外人员4人模拟试卷有答案详解
- 人教版九年级物理上-各单元综合测试卷含答案共五套
- 文科物理(兰州大学)学习通网课章节测试答案
- 人教版高二数学(上)选择性必修第一册1.2空间向量基本定理【教学设计】
- 2025年安徽省公务员录用考试《行测》真题及答案
- 2025中医四大经典知识竞赛真题模拟及答案
- 2025至2030年川渝地区成品油行业市场运行现状及未来发展预测报告
- 2025年山东省委党校在职研究生招生考试(政治理论)历年参考题库含答案详解(5卷)
- 中医特禀体质讲解
- 危险化学品装卸管理课件
- 减肥与能量代谢课件
- 世赛基地管理办法
评论
0/150
提交评论