




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设计模式在软件复用中的应用摘要:软件规模和复杂度的不断增加,使得软件开发面临着前所未有的挑战。软件的复用被视为解决软件危机,提高软件生产率和质量的有效途径。设计模式在软件设计的应用体现在使软件具有分层结构,使得软件更稳定,更完善,而且各个层次相互独立,任何一层的改动不会影响其他层次。因此增强了软件的灵活性、稳定性和可扩展性,软件的复用是一种更抽象、更有效、使用范围更广的复用,并且在实际的操作中更加切实可行。关键词:软件危机;设计模式;软件复用;构件技术;CBD1. 引言从20世纪60年代开始,计算机硬件技术的快速发展,计算机的容量、速度和可考性得到明显的提高,而生产计算机硬件的成本却不断下降。这为十算机更广泛的应用提供了有利的条件。随之各种复杂的、大型软件项目被提出来。但是随着软件系统规模的扩大和复杂性的增长,软件开发所耗费的入力、物力也发生了惊人地增加,两软件系统的可靠性和可维护性却明显下降,软件业出现了危机。于是于1968年Mcllroy在NATO软件工程会议上首次提出了软件复用的思想。入们逐渐认识到要摆脱这场危机,真正实现软件的工业化生产方式,提高软件的开发效率和质量,软件复用是一条现实可行的途径。2. 软件复用理论与技术二、1.1.2.1 软件复用定义与概述及关键因素软件复用是一种由预先构造好的、为复用目的而设计的软件构件来建立或者组装软件系统的过程。它的基本思想非常简单,即放弃那种原始、一切从头开始的软件开发方式,而是利用复用技术,由公共的可复用构件来组装新的 系统,这些可复用构件包括对象类、框架类或者软件体系结构等。软件复用的益处最主要、最明显的是提高软件生产率,并降低软件生产的代价,第二个明显的有点是提高软件的质量。其它的方面的益处还有:使用相同的软件(特别是用户界面软件)的系统将对用户体现较多的一致性,并具有较好的互操作性;推动标准化工作,使软件体系结构,算法乃至开发过程等方面趋于一致。软件复用强调的是复用的目的,它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组织和管理这些复用产品,方便人们查找和使用,基于复用产品进行开发。由此可见,并非所有重复使用软件的行为都是软件复用过程,例如:重复使用并非为了复用目的而设计的软件或在一个应用系统的不同版本间重复使用代码,这两类行为都不属于严格意思上的软件复用。软件复用有三个基本问题:一是可以复用的对象;二是所复用对象必须是有用的;三是复用者需要知道如何去使用被复用的对象。实现软件复用的关键因素主要包括:软件构件技术、领域工程、软件构架、软件再工程、开放系统、软件过程、CASE技术等以及各种非技术因素。实现软件复用的各种技术和非技术因素是相互联系的,它们结合在一起,共同影响软件复用的实现。1.2.3.2.2 构件技术构件技术是支持软件复用的核心技术。构件是指应用系统中可以明确辨识的构成成分,它是一个组合的单位,包括合同化声明的接口和明确说明的上下文相关性。一个构件可以被独立地部署且服务于第三方所做的组合。面向对象技术中对象概念的提出与发展,为软件构件的产生奠定了理论基础。构件技术以面向对象技术为基础,并很好地发展了面向对象技术。构件技术的目的是将对象封装成一个规范的、标准的、可以方便地被构件容器所操纵和使用的整体,使其成为一个通用、高效的软件部件。可复用构件指具有相对独立的功能和可复用价值的构件。构件的最小粒度为单个的类和模块。可复用构件应具备如下的属性:(l)有用性:构件必须提供有用的功能;(2)可用性:构件必须易于理解和使用:(3)质量:构件及其变形必须能够正确工作;(4)适应性:构件应易于通过参数化等方式在不同语境中进行配置;(5)可移植性:构件应能在不同的软硬件平台下工作。2.3 CBD及其特点CBD即基于构件的软件开发,是软件工程技术和面向对象技术发展到一定程度的产物。在CBD的概念中有两个基本思想:首先,如果应用由己有构件进行装配、组合而成,则开发的效率会大大提高;其次,可以通过某些渠道获得大量的构件,不论是通用的构件还是某一领域专用的构件。由此可以看出,CBD的初衷是为了提高软件的复用性,从而满足软件应用开发过程中不断增加的对于低成本、短周期、高质量、个性化的需求,使得动态的、竞争激烈的、全球化的软件应用开发进入现代化工业生产。三、1.2.3. 设计模式理论基础3.1 设计模式的起源工程学科中的一大原则是总结经验和利用实践证明有效的方案。经验是可以复用的,有助于更快、更顺利的建立良好的方案。从而节约成本、提高质量。为了描述经验,模式已成为收集、规范和分析特定场景中常见的问题的解决方案(即经验)的有效方法。模式的研究起源于建筑工程设计大师Christopher Alexander的关于城市规划和建筑设计的著作。他认为:“每一种模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案,而不必重复劳动。”尽管他的著作是针对城市规划和建筑设计的,但是其观点实际上适用于所有的工程设计领域。软件界借鉴了其中关于模式的思想。软件模式在软件界中的出现始于1987年。模式的核心思想是总结和积累前人在软件开发过程中成功的设计经验,通过对这些经验的学习,使得人们在面对新的软件设计问题时不必一切都从头开始,而可以尽量采用已有的模式以提高软件的生产效率。3.2 设计模式的基本概念及分类Alexander的模式思想同样适用于面向对象设计模式,只是在面向对象的解决方案里,用对象和接口代替了城市和建筑模式中的墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。设计模式是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述。一个设计模式命名、抽象和确定了一个通用设计结构的主要方面,这些设计结构能被用来构造可复用的面向对象设计。设计模式确定了所包含的类和实例、它们的角色、协作方式以及职责分配。可以根据两条准则对设计模式进行分类,即目的准则和范围准则。目的准则是指设计模式是用来完成什么工作的。范围准则是指对应设计模式主要是用于类还是用于对象。根据目的准则,设计模式可以分为如下几类:(l)创建型设计模式:与类或对象的创建有关;(2)结构型设计模式:处理类或对象的组合;(3)行为型设计模式:对类或对象怎样交互和怎样分配职责进行描述。根据范围准则,设计模式可以分为:(l)类设计模式:处理类和子类之间的关系,这些关系通过继承建立,是静态的,在编译时刻就被确定下来。(2)对象设计模式:处理对象间的关系,这些关系在运行时刻是可以变化的,更具动态性。3.3 设计模式的作用设计模式的思想是描述一个不断重复出现的问题以及对该问题的核心解决方案,它是成功的构架、设计及实施方案的反映,也是经验的总结。模式是经过时间和应用领域考验过的某些问题的解决方案,这些问题已经被经验丰富的设计师、开发者和语言专家所解决。(l)设计模式是经过证实的:设计模式反映了开发者的经验、知识和洞察力,开发者曾成功地使用过这些设计模式。模式有助于管理软件的复杂度。每个模式描述一种用来处理所关注问题的己证明是可行的办法。(2)设计模式是可复用的:设计模式提供了一个现成的解决方案,可根据需要适应不同的问题,可帮助设计者更快、更好地完成系统的设计:同时,设计模式帮助系统设计者做出有利于系统复用的选择,避免设计损害了系统的复用性。为了能够应对不断变化的需求,软件系统需要有可伸缩性和可扩展性,以适应这种需求变化。(3)设计模式是有表现力的:设计模式提供了一个公共的解决方案的词汇表,可用来简洁地表达解决方案,也会使新的系统开发者更加容易理解其设计思路。模式为设计原则提供一种公共的词汇和理解。(4)在面向对象的编程中,软件编程人员更加注重以往代码的复用性和可维护性。通过提供一个类和对象作用关系以及它们之间的潜在联系的说明规范,设计模式甚至能够提高已有系统的文档管理和系统维护的有效性。设计模式在软件复用中的应用研究(5)模式是一种为软件体系结构建立文档的手段。设计一个软件系统时,根据这些模式可以描述出一个构想。这就避免了在扩展和修改初始体系结构时,或者在修改系统代码时,违背这个最初的构想。(6)模式帮助开发人员站在最高层次的视角看待问题域。对于问题分析、设计和面向对象,模式的应用可使开发者不必过早地去处理程序细节,而是从系统的设计框架开始逐步细化。(7)模式的介绍中包括了问题域和解决域的双重界定,即既讲解了“为什么”,又讲解了“怎么办”。设计模式的适用性、效果和实现部分都会帮助指导使用者做出各种必要的设计决定。4. 设计模式在软件复用中的应用4.1 CBD的不足CBD以构件为单位独立地进行设计和实现,提高了应用系统各部分开发的独立性,是长期以来主流的复用技术。但是,实际操作起来,在CBD的整个过程及构件的开发、寻找和使用阶段必须要解决一些技术上面的问题,实际上,基于构件的开发并未真正实现其最初的“复用和灵活性”的承诺。并非很多的构件可以真正复用。一些因素阻碍了CBD的发展:(l)构件在实际应用中的变化性。一些开发者开发的构件,要做到在被另一些人开发的系统中使用时正好合适,且从内容到对外接口都基本相符,这不是一件容易的事。多数构件在应用时都有其局限性,需要对其修改以适应新系统,这背离了黑盒复用的愿望。而且,构件的这种变化性需要在系统中加以实现才能真正实现软件复用。(2)构件的发展还处于不完善阶段,多数构件的应用还是仅仅局限于代码复用或模块复用,而越来越多的大规模软件开发项目要求更高层次的复用。(3)构件要达到一定的数量,才能支持有效的复用,而大量构件的获得需要有很高的投入和长期的积累。(4)目前的构件规范说明还不完整,没有形成统一规范标准,这给使用者理解和抽取构件以及对构件库的管理带来了一定的难度。(5)CBD的研究需要一些新的理论、技术和环境的支持,而目前这方面的研究成果和实践经验尚不够充分。虽然在CBD的实际应用过程中,存在一些不太现实或者目前看来不够成熟的地方,不过,它仍然是目前比较流行的软件复用技术,是一种构建灵活系统的开发方法。因此,在实际的应用中,可以借鉴CBD中优秀的地方,对其不足之处加以改进,从而使其更好地实现复用的目的。4.2 基于设计模式的CBD模型基于设计模式对软件复用的支持,为了发挥CBD的长处而摒弃CBD的不足,本文提出了一种改进的CBD模型,在该模型中引用了设计模式,其过程模型如图4.1所示。图 4.1 应用设计模式的CBD过程模型在该过程模型中,应用设计模式进行构件开发主要依据了以下思想:(l)根据应用领域的特定应用需求(功能分析),划分功能模块;(2)进一步识别/提取出构件;(3)根据系统体系结构,对照经典设计模式,进行实际的构件开发(实现各个功能模块);(4)根据实际的业务模型和可参照的设计模式,对构件的可变性进行实现,组合、部署开发更合适的构件,最终实现整个系统。在基于设计模式的复用中,设计模式系统的地位是至关重要的,它决定了应用系统的设计是否合理、实现是否灵活、效果是否理想。在采用设计模式的时候,实际上是把可能变化的部分进行了封装,把其中变化的和不变的部分进行解藕,利用接口或者抽象类并参照某种设计模式进行设计。软件复用规则的基本思想实际上也是尽量减少不同类之间的耦合度,以便封装变化。因此,获得软件复用的关键是对系统变化具有可预见性。这要求在应用研究中尽可能地去预见软件的变化,并且把这种可能发生的变化封装起来,这实际上是许多模式的主题,也是进行软件复用的主题。因此,设计模式体现的总体设计的思想应当贯穿整个过程的始终,也就是说要依据设计模式设计并实现相应的构件。4.3 设计模式的选取4.3.1 设计模式的选取方法Alexander提出了模式选择的方法虽然不是针对软件设计的,但在软件领域仍然是可以借鉴的。GoF总结了23种设计面向对象软件的设计模式,这些模式可以帮助设计者更快更好地完成面向对象的软件设计。在实际应用中,可根据实际情况进行正确的模式选择。随着对设计模式研究的广泛开展和不断深入,越来越多的模式被发现,但它们都是基于对传统设计模式的改进的。选择模式应对所有设计模式有较深的理解和掌握,并且深入研究方法间的联系。参照己有的方法和经验总结,本文提出以下的选择方法:选择方法讨论找出模式找到问题中存在的模式,用这些模式来思考问题。请记住,模式的用途是定义实体之间的关系。从背景开始找出为其它模式创造了背景的模式。这些模式应该作为设计的起点。然后从背景转向内部观察其余的模式和任何其它可能已经发现的模式,从中选出为其余模式定义背景的模式。重复这一过程。改进设计改进过程中始终考虑模式所蕴含的背景.实现实现应该融入模式所要求的细节。4.3.2 设计模式的选取步骤根据以上的选择设计模式的基本思路,本文提出如下的选取步骤:(l)将实际待解决的问题进行抽象分析,并划分适当的模式类型。(2)根据所划分的模式类型,并参照经典设计模式的特点,选择合适的设计模式。(3)进行模式匹配,将待解决的问题与所选择的设计模式进行比较,找出它们的共性和差异。在所要解决的问题域内考虑元素对应于设计模式中的类以及模式中的各种角色,此时若发现该模式不合适则重新选择。(4)在所选模式原始结构的基础上,参照具体的业务模型,对模式进行变体,即根据实际情况,对模式的结构及对应元素进行修改和扩展,或者将所选的多个模式进行组合,以形成符合具体问题的改进模式。(5)将改进后的模式应用到软件的开发中,设计并优化软件的体系结构。(6)对应用设计模式优化的软件体系结构及软件设计质量进行评审,总结优化后系统的性能。如果对评审结果不满意,则返回步骤3重新进行模式匹配。(7)将优化后的设计模式和体系结构应用到软件复用中,使系统具有更好的复
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版配电房土建施工与配套设备采购一体化合同
- 2025年度政府采购协议供货及绿色采购认证合同
- 2025版新能源土地租赁合同补充协议书
- 2025版苹果产地直供与零售收购合同范本
- 2025版艺术画廊租赁管理协议
- 2025版室内门个性化设计、安装与售后服务合同
- 贵州省紫云苗族布依族自治县2025年上半年事业单位公开遴选试题含答案分析
- 2025年度环保监测系统软件升级改造变更协议
- 2025年企业员工职业规划培训承包合同
- 2025版全新农业行业劳务派遣合同试用期条款
- GJB9001C内审员培训讲学课件
- 五牌一图(完整版)
- 幼儿园绘本故事:《十二生肖》 课件
- DDI定向井难度系数
- 踏虎凿花的探究 详细版课件
- 激光跟踪仪使用手册
- 新媒体运营知识考核试题与答案
- 金属材料的主要性能ppt课件(完整版)
- 湖北化工集团会计核算手册
- 丽声北极星自然拼读绘本第二级 Fat Cat 课件
- 临汾热电公司机械伤害事故案例分析
评论
0/150
提交评论