软件架构师职业导读 The Software Architect’s Profession An Introduction
(美)Marc T.Sewell Laura M.Sewell著 蒋慧等译
机械工业出版社
第三章 什么是架构
对于信息技术的业内人士以及客户来说,了解架构是什么至关重要。架构远不止是“技术架构”(与管道和布线相近)、领域的映射或一组协议。为了是前面的类比更有意义,从而使软件架构师的职业成为现实,我们必须提出并尝试解答以下问题:架构的本质特征是什么?架构是否总是存在?
架构是及并不存在,只有架构的作品存在。架构存在于头脑中,完成架构的作品的人奉献出架构的灵魂----一个根本就不知道风格、技术和方法为何物的灵魂。它只是等待着展现她的载体出现。架构又确实存在,它是不可测事物的化身。 Louis Kahn
到一堆书籍中去寻找架构就像到屠户的店中去寻找一头绵羊,要找的东西的确在那儿,但却需要以一种特殊的方式来寻找。 Paul Shepheard
维特鲁威写到:架构是由功能、美感和结构这些元素组成。这三个元素所组合的“三合弦”成为自古罗马时代以来的架构基础,简洁而优雅,也足以成为软件架构的理论基础。James O’Gorman 关于维特鲁威三和弦令人信服地写道:建筑设计师以及和的方式思考,我们也必须如此。把维特鲁威三和弦想象成一个等边三角形,其中每一个元素是一个角,每个角都是离散的,但组合起来形成一个更大的整体。这个用等边三角形表示的更大整体,就是架构的作品。
Utilitas代表对结构的需要----结构的功能。三角形的这一边是客户和居住者,无论动机如何,他们都有尚待满足的需求,这可以通过建筑或软件的构造来实现。Utilitas是一个建筑项目的理由或愿望,是此建筑项目将提供服务的功能。这就是客户的角色。
Venustas是设计。设计的产生是为了满足客户的功能需求,代表了系统和材料的结构和艺术布置。这就是架构师的角色和职责。
Firmitas代表构造的手段:构造的材料和构造的保障。没有一个稳固、建筑良好的结构,就无法满足客户的需求,也不可能实现设计。Firmitas是建筑工人的角色。
在这个三角形内部,有一些辅助的角色,如工程师,顾问和管理人员。这些角色是必要的附属品,从属于功能、设计和构造主三角。例如工程师通常受雇于架构师来验证结构元素,也有可能受雇于建筑师,就如何构造某种元素提供专家意见。
第五章 软件构造过程中的角色
建筑设计师说:师我决定建筑物应该是什么样的。
科学家说:我的工作是研究、发明,进一步挖掘知识。
工程师说:由我来确定建筑物是否修建得合理。
建筑工人说:我的工作是修建房舍。
软件架构师决定结构的外观和功能
软件架构师设计基于软件的技术结构,并且是构建过程中涉及的管理者。软件架构涵盖了软件系统外观、感觉、功能以及所有的软件系统组织形式。同时它还决定了软件系统如何与现存的软件结构协同工作。软件架构包含了大大小小的软件结构,还有建立在软件基础上的产品和已嵌入的软件要素。
软件架构指的是软件架构是的工作产品以及他们的实践。它是venustas,是构建程序的设计方面。就像修建房子一样,软件架构将技术和功能同人类的美学观点和生产率相结合,来决定居住者对结构的感觉和看法。软件架构要满足人类的需求,解决人类的各种问题,同时通过设计促进人类的活动。
第10章 架构师职业宣言
u 软件架构师接受与建筑业的类比,这个类比确确实实是正确的。只有在这个类比的帮助下,客户和使用者才能理解设计和构造过程,并使之有效。只有在这个类比下,建筑师和建筑工人才会角色分明。软件架构师是venustas---不是utilitas,也不是firmitas。他们或许会帮助建造,但是在构造过程中,他们的角色师设计的监护人。
u 软件架构师是客户的代言人,他们为满足客户的全部需求进行设计。他们进入客户的世界来了解领域、需求和要解决的问题。设计是一个与客户相互协作的过程。
u 软件架构师不应受限于有限的知识和很少的经验,他们应当拥有很广泛的知识和技术。
u 软件架构师首先要对设计有信心,然后很细心地把它绘制出来。他们所提出架构计划,以使客户和建筑者之间建立清晰的沟通。
u 软件架构师捍卫他们的工作成果,同时也欢迎所有独立的架构评论。
u 软件架构师渴望承担真正的经典架构师角色,并为某个直到现在才在软件业被提及的目标努力奋斗,对未来也是同样关键的目标,即一个真正伟大的设计。