软件架构设计师考试的知识体系汇总

系统架构设计师 责任编辑:冰冻芒果 2015-08-14

添加老师微信

备考咨询

加我微信

摘要:软件架构(softwarearchiecture)也称之为软件体系结构,它是一组有关如下要素的重要决策:软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。软件架构是对系统整体结构设计的刻划,一直以来,对于架构的理解有两个基本概念,一个称之为组成,另一个称之为

    任何设计方案都与过程有关,过程的改进必然对架构设计产生深远影响。

    软件架构(softwarearchiecture)也称之为软件体系结构,它是一组有关如下要素的重要决策:软件系统的组织,构成系统的结构化元素,接口和它们相互协作的行为的选择,结构化元素和行为元素组合成粒度更大的子系统的方式的选择,以及指导这一组织(元素及其接口、协作和组合方式)的架构风格的选择。软件架构是对系统整体结构设计的刻划,一直以来,对于架构的理解有两个基本概念,一个称之为组成,另一个称之为决策。

    组成:架构的组成概念强调“计算机及组件之间的交互”。例如在的初步设计中,“表示层”和“业务层”是两个粗粒度的黑盒,当内部也表达了一些粒度比较细的组件的时候,这两个黑盒变成了“灰盒”。交互的概念表现在架构描述了它们之间的关系,例如数据如何读取、功能如何调用等。

    决策:架构决策不但表现了系统组织、元素、子系统的组织风格决策,还包括了非功能性需求的决策,例如对于可扩展性的决策,对于表示逻辑与业务逻辑变化的隔离,第三方工具包变化的隔离等,这就使架构有了弹性。架构的组成与决策是架构设计的两个基本概念,这两个概念并不矛盾,在架构设计中,往往是同时体现这两个概念,确保架构满足产品要求。由这两个概念出发,我们自然会提出:软件架构的核心思维到底是什么呢?

    首先,任何软件系统都是以满足需求作为目的,所以,好的架构设计必须以全面深入的需求分析作为基础,根据需求来组织合理的产品架构。事实上架构设计是没有统一的模式的任何模式只有针对问题才有意义。作为架构设计来说,必须对需求分析有足够的理解,这样才能有针对性地解决问题,才可能设计出真正优秀的产品来。

    其次,一个软件系统的质量,很大程度上是由架构设计的质量决定的,所以架构师的眼光一般都专注于质量属性上,应该根据产品质量属性的要求提出合理的架构决策。但是很长时间以来,人们大都把目光关注在流程、方法、结构原理甚至编码的本身,而不太注意架构设计最本质的东西,思考的深度也欠深入,结果,很多产品即使设计出来,后期运行中也是问题百出,特别是发生变更的时候带来了很大的困难。这就给我们提出了一个问题,架构设计的思维到底是什么?

    另一方面,任何架构思想的实现,必须与具体的项目组织相匹配才能发挥作用。因此,系统架构师应该仔细研究现代项目管理的思想和方法,吃透其中的精髓,根据自己的设计思想,提出合适的软件工程策略。反之,一个软件工程策略,也不可避免的也会影响到架构设计的特点。

    上述讨论引发了三个核心思维,一个是架构设计的源泉来自于需求分析,第二个是架构设计重心和特点来自于质量需求(非功能性需求),第三个观点是,架构整体特征应该考虑项目管理特征。

    因此,软件架构设计是一个系统工程,它需要系统构架师有很宽的知识面,从需求分析、架构设计到类设计甚至代码实现一直到项目管理都需要有透彻的理解,这之间的关系是你中有我我中有你,是不可能截然分开的。必须说明,软件系统设计的方法不是一个僵化的规则,关键是在实践中实事求是的摸索规律,从而找出符合实际达到要求的设计来。


    相关推荐:

  系统架构师与产品经理、项目经理有什么区别?

  一个优秀系统架构设计师需要具备哪些条件?

  我们为什么要报考系统架构师考试?

  一个系统架构设计师的成长之路


更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

软考备考资料免费领取

去领取