




已阅读5页,还剩58页未读, 继续免费阅读
(计算机系统结构专业论文)面向医学影像处理领域的软件框架研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 使用计算机对医学影像进行处理与分析,从而辅助医生进行更准确的诊断, 这一技术越来越受到人们的重视,涌现出大量的医学影像处理系统,其规模和复 杂度不断增加,使得传统的软件开发模式面临巨大挑战。为了最大限度地提高医 学影像处理系统软件的复用性和开发效率,本文研究了面向医学影像领域的软件 框架。 本文首先介绍医学影像处理系统以及国内外研究现状,讨论了软件复用和软 件框架理论,在此基础上分析了现有网络规划和设计领域软件框架( n e t p l a n ) 。 在领域分析理论的指导下,分别建立了医学影像处理系统领域边界模型、特征模 型和领域动态模型,最终形成了医学影像处理系统软件框架( s f o m i s ) 。影像采 集、影像处理、d i c o m 影像传输和数据库操作引擎是s f o m i s 框架的核心构件;论 文详细介绍了各构件技术原理与实现方法。最后设计并开发了基于s f o m i s 框架 的医学影像处理系统h g l m a g ew o r k s t a t i o n v 2 0 。 本文对医学影像处理系统框架的开发方法与技术做了深入的研究,将框架技 术应用于医学影像处理系统领域,不但带来了代码复用,更重要的是提供了高层 次的设计复用。基于s f o m i s 可以有效地提高医学影像处理系统软件的开发效 率,降低开发成本,提高系统可靠性和可维护性。 关键词:软件重用软件框架领域分析医学影像影像处理 a b s t r a c t t h eu s eo fc o m p u t e rt om e d i c a li m a g ep r o c e s s i n ga n da n a l y s i s ,t h u ss u p p o r t i n g p h y s i c i a n s a c c u r a t ed i a g n o s i s ,i sa t t r a c t i n gm u c ha t t e n t i o n n o wal a r g en u m b e ro f m e d i c a li m a g ep r o c e s s i n gs y s t e m sh a v ee m e r g e d ,w i t hi n c r e a s i n gs i z ea n dc o m p l e x i t y , w h i c hc a u s et h et r a d i t i o n a ls o f t w a r ed e v e l o p m e n tm o d e lf a c i n ge n o r m o u sc h a l l e n g e i n o r d e rt om a x i m i z et h er e u s a b i l i t ya n dd e v e l o p m e n te f f i c i e n c yo ft h i ss o f t w a r e ,t h e d i s s e r t a t i o np u t sf o r w a r dt h em o d e lo fs o f t w a r ef r a m e w o r ko r i e n t e dm e d i c a li m a g e a tf i r s t ,t h ed i s s e r t a t i o ni n t r o d u c e st h em e d i c a li m a g ep r o c e s s i n gs y s t e ma n ds t a t u s a th o m eo ra b r o a d a f t e rd i s c u s s i n gt h et h e o r yo fs o f t w a r er e u s ea n df r a m e w o r k ,t h e e x i s t i n gn e t w o r kp l a n n i n ga n dd e s i g n i n gs o f t w a r ef r a m e w o r k ( n e t p l a n ) h a sb e e n a n a l y z e d u n d e rt h eg u i d a n c eo f t h ef i e l dt h e o r y , t h eb o r d e ra r e am o d e l ,f e a t u r em o d e l a n dd y n a m i cm o d e lh a v eb e e nb u i l tr e s p e c t i v e l y , a n du l t i m a t e l yf o r m e dam e d i c a l i m a g ep r o c e s s i n gs o f t w a r ef r a m e w o r k ( s f o m i s ) i m a g ea c q u i s i t i o n ,i m a g ep r o c e s s i n g , d i c o mt r a n s i t i o na n dt h ee n g i n eo fd a t a b a s ea r et h ec o r ec o m p o n e n t so fs f o m i s , w h o s ep r i n c i p l ea n di m p l e m e n t a t i o na r ei n t r o d u c e di nt h ed i s s e r t a t i o n f i n a l l y , h g l m a g e w o r k s t a t i o nv 2 0h a sb e e nd e v e l o p e d ,w h i c hb a s e do ns f o m i s t h ed i s s e r t a t i o n ,i n d e p t hs t u d yo nt h et e c h n o l o g ya n dd e v d o p m e n tm e t h o do f m e d i c a li m a g ep r o c e s s i n gs o f t w a r ef r a m e w o r k ,u s i n gf r a m e w o r kt om e d i c a li m a g e p r o c e s s i n g ,n o to n l yb r i n g sc o d er e u s e ,b u tp r o v i d e sah i g h l e v e ld e s i g nr e u s e b a s e do n s f o m i sc a ni m p r o v em e d i c a li m a g ep r o c e s s i n gd e v e l o p m e n te f f i c i e n c y , l o w e r d e v e l o p m e n tc o s t s ,i m p r o v es y s t e mr e l i a b i l i t ya n dm a i n t a i n a b i l i t y k e y w o r d : s o f t w a r er e u s e m e d i c a li m a g e s o f t w a r ef r a m e w o r kd o m a i na n a l y s i s i m a g ep r o c e s s i n g 西安电子科技大学 学位论文创新性声明 秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在 导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标 注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成 果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的 材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:日期望里塑:! :! ! 西安电子科技大学 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保 留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内 容,可以允许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 ( 保密的论文在解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名: 导师签名:坠坠整 日期逊堡! ! ! ! 望 日期丝芝! :! ! 第一章绪论 第一章绪论 1 1 医学影像处理系统简介 在现代医学中,诊疗工作越来越多地使用各种现代化影像学检查,因此医院 放射科的医疗影像数字化趋势已经非常明显。放射学的发展与计算机技术越来越 密不可分,用计算机技术存储、传递数字化影像资料是必然的解决办法。另外, 医学影像诊断在现代医疗活动中占有相当大的比重。借助可视化技术的不断发展, 现代医学己越来越离不开医学影像的信息,在临床诊断、医学科研等方面正发挥 着极其重要的作用。 医学影像信息是多样化的,如b 超扫描影像、彩色多普勒影像、核磁共振( m r i ) 影像、x c t 影像、x 线透视影像,各种电子内窥影像、显微镜下病理切片影像等。 随着医学诊断可视化技术的深入发展,人们正在不断努力,寻求更清晰、更有诊 断价值的高质量医学影像。随着电子计算机技术,特别是多媒体技术的飞速发展, 使医学影像的存储和传送成为可能。大容量的硬盘、影像信息的压缩技术、可读 写光盘的应用,使医学影像可以实现大量存储。d i c o m 3 0 标准的制定使医学影 像及各种数字信息在计算机间的传送有了一个统一的标准,通过数据接口与互联 网连接,就可以进行医学影像信息的远程传输,实现异地会诊。 医学影像处理系统正是在这样的背景下应运而生,它把医学影像从采集、显 示、存储、交换和输出进行数字化处理,其发展趋势是实现影像的存储和传送, 在节省存储空间、胶片、显影剂的同时,实现高效化的管理。对于数字化医疗影 像来讲,以医学影像存档与通讯系统的软拷贝取代沿袭百年的胶片硬拷贝无疑是 一次巨大的变革。实现这种变革并非一帆风顺,更不会一蹴而就。在美国和日本, 早期医学影像存档与通讯系统中不乏备受放射医生冷落而弃之不用的事例。随着 网络、计算机和相关影像医学设备的发展,影像数字化是大势所趋。医学影像处 理系统的应用也日益得到重视。目前国内外均有许多成功的案例。 在国外,特别是发达国家,大型的医学影像处理系统应用越来越广泛。如美 国海军的医疗系统( d i n p a c s ) 。它由g e a p p l i c a r e 和i b m 提供,网络类型多元 化,采用w a n 、l a n 、卫星系统、无线系统和i n t e r n e t 连接。达到无胶片化、远 程会诊和全面的医疗影像信息资源共享。其第一期的实施金额达到$ 2 5 0 ,0 0 0 ,0 0 0 【l j 。 韩国的三星医院,采用g e 的p a t h s p e e dp a c s 系统整个医院实现了网络化,无胶 片化,整体效率得到了相当大的提高【l 】。 2面向医学影像处理领域的软件框架研究与应用 我国的医院在过去十多年间,引进了大批量进口的先进医学影像设备,为数 字化影像和传输奠定了基础。目前国内众多医院已经完成医院信息化管理,其影 像设备逐渐更新为数字化,已经具备了联网和实施医学影像归档和传输系统的基 本条件。 总之,随着计算机网络技术与数字技术的飞速发展,全球各类医院传统的医 学影像转换成数字影像,并形成网络化己迫在眉睫。权威机构预测:受社会发展 潮流影响,在未来五至十年时间里,中国社会各级各类医院将会快速发展和普及 对数字化医疗影像归档和传输的医疗影像处理系统。 1 2 1 国内外相关研究 1 2 相关工作及面临的问题 国外以美国为代表对开发高质量的医学影像软件和算法研发平台非常重视。 美国国家卫生院下属的国立医学图书馆近年投入巨资支持三家科研机构( 包括 u n i v e r s i t yo fn o r t hc a r o l i n a ,u n i v e r s i t yo fu t a h ,u n i v e r s i t yo fp e n n s y l v a n i a ) 开发医 学影像分割与配准算法平台i t k ( i n s i g h ts e g m e n t a t i o na n dr e g i s t r a t i o nt o o l k i t ) ,现 在己经开发出初步的版本。在医学影像领域影响力最大的国际会议s p i em e d i c a l i m a g i n g 在2 0 0 4 年的年会上有一个专门的s e s s i o n ,叫做v i s u a l i z a t i o nt o o l k i t s ,探 讨医学影像领域内算法研发平台的研究;而在m e d i c a li m a g ec o m p u t i n g & c o m p u t e ra s s i s t e di n t e r v e n t i o n ( m i c c a d ) 2 0 0 3 会议上有一个专门的w o r k s h o p , 叫做s o f t w a r ed e v e l o p m e n ti s s u e sf o rm e d i c a li m a g i n gc o m p u t i n g c o m p m e r a s s i s t e di n t e r v e n t i o n s ,也是探讨未来在医学影像领域内高质量软件【2 1 。 目前随着改革开放和国力的不断提高,我国从国外进口了越来越多的高精密 的医疗设备并在医疗临床上广泛使用。然而,由于国内缺乏配套的开发队伍,也 没有形成开展跨学科开发研究的机制,一般使用的都是国外公司随机器附带的软 件,使得我国对这些高精密医疗设备利用及研发的速度缓慢。考虑到目前以硬件 设备为主的医疗器械都必须配套相应的计算机软件,而软件的成本和开支将逐步 超过硬件,目前我国已经逐步具备了医疗器械的生产能力,但是高质量的配套软 件仍然相当缺乏,因为软件的编制依赖于对科学问题的数学描述和计算方法。2 1 世纪的产业,医学影像的计算模型和计算方法将成为制约医学软件业的首要因素, 抓住这一契机将成为我国医疗信息超快、高质量稳定发展和参与国际竞争的重中 之重。中科院自动化计算所推出的医学影像算法平台( m i t k ,m e d i c a li m a g i n g t o o l k i t ) 整合医学影像分割、配准、可视化等功能,与v t k 一样,m i t k 采用传 第一章绪论 统的面向对象设计方法,从而使面向用户的接口简单而易于理解。它是我国自主 知识产权的高质量的医学影像软件算法平台,对促进我国医疗仪器设备的应用, 尤其是医学影像软件业的持续发展,并直接造福于人民的医疗保健和健康事业是 非常重要的。 1 2 2 医学影像处理系统面临的问题 如前所述,国内外已经存在通用的医学影像处理算法平台,如:v t k 、i t k 、 m i t k 等,但在算法平台之上开发相关系统仍然需要做很多工作:医疗影像采集 ( 视频、c t 、胶片扫描等) 、患者信息管理( 与h i s 之间的接口) 、独立的患者管 理、影像处理结果报告、患者信息存档( 光盘刻录) 、影像文件格式处理( b m p 、 j p g 、p n g 、d c m ) 、影像标注在光栅影像中插入矢量图形、测量周长、面积等) ; 针对不同的科室的医学影像处理软件外观表现形式不同,如关节镜影像处理系统、 内窥镜影像处理系统等等,但其包括的核心模块基本相同。开发此类型产品,冗 余的工作量很大,有必要引进目前主流的软件工程技术复用,开发面向医学 影像处理领域的软件框架( s o f t w a r ef r a m e w o r ko fm e d i c a li m a g es y s t e m ,以下简 称s f o m i s ) 。 1 3 论文的工作及组织结构 本文主旨是要提出一个面向医学影像处理领域的软件框架,用以指导医学影 像处理工作站的建设。首先在必要的专业理论知识准备后,利用域分析理论来分 析医学影像处理系统的需求,在此基础上构造出医学影像处理领域软件框架;然 后分别讨论软件框架中各主要模块及其实现算法;最后,基于该软件框架实现 h g l m a g ew o r k s t a t i o nv 2 o 并对该软件框架进行了验证等。全文共分六章,各章主 要内容如下: 第一章为概述。从什么是医学影像处理系统出发,对开发医学影像处理系统 的现状做了全面综述。在此基础上,客观分析了医学影像处理系统中存在的问题, 提出了一个面向医学影像处理领域的软件框架( s f o m i s ) ,较系统的解决这些问题 的研究思路,从而明确了本文的研究内容和研究意义。 第二章为医学影像处理软件框架提供了相关的领域背景知识。从软件工程中 软件重用出发,详细讨论了软件重用思想和意义。接下来重点介绍了软件重用中 占有重要地位的软件框架,同时分析了软件框架与其它重用技术的关系。最后分 4 面向医学影像处理领域的软件框架研究与应用 析现有面向网络设计与规划软件框架( n e t p l a n ) 。 第三章从领域分析概念开始,讨论了领域分析的四个步骤:建立领域边界模 型、建立领域特征模型、建立领域动态模型以及最终形成领域对象模型。在领域 分析理论的指导下,形成了医学影像处理系统软件框架( s f o m i s ) ,并证明该框架 性能和可靠性。 第四章详细地阐述了s f o m i s 中核心构件:影像采集、影像处理、影像传输、 数据库业务的技术背景和处理流程,并按照面向对象思想封装各构件。 第五章讨论了基于s f o m i s 的医学影像处理系统h g l m a g ew o r k s t a t i o nv 2 0 设计思想、功能划分以及使用s f o m i s 中提供的基础类进行开发的方法。 第六章是全文总结。 第二章构建面向应用领域框架的背景知识 5 2 1 1 概述 第二章构建面向应用领域框架的背景知识 2 1 软件复用 软件复用可定义为使用现有的软件资产来实现或更新软件系统的过程。复用 可以发生在一个系统内,也可以发生在相似的系统间,或者发生在完全不同的系 统间。可复用软件资产不仅包括代码,需求、设计、模型、算法、预测、文档和 许多其它软件过程产品都可以被复用【3 j 。 软件复用将促进软件产业的变革,使软件产业真正走上工程化、工业化的发 展轨道。软件复用将促成软件产业的合理分工,专业化的构件生产将作为独立的 产业而存在,软件系统的开发将由软件系统集成商通过购买商用构件,再集成组 装而成。与我国丰富的软件开发人才资源相比,软件产业化的发展水平显然是不 相称的,软件复用所引起的产业变革将会带来更多的商业契机,是软件产业的一 个良好机遇,它的优点主要有: ( 1 ) 提高软件生产率、减少开发时间和费用,提高软件质量、开发出来的软 件可靠性高。 ( 2 ) 降低维护的难度、工作量和费用,且有可能延长运行期以提高软件系统 的效益。 ( 3 ) 软件复用能够提高系统问的互操作性。通过使用统一的接口,系统将更 为有效地实现与其它系统之间的互操作性。 ( 4 ) 简化软件开发流程,使得软件开发易于管理。软件复用能够支持快速原 形设计,利用可复用构件和构架可以快速有效地构造出应用程序的原形,以获得 用户对系统功能的反馈。 ( 5 ) 软件复用还能够减少培训开销。 ( 6 ) 共享有关建立系统的知识,便于学习系统结构和建立好的系统,促进软 件开发过程标准化。 2 1 2 软件复用级别 广义地说,软件复用可划分成以下三个层次:知识复用( 例如,软件工程 6 面向医学影像处理领域的软件框架研究与应用 知识的复用) ;方法和标准的复用( 例如,面向对象方法或国家标准局制定的软 件开发规范或某些国际标准的复用) ;软件成分的复用。本章仅讨论软件成分的 复用问题。 软件成分的复用可以进一步划分成以下三个级别【4 1 。 ( 1 ) 代码复用 包括目标代码和源代码的复用。其中目标代码的复用级别最低,历史也最久, 当前大部分编程语言的运行支持系统都提供了连接( l i n k ) 、绑定( b i n d i n g ) 等功 能来支持这种复用。源代码的复用级别略高于目标代码的复用,程序员在编程时 把一些想复用的代码段复制到自己的程序中,但这样往往会产生一些新旧代码不 匹配的错误。想大规模的实现源程序的复用只有依靠含有大量可复用构件的构件 库。如“对象链接及嵌入”( o l e ) 技术,既支持在源程序级定义构件并用以构造 新的系统,又使这些构件在目标代码的级别上仍然是一些独立的可复用构件,能 够在运行时被灵活的重新组合为各种不同的应用。 ( 2 ) 设计结果复用 设计结果复用指的是,复用某个软件系统的设计模型( 即求解域模型) 。这个 级别的复用有助于把一个应用系统移植到完全不同的软硬件平台上。 ( 3 ) 分析结果复用 这是一种更高级别的复用,即复用某个系统的分析模型。这种复用特别适用 于用户需求未改变,但系统体系结构发生了根本变化的场合。更具体地说,可能 被复用的软件成分丰要有以下1 0 种。 项目计划。软件项目计划的基本结构和许多内容( 例如,s q a 计划) 都可 以跨项目复用的。这样做减少了用于制定计划的时间,也降低了与建立进度表和 进行风险分析等活动相关联的不确定性。 成本估计。因为在不同项目中经常含有类似的功能,所以有可能在只做极 少修改或根本不做修改的情况下,复用对该功能的成本估计结果。 体系结构。即使在考虑不同的应用领域时,也很少有截然不同的程序和数 据体系结构。因此,有可能创建一组类属的体系结构模板( 例如,事务处理体系 结构) ,并把那些模板作为可复用的设计框架。 需求模型和规格说明。类和对象的模型及规格说明是明显的复用的候选 者,此外,用传统软件工程方法开发的分析模型( 例如,数据流图) ,也是可复用 的。 设计。用传统方法开发的体系结构、数据、接口和过程设计结果,是复用 的候选者,更常见的是,系统和对象设计是可复用的。 源代码。用兼容的程序设计语言书写、经过验证的程序构件,是复用的候 选者。 第二章构建面向应用领域框架的背景知识 7 用户文档和技术文档。即使针对的应用是不同的,也经常有可能复用用户 文档和技术文档的大部分。 用户界面。这可能是最广泛被复用的软件成分,g u i ( 图形用户界面) 软 件经常被复用。因为它可占到一个应用程序的6 0 代码量,因此,复用的效果非 常显著。 数据。在大多数经常被复用的软件成分中,被复用的数据包括:内部表、 列表和记录结构,以及文件和完整的数据库。 测试用例。一旦设计或代码构件将被复用,相关的测试用例将“附属于 它们。 2 1 3 影响软件复用的因素 软件复用各方面的困难,无论是技术问题还是非技术问题,都影响着软件复 用的广泛应用。 ( 1 ) 技术因素 构件与应用系统之间的差异。一些开发者开发的构件,要做到在被另一些人 开发的系统中使用时正好合适,从内容到对外接口都恰好相符,或者做很少的修 改,这不是一件简单的事;构件要达到一定的数量,才能支持有效的复用,而大 量构件的获得需要有很高的投入和长期的积累;当构件达到较大的数量时,使用 者要从中找到一个自己想要的构件,并断定它确实是自己需要的,不是一件轻而 易举的事。基于复用的软件开发方法和软件过程是一个新的研究实践领域,需要 一些新的理论、技术及支持环境,目前这方面的研究成果和实践经验都不够充分。 ( 2 ) 人为因素 软件开发是一种创造性工作,长期从事这个行业的人们形成了一种职业习惯: 喜欢自己创造而不喜欢使用别人的东西,特别是当要对别人开发的软件做一些修 改再使用时,他们常常喜欢自己另写一个。 ( 3 ) 管理因素 在软件生产的管理中,从以往沿习了一些与复用的目标很不协调的制度与政 策,如计算工作量时,对复用的部分打很大的折扣,甚至不算工作量;另外,不 是在项目开始时自觉地向着造就可复用构件的方向努力,而是在它完成之后,看 看是否能从中找到一些可复用构件。这些弊端妨碍了复用水平的提高和复用规模 的扩大,甚至会挫伤致力于复用的人员的积极性。 ( 4 ) 教育因素 在软件科学技术的教育与培训中,缺乏关于软件复用的内容,很少有这方面 面向医学影像处理领域的软件框架研究与应用 的专门教材及课程,即使在其它教材及课程中提到软件复用,其篇幅及内容也相 当薄弱。 ( 5 ) 法律因素 在法律上还存在一些问题,例如,一个可复用构件在某个应用系统中出现了 错误,而构件的开发者和应用系统的开发者不是一个厂商,那么责任应该由谁负? 此外,在版权、政府政策等方面也存在一些悬而未决的问题。 另外,软件产品是一种精神产品,它的产生几乎完全是人脑思维的结果,它 的价值,也几乎完全在于其中所凝结的思想;它的物质载体的制造过程与价值含 量都是微不足道的。物质产品的生产受到人类制造能力的限制,现有的一些物质 产品的复杂性都没有超过这种限度,软件却没有这种限制,只要人的大脑能想到 的问题,都可能要求软件去解决,人脑所能思考的问题的复杂性,远远超出了人 类能制造的物质产品的复杂性,因而使软件的复用更为困难。 2 2 框架概述 软件框架是“为某一类型软件开发的由一组类集合组成的可复用设计 【4 】。同 一软件框架能够作为任意数量的同一领域软件基础或部分基础。 软件框架是指结合某类应用,实现了组件平台一部分的软件制品,作为一种 工具它能够被实例化扩展,以支持特定应用的开发。一个框架是一个可复用的设 计组件,它规定了应用的体系结构,阐明了整个设计、协作组件之间的依赖关系、 责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为组件 复用提供了上下文关系,因此组件库的大规模复用也需要框架。 从领域工程的角度看,框架也可以视为实例化的d s s a ( 特定领域的软件体系 结构,d o m m ns p e c i f i cs o f t w a r ea r c h i t e c t u r e ) ,它反映了一个软件系统族的体系结 构,并且提供了创建后者的基本构造单元,同时定义了针对特定的功能需要在何 处进行调整和修改,即扩展点。软件框架有助于实现领域内体系结构层次较大粒 度的设计复用,提高应用开发中复用的比例,从而保证复用活动的成功率,降低 应用开发的成本。 框架具有以下几个特点: ( 1 ) 框架是面向特定领域的,它构成了软件产品线的核心资产; ( 2 ) 框架是d s s a 的实例,具有部分实现的特性; ( 3 ) 框架由一组协作的成分构成; ( 4 ) 利用框架开发应用系统是通过扩展点的实例化过程实现的。 人们开发和使用最多的框架有两种:面向对象框架( o b i e c t o f i e n t e x i 第二章构建面向应用领域框架的背景知识 9 f r a m e w o r k ,简称o o f ) 和基于组件的框架( c o m p o n e n tb a s e df r a m e w o r k ,简称 c b f ) 。o o f 的复用是通过对框架中的抽象类进行特殊化的方式来定义框架行为 的,每一个抽象类派生一个子类,并在子类中给定所有纯虚方法的具体实现,然 后就可以复用这些具体的子类来开发特定应用系统。因此,o o f 是基于继承的框 架,也称为白盒框架。随着2 0 世纪9 0 年代组件技术的兴起,出现了基于组件的 框架( c b f ) ,即将基于继承的面向对象框架通过用组件接口中的方法调用来替代 对象类中的方法重载,转换成为基于组件的框架。基于组件的框架由互相协作的 组件组成,一个框架内部包含了多个组件,它们体现了领域的共性,称之为框架 组件( f r a m e w o r kc o m p o n e n t s ) ,而框架外部的、体现领域变化性的组件称为应用 组件( a p p l i c a t i o nc o m p o n e n t s ) ,通过对组件接口的扩展来实现应用系统。相对于 基于继承的框架,c b f 又被称为基于组装的框架。由以上简单分析可知,o o f 和 c b f 之间的主要区别在于实现技术和提供扩展点的机制不同。目前有许多框架系 统,例如用户界面方面的框架有m v c 、e t 等,针对其它领域的则有f o i b l e 、 m a c a p p 、f a c e ( f r a m e w o r ka d a p t i v ec o m p o s i t i o ne n v i r o n m e n t ) 等【5 1 。 2 2 1 框架在面向领域的软件复用中的地位 领域是指一组具有相似或相近软件需求的应用系统所覆盖的功能区域。在领 域范围内,c b d 实现了分析、设计、实现等多层次上的复用。图2 1 显示了它的 复用元素分层实现。在分析抽象层上复用领域模型;在设计层上复用元素框架; 在代码层次上复用组件。该复用过程将领域的知识转化为领域中系统共同的规约、 设计和构架,使得可以被复用的信息范围,扩大到了抽象级别较高的分析和设计 阶段,使复用变得更易实现。 开发过程 复用层次 具体应用 图2 1 面向领域的软件复用层次 ( 1 ) 领域模型 领域模型是针对领域的需求规约的模型,是一个商业建模范畴的概念,是这 l o面向医学影像处理领域的软件框架研究与应用 个行业内的各个企业的业务模型再向上抽象出来整个行业的业务模型。领域模型 具有如下两个重要作用:第一,为领域内新系统的开发提供了可复用的软件需求; 第二,指导领域设计阶段和实现阶段可复用软件资产的生产。在复用领域模型时, 由于领域模型记录了领域范围内具有复用价值的软件需求,而领域内新系统的开 发则必须要考虑其特定实施环境。一方面,新系统一般不需要复用领域模型内的 所有信息;另一方面,新系统可能具有一些领域模型所没有覆盖的特殊需求。因 此,定制成为复用领域模型的一种自然方式。定制包含两个重要的方面:剪裁 ( t a i l o r a t i o n ) 和扩充( e x t e n s i o n ) 。通过剪裁和扩充领域模型实现分析阶段的复用。 ( 2 ) 框架 框架指业务框架,它是面向应用领域中应用系统的骨架,它不提供完整的应 用软件系统的全部,同时需要一些公共框架如c o r b a 、j 2 e e 等做支撑。当开发 人员从框架内建立应用时,通常有三种方法:第一种,最简单的是直接使用框架 中的类与对象,不做任何改变;第二种,从基础对象模型类中创建新的领域类, 从而调整框架;第三种,扩展领域类和方法来调整框架。针对具体系统的设计时, 设计人员只要对框架设计文档做上述方法的调整,从而可以实现设计阶段的复用。 ( 3 ) 组件 组件具有高度的可复用性,能够独立工作,也能同其它组件装配起来协调工 作。它的使用同它的开发、生产无关,组件可以单独开发、单独编译,作为代码 级的复用得到广泛应用。 2 2 2 基于框架的软件开发方法 根据上述面向领域的软件复用层次上,相应的基于框架的软件开发过程如图 2 2 所示。基于框架的软件开发把领域问题抽象和具体的应用分开,即共性与特性 分开。在框架开发阶段,领域分析时考虑应用的产品族,而不是某一个具体的应 用,识别产品族的共性和可变性,刻画这些特征形成领域模型,以此为基础构建 一个带有热点( 热点定义了针对特定的功能需要在何处进行调整和修改) 的框架; 对框架中的组件依据需求信息,到组件库中查找,对于检索的结果选取合适的组 件,没有合适的,根据需求自行开发,再存储到组件库中;在应用开发阶段,主 要负责把产品线的应用与领域工程中己经建立的平台框架剥离,研究产品线 中的可变性,根据领域的特殊需求保证可变性的正确绑定,对应用系统进行分析 的设计,找出变化点,利用组件的接口调用和组装实现框架扩展机制生成系统。 第二章构建面向应用领域框架的背景知识 1 1 框架开发应用开发 图2 2 基于框架的软件开发过程 基于框架的软件开发过程,从领域问题着手建立领域模型、构建框架、复用 框架、构造应用系统,在软件生命周期的各个阶段指导领域复用问题。 2 3 框架与其它复用技术的关系 在基于框架的软件开发中,有一些密切相关的复用技术,包括类库、组件和 设计模式。 2 3 1 类库 类库是一组相关的、可复用的类的集合,这些类提供了通用的功能。类库的 典型例子如c + + 的i o 流库和标准模板库( s t l ) 。类库强调的是代码复用,它们 是面向对象开发环境下的“子程序库”。在基于框架的开发过程中,类库扮演着重 要的角色,框架通常将类库集成到其内部来简化开发工作,并通过类库来完成一 些基本的任务如字符串处理、文件管理等。所有的框架都是类库,但并不是所有 的类库都是框架。框架通过下列方式来扩展类库的功能:框架是包含特定领域对 象体系结构和功能的“半成品”。框架中的组件在一起合作,为一类相关的应用程 序提供了一个标准的体系结构骨架,通过从框架组件继承和组合可以得到完整的 应用程序。与之相比,类库不是针对特定领域,并只提供较小范围内的复用。与 框架的运行时的“反向控制相比,类库则是被动的【6 】。 1 2面向医学影像处理领域的软件框架研究与应用 2 3 2 组件 组件是自包含的抽象数据类型( a d t ) ,并能够被组装在一起形成完整的程序。 组件典型的例子如m i c r o s o f t 公司的a c t i v e x 和b o r l a n d 公司的v c l 。组件通过黑 盒技术,被设计成为定义了一个相互协调的操作的集合,该操作集可以通过在语 法上一致的接口来访问。组件和框架是不同的,而是相互协作的技术。首先,框 架为组件提供了一个可以复用的环境。每一个组件在开发时都假定了它的存在环 境,如果组件假定的环境不同,则它们就不可能在一起很好的工作;而框架则为 组件提供了一个标准的环境来处理错误,交换数据,激活彼此间的互操作。通常 所谓的“组件系统”如o l e o p e n d o c 和b e a n s 实际上是框架,它们解决了在构 造复杂文档和其它组合对象时所带来的标准问题。框架与组件在一起协同工作的 另一种方式就是框架使得开发新的组件变得更容易。实际上,不管组件库被设计 得如何的优秀,应用程序的功能看起来还是无法完全满足,从而必须开发新的组 件,框架则提供了设计新组件的规范和实现它们的模板。与框架相比,组件是松 藕合的,并支持二进制级别的复用。在基于框架的开发过程中,组件可以被黑盒 框架用作可嵌入的策略模式。通常,框架被用来简化体系结构和中间件的开发, 而组件被用来简化最终用户程序的开发【6 】。 2 3 3 设计模式 设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一 个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现; 而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它 们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性 的特点,因而设计模式的思想可以在框架设计中进行应用【6 】。 框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应用 的领域。 ( 1 ) 从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给 出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进 行应用。 ( 2 ) 从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以 不同方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式 对框架进行扩展,进而形成完整的不同的应用。 ( 3 ) 以第二条为基础,可以得出设计模式比框架更容易移植:框架一旦设计 第二章构建面向应用领域框架的背景知识 1 3 成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要 受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构 环境中进行应用。 总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。 2 4n e t p l a n 软件框架分析 n e t p l a n 是一系列框架的总框架,它集成了图形用户界面相关的传统框架概 念及用于算法的组合建模基础框架。它可以方便新网络应用的开发和定制,特别 是可以支持这些新应用的集成,具有很高的用户接受度7 1 。 在网络规划和设计领域的应用中所需要的基本组件如图2 3 所示。 , , , , , 、 、 用户交互 图2 3 通用应用的控制流程图 应用的最核心部分即应用控制器。该部分负责创建同时维护组成应用的对象 和模块等。特别是,控制器还操纵所有与应用相关的图形用户界面,例如查看网 络拓扑、网络数据,以及显示特定数据的面板等。所以控制器还要处理用户发出 的界面事件。最后,控制器还负责调用算法以完成特定应用中的真正工作。使用 基于代码库或工具箱的传统编程手段可以实现所有的对象和交互,但无法实现应 用之间代码和功能的复用。 若在n e t p l a n 框架的基础上实现图2 3 所示的应用结构,则不同组件之间的 交互就可以得到处理,从而可以在当前和以后的应用中得到复用。图2 4 给出了 n e t p l a n 的总体结构及图2 3 中应用组件在框架中的位置。此外,整个框架受到 t a l i g e n t1 9 9 5 1 提出的将框架分割为子框架思想的影响,n e t p l a n 由一个全局框 架和三个子框架组成,它们分别是应用框架、界面框架和算法框架。全局框架中 很重要的一部分是对通用网络模型与其它子框架之间交互方式的指定,除此之外, 每个框架还提供了一些标准对象,这些标准对象和标准控制路径一起构成了缺省 应用,其中,标准控制路径的作用是支持不同框架对象之间的交互。图2 4 所示为 n e t p l a n 框架和结构及不同子框架之间的交互。 1 4 面向医学影像处理领域的软件框架研究与廊用 用尸交互 图2 4n e t p l a n 框架的结构及不同子框架之间的交互 全局框架由通用网络模型、网络数据和三个子框架组成,它提供了这些框架 的通用网络模型之间进行标准交互的功能,并负责组织对网络数据组件的处理。 其中,网络数据组件中包含的是框架和特定应用的网络配置数据。全局框架的核 心是应用子框架,它包括一个负责协调各应用之间活动的主控制器,以及一些缺 省的控制对象,如编辑控制器和视图控制器等。应用框架中对象执行的操作有界 面和算法对象的创建、网络对象的创建和维护。但是应用控制器必须嵌入在应用 框架中,才能保证网络对象、界面和算法之间的交互得到有效处理。界面框架包 含了一组对象和类,它们定义了框架中所有网络应用的标准用户界面,并且定义 了用于查看网络拓扑的视图。算法框架是按照组合模型组织的,算法被组织为一 个个的算法族,每个算法族负责处理一些特定的问题。根据条件和需求的不同采 用不同的算法来解决问题,还可根据不同问题领域和需求对算法进行自动选择并 按层次方式组合来解决问题。 2 5 小结 本章从软件复用的概念,引出了影响软件复用实施的关键因素,进而分别对 软件框架技术、框架与类库、组件、设计模式之间的关系进行了探讨,介绍了软 件框架在面向领域的软件复用中的地位以及基于框架的软件开发方法,在构建面 向领域的软件框架时,理论知识非常重要,但实践经验也不可缺少,因此,本章 在最后对n e t p l a n 框架进行细致的分析,为后续章节打下坚实的基础。 第三章基于域分析的医学影像处理系统软件框架 1 5 第三章基于领域分析的医学影像处理系统软件框架 领域分析的目的是在软件开发过程中对应用领域的信息进行收集、抽象及组 织,识别和构造出该领域中各种可复用的信息,使得这些信息能够在开发该领域 的软件时得到最大限度的利用而提高开发效率。领域分析是进行领域应用框架设 计的基础,也是解决复用问题的关键技术之一。与系统分析相比,它不是针对一 个具体应用系统的问题及用户需求进行分析,而是针对一类应用系统的共同领域 及用户需求的共同特点进行的分析。领域分析将产生一个能描述这些应用系统的 共同构造信息、不受其差异影响、对该领域大多数应用系统都适应的领域模型。 本章对医学影像处理系统进行领域分析,通过分析医学影像处理系统的体系 结构和功能需求,抽象出该领域中的核心对象实体以及它们之间的关系,从而建 立起反映医学影像处理系统基本特征的通用的领域对象模型,为医学影像处理系 统软件框架的开发和演化提供了健壮的底层基础。 3 1 1 什么是领域分析 3 1 领域分析 软件工程环境中,领域是指一组具有相似或相近软件需求的应用系统所覆盖 的功能、问题、问题解决方案或知识区域。领域内信息具有两个基本特征: 1 可复用信息的领域特定性。使用特定的方法解决特定的问题时,它是可复 用的。 2 问题领域的内聚性和稳定性。内聚性使得可以通过一组有限的、相对较少 的可复用信息来解决大量问题的知识。稳定性是获取和表示这些信息所付出的代 价,可以通过在较长时间内多次复用它们来得到补偿。 领域分析是n e i g h o u s l 9 8 1 年在他的博士论文“使用部件的软件构筑”中首次 提出的,它的含义是指“识别、捕获和组织特定领域中一类相似系统内对象、操 作等可复用信息的过程 ,它的目的是支持系统化的软件复用。与系统分析不同, 领域分析所关心的是一个领域内所有相似系统中的对象和活动的共同特征与演化 特性,它产生的是支持系统化复用的基础设施,这些基础复用设施主要包括领域 定义、开发标准、领域模型和可复用构件仓库等【8 】。 1 6 面向医学影像处理领域的软件框
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国可重复使用不锈钢水瓶行业市场全景分析及前景机遇研判报告
- 2025年中国可放水壶的运动腰带行业市场全景分析及前景机遇研判报告
- 2025年中国建筑工程质量检测行业市场全景分析及前景机遇研判报告
- 2025年硫化染料项目可行性分析报告
- 中国休闲食品O2O市场发展现状调研及投资趋势前景分析报告
- 2021-2026年中国驾驶室及车身总成市场全面调研及行业投资潜力预测报告
- 换药操作培训课件
- 2025年 延津县无线电技术学校招聘考试笔试试题附答案
- 2025年 栖霞市市级机关遴选考试笔试试题附答案
- 2025年 湖北中烟招聘考试笔试试题试题附答案
- 高效化学灭菌技术-洞察及研究
- 融媒体保密管理制度
- 2025至2030中国消防产业市场深度调研及发展前景及有效策略与实施路径评估报告
- 2025江苏扬州宝应县“乡村振兴青年人才”招聘67人笔试参考题库附答案详解
- 地质灾害危险性评估合同模板
- 公司廉政纪律管理制度
- 2025年高考全国二卷数学高考真题解析 含参考答案
- 保密知识竞赛试题及答案
- T/CQAGS 3201-2023重庆好粮油压榨菜籽油
- 2025新译林版英语八上单词默写单(先鸟版)
- 自建门面租房协议书
评论
0/150
提交评论