UML在软件开发中的应用
苏雨洁
(盐城工学院 优集学院 江苏盐城 224001
  要:统一建模语言(UML)是当下最为流行的面向对象建模描述语言之一。关于它的理论研究与实际应用是现在软件工程研究的热门话题。本文首先介绍了UML的概念,并简要介绍了UML的历史,然后重点介绍了UML的主要内容以及UML在软件工程开发中的作用。最后,通过一个简单的案例,介绍UML使用的具体方法。
关键词:UML;研究;应用;开发
The application of UML in software development
SU Yujie
(UGS College, Yancheng Institute of Technology, Yancheng, Jiangsu 224001)
Abstract: The unified modeling language ( UML ) is the most popular object-oriented modeling language now. With regard to its theoretical research and practical application of software engineering is now a hot topic in the Software Engineering Research. This paper first introduces the concept of UML, and briefly introduced the history of UML, and then introduced the UML content and the effects of UML in software project development. Finally, through a simple case,  introduce the specific methods of the use of UML.
Key words:UML;research;application;development
0 引言
统一建模语言 (UML)是非专利的第三代建模和规约语言,[2]是一种建模语言,是进行需求分析和概要设计的利器。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 UML可以贯穿软件开发周期中的每一个阶段。被OMG采纳作为业界的标准。本文首先介绍了UML的概念,并简要介绍了UML的历史,然后重点介绍了UML的主要内容以及UML在软件工程开发中的作用。最后,
通过一个简单的案例,介绍UML使用的具体方法。
1 UML的概述
1.1 UML的概念[5]
Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。 面向对象的分析与设计(OOADOOAD)方法的发展在80年代末至90年代中出现了一个高潮,UML是这个高潮的产物。它不仅统一了Booch、RumbaughJacobson的表示方法,而且对其作了进一步的发展,并最终统一为大众所接受的标准建模语言。
1.2 UML的发展史
1994年10月,Grady Booch和Jim Rumbaugh开始致力于统一建模语言。他们首先将Booch 93和OMT-2 统一起来,并于1995年10月发布了第一个公开版本,称之为统一方法UM 0.8(Unitied Method)。1996年6月和10月分别发布了两个新的版本,即UML 0.9和UML 0.91,
并将UM重新命名为UML(Unified Modeling Language)。UML是一种定义良好、易于表达、功能强大且普遍适用的建模语言。它溶入了软件工程领域的新思想、新方法和新技术。它的作用域不限于支持面向对象的分析与设计,还支持从需求分析开始的软件开发的全过程。面向对象技术和UML的发展过程可用上图来表示,标准建模语言的出现是其重要成果。1997年11月17日,OMG采纳UML 1.1作为基于面向对象技术的标准建模语言。UML代表了面向对象方法的软件开发技术的发展方向,具有巨大的市场前景,也具有重大的经济价值和国防价值。
2 UML的主要内容和特点
2.1 UML的内容
UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;第三,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过
程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。 作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。(1) UML语义,描述基于UML的精确元模型定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者能在语义上取得一致,消除了因人而异的最佳表达方法所造成的影响。此外UML还支持对元模型的扩展定义。(2) UML表示法,定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。这些图形符号和文字所表达的是应用级的模型,在语义上它是UML元模型的实例。
2.2 UML的特点
标准建模语言UML的主要特点可以归结为三点:(1) UML是Booch、OMT和OOSE等方法基本概念的拓展与延伸。(2) UML还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法的影响。UML符号表示考虑了各种方法的图形表示,删掉了大量易引起混乱的、多余的和极少使用的符号,也添加了一些新符号。因此,在UML中汇入了面向对象领域中很多人的思想。这些思想并不是UML的开发者们发明的,而是开发者们依据最优秀的OO方法和丰富的计算机科学实践经验综合提炼而成的。(3)UML在演变过程中还提出了一些
新的概念。在UML标准中新加了模板(Stereotypes)、职责(Responsibilities)、扩展机制(Extensibility mechanisms)、线程(Threads)、过程(Processes)、分布式(Distribution)、并发(Concurrency)、模式(Patterns)、合作(Collaborations)、活动图(Activity diagram)等新概念,并清晰地区分类型(Type)、类(Class)和实例(Instance)、细化(Refinement)、接口(Interfaces)和组件(Components)等概念。因此可以认为,UML是一种先进实用的标准建模语言,但其中某些概念尚待实践来验证,UML也必然存在一个进化过程。
3 UML在数字图书馆中的应用[4]
3.1 数字图书馆的业务建模和需求分析
业务建模和需求的分析的目的是对数字图书馆进行评估,采集和分析系统的建模,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个Use Case模型[3]表达(图1),模型中的活动者代表外部与系统交互的单元,包括用户、图书馆工作人员和外部信息源;Use Case是对系统需求的描述,表达了系统的功能和所提供的服务,包括采购子系统、编目子系统和流通子系统。对于数字图书馆而言,流通子系统还应该考虑到普通书刊流通和生活中数据库系统的实际例子
电子书刊流通的区别。电子书刊是指内容为数字格式、发行为电子方式、用计算机阅读和存储的电子读物,可以实现普通书刊所没有的全文检索,页面批注,摘要,字体缩放等功能。用户无论何时何地,都可以在线借还,这是数字图书馆服务功能的一个重要组成部分,也是对传统图书馆服务功能的延伸和拓展,其中的关键是流通子系统在实现时必须能对电子书刊的版权、以及可以同时借阅的用户数进行保护和控制。
Use
采购子系统
图书馆工作人员
编目子系统
   
图中模型元素之间的实线表示两者存在关联关系,带空心箭头的实线说明存在泛化关系,这里有两种情况,一种是一般与特殊的关系,如“流通子系统”与“普通书刊流通”、“电子书刊流通”的关系;另一种是使用关联,表示一个模型元素需要使用另一个模型元素,在箭头上标有《Use》,如“流通子系统”需要使用“编目子系统”生成的书目数据。
3.2 数字图书馆系统分析和设计
3.2.1 静态结构的分析与设计
数字图书馆拥有大量数字化信息资源,这些资源是多种媒体,多种格式的,而且还是相互关联的。其数据量大,信息长度不定,非结构化信息与结构化信息并存。传统的数据库和信息管理系统在数据模型,系统结构,用户接口等方面都难以实现对这些数字化信息资源的管理和操作,这就决定了数字图书馆必须采用面向对象的方法来建立数据模型和管理模型,建立面向对象的数据库,实现面向对象的信息管理系统。使用UML对数字图书馆系统进行基于面向对象的分析和设计,可以从开发的第一步开始,从系统的底层就把握住数字图书馆信息资源的特征,为下一步的具体实现打好基础。在为数字图书馆系统建立模型时要涉及到处理大量的模型元素,如对象类,接口,组件,节点,图等,可以将语义上相近的模型元素组织在一起,这就是UML的包,包从较高的层次来组织管理数字图书馆的数据模型。图2就是数字图书馆系统的包图,虚箭线说明包之间的依赖关系,如“流通”包依赖于“数据库”包,要使用“数据库”包中的类及数据。带空心箭头的实箭线说明包之间的泛化关系,这里是一般与特殊的关系,如“编目”包与“本馆编目”包、“联合编目”包之间存在泛化关系。
普通书刊流通
本馆编目
0
编目
用户接口
流通
电子书刊流通
联合编目
采购
连续出版物
数据库
2 数字图书馆系统包图
3.2.2 动态结构的分析与设计
数字图书馆提供的各种服务都是建立在分布,开放的信息结构之上,依托高速,可靠的网络环境来完成。每项服务都可以看成一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制顺序图和协同图来帮助观察和理解。
用户
图3是一个电子书刊流通服务的顺序图例子,说明了数字图书馆电子书刊基本流通服务。用户向流通子系统的用户接口登录,经用户合法性验证后,向流通子系统的电子书刊流通模块提交服务请求,电子书刊需要经过版权和复本的验证,以保证电子书刊的每一个复本在同一时间只允许一个用户借阅或阅读。以保护电子书刊出版者的合法权益。然后就可以完成电子书刊的借,还,预约,续借等流通服务,最后退出。
3.2.3 数字图书馆的实现,测试和系统配置
经过系统分析和设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统。然后需要对系统进行测试和排错,以保证系统符合预定的要求,获得一个无措的系统实现。测试结果将确认所完成的系统可以真正使用。最好系统配置的任务是在真正的使用运行环境中配置、调试系统,解决系统正式使用前可能存在的任何问题。
4 结束语
在信息技术迅猛发展的今天,传统图书馆正在向着自动化,网络化,电子化[1]的数学化方向发展,这是目前网络信息资源开发和研究的热点。UML作为一种编制系统蓝图的标准化语言,可以对复杂的系统建立可视化的系统模型,自然决定 了UML在数字图书馆中非常好的应用前景。将UML应用于数字图书馆建设,加快了开发的进程,提高了代码的质量,支持了动态的业务需求,方便集成已有的传统图书馆信息资源,这些大大方便了图书馆的管理工作!可见,UML真的很强大!UML不仅可以应用于数字图书馆的建设,还可以用于建设各种各样的管理系统,就像银行atm取款机,汽车公司的管理系统等等。相信在今后的生活中,UML的应用还会越来越广泛!