分类: 架构设计与优化
2015-09-01 14:13:51
原文地址:软件构架、架构和框架的区别(一) 作者:陈贞_Rock
近期由于工作和学习的需求,需要对软件架构以及框架构建方面的知识做一些理论上的研究,并做出总结。这篇文章只是从理论上对软件构架、软件架构、软件框架做出一些概念性的解释并加以区分(这几个概念总是被混淆)。下面就将我的总结奉上,由于本人水平有限,其中难免有些讲的不妥之处,还请大家多多指正。
1. 摘要
2. 本文提纲
3. 软件框架介绍
4. 软件构架与架构介绍
5. 模式与框架的说明
6. 常见的框架
软件框架是面向领域(如ERP、计算领域等)的、可复用的“半成品”软件,它实现了该领域的共性部分,并提供了一些定义良好的可变点以保证灵活性和可扩展性。也就是说软件框架是领域分析结果的软件化,是领域内最终应用的模板。
随着软件规模的扩大、应用广泛和软件复用技术的发展,以子程序和类为单位的软件复用出现了很多的不足之处:
(1)子程序的库越来越庞大以至于其使用人员难以掌握
(2)大多数类的粒度很小,其自身不能完成所有有用的功能
正是因为这些原因,使得人们在复用中将一组类(模块)作为一个整体来考虑,由此出现了软件框架。而软件框架中至少包含以下组成部分:
(1)一系列完成计算的模块,成为构件
(2)构件之间的关系及交互机制
(3)一系列可变点(热点、或者称为调整点)
(4)可变点的行为调整机制
开发人员通过软件框架行为调整机制,将领域中具体应用中所特有的软件模块绑定到该软件框架的可变点上,从而得到了最终的应用系统,这个过程称为软件软件框架的例化,软件框架的存在使得开发人员将主要的精力放在系统所特有的模块的开发上,从而提高软件的生产率和质量。
软件框架的行为调整机制是指如何针对具体的应用调整该框架的可变部分、如何在可变点加入特定应用模块所采用的方法和规则。行为调整机制可分为四种:
(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) 黑盒框架。支持黑盒复用。中间件集成框架一般为黑盒框架。