信息工程方法_第1页
信息工程方法_第2页
信息工程方法_第3页
信息工程方法_第4页
信息工程方法_第5页
已阅读5页,还剩13页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、信信 息息 工工 程程 方方 法法软件工程应用实践教程软件工程应用实践教程第第11章章 软件复用软件复用n11.1 11.1 软件复用技术的发展和存在的障碍软件复用技术的发展和存在的障碍 n11.2 11.2 几种构件模型的比较几种构件模型的比较 n11.3 11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n11.4 11.4 构件的开发构件的开发 概述概述 n软件复用是指重复使用“为了复用目的而设计的软件”的过程,而可复用软件则是指为了复用目的而设计的软件。软件复用更强调的是复用的目的,它是一种系统化的方法,为了复用而进行设计,为了复用而开发,并且要有效地组织和管理这些复用产品,

2、方便人们的查找和使用。 n软件复用的意义:n软件复用能够提高软件生产率,从而降低开发成本。 n软件复用能够减少系统的维护代价。 n软件复用能够提高系统间的互操作性。 n软件复用能够支持快速原型设计。n软件复用还能够减少培训开销。 n大量使用可复用软件部件,可以提高软件的灵活性和标准化程度。 11.1 软件复用技术的发展和存在的障碍软件复用技术的发展和存在的障碍 n结构化程序设计的时代,软件复用主要体现:n源代码复用 n目标代码级复用 n面向对象程序设计复用方式n类库复用 n软件构件复用 11.1 软件复用技术的发展和存在的障碍软件复用技术的发展和存在的障碍 n可复用的软件制品可复用的软件制品n

3、项目计划 n成本估计 n体系结构 n需求模型和规约 n设计 n源代码 n用户手册和技术文档 n用户界面 n数据 n测试用例 n其他元素:特定的分析建模方法、检查技术、测试用例设计技术、质量保障过程等 11.1 软件复用技术的发展和存在的障碍软件复用技术的发展和存在的障碍 n 软件复用存在的一些障碍软件复用存在的一些障碍n很少有公司或开发机构制定了可复用软件的开发计划。 n虽然越来越多的软件销售商正在销售有助于软件复用的辅助工具和构件,但是大多数软件开发商不使用它们。 n几乎没有相应的培训,帮助软件工程师和管理者理解并应用复用。 n很多软件实践者仍然相信复用相对于其价值来说会带来更多的麻烦。 n

4、很多公司仍然使用对复用活动毫无促进作用的软件开发方法学,而不鼓励使用那些可能对复用活动有促进的方法学。n很少有公司对生产可复用软件构件有激励措施。因为,在开发可复用的软件构件时可能会提高成本。11.2 几种构件模型的比较几种构件模型的比较 n com+/dcom,javabean/enterprise javabean,corba构件模构件模型三足鼎立型三足鼎立 ncorbancorba(common object request broker architecture)即公共对象请求代理体系结构,是国际对象管理组织(omg)在20世纪90年代早期提出的分布式对象规范。 n一个对象请求代理提供

5、了一系列服务,它们使得一个构件可以和其他构件通信,而不管这些对象在系统中的位置。 ncorba构件模型的底层结构为orb(object request broker,对象请求代理)。 n一个corba构件采用接口描述语言(interface description language)进行描述。 ncorba提供了idl到c,c+,java,cobol等语言的映射机制idl编译器。 ncorba同时提供了一系列的公共对象服务规范(common object service specification,coss) ncorba是一种语言中性的构件模型,可以跨越不同的网络、不同的机器和不同的操作系统

6、,实现分布式对象之间的互操作。 11.2 几种构件模型的比较几种构件模型的比较 ncom+/dcom ncom+(component object model)/dcom(distributed component objectmodel)是微软与其他业界厂商合作提出的一种构件/分布式构件对象模型 ndcom起源于动态数据交换(dde)技术。n对象链接与嵌入ole 。n微软引入了构件对象模型com,形成了com对象之间实现互操作的二进制标准。 ncom规定了对象模型和编程要求,使com对象可以与其他对象互操作。这些对象可以用不同的语言实现,其结构也可以不同。ndcom是com在分布式计算方面的

7、发展,它为分布在网络上不同节点的com构件之间提供了互操作的基础结构。n在公共服务方面,微软提出了自己的事务服务器mts(microsoft transaction server)和消息队列服务器msmq(microsoft message queue server)。前者与corba对象事务服务目标类似,后者则是为了保证应用之间进行可靠的消息通信和管理。 11.2 几种构件模型的比较几种构件模型的比较 njavabean njava是一个应用程序开发平台,它按照高性能、可移植、可解释的原则,提供面向对象的编程语言和运行环境。n在java中,软件构件是能够进行可视化操作的可复用软件,它满足一定

