如何绘制UML类图

如何绘制UML类图,第1张

类图的属性和方法是指类本身的属性和行为,类及其属性和方法是在程序设计过程中产生的,类图只是用Visio绘制出来,用于项目团队成员间或项目干系人之间的沟通和交流。例如:如果要设计一个关于销售苹果的程序,苹果就可以看作一个实体(类),其基本属性有颜色、形状、味道、种类等,行为有开花、落果、膨大、成熟等行为。

下面给出绘制苹果类图的方法和步骤:

第一步:启动Visio2010或更高版本,如下图:

第二步:在模板类别中选择“软件和数据库”,进入选择模板窗口,如下图:

第三步:选择“UML模型图”,并用鼠标双击“UML模型图”图标,进入UML绘图窗口,如下图:

第四步:选择“UML静态结构”,如下图:

第五步:按下鼠标左键,拖动“类图标”,到工作区域窗口,如下图:

第六步:双击工作区域窗口的类框图,如下图:

第七步:在UML类属性窗口,可以修改类的名称,添加属性(特性)和 *** 作(方法)

第八步:在UML类属性窗口,修改类名为“苹果”,如下图:

第九步:在UML类属性窗口,选择特性,分别输入苹果的颜色、形状、味道等属性,类型为数据类型,可以选择字符串、整型等,如下图:

第十步:在UML类属性窗口,选择 *** 作,分别输入苹果的行为开花、落果、膨大、成熟方法,样例中方法名称用的中文,实际应用应该采用英文,如下图:

绘制完成的UML类图

最好用的就是enterprise architect。小巧甚至有不用安装的携带版

visio功能太弱 顺序图状态图都没有 powerdesigner也差不多 只是做数据库会好些

relational rose看上去很有名 但ibm的恶习 用这玩意就要装一大堆软件 新版的用Eclipse做的感觉比旧版的难用多了

介绍

下面我要介绍的Bold for Delphi就是是一套优秀的基于UML模型驱动的面向对象的数据库开发框架 包括了几十个组件组件 以及 个以上的类 可以用来轻松地实现信息模型设计及基于信息模型的的应用程序

基础概念介绍

为了使大家对Bold for Delphi整个框架的使用有一个大概的了解 下面将演示如何用UML设计一个简单的模型并用Bold来完成 并包括如何用Bold快速实现一个简单的 *** 作界面

自打我和我老婆认识以后 就染上了她的臭毛病 比较喜欢乱花钱 没有节制 结果搞的自己常常是挣的不如花的多 老要借外债 后来痛定思痛 决定要对每月收支情况做预算 严格控制费用支出 为此写了还写了好多的财务小程序 下面要讲的这个例子程序就是一个常见的家庭小账本程序 它可以用来统计家庭中的收支情况 软件的功能要求如下

可以定义家庭中的各个人员的信息 可以输入收支情况 并同消费的人员关联起来 给出一定时期内消费的情况统计 作为未来家庭预算的依据

建立信息模型

在产品的需求分析阶段 我们首先要建立数据库程序的信息模型 一般来说信息模型主要是指基于ER图的实体关系模型 这是因为我们使用的数据库大部分都是关系型数据库 虽然有些数据库 比如Oracle有面向对象的特性 但不是很完善 一般很少使用 而关系型数据库有一个很大的问题就是无法直观的体现面向对象的思想 关系型的ER模型能够清晰地描述业务域的静态的数据视图 但你无法从模型获取实体的 *** 作及其相互之间的交互 同时 也很难在关系型数据库中简单地实现继承 重载 多态等等面向对象的技术 因此现代数据库开发方法所提倡的面向对象的编程思想无法简单 清晰 平滑地映射为关系型数据库中的表结构

统一建模语言(UML)是一种以可视化的方式建立软件系统框架 并进行文档化的语言 UML语言是对当今软件工程领域成熟设计实践的一个总结 并且已经被实践证明是可以成功地描述大型的复杂系统的 目前国内很多的大型公司已经开始在软件开发过程中使用UML作为一种标准的信息模型设计语言了 Bold for Delphi就是基于UML的 它内置了一套自己的UML建模工具 当然我们也可以使用Rose或者ModelMaker来进行UML设计

