background image

码,还要包括对这部分架构进行测试的代码,以保证获得高质量的、满足各种功

能和非功能质量属性要求的架构。除了完成概念、模型设计外,软件架构师一定

要参与实际的编码、测试和调试,做一位真正的

hands-on practitioner,这已经成

为了敏捷软件工程所倡导的主流文化。

  两个架构

  我们在日常的软件产品和系统开发中,实际上会遇到两种、两个部分的软件

架构,即待开发的应用部分的软件架构(简称

“应用架构”),以及既有的基础

平台部分的软件架构(简称

“基础架构”)。这两部分架构之间是互为依赖、相辅

相成的关系,它们共同组成了整个软件产品和系统的架构。

  基础架构的例子包括:

.NET 和 J2EE 等主流的基础平台和各种公共应用框

架,由基础库

API、对象模型、事件模型、各种开发和应用的扩展规则等内容组成

我们只有熟悉基础架构的构造细节、应用机理,才能有效地开发出高质量、高性

能的上层应用。然而,开发一个面向最终用户的软件应用系统和产品,仅仅掌握

一般的计算机高级编程语言知识和基础平台架构、

API 的使用知识显然是不够的

我们还需要根据客户应用的类型和特点,在基础架构之上,设计出符合用户要

求的高质量应用软件。

  熟悉

OOA、OOD 抽象建模技术、设计原则以及架构模式和设计模式等等方

法技术,不但有助于我们更好地理解和利用基础平台架构,也有助于我们设计

开发出更高质量的应用软件架构。

  风险驱动、敏捷迭代的架构设计与开发

  软件架构将随着软件产品和系统的生命周期而演化,其生命期往往超过了

一个项目、一次发布,甚至有可能长达数年之久,因而软件架构无论对于客户还

是开发商来说都是一项极其重要的资产。

  软件架构的设计应该遵循什么样的开发过程?或者说,有没有更好的、成熟