8、的特征要求,并可以根据需要进行定制和组装。 njava的软件构件称为javabean,或者简称bean。 n作为一种典型的构件模型,javabean具有属性、方法、事件、自我检查、定制和永久性等6个方面的特征。 11.2 几种构件模型的比较几种构件模型的比较 n软件构架技术软件构架技术 n软件构架(又称软件体系结构)描述的是系统整体设计格局,它为基于构件的软件开发提供了构件组装的基础和上下文。 n一个典型的软件构架是由系统中的构件、接口和约束构成的配置格局。 n软件开发实际上是从问题域向最终解决方案逐步映射和转换的过程,而特定领域软件构架和软件构架风格分别从问题域和软件解决方案两个方向提供了若

9、干经过考验的候选转换路径。 n软件构架风格则根据系统结构的组织模式确定了一组可以用于实例中的构件和接口,以及它们的拓扑结构、组装规则、局部和全局约束,从而定义了一个面向系统结构的构架家族。 n软件构架风格与面向对象的设计模式或框架一样,为设计经验的复用提供了技术支持。 n客户/服务器(client/server)、分层的体系结构、分布式对象计算、管道和过滤器、黑板系统等都是广泛使用的软件构架风格。 11.2 几种构件模型的比较几种构件模型的比较 n比较分析比较分析 corba/orbactivex/dcomejb/rmi集成性集成性 支持跨语言操作aad跨平台操作aca网络通信aba公共服务构

10、件ada可用性可用性 事务处理acb消息服务ebb安全服务aba目录服务acb容错性ccc产品成熟性cbd软件开发商支持度baa可扩展可扩展aba备注:a:最好 b:比较 c:好 d:一般 e:差11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n当复用占据了一个应用开发的主导地位时,构造方法被称为基于构当复用占据了一个应用开发的主导地位时,构造方法被称为基于构件的软件开发。件的软件开发。 n软件复用过程包括两个并发的子过程软件复用过程包括两个并发的子过程领域工程和软件工程。领领域工程和软件工程。领域工程提供了基于构件开发所需要的可复用构件库。软件工程可在域工程提供了基于构件开发所需

11、要的可复用构件库。软件工程可在新系统的开发中选择这些软件构件进行复用。新系统的开发中选择这些软件构件进行复用。 11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n构件的获取构件的获取 n商业采购n利用项目承包商和合作伙伴开发的ndi构件(non developmental item) n在领域工程和再工程的基础上从已有的应用系统中发掘和提炼n自主开发新构件 11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n构件的表示和检索构件的表示和检索 n一方面,拥有大量可复用构件的组织必须以一种易于分类管理而又方便复用者检索的机制来表示和保存软件构件;n另一方面,有效的构件检索机制

12、有助于构件查找和理解,而构件的合理表示和分类正是实现高效、方便检索的基础。 n3c模型:概念(concept)、内容(content)、上下文(context)n概念是关于“构件做什么”的抽象描述,可以通过概念去理解构件的功能。概念包括接口规约和语义描述两个部分。 n内容是概念的具体实现,描述构件如何完成概念所刻画的功能。 n上下文描述构件和外围环境在概念级和内容级的关系,它刻画构件的应用环境,为构件的选用和适应性修改提供指导。 n将3c模型用于实际环境中,必须把概念、内容和上下文描述转换为具体的规则。从构件表示出发可以分为人工智能方法、超文本方法和信息科学方法3类。 其中,使用信息科学方法进

13、行构件分类是实际应用中比较成功的一种方法。 11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n信息科学方法以枚举、刻面、属性-值、关键词和正文检索等技术为核心。n枚举分类n刻面分类n属性-值分类法 11.3 基于可复用构件的软件开发基于可复用构件的软件开发 n构件组装构件组装n基于构件的开发通过构件组装得到最终应用系统,构件组装必须以某个框架或构架为蓝图,实际可以看做是用构件实例将软件构架具体化的过程。 n构件组装技术以构件模型、构件-构架描述和开放系统技术为基础,成功的组装必须以开放构件模型和规范的构架描述(包括对构件连接和交互协议的严格定义)为基础,构件实例必须符合系统中其他部分的要求。 n真正意义上的基于构件的软件开发应该在分析、设计、实现和测试等不同阶段,在函数、对象、模块、框架、服务进程和程序等不同粒度上,从构件构架的开发、描述、浏览、插装、定制等不同方面对构件组装提供全面的支持。 n目前仍然缺乏通用的构件组装平台。11.4 构件的开发构件的开发 n域分析域分析11.4 构件的开发构件的开发 n开发可复用构件的分析和设计开发可复用构件的分析和设计n数据、功能和行为模型可以用于描述特定应用必须完成的任务。首先应该研究分析模型,以确定模型中的哪些部分用现存的可复用软件构件。n当构件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论