从1985年开始,在过去的二十多年里,关于什么是“软件架构(Software Architecture)”已经基本得到了软件工程领域普遍的认同。其中一些重要的定义介绍如下。
“软件架构代表了系统的组织结构。这包括将系统分解为不同的部分、界定它们之间的连接、确定它们之间的交换机制、并且为后续的设计提供指导性的原则”
---出自UML的著名原创者James Rumbaugh、Grady Booch 及 Ivar Jacobson (即架构界俗称的“三个火枪手”)。
“软件架构表述了一个系统的一个或一系列组织结构。这包扩了软件构件、这些构件的外部可见特征,以及这些构件之间的关系。”
---出自Bass Len、Paul Clements、Rick Kazman 在2003年出版的经典的《架构的实践》一书。
IEEE在2004年4月公布的“IEEE Standard 1471”中,提出了IEEE自己对软件架构的定义:“软件系统架构是根据具有参考意义的实践而定义出来的。主要表述了有一个系统的基本组织结构、基本组成构件和互相的关系,以及构件于外部环境间的关系。同时,软件系统架构为后续的设计和架构演化提供了指导性原则”
。IEEE Standard 1471也澄清了架构领域的许多其他感念,例如架构描述、架构标准等。
可以看出,上述诸多不同用词的“软件架构”的定义,其实都表达了近乎一致的思想。我们可以引用Frank Buschmann
的经典论述来定义一个架构师:“一个软件系统的架构师是一个要担负起软件系统的定义、架构的实现、系统的实施、系统架构演化和系统演化的人。换句话说,是
一个要为系统整个生命周期负责的人
。”
但有意思的是,软件工程领域基本上没有一致的有关“软件架构师(Software
Architecture)”的定义。很多公司也没有这样的职位;有些公司虽然有这样的职位,但却说不清楚这个职位所要求的技能和工作职责;另外但我们对
比不同公司关于该职位的描述时,也能看到其中的不一致,例如Microsoft公司与Motorola公司对架够师的职位表述就很不一样。更常见的是这些
职位描述严重混淆了很多概念,例如:当年的Rational公司就混淆了“软件架构师”与“高级程序员”的概念。
这样的现象,无论是在国内还是国外都很相似。这也导致了我们可以见到大量的不同职位名称出现在软件工程行业中的观象,例如有解决方案架构师、系统架构师、软件架构师、企业架构师、总工、首席架构师、Java架构师、微软架构师及.NET架构师。
分享到:
相关推荐
《软件架构设计教程》是一本全面且深入的指导性书籍,专为那些希望在软件开发领域提升自己架构设计能力的人员而准备。该教程涵盖了软件架构设计的核心概念、原则、模式以及最佳实践,旨在帮助读者从宏观层面理解和...
本文来自于RationalEdge:这篇关于软件架构的较新规则的介绍,是一个关于“架构”的四篇系列文章的的第一篇。作者以定义规则的关键术语开始,继续探索设计出色的架构对于架构所部署的环境所起的作用。我们毫不怀疑...
0_架构师与设计师.pdf 01_软件流程实施方案选择.pdf 02_软件架构文档设计.pdf 03_软件架构风险管理.pdf 04_如何描述和评估软件架构...因附件大于16M被分成了两个包上传,请下载软件架构师教程1.rar 软件架构师教程2.rar
### 什么是软件架构? 根据IEEE Std 1471-2000标准推荐实践,软件架构定义为“一个系统的基本组织,它体现在系统组件中,组件之间的相互关系,组件与环境的关系,以及指导其设计和演化的原则”。简而言之,软件架构...
#### 什么是软件架构? 软件架构是指一个软件系统的基本结构,包括系统的主要组件、这些组件之间的关系以及管理这些关系的原则和准则。良好的软件架构能够提高系统的可维护性、可扩展性和可复用性。 #### 面向模式...
《软件架构实践 第2版》是一本深入探讨软件架构设计与实践的重要著作。软件架构是构建大型、复杂软件系统的基础,它定义了系统的组件、组件之间的关系以及指导系统开发和演进的原则。这本书的第二版提供了最新的理论...
《软件架构师教程》是一本全面且深入的指南,旨在帮助读者掌握软件架构设计的核心概念、原则和实践。作为系统架构师考试的重要参考资料,这本书涵盖了高级软件架构师所需的知识点,同时也是系统分析师提升专业能力的...
比较全面的阐述嵌入式系统软件架构设计的资料,pdf版本,文字版,完整无广告。 本课程是针对嵌入式软件开发的特点,讨论架构设计的思路和方法。试图给大家提供一种思想,启发大家的思维。框架,自动化代码生成和...
软件架构是软件开发过程中的核心组成部分,它定义了软件系统的高级结构、主要组件以及它们之间的关系,为系统设计提供了一个蓝图。本讲义将深入探讨软件架构的基本概念、重要性以及如何进行有效的架构设计。 首先,...
一、什么是软件架构? 软件架构是一个程序或系统的结构,它包括软件组件、这些组件的外部可见特性以及它们之间的关系。它不仅描述了系统的基本构造,还体现了系统的主要功能布局和设计思路。通过架构设计,我们可以...
软体设计师中有一些技术水平较高、经验较为丰富的人,他们需要承担软件系统的架构设计,也就是需要设计系统的元件如何划分、元件之间如何发生相互作用,以及系统中逻辑的、物理的、系统的重要决定的作出。...
《架构风格与基于网络的软件架构设计》是网络软件领域的一部重要著作,作者通过深入研究,探讨了软件架构的设计原则和模式,特别是在Web环境下的应用。这本书的中英文版本都为读者提供了全面理解现代互联网软件架构...
《产品技术开发项目-软件架构设计模板》 软件架构设计是构建高质量软件产品的重要环节,它为项目的实施提供了蓝图和指南。本文档旨在为产品经理、项目经理、系统工程师、架构师及软件开发人员提供一个清晰、全面的...
### 软件架构实践(第三版)林巴斯——关键知识点解析 #### 一、概述 《软件架构实践(第三版)》由林巴斯编著,是一部深入探讨软件架构设计与实现的专业书籍。本书旨在帮助读者理解软件架构的核心概念、方法论...