软件框架(Software Framework)
面向某领域(包括业务领域,如ERP,和计算领域,如GUI)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供一系列定义良好的可变点以保证灵活性和可扩展性。能够说,软件框架是领域分析结果的软件化,是领域内最终应用系统的模板。
随着软件规模的扩大、应用的普遍和软件复用技术的发展,以子程序或类(Class)为单位的软件复用有许多不足:框架
(1)子程序库日趋其庞大以至于使用人员难以掌握分布式
(2)大多数类粒度很小,且其自身每每不能完成有用的功能。这一问题迫令人们在复用中将一组类(或模块)及其交互做为一个总体来考虑,由此出现了软件框架。 工具
软件框架至少包含如下组成部分:
(1)一系列完成计算的模块,在此称为构件。
(2)构件之间的关系与交互机制。
(3)一系列可变点(也称热点,Hot-spots,或调整点)。
(4)可变点的行为调整机制。
开发人员经过软件框架的行为调整机制,将领域中具体应用所特有的软件模块绑定到该软件框架的可变点,从而获得最终应用系统,这一过程称为软件框架的例化(instantiation)。经过软件框架的使用,开发人员可将主要精力放在应用所特有的模块的开发上,从而大大提升了软件生产率和质量。
软件框架的行为调整机制是指如何针对具体的应用调整该框架的可变部分、如何在可变点加入特定应用模块所采用的方法和规则。行为调整机制可分为四种:
(1)模板参数化。软件框架提供代码自动生成工具,该工具根据用户设置的参数自动生成所需的代码。
(2)继承和多态。经过面向对象中的子类继承和重载,在子类中加入新的功能或改变父类的行为。
(3)动态绑定。在运行时刻动态绑定所需的对象服务,可经过软件模式技术实现。
(4)构件替换。经过替换框架中可插拔的构件来加入业务特定的功能,
不一样于通常的可复用软件制品,软件框架的一个显著特色是逆向控制(Inversion of Control),在复用过程当中,前者需被显式调用,控制是在应用特定的模块中,软件框架则否则,应用开发人员只要将应用特定的模块绑定到框架内,框架则根据本身的交互机制自动调用该模块,控制由框架负责。
软件框架有不少种。按其应用的范围可分为:
(1)系统基础设施框架。用于简化系统级软件的开发,如操做系统、用户界面、语言处理等,典型例子为MacApp, Microsoft’s MFC等。
(2)中间件集成框架。用于组装分布式应用和构件,典型例子为Microsoft’s DCOM,JavaSoft’s RMI,OMG’s CORBA等
(3)企业应用框架。用于各种应用领域,如电信、制造业、金融等。
按其表现形态可分为:
(1)白盒框架。支持白盒复用,大型的类库或子程序库一般均提供白盒框架来协助复用。
(2)黑盒框架。支持黑盒复用。中间件集成框架通常为黑盒框架。spa