软件体系结构的黄金时代 一
这是一篇外国论文的翻译,我不是英语专业的,所以翻译的难免疏漏,还请大家多多指教。文章来自网上搜索,先此声明。
作者是马丽·邵(Mary Shaw),卡耐基·梅隆大学国际软件研究所,和保罗·克莱门(Paul Clements),卡耐基·梅隆大学软件工程研究所。感谢我的同事阿尔伯特·李,他让我有幸看到这篇文章。
从八○年代后期开始,软件体系结构(software architecture)开始成为对大规模的软件系统的基本理解方式。在最初,它仅仅是对一些有价值的系统和机构进行一经验为主的观察,并且作出定性的描述,但是现在它已经成熟了起来,包括了大量的符号、工具和分析方法。尽管软件体系结构的研究领域局限于解释软件开发中的一些实践方法,但是现在它已经可以为复杂的软件设计和开发提供很具体的指导。
软件体系结构已经实现了从基础性的调查研究到对软件系统设计和构建的本质更深入的研究。本文是一篇对软件体系结构的回顾,它在技术成熟度的背景下对软件体系结构这一理论的成长做了探讨,通过比较软件体系结构所取得的标志性进展与软件体系结构每个阶段向读者揭示现在这一领域发展到了什么程度。软件体系结构已经沿着这样的轨迹走到了它的黄金时代。在不远的将来,它就会成为一项真正成功的技术:成为软件系统构建过程中的基本和普遍的部分——被大家自然而然的当作处理软件开发的基础。
技术是怎样成熟的
塞缪尔·瑞得文(Samuel Redwine)和威廉·莱得(William Riddle)通过对一些软件技术的总结,提出了它们出现和发展的规律。他们发现一项技术往往需要十五到二十年的时间才能得到普遍的认可和使用。这期间,可以划分成六个阶段:
1. 基础研究阶段:对最初的想法和概念进行研究,给希望解决的问题提供一个最基本的解决框架,提出研究中的重要问题;
2. 概念的公式化表述:以民间形式传播该技术的想法,建立一个对该技术感兴趣人员的组成的社区,集中讨论一系列类似或者有一致性的想法,解决一些特定情况下的具体问题,并且提炼阶段1中提出的最基本的问题解决框架;
3. 发展和扩张:探索实现该技术最初的应用,进一步明确一些在这方面潜在的新想法并且提出使用该技术的过程;
4. 内部的强化和检测:把上一阶段中提出的过程扩展到其他的领域,用该技术去解决实际的问题,该技术会开始逐步稳定成型,出现一些培训材料,最终在使用的结果中显示出来它的价值;
5. 外部的强化和检测:这一阶段和上阶段很类似,不同的地方就是让更多的人参与了进来,但他们不是该技术圈子内的,有确凿的证据显示出该技术的价值和实用性,通过充实技术的细节来提供一个完整的系统解决方案;
6. 大众化:推出商业品质的产品,技术开始逐步升级、商业化和推向市场,并且用户社区开始扩大。
在技术成熟的同时,它们在传播的机制上也在变化。最初仅仅是同事之间随意的讨论和在市场上的商品的改进。这样进行下去,前两个阶段的最基本的研究成果会出现在学位论文、小规模的专题研讨会和研究会议上。想法逐步成熟的同时,研究的结果就会发表在比较大的会议和定期期刊上。而更大的会议则会设置针对此技术的专题,而最终,越来越多的研究结果会促使这方面专题会议的出现。那些综合的讲述了在该技术方面多种研究成果的书,会把该技术推到第四或者第五个阶段。而大学课程和继续教育课程的设立、技术标准的提出,则标志着这项技术开始走向大众化。
软件体系结构的成熟
软件体系结构和一系列的软件方面研究有交叉和重叠,比如领域驱动设计(domain-specific design)、基于组件的重用(component-based reuse)、软件设计、特定分类的组件(specific classes of component)和程序分析(program analysis)。试图区分它们之间的不同没太大的意义。
一种度量某领域增长的方法是看该领域早期研究结果成为后继研究基础的比率。我们可以通过统计以“软件体系结构(software architecture)”为标题的论文被引用的次数来粗略的估计这个比率。有一个更全面的调查,我们分析了对在CiteSeer数据库(http://citeseer.ist.psu.edu)中此类论文的研究的结果。这些论文全是在1990年或者更晚发表的。从1991年到1996年,此类论文的数量稳步增长,但是在1998年出现了一次大幅度的增长。24种最广泛最多被引用的书和论文是在1991年到2000年之间发表的,它们包括:
·五本书(1995 - 2000);
·四篇关于此领域一些调查和模型的论文(1992 - 1997);
·六篇针对特定领域体系结构的论文(1991 - 1998);
·七篇标准化文档(1992 - 1996),和
·体系结构描述语言和分析方法各一篇论文。
在2001年的一次会议后,出现了比较大的变化。在标准化(formalizations)方面引用的论文增加很的,而在特定领域的体系结构方面的论文引用数量也大大增加了。这些引用是基于已经出版的文献的,所以这很自然的说明软件体系结构在那时候已经经过了前三个阶段。当然这个估计还是不精确的,它仍然可以说明在九十年代中软件体系结构的稳定增长,以及在特定领域技术的探索和普遍规范化技术的探索之间的一个平衡度。在2001年被最多引用的24篇论文中的14篇,到了2005年依然属于24篇最多被引用的论文——这说明,软件体系结构方面奠定基石的著作已经出现了。
在这方面,有些是值得注意的。我们的论文发表时间表并不像瑞得文-莱得(Redwine-Riddle)模型中所认为的是线形的:不同的特征,是以不同的比率在发展,而在各个阶段间的转换也不是突然出现的,研究成果的出版发表日期也滞后于实际的研究成果出现的日期。但是大体的进程是和他们的模型吻合的相当好。各个阶段的时间跨度的统计是从上述成果的日期中得到的,但是六十年代和七十年代的基础工作没被统计在内。
[原文在百度空间已经关闭]
标签集合/Tag clouds
C++
Symbain
轻松汇编
算法
论文学习
资治通鉴
Delphi
编程之美
Poco
MFC
Linux
IFC
知乎
汇编
数据分析
交叉编译
poco
j2me
android
XML
Java
DTD
飞信
零宽断言
诺基亚
联系人
编程
真值表
池西木
正则表达式
多线程
命令行
优化
stream
configure
cmake
VIM
UiAutomator
TDD
Symbian
Sqlite
SourceInsight
Python
MPAndroidChart
Kotlin
Flutter
Dokka
Chatgpt