关于通用软件框架

原创 2007年10月01日 14:16:00
术语框架在软件工程中被定义为从相同类型的应用中挖掘出的可复用的体系结构。问题是,相同类型的应用这一限定范围在面对现实世界时往往表现出超出原定预期的多样性。虽然仍然可称作相同类型,但新的应用很容易便在不经意间提出某种超越已有框架能力的需求。一旦出现这种情况,用户通常便踏入了修改扩展旧有框架的泥潭。他们很快发现,即使拥有原框架的源代码,新功能也很难被融洽的添入到框架中。旧有的结构很容易就被修改得面目全非,最终导致整个框架的推倒重来。
 
如果你曾经经历这样的窘境,那么你的第一反应很可能是抱怨框架设计者在通用性上的考虑欠周。然而,既然框架被定义为相同类型应用的归纳,那么它就不可避免地包含有领域相关的细节。一旦你的需求超越了这些细节所定义的结构,这个框架自然有可能在你的压力下出现雪崩。
 
除非,这个框架包含的层面足够广阔,即使在特定的应用层不符合你的要求时,其更低层次的结构仍能使你获得使用上的便利。这样一个理想化的大框架形如下图:
  
 


分层的框架设计
 
 
图形最底端是最为通用的框架层。这个层次不包含任何领域细节,理论上应适合于所有的应用。稍上一层的框架包含有一定的领域相关细节,但这个领域的限定范围足够大,因此该层次仍适用于大部分应用。随着层次向上攀升,领域相关的细节越来越多,相应的层次也就越来越局限于特定的应用范围。最顶层是极其专业化的框架层。也可以认为,最顶层便是某个特定的应用。即使是同一个应用,也存在变化的空间,因此从这个意义上来看,应用和框架并没有明确的界限。
 
遗憾的是,大量的软件框架并非遵循这样的结构完成。通常的情形是,极度专业化的框架的开发者同时也在开发属于通用框架的内容。并且,两者混杂在一起,缺乏明确界定。这样的框架即使由最优秀的程序员来完成,也必然徒劳无功。
 
在确定了软件框架层次观之后,你也许立刻就对最底端的通用框架产生了兴趣。毫无疑问,开发一个理论上能适用于所有应用的软件框架对任何一个编程者来说都具有莫大的吸引力。简单设想一下,这样一个软件框架的开发必定具有极大的挑战性。
 
不过,如果从另一个角度来考虑,通用软件框架的开发未必是件太难的事。因为,既然这个层次不具备任何领域相关的细节,那么它必然极其的简洁。我们所要做的只是抓住它背后潜在的规律,然后一切便如顺水推舟般容易。这就好像是爱因斯坦的那个了不起的公式E=mc2所揭示出的:上帝喜欢简洁。
具体如何开发,请参考BOS。BOS的源码下载地址:http://sourceforge.net/projects/bos-code
 

关于软件架构设计的一些思考--通用架构设计模式

最近在着手设计一个服务发布,治理的框架,参考了几个主流框架的代码,比如阿里的Dubbo,传输层的Netty,容器层的Tomcat等等,有一些体会。 经典的《面向对象分析与设计》一书中阐述了为...
  • ITer_ZC
  • ITer_ZC
  • 2014年09月16日 11:44
  • 2442

通用软件架构设计

应用级架构层面,作为一个应用级的架构必须对整个系统的共性应用处理进行抽象,让有共性、有规律的东西由架构来统一处理,但架构的设计并不仅限于此,还应从架构设计的原则和涉及商业领域出发主动为应用系统提供更高...

比WEB更自然,jupyter用于通用软件开发的创新意义:使任何传统程序秒变WEB

本文关键字:online language,在线语言系统,jupyter,ipython jupyter,在线编译器,在线解释语言,engitor 在《engitor:基于jupyter,一个一体化...

推荐+1置顶+1(分享、讨论、实现) 通用软件注册功能之建立有效的软件保护机制

推荐+1置顶+1(分享、讨论、实现)通用软件注册功能之建立有效的软件保护机制          众所周知,一些共享软件往往提供给使用者的是一个功能不受限制的限时使用版,在试用期内使用者可以无限制的使用...

IIC总线通用软件模拟驱动程序

  • 2009年08月25日 14:49
  • 5KB
  • 下载

基于OpenHPI的通用ATCA系统管理软件开发研究

1. 引言     ATCA(高级电信计算架构)标准是由PICMG制定的,其针对下一代电信产品定义了一个高性能、可扩展、模块化的电信级硬件平台。ATCA致力于为电信级的应用提供更高的可靠性、可管理性...

通用软件自动更新模块

  • 2014年04月20日 05:41
  • 172KB
  • 下载

CFD通用软件综述,大体情况介绍

  • 2010年04月07日 10:17
  • 63KB
  • 下载

软件测试--通用测试用例写作(测试必备的技能 )

我们先要进行软件测试用例的分析和设计,然后写出软件测试的内容,最后按照软件测试写作方法,落实到文档中,写的好的测试用例不仅方便自己和别人查看,而且能帮助设计的时候考虑的更周全,因此测试用例的写作和测试...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于通用软件框架
举报原因:
原因补充:

(最多只允许输入30个字)