




已阅读5页,还剩60页未读, 继续免费阅读
(计算机软件与理论专业论文)面向模式的软件设计质量模型研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
西南大学硕士学位论文摘要 面向模式的软件设计质量模型研究 计算机软件与理论专业硕士研究生王晓鹏 指导教师丁晓明副教授 摘要 软件质量度量是提高软件质量的有效手段。而越早的获得软件质量的度量, 对于提高软件质量越有帮助。在软件的设计阶段,使用传统的软件质量模型,可 以获得的度量信息很少,很难有效、准确预测到最终软件系统的质量。而且,传 统的软件质量模型很难为广大的开发设计人员使用,不利于应用到具体的开发中 去。然而模式作为一种反复出现的高度成熟的解决方案,其文档化的属性、优缺 点都具有确定性,其在软件设计中的使用为软件质量的评估提供了准确而丰富的 信息。据此,本文提出了一种面向模式的软件设计质量模型,在软件的设计阶段进 行质量评估。能够有效、准确地预测软件系统的质量。 面向模式的软件设计质量模型研究就是:针对面向模式的软件开发,在软件 的设计阶段,通过系统中使用模式情况的分析,对软件的设计质量进行质量评估, 从而达到预测最终软件产品的质量的目的。为了实现这一研究课题,我们进行了 多方面的研究工作,主要内容包括: 1 论文研究了模式与软件质量的关系。包括模式与软件质量度量的关系,使用 模式对软件质量的影响。 2 论文研究了模式的质量度量。给出了两种方法,能够对模式的质量属性进行 量化,并作为模式描述的扩展存入模式库中,成为软件设计质量模型实施的基础。 3 在分析了模式的特点及传统软件质量模型的基础上提出了面向模式的软件 设计质量模型。该模型是一种新的质量模型,它以模式库为基础,能够根据系统 中模式的种类、数量、分布等条件,对软件的设计进行质量评估。 4 论文对所提的面向模式的软件设计质量模型进行了有效性的验证。验证使用 s p e a r m a n 等级系数对此模型客观评分与专家评分进行分析,最后的结果表明两组 数据成线性相关,也就是说模型评分与专家评分的结果是一致的。从而证明了模 型的有效性。 5 本文在上述研究基础上,采用s t r u t s + h i b e r n a t e + j 2 e e 技术实现了一个基于b s 模式的软件设计质量评估系统,该系统实现了模式库管理,项目质量评估等功能。 关键词:软件质量模式设计模式度量质量评估 西南大学硕士学位论文 a b s t r a c t t h es t u d yo fq u a l i t ym o d e lf o rp a t t e r n o r i e n t e dd e s i g n m a j o r :c o m p u t e rs o f t w a r ea n dt h e o r y s u p e r v i s o r :a d j u n c tp r o f e s s o rd i n gx i a om i n g a u t h o r :w a n gx i a o p e n g a b s t r a c t s o f t w a r eq u a l i t ym e t r i ci sa l le f f e c t i v em e t h o dt o i m p r o v es o f t w a r eq u a l i t y t h e e a r l i e ri nt h el i f e c y c l et h a tam e t r i ci sa v a i l a b l e ,t h em o r eu s e f u li tw i l lb ei nt e r m so f i m p r o v i n gs o f t w a r eq u a l i t y w h i l ei nt h ed e s i g np h a s e ,h i g l ii n f o r m a t i o nc a n n o tb e a c q u i r e db yt r a d i t i o n a lq u a l i t ym o d e l s oi t i sd i f f i c u l tt oe f f e c t i v e l ya n da c c u r a t e l y p r e d i c tf i n i s h e ds o f t w a r ep r o d u c tq u a l i t y m o r e o v e r , t h et r a d i t i o n a ls o f t w a r em o d e l c a n n o tb eu s e de a s i l yb yd e v e l o p e ra n dd e s i g n e ri np r a c t i c e s i n c et h ed o c u m e n t e d p a t t e r n sh a v eb e e nf o u n dh i g h l ym a t u r e ,t h e yb r i n gs i g n i f i c a n ta m o u n to fd i s c i p l i n ea n d q u a l i t yo ft h es o f t w a r ed e s i g n f u r t h e r m o r e ,t h ed o c u m e n tp r o p e r t i e s ,m e r i t s a n d d r a w b a c k so fp a t t e r n sp r o v i d er i c hi n f o r m a t i o nf o ra s s e s ss y s t e mq u a l i t y t h i st h e s i s p r e s e n t san e wq u a l i t ym o d e lf o ro r i e n t e d - p a t t e md e s i g n w h i c hc a nc o m p l e t et h e a s s e s s m e n te f f e c t i v e l ya n d p r e c i s e l yi nt h ed e s i g np h a s e t h es t u d yq u a l i t ym o d e lf o ro r i e n t e d p a t t e r nd e s i g n ( q m o p d ) i st h a t :i nv i e wo f o r i e n t e d - p a t t e r ns o f t w a r ed e v e l o p m e n t , i nt h es o f t w a r ed e s i g ns t a g e ,t oa s s e s ss o f t w a r e d e s i g na n dp r e d i c tf i n a ls y s t e mq u a l i t yf r o mi t sd e s i g nt h a tc o n t a i n si n s t a n c e so fp a t t e r n i no r d e rt or e a l i z et h i sr e s e a r c ht o p i c , w eh a v ec a r r i e do i lt h ev a r i o u sr e s e a r c hw o r k , t h e p r i m a r yc o v e r a g ei n c l u d e s : 1 t h et h e s i ss t u d i e dt h ep a t t e r na n dt h es o f t w a r eq u a l i t yr e l a t i o n s ,w h i c hi n c l u d e s p a t t e r na n ds o f t w a r eq u a l i t ym e t r i 岱r e l a t i o n s t h ei n f l u e n c eo fu s ep a t t e r no ns o f t w a r e q u a l i t y 2 t h et h e s i ss t u d i e dt h ep a t t e r nq u a l i t ym e a s u r e t w om e t h o d sa r e 百v e i lt o q u a n t i f yt h ep a t t e r nq u a l i t ya t t r i b u t e a n ds t o r et h e mi nt h ep a t t e r nb a s ea st h ep a t t e r n d e s c r i p t i o ne x p a n s m nw h i c hb e c o m e st h ef o u n d a t i o no ft h eq u a l i t ym o d e lf o rs o f t w a r e d e s i g n 3 t h em o d e lf o ro r i e n t e d - p a t t e r nd e s i g nw a sp r e s e n t e db a s e do nt h ea n a l y s i so f 西南大学硕士学位论文 a b s t r a c t p a t t e r nc h a r a c t e r i s t i ca n dt r a d i t i o n a lq u a l i t ym o d e l n cm o d e li san e wo n ew h i c h d e p e n d so nt h ep a t t e r nb a s ea n da s s e s s e sq u a l i t yb yt h ep a t t e r nd e t a i l ss u c ha s t y p e , q u a n t i t ya n dd i s t r i b u t i o n 4 1 1 l ev a l i d a t i o no ft h eq u a l i t ym o d e lf o ro r i e n t e d - p a t t e r nd e s i g nw a sc a r d e do u t t h es p e a r m a n sr a n kc o r r e l a t i o nc o e f f i c i e n tw a su s e dt o t e s tt h es i g n i f i c a n c eo ft h e c o r r e l a t i o nb e t w e e n q m o p d s d e s i g n b a s e d a s s e s s m e n ta n de v a l u a t o r s i m p l e m e n t a t i o n - b a s e da s s e s s m e n t 1 n h ef i n a lr e s u l ti n d i c a t e dt w og r o u p so fd a t ab e c o m e t h el i n e a rc o r r e l a t i o n ,i no t h e rw o r d s ,t h et w oa s s e s s m e n tr e s u l ti sc o n s i s t e n t ,t h u s v e r i f i e dt h em o d e lv a l i d i t y 5 b a s e do nt h er e s e a r c hm e n t i o n e da b o v e , w eu s e ds t r u t s + h i b e r n a t e + j 2 e e t e c h n o l o g yt or e a l i z eaq u a l i t ya s s e s s m e n ts y s t e mb a s e do nt h eb ss t r u c t u r e ,w h i c h i n c l u d e st h ep a t t e r nb a s em a n a g e m e n t , p r o j e c tq u a l i t ya s s e s s m e n ta n ds oo n k e yw o r d s :s o f t w a r eq u a l i t yp a t t e r nd e s i g np a t t e r n m e t r i c sa s s e s s m e n t m 独创性声明 学位论文题目:亘囱搓式鳗塑往遮! 土匮量搓型妞窀 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得西南大学或其他教育机构的学位或证书而使用过的材料。与我 一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 况明并表示谢意。 学位论文作者:互晚糍签字日期:王,1 年了月肜日 学位论文版权使用授权书 本学位论文作者完全了解西南大学有关保留、使用学位论文的规 定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许论文被查阅和借阅。本人授权西南大学研究生院可以将学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书,本论文:d 不保密, 口保密期限至年月止) 。 学位论文作者签名:至心j 舶 签字日期:卫,驴 年歹月,口日 导师签名:一孓孝j - 签字日期:多矿1 年j 月,p 日 两南大学硕士学位论文第一章绪论 第一章绪论 1 1 研究背景 软件质量一直以来都是软件工程领域的研究热点。软件质量度量被认为是提 高软件质量的有效手段。而且,软件工程领域一个广为接受的准则是:软件质量 保证应该在软件生命周期的早期开始 1 。而越早的获得软件质量的度量,对于 提高软件质量越有帮助。然而在软件生命周期的早期,可以获得的度量信息很少, 很难有效的预测到最终软件系统的质量 2 】软件设计为软件需求与软件实现之 间加起了一座桥梁,使抽象、模糊的用户需求转化为比较具体、精确的软件。可 见,在软件的设计阶段完成软件质量的评估是最为有效的 1 。 目前,随着软件系统复杂度的增加,软件模式获得了人们特别的注意力,这 是因为模式的大量使用不仅提高了软件的开发效率降低开发成本,而且提高了软 件的质量。软件模式描述了软件业多年来成熟的软件知识和经验,使我们在不同 的应用领域中,可以开发出大粒度可重用的软件框架和组件,而不仅仅是简单地 提供源代码。一个模式描述了在软件设计和实现中所频繁出现的一个问题,并通 过一种可被复用的方式描述了该问题的解决方案。模式有助于开发人员解决开发 过程中反复碰到的问题。从而提高软件生产率和可维护性,就是不再从一无所有 开始设计开发应用程序,而是复用那些频繁出现的问题的现存解决方案,而这些 解决方案已经在其它应用中得到了应用和测试。另一方面,一个系统如果在设计 中使用了文档化的成熟的模式,那么该系统最终很可能表现出更好的质量属性, 如模块性、事物分离、适应性以及维护性等,这样模式能够给软件设计者提供一 些信息预测最终整个软件产品的质量 3 。 1 2 研究现状 软件模式的研究历史仅十余年,是一个新兴的研究领域,同时也是一个热点研 究领域。国外从9 0 年代初就有人开始关注软件代码模式。自从“g o f ”设计模式 问世。引起了国外软件工程界对设计模式的极大关注。此后,设计模式成了软件 工程领域中的热门研究课题。目前,国外软件工程界正把设计模式应用于软件体 系结构、设计、编码和软件开发的过程和组织等,其理论成果主要体现在从1 9 9 4 年开始的“程序设计模式语言( ( p a t t e r nl a n g u a g e so fp r o g r a m m i n g p l o p ) ”年会论文 集中。国内对于设计模式基本从1 9 9 6 年才开始了解,对设计模式的研究也就最近 几年才开始,模式在软件质量方面的研究还很少。 西南大学硕士学位论文 第一章绪论 目前对设计模式的研究成果及研究工作主要集中在以下几个方面: 1 新模式的发现和发明。每年国际上都举办包括p l o p ,e c o o p 等在内的学 术会议对设计模式进行讨论,据权威统计,目i j 软件界己经总结出来大约7 0 0 种 不同的模式,人们正在各个领域总结模式,如通信领域、w e b 开发领域。设计模 式与其他面向对象技术的关系也是当前研究的热点。 2 模式的组织和索引。目前的设计模式还仍然是用文档的形式来记载,面对 设计模式数量的迅速增长,因此需要一种合适的覆盖所有模式的组织方法,并对 其中的模式提供一个索引,建造一个可以有效的支持高质量软件开发的真正成熟 的模式系统。 3 模式的使用自动化。目前设计模式使用自动化和设计模式支持工具的研究 也是一个热点。 4 形式化模式。在设计模式研究过程中,国外已经提出了很多关于设计模式 结构的描述方法。 5 模式的应用及具体化。虽然设计模式有很多,并且设计模式的提出也是针 对所有领域的,但是并不是所有的模式都直接可以拿来直接应用的,有的模式可 能适合某应用但需要对它进行改造,用改造的设计模式或经典设计模式来解决具 体设计问题,使其更加适合于该应用,所以设计模式应用和改造来适应具体设计 问题也是当前研究的热点。 6 模式在软件质量方面的研究。分析模式对软件产品质量的影响,研究模式 与软件度量的关系等。 总之,设计模式是一个既新颖又长久的研究方向,随着企业应用的迅速发展 和产品化,在我国对设计模式的研究正方兴未艾,为以后全面的发展做准备。面 向模式的软件设计质量模型的研究,将模式引入到软件质量评估中来,在设计阶 段利用模式的特性预测最终软件产品的质量,这使得此方法能够更简单方便的被 软件工程师所掌握,从而有效的指导软件开发,最终提高软件质量。 1 3 论文的研究意义及创新点 通过对软件设计的分析,可以预测到最终软件系统的质量。使用传统的软件 质量模型,在软件的设计阶段可以获得的信息较少,很难有效、准确地评估软件 的设计,并预测最终软件产品的质量。然而模式作为一种反复出现的高度成熟的 解决方案,其文档化的属性、优缺点都具有确定性,其在设计软件设计中的使用 为软件质量的评估提供了准确而丰富的信息。据此,本文提出了一种面向模式的 软件设计质量模型,在软件的设计阶段进行质量评估,能够有效、准确地预测软件 系统的质量。其理论意义在于:本文提出一种新的软件设计质量模型,并将模式 2 西南大学硕士学位论文第一章绪论 引入到软件质量度量中来。这是本文的创新点。其现实意义在于:本文提出的模 型在软件开发的设计阶段对软件的质量进行评估,将评估时间提前,能够及时发 现并处理问题,所以对软件的开发具有很好的指导意义:该模型使用简单,可操 作性强,能够为软件开发人员所掌握,可以应用到实际软件丌发中,具有很强的 实用性。 1 4 论文所做工作及内容安排 面向模式的软件设计质量模型研究就是:针对面向模式的软件开发,在软件 的设计阶段,根据系统中使用模式的情况进行分析,对软件的设计质量进行质量 评估,从而达到预测最终软件产品的质量的目的。为了实现这一研究课题,我们 围绕以下方面进行了研究,主要内容包括: 1 模式与软件质量关系的研究。包括使用模式对软件质量的影响,模式与软件 质量度量的关系。 2 模式的质量度量研究。提出一种方法,能够对模式的质量属性进行量化,并 作为模式描述的扩展存入模式库中,成为软件度量模型实施的基础。 3 面向模式的软件设计质量模型研究。提出一种新的质量模型,根据系统中模 式的种类、数量、分布等条件,对软件的设计进行质量评估。 论文的组织结构如下: 第一章绪论:简要介绍了本论文的课题背景和意义,本课题国内外研究现状, 以及论文的主要工作和论文的组织结构。 第二章模式相关知识介绍:介绍模式的概念、特点、描述方法、分类,对典 型模式进行了详细的介绍,并介绍了模式系统以及以模式系统为基础的面向模式 的软件设计方法。 第三章模式与软件质量:首先介绍了软件质量的基本知识,包括软件质量的 模型及度量方法,然后分析了模式与软件质量的关系,阐述了模式与软件度量在 保证软件质量方面两者是一致的,以及使用模式能够提高软件产品的适应性、可 维护性、性能等质量属性。 第四章面向模式的软件设计质量模型:首先提出了对模式的软件质量度量方 法,该方法将参考q m o o d 模型对模式质量属性进行量化,并将此度量值作为模 式描述的一部分存入到模式库中其次提出了面向模式的软件设计质量模型,该 模型根据系统设计中各个不同的模式,以及模式的分类、模式的分布等情况对软 件质量进行评估。 第五章模型验证与分析:给出若干个软件产品实例,分别由此质量模型及设 计专家进行评估,前者以此模型进行客观性评估,后者则对软件产品进行主观性 3 西南大学硕+ 学位论文 第一章绪论 评价。将两者评估结果进行分析对比,从而验证模型的有效性。 第六章面向模式的软件质量评估系统原型实现:开发面向模式的软件质量评 估系统原型,此系统以模式库为基础,能够支持模式库面向模式的软件设计以及 系统设计的质量评估。 第七章结论和展望:对本论文的工作进行了回顾和总结,并且提出了一些需 要进一步研究的问题。 4 两南大学硕十学位论文 第二章模式相关知识介绍 第二章模式相关知识介绍 随着软件系统复杂度的增加,人们在寻找使得软件开发自动化的技术,探索 改善软件质量、可靠性和减少开发成本、时间的技术。还有,在软件设计过程中, 人们所面临的问题已经不再是考虑软件系统的功能问题,而是面临要解决更难以 处理的非功能性需求,这也要求软件界提出一种新的理论或技术来解决这类新出 现的问题,在所有用于解决以上问题的革新方法和技术之中,软件模式最近获得 了人们特别的注意力,己经引起人们的广泛关注,成为软件工程领域的一个非常 热门的研究领域。 软件模式就是成功的软件实践经验的总结,是软件实践的抽象。它们在收集 熟练的设计者和软件工程师的经验方面起到了“根基”的作用。模式以容易获取 的方式和所希望的良好书写的格式捕获了这些已证实的解决方案。本章首先介绍 模式的定义、起源,模式的特点,并研究模式的分类、描述方法,然后介绍几个 典型模式,最后分析模式系统以及以模式系统为基础的面向模式的软件设计方法。 2 1 模式的定义 2 1 1 什么是模式 当专家求解一个问题时,他们往往不会发明一种和已有解决方案完全不同的 方案来处理这个问题。他们往往会想起解决过的相似问题,并重用其解法的精华 来解决新问题。这种“专家行为”,即同时考虑问题求解方案,这一点在很多 领域中都是共同的,比如建筑学,经济学和软件工程领域就是如此。这是解决任 何一类问题或社会交互活动的一种自然手段e 4 3 。 模式的思想源于2 0 世纪7 0 年代建筑工程设计师c h r i s t o p h e ra l e x a n d a r 所发表 的诸多关于工程和建筑模式方面的著作。2 0 世纪8 0 年代,两位软件设计! j $ w a r d c u n n i n g h a m 和k e n tb e c k 阅读了a l e x a n d a r 的关于模式的著作后受到了启发并且在 用s m a l l t a l k 语言开发软件时,将模式的思想应用其中。1 9 8 7 年,他们在o o p s l a 8 7 i no r l a n d o 上发表了论文:“u s i n gp a t t e r nl a n g u a g e sf o ro b j e c t o r i e n t e d p r o g r a m s ( 使用模式语言的面向对象程序) ”,从而正式把模式的思想引入到软件 领域中。1 9 9 5 年,四位软件设计专家e r i c hg a m m a 、r i c h a r dh e l m 、r a l p hj o h n s o n 和j o h nv 1 i s s i d e s 出版了 d e s i g np a t t e r n s - - e l e m e n t so fr e u s a b l eo b j e c t - - o r i e n t e ds o f t w a r e ) ( 设计模式一可重用面向对象软件的基础) 一书。该书被看作 在面向对象的编程中使用模式化方法研究的开创性著作,为模式在软件工程中获 5 两南大学硕十学位论文第二章模式相关知识介绍 得广泛承认铺平了道路。随着模式对于软件开发的影响力的不断加大,越来越多 的计算机工作者投入到模式的研究和使用中,从而形成了许多模式团体 3 8 。 c h r i s t o p h e ra l e x a n d e r 在建筑的永恒方法一书中这样定义了“模式” ( p a t t e r n ) :每个模式有三个部分的组成规则,它表示了特定环境,一个问题和 一个解决方案之自j 的关系。g a b i e l 为模式作了如下的定义,使之更适用于软件业: 每个模式都是一个法则,由三个部分组成。它表现的是一种特定的上下文,一 个特定的在该上下文中反复出现的约束系统,以及一种能够引导这些约束自身解 决的软件构造者三者之间的关系。简单的说,模式就是在一种上下文中,一类问 题的一种可重复的使用方案。一般而言,一个模式有四个基本要素 5 : 1 模式名称( p a t t e r nn a m e ) :一个助记名。它用一两个词来描述模式的问题、 解决方案和效果。命名一个新的模式增加了我们的设计词汇。设计模式允许我们 在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就 可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与 其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作 的难点之一。 2 问题( p r o b l e m ) :描述了应该在何时使用模式。它解释了设计问题和问题 存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也 可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式 必须满足的一系列先决条件。 3 解决方案( s o l u t i o n ) :描述了设计的组成成分,它们之间的相互关系及各 自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解 决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和 怎样用一个具有一般意义的元素组合( 类或对象组合) 来解决这个问题。 4 效果( c o n s e q u e n c e s ) :描述了模式应用的效果及使用模式应权衡的问题。 尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理 解使用模式的代价及好处具有重要意义。软件效果大多关注对时间和空间的衡量, 它们也表达了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式 效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对 理解和评价这些模式很有帮助。 2 1 2 模式的特点 1 一个模式关注于一个在特定设计环境中出现的重复设计问题,并为它提供一 个解决方案。 2 各种模式用文档记录下现存的经过充分考验的设计经验。它们不是人工发 6 西南大学硕十学位论文第二章模式相荚知识介绍 明或创造的,它们“提炼并提供一种手段来重用从有经验的实践者获得的设计知 识”。那些熟悉足够多模式的人能够立即将它们应用到设计问题中而不需要重新发 现它们。例如m v c ( 模型视图控制器) 模式体现了开发人员多年来开发交互式 系统得经验。 3 模式指明了处于单个类和实例层次或组件层次之上的抽象。典型情况下一 个模式描述几个组件,类或对象,并详细说明它们的职责和关系以及它们之问的 合作。所有的组件共同解决模式关注的问题,而且通常比单个组件更有效。例如 m v c 模式描述了三个合作组件的三元组,每个m v c 的三元组也同系统的其他 m v c 三元组合作。 4 模式为设计原则提供一种公共的词汇和理解。如果仔细选择模式名称,则 这个名称成为广泛传播的设计语言的一部分。它有助于设计问题及其解决方案的 有效讨论。它们去掉了对一个特殊问题用复杂而冗长的描述来解决其解决方案的 需求。代之以你可以使用模式名称,并解释解决方案的哪个部分对应模式的哪个 组件,或者对应它们之间的哪个关系。 5 模式为软件体系结构建立文档提供了一种手段。设计一个软件系统时,这 些模式可以在你脑海中形成一个构想。这避免了在扩张和修改初始体系结构时或 修改系统代码时违背最初的这个构想。例如,当你知道一个系统是根据m v c 模式 构建的,你也就知道如何扩展它的一个新功能:使核,t l , 功能与用户输入信息相分 离。 6 模式支持用已定义的属性来构造软件。模式提供一个功能行为的基本骨架, 从而有助于实现应用程序的功能。例如,有的模式用于维护合作组件之间的一致 性,有的模式提供透明对等的进程自j 通信。另外,模式清楚的描述了软件系统的 非功能需求,如可更改性、可靠性、可测试性或可重用性。例如,m v c 模式支持 用户界面的可更改性和核心功能的可重用性。 7 模式有助于建立一个复杂的和异构的软件体系结构。每个模式提供组件、 作用以及相互关系的预定义集。它可以用于指定具体软件结构的特定方面。模式 “可作为更复杂结构的构造块”。这种使用预定义结构的设计方法能够提高设计的 速度和质量。理解并应用良好书写的模式比起自己寻找解决方案要节省时间。但 是,尽管模式确定了解决一个基本问题的基本结构,但是它还没有给出完整的详 细方案。也就是说,模式有助于相似单元的创建,这些单元在更宽泛的结构上是 相似的,但是在详细层面很不一样。模式有助于解决问题,但不能提供完整的解 决方案。 8 模式有助于管理软件复杂度。每个模式描述一种用来处理所关注问题的以 证明是可行的方法,这些问题包括:所需组建的种类、它们的作用、要隐藏的细 7 两南大学硕十学位论文 第二章模式相关知识介猁 节、应为可视化的抽象,以及各个要素是如何工作的,等等【4 ,5 】。 2 2 模式的分类及描述 2 2 1 模式分类 对现有模式的更进一步观察揭示它们包含各种范围的度量和抽象。有些模式有 助于把一个软件分解为子系统,有些模式支持子系统和组件的细化或他们之间的 细化,另外一些模式有助于实现特定编程语言的特殊实现。模式的范围也从与领 域无关的模式,比如去耦交互组件模式,遍及到关注特定领域的模式,如商业应 用中的交易策略或电信中的呼叫路由。为了细化分类,我们将模式分成三种类型: 体系结构模式,设计模式和惯用法。这种分类方式反映了模式的规模及其在软件 系统中的重要程度【4 】。 1 体系结构模式:表示软件系统的基本结构化组织图式。他提供一套预定义的 子系统,规定他们的职责,并包含用于组织他们之间关系的规则和指南。体系结 构模式可作为具体软件体系结构的模版,它是规模较大的模式,它们规定一个应 用的系统范围的结构特性。以及对其子系统的体系结构施加的影响。选择体系结 构模式是开发软件系统的基本决策。 2 设计模式:提供一个用于细化软件系统的子系统或者组件,或者他们之间关 系的图式。它描述通信组件的公共再现结构,通信组件可以解决特定语境中的一 个一般设计问题。它是中等规模的模式,规模上比体系结构模式要小,但又独立 于特定编程语言或编程范例。设计模式的应用对软件系统的基础结构没有影响, 但对子系统的体系结构有较大影响。 3 惯用法:是针对具体的某一种编程语言的低层模式,处理特定设计问题的实 现。惯用法代表最底层模式。它们关注设计和实现方面。大多数惯用法是针对具 体语言的,它们捕获现有的编程经验。经常出现这样的情况:同一个惯用法对不 同的语言是不一样的。一种惯用法对一种语言有效而对另一种却无意义。 这三种模式的区别主要在于它们处于不同的抽象层次。体系结构模式是高层抽 象,关心大规模的组件或子系统、系统的全局特性和机制。设计模式具有中等层 次的抽象粒度,它完善了子系统的结构和行为以及它们之间的关系,并不影响整 体系统的结构。惯用法模式是特定程序设计语言的技术,完善了组件的结构或行 为的底层的内部和外部细节。 2 2 2 模式描述 每个设计模式都有统一的描述,以利于其他人使用,实现资源共享。模式的 描述形式通常分为两类:一类是经典的自然语言结合0 0 框图的非形式化描述形式, 8 两南大学硕十学位论文 第二章模式相关知彭! 介绍 一类是形式化描述。自然语言描述比较简单、方便,但对现实与设计之间的过渡 描述不够流畅。对象建模技术( o m t ) 描述是利用类图和对象图对设计模式中的类、 实例以及整体模式结构进行图形描述的方法,而u m l 是在o m t 基础上进一步发展起 来的,其描述更加清晰和统一,符合大部分软件设计人员的习惯,也便于设计人 员的理解和应用。形式化语言主要包括d i s c o ,i 上p u s ,l a y o m ,a d v ad o ,cd l p d k p d s p 等,其中d i s c o 侧重于描述设计模式中参与者的交互行为。 目前通常采用g o f 的非形式化描述形式,包括标题和详述,其结合了自然语言 描述及u m l 框图的表示。一个模式描述通常要求包括如下信息 5 : ( 1 ) 模式名称:每个模式都有唯一的名称,用于简述模式的本质。人们通过模 式名称来鉴别模式; ( 2 ) 意图:描述设计模式解决什么样的特定设计问题及其基本原理; ( 3 ) 动机:用以说明一个设计问题以及如何用模式中的类、对象来解决该问题 的特定场景。 ( 4 ) 解决方案:这是设计模式的核心。描述模式在自己出现的情境中怎样提供 一个解决方案; ( 5 ) 适用性:描述何种情况下使用模式,改进哪些不良问题。 ( 6 ) 结构:采用面向对象技术的表示法对模式的结构进行图形描述。 ( 7 ) 参与者:即模式包括的实体。指模式中的类或对象及其各自的职责: ( 8 ) 协作:模式的参与者之间如何协调完成他们的职责; ( 9 ) 效果:使用模式的优点和存在的不足; ( 1 0 ) 实现:指怎样实现模式,是模式的具体表现形式,实现同一模式的方法 通常会有很多种; ( 1 1 ) 相关模式:与模式紧密相关的其他模式,它们可能在很大程度上有相似 之处,或者可以相互补充。 2 3 典型模式介绍 2 3 1m v c 模式 模型一视图一控制器( m v c ) 是x e r o x pa r c 在2 0 世纪8 0 年代为编程语言 s m a l l t a l k 一8 0 发明的一种软件设计模式,至今已被广泛使用,最近几年被推荐为 s u n 公司j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 平台的设计模式。m v c 模式弱化了业 务逻辑接口和数据接口之间的耦合,使逻辑与呈现相分离,从而让表现层更加独 立和更富于变化,增强了代码的可维护性与扩展性。 h i 、,c 模式,它强制性地把应用程序的输入、处理和输出分开。其应用架构划分 为3 个相互协调的核心模块:模型、视图和控制器,它们分别担负不同的任务。 9 西南大学硕士学位论文 第二章模式相关知识介绍 m o d e l :事务逻辑模块,这是整个模型的核心。它表示的是解决方案空日j 的真 正的逻辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。 在这些抽象的对象中封装了对象属性和这些对象所隐含的逻辑。 v i e w :用户视图模块,视图是模型的表示,提供用户交互界面。当模型状念 发生变化时,视图应该得到通知,以便更新模型的变化。 c o n t r o l l e r :流程控制模块,该部分是用户界面与m o d e l 的接口。一方面它接 受来自视图的请求,修改模型的状态:另一方面,它处理来自于m o d e l 的事件和 m o d e l 逻辑执行的结果,调用适当的v i e w ,为用户提供反馈。 h v c 主题是把业务逻辑、用户的控制动作和业务的实际状况的展现之自j 的耦合 限制到最小的可能性,从而使设计者能够独立的设计每一部分。 冉法北曦 一 潮翱 一一一一一一一一 图2 - 1w c 动态协作关系图 以上是m v c 动态协作关系图,从图中可以看到,m o d e l 是整个模型的核心,他 表示的是解决方案空间的真正的逻辑。视图是m o d e l 的外在表现,一个m o d e l 可以 对应一个或者多个视图。视图具有与外界交互的功能。同时,m o d e l 的更新与修改 也将通过控制器来通知视图,从而保持视图与m o d e l 的一致性。m v c 的处理过程: 首先控制器接收用户的请求,并决定主要管理应用系统与外界的接口。一方面它 为外界提供输入手段,并触发应用逻辑运行:另一方面,它又将逻辑运行的结果以 某种形式显示给外界。控制器是m o d e l 与视图的联系纽带,控制器提取通过视图传 西南大学硕+ 学位论文第二章模式相关知识介智 输进来的外部信息,并将其转化成响应来调用对应的m o d e l 进行处理,然后m o d e l 处理用户的请求并返回数据,最后控制器调用相应的视图模型返回数据并通过 表示层呈现给用户。 2 3 2b r i d g e 模式 b r i d g e ( 桥接1 模式在规模上属于设计模式,它的作用是将抽象和行为划分开来, 各自独立,但能动态的结合。 1 意图 将抽象部分与它的实现部分分离。使它们都可以独立地变化。 2 别名 h a n d l e b o d y 3 动机 当一个抽象可能有多个实现时,通常用继承来协调它们。抽象类定义为该抽象 的接口,而具体的子类则用不同方式加以实现。但是此方法有时不够灵活。继承 机制将抽象部分与它的实现部分固定在一起,使得难以对抽象部分和实现部分独 立地进行修改、扩充和重用。 让我们考虑在一个用户界面工具箱中,一个可移植的w i n d o w 抽象部分的实现。 例如,这一抽象部分应该允许用户开发一些在x w i n d o ws y s t e m 和i b m 的p r e s e n t a t i o n m a n a g e r ( p m ) 系统中都可以使用的应用程序。运用继承机制,我们可以定义w i n d o w 抽象类和它的两个子类x w i n d o w 与p m w i n d o w ,由它们分别实现不同系统平台上 的w i n d o w 界面。但是继承机制有两个不足之处: 1 ) 扩展w i n d o w 抽象很不方便。假设有w i n d o w 的一个子类i c o nw i n d o w ,它 专门将w i n d o w 抽象用于图标处理。为了使i c o nw i n d o w 支持两个系统平台,我们 必须实现两个新类xl e o nw i n d o w 和p m l c o nw i n d o w ,更为糟糕的是,我们不得不 为每一种类型的窗口都定义两个类。而为了支持第三个系统平台我们还必须为每 一种窗口定义一个新的w i n d o w 子类,如下图所示。 图2 _ 2 普通方案的类图 2 ) 继承机制使得客户代码与平台相关。每当客户创建一个窗口时,必须要实 两南大学硕十学位论文第二章模式相关知识介鲆 例化一个具体的类,这个类有特定的实现部分。例如,创建x w i n d o w 对象会将 w i n d o w 抽象与x w i n d o w 的实现部分绑定起来,这使得客户程序依赖于x w i n d o w 的 实现部分。这很难将客户代码移植到其他平台上去。 客户在创建窗口时应该不涉及到其具体实现部分。仅仅是窗口的实现部分依赖 于应用运行的平台。这样客户代码在创建窗口时就不应涉及到特定的平台。 b r i d g e 模式解决以上问题的方法是,将w i n d o w 抽象和它的实现部分分别放在 独立的类层次结构中。其中一个类层次结构针对窗口接口( w i n d o w 、i c o nw i n d o w 、 t r a n s i e n tw i n d o w ) ,另外一个独立的类层次结构针对平台相关的窗口实现部分, 这个类层次结构的根类w i n d o w l m p 。例如x w i n d o w l m p 子类提供了一个基于x w i n d o w 系统的实现,如下图所示。 图2 38 ri d g e 模式解决方案的类图 对w i n d o w 子类的所有操作都是用w i n d o w l m p 接口中的抽象操作实现的。这 就将窗口的抽象与系统平台相关的实现部分分离开来。因此,我们将w i n d o w 与 w i n d o w l m p 之间的关系称之为桥接,因为它在抽象类与它的实现之间起到了桥梁 作用,使它们可以独立地变化。 4 适用性 以下一些情况使用b r i d g e 模式: 你不希望在抽象和它的实现部分之间有一个固定的绑定关系。例如这种情况可 能是因为,在程序运行时刻实现部分应可以被选择或者切换。 类的抽象以及它的实现都应该可以通过生成子类的方法加以扩充。这时b r i d g e 模式使你可以对不同的抽象接口和实现部分进行组合,并分别对它们进行扩充。 西南大学硕+ 学位论文第二章模式相关知识介绍 对一个抽象的实现部分的修改应对客户不产生影响,即客户的代码不必重新编 译。 ( c + + ) 你想对客户完全隐藏抽象的实现部分。在c + + 中,类的表示在类接 口中是可见的。 正如在意图一节的第一个类图中所示的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)关于补偿协议书
- (2025年标准)雇人看院协议书
- 消防检测技术流程
- 基于云计算的智能仓储管理系统优化研究与实践
- 智能交通系统设计与实施手册
- 节约用水主题队会课件
- 2025年环己酮项目规划申请报告模板
- 2026届云南省西畴县二中高二化学第一学期期末监测模拟试题含答案
- 2025年中药学专业求职面试技巧与题库大
- 政府行业政务大数据平台方案
- 2025年9月新版用工合同(合作协议书)范本(可规避风险)
- 人民调解员培训课件
- 血液透析学习汇报
- 2025重庆机场集团有限公司社会招聘202人考前自测高频考点模拟试题及完整答案详解1套
- 安徽省江南十校2025年物理高一下期末检测模拟试题含解析
- 培训钉钉课件
- 新建洞室储气库压缩空气储能系统的经济性及成本分析
- 砖厂职业危害管理制度
- 肝功能障碍患者的麻醉管理要点
- 2025年粮油仓储管理员(高级)职业技能鉴定考试练习题库(含答案)
- 【课件】新高三启动主题班会:启航高三逐梦未来
评论
0/150
提交评论