(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf_第1页
(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf_第2页
(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf_第3页
(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf_第4页
(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf_第5页
已阅读5页,还剩70页未读 继续免费阅读

(系统工程专业论文)UML面向对象技术在分布式监控系统中的应用与研究.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生学位论文 第j 页 摘要 软件系统的分析和设计是软件生命周期中最关键的环节,一个成功的软 件系统必然建立在良好的分析和设计基础之上。 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 的研究目标之一。 本文概述了软件工程的发展和面向对象的设计思想,着重介绍了面向对 象的分析与设计。然后介绍了监控系统软件的特点及其发展现状,简要讲述 了统一建模语言u m l 的基本概念和体系结构。全文重点论述了利用u m l 面向对象的软件设计思想设计开发监控系统软件的过程,并把这一过程分为 全局分析、局部分析、全局设计和局部设计四个阶段详细论述。本文在全局 分析中定义了拟建系统所采用的架构以及影响构架的要素:在局部分析中选 定了几个用例为研究对象,提取了其中的分析类并使用u m l 顺序图转述了 需求场景;在全局没计中,将现有的分析类映射成了模型中的设计元素,明 确了适用于拟建系统的设计机制;在局部设计中利用全局设计提供的素材, 精化了设计类的属性和操作,然后在不同的局部,用精化后的设计元素替换 和落实了系统分析的结果。最后根据这一思想,实现了一套分布式高速公路 监控系统软件,并对实现后的系统做了简要介绍。 采用u m l 进行系统建模己经成为面向对象分析和设计的一种趋势。但 是由于u m l 本身的复杂性以及我国软件产业发展的局限性,u m l 尚未在我 国软件企业中得到充分的重视。本文从理论和实践两个方面对u m ,在软件 系统建模方面的应用进行了研究,所提出的观点对软件开发人员掌握面向对 象建模技术具有一定的参考价值。 关键词面向对象,分布式系统,u m l ,高速公路,监控系统 西南交通大学硕士研究生学位论文 第1i 页 a b s t r a c t s y s t e ma n a l y s i sa n dd e s i g ni st h em o s ti m p o r t a n tp a r ti nt h es o f t w a r el i f e c y c l e as u c c e s s f u ls o f t w a r es y s t e mi sa l w a y sb a s e do ng o o da n a l y s i sa n dd e s i g n u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) b r i n g sg r e a ta t t e n t i o n i ns o f t w a r e e n g i n e e r i n g ,i tm e l t si n t on e wi d e a s ,n e wm e t h o d sa n dn e wt e c h n o l o g yo f s o f t w a r ee n g i n e e r i n g i tn o to n l ys u p p o r t so b j e c t o r i e n t e da n a l y s i sa n dd e s i g n ,b u t a l s os u p p o r t st h ew h o l ep r o c e s so fs o f t w a r ed e v e l o p m e n t r e s e a r c h i n gt h e a p p l i c a t i o no fu m li nv a r i o u sf i e l d si so n eo fr e s e a r c hg o a l so fu m l t h et h e s i ss u m m a r i z e st h ed e s i g nt h o u g h to ft h eo b j e c t - o r i e n t e dt e c h n o l o g y a n dt h ed e v e l o p m e n to ft h es o f t w a r ee n g i n e e r i n g ,i n t r o d u c e st h ec h a r a c t e r i s t i c so f m o n i t o r i n gs y s t e ms o f t w a r ea n di t sd e v e l o p m e n ta c t u a l i t ya tp r e s e n t ,b r i e f l y p r e s e n t st h eb a s i cc o n c e p to ft h eu m i “t h ep r o c e s so fd e s i g n i n gm o n i t o r i n g s o f t w a r eb yu s eo ft h eo b j e c t o r i e n t e dt e c h n o l o g yi sd i s c u s s e de m p h a t i c a l l y + t h e p r o c e s si sd i v i d e di n t of o u rs t e p sw h i c hi sc a l l e dr e s p e c t i v e l yt h eg l o b a la n a l y s i s , t h el o c a la n a l y s i s ,t h eg l o b a ld e s i g n ,a n dt h el o c a ld e s i g n i nt h eg l o b a la n a l y s i s , t h ea r c h i t e c t u r ea n dt h ec o r r e l a t i v ee l e m e n t so ft h es y s t e ma r ed e f i n e d i nt h e l o c a la n a l y s i s ,s o m ea n a l y s i sc l a s s e sa r ed i s t i l l e da n ds o m eu m ls e q u e n c e d i a g r a m sa r ed r a w n i nt h eg l o b a ld e s i g n ,a n a l y s i sc l a s s e sa r em a p p e di n t od e s i g n e l e m e n t si nt h em o d e la n dt h ed e s i g nm e c h a n i s mo ft h es y s t e mi sm a d ec e r t a i n 。 i nt h el o c a ld e s i g n ,t h ep r o p e r t i e sa n do p e r a t i o n so ft h ed e s i g j tc l a s s e sa r e s u b s t a n t i a t e d ,t h e nt h ea n a l y s i sm o d e li ss u p e r s e d e db yt h ed e s i g nm o d e l t h e n a c c o r d i n gt ot h i st h o u g h t ,as e to fd s t r i b u t e dm o n i t o r i n gs y s t e ms o f t w a r ef o r f r e e w a y i sr e a l i z e d ;f i n a l l yab r i e fi n t l e d u c t i o no ft h er e a l i z e ds y s t e mi sg i v e n m o d e l i n gw i t hu m lh a sb e c o m eat r e n di no b j e c t o r i e n t e da n a l y s i sa n d d e s i g n b u tb e c a u s eo ft h ec o m p l e x i t yo ft h eu m la n dt h el i m i to ft h es o f t w a r e i n d u s t r yi no u rc o u n t r y , m o s ts o f t w a r ee n t e r p r i s e sg i v ei td e f i c i e n ta t t e n t i o n t h i s t h e s i se m p h a s i z e st h er e s e a r c ha n di m p l e m e n t a t i o no fs o f t w a r es y s t e mm o d e l i n g b a s e do nu m l w h i c hm a y b eh e l ps o f t w a r ed e v e l o p e r st om a s t e ro b j e c t o r i e n t e d m o d e l i n gt e c h n o l o g y k e yw o r d so b j e c t o r i e n t e d ,d i s t r i b u t e ds y s t e m ,u m l ,f r e e w a y , m o n i t o r i n g s y s t e m 西南交通大学硕士研究生学位论文 第1 贾 第一章绪论 1 1 软件技术及u m l 的发展历程 随着管理体制的深化改革,自动化技术也不断进步。在以工业p c 总线 组成的中小规模控制系统和由工业p c 计算机及其下位机构成的分布式控制 系统现在已经在监控系统中占主导地位,因此控制软件品质就直接影响系统 的安全和控制效果,从而进一步影响到控制系统的稳定性和产品的质量【l 2 3 1 。 软件技术起步于手工编码,从8 0 年代开始,进入了突飞猛进的发展阶 段,从计算机辅助设计迅速发展为面向对象( 0 0 ,o b j e c t - o r i e n t e d ) 的设计 方法【”。面向对象语言的兴起,是近十几年来最重要的软件技术进展之一, 被誉为“9 0 年代的主流软件技术”【4 ”i 。传统的软件设计方法往往是为了解 决面向过程语言系统的设计问题的产生和发展的。最著名的是在7 0 年代提 出的“结构化程序设计”方法,这一方法把面向机器代码的程序抽象为三种 基本程序结构:顺序结构、选择结构和重复结构。结构化程序设计从系统的 功能入手,按照工程的标准和严格的规范将系统分解为若干功能模块,系统 是实现模块功能的函数和过程的集合【7 。2 4 。由于用户的需求和软、硬件技术 的不断发展变化,软件规模和复杂性的增长,按照功能划分设计的系统模块 必然是易变的和不稳定的,这样开发出来的模块可复用性很低。为了最大限 度的利用已有的资源和减少程序开发的工作量,需要有一种比传统的结构化 程序设计方法抽象能力更强的新方法,面向对象的程序设计方法正是在这种 背景下诞生的。面向对象程序设计同结构化程序设计相比最大的区别就在于 其从所处理的数据入手,以数据为中心而不是以服务( 功能) 为中心来描述系 统。面向对象的方法把编程问题视为一个数据集合,数据相对于功能而言, 往往具有更强的稳定性。 现在人们普遍开始采用面向对象的分析与设计,面向对象技术的出发点 是使分析、设计和实现系统的方法同认识客观世界的过程尽可能地一致,也 就是采用面向对象的概念对系统进行分析和建模,其核心就是对对象的分析 和设计f 8 ,“。 从7 0 年代中期到8 0 年代末期,随着方法学家在实践中对面向对象的分 西南交通大学硕士研究生学位论文 第2 页 析和设计方法的探索,出现了最初的面向对象建模语言。在1 9 8 9 到1 9 9 4 年 问,面向对象的方法从不足l o 种增加到5 0 种以上。但面对众多的建模语言, 一般用户没有能力区别不同语言之间的差别,因此很难找到一种比较适合其 应用特点的语言。虽然不同的建模语言大多类同,但仍存在某些细微的差别, 极大的妨碍了用户之间的交流【2 0 ,2 ”。因此在客观上,极有必要在精心比较不 同的建模语言优缺点及总结面向对象技术应用实践的基础上,组织联合设计 小组,根据应用需求,取其精华,去其糟粕,求同存异,统一建模语言。 作为b o o c h ,o o s e 和o m t 方法的主要作者g r a d yb o o c h 、i v a r j a c o b s o n 和j a m e sr u m b a u g h 的关于面向对象的研究成果,被认为是在全球范围内具 有领导性的。2 0 世纪9 0 年代中期,他们开始彼此从对方的方法中汲取思想, 准备创建统一建模语言。促进他们创建统一建模语言的原因有三个。首先, 这三种方法己经在朝着相互独立的方向演化,而人们迫切需要一种统一的建 模方法,这样才能消除任何不必要的和不合理的潜在差别,而这种差别可能 会加剧用户的疑惑。其次,通过统一这些方法,能够给面向对象的市场带来 一定的稳定,能够让人们使用成熟的建模语言去设计项目,使人们能够集中 精力开发出更具有价值的工具。第三,使这三种方法可以取长补短,能够解 决原先方法不能解决的问题。 这几位面向对象方法学家在开始统一工作时,确立了三个目标: ( 1 ) 运用面向对象技术对系统进行从概念到可执行产品的建模。 r 2 ) 解决复杂系统中固有的问题。 ( 3 ) 创造一种人和机器都能使用的语言。 而设计一种面向对象建模语言和设计一种编程语言的不同之处在于: 第一,必须对问题进行约束:这种语言是否包含需求描述,是否支持可 视化编程。 第二,必须在表达能力和表达的简洁性之间进行平衡,太简单则影响解 决问题的范围,太复杂又不利于使用。 第三,在进行方法统一时,若进行较大的改进则容易给原用户造成混乱; 若不进行改进,则将失去赢得更广大用户群和简化语言的时机。 因此,u m l 的最终形成是对以上问题的平衡的结果。 1 9 9 4 年1 0 月,r u m b a u g h 加入b o o c h 所在的r a t i o n a l 公司,正式开始 建模语言的统一工作。当时的计划注重于联合b o o c h 方法和o m t 方法而得出 一种统方法( u n i f i e dm e t h o d ,u m ) ,u m o ,8 皈在1 9 9 5 年l 0 月发布。但 西南交通大学硕士研究生学位论文 第3 页 u m 并不像想象中那样成功,因为在这个过程中,他们发现创造一种“统一 方法”的难度太大,于是努力的方向缩小为建立一种统一建模语言 u m l ( u n i f i e dm o d e l i n gl a n g u a g e ) 。后来,j a c o b s o n 也加入了r a ti o n a l 公司,于是u m l 项目范围进一步扩大,将o o s e 中最重要的“用例( u s e c a s e ) ”的概念结合进来。经过努力,在1 9 9 6 年6 月发布了u m l o 9 版。后 来,有许多知名公司如d e c 、h p 、i b m 、m i c r o s o f t 等也加入了u m l 的开发 工作,成立了u m l 伙伴组织。在这些公司合作下,u m l l 0 版诞生了。 u m l i 0 版是一个定义明确的、富于表达力的、强大的、可应用于广泛的问 题域的建模语言【1 0 ,“】。 1 9 9 7 年1 月,u m l1 0 被提交给o m g ( 0 b i e c tm a n a g e m e n tg r o u p ) , 申请把它作为一种标准建模语言。在1 9 9 7 年1 月到7 月,又有许多公司如 g r i c s s o n 等加入u m l 伙伴组织。在u m l 伙伴组织的共同努力下,推出了 u m u 1 。1 9 9 7 年7 月,u m l l 1 被提交给o m g 进行标准化审查并采纳。之 后,对u m l 的改进工作由o m g 的修订专门组织r t f ( r e v i s i o nt a s kf o r c e ) 接管,并产生了u m l l 2 、1 3 和1 4 版本,其中u m l l 3 是较为重要的修 订版。所以,u m l 一直处在不断的完善和发展之中,目前也正是u m l 的重 大修订阶段,目标是推出u m l 2 0 ,作为向i s o 提交的标准提案1 1 2 ,2 m 。 u m l 是在多种面向对象建模方法的基础上发展起来的建模语言,它已 成为在软件工业中占支配地位的建模语言,并在许多领域的软件开发中得到 应用。u m l 开发的系统模型能够基于共同的概念,使用相同的表示法,呈 现彼此一致的模型风格1 2 4 2 7 1 。而且它从多种方法中吸收了大量有用的建模概 念,使它的概念和表示法在规模上超过了以往任何一种方法,并且提供了允 许用户对语言做进一步扩展的机制。 u m l 在语法和语义的定义方面也做了大量的工作。以往各种关于面向 对象方法的著作通常是以比较简单的方式定义其建模概念,而以主要篇幅给 出过程指导,论述如何运用这些概念来进行开发f 2 5 ,2 6 , 4 卅。u m l 则以一种建 模语言的姿态出现,使用语言学中的一些技术来定义。尽管真正从语言学的 角度看它还有许多缺陷,但它在这方面所做的努力却是以往的各种建模方法 无法比拟的。 1 2 分布式系统体系结构 当今的计算机使用方法和体系结构已经从早期的单一体系结构,发展为 分布式体系结构。分布式体系结构经过多年的发展,也已经经过了多种形式 西南交通大学硕士研究生学位论文 第4 页 的变化。 1 2 1c s 模式和b s 模式 c 1 i e n t s e r v e r 模式,即客户机n 务器模式,简称c s ,是一种非常成 熟的应用体系结构,被广泛地应用于各种信息管理系统中。在这种模式中, 将应用系统分为两部分:一部分是由多个用户共享的信息与功能,称为服务 器部分;另一部分是每个用户所专有,称为客户部分。客户机服务器应用 程序的一种定义是应用程序有一个客户接口,而访问数据则位于另外一个远 程服务器之上。客户机将其所需执行的命令传送给数据库服务器,数据库服 务器执行命令,并将结果返还客户机,这使得整个工作能够分布在客户系统 和远程服务器系统共同执行,从而达到系统中软、硬件资源最大限度的利用 1 5 ,1 6 7 1 。 c s 模式的优点是: ( 1 ) c s 模式的网络通讯量小。对于相同的任务,c s 模式在速度上比 s s 模式快,从而可以提高用户的工作效率,减轻网络负担。 ( 2 ) c s 模式交互性好。c s 模式在客户端有一套完整的应用程序,在 出错提示、在线帮助等方面功能强大,从而大大增强其交互性。程序员还可 以对特定程序作专门的优化f 1 7 ,1 8 , 1 9 】。 b r o w s e r s e r v e r 模式,即浏览器服务器模式,简称b s 模式,这是随 着i n t e r n e t 的兴起而兴起的一种体系结构。这种模式中有两类服务器,一 类是数据库服务器,运行数据库管理系统,例如s q ls e r v e r ,另一类是w e b 服务器,响应用户的网络访问请求。用户通过浏览器直接访问w e b 服务器, 如果需要访问数据库,再由w e b 服务器发请求取得数据访问结果“,”】。 b s 模式的优点是: ( 1 ) b s 模式简化了系统的开发和维护费用。s s 模式的应用逻辑由w e b 服务器承担,即这种模式的功能都在w e b 服务器上实现,无需开发客户端程 序,也不存在客户端应用软件的维护问题。 ( 2 ) b s 模式在客户端安装的是标准的、简单通用的浏览器,不需要安 装应用程序,这种统一的w e b 浏览界面,使用户的操作更加简单。 1 2 2 二层体系结构和三层体系结构 传统的管理信息系统( m i s ) 开发从体系结构上讲,一般采用如图l1 所 示的两层结构,即应用层( 客户层) 和数据服务层。客户端( 应用层) 提供用户 西南交通大学硕士研究生学位论文 第5 而 操作界面,接受数据输入,向数据服务层发出数据请求并接受返回的数据结 果,根据业务逻辑进行相关的运算,向客户显示相关信息;数据服务层接受 客户端的数据请求,做相关数掘处理,并将数据集或数据处理返回客户端。 在传统的两层结构模式中,客户机与数据库服务器通过数据库桥a p i 直接通 信,这些数据库桥a p i 中的典型代表就是o d b c 和j d b c i l 毛1 7 , ”j 。二层应用体 系结构的主在好处是很容易开发二层应用,特别是因为呈现逻辑与业务逻辑 驻留在同一个进程中,开发者不必处理分布式应用的复杂关系。但二层体系 结构的不利在于其业务逻辑没有从呈现逻辑中分离出来,它的主要缺点有: 安装成本高,数据库驱动程序升级的成本高,数据库的变更成本高,数据库 的连接成本高。 三层体系结构( 如图卜2 所示) ,克服了二层体系结构的一些限制,这个 三层体系结构将用户界面层与业务逻辑层分开,用户界面层放在客户端,而 将业务逻辑层和数据存储层放在中间的应用服务器上。 客户端 图卜1二层体系结构 应用服务器数据库服务器 图卜2三层体系结构 西南交通大学硕士研究生学位论文 第6 页 三层应用体系结构显示以下优点。 ( 1 ) 优化了系统结构:将系统分为三层( 或多层) ,业务逻辑放在应用服 务层,软件的维护集中在应用服务层,客户端的维护就相对简单多了,有利 于软件维护及系统管理。 ( 2 ) 提高了应用系统的安全性:将客户端与数据库隔离起来,客户端无 权限直接访问数据库,有利于安全管理,可有效防止恶意攻击。还可以利用 中间件的安全管理特性进一步加强权限控制管理。 ( 3 ) 卓越的扩展能力:若要提高系统性能、处理速度,可增加应用服务 器,分担一部分应用服务工作即可,而原来的应用服务器几乎可以不动。 ( 4 ) 提高系统性能:三层应用体系结构能更好的调整应用体系,还可利 用中间件的特点来选择路由、平衡负载,提高整个系统的性能。 总的来说,三层应用体系结构使应用系统的性能、安全性、扩展性有了 很大的提高,也方便了系统的维护和管理。 1 3 本文的主要工作 随着加入世界贸易组织,我国经济正面临着从计划经济向市场经济转变 的关键时刻。企业要想在市场竞争中求得生存和发展,就必须大力运用国际 上先进的生产和管理技术,以增强企业的应变能力和竞争能力。对于工业企 业来说,掌握自动化技术是在全球竞争中取得成功的关键要素之一,只有当 企业把革新性的组织形式与适宜的自动化解决方案结合起来,才能成为竞争 中的获胜者【1 j 。目前很多工矿企业、机关学校、高速公路等单位已逐步实现 无人值班或值守。有很多场所安全要求非常高,为了保证安全,应对环境状 况、设备运行、等各类情况加以监视和自动控制。特别是要防范火灾、爆炸、 失窃以及恶意破坏等,对安全生产构成极大威胁的情况加以监视并能够自动 实时的采取措施。只有这样,才能切实提高实行无人值班或值守之后的安全 水平。因此,将常规的自动化系统通过网络远程遥视手段统一管理起来,建 立一个集中式的遥视遥控系统是很必要的。以视频监控为辅助的监控系统已 逐步成为为无人值班场所新增的而且是一个十分必要的自动化项目,是其他 自动化手段不可替代的。 统一建模语言u m l 的出现为面向对象建模语言的历史翻开了新的一 页,并受到工业界、学术界以及用户的广泛支持,成为面向对象技术领域占 主导地位的建模语言。o m g 采纳它为标准建模语言,进一步将它推向事实上 西南交通大学硕士研究生学位论文 第7 页 的工业标准的地位【1 3 2 6 】。 本课题以某高速公路监控系统为背景,综合运用u m l 、网络通信技术 和相关的操作系统、数据库、编程语言开发一个开放、可重用和可扩展的分 布式监控系统。在项目中开发过程中,本人主要负责视频监控工作站以及收 费站信息处理和现场监控,借助视频矩阵、继电器输出卡等硬件设备,通过 串行通信、u d p 等各种通讯方式与其他模块一起完成对高速公路的监控功 能,目前本系统已经交付使用。研究这种系统的建模方法和实现方法,以便 使软件设计者设计和实现高质量的面相对象的分布式系统,从理论和实践两 方面对u m l 在软件系统建模方面的应用进行了研究。 本人在课题的研究过程中,一方面应用了u m l 的面向对象的分析和设 计方法,借助r a t i o n a lr o s e 作为辅助设计的工具,对这一高速公路监控系统 进行了需求收集、需求分析、系统设计,作出了系统的各种u m l 框图,从 而建立了一个监控系统的完整模型;并且依据这个模型使用d e l p h i 作为开发 工具完成了监控系统的程序实现,使用s o l s e r v e r 作为数据库管理系统完成 了数据库内部数据和函数的实现:最终打包生成了可执行安装程序,使本系 统稳定的运行在了高速公路上。另一方面,在实践的过程中,总结了使用 u m l 的各种优点和经验,从理论上对基于u m l 的分析设计方法进行了提炼 并提出了一些建议,为开发开放、。可重用和可扩展的分布监控系统提供了参 考。 本文共分为六章,前三章为文献综述,后三章介绍了作者以监控系统为 背景对u m l 面向对象技术的具体应用和研究。 第一章绪论综述了本课题所涉及的技术的发展历程和分布式体系结构; 第二章综述了面向对象技术,重点介绍了面向对象的分析和设计,并比较了 几种主要的面向对象的开发方法;第三章对u m l 做了概要介绍,为后面的 章节使用u m l 做了理论基础;第四章是应用u m l 对高速公路监控系统进 行了系统分析;第五章是基于u m l 的高速公路监控系统的系统设计;第六 章是系统的实现,简要介绍了系统物理分布、实现平台、实现过程及主要实 现界面。 最后一部分是结束语,总结全文,并指出自己所做的工作、u m l 的建 模难题以及产品需要进一步改进的地方。 西南交通大学硕士研究生学位论文 第8 页 第二章面向对象方法概述 目前作为针对“软件危机”的最佳对策,面向对象技术已经引起人们的 普遍关注。最初被多数人看作只是一种不切实际的方法和满足一时好奇心的 研究,现在得到了人们近乎狂热的欢迎。面向对象技术革命已深入到软件技 术的各个方面,出现了面向对象的软件开发方法、面向对象数据库、面向对 象操作系统等新概念和新技术。 2 1 面向对象基本概念 面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如 何看待软件系统与现实世界的关系,以什么观点来研究问题并进行求解,以 及如何进行系统构造的软件方法学。本文下面将介绍面向对象技术的几个基 本概念。 ( 1 ) 对象和类 “面向对象”是一个技术名词,在计算机科学中具有其特定的技术涵义。 从面向对象的观点来看,现实世界是由各式各样的独立的、异步的、并发的 实体对象所组成,每个对象都有各自的内部状态和运动规律,不同对象之间 或某类对象之间的相互联系和作用,就构成了各式不同的系统。 面向对象方法是基于客观世界的对象模型化的软件开发方法。在面向对 象程序设计中,所谓对象,是一个属性( 数据) 集及其操作( 行为) 的封装 体。作为计算机模拟真实世界的抽象,一个对象就是一个实际问题论域,一 个物理的实体或逻辑的实体。在计算机程序中,可视为一个”基本程序模块”, 因为它包含了数据结构和所提供的相关操作功能。 类( c l a s s ) 是对象的抽象及描述,是具有共同属性和操作的多个对象 的相似特性的统一描述体【5 】。类也是对象,是一种集合对象,我们称之为对 象类( o b j e c tc l a s s ) ,简称为类,以有别于基本的实例对象( o b j e c t i n s t a n c e ) 。 在类的描述中,每个类要有一个名字,要表示一组对象的共同特征,还 必须给出一个生成对象实例的具体方法。类中的每个对象都是该类的对象实 例,即是说,系统运行时通过类定义中属性初始化可以生成该类的对象实例。 实例对象是自描述数据结构,每个对象都保存其自己的内部状态,一个类的 各个实例对象,都能理解所属类发来的消息。 西南交通大学硕士研究生学位论文 第9 页 ( 2 ) 属性,方法和消息 类提供了完整的解决特定问题的能力,因为类描述了数据结构( 对象属 性) 、算法( 方法) 和外部接口( 消息协议) 。 对象的属性,是指描述对象的数据,可以是系统或用户定义的数据类型, 也可以是一个抽象的数据类型,对象属性值的集合称为对象的状态( s t a t e ) 。 对象的行为,是定义在对象属性上的一组操作方法( m e t h o d ) 集合。方法 是响应消息而完成的算法,表示对象内部实现的细节,对象的方法集合体现 了对象的行为能力。 一个有效率的面向对象系统中,是没有完全孤立的对象的,对象的相互 作用的模式是采用消息传送来进行的。 消息( m e s s a g e ) 是面向对象系统中实现对象间的通信和请求任务的操 作。消息传递是系统构成的基本元素,是程序运行的基本处理活动。一个对 象所能接受的消息及其所带参数,构成该对象的外部接口。对象接受它能识 别的消息,并按照自己的方式来解释和执行 5 , 1 3 1 。一个对象可以同时向多个 对象发送消息,也可以接受多个对象发来的消息。消息只反映发送者的请求, 由于消息的识别、解释取决于接受者,因而同样的消息在不同对象中可解释 成相应的行为。 对象间传送的消息一般由三部分组成,即接受对象名、调用操作名和必 要的参数。对象的相互作用,用一种类似于客户服务器的机制把消息发送 到给定对象上。换句话说,向对象发送一个消息,就是引用一个方法的过程, 实施对象的各种操作,就是访问一个或多个在类对象中定义的方法。 消息执议是一个对象对外提供服务的规定格式说明,外界对象能够并且 只能向该对象发送协议中所提供的消息,请求该对象服务。也就是说,请求 对象操作的唯一途径是通过协议中提供的消息进行。具体的实现上是将消息 分为公有消息和私有消息,而协议则是一个对象所能接受的所有公有消息的 集合。 ( 3 ) 面向对象技术的三大特点 封装性( e n c a p s u l a t i o n ) 。对对象最基本的理解是把数据和代码组合在 同一个结构中,这就是对象的封装特性。将对象的数据域封闭在对象的内部, 使得外部程序必需而且只能使用正确的方法才能对要读写的数据域进行访 问。封装性意味着数据和代码一起出现在同一结构中,如果需要的话,可以 在数据周围砌上“围墙”,只有用对象类的方法刊能在“围墙”上打开缺口。 继承性( i n h e r i a n c e ) 。继承性的含义直接而且显然。它是指把一个新的 对象定义成为己存在对象的后代:新对象继承了旧类的切东西。在往新对 西南交通大学硕士研究生学位论文 第1 0 页 象中添加任何新内容以前,父类的每一个字段和方法都已存在于子类中,父 类是创建子类的基石。 多态性( p o l y m o r p h i s m ) 。多态性是在对象体系中把设想和实现分开的手 段。如果说继承性是系统的布局手段,多态性就是其功能实现的方法。多态 性意味着某种概括的动作可以由特定的方式来实现,这取决于执行该动作的 对象【2 0 ,2 4 】。多态性允许以类似的方式处理类体系中类似的对象。根据特定的 任务,一个应用程序被分解成许多对象,多态性把高级设计处理的设想如新 对象的创建、对象在屏幕上的重显、程序运行的其它抽象描述等,留给知道 该如何完美的处理它们的对象去实现。 2 2 面向对象的开发方法 面向对象技术最先被使用在面向对象编程语言中,随着面向对象语言的 逐步完善,面向对象技术很快被应用于系统分析和系统设计中,成为目前计 算机软件工程学中的主流方法。 2 2 1 面向对象的分析和设计 要创建一个应用系统,需要对问题和需求进行描述问题是什么以及 系统必须做什么。系统分析过程是在软件工程的环境中建立基本系统行为的 过程,其基本目标是按照某种机制,构造待开发软件系统的形式模型,捕捉 系统最基本的需求。在系统分析阶段建立的模型应该清晰的体现各种需求, 提供一个软件需求和软件开发之间的基础,并成为后续的设计和实现等阶段 的框架。分析强调对问题的调查而不是如何确定解决方案【2 8 ,4 “。例如,如果 要新开发一个计算机自动化管理的图书馆信息系统,这个系统工作的业务过 程是什么? 这是一个分析问题。 开发应用软件,还需要对问题的逻辑解决方案及系统如何满足需求和约 束进行高层描述和具体说明。系统设计是软件设计的首要阶段,在该阶段, 需要选择解决问题的基本方法,并从高层到低层逐步进行细化。在系统设计 期问,需要确定整个系统的结构和风格。设计强调的是问题的逻辑解决方案, 即系统怎样才能满足需求 ”,4 。举例来说,图书馆信息系统能够多大程度的 精确的捕获和记录书的借出情况? 这是一个设计问题。设计最终可以用硬件 和软件来实现。 面向对象的分析与设计( o b j e c t o r i e n t e da n a l y s i sa n dd e s i g n ) 就是 将面向对象的方法运用到软件工程的分析和设计阶段,其精髓是按照对象的 观点考虑问题域和逻辑解决方案,如图2 一l 所示。 西南交通大学硕士研究生学位论文 第1 1 页 对问题的调查逻辑解决方案 编码 i一【一【。一 图2 - 1 开发过程中各活动的定义 面向对象分析( o o a ,o b j e c t o r i e n t e da n a l y s i s ) 就是运用面向对象方 法进行需求分析,主要任务是分析问题域,确定和描述系统中的对象、对象 的静态特征和动态特征、对象问的关系及对象的行为约束,建立系统的对象 模犁【5 2 3 。 面向对象分析主要遵循以下几个原则: ( 1 ) 构造和分解相结合的原则 构造是指由基本对象组装复杂对象的过程;分解是指对大粒度对象进行 精化从而完成系统模型的细化过程,这两者的结合是软件工程中系统分析的 基本方法。 ( 2 ) 抽象化和具体化相结合的原则 抽象强调实体的本质和内在属性,而忽视与问题无关的属性,是在决定 如何实现对象之前确定对象的意义和行为。具体化是指在精化过程中,对对 象的必要细节加以刻画,有助于确定系统对象,加强系统模型的稳定性。 ( 3 ) 封装的原则 封装是指将对象各种独立的外部特性与内部实现细节分开。从外部只知 道它作什么,而不必知道它如何做,也不必知道其内部数据是如何表示的。 每个对象和对象的每个操作都封装或隐藏一些设计决策,对象接口定义要尽 可能的与其内部工作状态相分离。封装有助于最大限度的减少由于需求的改 变而对整个系统所造成的影响。 ( 4 ) 相关的原则 相关是指系统中的对象之间存在着各种关联。在分析中要考虑与问题相 关的对象间的各种关联,这些关联是对象协作的基础。相关包括静态结构的 关联和动态特征的关联。 ( 5 ) 行为约束的原则 对象的语义特征是通过行为约束来刻画的。行为约束包括静态行为约束 和动态行为约束,它表示了对象合法存在和对象的操作合法执行应满足的约 束条件。行为约束有助于深刻的理解对象和系统。 面向埘象的设计( o o d ,o b j e c t - o r i e n t e dd e s i g n ) 的卡要任务足根据己 西南交通大学硕士研究生学位论文 第12 页 确立的系统对象模型,运用面向对象技术,进行系统软件设计,重点在于定 义出最终用面向对象程序设计语言来实现的逻辑对象瞄“j 。 面向对象设计包括对象与类设计和系统设计两方面的内容。 ( 1 ) 对象与类设计是根据具体的实现策略,对分析模型进行扩充的过程。 对象与类设计在o o a 的对象模型基础上具体设计对象与类的数据结构和操作 的实现算法,设计对象与类的各种外部联系的实现结构以及消息与事件的内 容、格式等。在设计时可以并且应当充分利用预定义的系统类库或其他来源 的现有库,并采用继承、复用、演化等方法设计新类。 ( 2 ) 系统设计是为实现需求目标而对软件的系统结构进行的总体设计。 系统结构是系统的高层次结构形式。系统结构设计需要在时间和空间之间、 硬件和软件之间、简单化和一般化之间、效率和可维护性之间作出权衡,其 策略取决于具体的应用目标。系统设计主要包括系统层次结构设计,系统数 据存储设计,系统资源访问设计,网络与分布设计,并发性设计,对象互操 作方式设计,边界条件和例外处理等。 2 2 2 面向对象的开发方法 随着面向对象技术的成熟,研究热点从编程语言转移到设计与分析,出 现了几十种支持软件开发的面向对象方法,其中较有影响的有:u m l 、b o o c h 、 c o a d y o u r d o n 、o m t 、o o s e 等。这些面向对象软件开发方法的一般思路 是:取得一组需求,用各种文字说明、图形、表格等构造对象模型,识别与 问题有关的类与类之间的关系,加上与解决方案有关的类;将经过设讨的类 与关系进行调整后,对类进行编码及测试,得到结果。也就是说他们都是可 视化的对系统进行建模。 软件的模型和土建中的模型作用是一样的,是系统的蓝图。蓝图可以帮 你规划要做的补充,模型可以规划要建的系统。模型可以帮助我们理解和弄 清楚问题以及解决方案,模型是对实体的简化,用于理解复杂的系统。可视 化建模就是将模型中的信息用标准图形元素直观的显示 2 7 , 2 9 】。可视化建模的 好处在于它能够通过简单且易于理解的图形来描述系统的各个方面,即使没 有受过专门培训的人也可以非常容易的理解,通过图形比通过文字更容易理 解系统的结构。 下面介绍其中j l 种主要的方法,u m l 则将在下一章作详细的介绍。 1 b o o t h 方法 b o o c h 方法是g r a d yb o o ( - h 从1 9 8 3 年丌始研究,1 9 9 1 年后走向成熟的 一种方法。这个方法区分系统的逻辑和物理结构并描述这两种结构的静态和 西南交通大学硕士研究生学位论文 第13 页 动态语义。b o o c h 方法不是像数据流模型一样的顺序模型,它是一个演化的 模型,是一种迭代和增量的方法,这种思想也是u m l 建模技术的基本特点之 一o b o o t h 方法被区分为微观和宏观的过程。微观开发过程代表开发者或开 发小组的日常活动,包含以下任务:在一定抽象层次上标识类与对象,标识 类与对象的语义,标识类与对象的关系,实现类与对象。宏观开发过程包含 概念化、分析、设计、演化和维护阶段。 b o o c h 方法是u m l 的主要来源,其面向对象的概念十分丰富。主要概 念有:类、对象、继承、元类、消息、域、操作、机制、模块、子系统、进 程等;其模型主要包括:逻辑静态视图( 类图、对象图) ,逻辑动态试图( 状态 转移图、时态图) ,物理静态视图( 模块图、进程图) 以及物理动态视图。 b o o t h 方法强调基于类和对象的系统逻辑视图与基于模块和进程的系统 物理视图之问的区别,同时也区别了系统的静态和动态模型。但是,这种方 法偏向于系统的静态描述,对动态描述支持相对较少。b o o c h 方法的优点是 它在项目的设计和构造阶段的表达能力特别强,其迭代和增量的思想也是大 型软件开发中的重要思想【2 6 2 9 ,4 5 1 。 b o o t h 把对象画成云图,用各种箭头表示对象之间的关系类型。 2 o m t 方法 o m t ( o b j e c tm o d e l i n gt e c h n i q u e ) 方法是i 9 8 7 年提出的,r u m b a u g h 在1 9 9 1 年正式把o m t 应用于面向对象的分折和设计。这个方法是在实体一 关系( e r ) 模型上扩展了类、继承和行为而得到的。 o m t 方法从三个视角描述系统,相应的提供了三种模型: 对象模型:描述对象的静态结构和它们之间的关系,主要的概念 包括类、属性、操作、继承、关联、聚集。 动态模型:描述系统那些随时间变化的方面,其主要概念有状态、 子状态和超状态、事件、行为、活动。 功能模型:描述系统内部数据值的转换,其主要概念有加工、数 据存储、数据流、控制流、角色。 o m t 方法将开发过程分为分析、系统设计、对象设计、实现四个阶段。 o m t 是一种自底向上和自顶向下相结合的方法。o m t 的第一步是从问 题的陈述入手,构造系统模型,这足一种自底向上的归纳过程;系统模型建 立后的工作就是分解,这是一种基于服务( s e r v i c e ) 的分解。这种从具体到 抽象、再从抽象到具体的分析、设计过程符合人类的思维规律,使得需求分 析更为彻底,系统可维护性也得以改善。o m t 的来源决定了它在分析数据 o m t 的使用的图形与b o o c h 类似,但比b o o e h 更简单【2 9 】。图2 - 2 是用 b o o c h 图注方法表示的对象和关系,用o m t 表示的这组关系将与这幅图基 本一样。 w i t h d r a wm o n e y v i e w 。b a l a n c e - ,圣茹氛;+ 、 ,蠡c ;) c _ a r d n a m b e r , ,。a o c c p t c a r d ( ) 、 e j e c 【c m i o 、最耐c a r

温馨提示

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

评论

0/150

提交评论