管理信息系统,懂的人进

l什么是构件技术?特点是什么?构件技术主要流派有哪些?
l什么是框架?主要特点是什么?已有的框架系统有哪些?

  构件技术
  构件技术是指通过组装一系列可复用的软件构件来构造软件系统的软件技术.通过运用构件技术,开发人员可以有效的进行软件复用,减少重复开发,缩短软件的开发时间,降低软件的开发成本。
  [编辑本段]构件技术-历史渊源
  1968年NATO软件工程会议,Mcllroy在提交会议的论文《大量生产的软件构件》中,提出了“软件组装生产线”的思想。从那以后,采用构件技术实现软件复用,采用“搭积木”的方式生产软件,成为软件开发人员长期的梦想。软件复用是指重复使用“为了复用目的而设计的软件”的过程。就软件开发而言,软件复用包括:早期的函数复用、面向对象言语中的类的复用,以及互联网时代的完整软件体系的构件复用。
  有效的软件复用是可以提高软件开发的效率和质量。建立在构件复用基础上的软件复用将会带来极大的价值,《Software Reuse》指出很多公司通过复用取得的成就使们坚信,管理层可以期待获得如下优势。
  1)投放市场时间:减少为原来的1/2到1/5;
  2)缺陷密度:降低为原来的1/5到1/10;
  3)维护成本:降低为原来的1/5到1/10;
  4)整体软件开发成本:降低大约15%,长期项目可降低高达75%。
  因此构件技术一直被视为解决软件危机现实可行的途径。在过去几十年尽管软件开发的主流思想几经沿革,软件业一直没有放弃构件技术的尝试。
  60年代末到80年代初,结构化的软件开发思想占主导地位,当时的复用是函数复用和模块复用。函数通过参数来适应不同应用需求的变化,package模块也是通过接口规范说明进行连接和组装实现复用。但是,由于结构化的存在极大隐患,函数层面的复用能力有限,其结果是系统结构混乱、效率低,软件成份复用性差。函数复用和模块复用没有解决软件工程的危机。
  80年代起,面向对象的软件开发思想迅速发展起来,通过类的封装、继承和应用,面向对象的软件开发成功的实现代码级的复用。类和封装性,实现数据抽象和信息隐蔽,继承性,提高了代码复用性。面向对象技术被公认为当前的主流的技术。但是,面向对象的复用脱离不了代码级复用的本质,由于复用的颗粒较低,软件开发中的复用的潜力远远没有发挥出来。类复用也没有解决软件工程的危机。
  [编辑本段]构件的技术-互联网时代面向构件的技术
  互联网应用时代的到来,不仅仅增加了应用需求和软件的复杂性。构件技术在互联网时代突飞猛进,已经为实现软件复用的理想,解决软件危机带来了曙光!
  面向构件的技术实现更高的层次的抽象
  面向构件技术对一组类的组合进行封装,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。这样,在不同层次上,构件均可以将底层的多个逻辑组合成高层次上的粒度更大的新构件,甚至直接封装到一个系统,使模块的重用从代码级、对象级、架构级到系统级都可能实现,从而使软件像硬件一样,能任人装配定制而成的梦想得以实现。
  构件技术标准走向成熟
  目前主流的软件构件技术标准有:微软提出的COM/COM+、SUN公司提出的JavaBean/EJB、OMG提出的Corba。它们为应用软件的开发提供了可移植性、异构性的实现环境和健壮平台,结束了面向对象中的开发语言混乱的局面,解决软件复用在通信、互操作等环境异构的瓶颈问题。
  [编辑本段]构件的技术-我国软件业对构件技术的研究
  北京大学软件工程研究所
  北京大学软件工程研究所是一个专注于软件工程及其相关领域的研究和实践的学术机构,其前身是建立于1983年的软件工程教研室,1999年正式挂牌成为北京大学的一个专业研究所。
  近年来,研究所在所长杨芙清院士的领导下,对软件复用与软件构件技术进行了深入的研究。成果代表为青鸟工程是,历经“七五”、“八五”“九五”。青鸟工程在软件复用和构件技术领域成绩斐然。
  中国科学院软件研究所
  中科院软件所软件工程技术研究中心,在首席研究员冯玉琳博士带领下,对构件技术深入研究,硕果累累。其中作为知识创新工程的成果的信息化基础软件核心平台是其代表。
  上海普元
  普元是国内最早推进面向构件技术的厂商之一,也是目前国内唯一一家提供真正意义上的面向构件的互联网应用基础平台的专业化厂商。普元把崭新的互联网相关技术与先进的构件复用技术以及可视化开发技术完美地结合起来,创造了一套具有国际领先水平的面向构件的互联网的应用基础平台----EOS。
  互联网实验室
  互联网实验室是我国著名的IT研究机构,长期从事构件技术及软件产业的研究,并2004年1月16日发布了《面向构件的互联网应用基础平台研究报告》,是目前国内较为详尽的关于构件技术研究的专业报告。

  框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题。这个广泛的定义使用的十分流行,尤其在软件概念。框架也能用于机械结构。

  [编辑本段]软件工程中的框架
  1. 什么是框架?
  框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。
  可以说,一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法,它为构件复用提供了上下文(Context)关系。因此构件库的大规模重用也需要框架。
  构件领域框架方法在很大程度上借鉴了硬件技术发展的成就,它是构件技术、软件体系结构研究和应用软件开发三者发展结合的产物。在很多情况下,框架通常以构件库的形式出现,但构件库只是框架的一个重要部分。框架的关键还在于框架内对象间的交互模式和控制流模式。
  框架比构件可定制性强。在某种程度上,将构件和框架看成两个不同但彼此协作的技术或许更好。框架为构件提供重用的环境,为构件处理错误、交换数据及激活操作提供了标准的方法。
  应用框架的概念也很简单。它并不是包含构件应用程序的小片程序,而是实现了某应用领域通用完备功能(除去特殊应用的部分)的底层服务。使用这种框架的编程人员可以在一个通用功能已经实现的基础上开始具体的系统开发。框架提供了所有应用期望的默认行为的类集合。具体的应用通过重写子类(该子类属于框架的默认行为)或组装对象来支持应用专用的行为。
  应用框架强调的是软件的设计重用性和系统的可扩充性,以缩短大型应用软件系统的开发周期,提高开发质量。与传统的基于类库的面向对象重用技术比较,应用框架更注重于面向专业领域的软件重用。应用框架具有领域相关性,构件根据框架进行复合而生成可运行的系统。框架的粒度越大,其中包含的领域知识就更加完整。
  2. 框架和设计模式
  框架、设计模式这两个概念总容易被混淆,其实它们之间还是有区别的。构件通常是代码重用,而设计模式是设计重用,框架则介于两者之间,部分代码重用,部分设计重用,有时分析也可重用。在软件生产中有三种级别的重用:内部重用,即在同一应用中能公共使用的抽象块;代码重用,即将通用模块组合成库或工具集,以便在多个应用和领域都能使用;应用框架的重用,即为专用领域提供通用的或现成的基础结构,以获得最高级别的重用性。
  框架与设计模式虽然相似,但却有着根本的不同。设计模式是对在某种环境中反复出现的问题以及解决该问题的方案的描述,它比框架更抽象;框架可以用代码表示,也能直接执行或复用,而对模式而言只有实例才能用代码表示;设计模式是比框架更小的元素,一个框架中往往含有一个或多个设计模式,框架总是针对某一特定应用领域,但同一模式却可适用于各种应用。可以说,框架是软件,而设计模式是软件的知识。
  为什么要进行框架开发?
  框架的最大好处就是重用。面向对象系统获得的最大的复用方式就是框架,一个大的应用系统往往可能由多层互相协作的框架组成。
  由于框架能重用代码,因此从一已有构件库中建立应用变得非常容易,因为构件都采用框架统一定义的接口,从而使构件间的通信简单。
  框架能重用设计。它提供可重用的抽象算法及高层设计,并能将大系统分解成更小的构件,而且能描述构件间的内部接口。这些标准接口使在已有的构件基础上通过组装建立各种各样的系统成为可能。只要符合接口定义,新的构件就能插入框架中,构件设计者就能重用构架的设计。
  框架还能重用分析。所有的人员若按照框架的思想来分析事务,那么就能将它划分为同样的构件,采用相似的解决方法,从而使采用同一框架的分析人员之间能进行沟通。
  采用框架技术进行软件开发的主要特点包括:
  领域内的软件结构一致性好;
  建立更加开放的系统;
  重用代码大大增加,软件生产效率和质量也得到了提高;
  软件设计人员要专注于对领域的了解,使需求分析更充分;
  存储了经验,可以让那些经验丰富的人员去设计框架和领域构件,而不必限于低层编程;
  允许采用快速原型技术;
  有利于在一个项目内多人协同工作;
  大粒度的重用使得平均开发费用降低,开发速度加快,开发人员减少,维护费用降低,而参数化框架使得适应性、灵活性增强。
  与框架相关的概念
  1. 白盒与黑盒框架

  框架可分为白盒(White-Box)与黑盒(Black-Box)两种框架。
  基于继承的框架被称为白盒框架。所谓白盒即具备可视性,被继承的父类的内部实现细节对子类而言都是可知的。利用白盒框架的应用开发者通过衍生子类或重写父类的成员方法来开发系统。子类的实现很大程度上依赖于父类的实现,这种依赖性限制了重用的灵活性和完全性。但解决这种局限性的方法可以是只继承抽象父类,因为抽象类基本上不提供具体的实现。白盒框架是一个程序骨架,而用户衍生出的子类是这个骨架上的附属品。
  基于对象构件组装的框架就是黑盒框架。应用开发者通过整理、组装对象来获得系统的实现。用户只须了解构件的外部接口,无须了解内部的具体实现。另外,组装比继承更为灵活,它能动态地改变,继承只是一个静态编译时的概念。
  在理想情况下,任何所需的功能都可通过组装已有的构件得到,事实上可获得的构件远远不能满足需求,有时通过继承获得新的构件比利用已有构件组装新构件更容易,因此白盒和黑盒将同时应用于系统的开发中。不过白盒框架趋向于向黑盒框架发展,黑盒框架也是系统开发希望达到的理想目标。
  2. 热点、食谱以及好莱坞原则

  成功的框架开发需要确定领域专用的''热点'' (Hot spot)。应用开发者在框架的基础上进行开发,只须扩展框架的某些部分,''热点''就是在应用领域的一种扩展槽,开发者根据自己的需要填充这些扩展槽。''热点''使框架具有灵活性,如在具体的实现中,扩展槽可以被看成是一些抽象类,开发者通过重写抽象方法获得具体实现。
  ''食谱'' (Cookbook)就是描述如何使用框架方法的文档。在''食谱''中包含了许多''烹饪''方法,这些''烹饪''方法相当于一些具体的操作步骤,描述了为解决某一专门问题如何使用框架的详细方法。框架的内部设计和实现细节通常不出现在''食谱''中。
  框架的一个重要特征就是用户定义的方法经常被框架自身调用,而不是从用户的应用代码中调用。这种机制常称为''好莱坞原则''(Hollywood Principle)或''别调用我们,我们会调用您''。
  [编辑本段]网页设计中的框架
  框架是网页中经常使用的页面设计方式,框架的作用就是把网页在一个浏览器窗口下分割成几个不同的区域,实现在一个浏览器窗口中显示多个HTML页面。使用框架可以非常方便的完成导航工作,让网站的结构更加清晰,而且各个框架之间决不存在干扰问题。利用框架最大的特点就是使网站的风格一致。通常把一个网站中页面相同的部分单独制作成一个页面,作为框架结构的一个子框架的内容给整个网站公用。
  一个框架结构有两部分网页文件构成:
  框架Frame:框架是浏览器窗口中的一个区域,它可以显示与浏览器窗口的其余部分中所显示内容无关的网页文件。
  框架集Frameset:框架集也是一个网页文件,它将一个窗口通过行和列的方式分割成多个框架,框架的多少根据具体有多少网页来决定,每个框架中要显示的就是不同的网页文件。
温馨提示:答案为网友推荐,仅供参考
相似回答