软件复用和基于可重用组件技术的软件开发(CBSD)

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:nnhdceh986532
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍了软件复用的概念、级别和困难所在。针对软件复用的特性,阐述了如何进行基于组件的系统开发。
  关键词:软件复用;基于组件的系统工程;基于组件的系统开发
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10656-02
  
  1 引言
  
  随着人们对软件需求的不断增加,软件的功能、可操作性、智能化程度也迅速发展,从而使软件变得更加复杂、更加庞大在,开发的难度也越来越大,开发的周期越来越长、参与开发人数越来越多。为了解决这种软件危机,减少重复劳动,降低被开发软件出错的概率,软件利用技术也就应运而生。
  
  2 软件复用
  
  软件复用的思想最早是在1968年NATO的软件过程会议上提出的,在过去的几十年里,软件复用得到了越来越广泛的应用。软件复用是指在两次或多次不同的软件开发过程中重复使用相同或相似元素的过程。软件复用不同于软件移植和共享。软件移植是指对软件进行修改和扩充,使之在保留原有功能、适应原有平台的基础上,可以运行于新的软硬件平台。而复用则指在多个系统中,尤其是在新系统中使用已有的软件成分。共享是在一个系统中多次使用一个相同的软件成分。
  2.1 复用的资源
  2.1.1 二进制代码
  是指已经通过编译和测试的机器语言,不做任何修改,直接用于复用,是理想的利用方式。常见的形式有动态链接库和静态库的复用,这种复用也称为黑盒复用。
  2.1.2 源代码
  基于源代码的复用也称为白盒复用,它可根据用户需求对已有产品进行适应性修改。源代码的复用将受到开发语言和开发工具特性的一些限制。
  2.1.3 系统设计的复用
  系统设计复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计组件,并把这些组件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计组件。
  2.1.4 分析的复用
  系统设计复用有三种途径,第一种途径是从现有系统的设计结果中提取一些可复用的设计组件,并把这些组件应用于新系统的设计;第二种途径是把一个现有系统的全部设计文档在新的软硬件平台上重新实现,也就是把一个设计运用于多个具体的实现;第三种途径是独立于任何具体的应用,有计划地开发一些可复用的设计组件。
  一般情况下抽象级别越高,它的复用受实现环境的影响较少,从而使可复用组件被复用的机会更多,且所需的修改越少。
  2.2 系统复用部分
  以常见的应用系统为例,我们来分析一下典型应用系统的代码量。
  (1)通用组件:在程序设计语言之上提供通用程序设计支持。一般用于界面标准件、数据库的操作等功能。这些组件一般跨领域使用,一般最多占典型应用系统规模的20%左右。
  (2)与具体领域有关的组件:完成软件产品的应用领域专用的功能。如应用领域是数据处理,这类组件可能包括排序软件包、文件管理软件包和杂凑函数等。这类组件一般在应用领域专用的,最多占典型应用系统规模的65%。
  (3)与具体应用系统有关的代码:此类代码是应用系统专用的代码。一般来说,应用系统专用代码不能用于其他应用系统,一般最多占典型应用系统规模的15%。
  通过上面的分析,我们可以看出软件复用有着广阔的发展前景。
  2.3 软件复用的困难
  软件利用存在多方面的困难,无论是技术问题还是非技术问题,都影响着软件复用的广泛运用。下表给出了一些研究人员对软件复用障碍的归纳。
  
  3 组件和CBSE
  
  组件技术是90年代初出现的一种新技术,它是在结构化设计和面向对象技术的基础上发展起来的,是面向对象技术之后的软件开发的标准方法体系,是面向对象的开发技术的延伸。
  3.1 组件
  组件的定义多种多样,例如:组件是經过封装、有定义完备接口的可发布软件包[CBSE 1999]。软件组件是具有接口义务的合成单元,并且明确规定了所有背景的依赖关系。软件组件是由第三方进行合成的主体,可以独立部署[Szyperski和Pfister 1997]。组件是软件实现的一种内聚包[D'Souza和Wills 1998]。从上面的定义可以看出,组件的定义中未给出任何的具体实现技术。组件的性质:组件具有独立性,能够独立的开发分发。具有接口性,所提供的服务被 明确,完备的定义,同时也明确、完备的定义了期望从外部得到服务的接口。具有合成性,能够与其它组件合成,可定制部分属性而不用修改组件本身。下图给出了一种明确定义和其它组件及组件所执行交互的组件高层模型。
  3.2 常见组件模型
  在组件规范化的过程串,许多公司做了很多的努力并取得了一定的成功。下面介绍一下常见的组件模型。
  (1)CORBA:CORBA是由OMG(对象管理集团)开发的工业版本,是用来解决以下的问题:系统独立于操作系统,系统基于网络且功能分布开各机器之间,组件开发独立于语言。
  (2)COM(组件对象模型):COM是由微软公司提出并实践的组件模型。COM是用于“便利系统能够通过独立开发的二进制组件,动态、有效地合成系统的组件重用”[BOX 1998]。COM组件是二进制层次上的组件复用,是基于接口的编程,模块间的耦合度低,易于部署和软件的升级。
  (3)EJB组件:EJB是用于开发安全、可扩展、事务型和多用户组件的一种分布式组件模型。EJB可以部署在分布式多层体系结构环境中的服务器端的软件组件,它允许把应用程序逻辑与系统级服务分开,使系统开发人员集中精力编写具体的业务处理问题,而不必关心系统的编程。每个EJB可由一个或多个Java对象组成,每个EJB是按照相同的规范开发的,Bean之间可以相互调用,实现任务的分解和进行业务处理,具有非常高的扩展性。
  (4) .Net组件
  .NET就是借鉴Java,采用XML,并远远超出Java的新的体系。.NET允许添加类似关键字的描述性声明来批注编程元素的元数据,可以实现被封装的对象类、类树、功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。
  
  4 CBSD(基于组件的系统开发)开发过程
  
  CBSD开发过程是不遵循传统的分析需求并找出组件的软件开发过程,这种过程一般会造成组件失败。因为这种过程没有考虑现有的可复用的组件,并且试图满足分析师新确定的组件要求。如果存在成熟的组件市场,同开发过程应该考虑采办组件,而不是开发组件。
  CBSD完成各种活动的方式严重依赖于组件的性质和类型。当使用不同的组件构造系统时,可能系统的各种特性完全不同。
  下表给出了CBSE与传统软件开发的比较:
  下图给出了基于组件开发中的活动:
  (1)查找:此过程是从文档定义完备的组件库中发掘出具有可能要使用的组件集合;
  (2)选择:从找到的组件集合中进一步选择合适的组件;
  (3)适配:定制所选的特定的组件,以满足用户使用组件新条件的需求的过程;
  (4)创建:如果组件经过适配也不能满足需求时,产品集成人员必须针对这种特定的应用系统开发和创建新组件;
  (5)合成:合成是联编和集成的过程;
  (6)替代:替代过程用于产品的维护。系统随着时间的进化和用户对新功能的需求,需要改正组件中的错误,并增加新的功能。老版本的组件被撤出,换上经过修改的版本;
  (7)更新组件库:当新的组件被创建或老组件被修改,为了保持组件库的正确和大适用范围,可以将新组件或更新的组件加入组件库中。在修改组件库时,要编写或修改相应的文档及不同组件版本的管理。
  
  5 结束语
  
  CBSE虽然在理论基础、体系结构、标准化等方面还有待完善,但我们相信CBSE将大大增加软件复用的程序,使软件开发进入新的时代。
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:随着数据仓库技术的发展和应用,OLAP技术已成为决策支持系统领域研究的热点。文章探讨了基于OLAP的多维分析模型设计,将OLAP技术应用于学生选课数据仓库中,阐述了具体的实现过程,并形成了客户端访问界面。  关键词: 联机分析处理(OLAP);维表;事实表;星型结构;客户端界面  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10625-01    1 引
期刊
摘要:本文根据C语言的教学重点和目的,探讨如何提高C语言课程的教学质量,使学生更好的掌握C语言的基本语法和程序设计算法,培养和提高学生的编程能力。  关键词:C语言;教学方法;多媒体教学  中图分类号:G642文献标识码:A文章编号:1009-3044(2007)04-11160-03    1 引言  C语言是国内外广泛使用的计算机语言,它兼顾了高级语言的易用性、可移植性好等优点,又具有低级语言
期刊
摘要:在介绍了XML的安全特性和其加密规范后,从Diffie-Hellman密钥协商的生成原理出发,运用XML加密规范所提供的对数据对象进行密钥协商的机制,并以经典的D-H密钥协商为例,依据规范所制定的原则,运用JCE所具有的安全特性为实现技术,就如何对密钥协商交换进行了探讨,从而为XML加密规范的实际应用探索了一种方式,并以此说明建立自主加密扩展的重要意义。  关键词:XML;数据加密;密钥协商
期刊
摘要:以Microsoft Visual FoxPro 6.0为关系数据库管理系统,以读者数据输入模块为例,详细分析与探讨了管理信息系统数据输入模块的设计思想与具体实现步骤及方法。  关键词:管理信息系统;数据输入模块;读者数据;VFP程序设计  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)03-10606-04    1 引言    数据输入模块是管理信息系统最关
期刊
摘要:《C语言程序设计》课程,是计算机科学与技术专业本科的一门必修课,也是一门实践性很强的课程,有较高的实验要求。旧有的教学模式很难将的知识传授给学生,传统的教学方法和手段已不能适应发展的需要,我们在C语言程序设计课程的教学中引入改革措施,首先编写教材,并在实验教学环节进行一系列的改革措施,得到了较好的效果。  关键词:《C语言程序设计》;教材建设;教学改革;教学模式  中图分类号:TP312文献
期刊
摘要:学生学籍信息是学校的一项重要数据资源,在教育改革和素质教育促使学校的招生规模不断扩大的背景下,学生的各种信息量成倍增长,传统的手工管理已无法满足学校管理者对学籍管理的需要。因此,本文利用PowerBuilder强大的数据库操作特性和其Window plug技术设计了一个基于web学生学籍管理信息系统,较好的满足了学校管理者对学籍管理的需求,提高了管理的效率。  关键词:Web;学籍;管理信息
期刊
摘要:隨着网络资源的日益丰富,从中发现潜在的、有价值的信息的商业需求一直推动着数据挖掘技术不断向前发展,由于Web数据本身具有半结构化、组织性差的特点,使得Web数据挖掘工作变得十分困难,而XML的出现为Web数据挖掘技术带来了新的契机和巨大的发展。本文介绍了XML技术以及Web数据挖掘,阐述了XML技术在Web数据挖掘中的应用。由于基于XML的Web数据挖掘是一门新兴的技术,如何进一步充分利用W
期刊
摘要:PowerPoint电子讲义(下简称PPT)是如今学校课堂教学中非常常用的媒体形式和教学资源整合工具,许多学科教师的教学从某种程度上已十分依赖这一软件工具,但其对教学内容以页面为单位的呈现方式,却容易使学生在听讲过程中出现“迷航”现象。本文结合自身的教学实践,对PPT制作和使用中的“迷航”问题提出了几种解决策略和实用的建议。  关键词:Power Point电子讲义;迷航;解决策略  中图分
期刊
摘要:基于日志分析的数据还原操作的设计增加了一种关于Oracle分布式数据库的同步方法,在不增加前台应用程序的前提下,通过对数据库进行日志分析,使分数据库与主节点数据库达到同步的效果。本文通过对LogMiner工具的详细介绍,并结合實际对Oracle数据库归档日志文件进行分析和还原DML语句的设计后,最终达到分布式数据库进行同步的效果。  关键词:Oracle;日志分析;LogMiner;数据还原
期刊
摘要:针对某些PACS系统中存在医学图像存储管理效率不高的问题,给出一种基于DICOM标准的医学图像存储管理设计方案。为了更好地实现用户与医学图像库之间的交互访问,采用层次细节的思想,对图像库划分层次,分别存储原始图像、调整比例后的小图标和利用JPEG2000实现保留感兴趣区域压缩其他区域生成的多分辨率图像。方案可以在一定程度上提高系统的存储、传输效率,满足不同要求下对图像的快速访问。  关键词:
期刊