UML和MATCH_
word
word文档格式规范word作业纸小票打印word模板word简历模板免费word简历
_1717183545678_0模式在PACS中的综合应用
Vol . 23 第 23 卷计算机应用
2003 年 6 月Computer Applications J une ,2003
() 文章编号 :1001 - 9081 200306Z - 0026 - 03
UML 和设计模式在 PACS 中的综合应用
1 1 1 2 徐淼华,李 曦,赵振西,张谊
( 1 . 中国科学技术大学 计算机科学技术系 ,安徽 合肥 230027 ;
) 2 . 杭州电子工业学院 通信工程系 ,浙江 杭州 310037
() 摘 要 :统一建模语言 UML Unified Modeling Language是新近提出的一种重要的面向对象软件开发方法 。设计模式是面向对象建模的一种辅助设计手段 ,它总结了面向对象设计的宝贵经验 ,使得在 遇到相似场景时可以直接套用 ,提高复杂系统的设计效率 。结合所实施的医学影像系统的开发工作 ,
提出了使用 UML 技术进行整体系统
规划
污水管网监理规划下载职业规划大学生职业规划个人职业规划职业规划论文
设计 、使用设计模式细化具体组件和部件的对象建模方法 ,
取得了较好的效果 。
关键词 :统一建模语言 ;面向对象建模 ;设计模式 ;医学影像系统
中图分类号 : TP311 . 52文献标识码 :A
1. 2 设计模式 1 技术背景面向对象的 设 计 分 析 方 法 出 现 在 20 世 纪 80 年 代 中 后 1. 1 UML 期 ,它解决问题的核心是问题域到对象模型的转化 ,已经成为
UML 以面向对象方法为主 ,集中了其它软件设计方法的 分布式异构平台上开发应用系统的主要软件工程方法 。然而面向对象建模比较困难 ,设计可复用的面向对象软件就更加 优点 ,并以图形化的可视化
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示方法来描述系统 ,可以覆盖从 困难 。Erich Gamma 等人提出的设计模式是面向对象建模的 需求分析到系统测试的整个软件工程处理过程 ,适用于各种 一种辅助设计手段 ,它总结了以往面向对象设计经验 ,使得我 不同类型软件系统的开发 。面向对象方法采用了自底向上的 们再次遇到类似的场景时可以直接使用模式准确高效地完成 归纳和自顶向下的分解的方法 ,通过对对象模型的描述 ,真正问题的对象模型化 。一个模式描述了一个在我们周围不断重 建立起基于用户的需求规格说明 ,并使系统的可维护性也得 复发生的问题 ,以及该问题解决方案的核心 。Gamma 等人总 到很大的改善 。 ) (结了 23 个常用模式 ,例如 :Abstract Factory抽象工厂、Adapter UML 的可视化表示主要使用以下 5 类图形表示方法对系 () ) ) ( ( 适配 器、Composite 组 合、Decorator 装 饰、Factory Method 统进行描述 : () ) ) ( ( 工厂方法、Observer 观察者、Strategy 策略等等 。一个模 ) () 1用例图 Use Case Diagram: 从用户角度来描述系统功 式有四个基本要素 : 能 ,指出各个功能的操作者 ,并定义系统的边界 。 模式名称 助记名 ,概括模式的主要特征 ; ( ) ( ) ) 2静态图 Static Diagram:包括类图 Class Diagram、对象 问题 描述了模式的应用域 ; () ( ) 图 Object Diagram和 包 图 Package Diagram。类 图 用 于 描 述 解决方案 设计问题的抽象描述和怎样用一个具有一般 系统中类的结构和类之间的关系 ;对象图相当于类图的实例 ; 意义的元素组合解决问题 ; 包图是由包或类组成的 ,表示包与包之间的关系 。
() ) 3行为图 Behavior Diagram: 用于描述系统的动态模型
和组成对象间的交互关系 。
( ) ) 4交互图 Interactive Diagram:用于描述对象之间的交互 效果 描述了模式应用的效果及使用模式应权衡的问题 。( ) ( 关系 , 包 括 顺 序 图 Sequence Diagram和 协 作 图 Collaboration
) Diagram。 2 UML 和设计模式在 PACS 中的结合使用) ( ) 5 实 现 图 Implementation Diagram : 包 括 构 件 图 ( ) 影像存取与传输系统 PACS是一种复杂的医院管理信 ( ) ( ) Component Diagram和 配 置 图 Deployment Diagram。构 件 图 息系统 。它伴随着高速计算设备 、网络通讯及图像处理技术 用于显示系统中的软件组件及其相互关系 ; 配置图用于显示 的飞速发展而产生 ,其目的是有效存储 、管理和利用每天产生 软硬件的物理体系结构 。 的大量医学影像资料 ,提高影像室的工作效率 ,为无胶片化环 在我们实际分析和设计阶段 ,主要使用用例图 、交互图和 境提供解决方案 ,而且为今后进一步实现远程医疗 、远 程 教 类图 。
学 、远程学术交流和计算机辅助医学影像诊断提供支撑环境 。
我们为某医院设计的 PACS 主要包括 3 个子系统 : 医生工作站 、数据管理和影像设备接口 。医生工作站的功能是完成影
像的获取 、浏览和处理 ,以及诊断报告的计算机辅助生成 。数
收稿日期 :2002 - 12 - 14
() ( ) 作者简介 :徐淼华 1979 - ,男 ,浙江杭州人 ,硕士研究生 ,主要研究方向 :软件工程 、数据库 ; 李曦 1963 - ,男 ,北京人 ,副教授 ,主要研究
方向 :数据库技术 、计算机体系结构 ; 赵振西 ,男 ,教授 ,博士生导师 ,主要研究方向 :自然语言理解 ; 张谊 ,女 ,主要研究方向 :信息通讯.
统开发 。过程分成以下几个阶段 :
) 1分析阶段 : 通过对需求的分析 ,使用用例图建立系统整体功能的描述 。对每个功能模块通过交互图给出详细的功 能需求 ,并结合静态图和行为图对功能进行辅助描述 。
) 2设计 阶 段 : 对 分 析 阶 段 得 到 的 模 型 进 行 反 复 筛 选 提 炼 ,并根据实现环境 ,把模型扩展和转化为可行的技术实现方 案 。
) 3实现阶段 : 结合实际情况选择编码工具 ,根据建立的 模型进行编码 ,并根据编码过程中出现的问题对建立的模型 作相应的调整 。
) 4配置 阶 段 : 使 用 实 现 图 来 描 述 开 发 系 统 的 软 硬 件 配 置 。
) 5测试阶段 :使用前几个阶段构造的模型指导和辅助对 系统的测试 ,并及时对测试过程中出现的错误进行修正 。
通过上面的步骤 , 可以完成整体的 系 统 建 模 , 但 是 UML 对具体问题的具体建模指导力是有限的 。例如 : 虚基类的方 法和 Adapter 模式在 UML 的世界里是无所谓优劣的 , 然而在 这个具体问题里选择前者将为以后的扩充带来巨大的麻烦 。 此时我们需要使用设计模式的思想 。设计模式按应用规模的 粒度从大到小可分为 : 全局层 、企业层 、系统层 、应用层 、框架
层 、部件层和对象层 。目前己有几十种设计模式可供参考应 图 1 距离测量功能的顺序图 用 , Erich Gamma 所总结的 23 种设计模式基本上属于部件层 这里 ,以测量子模块中的距离测量为例 ,建立它的顺序图 的范畴 。所以在具体问题的具体建模上正好选用这 23 种设 () ( ) 如图 1 所示和协作图 如图 2 所示。在顺序图中 ,可以清 计模式 。例如 ,图像处理部件为了适应多算法 ,采用了 strategy 楚看 到 整 个 距 离 测 量 的 流 程 , 及 为 实 现 该 功 能 所 建 的 () 模式 参见 2. 2 节详细分析。与硬编码相比 ,该模式在增加 UserInterface 、Control 和 Image 这 3 个类之间消息的传递 :首先 , 一个新的算法的时候非常方便 。设计模式对于具体设计的作 ( ) 操作人员选择距离测量功能 ,系统调用 Distance 函数开始距 用是巨大的 ,特别是对于一些分期进行的设计 ,这种优点就更 ( ( ) 离测量过程 ,Distance 变换鼠标形状为一个箭头 表示距离 加明显 。 ) 测量,并开始鼠标捕获 ;然后 ,操作人员在图像上的某一点按
我们在软件开发的过程中应用 UML 技术和设计模式相 ( ) ( ) 下鼠标左键 ,系统调用 Distance 并传入当前状态 ,Distance
( 根据当前状态在鼠标按下的位置画一个点 直线的起点 , 用 结合的对象建模方法 。在总体的设计上使用了 UML 技术 ;在 ) () DrawPixel 完成画点功能; 接着操作人员移动鼠标 , 系统仍 细化部件或组件的过程中 ,可以使用设计模式的思想 ,套用现 () () 然调用 Distance 并传入相关参数 ,Distance 在直线起点与当 有的设计模式 。这套方案方便工程人员间的交流 ,提高了通 前鼠标所在位置之间画一条直线 ,并抹去鼠标上一个位置时 用性 ,为可能的复用打好基础 。以下通过几个具体的实例来 () () 所画的直线 用 DrawLine 完成该功能;最后 ,操作人员再次 进行说明 。 () 点下鼠标左键 ,系统调用 Distance 并传入结束距离测量的参
() 数 ,Distance 调用图像自身的距离测量函数 , 把直线的位置
参数传入 ,计算出直线的距离 ,并把鼠标形状变成正常 ,整个
功能就完成了 。
3 系统分析和设计实例
在分析和设计阶段 ,在进行整体设计的时候主要使用了 UML 里面的用例图 、交互图和类图 , 而在细化部件的时候使 用了设计模式 ,这些模式又是以类图来表示的 。下面给出两 个例子 :第一个例子以交互图对整个图像测量模块进行整体
) (刻画 ;第二个是 Strategy 策略模式在图像处理具体部件中的 应用 。
3. 1 用交互图刻画整个图像测量模块
() 用例图中的用例 Use Case实例化后产生的实例 ———场 ( ) ( 景 scenario被 用 来 描 述 用 例 的 过 程 即 动 作 序 列 的 执 行 过 ) 程。可以用不同的场景来刻画同一个用例的实例 ,多个用例 图 2 距离测量功能的协作图 的多个场景建立系统的行为模型 , 为了刻画这些场景 ,UML
计算机应用2003 年28
public : 协作图和顺序图表达的是相同的信息 ,但与顺序图不同
的是 ,协作图的重点是显示对象之间的交 互 , 比 较 图 1 和 图 ( ) Process ImgPro 3 ; / / 用 ImgPro 的具体子类配置- ImgPro2 ,显然图 2 着重于表示 3 个类之间信息的交互 。协作图帮助 }
开发人员更清楚地了解对象间处理过程的分布 ,及时发现设 class ImgProc
计中的异常 。例如 ,如果协作图是星形的 ,说明系统对中央对 {protected : / / Length ,Width ,PixelSize ,Bitmap ,DataSize 等象的依赖性太强 ,应该重新设计 ,使整个工作能够被均匀地分 ( ) ImgProc ;
配处理 。 / / 禁止直接生成实例 ,用初始化信息配置 Length ,Width 等
顺序图和协作图是以不同的方式来显示相同的信息 ,二 public :
者相辅相成 ,使建立的模型能更充分地被使用者理解 。 ( ) virtual Processing = 0 ; ( ) / / 因为要在 Process 类中用 Processing ,所以是 public 3. 2 设计模式在图像处理子部件中的使用
} PACS 需要对图像进行处理 ,例如 :滤波 、增强 、反色 、伪彩
class GrayFilter : public ImgPro 等 。将图像处理算法硬编码到使用它们的类是可以的 ,但这
{ 样使得使用它们的类变得复杂 ,难以理解 ,同时使得支持新算
public : 法变得很困难 。Photoshop 对滤波算法的处理很值得借鉴 ,它
( ) virtal Processing {} 甚至允许使用第三方滤波算法插件 。我们的系统无须考虑第
三方 支 持 , 设 计 Photoshop 那 样 的 接 口 将 增 加 系 统 的 复 杂 程 } / / 省略其它类度 。然而不对算法进行硬编码的思想将给我们支持新算法带 () 在需要用具体处理算法时 例如灰度滤波采用如下的处来巨大的好处 ,为此我们采用 Strategy 模式 。 理方式 : Strategy 模式的基本思想是把一系列要使用的算法封装 ( ( Process 3 - Process = new Process new GrayFilter / 3 接口信息作为参 起来 ,并使它们可以相互替换 。系统并不是直接应用具体算 ) )数 3 / ( ) 法类 GrayFilter 类等,而是用具体算法类配置系统直接操纵
() 类 如图 3 中的 Process 类。 3 结束语
相对于一般常用的软件开发方法而言 ,UML 把整个系统
的分析 、设计和实现融于一体 ,结合诸多软件开发方法的优点
并使用图形化的表示方式 ,使整个开发过程与实际需求紧密
结合 ,真正开发出符合用户需要的软件 ,可以说 ,UML 为各种
不同类型和规模的项目的开发 ,提供了完善的形式化描述方
法和手段 。
设计模式是面向对象建模的一种辅助设计手段 。它并不
从软件设计的总体加以指导 ,而是从具体的问题加以 指 导 。
它本身并不能算一个完整的软件工程方法 ,但它能够作为其
它方法的补充 ,它对于具体设计的作用是巨大的 。 本文结合
了 UML 和设计模式的优点 。我们在设计 PACS
中采用 UML 作为一个完整的对象建模方法 ,对图像测量模块
进行充分的刻画 ;而其中的图像处理子部件则使用了设计模 图 3 Strategy 模式示例 式 ,在具体问题里为以后的算法扩充带来巨大的方便 。这种 在我们的设计中 ,虚基类 ImgProc 提供各个图像处理算法 整体使用 UML 和具体使用设计模式的思想在实际运用中取 的接口 ,接口的参数包括 : 指向存储空间首部的指针 、图像的 得了良好的效果 。 宽度 、图像的长度 、图像是否是彩色 、图像用几位表示彩色/ 灰 参考文献 ( 度等 。具 体 的 处 理 由 其 公 有 继 承 的 子 类 ColorFilter 、
) GrayFilter 、Convert 、PseudoColor 等完成 。对于彩色滤波要考虑
RGB 三色 ,我们把彩色滤波 ColorFilter 和灰度滤波 GrayFilter 相 1 ] 2 Halpin T. Augmenting UML with Fact - orientationM . Microsoft Cor 区别 。滤波有高通滤波 、低通滤波 、中值滤波等 ,但算法是类 poration , 2001 . 似的 ,只是使用的矩阵不同 。系统通过 Process 类调用各个算 张莉 ,葛科 , 王云 , 等. UML 软件开发过程和支持环境研究 J . 2 ] 法 ,Process 类本身是用 ImgProc 的具体子类配置的 。这样当系 北京航空航天大学学报 ,1998 ,407 - 410 . ( 统希望 增 加 一 种 新 的 处 理 算 法 时 , 只 需 编 写 此 算 法 类 由 Gamma E. 设计模式 —可复用面向对象软件的基础 M . 北京 : ) 3 ] ImgProc 公有继承即可 ,程序的其它部分完全不用变动 。 机械工业出版社 ,2000 . 简化后的实现代码如下 : Meyers S . Effective C++ M . Addison Wesley Longman Inc . , class Process 4 ] 1998 .
Norman RJ . Object - Oriented Systems Analysis and DesignM . Pren 2 5 ] tice Hall ,1996 . { 系统直接操纵的类/ / Show M. Software Architecture M . Prentice Hall , 1996 . private : 6 ]
ImgProc 3 - ImgProc ;