面向对象的UML类图则可以说是对ER模型的一个扩展 它对实体之间的关系以及相互之间的作用也进行了描述 ER模型只是对要进行保存的数据进行的模型化 而类图则包括了全部的类实体的属性以及它们的 *** 作和相互作用 它可以使我们对业务域问题有一个更精确的视图 通过使用各种类图技术可以更容易地 也更快速地建立正确的软件系统

基于Bold for Delphi的数据库开发革命性的一点就是允许我们直接把基于UML的类图映射为关系型数据库的存储 而无须手工的通过代码进行转换 要注意一点的是 Bold同其它建模工具如Together ModelMaker不同 它生成框架代码时只使用了UML中的类图 而Together等可以利用UML图中的类图 协作图等其它UML元素来生成代码框架 但是Together不负责生成对象模型对应的关系数据库模型

类模型

下面的这个类图就是我们的账本程序的一个简单类图

图中显示了两个类 人员信息类 Person 以及账目信息类AcctItem 人员类和账目类之间的连线描述了两个类之间的关系 关系包括一个标题PayAssoc揭示了两者之间的关系是支付的关系 每个属性 PayPerson 和 Pay 以及关系多重度因子 和 n 表明每个人可以完成多个账目的收支 而每个账目至少要有一个关联的人员 同时类图还描述了下面一些业务规则

一个人的信息要有名称 账目信息中包含收支金额大小 以及发生日期

上面的类图如果使用关系型数据库来实现的话 需要建立主从表 并将人员和账目之间的关联约束通过应用程序代码强制一些运行逻辑来完成 这时通常要通过补充详细的文档来描述需要强制的业务逻辑 如果没有详细的设计文档 实现代码时就很容易遗漏某些重要的商业规则 同时这些文档在整个的数据库开发的生命周期里面都需要人来手工地维护 难免会出现文档和模型不匹配的错误 而且文档的工作量比较大 而程序员数量又相对不足的话 程序员会觉得既要写代码又要写文档 无形中增加了很多工作量 难免会有抵触情绪 这些都会影响工作的效率

对于这样的问题 Bold则通过精确描述信息模型 无须详细规则描述文档可以将模型自动的转变为实现代码 商业规则在整个数据库开发生命周期内由Bold的类来维护 减少了文档的工作量和出错的可能

建立示例程序

首先 我们要安装Bold for Delphi Bold的一个月评估版可以从 boldsoft 获取 同时D 的架构版内置了Bold 这里我就不详细介绍申请和安装的过程了 安装好后Bold会在IDE的组件面板中添加很多组件 接下来我们就开始建立使用Bold的Delphi程序了

在Delphi中选File|New Application创建一个新的应用程序

保存窗体文件为MainForm pas保存工程文件为CMoney dpr

添加一个数据模块 设定数据模块的名字为DmMoney

将数据模块保存为CDataModule pas

为了使用Bold来建立系统的信息模型 要进行下列 *** 作

从Bold Handles 组件页上选择BoldModal(命名为bmMoney) BoldSystemTypeInfoHandle(命名为bsthMoney)和BoldSystemHandle(命名为bshMoney)到数据模块中

设定bsthMoney的BoldModal属性为bmMoney

设定bshMoney的BoldSystemTypeInfoHandle 属性为bsthMoney

其中BoldModel组件将被用来保存模型 即类 类的关系 约束以及类型等 这些信息将在设计时作为字符串保存到Delphi的窗体和数据模块文件中 在运行时Bold将执行一些模型的中间转换过程 将模型转化为BoldSystemTypeInfoHandle控件所使用的格式 并选择实现可持续性的机制

在设计时储存在BoldModel组件中的信息模型可以被看做元数据 就象数据库的库表和字段结构一样的信息 而BoldSystemTypeInfoHandle组件则保存BoldSystemHandle所需要的运行时信息 这些信息是对UML模型的一种运行时的表达 这个组件是其他Bold组件的信息源 BoldSystemHandle组件则被用来表达整个系统的业务域元素 可以理解为对象空间 通过对象空间我们可以在运行时获得设计时元数据表达的对象的运行实例 目前用到的三个控件已经可以很好的应用在不需要保存数据的环境中了 但账目记录这类数据库程序必须要保存用户输入的信息 因此还需要添加支持数据可持久性的控件 这里为了快速演示的需要 我们使用XML文件作为存储介质 接下来要添加XML可持续控件到数据模块中

