按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
…81
…………………………………………………………Page 86……………………………………………………………
第 6 章 从编程到工程
求和基本动因,如同上帝之手在推动这几十年来的软件工
程理论体系的形成。
工具
方法 因 动 本 基
过程
实现对象
软件工程
…82
…………………………………………………………Page 87……………………………………………………………
第7章 现实中的软件工程
“王不如远交而近攻,得寸,则王之寸;得尺,亦王
之尺也。”
——《战国策.秦策》
1。 大公司手中的算盘
从最早仅仅关注于软件开发工具到现在,软件行业中
的巨头们已经在层出不穷的思想中涅槃了一回又一回。
Rational 被 IBM 购并的真实原因在于 IBM 需要构建
一个完整的软件工程体系。有了 Rational 的 IBM 会变成
这个样子:
IBM 的软件工程 (2004)
理论体系 实 现
工具 Language Rational Suite、WebSphere、Eclipse
方法 OOA/D/P IBM软件开发平台(SDP)
过程 RUP RUP2000、RUP2003
IBM 得到 Rational 的最大好处是在软件工程方面,快
速地拥有了一套成熟的理论体系和实作工具。对于 IBM
来说,Rational 有着 UML 语言的非常丰富的实践经验,
还有着 RUP 作为理论框架的创立者和领导者的地位,这
些对 IBM 在确立大型软件工程应用方案提供商的行业形
…83
…………………………………………………………Page 88……………………………………………………………
第 7 章 现实中的软件工程
象,都是极大的支持。
在语言方面,IBM 注意到 JAVA 作为平台中立的语言
特性,以及它在大型应用工程方面的成功表现,作为扼制
Microsoft 的平台优势的唯一途径,IBM 在语言方面选择
支持 JAVA 是明智的。
出于同样的理由,IBM 亲近开源软件界,并很快成为
开源软件领域的头羊地位。这使得 IBM 从没有语言优势
立即变成了“可以忽略语言劣势”。开源界给了 IBM 一种
对抗的背景和实力,而 IBM 只需要做到把握这种力量,
就可以在潮流中稳如磐石。
把握力量总之比创造力量来得经济。
同样,Borland 也从开发工具厂商的位置跳出来,希
望构建类似的软件工程体系。所以现在你会看到这样的一
个 Borland :
Borland 的软件工程 (2004)
理论体系 实 现
工具 Language Togther、StarTeam、Delphi、CBX、JB。。。
方法 OOA/D/P Galileo、PrimeTime
过程 ALM Borland ALM Solution
对于 Borland 来说,在对软件开发语言(C 、Java 、Delphi)
的把握方面是优势,所以 Borland 一直保持在语言上的中
…84
…………………………………………………………Page 89……………………………………………………………
『大道至简』
立,以寻求一种在不同平台上的开发者社群的支持最大
化。Borland 积极的推动 UML 的标准化,一方面可以使
得 Borland 有机会在模型语言标准的制定上有机会制造影
响,另一方面也可以快速地与 IBM/Rational 构成对抗
Mircosoft 的战线。
作 为 工 具 开 发 商 , Borland 快 速 地 拥 有 了 实 现
ALM(Application Lifecycle Management)所需的绝大多数
软件产品。然而 Borland 也很快意识到,( 当前的)ALM 是
一个产品体系,而不是一个理论体系:Borland 没有在
ALM 作为工程理论方面的任何优势。于是 Borland 开始
购并与实现 ALM 体系相关的公司,其中收购过程改进咨
询公司 TeraQuest 并组建流程优化实务部,以及收购
TogetherSoft 为开发工具来强化模型构建能力,都是相当
大的一些举措。通过这些努力,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 占在了峰头浪