《架构实战--软件架构设计的过程》 前言
作者:Peter Eeles & Peter Cripps
几年前,我们(Peter Eeles和Peter Cripps)开始注意到Grady Booch首创的《软件架构手册》(《Handbook of Software Architecture》, www.handbookofsoftwarearchitecture.com )。Grady起初的目的是:
整理许多有趣的软件密集型系统的架构,以揭示它们的基本模式以及允许在域和架构风格之间进行比较的方式,并把它们呈现出来。
当Grady正关注于最终架构的时候,我们感到理解成功架构师创建他们的架构时所遵循的流程同样很有趣。当然,我们最终的目的是复制他们的成功。我们花了好几年的时间才完成这个过程。我们做了许多项目,和许多架构师进行了交流,还对许多开发方法进行了梳理——所有这些都有助于我们理解当构建一个软件系统时起作用和不起作用的因素的本质。 《架构实战--软件架构设计的过程》 是我们经历的这个过程的总结。
许多优秀的书讲述了软件架构过程的特定方面,我们借鉴了这些书中的相关内容。例如,其中有些书注重编写一个软件架构的文档,另一些书注重如何评价一个软件架构。其中任意一方面都适合比较大的场景,因为每一方面都呈现了软件架构过程中的一个重要因素。因此,本书的一个目的是通过提供在一个典型软件开发项目的环境中架构的所有方面的概览来呈现这个大场景。
应该指出的是, 《架构实战--软件架构设计的过程》 没有指定一个专门的软件开发方法。更确切地说,本书讲述了人们在支持构建过程的任意现代开发方法中可能遇到的关键因素。
本书是为谁准备的
显然, 《架构实战--软件架构设计的过程》 是针对那些想了解他们的角色如何适应整个软件开发过程的软件架构师(或者立志成为软件架构师的人)。本书也适合“专门”的架构师角色,如应用架构师和安全架构师。更笼统地说,本书适合那些想更好地了解软件架构师这个角色的人。就这点而言,它对一个软件开发团队的所有成员也都有好处,包括开发人员、测试人员、业务分析人员、项目经理、配置经理和过程控制工程师。本书也特别适合那些在软件开发的尝试中想了解日益重要的软件架构师角色的大学生。
如何阅读本书
本书大致分为三个部分:
第1~5章为第一部分,概述了架构、架构师、架构设计、编写软件架构文档、可重用架构资源的核心概念。
第6~9章为第二部分,这部分包含了相关案例研究的章,通过一个基于样例应用程序的典型软件开发项目,重点体现架构师这个角色,提供一个指导性指南。这些章的编写方式,使你很容易找到感兴趣的特定主题。每个相关案例研究的章主要按照任务进行组织,另外,在这些章中我们使用了一些排版体例。特别是,对流程元素的所有引用,如任务、工件和角色,都用黑体加以强调,例如当我们描述软件架构文档工件的时候。
第10章为第三部分,包含额外讨论的话题和思考,尤其是,在前面的章中描述的概念如何应用于架构复杂的系统。
在本书中,你还会发现一些如下进行分类的有用的补充内容:
- 概念补充内容: 介绍与讨论与主题相关的想法或整套想法。
- 检查清单补充内容: 包含当执行某一特定任务时,可以进行检查的有用的项目。
- 最佳实践补充内容: 介绍已经在实践中证实为有效的方法。
- 缺陷补充内容: 介绍最好避免的方法,因为它们会导致负面效果。
我们在本书中大范围地使用统一建模语言(UML)来描述架构的某些方面。所有的UML图表都是通过IBM Rational Software Architect创建的。
附属站点
本书有一个附属的站点: processofsoftwarearchitecting.com ,读者可以在这个站点上找到额外的信息,也可以和作者进行交流。