从Bold Persistence组件页上选择BoldPersistenceHandleFileXML控件(命名为bphxMoeny)添加到数据模块中

设定组件的BoldModel属性为bmMoney控件

设定bshMoney组件的PersistenceHandle属性为bphxMoeny组件

现在组件关系示意图如下

BoldPersistenceHandleFileXML组件将使我们的程序可以使用XML文件来保存和读取对象 这是一个使用很方便的控件 特别是在快速原型设计期间 因为在原型设计期间 模型经常会被改动 而重新生成数据库表是很费时间的 而XML文件可以使我们非常快的变更我们的模型设计 当模型基本稳定后 可以去掉这个控件 转而切换为其他使用关系型数据库进行存储的可持续性控件 这样的开发方式可以使我们不需要改动整个程序就能很容易地改变数据持续层的存储策略 也就是前面所说的 数据库平台无关设计

除了前面的一些基本的属性设置外 我们还要设定下列控件属性

组件 属性 值 说明 bsthMoney UseGeneratedCode false 是否使用bold生成类代码 这里暂时先不使用 稍后我们会进一步介绍 bphxMoeny FileName Data xml 指定保存数据的xml文件名 bshMoney AutoActivate true 告诉Bold控件在程序运行后马上打开xml文件用于数据存储

建立模型 下面的步骤是建立我们的模型 Bold for Delphi内置了一个树形的UML建模工具(应该说Bold美中不足的一点就是没有提供象Visio和Rose那样基于拖放的模型设计界面) 我们可以双击BoldModel(bmMoney)组件调出模型设计工具 bold UML模型编辑器(见下图)包含了应用程序模型信息 数据类型信息和关系数据库映射信息

模型编辑器支持下列实体类型

Model: 模型 全部业务域实体集合

Package: 包 整个模型的一个子集所包含的实体 可以将大模型分解为小模型来减少系统复杂度

Class:类 类似于Delphi的类的概念(Delphi的类可以从UML的类来生成) 但包含Object Pascal无法直接描述的类的信息和相互关系 Bold框架通过关联类和特殊的列表类封装了一些额外的功能使得我们可以很容易的处理复杂的类关系

Attribute: 属性 类似于Delphi中的property概念 然而在Bold中 这些属性可以在模型中直接保存而无需我们编写属性的Get Set方法

Operation: *** 作 等价于Delphi中的类的过程和函数

Association: 关联 代表了类之间的关系 关联可以使用类来表达 关联也可以有 *** 作和属性 在Bold中建立关联的复杂工作同样可以由框架来实现 我们无须编写代码来完成

Role: 角色 代表关联同类的连接

Data Type: 表示模型所支持的不同数据类型 它可以被扩展以支持用户自定义的数据类型

下图是不同实体类型在模型编辑器中是如何标识的

所有的实体类型都可以通过编辑器的右键菜单来创建和修改属性 同时我们选中实体节点后 实体和全局的选项会显示在右侧的编辑器中 其中重要的有

Name: 模型的名称

lishixinzhi/Article/program/Delphi/201311/24785

电话计费系统不仅是电信运营商运营支撑系统(BOSS)主要组成部分,也是宾馆、学校、大中型企业必备的管理系统之一。灵活性、准确性、实时性是它的生命。而UML作为面向对象分析与设计的一种标准表示,其最终用途是为不同领域的人们提供统一的交流标准,在电话计费系统中运用UML有助于解决系统开发过程中各类人员(系统架构师,软件设计人员、开发人员、客户、用户)之间相互交流困难的难题,从而建立起一个具有灵活性、准确性、实时性的系统。电话计费系统按照电信业务规范可以划分为数据采集、话费批价、账务处理3个主要系统,而每一个系统又可以分若干个子系统。笔者主要论述基于UML的电话计费系统的分析与设计。

1 UML概述

