(电力系统及其自动化专业论文)scada系统的面向对象建模及实现.pdf_第1页
(电力系统及其自动化专业论文)scada系统的面向对象建模及实现.pdf_第2页
(电力系统及其自动化专业论文)scada系统的面向对象建模及实现.pdf_第3页
(电力系统及其自动化专业论文)scada系统的面向对象建模及实现.pdf_第4页
(电力系统及其自动化专业论文)scada系统的面向对象建模及实现.pdf_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

西南交通大学硕士研究生崇位论文 t h e o b j e c t o r i e n t e dm o d e l i n g a n d i m p l e m e n t a t i o n o fas c a d a s y s t e m a b s t r a c tw i t ht h ev i g o r o u sd e v e l o p m e n to fo b j e c t o r i e m e dt e c h n o l o g y i nr e c e n ty e a r s i t si n f l u e n c ea n da p p l i c a t i o ni nd i f f e r e n td o m a i n si sb e c o m i n g b r o a d e r , a n di t s a p p l i c a t i o n i ns c a d as y s t e mi sa l s o a p p r o v e db ym a n y e x p e r t s a f t e rs t u d y i n gt h eu n i f i e dm o d e l i n gl a n g u a g ew h i c hi so n eo ft h e n e w e s t d e v e l o p i n g a c h i e v e m e n t so fo b j e c t o r i e n t e dt e c h n o l o g ya n di t s m o d e l i n gt o o l s ib a s i c a l l ye r e a t et h em o d e l so f t h es c a d as y s t e ma p p l i e di n e l e c l :r i f i e d r a i l w a y su s i n gt h eu m i a n dt h ev i s u a lm o d e l i n gt 0 0 1r a t i o n a l r o s e9 8a n dc a r r yo u tp a r t so ft h en e ws c a d a s y s t e mu s i n gt h er a p i d a p p l i c a t i o nd e v e l o p m e n tt o o lc + + b u i l d e r30 k e y w o r d so o t ( o b j e c t o r i e n t e dt e c h n o l o g y ) ;u m l ( u n i f i e dm o d e l i n g l a n g u a g e ) ;s c a d a f s u p e r v i s o r yc o n t r o la n d d a t aa c q u i s i t i o n ) s y s t e m s ;t h e v i s u a lm o d e l i n gt o o lr a t i o n a lr o s e9 8 西南交通大学硕士研究生学位论文 概述 随着s c a d a 系统的发展,用户对系统的要求越来越多、越来越复 杂,软件开发的复杂度也相应地增加了,结构化程序设计语言和结构化 分析与设计已无法满足用户需求变化。所以,随着面向对象技术的蓬勃 发展和迅速普及,其在s c a d a 系统中的应用也得到许多专家的共识。 面向对象的分析与设计( o o a & o o d ) 方法的发展在8 0 年代末至9 0 年代中出现了一个高潮,统一建模语言u m l ( u n i f i e dm o d e l i n g l a n g n a a g e ) 是这个高潮的产物,1 9 9 7 年1 1 月1 7 日,o m g 采纳u m l l1 作为基于面向对象技术的标准建模语言。紧接着出现了几种支持u m l 的可视化建模工具,使得面向对象的分析与设计的可视化成为可能。 本论文作者自1 9 9 8 年初开始参与s c a d a 系统的研究与开发工作, 参与研制的h y 2 0 0 新型微机远动系统已通过了铁道部科教司的技术鉴 定。在s c a d a 系统的软件设计中,发现如何加强团队合作,规范软件 的设计过程,产生软件的设计文档,提高软件的质量,缩短软件开发周 期,发展软件可靠性、可扩充性和可重用性,提高易维护性及减少“遗 憾工程”等是一个值得研究的问题。目前,面向对象技术被认为是解决 这些问题的最佳选择,而且在面向对象技术在s c a d a 系统中的应用得 到越来越多的专家的共识的情况下,作者自然选择了这一题目作为硕士 论文进行研究。 在广泛查阅有关s c a d a 系统和面向对象分析与建模的资料的情况 下,主要进行了以下几个方面的研究: 1 学习和研究了面向对象分析与设计的最新发展产物统一建模语 言u m l 。 2 使用并比较了三种支持u m l 的可视化建模工具。 3 利用u m l 及其支持工具建立了应用于电气化铁道的s c a d a 系 统的模型,并且实现了它的部分子系统。 由于作者本人水平有限,加上时间短促,资料不全等原因,难免有 不妥和错误之处。敬请审阅者和读者批评指正,谢谢! 西南交通大学硕士研究生学位论文 第一章s c a d a 系统发展概况 1 1 s c a d a 系统发展现状 s c a d a ( s u p e r v i s o r yc o n t r o la n dd a t aa c q u i s i t i o n ) 系统,全名为数 据采集与监视控制系统。s c a d a 系统主要运用于电力系统、电气化铁道 牵引供电系统、油田输油系统、城市自来水系统等。s c a d a 系统发展到 今天已经有了三代。 第一代是7 0 年代基于专用计算机和专用操作系统的s c a d a 系统, 如电力自动化研究院为华北电网开发的s d l 7 6 系统以及在日本日立公司 为我国铁道电气化远动系统所设计的h 8 0 m 系统。 第二代是8 0 年代基于通用计算机的s c a d a 系统,在第二代中,广 泛采用、,a x ,、强d s 计算机以及其它工作站。在这一阶段,s c a d a 系统在 电网调度自动化中与经济运行分析、自动发电控制( a g c ) 以及网络分 析结合到一起构成了e m s 系统( 能量管理系统) 。第一代与第二代s c a d a 系统的共同特点是基于集中式计算机系统,并且系统不具有开放性,因 而系统维护,升级以及与其它联网构成很大困难。 第三代是9 0 年代按照开放的原则,基于分布式计算机网络以及关系 数据库技术的能够实现大范围联网的e m s s c a d a 系统。这一阶段是我 国s c a d a e m s 系统发展最快的阶段,各种最新的计算机技术都汇集进 s c a d a e m s 系统中。 s c a d a 系统在电气化铁道远动系统的技术上已经取得突破性进展, 应用上也有迅猛的发展。但由于电气化铁道的特点,在s c a d a 系统的发 展上与电力系统的道路并不完全一样。 由华东交通大学信息与控制工程研究所研制的h y 2 0 0 微机远动系统 就是一种采用最新的计算机软硬件技术和网络技术开发而成的新型 s c a d a 系统。该系统调度端采用了以网络为基础的多机分布式体系结 构,程序采用面向对象的c + + b u i l d e r 编程语言编制,为3 2 位多线程、 w i n d o w s 界面软件。系统还以商用数据库为基础,开发了通用性好功能 强大的实时数据库与历史数据库系统,为系统进一步m i s 化提供了良好 的基础。系统r t u 采用了国际流行的p c 总线工业控制计算机设计制作 而成,增加了很强的当地功能。且采用性能良好的m o d e m ,使得该系 西南交通大学硕士研究生学位论文 统具有处理能力强、人机界面友好、维护方便、造价低等很多优点。 1 2 s c a d a 系统发展瞻望 第四代s c a d a e m s 系统的基础条件已经具备,预计将于2 1 世纪初 诞生。该系统的主要特征是采用i n t e m e t 技术、面向对象技术、神经网络 技术以及j a v a 技术等,继续扩大s c a d a e m s 系统与其它系统的集成, 综合安全经济运行以及商业化运营的需要。 1 s c a d a e m s 系统与其它系统的广泛集成 s c a d a 系统是电力系统自动化的实时数据源,为e m s 系统提供大 量的实时数据。同时在模拟培训系统,m i s 系统等系统中都需要用到电 网实时数据,而没有这个电网实时数据信息,所有其它系统都成为“无 源之水”。现在s c a d a 系统已经成功地实现与d t s ( 模拟培训系统) 、企 业m i s 系统的连接。s c a d a 系统与电能量计量系统,地理信息系统、 水调度自动化系统、调度生产自动化系统以及办公自动化系统的集成成 为s c a d a 系统的一个发展方向。 2 变电所综合自动化 以r t u 、微机保护装置为核心,将变电所的控制、信号、测量、计 费等回路纳入计算机系统,取代传统的控制保护屏,能够降低变电所的 占地面积和设各投资,提高二次系统的可靠性。变电所的综合自动化已 经成为有关方面的研究课题,东方电子等公司已经推出相应的产品,但 在铁道电气化上还处于研究阶段。 3 专家系统、模糊决策、神经网络等新技术研究与应用 利用这些新技术模拟电网的各种运行状态,并开发出调度辅助软件 和管理决策软件,由专家系统根据不同的实际情况推理出最优化的运行 方式,以达到合理、经济地进行电网电力调度,提高运输效率的目的。 4 面向对象技术、i n t e r n e t 技术、及j a v a 技术的应用 面向对象技术( o o t ) 是网络数据库设计、市场模型设计和电力系 统分析、软件设计的合适工具。现在面向对象技术已经比较普及且到了 实用的程度了,这主要是由于面向对象的语言c + + 和j a 、,a 的飞速发展, 标准建模语言u m l 及其支持工具的出现,还有面向对象的数据库也己达 到实用的水平,如i n f o r m i x 、o b j e c ts t o r e 等,m i c r o s o f ts q l s e r v e r70 也 支持面向对象技术,另外,c o b r a 和d c o m 等作为面向对象的数据访 问接口标准已被广泛接受。将面向对象技术( o o t ) 运用于s c a d a 厄m s 系统是发展趋势。 西南交通大学硕士研究生学位论文 随着i n t e m e t 技术的发展,浏览器界面已经成为计算机桌面的基本平 台,将浏览器技术运用于s c a d a e m s 系统,将浏览器界面作为电网调 度自动化系统的人机界面,对扩大实时系统的应用范围,减少维护工作 量非常有利;在新一代的s c a d a y e m s 系统中,传统的m m i 界面将保留, 主要供调度员使用,新增设的w e b 服务器供非实时用户浏览以后将逐 渐统一为一种人机界面。 j a v a 语言综合了面向对象技术和i n t e m e t 技术,将编译和解释有机 结合,严格实现了面向对象的四大特性:封装性、多态性、继承性、动 态联编,并在多线程支持和安全性上优于c + + ,以及其它诸多特性,j a v a 技术将导致e m s s c a d a 系统的一场革命。 1 3 问题的提出 随着s c a d a 系统的发展,用户对系统的要求越来越多、越来越复 杂,特别是当计算机硬件有了飞速发展之后,制约s c a d a 系统发展的因 素主要来自软件。一个开放式的系统是灵活可扩展的,具有易移动性和 互相可操作性,对软件要求有灵活性、可扩展性、易维护性、可再用性 等。结构化程序设计语言和结构化分析与设计己无法满足用户需求变化。 所以,自八十年代以来,面向对象的方法与技术己受到许多专家、学者、 研究人员和工程技术人员越来越广泛的重视。同样,面向对象技术在 s c a d a 系统中的应用也得到许多专家的共识。 以往的软件开发可能由一个人或少数几个人来完成,相互之间的勾 通和协调还比较好解决,但也存在与客户的勾通问题和随着人员的调动 而使整个系统无法继续开发的问题。目前由于软件的大型化、复杂化, 且要求开发周期短,软件的开发不是一两个人能承担得了的,如果某 开发者因无法继续其开发工作时,由于各人的思考方式不同,接替者的 工作将十分困难,面对大量的源代码,他将摸不着头绪。所以,如何加强 团队合作和勾通、如何与客户容易勾通、如何加强系统以后的升级和易 维护从而减少“遗憾工程”等问题就摆在面前了。面向对象建模是解决 这些问题的最好办法。 其实,无论何种复杂程度的工程项目,设计都是从建模开始的,建 模是人类对客观世界和抽象事物之间联系的具体描述,设计者通过创建 模型和设计蓝图来描述系统的结构。比如说,电子工程设计人员使用惯 用的标记和示意图进行复杂系统的最初设计,行政管理人员则常使用组 织流图来描述所管理的部门。而软件模型可以使设计者从全局上把握系 4 西南交通大学硕士研究生学位论文 统及其内部的联系,而不至于陷入每个模块的细节之中,它使我们容易 洞察复杂堆砌而成的原始数据背后的规律,并能有效地使我们将系统需 求映射到软件结构上去。 现在整个s c a d a 系统的分析、设计以及实现也不是在头脑中想一 想或者在草纸上勾画一下就能解决得了,也不是凭着一点编程经验就能 够把软件做好,它需要一种完整的面向对象的系统模型。系统模型对于 软件来说就象建造房子的图纸对于房子的作用一样。软件发展到现在, 面向对象建模己成为编制好软件的一个必不可少的手段。 面向对象技术在软件的重用性、继承性、封装性、开放性以及软件 工程方面带来革命性的影响,已经深刻影响软件系统开发设计的各个方 面。已有很多文献证明现在很多s c a d a 系统的设计和开发开始采用面向 对象技术和方法。但奇怪的是,他们在表述他们的面向对象的思想时用 的都是简单的线和块,而不是任何一种表示面向对象分析、设计和实现 的表示法,更谈不上模型的建立了。我想存在这种现象可能主要有以下 几种原因:1 建模表示法太多,不知掌握哪种好;2 掌握了某种建模表 示法,但绘制模型太不方便,即没有合适的建模工具;3 觉得绘制模型 费时且对软件的实现作用不大。 现在随着面向对象技术发展。以上各原因都己得到解决。比如统一 建模语言u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 的出现,以及m i c r o s o f tv i s u a l m o d e l e r 、v i s u a lu m l 、以及r a t i o n a lr o s e9 8 等支持u m l 的建模工具的 出现,使得面向对象的分析与设计的可视化成为可能,也使得面向对象 建模变得越来越方便。 正是在这种情况下,本论文主要进行了以下几个方面的研究: 1 学习和研究了面向对象分析与设计的最新发展产物统一建模语言 u 皿。 2 使用并比较了三种支持u m l 的可视化建模工具。 3 利用u m l 及其支持工具建立了应用于电气化铁道的s c a d a 系 统的模型,并且实现了它的部分子系统。 西南交通大学硕士研究生学位论文 第二章面向对象建模及u m l 2 i 面向对象建模 随着计算机科学的发展,应用领域的不断扩大,对计算机技术的要 求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对 软件提出了更高的要求。结构化程序设计语言和结构化分析与设计己无 法满足用户需求变化。发展软件质量,缩短软件开发周期,发展软件可 靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术, 探索新途径。自八十年代以来,面向对象的方法与技术已受到许多专家、 学者、研究人员和工程技术人员越来越广泛的重视。 面向对象方法是一种分析方法、设计方法和思维方法,其出发点和 基本目标是使我们分析、设计和实现一个系统的方法尽可能接近我们认 识一个系统的方法,也就是使描述问题的问题空间和解决问题的方法空 间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以 便接近人类思维的方式,建立问题域模型,以便对客观实体进行结构模 拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造 出模块化的、可重用的、维护性好的软件。并限制软件的复杂性和降低 开发维护费用。面向对象方法中对象作为描述信息实体的统一概念,把 数据和对数据的统一操作融为一体,通过方法、消息、类、继承、封装 和实例等机制构造软件系统,并为软件重用提供强有力的支持。 由于用户对应用系统的要求越来越多、越来越复杂,问题域、系统 责任以及与实现有关的因素也越来越复杂,而且这样的系统不可能由少 数几个人从头到尾地完成,而要有针对不同开发阶段的分工;它的分析 和设计不是在头脑中想一想或者在草纸上构画一下就能解决的,它需要 一种完整的面向对象的系统模型,需要一整套针对分析和设计阶段的方 法、策略和技巧,还需要一整套便于分析人员、设计人员、编程人员、 管理人员以及用户彼此沟通的一致的基本表示。正是基于这种实际需 要,国际上有批论述面向对象的分析与设计( 或面向对象的建模与设 计) 的专著相继问世。这些著作的共同点是把面向对象的方法在分析与 设计阶段的运用提升到理论和工程的高度,各自提出了一套较为完整的 系统模型、表示法和实施策略。同时,在模型、表示法和策略等方面, 彼此又各有差异,不同的研究团体和个人根据各自的需要进行探索并应 西南交通大学硕士研究生学位论文 用于各自不同的领域,形成了许多不同的方法与技术。这种百家争鸣的 形势在当时对面向对象的方法与技术的研究起到了一定的推动作用,但 随着问题也就来了,这种情况不利于面向对象技术酌发展。蓟1 9 9 4 年, 对面向对象技术的研究和应用还未形成统一标准以及严格的系统定义。 全世界各种各样的方法与技术就有几十种之多,其中最流行的有1 6 种, 如表2 1 所示。o m g 这一国际性的面向对象研究管理团体,本着建立统 一标准框架的目标,曾对这1 6 种面向对象技术进行了调查和客观比较。 表2 1 简称全称供应商 b o o c hb o o e hm e t h o do fo b j c c ta m d y s i s r a t i o n a l a n dd e s i g n c c nc l a s s c e n t e r e dm o d e t m gc a s e l o d oc o r t s u l f n g c y n c o a d y o u r d o r la n dn l c o l a :o b j e di n t e r n a t i o n a l ,i n c 0 0 a o o d ,o o p d e m e t e rd e m e t e r n o r t h e t e m u n i v e r s i t 3 - b o s t o t t g r a h a m s e m a n t i c o b j e c t m o d e i n g b i si n f o r m a t i o ns y s t e m s o m a a p p r o a c h i e 0 i r f f o r m a t i o r e n g i n e e r i n g w i t h t e x a si n s t r u m e n t s o b j e e t s m t d m a r k e t i n gt od e s i g n i c l o b a o b j e c tb e h a v i o ra n a l y s i s p a r c p l a e es y s t e m o b j e e t o r y o b j e e t o r y o b j e c t i v es y s t e m s fa b o g r o u po g r o u p o l i v e t t i o m t o b j e c t o r i e n t e dm o d e l i n g a n d g u m b a u g h , g e n e r a l d e s i g n e l e c t r i c o o i e o b j e c t o r i e 口a t e di n f o r m a t i o n j a m e sm a r t i na n d c o i n t e u i e o r p e n g i n e e r i n g s e o t s y s t e m se n g i n e e r i n g f o r o b j e c t l b m s 7 西南交通大学硕士研究生学位论文 在这1 6 种面向对象技术中,在我国比较流行的有三种:p e t e r c o a d 和 e d w a r dy o u r d o n 的o o a o o d o o p ,g r a d yb o o c h 的b o o c hm e t h o do f o b j e e ta n a l y s i s a n dd e s i g n ,以及f a m e sr u m b a u g h 的o m t ( o b j e c t o r i e n t e d m o d e l i n ga n dd e s i g n ) 。它们各有特色。 c o a d y o u r d o n 方法,即著名的o o a o o d ,它是最早的面向对象的 分析和设计方法之一。该方法简单、易学,适合于面向对象技术的初学 者使用,但由于该方法在处理能力方面的局限,目前已很少使用。 b o o c h 是面向对象方法最早的倡导者之一,他提出了面向对象软件 工程的概念。1 9 9 1 年,他将以前面向a d a 的工作扩展到整个面向对象设 计领域。b o o c h1 9 9 3 比较适合于系统的设计和构造。 k u m b a u g h 等人提出了面向对象的建模技术( o m t ) 方法,采用了 面向对象的概念,并引入各种独立于语言的表示符。这种方法用对象模 型、动态模型、功能模型和用例模型,共同完成对整个系统的建模,所 定义的概念和符号可用于软件开发的分析、设计和实现的全过程,软件 开发人员不必在开发过程的不同阶段进行概念和符号的转换。o m t 一2 特 别适用于分析和描述以数据为中心的信息系统。 在1 9 9 4 年j a c o b s o n 提出了o o s e 方法,其最大特点是面向用例 ( u s e c a s e l ,并在用例的描述中引入了外部角色的概念。用例的概念是 精确描述需求的重要武器,但用例贯穿于整个开发过程,包括对系统的 测试和验证。o o s e 比较适合支持商业工程和需求分析。 在1 9 9 5 年至1 9 9 7 年,软件工程领域取得了前所未有的进展,其成 果超过软件工程领域过去1 5 年来的成就总和。其中最重要的、具有划 时代重大意义的成果之一就是统一建模语言( u m l :u n i f i e dm o d e l i n g l a n g u a g e ) 的出现。在世界范围内,至少在近1 0 年内,u m l 将是面向 对象技术领域内占主导地位的标准建模语言。 采用u m l 作为我国统一的建模语言是完全必要的:首先,过去数 十种面向对象的建模语言都是相互独立的,而u m l 可以消除一些潜在 的不必要的差异,以免用户混淆;其次,通过统一语义和符号表示,能 够稳定我国的面向对象技术市场,使项目根植于一个成熟的标准建模语 西南交通大学硕士研究生学位论文 言,从而可以大大拓宽所研制与开发的软件系统的适用范围,并大大提 高其灵活程度。 2 2 标准建模语言u m l 概述 面向对象的分析与设计( 0 0 a d ) 方法的发展在8 0 年代末至9 0 年 代中出现了一个高潮,u m l 是这个高潮的产物。它不仅统一了b o o c h 、 r u m b a u g h 和j a c o b s o n 的表示方法,而且对其作了进一步的发展,并最 终统一为大众所接受的标准建模语言。 2 2 i 标准建模语言u m l 的出现 公认的面向对象建模语言出现于7 0 年代中期。从1 9 8 9 年到1 9 9 4 年,其数量从不到十种增加到了五十多种。在众多的建模语言中,语言 的创造者努力推崇自己的产品,并在实践中不断完善。于是爆发了一场 “方法大战”。 统一建模语言是客观的需要。首先,面对众多的建模语言,用户由 于没有能力区别不同语言之间的差别,因此很难找到一种比较适合其应 用特点的语言;其次,众多的建模语言实际上各有千秋;第三,虽然不 同的建模语言大多类同,但仍存在某些细微的差别,极大地妨碍了用户 之间的交流,因此在客观上,极有必要在精心比较不同的建模语言优缺 点及总结面向对象技术应用实践的基础上,组织联合设计小组,根据应 用需求,取其精华,去其糟粕,求同存异,统一建模语言。 1 9 9 4 年l o 月,g - r a d yb o o c h 和j a m e sr u m b a u g h 开始致力于这一工 作。他们首先将b o o c h9 3 和o m t 一2 统一起来,并于1 9 9 5 年1 0 月发布 了第一个公开版本,称之为统一方法u m08 ( u 培t i e dm e t h o d ) 。1 9 9 5 年秋,o o s e 的创始人i v a rj a c o b s o n 加盟到这一工作。经过b o o c h 、 r u m b a u g h 和a c o b s o n 三人的共同努力,于1 9 9 6 年6 月和1 0 月分别发 布了两个新的版本,即u m lo9 和u m lo 9 1 ,并将u m 重新命名为u 池 ( u n i f i e dm o d e l i n g l a n g u a g e ) 。 1 9 9 6 年,一些机构将u m l 作为其商业策略已日趋明显。u m l 的 开发者得到了来自公众的正面反应,并倡议成立了u m l 成员协会,以 完善、加强和促进u m l 的定义工作。当时的成员有d e c 、h i 、i - - l o g i x 、 i t e l l i c o r p 、冯m 、i c o nc o m p u t i n g 、m c is y s t e m h o u s e 、m i c r o s o f t 、o r a c i e 、 r a t i o n a ls o f t w a r e 、t i 以及u n i s y s 。这一机构对u m l10 ( 1 9 9 7 年1 月) 及u 池1 1 ( 1 9 9 7 年1 1 月1 7 日) 的定义和发布起了重要的促进作用。 西南交通大学硕士研究生学位论文 茎ioo 9 7 1 1 1 7u m l l1 被o m g 接纳为标准 9 7 9 公布u m l l 1 9 7 1 公布 尹 l r m l l 7 0 产 9 66 和9 6 1 0u m l 0 9 & 09 1 合作伙 见 其它方法b o o e h 9 1o m t 1o o s e 工业化 标准化 化 分散的 各部分 图21u m l 的发展历程 面向对象技术和u m l 韵发展过程可用图21 来表示,标准建模语 言的出现是其重要成果。在美国,截止1 9 9 6 年1 0 月,u m l 获得了工 业界、科技界和应用界的广泛支持,已有7 0 0 多个公司表示支持采用u m l 作为建模语言。1 9 9 6 年底,l r m l 已稳占面向对象技术市场的8 5 ,成 为可视化建模语言事实上的工业标准。1 9 9 7 年1 1 月1 7 日,o m g 采纳 u m l1 1 作为基于面向对象技术的标准建模语言。u m l 代表了面向对 象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大 的经济价值。 2 2 2 标准建模语言u m l 的内容 作为一种建模语言,u m l 的定义包括l r m l 语义和u m l 表示法两 个部分。 ( 1 ) u m l 语义描述基于u m l 的精确元模型定义。元模型为l r m l 的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使 开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的 影响。此外眦还支持对元模型的扩展定义。 ( 2 ) u m l 表示法定义u m l 符号的表示法,为开发者或开发工具 使用这些图形符号和文本语法为系统建模提供了标准。这些图形药号和 文字所表达的是应用级的模型,在语义上它是u m l 元模型的实例。 标准建模语言u m l 的重要内容可以由下列五类图( 共1 0 种图形) 来定义: f铲千 西南交通大学硕士研究生学位论文 第一类是用例图,从用户角度描述系统功能,并指出各功能的操作者。 第二类是静态图( s t a t i cd i a g r a m ) ,包括类图、对象图和包图。其中类 图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系 如关联、依赖、聚合等,也包括类的内部结构( 类的属性和操作) 。类 图描述的是一种静态关系,在系统的整个生命周期都是有效的。 对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不 同点在于对象图显示类的多个对象实例,而不是实际的类。个对象图 是类图的个实例。出于对象存在生命周期,因此对象圈只能在系统某 一时间段存在。 包由包或类组成,表示包与包之间的关系。包图用于描述系统的分 层结构。 第三类是行为图( b e h a v i o rd i a g r a m ) ,描述系统的动态模型和组成对 象间的交互关系。其中状态图描述类的对象所有可能的状态以及事件发 生时状态的转移条件。通常,状态图是对类图的补充。在实用上并不需 要为所有的类画状态图,仅为那些有多个状态其行为受外界环境的影响 并且发生改变的类画状态图,而活动图描述满足用例要求所要进行的活 动以及活动间的约束关系,有利于识别并行活动。 第四类是交互图( i n t e r a c t i v ed i a g r a m ) ,描述对象间的交互关系。其中 顺序图显示对象之间的动态合作关系,它强调对象之闻消息发送的顺 序,同时显示对象之间的交互;合作图描述对象间的协作关系,合作图 跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,合作 图还显示对象以及它们之间的关系。如果强调时间和顺序,则使用顺序 图;如果强调上下级关系,则选择合作图。这两种图合称为交互图。 - 第五类是实现图( i m p l e m e m a l t i o nd i a g r a m ) 。其中构件图描述代码部 件的物理结构及各部件之间的依赖关系。一个部件可能是一个资源代码 部件、一个二进制部件或一个可执行部件。它包含逻辑类或实现类的有 关信息。部件图有助于分析和理解部件之间的相互影响程度。 配置图定义系统中软硬件的物理体系结构。它可以显示实际的计算 机和设备( 用节点表示) 以及它们之间的连接关系,也可显示连接的类 型及部件之间的依赖性。在节点内部,放置可执行部件和对象以显示节 点跟可执行软件单元的对应关系。 静态的模型,包括用例图、类图、包图、对象图、组件图和配置图 等六个图形,是标准建模语言u m l 的静态建模机制,描述动态的模型, 包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语言u m l 的动态建模机制。因此,标准建模语言u m l 的主要内容也可以归纳为 静态建模机制和动态建模机制两大类。 西南交通大学硕士研究生学位论文 2 2 3 标准建模语言u m l 的主要特点 标准建模语言u m l 的主要特点可以归结为三点: ( 1 ) u m l 统一了b o o c h 、o m t 和o o s e 等方法中的基本概念。 ( 2 ) u m l 还吸取了面向对象技术领域中其他流派的长处,其中 也包括非0 0 方法的影响。u m l 符号表示考虑了各种方法的图形表示, 删掉了大量易引起混乱的、多余的和极少使用的符号也添加了一些新 符号。因此,在u m l 中汇入了面向对象领域中很多人的思想。这些思 想并不是u m l 的开发者们发明的,而是开发者们依据最优秀的0 0 方 法和丰富的计算机科学实践经验综合提炼而成的。 ( 3 ) u m l 在演变过程中还提出了一些新的概念。在u m l 标准中 新加了模板( s t e r e o t y p e s ) 、扩展机制( e x t e n s i b i l i v ym e c h a n i s m s ) 、线程 ( t h r e a d s ) 、过程( p r o c e s s e 幻、分布式( d i s t r i b u t i o n ) 、并发( c o n c u r r e n c y ) 、 合作( c o l l a b o r a t i o n s ) 、活动图( a c t i v i t yd i a g r a m ) 等新概念,并清晰地区 分类型( t y p e ) 、类( c l a s s ) 和实例( i n s t a n c e ) 、接口( i n t e r f a c e s ) 和组件 ( c o m p o n e n t s ) 等概念。 因此可以认为,u m l 是种先进实用的标准建模语言,但其中某 些概念尚待实践来验证,u m l 也必然存在一个进化过程。 2 2 4 标准建模语言u m l 的应用领域 u m l 的目标是以面向对象图的方式来描述任何类型的系统,具有 很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以 用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及 处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。而 且适用于系统开发的不同阶段,从需隶规格描述直至系统完成后的测试 和维护。总之,u m l 是一个通用的标准建模语言,可以对任何具有静 态结构和动态行为的系统进行建模。 2 3 标准建模语言i m l 的静态建模 任何建模语言都以静态建模机制为基础,标准建模语言u m l 也不 例外。u m l 的静态建模机制包括用例图( u s e c a s ed i a g r 2 t m ) 、类图( c l a s s d i a g r a m ) 、对象图( o b j e c td i a g r a m ) 、包, ( p a c k a g e ) 、构件图( c o m p o n e n t d i a g r a m ) 和配置图( d e p l o y m e n td i a g r a m ) 。 西南交通大学硕士研究生学位论文 2 3 1 用例图 ( 1 ) 用例模型( u s e c a s em o d e l ) 用例模型描述的是外部执行者( a c t o r ) 所理解的系统功能。用例 模型用于需求分析阶段,表明了开发者和用户对需求规格达成的共识。 而且它驱动了需求分析之后各阶段的开发工作,不仅在开发过程中保证 了系统所有功能的实现,而且被用于验证和检测所开发的系统,从而影 响到开发工作的各个阶段和u m l 的各个模型。在u m l 中,一个用例 模型由若干个用例图描述,用例图主要元素是用例和执行者。 o,、厂、 全。翮。e t b c o u r s e stoteach簧professor7 m a i n t a i np r o f e s s o ri n t o r m a t i o n 图2 2 用例图 ( 2 ) 用例( u s ec a s e ) 从本质上讲,一个用例是用户与计算机之间的一次典型交互作用。 在u m l 中,用例被定义成系统执行的一系列动作,动作执行的结果能 被指定执行者察觉到。用饲表示为个椭圆,图2 2 显示了一个学校注 册系统的用例图。其中,“s e l e c tc o u r s e s t o t e a c h ”,“r e g i s t e r f o r c o u r s e s ”“m a i n t a i nc u r r i c u l u m ”,“m a i m a i ns t u d e n ti n f o r m a t i o n ”, “m a i m a i np r o f e s s o ri n f o r m a t i o n ”,“r e g i s t r a rv a l i d a t i o n ”等都是用例的 实例。 西南交通大学硕士研究生学位论文 概括地说,用例有以下特点: 用例捕获某些用户可见的需求,实现一个具体的用户目标。 用例由执行者激活,并提供确切的值给执行者。 用例可大可小,但它必须是对一个具体的用户目标实现的完整描 述。 ( 3 ) 执行者( a c t o r ) 执行者是指用户在系统中所扮演的角色。其图形化的表示是一个小 人。图2 2 中有四个执行者:“s t u d e n t ”,“p r o f e s s o r ”,“b i l l i n gs y s t e m ”, “r e g i s t r a r ”。 需要注意的是,尽管执行者在用例图中是用类似人的图形来表示 的,但执行者未必是人。例如,执行者也可以是一个外界系统,该外界 系统可能需要从当前系统中获取信息,与当前系统要进行交互。在图2 2 中,可以看到,b i l l i n gs y s t e m 是一个外界系统,学生注册课程的消息要 发送给它。 发现执行者对提供用例是非常有用的。面对个大系统,要列出用 例清单常常是十分困难。这时可先列出执行者清单,再对每个执行者列 出它的用例,问题就会变得容易很多。 ( 4 ) 用例图中的关联 用例图中,不带箭头的线段将执行者与用例连接到一起,表示两者 之间交换信息,称之为通信联系。执行者触发用例,并与用例进行信息 交换。单个执行者可与多个用例联系;反过来,一个用例可与多个执行 者联系。对同一个用例而言,不同执行者有着不同的作用。带箭头的线 段表明了消息执行的方向。 除用例与执行者之间的通信联系外,还有用例之间的使用和扩展关 系。使用和扩展是两种不同形式的继承关系。 当一个用例与另一个用例相似,但所做的动作多一些,就可以用到 扩展关系。扩展关系以g e n e r a l i z a t i o n 来表示,方向从提供扩展的用例指 向基本用例,并以模板 来标签。 当有一大块相似的动作存在于几个用例,又不想重复描述该动作 时,就可以用到使用关系。例如,“m a i m a i nc u r r i c u l u m ”,“m a i m a i n s m d e mi n f o r m a t i o n ”,“m a i n t a i np r o f e s s o r i n f o r m a t i o n ”都将使用“r e g i s t r a r v a l i d a t i o n ”用例。 2 3 2 静态结构图 静态结构图包括类图、对象图和包图。数千年以前,人类就已经开 始采用分类的方法有效地简化复杂问题,帮助人们了解客观世界。在面 1 4 西南交通大学硕士研究生学位论文 向对象建模技术中,我们使用同样的方法将客观世界的实体映射为对 象,并归纳成一个个类。类( c l a s s ) 、对象( o b j e c t ) 和它们之间的关联 是面向对象技术中最基本的元素。在u m l 中,类和对象模型分别由类 图和对象图表示。类图技术是0 0 方法的核心。图2 3 显示了一个金融 系统的类图。 0 v q a 口帆y 图2 3 金融系统类图 ( 1 1 类图 类图( c l a s sd i a g r a m ) 描述类和类之间的静态关系。与数据模型不同, 它不仅显示了信息的结构,同时还描述了系统的行为。类图是定义其它 图的基础。在类图的基础上,顺序图、合作图等进一步描述了系统其他 方面的特性。 ( 2 1 类和对象 对象( o b i e 叫与我们对客观世界的理解相关。我们通常用对象描述 客观世界中某个具体的实体。所谓类( c l a s s ) 是对类具有相同特征的对 象的描述。而对象是类的实例( i n s t a n c e ) 。建立类模型时,我们应尽量 与应用领域的概念保持一致,以使模型更符合客观事实,易修改、易理 解和易交流。类描述一类对象的属性( a t t r i b u t e ) 和行为( b e h a v i o r ) a 在u m l 中,类的可视化表示为一个划分成三个格子的长方形( 下面两 个格子可省略) 。图2 3 中,“c u s t o m e r ”就是一个典型的类。最顶部的 西南交通大学硕士研究生学位论文 格子包含类的名字。类的命名应尽量用应用领域中的术语,应明确、无 歧义,以利于开发人员与用户之间的相互理解和交流。类的获取是一个 依赖于人的创造力的过程,必须与领域专家合作,对研究领域仔细地分 析,抽象出领域中的概念,定义其含义及相互关系,分析出系统类,并 用领域中的术语为类命名。一般而言,类的名字是名词。中间的格子包 含类的属性( 该项可省略) ,用以描述该类对象的共同特点。图2 3 中 “c u s t o m e r ”类有“n a n l e ”、“a d d r e s s ”等特性。最下面的格子包含类 的操作( 该项可省路) ,用以描述该类对象的共同行为,用于修改、检 索类的属性或执行某些动作。操作通常也被称为功能,但是它们被约束 在类的内部,只能作用到该类的对象上。 根据图的详细程度,每条属性可以包括属性的可见性、属性名称、 类型、缺省值和约束特性。u m l 规定类的属性的语法为:可见性属 性名:类型= 缺省值f 约

温馨提示

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

评论

0/150

提交评论