已阅读5页,还剩59页未读, 继续免费阅读
(测试计量技术及仪器专业论文)基于net平台的分布式实时组态软件系统的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
硕士学位论文 摘要 实时系统在现代工商业中发挥着重要的作用。它是企业级软件平台的下层系统,是保障着 工业生产、商业流程的顺利进行的基础,同时也是上层管理系统的重要输入数据来源之一, 并且接受上层管理系统的信息反馈。在分布式的网络环境中构筑起来的实时系统称为分布式 实时系统。针对某一特定应用场合开发的分布式实时系统称为定制分布式实时系统,不具有 通用性。而具有很强的通用性的可组态的分布式实时系统能摆脱针对每一个特定应用场合编 制相应一套实时软件的传统方式,提高实时系统软件通用性,强化复用技术以减少重复劳动。 本文介绍了一种作者研发的建立在n e t 平台上的分布式实时组态软件系统的设计和实 现,该软件具有很高的通用性、复用性和全面的开放性,通过给用户提供一个自定义的空间, 并规范其定义行为就能针对不同的应用场合快速搭建起一套适用的分布式实时系统。 本文从介绍面向对象的技术入手,对该系统进行了面向对象的分析和设计。按实现功能分 该系统共有组态部分、运行部分和扩展部分三个部分。其中系统的核心是运行部分的实时数 据库,之所以称之为实时数据库是因为它的数据均保存在内存中,因此具有很高的响应速度, 本文所说的实时数据库是狭义上的,内部只保持一个相位时刻的数据。它负责实时采集数据、 处理数据( 包括与数据库的交互) 、下传控制信息、为运行在分布式网络环境中的外部软件 提供实时读写自身数据的接口,并且将自身发生的事件及时通知客户程序。 本文最后从面向对象的编程角度,对本次开发的分布式实时组态软件中使用的核心技术及 实现模式进行了详细地讨论。 本文作者在开发实践中,体会到使用面向对象的技术和n e t 平台支持的软件系统比之以 往的同类软件具备更高的可靠性、可重载性和可扩充性。相信n e t 平台、面向对象的技术在 实时软件领域中将有很好的应用前景。 关键词:组态软件分布式n e t 实时数据库 硕士学位论文 a b s t r a c t r e a l t i m es y s t e mp l a y sv e r yi m p o r t a n tf u n c t i o no ne n s u r i n gt h er i g h tp r o c e s so f i n d u s t r ym a n u f a c t u r ea n db u s i n e s s a c t i o n i ti st h eb a s eo fe n t e r p r i s es o f t w a r e s y s t e m a tt h es a m et i m e ,i ti so n eo fi m p o r t a n ti n p u t i n gd a t as o u r c e st ou p p e rm a n a g i n g s o f t w a r es y s t e ma n da c c e p t e df e e d b a c kf r o mt h eu p p e rm a n a g i n gs o f t w a r es y s t e m t h ec u s t o m b u i i ts o f t w a r ew h i c hi sd e v e l o p e df o rac e r t a i no c c a s i o nh a sn og e n e r a l a p p l i c a b i l i t yw b i l ec o n f i g u r a b l es y s t e mh a sg e n e r a la p p l i c a b i l i t ya n d i sa b l et o b r e a ka w a yf r o mt r a d i t i o n a lm e t h o db yw h i c hs y s t e mi sd e v e l o p e df o re v e r yd i f f e r e n t o c c a s i o n i nt h i sp a p e r ,id e s c r i b ed i s t r i b u t e dr e a l t i m ec o n f i g u r a b l es y s t e mw h o s e c o r ei sar e a l t i m ec o n f i g u r a b l ed a t a b a s e a tt h es a m et i m e ,ip r o v i d et h ed e s i g n m e n t a l i t yo ft h i ss y s t e ma n dt h er e a l i z a t i o nb a s e do nm i c r o s o f t n e tp l a t f o r m t h e s y s t e mi sg e n e r a a n dp o s s e s s e sc o m p r e h e n s i v eo p e n n e s s i nt h i sp a p e rt h eo b j e c t o r i e n t e dt e c h n o l o g yi sf i r s ti n t r o d u c e d ,t h e n t h e s y s t e m i s a n a l y s e da n dd e s i g n e du s i n go b j e c t o r i e n t e dt e c h n o l o g y t h es y s t e m i s c o m p o n e n tw i t ht h r e ep a r t st h a ti sc o n f i g u r a t i o np a r t ,r u n n i n gp a r ta n de x t e n d e dp a r t t h es y s t e m a ti cc o r eist h er e a ld a t a b a s ei nr u n n i n gp a r t a t l a s t ,t h ec o r et e c h n o l o g ya n dr e a l i z a t i o np a t t e r nu s i n g i nt h e s y s t e m i s d e t a i l e dd i s c u s s e di nt h i sp a p e rf r o mt h eo b j e c t o r i e n t e dp r o g r a m m i n gp o i n to fv i e w k e y w o r d :c o n f i g u r a b l es o f t w a r e ;d i s t r i b u t e d ;n e t ;r e a ld a t a b a s e 东南大学学位论文 独创性声明及使用授权的说明 、s 6 1 3 1 3 一、学位论文独创性声明 本人声明所呈交的学位论文是我个人在导师指导下进行的研究t 作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或 撰写过的研究成果,也不包含为获得东南夫学或其它教育机构的学位或证书而使用过的材 料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了 谢意。 签名:瓣嗍:兰蝴:三 二、关于学位论文使用授权的说明 东南大学、中国科学技术信息研究所、国家图书馆有权保留本人所送交学位论文的复 印件和电子文档,可以采用影印、缩印或其他复制手段保存论文。本人电子文档的内容和 纸质论文的内容相一致。除在保密期内的保密论文外允许论文被查阅和借阅,可以公布( 包 括刊登) 论文的全部或部分内容。论文的公布( 包括刊登) 授权东南大学研究生院办理。 签名:竭堑肇师签妪性) j 日期:鲨! :! ! ! 硕士学位论文 第一章绪论 1 1选题的背景及意义 一、实时组态软件概念 实时系统在现代工商业中发挥着重要的作用,特别在流程连续的生成过程行业可谓不可或 缺。它是企业级软件平台的下层系统,是保障着工业生产、商业流程的顺利进行的基础,同 时也是上层管理系统的重要输入数据来源之一,并且接受上层管理系统的信息反馈。 在开发传统的实时系统例如工控软件系统时,当工业被控对象一旦有变动,就必须修改其 控制系统的源程序,导致其开发周期长;已开发成功的工控软件又由于每个控制项目的不同 而使其重复使用率很低,导致它的价格非常昂贵:在修改工控软件的源程序时,倘若原来的 编程人员因工作变动而离去时,则必须同其他人员或新手进行源程序的修改,因而更是相当 困难,传统的工业控制软件已无法满足用户的各种需求。 通用工控组态软件的出现为解决上述实际工程问题提供了一种崭新的方法,因为它能够很 好地解决传统工业控制软件存在的种种问题,使用户能针对实际的控制对象特点和控制目的 的任意组态,完成最终的自动化控制工程。 组态的概念来自英文c o n f i g u r a t i o n ,含义是使用软件工具对计算机及软件的各种资源进行 配置,达到使计算机或软件按照预先设置,自动执行特定任务,满足使用者要求的目的。田 勇在实时数据库的应用与特点 3 中总结了实时组态软件主要特点 延续性和可扩充性。 用实时组态软件开发的应用程序,当生成流程或用户需求发生改变时,不需作很多修 改而方便地完成软件的更新和升级。 封装性。 实时软件所能完成的功能都用一种方便用户使用的方法包装起来,对于用户,不需掌 握太多的编程语言技术( 甚至不需要编程技术) ,就能很好地完成一个复杂工程所要求的所 有功能。 通用性。 每个用户根据工程实际情况,利用实时组态软件提供的封装模块就能针对不同的应用 场合快速搭建起一套适用的实时系统。 二、实时组态软件的历史 组态的概念是伴随集散控制系统( d i s t r i b u t e dc o n t r o ls y s t e m ,d c s ) 的出现才开始被广大实 时系统开发,实施技术人员所熟知。d c s 实质是利用计算机技术对生产过程进行集中监视、 操作、管理和分散控制,实现危险分散。由于每一套d c s 都是比较通用的控制系统,可以应 用到很多不同的场合,为了使用户在不需要编代码程序的情况下,便可以生成适合自己需求 的应用系统,每个d c s 厂商在d c s 中都预装了系统软件和应用软件,而其中的应用软件, 实际上就是组态软件,但一直没有人给出明确的定义,只是将使用这种应用软件设计生成目 标应用系统的过程称为“组态”。世界上第一个把工控组态软件作为商品进行开发,销售的专 业软件公司是美国的w o n d e r w a r e 公司,它于8 0 年代末率先推出第一个商品化的监控组态软 件i n t o u e h 。此后组态软件得到了蓬勃发展,目前世界上的组态软件有几十种之多,总装机 量有几十万套。伴随着信息化社会的到来,组态软件在社会信息化进程中将扮演越来越重要 的角色。 三、开发分布式实时组态软件的意义 1 硕士学位论文 目前,国内外市场所能提供的组态软件主要分为两类:一类是由国外厂商设计提供的组 态软件,例如f i x 、文献 1 2 介绍的i n t o u c h 、文献 8 介绍的w i n c c 、l a b v i e w 等;另一类 是由国内厂商提供的组态软件,例如力控、组态王、文献 1 0 介绍的的世纪星等。虽然前者 较后者功能强大,但人机交互不符合中国国情,且价格是后者价格的1 0 倍甚至几十倍,因此 通常仅用于较大规模的工程项目中。而对于占市场份额较多的中小规模工程项目,使用国内 开发的组态软件是比较经济的选择。然而在软件的整体设计上来看,国内开发的组态软件在 设计上或多或少还存在以下不足: 1 分布式处理的接口设计的不够合理。 比如文献 4 ,文献 5 中提出的设计思路仅仅只是适合于单机处理,并没有考虑网络环境 下的联机通讯。而文献 1 中提出的设计思路虽然适用于分布式处理,但是由于它采用共 享内存的接口方式,并且暴露给客户端的接口与共享内存中的数据存储形式存在紧密耦 合,因此当共享内存中的数据存储形式方式变化时,需要改动客户端程序。 2 系统的开放性和扩展性不够。 比如文献 2 ,文献 6 提出的设计仅仅是将系统中现有的模块进行组合,并适当修改各个 系统模块的参数来达到实现通用的目的。显然在设计之初不可能想到所有的应用场合,因 此仅仅通过现有模块的排列组合是不能满足所有的应用的。而文献 9 ,文献 1 1 ,文献 1 3 中提出的解决方案虽然允许用户添加自定义的模块,但是这些自定义的模块必须使用 脚本语言编写,而受脚本语言的限制自定义模块的功能和执行速度都不会很理想。国产的 组态王组态软件允许用户添加符合c o m 接口规范的自定义的模块,但是c o m 接口规范对用 户来说过于复杂。 本文介绍了一种在分布式的网络环境中构筑起来的可组态的实时系统,称为分布式实时组 态系统的分析、设计、以及基于m i c r o s o f t n e t 平台的实现。该系统是作者自主研发的组态软 件系统,研发可组态的分布式实时系统主要目的是摆脱针对每一个特定应用场合编制相应一 套实时软件的传统方式,提高实时系统软件通用性,强化复用技术以减少重复劳动。在设计 时尽量改善了上面所述的两点不足之处,理论上能适用大多数实时应用场合。通过给用户提 供一个自定义的空间,并规范其定义行为就能针对不同的应用场合快速搭建起一套适用的分 布式实时系统。 因为该软件系统不是定制系统而是一个比较通用的平台软件系统,因而加以完善后可以 包装成商品化软件进行批量生产。该系统主要定位于中小企业的应用,可以应用在实时控制、 实时监控、实时仿真等实时领域。它相对于昂贵的国外类似的系统来说拥有自主的知识产权 和符合国内中小企业需求的功能以及较好的性价比。 1 2系统的总体技术特点 该分布式实时组态系统具有很高的通用性、复用性和全面的开放性。 称该系统是实时系统是因为: 系统的核心部分是一个实时数据库。之所以称之为实时 数据库是因为它的数据均保存在内存中,因此具有很高的响应速度,本文所说的实时数据库 是狭义上的,内部只保持一个相位时刻的数据。它负责实时采集数据、处理数据( 包括与数据 库的交互) 、下传控制信息、为运行在分布式网络环境中的客户程序提供实时读写自身数据的 接口,并且将自身发生的事件及时通知客户程序。详细的设计和实现说明请看3 3 章节的实时 数据库设计部分和4 3 章节的实时数据库实现部分。 系统对外暴露的接口是实时性的接口。 它实时的从驻留在内存中的实时数据库里提取适当的实时数据提供给客户,由于直接在内存 2 硕士学位论文 操作其响应速度可以达到很快。其提供数据的方式有两种,其一:由客户主动发起查询请求。 其二:由实时数据库主动将一些内部事件通知连接到它上面的客户。详细的设计和实现说明 请看3 3 章节的数据访问接口设计部分和4 3 章节的数据访问接口实现部分。 系统的扩展模 块采用像c # 这样的高级语言编写,相对于脚本语言执行速度更快,进一步加快了系统实时响 应速度。详细的设计和实现说明请看3 4 ,4 4 章节 称该系统是分布式系统是因为: 系统对外暴露的接口是分布式的接口,并且具有位置 透明性。客户通过该接口可以访问网络中任意一台计算机的实时数据库中的数据( 该计算机必 须有实时数据库在运行) ,而不必考虑数据所在的实时数据库的具体位置,就好像实时数据库 驻留在本地一样。同时不同的实时数据库之间也能相互获取对方的实时数据,从而能实现分 布式计算。详细的设计和实现说明请看3 3 章节的数据访问接口设计部分和4 3 章节的数据访 问接口实现部分。 系统的组态信息完全存储在关系数据库中。因为关系数据库本身提供分 布式的访问功能,所以系统的组态部分能够实现远程组态,系统的运行部分能够实现远程初 始化。详细的设计和实现说明请看3 2 ,3 3 ,4 2 ,4 3 章节。 称该系统是组态系统是因为系统运行时需处理的数据以及对数据进行处理的算法是由储 存在关系数据库中的组态信息决定的,用户事先通过系统提供的组态工具对具体的应用场合 进行组态,从而决定系统运行时的行为方式,所以系统具有很强的通用性。系统的组态工具 将可重用的模块用图形化的方式呈现给用户,用户可以用图形化的方式定义可重用模块的排 列组合方式以及参数的设置从而定义系统的组态信息,体现了系统的复用性,详细的设计和 实现说明请看3 2 ,4 2 章节。系统还允许用户往系统中加入自己定制的可重用模块,从而实现 系统功能的扩展,详细的设计和实现说明请看3 4 ,4 4 章节 圣1 3 论文内容 本论文围绕开发的分布式实时组态系统进行叙述,主要介绍以下几个方面的内容: 1 1 讨论了面向对象技术和使用统一建模语言( u m l ) 进行系统建模的方法,以及在面向对象的 分析与设计过程中常用的设计模式,这些是该分布式实时组态系统分析设计的理论基础。 2 1 对m i c r o s o f t n e t 平台做了介绍,这些是该分布式实时组态系统的实现基础。 3 1 介绍了本分布式实时组态系统的整体设计思想,对系统按功能进行了划分,对各部分的功 能作了详细的讨论。 4 1 根据系统的整体设计思想,对各部分功能的具体实现作了详尽的介绍,尤其是对系统底层 核心实时数据库部分的实现机制做了深入的探讨。 第二章面向对象技术 2 1 面向对象的基本概念 长期以来,人们一直在设法争取问题空间同求解空间在结构上尽可能的一致,也就是使 我们分析、设计和实现系统的方法同我们认识客观世界的过程尽可能地一致。而这正是面向 对象方法学的出发点和所追求的基本原则。 面向对象是一种认知方法学 2 1 】。它既提供了从一般到特殊的演绎手段( 如继承等) ,又提 供了从特殊到一般的归纳形式( 如类等) 。面向对象也是一种程序设计方法学。它基于信息隐 蔽和抽象数据类型概念,把系统中所有的资源,如数据、模块以及系统都看成“对象”,每个 对象封装资料和方法,而方法实施对资料的处理。由于面向对象技术是解决软件危机的突破 口之一,因而引起计算机界极大地重视。当前计算机正朝着分布式处理、并行处理、网络化 和软件生产工程化的方向发展,而面向对象技术作为实施这些目标的关键技术之一,显然同 3 坝士学位论又 计算机领域的总体发展相一致的,因而得到了广泛的应用。它相对于面向过程技术来说其主 要优势如下: 1 ) 面向对象方法从应用领域的术语和概念角度进行分析、设计和实施,所以在实施内容和现 实问题之间有密切联系。例如:在汽车交易的案例中,系统分析、设计的各个阶段甚至在实 现阶段都有顾客,推销等人员的参与。 2 ) 在新应用实现过程中,面向对象方法可提供对象复用。这对长期开发费用降低具有非常重 要的意义。例如,某顾客进行某项操作的行为建模之后,任何顾客的这种行为都可以使用己 创建的模型。 3 ) 由于可以复用对象,错误和维护可产生的问题即可大大减少。因为,该对象已经试验和测 试完成。 4 ) 对象的复用能减短软件设计和开发的时间。 5 ) 由于面向对象方法和人类思维方法一致,所以有助于保证人类认知能力的工作。 6 ) 面向对象方法使用数据封装,可解决一些和数据相关的开发和维护问题。数据封装技术, 通过仅允许功能调用处理数据集来保证数据不受错误代码操作影响,从而保证数据的有效性。 7 ) 面向对象的分析和设计有助于处理软件开发的复杂性,帮助生成具有良好适应性和弹性的 软件系统。 面向对象技术具有四个基本特征 2 2 】: 抽象 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标 有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细 节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的 班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一 是过程抽象,二是资料抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者 看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。资料抽 象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些 操作修改和观察。 继承 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共 性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了 原始类的特性,新类称为原始类的派生类( 子类) ,而原始类称为新类的基类( 父类) 。派生 类可以从它的基类那里继承方法和成员变量,并且类可以修改或增加新的方法使之更适 合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可 重用性问题。比如说,所有的w i n d o w s 应用程序都有一个窗口,它们可以看作都是从一 个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是 由于派生出了不同的子类,各个子类添加了不同的特性。 封装 封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和资料包围 起来,对资料的访问只能通过已定义的接口。面向对象技术始于这个基本概念,即现实 世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问 其它对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性 对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常。 应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。 事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模 块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部, 因而可以将应用程序修改带来的影响减少到最低限度。 4 硕士学位论文 多态性 多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加 在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑一粘贴操作,在字 处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性 语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问 题。 2 2 面向对象技术的基本应用 s t e d h e nr s c h a c h 在面向对象与经典软件工程 2 1 中提到面向对象技术主要的应用包 括面向对象的分析、设计和面向对象的编程。 一、软件生命周期( s d l c ) 软件生命周期 2 1 1 是指由分析人员、设计人员和用户为了开发并实现一个信息系统所进行 的一系列行为,可分为几个不同的阶段。 1 ) 分析人员,研究顾客和用户的需求,并定义问题域。确定企业怎样使用人员、管理方法及 计算机技术才能实现商业发展,然后对系统提出要求。 2 ) 设计者,从数据库结构、界面、表单和报告方面设计系统。确定开发系统所需的软硬件配 置。 3 1 用户系统开发的最终用户。 整个软件生命周期可大致分为7 个阶段,包括; 1 初步调查 初步调查是系统开发的第一个阶段。这个阶段的主要目的是确定用户现在工作环境的不足 及其需求。该阶段调查的一个重要结果是确定系统开发是否可行。初步调查最后产生的文 档称为可行性研究报告。根据可行性研究,用户表示是否最终接受建议项目。如果用户接 受,便可以开展项目的需求分析阶段。 2 需求分析 需求分析包括对当前商业系统的详尽分析,分析其工作现状和需修改之处。另外,它还包 括对系统不同操作及其与系统内外的联系的详尽分析。整个阶段需要系统分析人员和用户 密切合作。如此产生的每一个需求都是新系统的特点。需求分析最后产生的详细文档称为 需求说明书。 3 系统设计 系统分析完成之后,用户的需求变得十分明确。下一个阶段即针对新要求做具体设计。设 计阶段规定需求说明书中己确定豹需求的具体实现方法。设计阶段最后产生的详细文档称 为设计说明书。系统的细节设计给提交给程序员做商业软件开发。 4 软件构建 该阶段完成实质性的项目构建( 编程) 。程序使用测试或者虚拟数据逐个地测试。同时程序 员也要准备程序说明,解释与每个操作相对应的特定程序段的编程方法和原因。软件构建 阶段主要的操作有:1 构建真正的软件代码。2 单元测试:简称u t ,是构建系统的程序员 自己进行的一种测试。在此之前需做一个单元测试计划,其中应包括代码测试预计产生结 果。根据测试的性质,系统开发的术语称之为自箱测试。3 独立单元测试:在这个操作中, 一组与此项编程无关的人员而不是程序员自己做测试。测试也根据程序员在上一个操作中 提供的单元测试计划进行。 5 系统测试 每个程序单元做完单独的测试后,需要将系统作为一个整体测试。在系统整体测试阶段, 所有软件模块集成为一个整体并进行测试确保能够成功执行。要求系统能对应需求说明书 5 硕士学位论文 中的详细需求执行相应的功能,并产生用户预期的结果。将特殊的测试数据输入到系统中, 分析处理后的结果是否与预期的结果有偏差。 6 安装启用 该阶段中,开发完毕的系统安装在用户场所使用。 7 系统维护 由于环境不断变化,软件会过时,需要修改和增强提高使用效率。系统维护操作依据修改 和增强的规模不同而变化。 二、面向对象的分析( o o a ) 定义:面向对象分析( o o a ) 是建立可为用户可理解的精确和简明映射模型的过程,该模型 对真实世界对象实体和概念建立精确和简明的映射。 s d l c 的需求分析阶段可采用o o a 技术,在o o a 中要求构建与现实世界原型相对应的问题 模型。此外,非编程人员也应能够理解系统的定义。换句话说,面向对象的分析着重强调从 现实世界原型角度表述问题。o o a 方法要求在设计中要映射现实世界中指定问题域中的对象 和实体,例如:顾客、汽车和销售人员等。这就需要设计要尽可能地接近现实世界,即以最 自然的方式表述实体。所以面向对象技术的优点即为能够构建与现实世界相对应的问题模型, 并保持他们的结构、关系和行为为模式。 例如,在汽车交易的模型中,分析员需确定如下实体:顾客、推销员、定单、汽车。分 析员还要确定各实体之间的相关特点、交互操作和相互关系。在许多情况下,需要将现实世 界的对象与行为构建成一个系统在计算机上操作实施。例如关于储蓄银行的例子,分析员应 将实体定义成: 帐目类型:a t m 、存款、流动资金、固定资金等。 银行顾客、出纳员 计算机部 此分析可确定实体之间的相关特征,交互操作和相互关系。 新顾客开一个储蓄帐户 从现金帐户向定期帐户转钱 将储蓄帐户中将现金转到a t m 账户 这种建立现实世界与计算机之间映射的分析方法是面向对象分析的最大优势。 三、面向对象的设计( o o d ) 定义:面向对象设计( o o d ) 程序被组织成相互作用的对象实体集合的过程,每个对象实体 代表类的一个实例,而所有的类都是一个类层次结构中的成员,所有成员通过继承关系组织 在一起。 s d l c 的系统设计阶段可采用o o d 技术,面向对象设计的主要目的要使得在分析阶段所得 到的结果能够在非功能性需求( n o n f u n c t i o n a lr e q u i r e m e n t s ) 、实现环境( i m p l e m e n t a t i o n e n v i r o n m e n t ) 、性能要求等对系统的强制性制约下,得以成型。o o d 可看作是面向对象分析 ( o o a ) 的细化。它着重强调在保证所有需求得到满足的情况下优化解决方法。在o o d 阶段,设 计人员要定义一个或几个类的责任,操作属性和相互关系,并对这些类进行调整,以适应开 发环境的要求。同时还要设计数据库及应用标准化技术。在o o d 阶段结束时,应得到一些图。 这些图可分为静态和动态两种。静态图表表达类和对象,而动态图表表达类之间的关系并确 定它们的准确操作。在后续的开发阶段中这些类可以嵌入到较小的程序包中,或者应用程序 的子单元中。 四、面向对象的编程( o o p ) 6 硕士学位论文 s d l c 的构建阶段可通过面向对象编程( 0 0 p ) 实现。换句话说,面向对象编程是使用一种支 持面向对象方法的语言实现面向对象设计的过程。上面两个阶段共同提供了面向对象编程的 框架。支持0 0 p 的语言有c + + 、c # 和j a v a 等。这个阶段的成果是一系列可执行代码,再经 过各种不同的测验即可发布。 蛋2 3 软件模型 系统分析阶段的结束标准是建立要实现系统的完整模型 1 6 。该模型必须有现实意义, 并且可为用户理解。模型用于确定用户对系统的真实需求,有助于确定系统的可行性。 很长时间以来,模型在所有工程学科中的重要性是显而易见的。建任何实体都要画出草 图描述其外状和功能。例如,绘图即为一些实体的模型。模型是对实体的描述,实体分别处 在不同阶段,例如:设计阶段、构建阶段、或者还仅仅是一个初步设计而已。设计者必须创 建模型描述设计的各个不同部分。模型再进一步地分成不同的视图。每个视图表示设计或 要构建系统的一个特定方面。模型分为几个不同的阶段,每个阶段加入相应细节。 模型经常采用可视化语言描述,也就意味着经常采用图形符号表述。图形符号具有理解 简单,综合性强的特点。就像在其他工程领域中一样,具体实现软件之前要建立模型己成为 必须的步骤。模型是对现实世界的简化。建立模型是为了更好地理解要开发的系统。它有助 于全面地理解复杂系统。系统建模有助于实现如下目的: 建模有助于按系统本身或者按需求对系统进行可视化。 建模有助于确定系统的结构和行为。 建模为开发者构建系统提供模板。 建模记录开发者为后期使用所做的决策。 公认的面向对象建模语言出现于7 0 年代中期。从1 9 8 9 年到1 9 9 4 年,其数量从不到十种 增加到了五十多种。在众多的建模语言中,语言的创造者努力推崇自己的产品,并在实践中 不断完善。但是,o o 方法的用户并不了解不同建模语言的优缺点及相互之间的差异,因而 很难根据应用特点选择合适的建模语言,于是爆发了一场“方法大战”。人们越来越发现非常 有必要建立对象模型构建的公用和标准方法。要求有一套标准的定义和图标能够清晰地表达 设计决策。为了这个目标,j a m e sr u m b a u g h ,g r a d yb o o c h 和i v a rj a c o b s o n 做了开创性的 努力,并提供了一整套图形、图表表示法。随之产生的是统一建模语言( u m l ) 1 6 。 一u m l 的概念 u m l 是一种定义良好、易于表达、功能强大且普遍适用的建模语言。是面向对象方法用来 表述系统设计的图形表示法,它溶入了软件工程领域的新思想、新方法和新技术。 它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全 过程以及建立用户。分析人员、设计者和软件开发人员之间的轻松对话。 u m l 融合了b o o c h 、o m t 和o o s e 建模方法中的基本概念 2 2 ,而且这些基本概念与 其他面向对象技术中的基本概念大多相同,因而,u m l 必然成为这些方法以及其他方法的使 用者乐于采用的一种简单一致的建模语言;其次,u m l 不仅仅是上述方法的简单汇合,而是 在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,u m l 扩展了现有方法 的应用范围;第三,u m l 是标准的建模语言,而不是标准的开发过程。尽管u m l 的应用必 然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过 程。 二u m l 的内容 文献 1 5 将u m l 这种建模语言的定义概括为u m l 语义和u m l 表示法两个部分。 7 坝士字位论文 u m l 语义 描述基于u m l 的精确元模型定义。元模型为u m l 的所有元素在语法和语义上提供了简 单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳 表达方法所造成的影响。此外u m l 还支持对元模型的扩展定义。 u m l 表示法 定义u m l 符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建 模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是u m l 元模 型的实例。 标准建模语言u m l 的重要内容可以由下列五类图( 共9 种图形) 1 5 ,2 2 来定义: 第一类是用例图( u s ec a s ed i a g r a m ) 它从用户角度描述系统功能,并指出各功能的操作者。 第二类是静态图( 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 n t a t i o nd i a g r a m ) 。 实现图包括构件图和部署图,其中构件图描述代码部件的物理结构及各部件之间的依 赖关系。一个部件可能是一个资源代码部件、一个二进制部件或一个可执行部件。它包 含逻辑类或实现类的有关信息。部件图有助于分析和理解部件之间的相互影响程度部署 图定义系统中软硬件的物理体系结构。它可以显示实际的计算机和设各( 用节点表示) 以 及它们之间的连接关系,也可显示连接的类型及部件之间的依赖性。在节点内部,放置 可执行部件和对象以显示节点跟可执行软件单元的对应关系。 从应用的角度看,当采用面向对象技术分析设计系统时,首先是描述需求;其次根据需 求建立系统的静态模型,以构造系统的结构:第三步是描述系统的行为。其中在第一步与第 二步中所建立的模型都是静态的,包括用例图、类图( 包含包) 、对象图、组件图和配置图等 五个图形,是标准建模语言u m l 的静态建模机制。其中第三步中所建立的模型或者可以执行, 或者表示执行时的时序状态或交互关系,属于动态模型。它包括状态图、活动图、序列图和 合作图等四个图形,是标准建模语言u m l 的动态建模机制。因此,标准建模语言u m l 的主要 内容也可以归纳为静态建模机制和动态建模机制两大类。 8 硕士学位论文 2 4 设计模式 内行的设计者知道:不是解决任何问题都要从头做起,很多情况下可以复用以前使用过 的解决方案。当找到一个好的解决方案,他们会一遍又一遍地使用。这些经验是他们成为内 行的部分原因。因此,你会在许多面向对象系统中看到类和相互通信的对象的重复模式。这 些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更好。它们帮助设 计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。一个熟悉这些模式的 设计者不需要再去发现它们,而能够立即将它们应用于设计问题中。 所有结构良好的面向对象软件体系结构中都包含了许多模式。实际上,当评估一个面向 对象系统的质量时,所使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共 协同关系。在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精 巧、简洁和易于理解,其程度远远超过了未使用模式的体系结构。软件领域中的设计模式为 开发人员提供了一种使用专家设计经验的有效途径。目前流行的、并且以及成为事实工业标 准的设计模式是e r i c hg a m m a 、r i c h a r dh e l m 、r a l p hj o h n s o n 和j o h nv l i s s i d e s 在文献 1 4 提出的2 3 个设计模式。由于是四个人合作提出的,因而也称为g o f 模式。 g o f 模式 1 4 根据两条准则对模式进行分类。 目的准则。 即模式是用来完成什么工作的。模式依据其目的可分为创建型、结构型、和行为型三 种。创建型模式与对象的创建有关;结构型模式处理类或对象的组合;行为型模式对类或 对象怎样交互和怎样分配职责进行描述。 范围准则。 指定模式主要是用于类还是用于对象。类模式处理类和子类之间的关系,这些关系通 过继承建立,是静态的,在编译时刻便确定下来了。对象模式处理对象间的关系,这些关 系在运行时刻是可以变化的,更具动态性。从某种意义上来说,几乎所有模式都使用继承 机制,所以“类模式”只指那些集中于处理类间关系的模式,而大部分模式都属于对象模 式的范畴。 创建型类模式将对象的部分创建工作延迟到子类,而创建型对象模式则将它延迟到另一个 对象中。结构型类模式使用继承机制来组合类,而结构型对象模式则描述了对象的组装方式。 行为型类模式使用继承描述算法和控制流,而行为型对象模式则描述一组对象怎样协作完成 单个对象所无法完成的任务。 一设计模式的基本要素 一般而言,一个模式有四个基本要素: 1 模式名称( p a t t e r nn a m e ) 。 它用一两个词来描述模式的问题、解决方案和效果。命名一个新的模式增加了我们的设 计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己 以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我 们与其他人交流设计思想及设计结果。 2 问题( p r o b l e m ) 它描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后 果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设 计的类或对象结构。有时候,问题部分会包括使用模式必须满足的一系列先决条件。 3 解决方案( s o l u t i o n ) 它描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就 9 硕士学位论文 像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现, 而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决 这个问题。 4 效果( c o n s e q u e n c e s ) 它描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总 提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好处具有重要意义。软件 效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设 计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列 出这些效果对理解和评价这些模式很有帮助。 二分布式实时组态系统中用到的主要设计模式 在论文说讨论的分布式实时组态系统中用到了不少g o f 模式,使得系统更灵活和更具扩展 性。下面是所用到的g o f 模式原理说明。 , ( 一) f a c t o r ym e t h o d ( 工厂方法) 一对象创建型模式 1 4 l _ 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。f a c t o r ym e t h o d 使一个类 的实例化延迟到其子类。 2 结构 此模式的结构如图 所示。 隧鍪脬r 堂堂基警 隧麓鬃黧震j 八 一 陵= e d n 童鞘 爸a 疃鲥6 卜 隧鏊要燮鬻罂 、 、 雨丽谭羁再丽丽丽丽丽n l o 一嚣j 舞鬻t + 。一_ l 二:= = i 二= 二i i 。i = 二:j 二t 二二_ , ,。r j 厨而丽戮葡硒丽丽磊而飞 巳三二二鲞萋薹:墓主兰。 图 :f a c t o r ym e t h o d 模式的u m l 类图 3 参与者 p r o d u c t 定义工厂方法所创建的对象的接口。 c o n c r e t ep r o d u c t 实现p r o d u c t 接口。 c r e a t o r 1 ) 声明工厂方法,该方法返回一个p r o d u c t 类型的对象。c r e a t o r 也可以定义一个工厂 方法的缺省实现,它返回一个缺省的c o n c r e t ep r o d u c t 对象。 2 ) 可以调用工厂方法以创建一个p r o d u c t 对象。 c o n c r e t ec r e a t o r 重定义工厂方法以返回一个c o n c r e t ep r o d u c t 实例。 4 协作 依赖于它的子类来定义工厂方法,所以它返回一个适当的c o n c r e t ep r o d u c t 5 效果 工厂方法不再将与特定应用有关的类绑定到你的代码中。代码仅处理p r o d u c t 接口:因此 它可以与用户定义的任何c o n c r e t ep r o d u c t 类一起使用。 1 0 星 硕士学位论文 ( - - ) s i n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医学26年:中枢神经系统血管炎 查房课件
- 医学26年:内分泌护理科研要点 查房课件
- 2026 减脂期无糖饮料课件
- 2026 减脂期喝水策略优化课件
- 血气分析在精神科患者中的应用
- 面部护理的防晒知识
- 食道癌护理的未来发展趋势
- 老年人突发疾病应急处理流程
- 重症医学科护理团队建设与管理
- 静脉溶栓治疗中的疼痛管理
- 外墙真石漆招标文件
- 悬挑式卸料平台监理实施细则
- 加油站公共安全风险评估报告
- 铸件(原材料)材质报告
- 提货申请单表
- 脑与认知科学概论PPT(第2版)完整全套教学课件
- 【初中化学】中国化学家-李寿恒
- 镭雕机作业指导书
- 生管指导手册(什么是PMC)
- 历届全国初中数学联赛真题和答案
- 国家义务教育监测八年级模拟试题(音乐)
评论
0/150
提交评论