UML(统一建模语言,Unified Modeling Language)是一种标准化的面向对象的图形化建模语言。它由图与元模型组成,其中的图通常表示UML的语法部分,而元模型是UML的语义部分,它通常起到解释图的含义的作用。图形化表示系统各阶段的元素是UML的特色所在。UML提供了9种不同的图,按其行为特征可以分为两大类,一类是静态图,包括用例图、类图、对象图、组件图、配置图。另一类是动态图,包括序列图、协作图、状态图和活动图。

我们也可以按照从不同的角度为系统架构来将这9种图划分为5种视图:

第一类是用例图(Use case diagram),它通常用于表示客户需求,从用户需求角度描述系统功能,并指出各功能的 *** 作者。

第二类是静态图(Static diagram),包括类图、对象图和包图。其中类图描述系统中类的静态结构,并且定义系统中的类与类之间的联系。对象图是类图的实例,它不是真实的类图,通常用于反映实例的数据结构,及各对象之间的关系。包图由包或类组成,表示包与包之间的关系,主要用于描述系统的分层结构。

第三类是行为图(Behavior diagram),它包括状态图、活动图。其中状态图是对类所描述的事物的补充说明,它显示了对象所有可能的状态以及引起状态发生变化的条件。活动图是一个连续的工作流,它由各种动作状态组成,用于描述各用例之间的活动过程。

第四类是交互图(Interactive diagram),它包括序列图、协作图。其中序列图主要反映显示对象之间的动态协作关系,它强调对象之间消息发送的先后顺序,同时显示对象之间的交互。协作图描述对象间的动态协作关系,主要用于上下文相关的对象之间的动态协作关系。

第五类是实现图(Implementation diagram),它包括组件图、部署图。其中组件图主要用于反映代码的物理结构及各物理部件之间的依赖关系,部署图用于表述系统中的软硬件结构。

2 系统分析

2.1 计费的基本原理

话费计费的依据是用户的通话记录(Call record)。通话记录主要由主叫号码、被叫号码、通话开始时间、通话时长字段组成。话费的计算公式可以如下描述:

Fee=f(caller,called,startDateTime,duration)

其中:Fee为话费;caller为主叫号码;called为被叫号码;start Date Time为通话开始时间;duration为通话时长。

对于一个营业区内的所有电话,基本话费标准批价是一致的,上面公式可以简化为:

Fee=f(called,start Date Time,duration)

电话网络是全球性的,每一个电话都有唯一的号码,不可能对每一个号码都给出不同费率,自然就电话地理区域的不同、用途的不同进行了分类,这就是通话种类(如国际长途、国内长途、区内、区间、信息台等等)。

由于日期与时间的不同,电话用户产生呼叫的频次差别很大,白天呼叫话务量高,夜晚话务量较低,节假日话务量较低,工作日则话务量高;为了提高电话网络的利用率,电信运营商都实行按日期与时间段的优惠资费,以吸引用户在网络较空闲的时候通话。

通话的时长是按单位来计算的,如长途按6 s为1个单位,本地按前3 min后1 min为单位计算。

对上述公式的实现的不同产生了不同的资费标准(如信息产业部颁布的电话资费标准)。

2.2 功能性需求

通过对计费基本原理和目前正在使用的计费系统的分析,参考相关电信业务规范,可得出标准话费计费系统的系统用例图(见图1)。

2.3 性能需求

满足5万话单以下的电话(或150万话单/d)计费,话单处理速度5 000条/min。计算后的费率精确到分。

2.4 输入输出的需求

采用文件级的批价,文件格式如下:

主叫,被叫,通话起始时间,通话时长(单位为s)

每字段之间用“,”号分隔,每行一条话单。

例:98745632,98745632,2006-01-01 11:32:50,160

文件名按生成时间命名:

如:2006-01-03 10:00:10生成的文件文件名为20060103100010

输出文件:数据库的话单记录表,异常话单记录表

3 系统设计

3.1 系统结构与模块的划分

系统结构与模块的划分见图2。

系统分为:登录模块、数据模块、配置模块、界面模块、入库线程模块、数据库分析计算存储过程。

3.2 模块之间的组合与交互

(1)登录模块与数据模块的交互见图3。

(2)界面模块、入库线程、数据模块、数据库、话单文件之间的交互见图4。

4 结语

