background image

真正创造出一个好的系统。
       产品架构是现代应用开发领域最重要的课题。在这个课题里,没有终结答案可寻,惟有
恒久的问题存在。在纷繁的问题中,最重要和最

“真”的问题是产品竞争力问题。除此之外,

软件架构的目的还包括满足既有客户需求和提高开发效率,并且要求产品架构能更好地支
持商业流程,有利于企业业务集成。

首先,架构是技术。按照摩尔定律的推断,软件业的技术也同样在日新月异地发生着变化,
我们已经见证了开发工具越来越短的生命周期。从

VB 到 ASP.Net,从 C 到 Java,无论采用

什么新的语言,都体现了不同时期的架构要求。架构已经跨越了简单的过程模型,对象-时
间模型,而今更多的是谈论

MDA,模型的快速建立,使得软件能够快速适应用户变化成为

了可能。而采用先进的技术,使得软件能够更加深度地满足客户需求。技术本身的发展是无
止境的,如何使得软件能够适配新技术,成为一种更为重要的技术。采用各种模式的设计、
逻辑分层、降低技术耦合使得技术的融合成为可能,也成为一项高难度的技术。
       其次,架构是艺术。产品架构师需要捕捉技术和业务这个完整拼图里的某一块或某个脉
络作为设计的线索。架构师永远不是先知,而是

“存在的探索者”,产品架构的结果要在产品

开发周期完毕时才能被印证。产品架构既要反映对技术的需求,使得架构满足对技术的适配,
对发布模式能够提供多样化支持,能够满足性能的要求,还能够满足对业务管理的需要,
要适应目标应用的业务特性。这样的架构,才是为应用服务的软件架构,而不仅仅是一个简
单的可重用的技术工具。更重要的是它具有软件的管理基因,正如平台能够得到大量客户认
可,其中最主要的就是它为客户提供了技术平台、管理工具、基础业务,并使得它们有机地
高效地结合在一起。如同流淌的艺术作品一样,充满了生机和互动。
       同时,架构是质量。好的架构可以使得软件产品成为一棵常青树。在和国内外软件产品
对比分析的时候,经常有这样的感悟,其实好多国外的软件产品,采用的技术并不是最先
进的,但是它具有非常优秀的质量,产品稳定可靠,同时还具有良好的技术适配能力,从
而使得产品适应技术变化的能力非常强。这样,投资人对软件的投资价值能够得到最充分的
体现,这是国内职业经理人非常值得关注和学习的。

陈小群

(互信互通信息技术有限公司研发主管):

软件架构对软件系统来说就象建筑结构对建筑物、人骨架对人一样,是其它成分的基础,是
满足功能和性能需求的关键,因此,软件架构师对软件研发项目的成败具有决定性的作用。
软件架构师并不像他的名字所提示的那样仅仅负责架构的设计,通常他的工作还包括,作
为技术专家负责协助开发部门、技术支持部门、产品规划部门等各方解决技术问题。因此,他
的管理和沟通能力是同样重要的。其它主要的知识和技能还包括分析和解决问题的能力、将
需求转化为设计的能力、对系统未来发展的预见能力等。
       一个优秀的程序员会是一个优秀的软件架构师吗?不一定。对于一个复杂的软件系统来
说,架构设计通常都不是一个人就可以完成的任务,需要一组具有不同知识的工程师协作
完成,在这个过程中,架构师要做大量的解释、说服、协调、总结、归纳、妥协等工作。一个没
有担任过负责人的程序员缺乏这方面的经验。
同时,国内一种普遍的现象是,大量缺乏编程经验的博士、硕士、项目经理负责软件架构设
计,并声称不需要学习编程也能搞好软件架构设计。计算机科学是一门实验的、技能性的学
科,许多概念必须在编程实践中体会,技能更是必须要操练才能提高。很难想象一个不懂编
程的人会理解设计模式,而不懂设计模式的人会是一个优秀的软件架构师!一个看了很多