基于银行系统的UML教学要点研究

2015-03-11 06:40
关键词:面向对象软件工程任务驱动

高 勇 钢

(安徽师范大学 数学计算机科学学院,安徽 芜湖 241000)



基于银行系统的UML教学要点研究

高 勇 钢

(安徽师范大学 数学计算机科学学院,安徽 芜湖 241000)

摘要:本文以银行系统实例为线索,在面向对象分析与设计过程中,用UML描述不同阶段的可视化模型,重点说明建模的细节与要点,从而能更好地把握UML内涵,提升教学效果。

关键词:银行系统;软件工程;面向对象;任务驱动;案例

UML 统一建模语言是用来表达面向对象分析与设计的国际标准语言,适合于以体系结构为中心、用例驱动、迭代式和渐增式的软件开发过程,可用于具有实时性要求的软件系统建模和复杂数据处理的信息系统。近年来,国内外许多高校的计算机专业开设了UML课程[1-3],目的是培养优秀的软件系统开发工程技术人员。UML为软件系统的不同阶段产物建立可视化模型。具体表现为:用例图、类图、对象图、包图、交互图、活动图、状态机图、构件图、部署图等。UML只是提供了表达分析与设计的统一符号,而如何利用这些符号去分析与设计,UML是不能提供的,这需要借助软件开发过程。为UML配套的过程主要是RUP,即Rational统一过程,该过程是以用例驱动、以架构为中心的迭代增量开发,过程主要包括业务建模、用例建模、用例分析、架构设计、构件设计和代码实现。

软件工程的方法学分为传统的结构化方法和面向对象的方法,UML是为面向对象方法服务的,而传统的UML教学方法主要是对不同的图的逐一讲解,却没有纳入面向对象软件工程的方法学中讲解。许多教材没有针对一个实例能够完整从需求获取、需求分析、面向对象的分析、面向对象设计的软件生命周期去安排内容,章节间衔接差,例子往往较简单,不同章节的实例互不相关。同时学生由于受入门的高级语言C语言影响较深,缺乏面向对象的概念和思想,因此对面向对象方法学本身理解不透,当然对面向对象方法的表示符号UML也掌握不好。为了提高UML教学效果,文献[4]提出结合案例分析的方法;文献[5]提出了基于项目驱动的教学理念以及课程案例设计,同时建立学习网站辅助课程教学;文献[6]提出以项目驱动型教学方法为核心设计了课程结构与课程内容组织;文献[7]提出将 RUP 与 UML 完美地结合起来,通过 RUP 过程组织项目,同时将 UML应用于项目表达;文献[8]与文献[9]提出结合案例和任务驱动的教学方法。以下以银行系统为例,在面向对象分析和面向对象设计的不同阶段,用UML符号表示不同阶段模型,指出每个阶段建模的要点。

1面向对象分析阶段

1.1分析阶段原始需求获取

在需求获取中,信息的来源有涉众、硬数据、相关产品、重要文档、相关技术标准和法规。获取信息的方法有传统方法、集体获取方法、原型、模型驱动、认知和基于上下文等方法。这个阶段也可以用业务建模来描述,业务建模是使用软件建模技术描述企业管理与业务所涉及的对象,以及这些对象所包含的属性、行为和彼此之间的关系,从而建立业务模型与软件的系统模型的对应关系,保证系统模型能够满足业务需求。经过需求获取后,整理原始数据,则得到银行系统简要的功能性需求,包括以下内容:(1)创建账户,(2)存款,(3)提款,(4)转账,(5)取消账户。

1.2用例建模

用例模型用于需求分析阶段,描述了软件系统外部参与者所理解的系统功能,确定系统应具备哪些功能、提供清晰一致的系统功能描述。用例建模阶段:(1)识别参与者:包括银行职员、客户和银行。(2)识别用例:登陆、存款、取款、管理账户、转账,其中转账包含本行转账和跨行转账。(3)用例脚本描述。根据已识别出所有的参与者与所有的用例,则可用例图对需求分析可视化建模,如图1所示。对该用例图要仔细检查参与者与用例,调整用例图。在检查Actor时,要识别所有的Actor、每个Actor至少参与了一个用例、每个Actor确实是一个角色(role)、防止两个Actor在一个用例中扮演相同的角色等。在检查用例时,每个用例中至少有一个actor、每个用例独立于其他用例、如果两个用例总是以同样的顺序执行等。在检查用例脚本时,要明确事件流的开始和结束,Actor与系统交互的信息要清晰等。

图1银行系统用例图

1.3分析类图建立

分析阶段的重点在于找出体现系统核心业务所需数据的实体类,而界面和业务逻辑细节分别由边界类和控制类隐藏,实体类组成系统分析类图。寻找分析类的方法有:名词识别法、根据用例确定类、CRC分析法、系统实体识别法等。分析类图包括:定义分析类的职责、定义分析类的属性和定义分析类之间关系。分析类的职责是要求某个对象所要执行的事务契约,在设计中将演化为类的操作,分析类的职责可以从交互图中的消息得到或从非功能需求中得到。获取分析类的职责应使用如下模式:信息专家模式、创建者模式、高内聚模式、低耦合模式、控制器模式。分析类的属性用来存储对象的数据信息,在识别分析类的过程中,也可同时发现类的属性,包括所有格后面的名词或形容词、字段列表中所描述的数据需求和不能成为类的名词、业务常识、业务领域的专家意见和以前类似系统。对象不能孤立地存在,它们之间通过消息进行交互,从而实现用例的目标,从交互模型中发现对象之间的链接,从而在相应的类上建立关联关系,从业务领域出发,分析领域中所存在的实体类之间的语义联系,为那些存在语义联系的类之间建立关联关系。图2是银行系统的实体类所构成的分析类图,图3所示的顺序图将有助于发现分析类包含的操作以及类之间的关联。

