(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf_第1页
(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf_第2页
(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf_第3页
(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf_第4页
(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(控制理论与控制工程专业论文)基于设计模式的组件化电梯群控仿真系统设计与实现.pdf.pdf 免费下载

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

文档简介

摘要 本文通过对电梯群控系统特点的详细分析,以统一建模语言叫m ,和设 计模式为工具对其在计算机中的仿真进行了分析、设计,建立了电梯群控仿真系 统的逻辑模型和物理模型。为了提高仿真系统的总体运行效率,以组件对象模型 o m 和分布式c o m 技术为基础,设计了系统的分布式体系结构。最终, 结合具体的软件开发技术和工具,完成了电梯群控仿真系统的开发。从而为电梯 群控算法提供了一个通用的软件验证平台,在一定程度上促进了电梯群控算法研 究的发展。 首先,本文深入阐述了面向对象软件建模的重要工具u m l ,对眦的动、 静态建模机制进行了分析。u m l 可以和电梯群控仿真系统开发过程的各个阶段 紧密结合,但其在系统设计阶段缺乏有效的指导。设计模式描述了一个在特定设 计上下文中重复出现的问题,以及一个通用解决方案。其应用优化了电梯群控仿 真系统的内部结构,良好的组织了系统中的类与对象,降低了它们之间的耦合度, 使系统易于扩展,可复用性更强。设计模式弥补了u m l 缺乏指导的不足,两者 的结合为电梯群控仿真系统的分析与设计提供了工具帮助。c o m 是w i n d o w s 平 台下的主流组件技术,d c o m 是其在网络计算环境下的扩展,本文对其进行了 深入探讨,为实现电梯群控仿真系统的分布式体系结构奠定了技术基础。 在以上研究的基础上,本文完成了电梯群控仿真系统的分析、设计与实现。 首先,阐述了用户对电梯群控仿真系统的功能需求,并进行了细致的需求整理。 将仿真系统划分为几个相对独立的功能组件,定义了功能组件之间的协作方式。 其次,使用u m l 提供的图形建模机制,结合抽象工厂,适配器,工厂方法等几 种具体的设计模式,建立了系统的静、动态模型。然后,使用d c o m 技术开发 了群控算法服务器,并将其部署到网络中的远程计算机上,实现了仿真系统的分 布式体系结构。最后,讨论了系统实现与软件开发技术的具体结合,并对电梯群 控仿真系统的具体应用进行了说明。 关键词:电梯群控仿真系统设计模式统一建模语言组件对象模型 a b s t r a c t b a s e do nad e t a i l e da n a l y s i so ft 1 1 ec h a r a c t e r i s t i e so fe l e v a t o rg r o u pc o n t r o l s y s t e m ( e g c s ) ,t h ep a p e ra n a l y z e s ,d e s i g n sa n de s t a b l i s h e st h el o g i ca n dp h y s i c a l m o d e lo fe l e v a t o rg r o u pc o n t r o ls i m u l a t i o ns y s t e mb yu s i n gu n i f i e dm o d e l i n g l a n g u a g e ( u m l ) a n dd e s i g np a t t e r n t oi m p r o v et h eo v e r a l le f f i c i e n c yo fs i m u l a t i o n s y s t e m ,c o ma n dd i s t r i b u t e dc o ma r es t u d i e d ,s oad i s t r i b u t e da r c h i t e c t u r eo ft h e s i m u l a t i o ns y s t e mi sb u i l t t h es i m u l a t i o ns y s t e mp r o v i d e sa l lo p e n i n gp l a t f o r mf o r t h er e s e a r c ho fe l e v a t o rg r o u pc o n t r o la l g o r i t h m a sa ni m p o r t a n to b j e c t - o r i e n t e ds o f t w a r em o d e l i n gt o o l ,u m li sd i s c u s s e df i r s t l y i no r d e rt ob u i l ds t a t i ca n dd y n a m i cm o d e lo ft h es i m u l a t i o ns y s t e m u m li sc l o s e l y i n t e g r a t e da ta l ls t a g e so fm o d e r ns o f t w a r ed e v e l o p m e n tp r o c e s s ,b u ti tl a c k so f e f f e c t i v eg u i d a n c ei nt h ed e s i g ns t a g e ad e s i g np a t t e r nd e s c r i b e saf r e q u e n t l y r e c u r r i n gd e s i g np r o b l e ma n dag e n e r a ls o l u t i o n i to p t i m i z e st h es t r u c t u r eo fas y s t e m , b e t t e ro r g a n i z e st h ec l a s s e sa n do b j e c t si nt h es y s t e ma n dr e d u c e st h ec o u p l i n g b e t w e e nt h e m ,s ot h a tt h es y s t e mi se a s yt ob ee x p a n d e da n dr e u s e d d e s i g np a t t e r n r e m e d i e st h es h o r t a g e o fu m l t h e i rc o m b i n a t i o ni st o o lo fs y s t e ma n a l y s i sa n d d e s i g n c o mi st h em a i n s t r e a mc o m p o n e n tt e c h n i q u eu n d e rw i n d o w sp l a t f o r m i t s e x p a n s i o nd i s t r i b u t e dc o mi s f o rn e t w o r kc o m p u t i n ge n v i r o n m e n t t h ep a p e r c o n d u c t e di n d e p t hd i s c u s s i o n so fc o m d c o m ,w h i c hl a y sat e c h n o l o g i c a lb a s i so f t h ed i s t r i b u t e da r c h i t e c t u r eo ft h es y s t e m o nt h eb a s i so ft h ea b o v er e s e a r c h ,e l e v a t o rg r o u pc o n t r o ls i m u l a t i o ns y s t e mi s a n a l y z e d ,d e s i g n e da n di m p l e m e n t e d f i r s t ,t h eu s e r sf u n c t i o n a lr e q u i r e m e n t so f t h e s y s t e m a r es e r i o u s l ya n a l y z e d t h e nt h es y s t e mi sd i v i d e di n t os o m er e l a t i v e i n d e p e n d e n tf u n c t i o n a lm o d u l e s s e c o n d l y , a p p l y i n gu m l a n ds o m ed e s i g np a t t e r n s , s u c ha sf a c t o r ym e t h o d ,a d a p t e ra n da b s t r a c tf a c t o r yt os y s t e ma n a l y s i sa n dd e s i g n ,s o t h es t a t i ca n dd y n a m i cm o d e lo ft h es y s t e mi sb u i l t t h e nd c o mt e c h n o l o g yi su s e d t ob u i l dr e m o t ea l g o r i t h ms e r v e r , w h i c hi sd e p l o y e dt oar e m o t ec o m p u t e ri nt h es a m e n e t w o r k ,s ot h ed i s t r i b u t e ds i m u l a t i o ns y s t e ma r c h i t e c t u r e i sf o r m e d f i n a l l y , t h e p a p e rd i s c u s s i n gh o wt oi m p l e m e n tt h es y s t e ma n dw h a ts o f t w a r et e c h n o l o g i e sa r e n e e d e d t h eu s a g eo ft h es y s t e mi sa l s oe x p l a i n e d k e yw o r d s :e l e v a t o rg r o u pc o n t r o ls i m u l a t i o ns y s t e m ,d e s i g np a t t e r n ,u m l , c o m 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得苤鲞盘堂或其他教育机构的学位或证 书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中 作了明确的说明并表示了谢意。 学位论文作者签名:习考乏签字同期:名刃7 年月乃同 学位论文版权使用授权书 本学位论文作者完全了解苤盗盘鲎有关保留、使用学位论文的规定。 特授权基盗本堂可以将学位论文的全部或部分内容编入有关数据库进行检 索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校 向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在解密后适用本授权说明) 学位论文作者签名: 冽投 答字醐:哆钆月夕,同 刷磁辄窃 签字f :t 期:明年 月夕矿同 , 第一章绪论 第一章绪论 1 1 课题的研究背景与研究现状 1 1 1 电梯群控仿真系统 随着社会的发展,现代化建筑的规模越来越大,大部分的高层建筑中都安置 了多部电梯。如果每台电梯都采用集选控制单独工作的方式运行,将会导致轿厢 聚集,严重影响电梯的工作效率。为了解决这一问题,人们提出了将多台电梯联 合起来组成一个系统,根据乘客情况和每部电梯状态按照某种算法进行统一调度 的方法,即电梯群控系统( e l e v a t o rg r o u pc o n t r o ls y s t e m ,e g c s ) 。电梯群控系 统按照系统设定的服务目标和大楼内实际交通流情况统一管理梯群呼梯信号,优 化调度电梯运行,有效的提高了电梯系统的服务质量和服务效率。电梯群控算法 是电梯群控系统的核心,其优劣决定了电梯系统的服务质量,是目前电梯服务系 统研究的热点之一,群控算法的性能验证也成为一个关键问题。 在实际的电梯群控系统中测试群控算法周期长,费用高,安全性也难以得到 保证,一旦失败,将造成人力、物力的大量浪费。利用计算机仿真技术构建电梯 群控仿真系统,可以为群控算法的验证搭建一个软件平台,从而在确保验证结果 真实准确的同时,也节省了大量的时间和费用。国际上介绍e g c s 仿真技术的文 献很少,市场提供的仿真软件只有e l e v a t e t m ,其源代码对用户是封闭的,且价 格昂贵,不利于使用。国内,华中科技大学的周玮、周明富使用面向对象技术开 发了电梯群控仿真系统【l 】【2 】;华南理工大学的李中华、毛宗源等使用m a t l a b 和面向对象技术开发了电梯群控系统仿真平台【3 】【4 】;苏州大学的孙涌等使用面向 对象技术和u m l 开发了电梯群控仿真软件【5 】。但它们都存在着一些不足:这些 软件通常只用于满足自身的群控算法验证需要,不是通用性的仿真平台,其它人 难以使用。并且,这些软件都是单纯使用面向对象技术建立的,具有面向对象技 术本身的一些缺陷。 1 1 2 面向对象技术及其存在的不足 从软件业的发展历程来看,程序设计方法经历了多次变革,处于不断的演化 和发展过程中。2 0 世纪7 0 年代兴起的结构化程序设计思想采用了模块分解、功 第一章绪论 能抽象和自顶向下、分而治之的方法。能够有效地将一个较复杂的程序系统设计 任务分解成许多易于控制和处理的子程序,便于开发和维护,在当时的软件开发 中占据了统治地位。使用结构化程序设计方法构建的系统是紧耦合的,其复用性 较差,且通常体现在源代码的拷贝复制上。随着软件系统规模的增长和应用领域 的不断拓展,结构化程序设计方法越来越力不从心。2 0 世纪8 0 年代面向对象技 术登上了软件设计、开发的历史舞台,取代了结构化设计方法成为软件设计的主 流。面向对象程序设计方法符合人们在日常生活中的思维习惯,能够从问题本身 来把握应用系统的整体设计。其核心的类和对象概念是客观世界物理实体的反 映,极大的加快了软件设计、开发的速度。面向对象技术具有三大特性:封装性、 多态性和继承性。封装性使接口和实现分离,一个对象的改变不会影响到其他的 对象,一定程度上避免了牵一发而动全身的“水波效应”;继承性保证了源代码 级别软件复用,只要知道已有类的功能和操作接口就可以在现有的系统中使用, 通过派生还可以对已有类进行扩展:多态性提供了一种在运行时绑定具体实现的 机制,大大的提高了软件设计的灵活性。经过2 0 多年的发展面向对象的软件设 计思想已经渗透到计算机软件科学的各个领域,当前大多数的软件系统都是基于 对象技术的,从商用的大型信息系统到航空、航天仿真系统再到网络游戏,处处 都是对象技术的影子。随着新的应用系统进一步大型化、复杂化,对象技术面临 着一些问题【l o 】【1 1 1 。 1 、庞大的类数目和类之间复杂的关联使得面向对象软件设计越来越困难,设计 质量的优劣决定了软件的成败。如何找到相关的对象,以适当的粒度将他们归类, 如何定义类的接口和继承层次,建立对象之间的关系成为了设计人员考虑的焦 点。因此,软件设计模式应运而生,设计模式能够有效的组织类、对象之间的关 系,优化面向对象软件的内部结构,其应用增强了软件的灵活性。 2 、面向对象软件的复用是源代码级的复用,对象是其活动实体,对象的粒度很 小,系统功能越复杂,交互的对象就越多,盘根错节,不易理解和维护。因此, 组件技术得到了发展,组件是一个功能相对独立的模块,通过组件的装配就可以 构建软件系统。 1 1 3 软件设计模式的提出和发展 设计模式起源于建筑领域,建筑师c h r i s t o p h e ra l e x a n d e r 提出了模式的概念: “每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方 案的核心,这样,你就能一次又一次地使用该方案而不必作重复劳动”。尽管 a l e x a n d e r 所指的是城市和建筑模式,但他的思想也同样适用于软件设计模式, 两类模式的核心都在于提供相关问题的解决方案。 2 第一章绪论 在软件领域中,模式被以一种约定的文档形式表现出来,以便于记录、学习 和交流。经验丰富的程序员,可以将他们的知识,通过模式这种更形式化的表述 传承下去,供别的设计者使用。因而,模式可以看作是一种具体化,文档化的经 验和知识。一个模式描述一个软件设计中重复发生的问题,以及该问题的解决方 案的核心。这样,你就能一次又一次地使用该解决方案而不必重复设计。 1 9 9 5 年,e r i cg a m m a 等( g a n go f f o u r , g o f ) 出版了他们的巨著设计模 式:可复用面向对象软件的基础【1 2 】,使得设计模式成为研究的热点。该书共记 录了2 3 种软件设计模式,随着研究的不断深入,软件设计模式的数目也在不断 增加,新的设计模式层出不穷【l3 1 ,面向模式的软件设计方法学( p a t t e mo r i e n t e d a n a l y s i sa n dd e s i g n ,p o a d ) 兴起并发展起来【阵1 6 】。g o f 对设计模式的分类与描 述,使得模式这一概念具体入微,能够被成熟地应用在软件开发之中。设计模式 的使用可以提高软件系统的复用性和扩展性,文献【1 7 】比较了使用和不使用设计模 式时,软件在可维护性和复用性的差别,证明设计模式的应用优化了软件系统的 内部结构,增强了软件的灵活性,适应性。设计模式可以和面向对象软件的重要 建模工具统一建模语言( u n i f i e dm o d e l i n gl a n g u a g e ;u m l ) 很好的结合【1 8 2 1 1 , 因此,在面向对象的软件设计中得到了广泛的应用【2 2 - 2 4 】。 设计模式并没有抛弃对象的概念,它提出了一种类之间,对象之间组合、协 作的方式,最大限度的封装了变化,是对象技术在软件系统内部结构设计方面的 发展。在当前的软件开发中,设计模式发挥着越来越重要的作用,微软、s u n 、 m m 等大型软件公司在其应用程序开发框架中都大量的使用了设计模式。 1 1 4 组件技术及分布式系统结构 组件技术是为了解决系统更大的复杂性而在对象技术的基础上发展起来的, 是一种以较大粒度构造系统体系结构层次的方法。基于组件技术的软件系统以组 件为执行单元,通过组件的协作完成系统功能。组件技术强调二进制模块级的软 件重用和高度的互操作性,侧重于组件的产生和装配,这也是组件程序设计的核 心。组件软件以组件为单元,较之对象粒度更大,结构清晰。由于组件可以单独 测试与更改,软件的整体稳定性和可靠性大大提高。 组件软件的功能要通过组成系统的组件之间的协同工作实现,接口是组件之 间通讯的桥梁,也是组件软件的关键。在同一软件中的组件必须遵从统一的规范 和标准,才能保证组件之间可以进行通讯。从目前的软件发展情况来看,比较成 熟的组件规范为m i c r o s o f t 的组件对象模型( c o m ) 和国际对象管理组织( o r g ) 提出的公用对象请求代理( c o i a ) 。在w i n d o w s 平台上,c o m 比c o 】氇a 更 具优势,m i c r o s o f t 推出了c o m 库,为c o m 组件的开发提供了很好的技术支持。 第一章绪论 c o m 不仅仅提供了组件之间的接口标准,还引入了面向对象的思想,每一个 c o m 组件的实现都是基于对象技术的。 计算机科学的发展使得软件运行的环境不断的变化。传统的软件系统都是单 机的,业务逻辑简单。随着i n t e m e t 的产生和快速发展,软件业务逻辑越来越复 杂,计算量不断增大,软件应用置身于更加广阔的环境中,其规模从局域网发展 到了广域网。一个软件系统需要在不同厂家的网络产品、硬件平台、网络协议异 构环境下运行。传统的对象技术难以适应这种分布式系统结构。组件是分布式系 统的操作单元,是分布式计算发展的基础,组件提供位于操作系统与应用软件之 间的通用服务,屏蔽了网络硬件平台的差异性和操作系统与网络协议的异构性, 使应用软件能够比较平滑地运行于不同平台上。在软件开发中,可以将计算量很 大的组件部署在网络中性能较好的机器上,从而大大提高系统的总体运行效能。 分布式c o m ( d c o m ) 是c o m 的扩展,它可以支持不同计算机上组件与客户 程序之间或者组件之间的相互通讯,这些计算机既可以在局域网内,也可以通过 i n t e m e t 进行连接。d c o m 支持t c p ,u d p ,n e t b i o s 等网络协议,是分布式系 统结构实现的技术保障。 1 2 课题的研究意义 本实验室的电梯群控仿真系统是基于面向对象技术开发的【6 】,其目的是为电 梯群控算法的理论研究提供一个通用的分析、验证平台。历经八年的发展,每届 师兄、师姐都对系统进行了一定程度的改造,但是,原有电梯群控系统单纯使用 对象技术开发,随着软件规模的扩大,暴露出了一些问题。首先、系统缺乏良好 的设计,体积庞大,各个类紧密的耦合在一起。系统功能上的一点改造会牵扯到 大量相关代码的改变,软件的维护性、扩展性差。其次、原系统以单一的可执行 程序实现,程序过于复杂,难于理解。再次、原系统所有的功能都由单台计算机 完成,既需要处理复杂的电梯业务逻辑,完成与用户的交互,还要执行群控算法 并在仿真过程中储存重要的运行数据。随着群控算法复杂和计算量不断增大,单 机越来越难以负荷,仿真的过程很长,有些算法的执行由于需要调用m a t l a b 引擎,仿真一次需要一个小时的时间,给群控算法的验证带来了很大不便。 针对这些问题,课题将设计模式、组件技术和分布式体系结构引入到新版电 梯群控仿真系统的设计与实现中。通过对电梯群控仿真系统的需求分析,将其划 分为几个相互独立,又紧密联系的功能组件。使系统的物理结构更加合理,解决 了单纯采用对象技术时系统体积庞大的问题,便于理解和维护。设计模式是面向 对象软件设计中重复出现问题的优秀解决方案,能够合理、有效的组织每个组件 4 第一章绪论 中的类和对象,是组件内部结构的优化,提高了每个组件的灵活性。为了实现分 布式的系统体系结构,使用d c o m 技术开发了远程算法服务器,与主仿真环境 分别部署在网络中的不同主机上,大大减少了仿真所需的时间,提高了系统的整 体运行效率,能够适应日趋复杂的群控算法仿真的需要。 设计模式、组件思想和分布式技术是现在乃至未来软件发展的大势所趋,课 题在这方面做出了实践性的探索和尝试,设计并实现了电梯群控仿真系统,为群 控算法的理论研究提供了一个通用性的软件验证平台,具有一定的实用价值。 1 3 课题的研究内容及创新点 针对电梯群控系统的特点,本课题将设计模式、组件思想和分布式体系结构 引入到电梯群控仿真系统的分析、设计与开发过程中,并结合具体的软件开发技 术和工具最终完成了仿真系统的开发。 课题的主要研究内容如下: ( 1 ) 深入分析u m l 和软件设计模式,探讨u m l 与现代软件开发过程各个阶段 的结合,针对u m l 在系统设计时缺乏指导的不足,引入了软件设计模式的 指导。两者的结合及在电梯群控仿真系统设计中的具体应用是本课题的创新 点之一。 ( 2 ) 研究c o m ,理解其核心概念,深入掌握c o m 技术。在c o m 的基础上,进 一步研究其在分布式运算环境下的扩展d c o m ,进而以d c o m 技术为依托, 实现远程群控算法服务器,搭建电梯群控仿真系统的分布式体系结构,是本 课题的创新点之二。 ( 3 ) 分析电梯群控系统的特点,详细整理用户对电梯群控仿真系统的功能需求, 将系统划分为几个相对独立的功能组件。结合u m l 以及抽象工厂、适配器 和工厂方法等几种具体的设计模式,建立系统的静态和动态模型。以d c o m 技术为基础,开发群控算法组件并部署在网络中的其它主机上,提高了系统 的运行效率。最后,将系统设计结果与微软基础类库( m f c ) ,开放式的图 形语言( o p e n g l ) ,活动模版库( a t 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 能够有力地支 持从需求分析开始的现代软件开发的全过程,因此,电梯群控仿真系统以u m l 为建模工具。 但是,u m l 只是一种建模方法的表示,在系统设计阶段缺乏有效的指导, 设计者凭借自身经验进行系统设计,无法保证设计质量。设计模式记录了优秀的 软件设计思想,能够很好指导u m l 进行系统设计。两者的结合,有助于建立更 加灵活、可复用的电梯群控系统仿真模型。 2 1 统一建模语言( u m l ) 2 1 11 m i ,概述 u m l 统一了g r a d yb o o t h , j a m e sr u m b a u g h 和i v a rj a c o b s o n 三位面向对象大 师的表示方法,而且对其作了进一步的发展。1 9 9 7 年u m l l 1 版正式被国际对 象管理组织( o b j e c tm a n a g e m e n tg r o u p ,o m g ) 采纳为面向对象的标准建模语言, 成为软件工业界事实上的标准。现在u m l 仍处于不断的发展和完善过程中,最 近o m g 正式批准了u m l 2 0 版。 u m l 的定义包括u m l 语义和u m l 表示法两个部分: ( 1 ) u m l 语义:描述基于u m l 的精确元模型定义。元模型为u m l 的所有 元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义 上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外u m l 还支持 对元模型的扩展定义。 ( 2 ) u m l 表示法:定义u m l 符号的表示法,为开发者或开发工具使用这些 图形符号和文本语法进行系统建模提供了标准。这些图形符号和文字所表达的是 应用级的模型,在语义上它是u m l 元模型的实例。 6 第二章统一建模语言和设计模式 2 1 2u m l 与系统建模 u m l 通过图形化的表示机制从多个侧面对系统的逻辑模型和物理模型进行 刻画【4 0 】【4 2 1 。建立系统逻辑模型的过程大致分为三步:第一步描述需求,第二步 根据需求建立系统的静态结构,第三步是描述系统的行为。其中在第一步与第二 步中所建立的模型都是静态的,可用三种图来描述,即用例图、类图、对象图, 属于u m l 的结构建模机制,即静态建模。而第三步中所建立的模型或者可以执 行,或者表示执行时的时序状态或交互关系,可用状态图、活动图、顺序图和协 作图等四种图来描述,属于u m l 的行为建模机制,即动态建模。系统的物理模 型由u m l 构件图和部署图描述。 一、u m l 静态建模 用例图 用例图从外部用户的角度描述系统的功能,并指出功能的执行者。它帮助分 析人员理解系统的行为,是对系统功能的宏观描述。用例定义了用户过渡到应用 程序所需的步骤,一个完整的系统通常包含若干个用例,每个用例代表系统所能 提供的一项功能。用例由参与者发起,参与者能够从用例的执行中获得有价值的 事务。 静态视图 静态视图包括包图、类图和对象图。包图是一些相互关联的u m l 模型元素 的组合:类图描述了系统的静态结构,是构建系统其他视图的基础,类图表示了 系统中的类的属性和操作,以及类之间的关联,这些关联包括聚集、组合、泛化 等。对象是类的实例,同样,对象图是类图一个实例,描述了处于某种状态或某 一时间段内系统中活跃的对象及其关系,对象是系统的活动主体。 二、u m l 动态建模 行为图 行为图描述系统的动态模型和组成对象间的交互关系,包括状态图和活动 图。状态图描述对象所有可能的状态,每个状态下能够响应的事件,以及事件发 生时的状态迁移与响应动作。活动图描述系统为完成某项功能而执行的操作序 列,这些操作序列可以并发和同步。活动图中包含控制和信息流,控制流表示一 个操作完成后对其后操作的触发,信息流则刻画操作之间的信息交换。 交互图 交互图描述对象之间的消息传递,包含顺序图和协作图两种形式。顺序图强 调对象之间消息发送的时间上的先后顺序;协作图则强调对象间的动态协作关 系。 第二章统一建模语言和设计模式 三、物理模型的建立 实现图 实现图描述系统的具体实现,包括构件图和部署图。构件图描述系统中部件 的物理结构,以及各部件之间的依赖关系和交互方式。一个构件可能是一段资源 代码、一个二进制构件或一个可执行程序。 部署图定义了系统中软、硬件的物理体系结构。它可以显示实际的计算机和 设备( 用节点表示) 以及它们之间的连接关系,也可显示连接的类型及部件之间 的依赖性。在节点内部,放置可执行部件和对象以显示节点与可执行软件单元的 对应关系。 2 1 3u m l 与软件开发过程 软件开发过程主要分成五个段:需求收集、分析、设计、开发和部署。现代 软件工程强调开发阶段的无缝集成,需求收集、系统分析和设计常常需要往返进 行,从而为开发提供坚实的基础【4 3 】。u m l 是独立于软件开发过程的,它能够在 几乎任何一种软件开发过程中使用。下面分析u m l 各语言要素在电梯群控仿真 系统软件开发过程不同阶段中的应用。 需求收集 对客户需求的深入理解是构造正确软件系统的基础。不同的客户处于不同的 领域中,首先,要对客户所处的领域有一定的了解,搞清楚客户想要软件系统解 决的问题。要构造电梯群控仿真系统就必须熟悉电梯领域的一些术语,理解用户 对仿真系统的功能要求。 1 、发现领域过程 开发过程的起点是获得对电梯群控业务过程的理解,特别是获得要使用该 仿真系统的客户的理解,使用电梯领域术语绘制u m l 的活动图表示客户业务 过程。 2 、领域分析 深刻理解电梯领域中的主要实体,为每一个业务实体建立一个类,确定类 的属性和操作,绘制出仿真系统的u m l 类图。 3 、发现系统需求 理解上一步中得到的业务类之间的关系,细化类图,添加关联、组合、泛 化、聚集以及抽象类等元素。 分析 在这一段里,深入研究需求段获得结果并增进对实际电梯群控系统的理解。 1 、理解系统的用法 第二章统一建模语言和设计模式 从用户的角度进行用例分析,找出发起每个用例的参与者以及从用例中 获益的参与者,使用u m l 完成仿真系统用例图的绘制。 2 、分析对象的状态变化 绘制u m l 状态图,展示仿真系统中业务对象状态的变化。 3 、定义对象之间的交互 有了用例图和细化的类图后,开发一组顺序图和协作图来描绘对象之间 的交互。 设计 使用分析段的结果设计电梯群控仿真系统的解决方案,设计段和分析段往返 进行直到完成系统设计。 1 、开发和细化对象图:根据类图产生对象图,检查业务对象的每个操作,开发 出对应操作的活动图来充实对象图,活动图是开发段中编码的基础。 2 、开发构件图:绘制构件图,描绘电梯群控仿真系统功能构件的划分,以及构 件之间的关系。 3 、制定部署计划:决定每个构件所处的计算机或其他硬件设备,完成系统部署 图。 4 、设计和开发用户界面:用户界面是用户与仿真系统交互的桥梁,应当保证系 统所有用例的完成。 开发 该段由程序员负责,根据掌握的类图、对象图、活动图和构件图,与具体的 软件开发技术相结合,编制实现系统的代码,构建用户界面到代码的连接,进行 软件测试,完成软件开发文档。 部署 该段将开发完成后的系统部署到适当的硬件上运行并实现与协同系统的集 成,对安装后的系统进行测试。 2 2 设计模式 2 2 1 设计模式的含义 在软件的设计过程中,设计者会碰到各种各样的问题。对于有经验的设计者 而言,会发现某些设计问题总是重复出现,根据以往的设计经验,复用经过多次 验证的解决方案。对于特定的设计问题,这些解决方案使系统设计更加灵活,复 用性更好。为了交流设计者的这些设计经验,人们开始将特定的设计问题及其解 9 第二章统一建模语言和设计模式 决方案记录下来,这就是设计模式。该解决方案包括一组结构成分,各成分的职 责、相互关系,以及各成分之间的协作过程。 设计模式使人们可以更加简单方便地复用成功的设计和体系结构,提供了一 种设计层次上的通用语言,有助于新的开发者更加容易地理解软件的设计思路。 此外,设计模式还可以提高软件设计的文档管理和系统维护的有效性。总之,设 计模式可以帮助设计者更快更好地完成系统设计。 2 2 2 设计模式的原则 设计模式的目标是增强代码的可复用性,可维护性。为了实现这个目标需要 遵循一定的原则,所有的设计模式都是下述一条或几条规则的具体实现形式。 开闭原则 一个设计良好的软件系统对扩展应该是开放的,对修改应该关闭。即系统能 够在不修改原有源代码的情况下,实现功能扩展,从而避免对源代码修改所引发 连锁反应。实现开闭原则的关键就是抽象化,不允许修改抽象的类或接口,允许 扩展的是具体的实现类。 可变性封闭原则 找到系统中经常变化的部分,把它同系统中固定不变的部分分离并封装起 来,使其独立于固定部分而变化。 里氏代换原则 父类可以出现的地方,子类一定可以出现。里氏代换原则是对开闭原则的补 充:实现开闭原则的关键是抽象化,而在面向对象技术中,父类与子类的继承关 系就是抽象化的具体体现,里氏代换原则是实现抽象化的具体步骤和规范。 依赖倒置原则 要依赖于抽象,不要依赖于实现。看上去依赖倒置原则与开闭原则有很大的 相似之处,实际上,它们是目标与手段的关系。开闭原则是目标,而达到这一目 标的需要依靠依赖倒置原则。 组合聚集复用原则 要尽量使用组合聚集,而不是继承关系达到复用的目的。组合聚集复用原 则是与里氏代换原则相辅相成的,两者又都是实现开闭原则的具体步骤的规范。 前者要求设计师首先考虑组合聚集关系,后者要求在使用集成关系时,必须确 定这个关系是符合一定条件的。 迪米特法则 一个软件实体应当与尽可能少的其他实体发生相互作用。当一个系统面临功 能扩展的时候,其中会有一些模块,它们需要修改的压力比其它_ 些模块要大。 1 0 第二章统一建模语言和设计模式 但是不论这些模块最终是否需要更改,如果它们是相对孤立的,那么就不会将修 改的压力传递给其他的模块。 接口隔离原则 应当为客户端提供尽可能小的单独的接口,而不要提供大的总接口。接口隔 离原则与迪米特法则都是软件实体之间的通信限制。迪米特法则要求尽可能的限 制通信的宽度和深度,接口隔离原则所限制的是通信的宽度。 2 2 3 设计模式的描述和选择 一、设计模式的描述方式 设计模式是优秀软件设计思想的文档化表示,一般而言,一个设计模式包含 四个基本要素: 1 模式名称。一个助记名,它用一两个词来描述模式的问题、解决方案和效果。 设计模式允许我们在较高的抽象层次上进行设计,基于一个模式名称组成的 词汇表,设计人员可以方便的交流设计思想及设计结果。 2 问题,描述该模式能够解决的问题。解释了设计问题和问题存在的前因后果, 它可能描述了特定的设计问题,也可能描述了导致不灵活设计的类或对象的 结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3 解决方案。描述了设计的组成成分,它们之间的相互关系及各自的职责和协 作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并 不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样 用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 4 效果,描述了模式应用的效果及使用模式应权衡的问题。软件效果大多关注 对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象 设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性 的影响,显式地列出这些效果对理解和评价这些模式很有帮助。 二、设计模式的选择 只是设计模式一书就提供了2 3 种典型的设计模式,随着设计模式研究 的不断深入,现在已经有7 0 0 多种成熟的设计模式,下面给出选择合适设计模式 的一些方法: 1 、考虑设计模式是怎样解决设计问题的:设计模式可以帮助开发者找到合适的 对象、决定对象的粒度、指定对象的接口等。 2 、浏览模式的意图部分:通读模式的意图部分,可以找出与问题相关的一个或 多个模式,使用分类方法来缩小搜索的范围。 3 、研究模式怎样互相关联:研究模式之间的关系可以指导开发者获得合适的模 第二章统一建模语言和设计模式 式或模式组。 4 、研究目的相似的模式:根据文档中有关模式的介绍、比较和对照,分析具有 相似目的的模式之间的共同点和不同点。 5 、检查重新设计的原因:检查可能引起重新设计的各种原因,看问题是否与之 相关,找出哪些模式可以帮助避免这些会导致重新设计的因素。 6 、考虑设计中哪些是可变的:该方法与关注引起重新设计的原因正好相反。它 不是考虑什么会迫使设计改变,而是考虑想要什么变化却不引起重新设计。 2 3 设计模式对u m l 的指导 尽管使用设计模式有助于建立一个强健的、可复用的软件系统,但设计模式 目前的研究更多地是在归纳总结以前的设计思想,如何才能在实际设计中应用以 及怎样应用始终是一个问题。u m l 提供了一套标准的系统建模语言,同时也是 描述设计模式的重要方法。如果能把设计模式的思想融入到u m l 建模中,不仅 可以更大发挥两者的作用,也为设计模式在面向对象系统设计中的具体应用提供 了思路。 u m l 有着很强的表现力,可以精确而方便地表达设计意图,但它只是一种 建模方法的表示,在进行系统设计时缺乏有效地指导。设计模式是经过实践反复 验证的特定软件设计问题的通用解决方案,是一种设计思想。u m l 和设计模式 都是面向对象技术的产物,u m l 是工具,设计模式是方法,两者可以很好的结 合,从而避免了在繁多的u m l 的细节上花费过多的工夫,使得设计人员的交流 更加通畅,有效的弥补u m l 缺乏设计方法支持的不足。在电梯群控仿真系统的 设计过程中使用设计模式,能够优化系统结构,增强系统的可维护性、复用性。 使用设计模式指导u m l 建模需要如下步骤: 1 理解应用问题和需求,选择恰当设计模式 2 分析模式结构图,确定模式参与者和协作者之间的关系 3 参照模式结构图定义类,完成u m l 类图的粗绘 4 添加类的属性和方法,细化u m l 类图 2 4 小结 本章首先对广泛应用于面向对象软件的重要建模工具u m l 进行了论述,介 绍了u m l 产生的背景、定义及其标准化历程。探讨了u m l 的静、动态建模机 制,分析了u m l 各类视图的应用。 1 2 第二章统一建模语言和设计模式 针对u m l 在系统设计时缺乏有效指导的不足,将记录了优秀设计思想的设 计模式与之相结合,有助于系统结构的优化。概述了设计模式的定义和原则,这 些原则构成了设计模式的基础,虽然设计模式的数量不断增多,但是“万变不离 其宗”,所有的模式都是一条或多条原则的具体表现形式。 在本章的最后,探讨了设计模式与u m l 的具体结合方法,为电梯群控仿真 系统的分析和设计提供了工具帮助。 第三章组件对象模型 第三章组件对象模型 电梯群控仿真系统是一个复杂的大型软件系统,如果实现为单一的可执行程 序,系统会变得很臃肿,不易维护。依据组件化程序设计思想,可以将系统划分 成几个相对独立的功能组件,组件之间通过接口协同工作。为此,组件应该遵从 一个统一的接口标准。在w i n d o w s 平台下,组件对象模型( c o m ) 就是一个公 认的组件标准,它不仅仅提供了组件之间的接口规范,还为组件开发提供了技术 支持。本章对c o m 及其扩展分布式c o m 进行分析。 3 1c o m 规范与实现 c o m 不仅为组件软件和应用程序之间进行通信提供了统一的标准,也为组 件提供了一个面向对象的活动环境。 c o m 标准包括规范和实现两大部分,规范部分定义了组件和组件之间通信 的机制,这些规范不依赖于任何特定的语言和操作系统;c o m 标准的实现部分 是c o m 库,它为c o m 规范的具体实现提供了一些核心服务。 3 1 1c o m 接口与对象 一、c o m 接口 c o m 规范的核心内容是接口的定义,接口是一组逻辑上相关的函数集合。 在c o m 模型中,对象本身对于客户来说是不可见的,客户在请求组件服务时, 只能通过接口进行。c o m 接口由一个1 2 8 位的全局唯一标识符( g l o b a l l yu n i q u e i d e n t i f i e r , g u i d ) 来标识,称为l i d ( i n t e r f a c ei d e n t i f i c a t i o n ) ,客户通过g u i d 获 得接口的指针,再通过接口指针,客户就可以调用其相应的成员函数。 图4 1c o m 接口模型 1 4 第三章组件对象模型 为了实现语言无关性,c o m 规范有自己的接口描述语言( i n t e r f a c ed e s c r i p t i o n l a n g u a g e ,i d l ) ,i d l 是一种不依赖于任何程序设计语言的接口描述方法,是组 件程序与客户程序之间的通信规范。c o m 接口具有如下的特点: 二进制特性 接口规范并不建立在任何编程语言的基础上,而是规定了二进制一级的标 准。任何语言只要有足够的数据表达能力,就可以对接口进行描述,从而

温馨提示

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

评论

0/150

提交评论