原创 一图千言的最佳案例:框架vs.架构收藏

新一篇: 软件架构的精髓:协作(Booch语) | 旧一篇: 软件架构为谁而设计

 (节选自《软件架构设计》书稿)

  图2-7    架构和框架的区别

笔者发现,人们对软件架构存在非常多的误解,其中一个最为普遍的误解就是:将架构(Architecture)和框架(Framework)混为一谈。
 
一图胜千言,图2-7切中肯綮地点出了架构和框架的区别。一句话,框架是软件,架构不是软件。
  
框架是一种特殊的软件,它并不能提供完整无缺的解决方案,而是为你构建解决方案提供良好的基础。框架是半成品。典型地,框架是系统或子系统的半成品;框架中的服务可以被最终应用直接调用,而框架中的扩展点是供应用开发人员定制的“可变化点”。
 
软件架构不是软件,而是关于软件如何设计的重要决策。软件架构决策涉及到如何将软件系统分解成不同的部分、各部分之间的静态结构关系和动态交互关系等。经过完整的开发过程之后,这些架构决策将体现在最终开发出的软件系统中;当然,引入软件框架之后,整个开发过程变成了“分两步走”,而架构决策往往会体现在框架之中。或许,人们常把架构和框架混为一谈的原因就在于此吧。

发表于 @ 2006年10月29日 18:14:00|评论(loading...)|编辑

新一篇: 软件架构的精髓:协作(Booch语) | 旧一篇: 软件架构为谁而设计

评论

#温昱 发表于2006-10-30 17:02:00  IP: 222.68.152.*
说明两点:
1. 软件从框架继承不正确,因为“软件是框架”说不通。
2. 书中有一幅更复杂的UML图解决了NameForMain朋友的困惑,图的大概语义是:组成软件的单元可以分为两种,即原子单元和复合单元,软件系统是复合单元的子类,框架也是,而架构是说明复合单元的划分和交互的。明眼的朋友一看便知我借用了Composite模式刻画软件的实质,哈哈。
#NameForMain 发表于2006-10-30 14:08:00  IP: 192.168.168.*
我觉得让“软件”从“框架”继承。
更符合领域概念。
#haitao 发表于2006-11-02 09:52:00  IP: 219.134.185.*
都是对软件设计的一种指导
框架是具体的,直接限制(帮助)了程序的写法--战术
架构是高远的,决定了更大、更高方面的取舍、做法--战略
#liumeng 发表于2006-11-03 11:15:00  IP: 192.168.0.*
两个完全不同的概念,不弄清楚能行吗?否则就要指鹿为马了!
#lizheng 发表于2006-11-03 10:37:00  IP: 218.80.208.*
有必要把概念搞得这么清楚吗?
对理解框架或是架构的思想有作用吗?
或者是为了应付考试呢?
#luzi495 发表于2006-11-03 14:23:00  IP: 61.144.207.*
这里的软件是软件构件?
合成模式中的也就是上面说的原子单位,lz的图中可没有体现啊。
不把这里的软件说明一下,看起来总是怪怪的。
#hoho 发表于2006-11-03 12:18:00  IP: 219.142.169.*
这难道就是传说中研究哲学的人,我仿佛看到了一坨大便一样。
#phommy 发表于2006-11-03 12:39:00  IP: 218.57.140.*
1. 软件从框架继承不正确,因为“软件是框架”说不通。

非要理解的话,还是可以说的通的。让思想使劲往这句话上靠,try
#糖醋鼻子 发表于2006-11-03 19:45:00  IP: 222.222.14.*
说白了,
框架是类
架构是类属类
发表评论  


当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
Csdn Blog version 3.1a
Copyright © 温昱