UML作为一门功能强大的可视化建模语言,是面向对象系统开发领域的一个有效建模工具。将UML应用于话费计费系统中能有效地建立起一个具有高度灵活性,扩展性的系统。基于UML的话费计费系统有助于电信运营公司在当今竞争激烈的环境中适应市场的灵活多变,从而处于有力的竞争位置。

{有个疑问,这是你个人练习?还是老师留的作业?}

首先说句“题外话”:

UML是一种“语言”,主要作用之一是用于交流。在实际工作中,这种增删改查的 *** 作没有人去画活动图,一两句话就可以达到交流目的了。

如果非要画活动图,也不要把事情想得太复杂。对于你画的图,给出几个建议:

泳道:除非业务复杂,需要指明“由谁做什么”,否则没必要用泳道。

读取数据库:活动图一般用于描述复杂过程和业务过程,而读取数据库是一个简单的、非业务的过程,不必画的。如果非要画:是不是把连接数据库之类的也要考虑进去?而且它属于子活动,你的画法不太合适。

退出系统:所谓退出系统不就是结束吗,为什么非要作为一个动作呢?

给你个小例子,这只是一种最简单、但正确的画法,还有其他的画法。

就像我们说话,同一件事物可以用多种方式说出来,UML也一样。

随便说几点,不一定全面,仅供参考

1ER图,即实体关系图,专用于数据库建模即对欲构建的数据库画出模型图是古老的有生命力的描述方法

2DFD,数据流图,用于描述数据在系统中的流动方向及变化,便开发人员把握数据的来龙去脉

3UML,统一建模语言,有十多张侧重不同的图形,面向整个软件开发过程

总之,相同点都是图形(表现力较文字更直观)

在信息技术迅猛发展及基于Internet网络应用日益普及的今天,传统图书馆正在向自动化、网络化、电子化的数字化方向发展,这是目前网络信息资源开发和研究的热点。数字图书馆的建设涉及到信息资源数字化、多媒体数据库、分布式网络、信息管理系统结构等多方面的问题,需要有效地集成和应用最新的信息技术。如何在宏观上有效地把握和组织,并运用到数字图书馆的开发建设上,是数字图书馆研究的重点。UML(The Unified Modeling Language,即统一建模语言)是一种编制系统蓝图的标准化语言,可以对复杂的系统建立可视化的系统模型,目前已经被工业标准化组织OMG(Object Management Group)接受,一经推出便得到许多著名的计算机厂商如Microsoft、HP、IBM、Oracle等的支持,在国际上的应用日益广泛。数字图书馆的开发建设是一个复杂的软件工程,需要集成不同的 *** 作系统、数据库和应用软件,有众多不同级别的用户、管理员,满足图书馆从书目查询、普通和电子书刊借阅到提供网上信息服务、资源共享等各种需求。用传统的系统开发和集成的分析设计方法难以保证效率和质量,UML的特点及数字图书馆的要求,决定UML在数字图书馆中应该有很好的应用前景。

11 数字图书馆的基本特征和模式

数字图书馆组织了一系列与平台无关、面向对象、分布式的数字化信息资源并且提供相关的服务,它应该具有以下一些特征〔2〕〔4〕:

(1)数字图书馆拥有海量的数字化资源, 其信息度量单位不再是KB、MB,而是GB、TB甚至PB。数字化的资源又是多种媒体(如文字、图像、音频、视频、虚拟空间等)的,具有多种存储和压缩格式。

(2)数字化资源并不是孤立的,而是相互关联的动态的。 数字图书馆是数字化资源的统一,可以通过一定的相关关系,由特定的协议和存取方法来查找和访问这些数字化资源。

(3)数字图书馆必须为用户提供统一的访问手段, 能够让用户透明方便地获取所需的信息而不必关心这些信息的具体位置。对数字资源的检索应该是智能化、交互式的,对全文、多媒体信息、多语言信息的检索都可以达到很好的查全率和查准率。

(4)数字图书馆建立在异构平台上,具有分布、 开放的信息结构,高速、可靠的网络环境是其运行的基础。它突破了时间、空间的限制,让用户可以在任何地方、任何时间获取自己所需的信息。在此基础上提供的导航式和个性化的服务,使服务内容更多样、服务模式更广泛,这是对传统图书馆服务功能的突破。

