《软件工程实践者的思想(PDF格式)》第19章


大的一些举措。通过这些努力,Borland 快速地补全了 
ALM 作为一个工程体系在理论方面的不足。
对于 IBM 来说,RUP 和 UML 是优势,所以 IBM 用 
来削弱 Borland 在开发语言的上优势的最佳手段,就是支 
持开源的 Eclipse ,以及用 UML 的标准化来确立其规范制 
定者的地位。然而你会惊异的发现,Borland 一方面在支 
持 UML 的标准化,另一方面还在支持着 Eclipse 的开发并 
协助其快速成为一个完整的、具有商业品质的开发平台。
这似乎是极其怪异的战略:帮对手磨剑。
如果 Borland 只为一个对手磨剑,那他可能是一个傻 
…85
…………………………………………………………Page 90……………………………………………………………
第 7 章 现实中的软件工程
子。但问题是,Borland 几乎为他所有既已成为的或者终 
将成为对手的人磨剑:Kylix 是 Linux 平台上的产品, 
C++Builder 、C#Builder 、CBX 、Delphi 是 Win32 和 
平台上的产品,JBuilder 则是 SUN 平台上的产品。——一 
切正如 Borland 自己说的那样,他是“(语言、平台和技术) 
中立的软件厂商”。
Borland 走在钢丝绳的中间,对他的考验是平衡的艺 
术和技术:如果他倒下,钢丝绳两端之任一,对他都不及 
援手;然而如果他存在,那么他向哪边迈出的一步,都将 
给对方以最大的压力。
敌人的敌人就是自己的朋友,聪明的战略家总是能看 
到这一点。然而 Borland 却力图使这个敌我都分不清的战 
场呈现出一种古怪的格局:一方面 Microsoft 是 Borland 
的股东之一,另一方面 Borland 在做 SUN 、IBM 以及 Linux 
平台上的软件提供商。
与 Borland 和 IBM 通购并来达到目的的方式并不相 
同,Microsoft 有足够的力量全方位出击,因此你看到的 
体系会这是这个样子的:
Microsoft 的软件工程 (2004)
理论体系 实 现
工具 Language VS、DSL、 Framework
方法 OOA/D/P 需求方法、模型方法、测试方法。。。
过程 MSF MSF Process Model v。3。1
Microsoft 在工具、方法和过程方面都有具体的实现。 
…86
…………………………………………………………Page 91……………………………………………………………
『大道至简』
而 IBM 在方法和过程层面上大都停留在理论阶段, 
Borland 在这些方面虽有丰富的产品实现,却又相对缺乏 
理论基础。
Microsoft 并不仅停留于此。从 Framework 提出 
开始 Microsoft 就试图在开发语言和基础框架上实现大统 
一,希望能达到 UML 在模型语言中的地位。因此出现了 
通用的语言体系:CLR+CTS ,以及其具体的实现:
CLR+IAsm 。 上的代码要求最终被实现成中间代码, 
可以反汇编到 IAsm ,这意味着任何其它公司在开发语言 
层 面 上 的 优 势 丧 失 殆 尽 , 所 以 开 发 者 们 看 到 C# 、 
JScript 和 VB 的同期实现的“壮举”。
而 Mono 的出现,对于 Microsoft 来是绝对的福音。 
Microsoft 把 Framework 中的 C# 、公共语言架构(CLI) 
以及通用类型系统(CTS)等做成 ECMA 标准,最期望看到 
的就是类似 Mono 这样的第三方产品的出现。事实上, 
Mono 做了 Microsoft 从来都想做而不敢做的事。——解决 
了 Microsoft 产品的跨平台问题,进而削弱了 SUN 这样的 
语言的跨平台优势。Microsoft 一方面不想放弃自己的平 
台优势,另一方面又为 SUN 的跨平台优势所制肘。而 
Mono 的出现以及它适度的影响力,正好成为 Microsoft 
平衡这种微妙的、相对优劣形势的棋子。
接下来 Microsoft 开始向模型语言发难。领域专用语 
言(Domain…Specific Language ,DSL )的提出绝非偶然, 
那是在硝烟未尽的战场上重新燃起的战火。
…87
…………………………………………………………Page 92……………………………………………………………
第 7 章 现实中的软件工程
软件业界如今的局面,不是一些人(例如程序员或者 
评论家们) 争争吵吵的结果,而是大公司们相互制衡的结 
果。Borland 与 IBM ,IBM 与 SUN ,以及 SUN 与 Apple 
都在做着相同的事, 又都有各自的算盘。他们一面打压 
对手的优势,一面又借助对手和同盟的力量来削弱自己的 
劣势或者补充实力。
跳出到局外来看,并不是说 Microsoft 是他们的共同 
对手,而只是因为 Microsoft 占在了峰头浪尖,便成了众 
矢之的。所有人面对的并不是 Microsoft 的这个名字,而 
只是这个地位,无论谁成就了这个地位,都将承受相同的 
风险与压力。
当然也包括机会。
大公司们在标准、理论、语言上的争来夺去,未必全 
然出于“软件实现”的考虑。对统一理论、统一工具、统 
一过程的企图,其最终目的是在整个软件工程体系中的全 
面胜出。
算盘上的绝大多数人,只是用于计算胜负的一枚算 
子。
2。 回到工程的关键点
因而,除了软件本质力量的推动之外,商业因素也推 
动着软件工程体系的发展。大公司们的争夺战的最终结 
果,已经开始把软件工程,从原始的“自生演进”状态, 
…88
…………………………………………………………Page 93……………………………………………………………
『大道至简』
逐渐推进到“它激发展”的状态上了。
这种它激发展可能会影响到软件工程发展的速度,然 
而在各个工程层面上的关注点并不会发生变化。在前面的 
模型图中,每一条纵向的细线用于定义一个关注点① 。我 
在另一次培训中为这些关注点加上了标注:
实现 团队 经营
这被我命名为软件工程层状模型(EHM; Engineering
Hiberarchy Model) 。与“牛屎图”所代表的“软件工程体 
系层次”不一样的是,EHM 不描述工程元素间的关系, 
甚至在试图割裂这些元素,以使得工程角色定位以及各自 
的视角更加清晰明确。
① 我的确画出的线而不是点,“关注点”只是一个概念。如果你非 
要去发现一个“点”,那么你可以用几何的目光,关注于弧线与直 
线的切点。然而,这样的结果将是你彻底的忽视了“关注点”的 
本质含义。
…89
…………………………………………………………Page 94……………………………………………………………
第 7 章 现实中的软件工程
从这个模型中可以看到,在“程序”与“方法”层面
小说推荐
返回首页返回目录