软件体系结构与软件架构解析

软件体系结构与软件架构的中文翻译都是英文 Software Architecture 。两者都使用一样的定义,如 IEEE 的“一个系统的基础组织,包含各个构件、构件互相之间与环境的关系,还有指导其设计和演化的原则。” [IEEE-2000]
为了找到两者的区别,得先从应用的环境入手。我们利用网站搜索引擎对这个领域的常用关键词进行了检索,搜索区域分为开发者网站、所有网站、学术网站,结果如下(检索日期 2007-04-08 ):
关键词
IBM 开发者
微软
Google
百度
中国知网
软件体系结构
177
9,041
79,500
123,000
368
软件架构
233
10,478
236,000
462,000
56
软件体系架构
15
998
13,300
8,530
5
架构师
2,027
7,656
175,000
121,000
18
架构设计师
287
3,607
6,990
79,600
3
http://www-128.ibm.com/developerworks/cn
http://www.miscrosoft.com/china
google.com 采用精确匹配。“架构师”改为“软件架构师”,“架构设计师”改为“软件架构设计师”减少领域差异
baidu.com 采用精确匹配。“架构师”改为“软件架构师”,“架构设计师”改为“软件架构设计师”减少领域差异
http://www.cnki.net/index.htm 采用精确匹配。中国期刊全文数据库( 2000-2007
结果表明,在软件开发者和软件应用者来说,倾向于使用“软件架构”,在一定程度上接受“软件体系结构”。大家对软件架构的设计人员,“架构师”得到广泛的认同。对于学术界,普遍使用“软件体系结构”,对架构师几乎没有关注。 Software Architecture 是一个实践性非常强的领域,统计表明理论和实践的鸿沟还是存在的。
其次,我们从词源探讨“体系”“结构”“架构”的解释 [ 字典 -2001]
  • 体系:若干事物互相联系而构成的一个整体。 思想~ | 工业~
  •   结构:①建筑物承受重量和外力的部分及其制造。按材料分有钢结构、木结构、砖石结构、框架结构、砖混结构等。按形式分有悬索结构、拱结构等。②构成整体的各个部分及其结合方式。 经济~│文章~。③文艺作品的内部构造。即作品的各部分(包括内容和形式)之间有机的组织联系。
  •   架构:①建造;构筑。②框架;支架。③比喻事物的组织、结构、格局。 市场~│故事~庞大
通过以上分析,我们不难看出学术界为什么用“软件体系结构”。首先,体系结构的中文定义完全符合 IEEE 等的定义。强调整体与部分,部分与部分的关系;研究系统构成的方法学;提倡多角度研究系统。其次,从学科地位讲,作为一门独立软件子学科,和硬件学科(计算机组织与体系结构)直接对应。
从工程实践需要看,软件架构更能体现系统构成与相关技术。 RUP 过程或软件生产线关注的软件架构并不注重原理及表示,而是由结构和技术相结合的形成框架。
软件架构在中文中很容易与软件框架( Software Framework )混淆,对于一个应用的软件框架通常称为应用程序框架( Application Framework )。框架是为了构建完整的应用而必须详细阐述的一种程序结构 [Johnson-88] 。框架在 RUP 和软件产品线开发过程中是一个非常重要的过程。 RUP 中框架是细化阶段的一个制品,软件产品生产线中是一组应用共享的程序框架。
目前,没有文献表明软件体系结构与软件架构的差别。如果你强调方法论,应使用软件体系结构。强调软件开发实践,应使用软件架构。
 
[IEEE-2000] IEEE 1471-2000, IEEE Recommended Practice for Architectural Descriptions of Software Intensive Systems
[ 字典 -2001] 新华词典 ,2001 年修订版 . 商务印书社 2005 北京
[Johnson-88] Ralph E.Johnson & Brian Foote. Designing reusable classes. Journal of Object-Oriented Programming 1,3(June/July 1988),22-35
 

你可能感兴趣的:(软件体系结构)