图2分析类图

图3 分析阶段顺序图

2面向对象的设计阶段

2.1架构设计

类或者对象其定义了一个系统的核心行为和概念。一个系统由多个子系统组成,每个子系统中的领域所包含的对象都不只一个,因此系统需组织相关类,建立一个包含子系统的总体的体系结构,各子系统之间的通信和耦合。在面向对象软件开发中,类是构建整个系统的基本构造块。但是对于庞大的应用系统而言,其包含的类将是成百上千,包括类之间复杂的关联关系、多重性等,因此需引入包图来降低系统的复杂度。图4是银行系统的包图。

为了提高软件的开发效率,希望软件能够复用。软件体系结构能否复用,则涉及到软件体系结构风格。常用的软件体系结构的风格有管道与过滤器、面向对象系统、基于事件的系统、分层系统、仓库系统及知识库、C2风格、客户/服务器、三层C/S结构、浏览/服务器等。针对银行系统,可采用三层C/S结构。

2.2构件设计

类是系统的最基本构件,也是构成子系统构件的基本元素。设计类来自分析类,引入可用的架构机制、设计模式等设计概念来获得设计类。边界类设计要研究具体的用户交互的场景、界面元素的布局等人机工程学方面。实体类设计一般具有持久性架构机制,数据库的一些设计原则将影响实体类的设计。控制类的设计是类设计的难点,如果控制类只是将边界类信息传递给实体类,则该控制类可以舍去,如控制类的控制流过于复杂,则应分解该控制类,对存在相同或相似的控制流时,则应提供公共控制类。在分析中,只要尽量捕获系统需要的行为,而完全不必考虑如何去实现这些行为。在设计中,则必须准确地说明类是如何履行它们的职责,完整的属性集合,包括详细说明的名称、类型、可视性和一些默认值,将分析类指定的职责转化成一个或多个方法的完整集合。图5是银行系统的设计类图,图6是设计阶段对用例取款的顺序图。

图4银行系统包图 图5设计类图

图6 设计阶段顺序图

3结束语

本文以银行系统实例为线索,用软件工程的面向对象的方法,从需求分析到面向对象分析、面向对象设计各个阶段,采用UML描述相应阶段的可视化模型,强调每个阶段细节与要点,从整体上把握UML统一建模语言课程的内涵和效果。

参考文献:

[1] 胡荷芬, 吴绍兴, 高斐. UML系统建模基础教程[M].2版.北京: 清华大学出版社, 2014.

[2] 刘鹏远, 温珏, 桂超. 李祥面向对象UML系统分析建模[M]. 北京: 清华大学出版社, 2013.

[3] 谭火彬. UML 2面向对象分析与设计[M]. 北京:清华大学出版社, 2013.

[4] 衣 杨, 容福丽, 马飞腾,等. 结合案例分析基于UML的面向对象可视化建模教学[J].中山大学学报(自然科学版), 2007, 46(2): 73-77.

[5] 吴含前, 吉逸. 面向对象技术UML教学改革与实践[J]. 计算机工程与科学, 2011, 32(A1): 23-26.

[6] 杨林, 方芳, 左泽均. 统一建模语言UML课程项目驱动型教学方法的研究与实践[J]. 长春师范学院学报(自然科学版), 2013, 32(4): 164-165.

[7] 王艳萍, 李海燕, 许 波. UML实例化教学改革初探[J]. 实验室研究与探索,2011,30(9):220-223.

[8] 翟亚红. UML建模技术课程教学模式改革与实践[J].牡丹江师范学院学报(自然科学版),2013, 85(4): 57-58.

[9] 张丽平, 李 松, 郝晓红. 结合案例和任务驱动的UML教学方法研究[J]. 黑龙江教育学院学报, 2012, 31(3): 50-52.

Research on the Teaching Points of Bank System Based on UML

GAO Yong-gang

(School of Math. and Computer, Anhui Normal University, Wuhu 241000, China)

Abstract:In this paper, by an example of the banking system, in the process of object-oriented analysis and design, using UML to describe the various stages of visual model, especially on the details of the modeling and key points, which can better grasp the connotation of the UML, we improve the teaching effect.

Key words:software engineering, object-oriented, task-driven, case

文章编号:1007-4260(2015)03-0120-05

中图分类号:TP311

文献标识码:A

DOI:10.13757/j.cnki.cn34-1150/n.2015.03.032

作者简介:高勇钢,男,安徽芜湖人,硕士,安徽师范大学数学计算机学院讲师,研究方向为图像处理、软件工程。

基金项目:安徽省高校自然科学基金项目(KJ2012Z116)。

收稿日期:2014-09-11

网络出版时间:2015-8-25 15:40网络出版地址:http://www.cnki.net/kcms/detail/34.1150.N.20150825.1540.032.html

猜你喜欢
面向对象软件工程任务驱动
依托工作室的软件工程实践教学研究
基于工程教育认证的《软件工程》课程教学质量建设研究 
任务驱动式教学模式在电子技术课程中的应用
任务驱动教学法在《网络应用服务管理》教学中的应用
关于如何创新和完善计算机软件工程管理的探讨
任务驱动, 启发学生自学
任务驱动教学法在中职信息技术教学中的运用
面向对象Web开发编程语言的的评估方法
峰丛洼地农作物面向对象信息提取规则集
基于面向对象的车辆管理软件的研制与开发