基于UML的面向对象开发与研究

           基于UML的面向对象开发与研究

摘要:统一建模语言UML(Unified Modeling Language)是一种标准的、功能强大的建模语言。该文在介绍UML的基础上,以企业生产管理系统中库存管理子系统的分析和设计为例,详细介绍了UML(统一建模语言)的实际建模过程。

关 键 词:UML;面向对象;建模

1 引言   统一建模语言(Unified Modeling Language,UML) 是业务和软件应用建模的标准语言,不仅是一种通用的面向对象的可视化建模语言,而且可以接受很多不同的建模类型,包括解释业务处理的模型、事件流、查询序列、数据库、体系结构等。UML适用于各种软件开发方法、软件生命周期的各个阶段、各种应用领域以及各种开发工具,它是一种总结了以往建模技术的经验,并吸收当今优秀研究成果的标准建模方法。它包括概念的语义、表示法和说明以及静态的、动态的系统环境及组织结构模型。它可被交互的可视化CASE工具所支持,这些工具提供有代码生成器和报表生成器(如RationalRose)。UML并没有定义一种标准的开发过程,但它适用于迭代式的开发过程,它是为支持大部分现存的面向对象开发过程而设计的。 2 UML建模技术作为一种可视化建模语言,UML共定义了10种模型图。这些模型图可归纳为3类模型(如图1所示):需求模型、对象模型和体系结构模型。需求模型是从用户角度描述系统功能,主要用于系统需求分析阶段;对象模型是从开发人员角度详细的描述系统;体系结构模型是从系统设计人员角度整体描述系统。 可视化模型系统 需求模型 对象模型 体系结构模型 静态模型(用例图)动态模型(活动图) 静态模型(类图,对象图,包图);动态模型(协作图,序列图,状态图) 软件体系结构模型硬件体系结构模型(构件图,配置图)图1 UML可视化建模系统静态模型是UML的核心模型,包括6种图形:(1)用例图(use case diagram):描述了待开发系统的功能需求,从外部执行者的角度来理解系统。(2)类图(class diagram):描述系统中类的静态结构,包括其属性、行为及相互关系。在UML中主要有3种类的形式:边界类、实体类和控制类。实体类保存要放进持续存储体的信息,通过该类可设计数据库。控制类负责协调其他类的工作,每个用例图通常都有1个控制类,控制用例图中的事件顺序。而类与类间的继承、关联、依赖等关系也必须在建模时列出,通过类和类间的关系反映出本系统的基本框架。在这些关系中,有一对多关系和多对多关系。(3)对象图(object diagram):描述类的实例及实例间的关系;(4)包图(packaged diagram):主要显示类的包以及包之间的依赖关系、继承关系和组成关系。(5)组件图(component diagram):描述系统各组件的物理结构及依赖关系;(6)配置图(deployment diagram):描述系统硬件的物理拓扑结构及其执行软件,常用来帮助理解分布式系统。动态模型是对静态模型的补充,它包括3种图形:(1)状态图(state diagram):描述类的对象的所有可能状态及状态间转换的条件;(2)活动图(activity diagram):用以描述用例和对象内部的工作流程;(3)序列图(sequence diagram)和协作作图(collaboration diagram)描述对象间的动态合作关系。前者着重体现对象间消息传递的时间顺序,后者着重体现对象间的静态链接关系。两者可相互转换。 物理级建模 n          详细设计 ¨         类图 ¨         数据库设计模型 ¨         DDL脚本 ¨         构件图 ¨         配置图 逻辑级建模 n          分析和初步设计 ¨         类图 ¨         序列图 ¨         状态图 概念级建模 n          需求分析静态模型是UML的核心模型,包括6种图形:(1)用例图(use case diagram):描述了待开发系统的功能需求,从外部执行者的角度来理解系统。(2)类图(class diagram):描述系统中类的静态结构,包括其属性、行为及相互关系。在UML中主要有3种类的形式:边界类、实体类和控制类。实体类保存要放进持续存储体的信息,通过该类可设计数据库。控制类负责协调其他类的工作,每个用例图通常都有1个控制类,控制用例图中的事件顺序。而类与类间的继承、关联、依赖等关系也必须在建模时列出,通过类和类间的关系反映出本系统的基本框架。在这些关系中,有一对多关系和多对多关系。(3)对象图(object diagram):描述类的实例及实例间的关系;(4)包图(packaged diagram):主要显示类的包以及包之间的依赖关系、继承关系和组成关系。(5)组件图(component diagram):描述系统各组件的物理结构及依赖关系;(6)配置图(deployment diagram):描述系统硬件的物理拓扑结构及其执行软件,常用来帮助理解分布式系统。动态模型是对静态模型的补充,它包括3种图形:(1)状态图(state diagram):描述类的对象的所有可能状态及状态间转换的条件;(2)活动图(activity diagram):用以描述用例和对象内部的工作流程;(3)序列图(sequence diagram)和协作作图(collaboration diagram)描述对象间的动态合作关系。前者着重体现对象间消息传递的时间顺序,后者着重体现对象间的静态链接关系。两者可相互转换。   ¨         用例模型 ¨         对象模型 ¨         活动图                    图 2 建模各阶段及相关UML构造 3 UML建模技术应用 UML适用于系统开发过程中从需求规格描述到系统完成后对系统进行测试的不同阶段。可视化建模则是将模型中的信息用标准的图形元素直观地显示。下面通过开发中的实例具体说明UML建模技术在生产管理系统开发中的应用过程。企业生产管理系统一般分为基本信息管理、销售管理、采购管理、库存管理、生产管理和系统管理几个子系统。利用UML可以描述每个子系统在开发周期的各个阶段,现以库存管理子系统为例进行具体说明,图2给出了基于UML的系统开发与设计的一个概观,对每个建模阶段都给出了该阶段的主要活动以及支持该活动的主要UML元素。限于篇幅,本文只是对各个建模阶段的部分活动作了介绍。 3.1 概念级建模从现实中用户的需求到整个管理信息系统的建立,人们首先要做的是概念模型的建立。概念模型反映了人们对现实世界的认知与理解,是从现实世界到人们大脑世界的映射,对后期企业MIS的建设起着先导性的作用。而UML所提供的用例建模、对象建模、活动图等正是通过与用户、分析人员的相互交流,对他们的描述进行抽象描述,使各种业务可视化,以便用户、分析人员、开发人员和设计人员都对整个企业MIS有一个整体上的把握。用例模型描述了该业务系统的主要功能,通过分析可知,库存管理子系统的主要业务包括物料的出入库管理、盘点、台帐、报表生成、预警等,主要的参与者包括仓库管理员、物料使用人员、物料计划制定人员、物料采购人员、物料数据库。参与者与各个业务用例之间的交互如图3所示。用例图的一大优势是通信,用户、分析人员、开发人员可以从这个用例图取得大量信息。通过这个使用用例,他们可以知道谁要使用这个系统,知道项目的具体范围。这样有助于寻找缺少的功能和整体把握系统的设计思想。 物料采购部门 最高仓库预算 最低仓库预算 生产部门 物料出库 物料入库 指定库位 物料计划部门 仓库管理员 存库信息 物料台帐 物料细账 物料数据库 库存盘点 报表生成图 3 仓库管理用例图在企业生产管理中,物料的出入库是库存管理最主要的业务过程,合理的出入库流程不仅能加快出入库的效率,而且能能够对库存信息做到心中有数。具体流程如图4所示。通过该活动图,用户和开发人员可以进一步了解物料入库这一业务用例的执行的“幕后”行为。 收到入库单 入库审核 检查库位状态 发出预言 指定库位 更新帐目 检查库存量 检查盘点状态 正在盘点 图 4 物料入库活动图 3.2 逻辑级建模逻辑模型是指系统的功能模型,反映了信息处理系统的本质。建立逻辑模型的真实用意无非是为了确认系统应用程序应该满足用户的最终需求(包括输入和输出两方面),并且将直接指导程序代码开发人员的在开发工作。在此阶段,UML提供了交互图、类图等模型。例如用户、分析人员、开发人员想查看单个用例对象的行为,就应该使用交互图,UML中有两种交互图,即序列图与协作图,两者可以互相转化。序列图以时间顺序显示对象在其生命周期内的交互活动,下面以物料入库用例的顺序图为例来进行说明,如图5所示(见下一面)。通过此序列图,可以看出物料入库的整个执行过程(当然该图是表示的所以行为都是正确的情况下)。在该序列图中添加了入库与数据库事务管理两个控制,这样有利于控制物料入库中事件活动执行的顺序。在序列图的基础上,利用面向对象的思想来进行描述,把各类控制也作为对象处理。从而得到如图6所示物料入库类图。从 <<entity>> 入库单类(FROM实体包) <<PK>>入库单编号 <<FK>>供应商号 <<FK>>物料编号填写人实收数量应收数量入库日期存货供应 创建新得入库单()添加入库单()得到入库单()   <<boundary>> 入库单窗口类(FROM边界包) 创建入库单()登记数据()提交数据()       <<entity>> 物料信息类(FROM实体包) <<PK>>物料编号物料名称物料数量计量单位 得到物料信息   <<CONTROL>> 入库数据库管理类(FROM控制包) 保存入库单保存到数据库   <<CONTROL>> 入库控制类(FROM控制包) 审核数据() 控制数据()                           控制   图 6 入库用例类图图中可以看出该系统包括实体类(入库单类、物料信息类),控制类(入库控制类、入库数据库管理类),边界类(入库单窗口类),并且描述了各个类之间的关系。类图较为详细的描述了各个对象的属性、行为及关系等静态结构,这将使得系统开发、测试人员对系统中各个对象的整体把握带来了非常大的便利。 3.3 物理级建模该阶段是对对上一阶段进一步细化,细化分析类的方法和相互关系,细化各个子系统的接口和交互,得到可以使用的设计模型,完成系统的物理配置图,包括构建图和配置图,同时对于企业管理系统设计尤为重要的是在此阶段设计人员可以为转向数据库模型做准备,如图7所示。从图7中可以看出这种转化是把类(classes)映射到表格(tables);把属性(attributes)映射到列(columns);把类型(types)映射到数据类型(datetypes);把关联(associations)映射到关系(relationships),这些将会有助于开发人员理解系统与数据库的交互,使得系统分析设计与数据库的设计同步进行,避免了数据库设计与应用系统的脱节。 图 5 物料入库序列图   <<entity>> 入库单类(FROM实体包) <<PK>>入库单编号 <<FK>>供应商号 <<FK>>物料编号填写人实收数量应收数量入库日期存货供应 创建新得入库单()添加入库单()得到入库单()   <<entity>> 物料信息类(FROM实体包) <<PK>>物料编号物料名称规格型号计量单位数量 得到物料信息   1 图 7 向数据库的映射转换   4 结束语在开发企业生产管理系统过程中,根据系统特点,在进行系统功能需求分析时,选择利用UML进行系统建模,对于系统开发的顺利进行和与用户双方的交流,能取得了好的效果。表示的标准有效地促进了不同背景人们的相互交流,促进了系统设计、开发和测试人员的相互理解,使开发流程变得十分清晰。这表明,将UML用于企业生产管理系统的系统建模将极大地促进系统的规范性、实用性和先进性。 参 考 文 献 [1]EricJ.Naiburg,Robert A.Maksimchuk。UML数据库设计应用[M]。陈立军,郭旭译。北京:人民邮电出版社,2002。 [2] Martin Fowler,Kendall Scott。UML精粹(第2版)标准对象建模语言指南[M]。徐家福译。北京:清华大学出版社,2002。 [3] Wendy Bogge。UML with Rational Rose从入门到精通[M]。北京:电力工业出版社,2000。    

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值