数字图书馆的模式,可以用图1简单说明, 用户通过网络和通信系统,连接到数字图书馆的咨询系统,通过这个统一的访问界面,用户可以透明地获取各种信息资源。

附图

图1 数字图书馆模式

12 UML概述及特点

UML是一种编制系统蓝图的标准化语言, 可以对大型复杂的系统的各种成分可视化、说明并构造系统模型,以及建立各种所需的文档。UML通过三类图形建立系统模型:Use Case图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度使系统可视化。UML 具有以下特点〔1〕:

(1)面向对象。UML支持面向对象技术的主要概念,提供了一批基本的模型元素的表示图形和方法,能简洁明了地表达面向对象的各种概念。

(2)可视化,表示能力强。通过UML的模型图能清晰地表示系统的逻辑模型和实现模型,可用于各种复杂系统的建模。

(3)独立与过程。UML是系统建模语言,独立与开发过程。

(4)独立于程序设计语言。用UML建立的软件系统模型可以用Java、VC++、Smalltalk等任何一种面向对象的程序设计来实现。

(5)易于掌握使用。UML图形结构清晰,建模简洁明了,容易掌握使用。

使用UML进行系统的分析和设计,可以加速开发的进程,提高代码的质量,支持动态的业务需求。UML适用于各种规模的系统开发,能促进软件复用,方便地集成已有的系统并有效处理开发中的各种风险。

2 UML在数字图书馆中的应用

UML是一种建模语言,是系统开发的一个组成部分,本身并没有关于开发过程概念的定义和表示符号。UML的创始者Booch、Jacobson和Rumbaugh在Rational公司的支持下综合了多种系统开发过程的长处,提出新的面向对象的开发过程,称为Rational 统一过程(RationalUnified Process, RUP)。RUP过程的核心工作流包括:业务建模、需求分析、系统分析与设计、实现、测试和系统配置。下面通过UML来分析并构造数字图书馆模型,并结合Rational统一过程加以描述,图形用Rational Rose工具软件绘制。

21 数字图书馆的业务建模和需求分析

业务建模和需求分析的目的是对数字图书馆进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个Use Case模型表达(图2), 模型中的活动者代表外部与系统交互的单元,包括用户、图书馆工作人员和外部信息源;UseCase是对系统需求的描述,表达了系统的功能和所提供的服务,包括采购子系统、编目子系统和流通子系统。对于数字图书馆而言,流通子系统还应该考虑到普通书刊流通和电子书刊流通的区别。电子书刊是指内容为数字格式、发行为电子方式、用计算机阅读和存储的电子读物,可以实现普通书刊所没有的全文检索、页面批注、摘要、字体缩放等功能。用户无论何时何地,都可以在线借还,这是数字图书馆服务功能的一个重要组成部分,也是对传统图书馆服务功能的延伸和拓展,其中的关键是流通子系统在实现时必须能对电子书刊的版权、以及可以同时借阅的用户数进行保护和控制。

附图

图2 数字图书馆Use Case模型

图2中模型元素之间的实线表示二者存在关联关系, 带空心箭头的实箭线说明存在泛化关系,这里有两种情况,一种是一般与特殊的关系,如“流通子系统”与“普通书刊流通”、“电子书刊流通”的关系;另一种是使用关联,表示一个模型元素需要使用另一个模型元素,在箭线上标有<>, 如“流通子系统”需要使用“编目子系统”生成的书目数据,图2是数字图书馆系统层的Use Case模型, 只包含了最基本的Use Case模型,是系统的高层抽象。在开发过程中,随着对系统的认识不断加深,Use Case模型可以从顶向下不断精化,演化出更为详细的Use Case模型。

22 数字图书馆系统分析与设计

系统分析与设计是研究欲采用的实现环境和系统结构,结果是产生一个对象模型,即设计模型,设计模型包含了Use Case的实现,可以表现对象是如何相互通信和运作来实现Use Case流的。对于系统的静态结构,可以通过对象类图、对象图、组件图和配置图来描述;对于系统的动态行为,可以通过顺序图、协同图、状态图、活动图描绘。这些图再加上支持说明文档就构成一个完整的设计模型。

(1)静态结构的分析与设计

