已阅读5页,还剩61页未读, 继续免费阅读
(计算机应用技术专业论文)基于构件和三层体系结构软件开发技术析应用研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文i ( j i :究了。gj 1 构什的软件外发技术,分村ir 软f ,| :体系结构的各种风格,总结 了三层体系结构的:f | ;! f :正i ,认为将j = f = j 仆技术j 三层体系结构技术结合起来,进行软什 系统7 i 发其有现实意义。 木文综合分析了两利1 j 支术,捉了j - 明。构f ,f :和j 层体系结构的建模方法。在建 模:r 具的选择j :,我们选用了um i 柏;准建模语苦。考虑到描述基于构件的三层应用 系统的需要,我们存u m l 的j 。期:,j _ r 充了构什元素的表示确1 层次模块图。 我们将朐丽捉的建模方法与扩充厉的u m l 建模工具运川到连锁药局系统的分 析与i 5 2 计,建:了、vj j 系统模型,从而证实了建模方法与扩充后n 0 建模一的有效 陛。 文带照点削析r 连锁药肘系统的儿个典,融构件的i 殳汁。 关键嗣:构f ,| :,软什体系结构,u m i 。,? 二层休系结构,应川系统建模 a b s t r a c t f h ed i s s e r t a t i o nf i r s t l yi n t r o d u c e st h es o f t w a r ed e v e l o p m e n tb a s e do n c o m p o n e n t ,a n a l y z e sv a r i o u ss t y l e so fs o f t w a r ea r c h i t e c t u r e ,a n ds u m m a r i e s t h ec h a r a c t e r i s t i c so ft h r e e t i e ra r c h i t e c t u r e i ti ss i g n i f i c a n tt od e v e l o p t h es o l t w a r ew it ht h ec o m b i n a t i o no ft h e m s e c o n d l y ,o n t h eh a s i so ft h er e s e a r c h ,am o d e l i n gm e t h o db a s e do n c o m p o n e n ta n dt h r e e t i e ra r c h it e c t u r ei sp r o p o s e d u m li sc h o s ea sam o d e li n g l a n g u a g e ,w h i c h isa l s oe x t e n d e da tt h ee x p r e s s i o n so fc o m p o n e n te l e m e n t s a n dt h eh i e r a r c h ym o d e ld i a g r a mi no r d e rt om e e tt h en e e d so ft h ep r o p o s a l t h i r d l y ,am e d i c i n er e t a i1 sc h a i n ss y s t e mh a sb e e na n a l y z e da n dd e s i g n e d b yt a k i n ga d v a n t a g eo fm o d e l i n gm e t h o dr e f e r r e dt h ea c h i e v e m e n t sg iy e nb e f o r e t h ep r a c t i c a la p p l i c a t i o ns y s t e mm o d e lise s t a b l i s h e d ,f u r t h e rm o r e ,t h e v a l i d i t y0 ft h em o d e l i n gm e t h o da n de x t e n d e dm o d e l i n gt 0 0 1h a sb e e np r o v e d a tl a s t t h ed e s i g no fs o m et y p i c a lc o m p o n e n t sd e v e l o p e di nt h em e d i c i n e r e t a i tsc h a in s s y s t e r n i sa r i a l y z e dind e t a i l k e y w o r d :c o m p o n e n t ,s o f t w a r ea r c h i t e c t u r e ,u m l ,t h r e e t i e ra r c h i t e c t u r e a p p l i c a t i o ns y s t e mm o d e l i n g 南京航空航天人学硕一t :q - 协论文 绪论 解决软件危机一直是软件工作者不懈追求的目标。软件危机表现在两个方面口l : 第一,软什丌发效率低,不能满足社会对软件产品的需求。第二,已丌发的软件数 量f 1 益增加,对这些软件产品进行维护困难越来越大。因此,解决软件危机必须从 两个方面着手:第一,提高软件丌发效率;第二,使丌发的产品具有良好的可维护 性。 使用先进的软件丌发方法进行软件产品的丌发是解决软件危机的有效途径。先 进的软什丌发方法应具有这样的特点:丌发效率高,建立的模型容易理解和交 流,系统容易修改年- i l s i 级。软件产品可复用性好。构件技术和体系结构技术是 当今软什工程研究发展的两个主流技术。 构什是一种具有可复用价值的软什模块,i j j o l t l 可复用构件,并用构件技术实现 它们,必将使它们具有广泛的复用价值,利用可复用构件产品丌发系统必将大幅度 提高软件丌发效率。然而,构件只是组装系统的一个元件,好的构件如果缺乏好的 装配结构仍然丌发不出高质量的系统。在进行应用系统丌发u , j ,构件技术必须与其 它技术相结合。 体系结构是对系统的- - j 1 1 宏观描述,它反映了组成系统的构件、构件问的连接、 规则和约束,是对系统结构的一种高层次把握。利用体系构件有利于不同人员间相 互的交流,有利于指导系统的丌发和系统的维护。然后,体系结构并不关心构件的 设计,在进行构件设计州仍然需要其它方法的支持。 可见,这两种技术分别从整体和局部两个不同的角度寻求解决软件危机的办法, 两者在技术上具有互补性。因此,研究如何有效地将两者结合起来,进行软件系统 开发,将具有重大的现实意义。三层体系结构技术是当前软件系统开发中广为使用 的一种新技术,三层体系结构的层次划分与构件i c 别具有相似的特点,三层体系结 构的层次模块体与构件具有相同的可执行文件形式,因此将两者结合起来,在系统 层次划分的基础上,识别出可复用模块,并将它们做成构件,将能使系统模块具有 更高的复用价值,同h t f 勾f - b f t ;j 独立和灵活配置特性将使得系统具有更好的维护性。 本文将尝试将构件技术与三层系统体系结构技术结合起来,创立基于构件和三层体 系结构技术的软件系统建模方法。 在论文安排上,第一章将进行构件技术研究,计划从三个方面进行。首先,研 究构件技术产生的背景,认识为什么会产生构件技术:第二,认识t 勾 f l - 技术,休会 构件技术的实质,比较与其它技术的异同点。第三,探讨如何应用构件技术进行软 件系统丌发。 第二章将进行软什体系结构技术的研究。 f i f , - 7 的系统都存在着体系结构,软件 基丁构什和二层体系结构软f 1 丌发技术的席川研究 体系结构很早就有人提出,那么,到底什么是软件体系结构呢? 这一问题足这一章 首先要回答的问题。既然系统都有体系结构,那么体系结构到底有那些种类呢? 这 一问题关系到软件休系结构风格的研究,这是木章的第二个研论问题。三层体系结 构技术是当今软件丌发广为使用的一种先进技术,那么,nj 芪4 t 一么是三层结构? 如 何划分三层结构? 它有仆么特点? 为仆么能广为应用? 它们组成了本章的第三个研 究内容。 第三章是新的建模方法的提出。要解决的是如何结合构件技术与体系结构技术, 尤其是三层体系结构技术进行软件系统设计。因此,首先必须研究各种建模方法, 比较它们的异同点和优缺点,然后才能很好地融合这些技术,提出好的建模方法。 系统建模离不丌建模工具。建模工具实际上就是建模语言,u m l 是被o m g 批 准为基于面向对象技术的标准化建模语言。为什么建模语言要标准化? 这种标准化 的u m l 建模语言包含哪些内容? 有什么特点? 能否用于新的建模方法? 如果不适 ,玎,能否加以改进? 以及使用这一建模语言需要注意哪些事项? 这些都是我们第四 章要研究的问题。 建模方法、建模工具的币确性和有效性,必须接受实践的检验,爿:在检验巾得 到验证和改进,研究巾我们将以连锁药局系统为背景,按照提出的基于构件和三层 体系结构的建模技术要求,并以扩展后的建模语言为工具,进行应用系统的建模设 计。 在文章编排上,我们决定为每个建模步骤设立一章,于是,便有了五、六、七、 八,共四章。第五章将应用建模方法进行连锁药局系统需求分析,建立连锁药局系 统分析模型。第六章将在系统分析模型的基础上进一步确立连锁药局系统休系结构, 谚 别出系统中的可复用构件。第七章将具体介绍几个典型的构件设计,分析它们的 特点。第八章将给出系统的配置图。最后将给出全文总结和剥今后研究工作的展望。 关于全文的组织,我们可以用图o 1 所示的体系结构图来表示。 2 南京航空航大人学硕一l 学竹论文 图0 1 论文组织体系结构 3 基1 构仆和二层体系乡占构软仆开发技术的虑川研究 第一章构件技术研究 本章讨论的是构件技术。首先,介绍了构件技术产生的背景,即为什么会产生 构件技术:然后时沦了什么是构件技术,它与当今同时流行的面向对象技术有仆么 异同点:最后讨论了构件开发叫需要注意的儿个问题。 1 i 构件技术产生的背景 1 9 6 8 年,面对当时软件业普遍存在的软件需求量大、软件维护困难的严重问题, 北大西洋公约组织( n a t o ) 的计算机科学家们在联邦德国召丌的计算机国际会议 上首次提出了“软件危机”问题。为解决软件危机问题,会议正式提出“软件: 程” 这一新名词【2 l 。之后,软件工作者们一直在为解决软件危机而努力。 所谓软件危机1 2 , 4 1 , 是指计算机软件丌发和维护过程中所遇到的一系列问题。概 括地讲,包括两个方面:如何丌发软什,以满足社会对软件日益增长的需要。 如何维护数量不断膨胀的已有软什。为解决软件危机,软件工程的概念得到了 强化。所谓软件工程就是指运用工程的概念、原理、技术和方法来丌发和维护软什。 传统软件丌发方法强调使用生命周期方法学柬进行软件工程管理。这一方法要 求在进行软件丌发工作之初,通过需求分析预先定义软件需求,然后再一个阶段接 着一个阶段,有条不紊地丌发用户所需求的软件,实现预先定义的软件需求。这种 方法相对早期只重视编程,轻视需求分析,最终产品只有程序代码,没有相应文档 的个体化软件丌发来说是一个很大的进步,传统丌发方法的使用,部分地缓解了软 什危机。然而,传统软件丌发方法仍面临着许:多严重问题,不能承担解决软件危机 的任务。 l - 1 1 传统软件开发方法不能满足社会对软件需求增长的需要 首先,传统方法开发的系统结构稳定性差。传统软件开发方法使用的是结构化 分析与结构化设计技术,这一技术的本质是功能分解。从代表目标系统艇体功能的 竹个处理着手,自项向下不断地把复杂处理分解为子处理,并一层一层分解下去, 宜到仅剩下若干个容易处理的予处理。当所分解的子处理已经十分简单,功能昆而 易见时,就停止这种分解过程,并写出各个最底层处理的处理描述。可见,结构化 分析弓设计技术是围绕实现处理功能的“过程”来构造系统的。然而用户需求不是 成不变的,而且用户需求的变化大部分都是针列功能的,因此,这种变化剥于基 j 过程的设计来说是灾难性的,用这种技术设计m 的系统结构常常不稳定。用户需 4 南京航空航天火学硕:k 学仲论文 求的变化往往造成系统结构的调整,从而需要花费很大的代价才能实现这种变化。 第二。系统功能难以修改l l l :i j 。充。山于结构化分析和设计技术清楚地定义了目 标系统的边界,软件是通过界丽与j 1 1 1 i 世界通信的,因此,由结构化方法设计的软 件系统,其系统结构和功能强烈地依赖于系统边界的定义。而且这利t 基于功能分解 技术而设i ;i 。的软件系统,其内部的各种处理必然紧密地联系在一起,所形成的系统 是一种独立而又内部结构关联极强的系统。在系统发行时,它便集成了广泛的使用 特性,而且,由于内部结构上的紧密关联,导致这些使用特性往往不能单独地被删 除、升级或者替代。因此,对系统进行修改和功能扩展都将是难以进行的事情。 第三,软件的可复用性较差。在对系统进行结构化分析和设计时,把处理分解 成子处理的操作多少带些任意性,也就是说,不同的7 1 :发人员开发系统时,可能设 计出不同的软件结构。s l l :j l - ,在进行系统设计扎数据和对该数据的操作本来是紧 密关联的,然而这种设计方法却把它们当成两个孤立的实体。这样,在实现的产品 中,一些本具有可复用价值的软件成分已经和具体的应用环境密不可分了。结构化 方法丌发的软件系统严重依赖于操作系统或网络等应用环境提供的服务,所开发出 的软件,即使软件中的一些相同模块,也往往不能在其它应用环境或场合重复使用。 上述利,种因素都使得传统软件开发方法的可复用性较差。 尽管传统软件丌发方法通过一系列的工程管理措施和技术方法在定程度上提 高了软件丌发效率,但山于以上种种原因,使得软件丌发效率的提高仍能很有限, 有资料表明,使用传统方法提高软件开发效率的速度远远赶不上社会对软件产品需 求的增加速度”1 。因此,软件工作者必须进一步思考提高软件开发效率的新方法。 1 1 2 传统软件开发方法难于进行系统集成 传统软件开发方法不仅不能有效地提高软件开发效率,而且在系统集成方面也 存在着巨大困难。 前文_ i i i :过,由传统软件方法开发的系统,其内部的各利- 处理“过程”紧密地联 系在一起,所形成的系统是一利,独立而内部结构关联极强的系统。要对一个个这样 的系统进行集成,常常需要花费极大的精力和l 寸问,因为要使原先在不同设计考虑 下的软件成分相互交互、一起工作,绝不是一件简单的事。如果要使一个系统与其 它系统交互,一般的方法是通过设立一组系统服务a p i ( 应用编程接口) 来达到。 若在同一地址空间巾调用a p i ,问题还不算复杂,可以通过诸如脚本语言、共享内 存、剪贴板等底层通汛手段实现。但对于运行在不同地址空问,尤其是运行在异构 软硬件平台的系统,要建立它们之问的通讯,问题变得异常复杂。在必须进行交互 时,传统的方法往往通过一种集r f i 管理的固化接口或能力有限的远程过程调用( r p c ) 来实现。i q , 4 7 1 。然而,山这一种方法实现的通讯不仅丌销大,而且接口难于开发,有 时为了丌发接口所花赞的时f i t l ;l i l 费用超过丌发功能本身所需的时间和费用,并且即 基t t 自4 l :和三层体系结构软 ,j :开发技术的应用研究 便丌发完成,后期维护也不容易进行,弊病很多。 此外,要进行成功的系统集成还存在计:多其它障碍,例如,开发与集成是两种 不同性质的活动,常常需要具有不同类型能力和经验技术的人员:用于集成的产品 也不一定适应用户需求的变化,等等。因此,从系统集成的角度考虑,也必须使用 新的软什丌发方法。 1 1 3 软件系统用户要求改进软件系统结构 随着计算机和网络技术的发展,一方面,应用系统的规模越来越大,系统的处 理越来越复杂,这样的系统如果由一个单体程序实现,并在一台机器上运行,往往 是行不通的。即使可行,系统设计的复杂度、丌发进度、运行效率、可维护性都将 无法控制,系统的安全性也令人担忧。因此,主观上要求将系统细化、分解。 另一方面,使用计算机的组织或部门常常在地域上分散,客观上要求将各利处 理配置到位置最近、安全可靠的地方。因为这样做,既可提高办公效率,又能根据 系统各部分的重要性进行不同级别的安全管理。显然,由传统软什开发方法开发的 单体系统是无法达到这种要求的,即使可以通过一定的方式进行系统间的集成,由 上一小节的分析也可知道,这样做是既费时又费力。 从上面三个方面的讨论可知,无论从社会对软件需求的增长,还是从系统的集 成,或从分布应用角度来看,传统软件开发方法都不再适应软件发展的需要,必须 创立一种新的软件丌发方法。这种软件丌发方法必须具有模块化和构件化的特点, 还必须具有分布式的计算能力。 1 2 面向对象的软件开发方法不堪重任 面向对象软什丌发方法产生于2 0 世纪8 0 年代,之后得到了极大发展。与结构 化方法不同,面向对象方法把客观吐界看成独立对象的集合,对象将数据和对数据 的处理“过程”割装在一起,列象剥夕r 界只提供有限的接口,其内部实现细节在外 界不可见,剥象之问通过消息传递取得胁作,共同完成系统的任务。面向对象软件 丌发方法比较直接地模拟了人类对现实世界的分析和认知过程,相对传统软件丌发 方法而言,它是一个极大的发展“。”w 。 在面向对象技术巾,“类”是对具有相同数据和相同操作的一组相似对象的抽象, 对象是类的实例。类是面向对象技术中的一个重要元素,类的封装、继承和多态特 性为类结构的稳定、类的复用和类功能的扩展提供了有效手段。类把数据和对数据 的处理“过程”封装于对象中,当外部功能发生变化时,这种封装可以保持对象结 构的相对稳定,使得改动仅局限于一个对象内部,减少了因改动而引起的系统波动, 有利于系统的修改和功能扩充。继承把类组成一个层次结构的系统,利用继承的传 6 南京航空航天人学顶j :学位论文 递性,子类可以继承父类的特征( 程序代码和数据结构) ,从而减少了信息冗余,同 时还可以在派生的子类r f l 扩充新的功能。继承使得用户开发新系统时不必完全从零 开始,可以继承已有系统相似的功能,或者从类库中选取需要的类再派生出新类, 实现系统需要的功能。类的多态性使得不同层次的类可以共享同一个方法名,但是, 不同层次的类却可以按照自己的需要来实现这些方法;当类的实例( 对象) 接到该 方法的调用消息时,对象再根据所处的类层次动态凋用对应方法的实现模块。类的 多态性不仅增加了软件系统的灵活性,进步减少了信息冗余,而且提高了系统的 可复用性和可扩充性。 综上分析,类的封装、继承和多态性使得面向对象技术相对于传统软件开发方 法更容易构造出结构稳定、利于复用、易于维护的系统,从而,可以大幅度提高软 件丌发效率,有效地解决软件危机。人们寄希望于面向对象技术,然而,山于面向 对象技术仍不堪重任。面向剥象技术不存在一个标准的框架,由不同编程语言实现 的软件对象无法在同一地址空间里交互合作,更不用说进行跨进程、跨网络空间的 交互合作了。因为这些面向对象丌发方法带给我们的只是一个一个分布在应用程序 汪洋大海中的孤立对象,虽然在理论上,通过对象合作可以有效实现系统集成,通 过类的继承可以大幅度提高软件复用,但实际上,面向列象技术还只能是一种基础, 由它设计实现的系统仍然是一种封闭的系统。 1 3 构件技术 2 0 【i 上纪9 0 年代,软件技术的一个重大发展就是产生了构件技术。1 。构件技术是 而向对象技术进一步发展的产物。构件技术的产生使得软件丌发者可以通过开发可 复用软件构什,并反复使用这些可复用的构件去丌发新的系统,从而得以大大提高 软件生产效率,进一步缓解软件危机。 开发构件和应用构件进行系统构造的技术称为构件技术。那么,什么是构件呢? 所i i n 勾1 ,l :就是指封装了设计和实现,仅向外部提供接口操作,功能相对独立的可执 行软件模块,外部世界只能通过构件接口方法与i 勾f :b 进行功能合作。 可见,构件具有四个特点。”+ ”:第一,具有封装性,构件封装了设计和实 现,仅通过接口与外界交互合作。第二,功f t n i k j t n 、业务过程处理,等等。 2 2 南京航空航天人学硕十学伉论文 然而,u m l 也存在不足,它缺乏构件对象这一元素的定义和图形表示,这样, 在模型中就无法判定一个刑象是普通刘象还是构件对象。由于无法区分普通对象和 构件列象构件列象特点( 可执行文什的形式、接口与方法的特点、位胃可分们与 存取透明性,等等) 就不能表现,无论是建模,理解模型,还是用模型指导编码都 会遇到麻烦。因此为u m l 扩充构什元素很有必要。另外,为了表现系统三层结构 的特点,我们还为u m l 引入了层次模块图。它也是一种静态结构图,反映的是系 统模块之问的逻辑凋用关系。 4 3 扩充后的u m l 表示法 2 0 , 2 1 l 4 3 1 用例图 前面讲过用例的定义,它描述的是系统外部执行者所理解的一个系统功能。系 统所有的用例组合在一起形成的用例图反映了一个系统的功能需求。用例图被用于 需求分析阶段,它的建立是系统丌发者和用户反复讨论的结果,体现了丌发者与用 户剥系统需求达成的共以。 在u m l 中,用例图出一组被系统包围的用例、系统边界外的执行者、执行者 与用例问的通信关系组成。用例图的例予可参见后文的图5 2 。建造用例图的各元素 定义如下: 【用例】用例是系统外部执行者所理解的一个系统功能。它包含一系列的动作, 且动作的执行结果能为执行者所察觉。用例的图形化表示是一个椭圆,椭圆中的文 字描述了用例功能。 【执行者】执行者指用户在系统巾扮演的角色。在与系统的交互中,一个用户 可以扮演多个角色。例如连锁药局系统中,一个人既可以是药剂师,又可以是店铺 经理。执行者的图形表示为一个小人。需要注意的是,执行者尽管用人的图形表示, 但执行者未必一定是人,执行者也可以是一个外界系统。该外界系统因为需要从当 前系统中获得信息而与当前系统交互,因而充当着执行者。 【通信关系】通信关系表示执行者触发用例,并于用例进行信息交换。在用例 图巾,通信关系用连接执行者和用例的不带箭头的连线表示,这条线可根据绘图h - j 的方便画成平直的、斜的或弯曲的。 在建立用例模型_ j ,还经常用“使用关系( u s er e l a t i o n s h i p ) ”和“扩展关系 ( e x t e n dr e l a t i o n s h i p ) ”来精化用例模型。使用关系表示一个用例使用了另一个用 例的行为。当在几个用例中存在许多相似的动作,但又不想重复描述这些动作时, 采用使用关系。使用关系类似于对象的调用,即一个用例通过调用另一个用例来完 成自身功能。扩展关系表示一个用例扩展了另一个用例的行为。当一个用例与另一 基r 构f ,| :羽i 三层体系女。甜软什_ 丌发技术的应川研究 另个用例相似,但所做的动作多一些,就可以用到扩展关系。扩展关系类似于面 向刘象技术中类之问的继承关系。在图形表示上,使用和扩展关系用单向箭头表示, 箭头所指方为被使用者或被扩展者,具体的使用或扩展关系由箭头上的加“”符 号的文字区分,参见图5 2 。 4 3 2 类图与对象图 类、对象是面向对象技术中的最基本的元素,也是u m l 的类图和对象图中的两 个重要元素。类图和对象图在u m lt i f 表示系统中类或对象的静态结构。 【类图】它描述的是系统中类与类之问的静态关系,如类与类之问的关联、依 赖、聚合、继承等关系。类图是定义其它图的基础。在类图基础上,有状态图、顺 序图、交互图等进一步描述系统的动态行为。 【对象图】它是类图的一个实例。在u m l 中,对象图与类图具有相同的表示形 式,全部被实例化了的类图称为对象图。与类图不同,对象图中可以存在类的多个 实例;另外,因为对象有生命周期,因此,对象图只能在系统的某时间段存在。 因为可能存在类的多实例和对象的生命期问题,对象图往往较复杂,因此,实际建 模中人们较多地喜欢选用类图而很少选用对象图。 【类】类是对客观世界中具有相似结构、行为和关系的一组对象的描述。在u m l 巾,类有三种图形符号表示方式。第一种是细节抑制方式,只在一个方框中给出类 名,如图4 1 a 所示;第二种是分析级细节方式,将一个方框划分成上、巾、下三个 矩形栏,分别给出类名、属性和方法,如图4 i b 所示。第三种是实现级细节方式, 给出更多的细节,图符表示与第二种方式相同,但有着更多的细节。 类名是个类的标识;属性是类的数据组成,属性具有可见性,并用符号“+ ”、 “# ”、“一”区分,分别表示公丁r ( p u b l i c ) 、保护( p r o t e c t e d ) 和私有( p r i v a t e ) ; 方法表示类允许的操作,它也具有可见性,其可见性的符号表示与类的属性相同。 匹 麝 类名 i i 封4 1 a 图4 i 类的图符表示 图4l b 【列象】对象是类的一个实例,在u m l 中,对象表示为只有两个矩形栏的方框, 上面一栏是名字栏,填写对象的名称,并给出所属的类名;下面一栏是属性栏,并 给 每个属性的值,如图4 2 所示。 2 4 南京航空航天人学硕。f :学位论文 图4 2 对象的图符表示 【构件】构件是一种特殊的对象类,主要表现在:第一,它以二进制的形式而 存在。例如,在w i n d o w s 系统环境巾构件以e x e 文件形式或d l l 动态运行库形式 存在。第二,侮个构件可以有多个接口,每个接口中可以有多个方法。但这些接口 中定义的方法都为虚方法,必须在接口内部加以设计实现。第三,构件可存在于分 确j 环境中,但客户对它的调用是透明的调用者不必考虑其位置分前i ,剥其的调用 就好似调用本地构件列象一样。由于以上原因,构件应当有着与对象或类不同的表 示符号。 u m l 中没有t j f t :的表示图符,因此,我们必须扩充。我们定义了两种构什表 示符号。第一利,为调用时表示图,图巾只给出构件名、接口及接口中的方法,如图 4 3 所示。图中的“”表示其他更多的接口或接口方法。这种图符使用时还可 以进一步简化,只表示构件名及实际被调用的接口,而不必画出全部接口。第= 种 方式为设汁方式图符,不仅给出构件名及其接口,而且给示出接口方法在构件类中 的实现情况,如图4 4 所示,图中的虚线表示方法的在构件内部对应的实现。 图4 3 构件被调用时表示图图4 4 构件设计时表示图 由于构件访问的位嚣透明性,因此,构件元素可以和普通的对象或类元素一样 参与u m l 的各种建模。 l j :界上的事物存在着相互关连,对客观世界对象抽象的类之间当然也存在着关 连。在u m l 巾,主要定义了如下五种类的关连关系: 【关联关系】关联关系表示两个类之问存在语义上的联系。例如,个人为一 家公司工作,一家公司有许多办公室,我们就认为人和公司、公司和办公室之问存 2 5 基丁构什和三层体系结构软件开发技术的麻_ 【l j 研究 在某种意义上的联系。在分析和设计时的类图模型中,则在对应“人”类和“公司” 类、“公司”类和“办公室”类之间建立关联关系。关联可以是单向的,例如公司捌 有办公室;关联也可以是双向的,例如人为公司工作,公司雇佣人。在u m l 中, 单向关联用单箭头表示,双向关联用不带箭头的线段表示。关联具有名字,如f j i 面 所讲的“拥有”、“为l :作”、“雇佣”;双向关联还可以用一个名字来代替两个名 字,如“人”类和“公司”类之问的关联名称可以命名为“工作合同”关系,如图 4 5 所示。关联两头的类以某种角色参与关联。图4 5 中,“公司”以“雇主”的角 色,“人”以“雇员”的角色参与的“工作合同”关联。“雇主”和“雇员”称为角 色名。如果在关联上没有标出角色名,则隐含的类的名称为角色名。角色名还具有 多重性( m u l t i p l i c i t y ) ,表示可以有多个对象参与关联。如图4 5 ,雇主( 公司) 可 以雇佣( 签工作合同) 多个雇员,表示为“p ;雇员只能与一家雇主签订工作合同, 表示为1 。 角色名 图4 5 关联关系 关联名 【聚集关系】聚集关系是一种特殊形式的关联,用于说明对象间的整体部分 关系,在这种关系中,如果整体不存在,部分仍就存在,例如,某个课题组类包含 许多成员,当课题组不存在时,其成员照样存在,这些成员可以是其它课题组的成 员。在u m l 中,聚集关系用空心菱形箭头表示,箭头一端为整体,参见图5 2 所示。 【组成关系】它也是一种特殊形式的关联,用于说明对象间的整体一部分关系, 但与聚集关系不同,在这种关系中,如果整体不存在,部分也会随之消失。例如, w i n d o w s 窗口由窗口标题、外框和显示区组成,它是一种组成关系,因为一旦窗口 消亡则各部分同时消失。在u m l 中,用实心菱形箭头表示组成关系,箭头一端为 整体。 【继承关系】继承关系定义了一般元素和特殊元素之间的分类关系,一般元素 称为父类,特殊元素称为子类。 在u m l 中,对继承有三个要求:特殊元素应与一般元素完全一致,一般元 素所具有的关联、属性和操作,特殊元素也都隐含地具有;特殊元素还应包含额 2 6 南京航空航天人学硕十学位论文 的信息;允i , :使用一一般元素实例的地方,也应当能使用特殊元素。例如,图5 2 巾的账单与入账单和f “账单之问的关系就符合这三个条件,因而属于继承关系。在 u m l 图形表示巾,继承用一端有空心三角形的线段表示,空心一端为父元素。 【依赖关系】依赖关系表明某个元素的变化将剥其它元素产生影1 1 日。假如有两 个元素x 、y ,如果修改元素x 的定义可能会引起对另一个元素y 的定义的修改,则 称元素y 依赖于元素x 。在类图中,依赖由各种原因引起,如:一个类向另一个类 发消息;一个类是另一个类的数据成员;一个类是另一个类的某个操作数。u m l 中 依赖关系用单向箭头表示,图5 2 中大量存在着这种关系。 4 3 3 包图 在u m l 巾,包就是指按照某种指导原则( 如按功能、按层次等) ,将许多类集 合成一个更高层次的j 1 3 位,形成一个高内聚低耦合的类的集合。其表示符如图4 6 所示。当要显示包的内容口- j ,将包的名字写在包图符上面的小方框内( 左图) ,否则 写在下面的主方框内( 右图) 。 图46 包f f j 图符表示 包图主要显示由类集合而成的包,以及这些包之问的依赖关系,有时还显示包 和包之问的继承和组成关系。这些关系的表示图符与类关系的表示图符一样。 4 3 4 成分图 成分图是指用依赖关系链接起来的系统软件成分的集合。它用于描述与特定语 言相关的软件系统在编译、链接或执行时的系统软件各成分之间的依赖关系。组成 成分图的软件成分包括源代码、目标代码、可执行代码,等等。它们是组成成分图 的元素,不同的成分山不同的符号表示。 注意区分成分图与前面扩充的构件元素之间的差别。前者描述的是由建模元素 组成的一种系统模型图,后者仅仅是一种用于系统建模的图符元素。成分图中可以 包含有构件元素,也可以有其它元素,如源代码文件、目标代码文件。 4 3 5 层次模块图 为了表现系统三层结构的特点以及模块之问的调用关系,我们参照结构化建模 2 7 基t 构什和三层体系结构软f l 。开发技术的应j j 研究 技术,为u m l 引入了层次模块图( 1 l i e r a r c h ya n dm o d u l ed i a g r a m ) ,目的是想用这 一图形表现模块在三层系统结构巾所处f i 勺层次,以及各个模块之间的调用关系。这 罩的模块一般指子系统,也可以是一个广义的构件。为区分模块层次,我们使用了 三利- 图形,分别表示界面模块、业务模块和数据模块,如图4 7 所示。模块之间的 调用关系用带箭头的线段表示。 4 3 6 配置图 图4 7 层次模块图 配置图描述系统硬件的物理拓扑结构以及在此结构上执行的软件模块。配置图 可以显示计算机:t 声点的拓扑结构和通讯路径、节点上运行的软件模块,甚至软件模 块内部所包含的重要对象、类,等等。 在配置图中,节点代表一个物理设备以及其上运行的软件系统,如一个p c 机 终端、一台打印机、一个m o d e m 等等。在u m l 中,节点表示为一个立方体,节点名 写在左上角。节点之问的连线表示系统之问进行交互的通信路径,通信协议或网络 类型放在连线旁边的“( ) ”中标明。配胃图的举例可参见图8 1 4 3 7 顺序图 顺序图是以 寸问顺序显示的对象在其生命期内的交互活动记录。它只显示参与 的剥象,而不刻画对象问的上下文关系或对象的属性。顺序图使用两维坐标:垂直 坐标轴表示时间,水平坐标轴表示不同的对象,如图4 8 所示。顺序图中的对象用 一个带有垂直虚线的矩形框表示,标有对象名和它的类名。垂直虚线即生命线,表 示对象的生存时间段。如果对象在该时间内的某点被删除,对应对象的生命线就在 该点结束,用“”标记表示。生命线问的水平箭头线段代表对象间的交互消息, 并用消息名标记。消息线所连接的妖瘦矩形代表激活。激活表示一定的时间段内对 象执行操作的持续时问。 2 8 南京航空航天人学硕士学能论文 4 3 8 合作图 图4 8 顺序图 和顺序图一样,合作图也用于描述相互合作的对象间的交互关系,但侧重点不 一样,顺序图着重体现交互的时问顺序,合作图则着重体现交互对象问的静态链接 关系。 合作图中剐象的表示与顺序图中的一样,但是,如果一个对象在消息的交互中 被创建,则可在对象名称之后标记f n e w ;类似地,如果一个对象在交互期间被删除, 则可在列象名称之后标记 d e s t r o y 。对象问的消息传递用箭头线表示,并标出消息 名、消息参数、以及消息的序号等信息。如果将上面的顺序图表示成合作图,则可 以表示成图4 9 的形式。 4 3 9 状态图 5d e l c t c 图4 9合作幽 状态图用于描述一个特定对象在其生命周期内所有可能的状态及引起状态转 移的事什。一个状态图包括一系列的:状态以及状态之间的转移。所有的对象都具有 状态,状态是列象执行了一系列活动的结果:当某个事f - i 发生后,剥象的状态发生 变化。 2 9 基r 构什和三层体系结构软f ,f = 丌发技术的应j 1 j 研究 状态图中定义的状态有初态、终态、中问状态和复合状态。其中,初态是状态 图的起始点,而终态则是状态图的终点。在u m l 中,初态用黑圆点表示,终态用圆 内带黑圆点的图形表示。一个状态图只能有一个初态,而终态则可以有多个。 i = i = l 问态是一个圆角矩形表示的图符,它包含两个区域:名字域和动作域。动作 域是可选的,且这些动作的执行不改变对象的状态。0 m l 为动作域提供了三种不带 参数的标准事件动作,分别标识为e n t r y 、d o 、e x i t ,表示进入状态时触发的动作, 处于状态巾可触发的动作,退出状态h - 触发动作。 复合态表示可以进一步细化为多个予状态的状态,子状态之间有“与”和“或” 两种关系。“或关系 1 说明在某- h , t n 仅可到达一个状态;“与关系”说明复合状态 在某一时刻可同时到达多个子状态,因此又称为并发子状态。 状态图巾状态之问带箭头的连线称为转移。状态的变迁通常是由事件触发的, 触发转移事件必须标识在转移线上。如果转移线上未标明事件,则表示在源状态的 内部活动执行完后自动触发完成。 例如,图4 1 0 是我们为多页帐票印刷界面构件所画的一个状态图。图中的每 个状态都是一个复合态,存在放大和缩小的两个“与关系”子状态。图4 11 为一个 多页预览的显示图形。 图4 1 0 印刷构什多页显示状态图 南京航空航天人学硕士学位论文 4 3 1 0 活动图 图4 1 1 印刷构件的一个多页预览显示界面 活动图的应用非常广泛,它既可以用来描述类方法的行为,也可以描述用例和 对象内部的工作过程。活动图由状态图变化而来,但目的与之不同。活动图依据对 象状态的变化来捕获动作( 将要执行的工作或活动) 与动作结果。活动图中一个活 动结束后将立即进入下一个活动。而在状态图巾状态的变迁可能需要事件触发。在 构件设计一章用到了很多活动图。活动图主要存在以下元素: 活动和转移:一项操作可以描述为一系列相关的活动,活动包括一个起点、一 个或多个终点。一个活动可以顺序地跟在另一个活动之后,这是简单的顺序关系。 在u m l ,巾,活动用一个两侧为半圆的退化矩形表示。活动中还使用菱形符号表示条 件转移。它可以有多个输出转移,但在活动运行- 巾,只可能有一个输出转移被触发。 泳道:普通活动图只告诉人们发生了什么,没有告诉人们该项活动山准完成。 带泳道( s w i m1 a n e ) 的活动图解决了这一问题。它将普通活动图的逻辑拙述与顺序 图、合作图的责任拙述结合起来,用一个矩形框来表示泳道,属于某个泳道的活动 放在该矩形框内,将剥象名放在矩形框的项部,表示泳道中的活动由该对象负责。 带泳道的活动图形式如图7 2 所示。 3 1 基丁构制:和三层体系结构软1 ,| = 开发技术的赢川研究 带泳道的活动图形式如图7 2 所示。 活动图可用来表示并发行为,它使用一个称为“同步条”的水平粗线表示。同 步条将一条输入转移分为多个并发执行的输出转移分支,或将多个输入转移分支合 为一条输出转移。需要说明的是,只有输入的转移全部有效,同步条才会触发转移, 进而执行后面的活动。 4 4u m l 使用讨论 u m l 是一种定义良好、易于表达、功能强大的_ 丌放式建模语言,得到当今软件 界广泛重视,并为o m g 批准为标准建模语言,因此以u m l 为工具进行系统建模具 有着重要意义。但在使用u m l 进行系统时,必须强调两点: 第一,u m l 只是一种建模语言( 工具) ,不是建模方法。 u m l 不包含任何的建模过程指导,它并不i f = 述如何运用面向对象的概念与原则 去进行系统建模,而只是定义了用于建模的各种元素,以及由这些元素去构成各种 图形的规则。因此,在使用u m l 进行系统建模时,必须结合具体的建模方法。 第二,u m l 的各种图形对于建模问题的表达存在很大的冗余性,实际建模h - j 应 该有所选择。 u m l 包含十种图,经扩充后有1 1 种之多。以合作图为例,合作图中表达的静 态信息( 如各种关系) 都可以在静态类模型图中得到表达。又如,同时采用类图和 列象图的做法不但增加了多余的复杂性,而且从理沦上也难于作出圆满解释。特 别是用于系统动态建模的四种图形,它们体现的都是系统运行时的对象运作行为, 表达上重复,只不过表现侧重点不一样,应根掘需要加以选择或有所省略。例如, 不要为系统中的每个类都画状态图,尽管这样都很完美,但太浪费精力。诈确的做 法是只对状态复杂的类,为帮助理解其行为状态的各种变化爿画状态图。顺序图和 合作图适合描述单个用例中的几个对象行为。其中顺序图突出对象问的交互顺序, 而合作图的布局方法能更清楚地表示剥象之间的静态连接关系。当行为较为简单时, 顺序图和合作图是最好的选择;但当行为比较复杂时,这两个图将失去其清晰度, 这h 寸可考虑使用活动图。活动图的一个明显优点是能够表现活动的条件转移和活动 的并发执行。顺序图和合作图仅适合描述对象之问的合作关系,而不适合对象行为 的精确定义。如果描述跨越多个用例的单个对象f q , j q t 为,应当使用状态图。 总之,选择建模图形应当以能清楚地表现系统结构和系统行为为宗旨。就像工 程制图巾用不着为每个元件都画出三视图一样,系统建模电用不着为系统画出每种 模型图。 南京航空航天入学顶一j :学位沦文 第五章连锁药局系统需求分析 本章首先揣述了连锁药局系统的需求,然后利用用例分析方法对系统需求分析, 建立了系统用例模型。并在此基础上,分析了系统的主要对象类,确立了系统问题 域。本章最后还讨沦了建立初始用户界面的一些原则。 5 1 连锁药局系统需求j l y i 述 当今日本的各个领域,都经历着一场巨大的变革,在医疗、福利事业方面,改 革也在加速进行。其中医药分业化的速度尤为最快,预在2 0 1 0 年,分业率将达到 7 0 。这样,药店的作用和重要性将大幅度提高。可想而知,在今后医疗福利事业 不断改革的情况下,医疗、配药业务将需要更加专业的知识、更为广泛的信息和更 为高效的处理能力。另一方面,随着药价差异的减小、计算机网络的普及、药局间 竞争的加强,药局走向连锁经营方式逐渐成为一种发展趋势。连锁药局软件系统正 是这一需求下的产物。连锁药局系统产生后,可以实现药局的统一订货、内部药品 互相调剂、患者药历资源共享,从而可以增强各药局在市场中的竞争力。 连锁药局的总体运行模式是药局各自经营,本部统一管理,其机构组织可用图 5 1 的形式来表示。药局经营以处方经营为主,即按患者从医院丌来的处方进行配 药,并按法律或本部统一规定收取费用。药局也可进行非处方性药品经营,将药品 卖给其它经营者。药局t l i l i ) l , f _ 需要某药品而本药局无该药品时,可向其它药局请求调 拨。药局定期进行库存盘理,对数量有山入的药品生成调整单,并注明原因。如果 发现药品库存量少于警戒线,生成药品订货单;如果发现库存药品剩余超过警戒线, 生成药品报剩单。药局定期将处方经营情报、药品凋整情报、订货单、报剩单等统 计报送本部。 图5 i 药局机构组织图 木部为药局提供一系列的服务,如全系统药品查询,统一订货,相互凋济,患 者药历资源共享,过剩药品公告,等等。本部还负责对药局处方情报、剥外经营情 3 3 基丁二构件和三层体系结构软件开发技术的廊h j 研究 报、库存情报、订货情报等进行分析,生成2 5 类帐票( 帐票种别允许修改和扩充) , 以帮助本部和药局经营者进行经营决策。本部还根据各个药局的订货请求单与报剩 请求单,本着先连锁店内部调拨,后向外订货的原则,保护药局经营者利益少受损 失。订货药品直接发往各药局,药局向本部汇报药品入库情报。本部还将无法调拨 的各药局药品情报公布上网,供求购者选购。 系统要求的运行环境为w i n d o w s 9 5 w i n d o w s 9 8 w i n d o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025企业与个人借款合同范本
- 2025养殖产品买卖合同模板
- 2025小学租房合同模板
- 我的生日派对记事文(15篇)
- 快乐的节日记事作文13篇范文
- 产品设计及优化过程文档编写规范
- 2025酒店全面租赁合同
- 社区服务合同履行承诺书6篇
- 中国负片冲洗机项目投资可行性研究报告
- 2025标准宅基地买卖合同样本
- 汽车坡道雨棚施工方案
- 质量风险基础知识培训课件
- 2025国家公务员行测试题及答案解析(地市级)
- 新农人 面试题目及答案
- 事业单位财务报销讲解
- 俄罗斯禁忌礼仪课件
- 糖尿病酮症酸中毒(DKA)概述
- 心肺复苏与海姆立克急救法
- 江门市重点行业领域安全风险常见隐患识别及整改指引(行业领域)(压缩版)
- 2025年中国糖尿病肾脏病基层管理指南(全文)
- 项目穿透式管理课件
评论
0/150
提交评论