12_软件复用与基于构件的软件开发.ppt

第12章 软件复用与 基于构件的软件开发;12.1软件复用简介 12.2可复用软件构件与领域工程 12.3基于构件的软件开发 ;12.1 软件复用简介;软件复用定义;可复用的软件制品;可复用的软件制品;软件复用的粒度;软件复用的粒度;软件复用的粒度;软件复用的粒度;软件复用的粒度;代码的复用;  软件生产过程主要是正向过程,即软件产品从抽象级别较高的形态向抽象级别较低的形态演化,所以较高级别的复用容易带动较低级别的复用。 复用级别越高,可得到的回报也越大,因此分析件和设计件的复用备受重视。 ;软件复用的形式;软件复用的形式;软件复用的形式;软件复用目的、意义与复用经济学;软件复用对质量的影响;软件复用对生产率的影响;软件复用对成本的影响;软件复用对成本的影响; (1)提高软件生产率,降低软件生产代价(长远 角度);  (2)提高软件质量; (3)互操作性好; (4)推动标准化; (5)支持原型开发。;;软件复用有三个基本问题:一是必须有可以复用的对象,二是所复用的对象必须是有用的,三是复用者需要知道如何去使用被复用的对象。 与以上几个问题相联系,软件复用的广泛实现涉及到前述技术和非技术两方面的一些关键因素。 需要做大量的工作克服这些困难才能实现真正成功的软件复用。 ;软件复用的过程;下图所示为实现软件复用的一种过程组织方案 ;12.2 可复用软件构件与领域工程 ;领域分析;可复用软件构件(Reusable Component) 是指融入软件复用思想,按一定方法产生,并能够被直接或稍作修改应用于多个系统开发过程的软件工程中各有关要素制品,包括软件工程过程要素和过程中活动的成果要素等。 ;  一个软件制品只有在多个系统中被使用才可称为“可复用构件”,必须具有的基本特征:  (1)独立性  解决一个相对独立的问题,或大问题中某个相对独立的部分;  (2)完整性  提供较完整的解决,不要遗留很多缺口,让复用者做大量补充;  (3)可标识性  构件所解决的问题应该是可标识的,可命名,有简要介绍,便于理解和使用。  (4) 通用性 构件解决的问题,应在同类应用中具有一般性;  (5)适应性 应用场合有某些变化时,构件仍是可用的,使构件的某些数据参数化和数据类型参数化;  (6)可靠性 要求构件对预计将要使用它的系统时可靠的;  (7)标准化 可复用构件的标准化对于软件复用是至关重要的。;12.2.2 领域工程;领域分析;领域分析过程的关键输入和输出:;由于领域分析是对一类应用系统的共同应用领域进行系统化分析,以发现该领域的共同知识、需求及其应用系统的共同特征。因此领域分析是一项比系统分析更难的工作。 领域分析方法可采用结构化方法和面向对象方法,而后者将成为主流。 ;领域设计阶段的目标是获得所研究的领域体系结构(DSSA)和领域可复用构件的设计模型。 领域体系结构的获取可以提供大粒度的可复用构件。例如,以通用的体系结构作为构架,再向其中加入一组可复用构件和新设计的构件,来建立领域中的新系统。没有较为通用的软件构架,就不能摆脱复用孤立的、相对小的可复用构件这种局面,并且取得的复用效益也是有限的。而其体系结构对于相同领域中的同类系统具有较大的复用价值。 ;特定领域软件体系结构(DSSA)是适用于某个特定领域中多个应用系统需求的通用软件体系结构,它通常提供一个特定领域的基准体系结构,通过参数化方式定义虚拟机接口、复制机制和继承机制来支持体系结构的可变性和可扩展性。;领域实现;可复用构件的开发   领域分析的结果为构件的选取和开发提供了指导性的原则。除了有领域分析作为其基础,构件开发还需要遵循一定的设计概念和原则。   构件应该具有相当的一般性和抽象性,能够用于满足一类相似的需求,一个过于特殊的构件是很难被重复使用的。即使一个通用性很高的构件也不可能完全适应用户的需求和运行环境,所以在一个构件被不同的应用复用时,对它的某些部分进行修改是不可避免的。所以构件开发时,需要为用户对构件的调整和修改留出余地。例如继承、参数化、模板和宏都是典型的提高构件灵活性和可调整性的机制。 ;领域应用需求; 构件库用于对可复用构件进行存储和管理。它是支持软件复用的必要设施。构件库必须有大量的可复用构件。 构件库系统应提供的主要功能:构件的存储、管理、检索以及库的浏览与维护等。 关键是支持使用者高效而准确地发现所需的可复用构件。 相关的主要技术是分类方法和检索方法。;描述可复用构件; REBOOT(Reuse Based on Object-Oriented Technology)模型: REBOOT是一种基于刻面(facet)的模型。通过对领域进行分析,得到一组基本的描述特征,这些特征称为刻面。刻面

文档评论(0)

1亿VIP精品文档

相关文档