数字图书馆拥有大量数字化信息资源,这些资源是多种媒体、多种格式的,而且还是相互关联的。其数据量大,信息长度不定,非结构化信息与结构化信息并存。传统的数据库和信息管理系统在数据模型、系统结构、用户接口等方面都难以实现对这些数字化信息资源的管理和 *** 作,这就决定了数字图书馆必须采用面向对象的方法来建立数据模型和管理模型,建立面向对象的数据库,实现面向对象的信息管理系统。使用UML 对数字图书馆系统进行基于面向对象的分析和设计,可以从开发的第一步开始,从系统的底层就把握住数字图书馆信息资源的特征,为下一步的具体实现打好基础。在为数字图书馆系统建立模型时要涉及到处理大量的模型元素,如对象类、接口、组件、节点、图等,可以将语义上相近的模型元素组织在一起,这就是UML的包, 包从较高的层次来组织管理数字图书馆的系统模型。

在详细设计阶段可以对包图中的所有类、对象从实现角度再进一步进行细化,绘制具体的对象类图、对象图等。图3 是数字图书馆系统的包图,虚箭线说明包之间的依赖关系,如“流通”包依赖于“数据库”包,要使用“数据库”包中的类及数据。带空心箭头的实箭线说明包之间的泛化关系,这里是一般与特殊的关系,如“编目”包与“本馆编目”包、“联合编目”包之间存在泛化关系。

附图

图3 数字图书馆系统包图

(2)动态结构的分析与设计

数字图书馆提供的各种服务都是建立在分布、开放的信息结构之上,依托高速、可靠的网络环境来完成。每项服务都可以看成一个事件流,由若干相关的对象交互合作来完成。对于这种系统内部的协作关系和过程行为,可以通过绘制顺序图和协同图来帮助观察和理解。

一个对象在其生存期间所经历的状态序列,对于把握对象的行为和状态的迁移变化是非常重要的,可以通过状态图来了解一个对象的历史,引起一个状态向另一个状态转移的事件,以及由于状态的转移而引发的动作。

此外,描述工作流和并发处理行为还可以用活动图,表达从一个活动到另一个活动的控制流。

顺序图和协同图适合描述多个对象的协同行为,而状态图适合描述一个对象穿越多个Use Case的行为。状态图与活动图的区别是,状态图描述的是对象类响应事件的外部行为,活动图描述的是响应内部处理的对象类的行为。

附图

图4 数字图书馆电子书刊流通服务顺序图

图4是一个电子书刊流通服务的顺序图例子, 用以说明数字图书馆电子书刊基本流通服务。用户向流通子系统的用户接口登录,经用户合法性验证后,向流通子系统的电子书刊流通模块提交服务请求,电子书刊需要经过版权和复本的验证,以保证电子书刊的每一个复本在同一时间只允许一个用户借阅或阅读。比如购买了一本电子书的五个复本,那么就可以有五个用户同时借阅或阅读这本书,而且必须能够控制用户对电子书刊的任意复制和打印,以保护电子书刊出版者的合法权益。然后就可以完成电子书刊的借、还、预约、续借等流通服务,最后退出。

通过顺序图可以清晰地看出用户、流通子系统的用户接口和电子书刊流通模块之间按时间顺序的消息交换,这对于把握系统的控制流、顺序行为和交互行为是非常有益的。建立在分布、网络环境下的数字图书馆其事件流和控制流是十分复杂的,需要从层顶到底层进行一步步的分解,用多幅能反映动态结构的图来分析与说明。

23 数字图书馆的实现、测试和系统配置

经过系统分析与设计后,就可以根据设计模型在具体的环境中实现系统,生成系统的源代码、可执行程序和相应的软件文档,建立一个可执行的系统。然后需要对系统进行测试和排错,保证系统符合预定的要求,获得一个无错的系统实现。测试的结果将确认所完成的系统可以真正使用。最后系统配置的任务是在真实的使用运行环境中配置、调试系统、解决系统正式使用前可能存在的任何问题。

以上就是关于如何绘制UML类图全部的内容,包括:如何绘制UML类图、现在想学一下UML,我是学java的,想知道现在UML工具哪些最好,能不能推荐一些、Delphi深度探索之使用Bold开发数据库应用(1)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9514602.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存