利用UML的面向对象分析建模
2011-12-26黄金晶李文骏
黄金晶 李文骏
(1.苏州工业职业技术学院信息工程系 江苏苏州 215104 2.苏州大学 江苏苏州 215006)
利用UML的面向对象分析建模
黄金晶1李文骏2
(1.苏州工业职业技术学院信息工程系 江苏苏州 215104 2.苏州大学 江苏苏州 215006)
介绍了利用UML统一建模语言进行面向对象分析建模的方法,并以一个呼叫中心系统的开发为背景,采用UML建模语言,对该系统进行用例建模、类与对象建模以及动态建模,展示了UML在需求分析建模中的优势。
UML;结构化分析;面向对象分析;用例建模
0 引言
随着面向对象技术的发展,人们对面向对象方法的认识也从面向对象程序设计语言逐渐过渡到对面向对象分析与设计方法的认识,出现了多种面向对象的建模方法,比如Booch、OMT、OOSE方法。然而,面对众多的建模方法,用户难以选择,并且没有统一的标准。因而,在Booch、Rumbaugh和Jacobson三人的共同努力下,推出了UML统一建模语言[1]。经过多年的发展,UML已被OMG(Object Management Group)定为信息技术的国际标准。本文主要探讨UML在面向对象分析方法中的应用。
1UML语言概述
UML(unified modeling language,统一建模语言)是一种形式化的建模语言,可以对具有静态结构和动态行为的系统进行建模[2]。UML由视图、图、模型元素、通用机制等几个部分组成,它与具体的程序设计的语言无关,可以适用于不同程序语言要求的项目。进行系统建模,只需要定义一定数量的视图,每个视图由一组图构成,可以表示系统的一个方面。UML的视图[3]包括用例视图、逻辑视图、构件视图、并发视图、部署视图。
用例视图从功能角度出发,是系统的外部用户观察到系统功能的模型图,一般以用例图来表示。与用例视图相比,逻辑视图主要关注系统的内部,它主要从系统的静态结构和动态行为角度显示如何实现系统的功能,静态结构可以用类图和对象图描述,动态结构用顺序图、协作图、状态图等进行描述。构件视图主要显示代码组件的组织结构,由构件图构成。并发视图显示系统的并发性,可以采用状态图、顺序图、协作图、活动图等进行描述。部署视图用来显示系统的物理部署。
2 需求分析建模
制作一个软件需要经历计划、分析、设计、实现、测试、维护等几个阶段。而准确收集用户的需求,并进行合理的分析、整理,建立完整的需求分析模型是开发一个项目成败的关键。倘若错误地理解了用户的需求,并按此需求进行项目开发,必将造成客户需求与实际项目不符,这是开发者和客户都不希望发生的。因而,需求分析是软件生命周期中一个重要的阶段,采用合适的需求分析技术可以减少或者避免需求的错误。当前占主导地位的需求分析建模方法有传统的结构化分析方法(Structured Analysis)和面向对象的分析方法(Object-oriented Analysis)。
2.1 结构化的分析建模
结构化分析方法是强调开发方法的结构合理性以及所开发软件的结构合理性的软件开发方法[4]。它主要利用图形表达用户需求,比如通过数据流图、数据字典、结构化语言、判定表以及判定树等对系统加以描述。
在需求分析阶段绘制系统的数据流图(DFD),并辅以数据字典加以说明,对系统数据的存储采用实体关系(E-R)图来描述。然而结构化方法无法适应不停变化的需求,难以扩充新的功能接口,当用户需求发生变化时,开发方往往需要花费较大的代价来支持这个变化。面向对象分析则由于对对象的封装使得它能弹性地适应需求的变化,因而面向对象的分析方法受到越来越多人的青睐。
2.2 面向对象的分析建模
面向对象的分析方法有很多,本文主要讨论利用UML统一建模语言进行分析建模。需求分析就是要获取用户的需求,建立用例模型是需求获取的一种较好方法。面向对象分析方法以用例模型为核心,配以类图、对象图、状态图、时序图、构件图等图形模型。下文结合一个呼叫中心系统利用UML进行面向对象分析建模。
2.2.1 用例建模
用例建模[5]描述系统具备的基本功能,不考虑具体的实现细节,用例建模由用例图组成,基本组成部分是系统、参与者和用例。一个系统往往包含若干用例,每个用例代表一个功能,参与者是与系统交互的外部实体。
对呼叫中心系统进行面向对象建模,首先需确定系统的参与者。一般呼叫中心系统的参与者至少有接线员、客户、管理员三类人员。其次,确定系统的用例。不同的呼叫中心具体的功能不相同,大体上包括呼叫控制、录放音、质检功能、呼叫重定向等基本功能。图1显示了该呼叫中心系统的用例图。
图1 用例图
用例间还存在泛化、包含、扩展等关系。父子用例之间即构成泛化关系。若一个用例包含其他用例,那么就构成包含关系。比如呼叫控制包括应答、呼出、释放、静音等功能,如图2所示。
图2 包含关系的用例图
用例图只是简单地用图描述系统,但为了使用户对该系统有更加详细的了解,需要写出用例描述。下面以呼叫控制为例说明用例描述。
用例名称:呼叫控制
标示号:1
前置条件:用例启动前接线员已经签入。
基本流:①接线员应答用户来电;
②接线员接听完电话后释放话机;
③接线员在通话中进行静音等操作;
④接线员对外呼出。
备选流:①接线员忙碌,来电进入等待队列;
②VIP用户的特殊处理;
③客户忙碌主叫等待。
后置条件:用例成功,在系统中建立并存储通话记录。
2.2.2 类与对象建模
类与对象是面向对象技术的基本元素。类是对本质相同一类事物的抽象。在UML中,类与对象模型用类图和对象图来表示,属于静态建模的范畴。在UML中,类图用一个长方形表示,垂直地分为三个区域,从上到下分别表示类的名字、类的属性、类的操作。在简略的类图中,下面的两个区域可以省略,只保留类名。正如对象是类的实例,对象图也是类图的实例。
图3表示的是呼叫中心系统中接线员与坐席两个基本类以及它们之间的关联关系。接线员通过签入的方法与坐席发生关联,1个接线员对应与1个坐席。
图3 接线员与坐席的类图
2.2.3 动态建模
动态建模描述系统中的对象在执行期间是如何进行动态交互的,可以用时序图、状态图、协作图等来描述。
顺序图通过描述对象之间发送消息的时间顺序显示对象之间的动态协作,重点是对象间消息传递的时间顺序。顺序图有两个坐标轴,横坐标轴显示对象,纵坐标轴显示时间。呼出是呼叫中心中非常重要的一个用例,图4表示的是该用例的顺序图。
状态图是描述一个实体可能的状态以及引起状态转换的事件。因而,状态图是由若干状态以及引起状态间转换的事件构成。通过状态图可以了解一个实体在整个生命周期的运动轨迹。图5是呼出实例的状态图。
3 结束语
图4 呼出用例顺序图
图5 呼出用例状态图
本文探讨了利用UML进行需求分析建模的过程,并将其运用于一个呼叫中心系统。利用UML统一建模语言进行需求分析建模,一方面可以帮助项目组成员更好地了解用户需要,防止开发组成员由于草率的开发项目而带来的不必要的损失;另一方面,由于UML是一个统一的标准,因而采用UML进行需求分析将更加规范化,并大大提高工作效率。
[1]王长元,赵莉,王淑蓉.软件工程与建模[M].西安:西安交通大学出版社,2010:217-218.
[2]刘嘉,童格明,李明,等.基于本体的UML类图的语义推理[J].计算机应用与软件,2011,28(4):212-214.
[3]翟亚红,杨艳霞.UML建模技术的研究与应用[J].科技创业,2010(4):156-157.
[4]白桂梅.结构化与面向对象分析方法之间关系的研究[J].现代电子技术,2009(20):137-139.
[5]方义秋,冉华锋,葛君伟.基于用例的面向方面需求建模[J].计算机工程,2009(35):4.
Object-oriented Analysis Modeling Based on UML
HUANG Jin-jing1LI Wen-jun2
(1.Information Engineering Department,Suzhou Institute of Industrial Technology,Suzhou 215104 2.Soochow University,Suzhou 215006,China)
This paper introduces the method of object-oriented modeling based on UML.Then under the background of a call center,this paper conducts use case modeling,class and object modeling,dynamic modeling about the system,which shows the advantages of doing requirement analysis by UML.
UML;structured analysis;object-oriented analysis;use case modeling
TP 311.52
A
1672-2434(2011)05-0013-03
2011-05-31
黄金晶(1984-),女,助教,硕士,从事研究方向:数据库与数据挖掘