(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf_第1页
(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf_第2页
(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf_第3页
(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf_第4页
(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于构件的电测监督管理系统的研究.pdf.pdf 免费下载

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

文档简介

摘要 摘要 计算机与互联网技术突飞猛进的发展使得全球的数据和资源紧密地联系在 一起,信息化技术的及时采纳与信息资源的充分利用,已成为企业在激烈的市 场竞争中克敌制胜的必备法宝。电力行业是国民经济的命脉,电力企业的安全 稳定运行对国家发展和人民生活起着至关重要的作用。发电厂电测监督作为电 力企业科学管理的重要内容之一,是对仪表运行情况的监督管理,它是保证电 力设备长期稳定运行的重要环节。 目前,发电厂电测监督管理工作仍然存在着一些问题:许多电测监督工作 依然处于手工记录状态;即使使用计算机软件,大多仍然采用传统的客户机服务 器方式的分布式两层结构,软件维护复杂,无法实现跨空间操作。另外,由于 相关制度的不断完善,需要系统具有一定的可扩展性,能够独立实现各功能模 块的无缝升级连接。所以,开发套基于构件技术的发电厂电测监督管理信息 系统具有重要的现实意义和经济价值。 本文通过对构件技术的研究,对比分析了现今几种流行的构件技术,讨论 了构件技术在具体应用过程中的几个关键问题,如二进制代码级复用、有助于 构件交互的元数据以及复用构件等。 最后,研究基于构件的开发方法( c b s d ) ,建立电测监督管理系统的开发模 型,并从软件生命周期的不同阶段给出了基于构件的软件开发技术在电测监督 管理系统中的具体应用。 关键词:构件;软件复用:基于构件的软件开发;电测监督 东北电力大学工学硕士学位论文 a b s t r a c t t h eg f o b a ld a t aa n dt h er e s o u r c e sc l o s e l yr e l a t er a p i d l yi nt o g e t h e rb yt h ec a u s e o ft h ed e v e l o p m e n to ft h ec o m p u t e ra n dt h ei n t e r n e tt e c h n o l o g y t h ep r o m p t a c c e p t a n c eo fa ni n f o r m a t i o nt e c h n o l o g ya n dt h ef u l lu s i n go fi n f o r m a t i o nr e s o u r c e h a sb e c o m et h ee n t e r p r i s et h en e c e s s a r ym a g i cw e a p o nt h a to v e r c o m e st h ee n e m yi n t h ei n t e n s em a r k e tc o m p e t i t i o n e l e c t r i cp o w e ri n d u s t r yi st h el i f e l i n eo fn a t i o n a l e c o n o m y , a n di tp r o v i d e si m p o r t a n tp o w e r f o rt h ed e v e l o p m e n to fs o c i e t y , s oi t ss a f e a n ds t e a d yr u nw o r kap i v o t a lf u n c t i o nt ot h ed e v e l o p m e n to fc o u n t r ya n dt h el i f eo f p e o p l e a s e l e c t r i cp o w e re n t e r p r i s es c i e n t i f i c m a n a g e m e n ti m p o r t a n t c o n t e n t s e l e c t r i c a lm e a s u r e m e n ts u p e r v i s i o nw o r ki st h es u r v e i l l a n c em a n a g e m e n to fr u n n i n g o ft h ee l e c t r i c a le q u i p m e n t ,i ti sg u a r a n t e e dt h ei m p o r t a n tl i n ko ft h ep o w e r e q u i p m e n tl o n g - t e r ms t a b i l i t ym o v e m e n t t h e r ea r es o m ep r o b l e m si nt h ee l e c t r i cs u p e r v i s i o nm a n a g e rw o r kn o w s o m e p o w e rp l a n t ss t i l lm a k ed a t aw i mm a n u a l ;a n dm o s ts t i l lu s ec sa l t h o u g h tu s i n g s o f t w a r e ,a n ds o f t w a r em a i n t e n a n c ei sc o m p l e x o nt h es i d e ,s o f t w a r es y s t e mn e e d s s o m ee x t e n da n dm a k e s u p g r a d i n gw i t h o u ts l o tb e c a u s er e l e v a n ti n s t i t u t i o n sn e e d t h e c o n t i n u o u si m p r o v e m e n t ,s o ,c o m p i l i n ga ne l e c t r i cs u p e r v i s i o nm a n a g e rs y s t e mb a s e d c o m p o n e n tt e c h n o l o g yh a si m p o r t a n tp r a c t i c a la n de c o n o m i cv a l u e a f t e ri n t r o d u c i n gs o m ep o p u l a rc o m p o n e n tt e c h n o l o g y , t h i sp a p e rd i s c u s s e s s o m ek e yp r o b l e m sa b o u tt h eu s i n go fc o m p o n e n t s ,s u c ha sc o m p o n e n tr e u s ei n b i n a r yl e v e l ,m e t a d a t ai nc o m p o n e n ti n t e r o p e r a t i o na n d r e u s ec o m p o n e n t a tl a s t ,t h i s p a p e ri n t r o d u c e sc o m p o n e n tb a s e ds o f t w a r ed e v e l o p m e n t ,a n d e s t a b l i s h e sad e v e l o p m e n tm o d e lo ft h ee l e c t r i cs u p e r v i s i o nm a n a g e rs y s t e m o nt h e s i d e ,t h ep a p e ra l s op r e s e n t st h ea p p l i c a t i o no fc b s di nt h ed i f f e r e n tp e r i o do f s o f t w a r e l i f e c y c l eo f t h ee l e c t r i cs u p e r v i s i o nm a n a g e rs y s t e m a b s t r a c t k e y w o r d s :c o m p o n e n t ;s o f t w a r er e u s e ;c o m p o n e n tb a s e ds o f t w a r e d e v e l o p m e n t ;e l e c t r i c a lm e a s u r e m e n ts u p e r v i s i o n i l l 论文原创性声明 本人声明,所呈交的学位论文系在导师指导下本人独立完成的研究成果。 文中依法引用他人的成果,均已做出明确标注或得到许可。论文内容未包含法 律意义上已属于他人的任何形式的研究成果,也不包含本人已用于其他学位申 请的论文或成果。 本人如违反上述声明,愿意承担以下责任和后果: 1 交回学校授予的学位证书: 2 学校可在相关媒体上对作者本人的行为进行通报; 3 本人按照学校规定的方式,对因不当取得学位给学校造成的名誉损害, 进行公开道歉; 4 本人负责因论文成果不实产生的法律纠纷。 论文作者签名:馥;厶主瘟日期:墨丝2年三月墨l 日 论文知识产权权属声明 本人在导师指导下所完成的论文及相关的职务作品,知识产权归属东北电 力大学。学校享有以任何方式发表、复制、公开阅览、借阅以及申请专利等权 利。本人离校后发表或使用学位论文或与该论文直接相关的学术论文或成果时, 署名单位仍然为东北电力大学。 论文作者签名:主睦滋滥 导师签名:翘垒 日期:墨竺2 年曼一月三堕一日 日期:2 盘2 年土月2 j 日 第1 章绪论 在信息时代,随着各企业对各种旧的应用的不断扩充和新应用的不断增加, i t 部门面临的问题增多,诸如硬件平台不同、网络环境不同、数据库之间的操 作不同、多种应用模式并存、系统效率过低、传输不可靠等等。新的分布式网 络计算要求软件实现跨空间、跨时间、跨设备、跨用户的共享,这导致软件在 规模、复杂度、功能上必须得到极大地增长,软件要向异构协同工作、各层次 上集成、可反复重用的工业化道路上前进。为适应这种需求,新的软件开发模 式必须支持分布式计算、b s 结构、模块化和构件化集成,使软件类似于硬件 一样,可用不同的标准构件拼装而成。这一趋势也使电力行业传统的管理方式 发生了翻天覆地的变化。 1 1 电测监督管理信息系统的概述 发电厂技术监督管理工作是电力企业科学管理的重要内容之一,是保证电 力设备长期稳定运行的重要环节,它对企业的安全、经济、稳定运行起着重要 作用。 技术监督管理是为了进一步过渡到企业科学管理,帮助电力集团公司全面 了解所属发、供电单位生产管理情况的重要组成手段。在提高技术监督的水平, 自上而下、自下而上地有效地进行技术监督工作中,电厂监督管理系统软件起 着重要作用。 而本课题所主要研究的电测技术监督工作,是电力工业技术监督九大技术 监督( 1 i p 绝缘、电测、金属、化学、环保、热工、节能、电能质量和继电保护九 项监督) 之_ ,是提高电力工业安全经济发展、供用电水平,改进电力企业管理, 提高综合经济效益和促进科学技术进步的重要措施,也是保证电力系统计量准 确和安全生产的重要手段之一。它通过电工测量仪器、指示仪表、数字仪表、 东北电力大学工学硕士学位论文 记录仪表等设备的电压、电流、功率、电量来掌握电力设备的使用运行情况。 主要任务是贯彻执行中华人民共和国计量法及上级颁发的监督条例和有关 规程规定;参与仪器仪表和计量装置从工程设计审查、安装、调试到运行、维 护全过程的技术监督工作;以入网的电测仪表及计量装置实行入网许可;确保 电力生产运行中的试验用的仪表准确可靠;统一仪表的检验方法,对监督范围 内仪表进行周期检验和维护修理:督促按量值传递的规定按时送检标准仪表。 保证本单位内最高等级标准仪表处于规定精度状态;检查现场运行中的仪表, 发现异常情况应及时采取措旌加以纠正,以保证表计的准确指示;指导工作人 员正确使用、保管、维护、安装和搬运仪表;组织结检定工作人员进行培训、 考核,做到持证上岗;加强技术培训和交流,推广新成果等。 本课题研究的是双辽发电厂的电钡4 监督管理系统,它是整个电测监督网络 的基础系统,负责发电厂日常的监督管理工作,其中数据的准确性、及时性直 接影响着电测监督工作的进行。 但是,近几年来,各地的发电厂在电脑硬件,工作流程,报表标准等方面 都存在或多或少的问趔”,使得如今一些电测监督工作依然处于手工记录状态: 即使使用了计算机管理,也单单停留在对数据的存储上,工作人员通过编制各 种各样的数据表格和文本文档来记录各种数据,由于报表各类各样,标准不一, 导致数据大量重复,数值不准确,原始记录和试验报告不规范,各类报表计划 不能够及时的得到响应;漏查、假报、不报现象严重存在;复查不及时等情况 也频频发生;从而无法准确及时地掌握全局的情况1 2 】。 另外,当前许多发电厂电测监督管理软件依然采用传统的客户机服务器方 式的分布式两层结构,由客户端应用软件向服务器发出访问请求,服务器端按 要求组织数据,并通过网络把结果传送给提出请求的客户机,客户机处理或显 示结果数据。两者之闻是请求与服务的关系,协作完成一个任务。但是。这种 结构对于监督工作来说还存在一定的弊端( 3 1 ,具体表现如下: ( 1 ) 软件客户端维护复杂。作为客户端的用户需要安装客户端程序,并且 还要经过比较复杂的配置( 包括配置服务器名字、拷贝用户i d 等) ,一旦用户端 机器调整,如系统升级、系统崩溃、重新安装操作系统等,都需要重新安装客 户端程序和重新配置系统,比较复杂,用户自己很难维护。 ( 2 ) 只适用于局域网。而随着互联网的飞速发展,移动办公和分布式办公 越来越普及,这需要监督软件系统具有扩展性。 ( 为对客户端的操作系统一般也会有限制。可能仅适应于w i n 2 0 0 0 或 w i n d o w sx p 。但不适用于微软新的操作系统或者l i n u x 、u n i x 等。 另外,由于相关制度的不断完善,系统还需要具有一定的可扩展性,能够 独立实现各功能模块的无缝升级连接。 为了解决以上存在的问题,我们可以采用最近流行的软件复用技术,开发 一个基于b s 结构的信息管理系统。一方面可以从电测技术监督领域内提取出 适应其他技术监督领域应用的通用构件和专用构件,有效地提高了软件开发的 周期、软件开发质量,有效的进行版本的升级和维护,从长远来看,也大大的 降低系统的维护成本和再开发成本;一方面,提取出的构件被合理的部署到 w e b 网络上,突破原由软件的限制,实现了跨空间、跨时间、跨设备、跨用 户、跨平台的共享。 所以,开发一套基于构件技术的发电厂电测监督管理信息系统具有重要的 现实意义和经济价值。 1 2 软件构件技术发展的背景及现状 软件复用是指再开发新的软件系统时 4 1 ,对己有软件的重新使用,该软件 可以是己经存在的软件。也可以是专门设计的可复用构件。能够被复用的制品 种类不限于源代码段,还可以包括设计结构、模块级的实现结构、规格说明、 文档、变换等。软件复用是重复使用“为了复用目的而设计的软件”的过程, 而可复用软件则是指为了复用目的而设计的软件 5 1 。 自从软件重用思想产生以来,计算机科学家和软件工程师就致力于软件重 用技术的研究和实践。在3 0 多年内,出现多种软件重用技术,如:库函数模板、 东北电力大学工学硕士学位论文 设计模式、构件、框架、构架等。其中,构件技术是实现软件复用技术的核心 技术,也是它的重点和难点。 面向对象的方法和技术是继结构化方法之后出现的、最有代表性的软件开 发方法,是当今软件开发的主流技术。它具有良好的思想、方法、机制和技术, 其核心是用软件对象模拟和表达现实中的对象。面向对象方法使软件的结构能 直接映射其要解决的问题空间的结构,使软件结构与问题空间一致,简化了软 件开发过程各阶段中模型之间的转换,从而使人们对问题的认识和分析过程与 解决问题的过程保持一致成为可能1 6 j 。 然而,传统的面向对象的方法和技术提供的上述好处主要是针对分析、设 计和编码等软件开发阶段的,当一个传统的面向对象的代码经过编译、链接后 得到的可执行软件是不可改变的。另外,传统的面向对象并没有完全达到其最 初所追求的目标,即面向对象的软件是由对象类构成的,软件开发不需要每次 都从头开始,它可以借用以前软件开发中积累下来的对象类。在极端的情况下, 当开发一个项耳时,所需要的类都可通过市场买到标准的软部件,所做的工作 就是将这些标准的软部件重新组织,让它们相互合作完成此项目的任务。目前, 传统的面向对象的方法和技术并不能完全达到这一目标。 构件技术正是在这种背景下提出的,它是目前最重要的软件开发技术。这 种在二进制代码级的接口标准,使得软件可在二进制代码级重用大量已有的软 件实现,动态地组装一个软件,提供了各种软件模块之间的可操作性,这为最 终给用户定制一个软件,以及软件本身的进化和维护提供了很好的机制。构件 是由接口构成的,它把接口和接口的实现分离开了。接口是独立于语言的一种 描述,它将内部的实现以及接口到实现的映射都封装起来了,外界只能通过接 口描述使用构件。因此,接口用哪种语言实现也就无关紧要了。 构件技术发展很快,它是影响整个软件产业的关键技术之一。1 9 9 8 年在日 本召开的国际软件工程会议上,基于构件的软件开发模式成为当时会议研究的 一个热点。美国总统顾问委员会也在1 9 9 8 年美国国家白皮书上,提出了解决美 国软件产业脆弱问题的五大技术,其中之一就是建立国家级的软件构件库。目 前,美国已有不少软件企业采用构件技术生产软件。构件基础实施日益完善, 构建化软件市场容量不断扩大。 随着软件工程新技术的发展与复用技术的逐渐成熟,软件构件技术显露出 潜在而强大的生命力首先表现在已有了可复用软件构件的“即插即用”运行 环境工业标准,主要有o m g 的c o r b a 、m s 的c o m + 和s u n 的j 2 e e 。基于 这些标准的构件运行平台,人们可以提供构件的公共服务和协调运行机制,降 低了构件的复杂度,更好地支持构件的互操作。其次,近年来兴起的w e bs e r v i c e 技术为可复用构件之间的互操作铺平了道路,国际上主要的i t 企业和研究单位 投入巨资研发复合构件运行的框架产品,如m i c r o s o f t 公司的“n e t “、s u n 公司的“o n e ”( o p e n n e t e n v i r o n m e n t ) 、i b m 公司的w e b s p h e r e 产品和b e a 公 司的w e b l o g i c 产品都已被广泛使用。 其次,对构件内涵和基于构件的开发方法的研究有了很大进展。关于构件 本质抽象描述、领域专家提出3 c 模型和r e b o o t 模型。人们在领域工程的实 践中提炼了许多构件架构模型。其中主要有u t i l e o n 模型和a c m e 模型等,这 些研究成果推动了c b s e c b s d 的应用。 国内的相关研究也较多,如青鸟构件库管理系统( j b c l m s ) 是北京大学软件 工程研究所在杨芙清院士领导下的研究成果 7 1 ,它的目标是致力于软件复用, 以构件作为软件复用的基本单位,提供一种有效的管理和检索构件的工具。 j b c l m s 作为企业级的构件管理工具,可以管理软件开发过程中的不同阶段( 分 析、设计、编码、测试等) 、不同形态( 如分析设计文档、源代码、二进制代码、 测试报告等) 、不同表示( 如文本、图形等) 的构件,提供多种检索途径,以便于 快速检索所需构件。 1 3 本文的主要研究内容 本文主要的研究内容可以概括为以下几个方面: ( 1 ) 研究现有构件技术的理论知识和实践成果,对比分析现今几种流行的 构件模型的工作原理。 ( 2 ) 讨论n e t 构件技术在电铡监督系统应用过程中的几个关键问题。 ( 3 ) 建立基于构件的电测监督管理系统的开发模型。 ( 4 ) 利用n e t 构件技术完成电测监督管理系统的开发。 2 1 构件技术 第2 章构件及其相关技术 2 1 1 构件 目前,对构件的概念还没有统一的定义,这里采用一个相当广泛、全面的 构件定义:构件是一个独立发布的功能部分,可以通过它的接口访问它的服务。 即构件是一个有用的片断,它可以与其他片断组装在一起形成一些更大的片断, 或是整个的解决方案l 。 我们可以从三个有关于什么是构件的观点出发,来表达构件的特征: ( 1 ) 包装的观点:一个构件可以看作是一个组织化的概念,可作为一个独 立单元加以复用的许多不同元素的集割1 0 1 。复用包含了多种可复用的应用开发 制品,如文档、源代码、对象模块、链接库、数据库等。 ( 2 ) 服务的观点:将构件视为为使用者提供服务的软件实体。一系列相关的 构件之间通过调用彼此的服务来进行。各种服务都必须通过一种一致的、契约 性的称为接口的单元来提供。服务的提供者和使用者共同遵守和使用这种契约 唧。实现真正意义上的“即插即用”。 ( 3 ) 完整的观点:构件是一种可以提供独立的、可替换的行为的单元。作 为系统的一个内部单元安装和升级,将构件定义为包装的界限,使维护其所管 理的数据的软件集合,与其他构件实现相独立。 2 1 。2 构件模型 构件模型的思想是创建可重用的构件并将其组合到容器中,以得到新的应 用系统。构件模型定义了构件的基本体系结构、构件接口的结构、与其他构件 及容器相互作用的机制等。利用构件模型规范说明,可以实现应用系统逻辑的 构件,并把这些预先开发好的构件组合成应用系统,组合过程中也要遵循构件 模型的规范。构件模型由构件与容器( 构架) 两种主要成份构成【l “。构件模型通 常还提供创建和实现构件的指导原则。 一般而言,构件模型的建立要考虑如下因素: ( 1 ) 表达能力:要能够充分代表它所描述的构件,而且不应该仅作为构件 的抽象,还要能描述构件闻复杂的关系,支持构件的复合等操作。 ( 2 ) 简单性:要对构件的创建和复用提供指导,易于掌握和理解。 ( 3 ) 语言无关性:即不依赖于任何一种特定的构件描述语言。 ( 4 ) 可伸缩性:即要能表示不同粒度水平的构件。 ( 5 ) 一致性和完备性:一致性是对内而言的,要求构件作为一个封装体必 须具有一致的对外接口、一致的组成结构以及一致的交互方式。完备性是指不 存在模型所不能描述的构件( 特定某一领域以及采用的方法学) 。 ( 6 ) 可扩展性:指在保持模型本身的一致性和完备性的前提下,模型可以 随着应用需求的增长而演化。 当前主要的构件模型分类0 2 : 构件的描述分类模型:以综合的方式来描述构件,方便用户对构件的理解, 以及构件在构件库中的分类和检索。例如3 c 模型。 构件的规约组装模型:给出构件的功能规约,并通过配置构件规约而给出 系统( 子系统) 规约。主要实例:各种接1 :3 描述语言i d l 、构件描述语言c d l 和 体系结构描述语言a d l 。 构件的实现模型:用于指导使用某种程序设计语言实现构件或将构件实现 为某种可执行的单元。主要实例:c o r b a 、c o 眦o m n e t 、e j b 等。 2 1 3 构件架构 软件构架系统是在其所处环境中最高层次的抽象,是应用系统体系结构的 显式表示,描述的是系统整体设计布局,包括全局组织与控制结构,构件间通 讯、同步和数据访问的协议,设计元素的功能分配,物理分布,设计元素集成, 伸缩性和性能,设计选择等1 1 3 1 。它研究如何快速、可靠地利用可复用构件构造 系统的方式,着重于软件系统自身的整体结构和构件间的互联。其中主要包括: 软件构架原理和风格、软件构架的描述和规约、特定领域软件构架、构件向软 件构架的组装机制等。特别是,在基于复用的软件开发中,为复用目的而开发 的软件构架可以作为一种大粒度的、抽象级别较高的软件构件进行复用,而且 软件构架还为软件的组装提供基础。 软件构架是一个程序或系统的构件的组织结构。一般地,一个系统的软件 体系结构阐明系统整体设计,协作构件之间的依赖关系、责任分配和控制流程, 表现为一组抽象类及其实例之间协作的方法,为构件复用提供上下文。基于构 架不仅提供一种在较高层次观察、设计系统并推理系统行为和性质的方式,而 且提供了在分布式多层系统开发中对各组成构件开发、组装和部署的途径。 目前,s a 研究主要有两大成果:一是将构件之间的交互显式地表现为连接 件,并将连接件视为系统中与构件同等重要的一阶实体:二是产生了各种体系 结构描述语言,负责描述系统中包含的构件与连接件以及它们之间的交互关系、 构件的非功能类性质以及构件间协议,可为构件组装、部署提供强有力的支持。 2 1 4 构件库 构件库数据模型是构件库中构件存储的抽象表示【1 4 1 。开发者可以通过构件 检索在构件库中寻找合适的构件。构件库的构件表示模型不仅要从构件的外部 接口、对象封装规范等角度对构件进行描述,还需要对构件的功能、环境、基 本信息等语义特性进行说明。 其中m i c r o s o f tr e p o s i t o r y ( 微软构件库) 是一个存储和共享构件、模型、对象、 关系以及它们的描述信息的数据库1 1 5 1 。通过支持复用、工具互操作能力、小组 开发、数据源管理和依赖性跟踪,它成为软件工具和用户之间共享信息的中心。 在两个共享构件信息的工具之间,必须有两个不同层次的协议。其一,他 们必须共享相同的底层存储引擎入口。一般地,这是通过由存储引擎提供的、 并能被两种工具得到的公共应用程序编程接n ( a p i ) 来实现。其二,这两种工具 必须就一些从存储引擎中存储和检索信息的公共语义达成协议,为此,将采用 一个公共信息模型来描述希望在构件库中共享的信息。当一个工具在存储引擎 中存储信息时,另一个工具能利用存储引擎的a p i 来检索信息,并且能用信息 模型来解释它检索到描述信息。 2 1 5 构件技术研究内容 软件构件技术主要研究内容主要包括六个方面: ( 1 ) 构件获取:有目的的构件生产和从已有系统中挖掘提取构件。 ( 2 ) 构件模型:研究构件的本质特征及构件间的关系。 ( 3 ) 构件描述语言:以构件模型为基础,解决描述、理解及组装问题。 ( 4 ) 构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构 件库系统,支持构件的有效管理。 ( 5 ) 构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码 级的组装和基于构件对象互操作性的运行级组装。 ( 6 ) 标准化:构件模型的标准化和构件库系统的标准化。 2 2 u m l 介绍 统一建模语言u m l c o n i f i e dm o d e l i n gl a n g u a g e ) 是用来对软件系统进行描 述、构造、可视化和文档编制的一种定义良好、易于表达、功能强大且普遍适 用的建模语言。它融合了b o o c h ,o m t 和d o s e 方法及其它多种建模语言和 方法的优点,支持面向对象的分析与设计,以及从需求分析开始的软件开发的 全过程。 u m l 可通过两种不同的级别加以描述。对于u m l 的最终用户,他使用一 种特定的符号加以描述。另一方面,支持u m l 符号的实现工具将符合u m l 语 法和语义的详细描述,形成一个元模型。 统一建模语言u m l 的重要内容可以由下列九种图形来定义【t 6 ,”l ,其中, 用例图从最终用户角度获取系统功能,一般用于在开发生命周期的初期,确定 系统的上下文和导出一组用户所关注的需求;类图获取系统的基本词汇。它在 整个开发生命周期中构建和细化,并记录系统中主要的模型元素的名字、属性、 和关系;状态图获取系统中基于时间的动态行为,能描述和分析状态和模型元 素的变化:活动图获取系统中面向活动的动态行为,有助于描述系统中的业务 流程;顺序图获取系统中和时间有关的动态行为,可以分析所采用的典型方案 的控制流程;协作图获取系统中面向消息的动态行为,阐明了系统中响应特定 事件的单元间的协作;构件图获取系统执行的物理结构,作为系统体系结构的 组成部分来管理和组织解决方案中的物理单元。另外还包括包图和部署图等。 对于任意选择的构件建模方法,u m l 都是在面向对象的分析方法的上下文 中开发的。它具有以下三个主要特征: ( 1 ) 用例驱动。决定采取用例的粒度,表述用例的方向,以及对用例抽取 系统级行为和用户级行为的程度。并且对用例提供外在支持。行为者能和用例 联系起来为系统中特定角色建模。 ( 2 ) 以体系结构为中心。系统的内在特性是根据系统得主要功能片断以及 它们之间的交互情况而决定的静态方面用u m l 的类图来建模,并通过对类 实例的时间上的变化,以及内聚单元之闻的交互来获取、理解和优化系统的动 态方面,得到系统的体系结构。 ( 3 ) 迭代和增量。迭代设计时有效开发是面向对象分析方法的关键,增量 设计意味着必须把设计从高级概念细化到详细实现,同时又不能忽略像部署特 定软件模块、处理器和硬件设备等问题。 2 3 现有构件模型的评述 现有的主要构件模型有:s u n 的e j b 、c o r b a 的c c m 、m i c r o s o f t 的c o m d c o m 以及n e t 构件对象。 l 、j a v a b e a n j a v a b e a n 是解决平台依赖性和语言依赖性的软件构件技术【l 引。j a v a 本身是 独立于平台的,它适宜用于i n t e m e t ,易于构造b s 应用等。但是,j a v a 是在 源代码级的复用;j a v a b e a n 是利用j a v a 特殊的b y t e c o d e 机制推出的解决平台 依赖性问题的构件接口标准,是在目标代码级的复用,j a v a b e a n 提供的标准接 口为目标代码级的动态组装、敝本升级、维护提供了保证,一些相应的可视化 工具也为方便、有效地制定j a v a b e a n 和建立应用程序提供了方便。正像j a v a s o f t 所描述的,j a v a b e a n 是“一次性编写,在任意地方运行,在任意地方可重用”。 j a v a b e a n 的构件模型主要包括构件和容器。模型的其他部分还包括事件处 理、持续性、布局以及应用程序建立器( 一种可视化的工具) 等,这些都是通过 j a v a b e a n 构件的标准接口实现的。j a v a b e a n 有以下主要特征: ( 1 ) 属性管理:属性的类型分为一般属性、索引属性、依附属性和约束属 性,通过标准的命名约定来定义它们相应的访问方法,使j a v a b e a n a p i 能用统 一的方式对属性进行管理。 ( 2 ) 内省功能:一种使构件的内部结构( 属性、方法和事件) 展现给外部的机 制。j a v a b e a n 不需要构件开发者额外的工作,它只需要开发者对构件的属性、 方法和事件的命名和类型符号遵守一个约定,通过标准的j a v a b e a n a p i 就可了 解到b e a n 的任何内部信息。 j a v a b e a n 的事件处理模型是基于现存的a w t 事件处理模型的。它决定b e a n 如何对它自身状态的变化做出反应,以及如何将这些变化传递给应用程序和其 他b e a n 。j a v a b e a a a p l 通过将一个事件接收器注册到该事件上完成外部对事件 的控制。j a y a b e a n 的其他服务主要是利用j a v a b e a n 提供的标准接1 :3 实现的。 尽管j a v a b e a n 是作为一种通用的构件模型提出来的,但它主要解决了可视 化构件的一些问题,类似于m i c r o s o f t 的a e t i v e x 。严格地讲,目前的j a v a b e a n 只是提供了在j a v a 环境下的二进制代码共享机制,在不同语言之间的互操作功 能还是很弱的。 2 、c o i m a c o r b a 是由o m ( 3 ( 对象管理组) 1 9 9 0 年首次提出的,主要为了解决分布式、 异质的软件和硬件环境下对象之间的互操作问题,是一种基于中间件的构件技 术1 1 9 】。c o r b a 的特点是面对对象技术与分布式计算的结合以及代理机制的中 间件郾1 。 在面向对象与分布式技术的结合方面,c o r b a 将传统的面向对象模型和 分布式问题的对象计算模型有机结合起来。对象是分布式计算模型中理想的节 点描述模块,既可以是客户,也可以是服务器,这些对象可以自由地分布于计 算机网络上。通过c o r b a ,对象可网络透明地相互访,c o r b a 屏蔽了位置信 息和计算机的软硬件环境,建立了一个统一的分布式软件开发平台。 c o r b a 要解决的另一个重要问题是二进制代码之间的互操作问题。 c o r b a 提供了一种中间的代理机制,这种机制将构件的接口与构件的实现分 离开来。服务对象实现后,就将其接口登记在c o r b a 的代理中,客户对象按 照代理中的接口描述访问服务对象。该机制还可提供客户与服务器间的动态匹 配以及一个服务器为多个客户服务等功能。 值得一提的是:c o r b a 还提供另一种无存根的机制一动态激活接口。这 种机制可以使客户在运行时发现接口信息,然后对它们进行调用,而无须预编 译该接口的存根,它为系统的进化提供了灵活性和可扩展性。 3 、m i c r o s o r 的c o m d c o m c o m ( c o m p o n e n to b j e c tm o d e l ) 是m i c r o s o f t 创建的为解决构件之间进行通 信的标准【2 l 】。c o m d c o m 为构件的互操作定义了一种二进制构件模型,是一 种底层的构件软件体系结构。对象与接口是c 0 m 规范中最核心的部分,c o m 构件提供给客户的是以对象的形式封装起来的实体,客户程序与c o m 构件进 行交互的是c o m 对象。c o m 对象包括属性与方法,对象的状态反映了对象的 存在,也是区别于其他对象的要素;c o m 对象提供的方法就是对象提供给外界 的接口,客户必须通过接口才能获得服务,所以接口是对象与外界进行交互的 唯一途径。因此,封装特性是c o m 对象的基本特征。 客户程序用一个指向接口数据结构的指针来调用接口成员函数。接口指针 实际上又指向另一个指针,这第二个指针指向一组函数,称为接口函数表。客 户只要获得了接口指针,就可以调用对象的实际功能。 c o m 构件是通过接口向用户公布它的类型信息( 功能信息) 。c o m 规定每 个c o m 对象都必须实现i u n k n o w n 接口,任何接口都必须直接或间接派生自 这个接1 2 1 。这个接口包含q t m 可i n t e r f a c e 、a d d r e f , r e l e a s e q u e r y i n t e r f a c e 三个 方法。所有的基于c o m 的类都在系统注册表内有注册条目,这些注册条目表 示了实现这个类的物理构件( d l l 文件) 的位置,以及构件的类型等信息。c o m 库查找系统注册表。找到类的实现构件并把它调入内存,客户程序就可以使用 构件的功能了。在c o m 中没有私有构件的概念,任何程序都可从系统注册表 中找到系统中的所有构件并使用它。 4 、n e t 构件对象 n e t 开发平台是微软为了在c o m 基础上简化软件构件的开发而推出的新 一代平台。c l r 是n e t 平台的核心部分。所以n e t 构件模型也叫c l r 构件模 型。 n e t 的基本代码打包单元是程序集( a s s e m b l y ) ,程序集就是n e t 的构件。 程序集构成了基于n e t 的应用程序的部署、版本控制、重用、激活范围和安全 权限的基本单元。程序集以可执行文件( e x e ) 或动态链接库文件( d 1 1 ) 的形式出 现,是n e tf r a m e w o r k 的生成块,它们向公共语言运行库( c l r ) 提供了解类型 实现所需要的信息。每个程序集都包含用于描述源代码中定义和引用到的类型 和成员的数据,这些数据叫元数据。元数据是一种二进制信息,用以对存储在 公共语言运行库可移植可执行文件( p e ) 或存储在内存中的程序进行描述。在模 块或程序集中定义和引用的每个类型和成员都将在元数据中进行说明。当执行 代码时,运行库将元数据加载到内存中,并引用它来发现有关代码的类、成员、 继承等信息。 对于n e t 编程模型来说,元数据是关键,该模型不再需要接口定义语言 ( m l ) 文件和头文件。元数据允许n e t 语言自动以非特定语言的方式对其自身 进行描述,而这是开发人员和用户都无法看见的。我们可从四个方面加以阐述: ( 1 ) n e t 构件交互性 程序集或模块的元数据包含与另一个程序集或模块进行交互所需的全部信 息。元数据自动提供c o m 中i d l 的功能,允许将一个文件同时用于定义和实 现。公共语言运行库模块和程序集甚至不需要向操作系统注册。运行库使用的 说明始终反映编译文件中的实际代码,从而提高应用程序的可靠性。n e t f r a m e w o r k 的编译器向所有的模块和程序集嵌入元数据,使n e t 构件成为自描 述构件,从而使构件互用更加简单。这种方式有助于构件的无缝集成。n e t 还 支持私有构件的概念,以保证某些程序的私有构件不被其他程序使用。 在编制客户程序时,必须在客户程序的工程中添加对服务器程序集的引 用,n e t 的开发环境可以根据服务器构件程序集中的元数据了解服务器构件里 的类及其方法、属性、接口及事件等信息,从而在客户程序代码创建服务器对 象时根据这些信息构造服务对象。使客户可以使用服务器构件,实现与服务构 件的交互。也就是说n e t 构件的交互只依赖于n e t 的基础机制,即n e t 运行 时( c l r ) 。而且,客户程序与服务器构件的交互在客户程序设计阶段就开始了。 ( 2 ) n e t 的版本问题 基于c o m 的程序在安装时会覆盖同名的现有应用程的构件。这就导致现 有应用程序不能正常运行( “d l lh e l l ”闯题) 。虽然c o m 规定在版本更新时必 须保持向后兼容,但这是很难保证的。n e t 框架采用了一种新型的版本机制来 隔离应用程序的构件。对于不需要和其他应用程序共享的构件,就把构件放在 和应用程序相同的目录下,一个构件的不同版本可以共存于全局程序集缓存 ( g a c ) 中。g a c 是在w i n d o w s 系统目录中的一个子目录,g a c 本身是一个结 构化的目录,它的内部结构使用一些n e t 提供的工具来操作,构件当初生成和 测试时所使用的构件的版本号被嵌入在程序集的清单中,当c r l 在加载一个程 序的时候,就在清单中的版本号加载对应版本的构件,这种机制可以保证使用 的是生成和测试时的构件。程序集的主要目的之一是版本控制。具体的说,程 序集为开发人员提供了在不同软件组织之间指定版本规则以及在运行期间强制 这种规则的手段。一个程序集的特定版本和依赖程序集的版本在该程序集的清 单中记录下来,除非被配置文件中的显示版本策略重写,否则运行库的默认版 本策略是:应用程序只与它们生成和测试时所用的程序集版本一起运行。配置 文件中的版本策略可以被修改,这就是灵活的版本控制机制。 ( 3 ) n e t 语言的透明性 公共语言运行库通过指定和强制公共类型系统以及提供元数据为语言互用 性提供了必要的基础。因为所有面向运行库的语言都遵行通用语言规范( c l s ) 来定义和使用类型,类型的用法在各语言之间是一致的,元数据通过定义统一 的存储和检索类型信息的机制使语言互用性成为可能。编译器将类型信息存储 为元数据,公共语言运行库使用该信息在执行过程中提供服务,因为所有类型 都以相同的方式存储和检索,而与编写该代码的语言无关,所以,运行库可以 管理多语言应用程序的执行,从而提供面向公共语言运行库的语言间的透明性 支持。 通用语言规范( c l s ) 是许多应用程序需要的一套基本语言功能,c l s 通过定 义一组开发人员可以确信在多种语言中都可以用的功能来增强和确保语言的互 用性。微软已经提供了几个面向c l r 的语言编译器:例、托管c + + 、v i s u a l b a s i c n e t 和j s c r i p t ,即这几种语言编写的程序都可以使用c l r 。这就意味着 在编制程序代码的时候就可以使用另一种语言所开发构件。 ( 4 ) n e t 跨进程交互的透明性 运行在不同进程和不同计算机的n e t 构件之间的交互可以通过n e t 远程 处理机制来实现。通常,n e t 应用程序和应用程序域,通过消息进行彼此的通 信,而用应用配置文件来登记远程类型的信息,包括服务器构件的位置、构件 对象的激活类型和通信的信道配置等。此时,n e t 配置文件相当于c o m 里的 系统注册表的作用。n e t 应用程序在启动前,公共语言运行时会加载应用程序 配置文件,读取相关远程对象的信息。n e t 远程处理技术用远程对象的元数据 动态创建代理对象,客户端创建的代理对象和原始类具有相同的成员。代理对 象的实现只是通过n e t 远程对象运行库将所有请求发送给远程对象。远程处理 系统会将远程对象的响应结果传回给代理对象,代理对象再将结果传送给客户 端对象。 n e t 模型还支持w e b 服务,w e b 服务是在i n t e m e t 上进行的分布式计算 的基本构造块,它是通过h t t p 执行远程方法调用的一种新方法。其中的h r r p 可以利用s o a p ( 简单对象访问协议) 。使用w e b 服务应用程序可以使用多个不 同来源的w e b 服务构造而成。这些服务相互协同工作,而不管他们位于何处, 如何实现,客户程序只需添加对w e b 服务的

温馨提示

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

评论

0/150

提交评论