【软考系统架构设计师】第六章 软件架构基础知识(知识点必知必会)
第六章 软件架构基础知识(知识点必知必会)
一. 软件架构的定义
1)软件架构的概念
- 提供了一个结构,行为,属性的高级抽象。由构成系统的元素的描述,这些元素的相互作用,指导元素集成的模式及这些模式的约束组成。
- 软件架构是系统的一个基础组织,它具体体现在系统的构件,构件之间,构件与环境之间的关系,以及指导其设计和演化。
- 软件架构设计包括提出架构模型,产生架构设计和进行设计评审等活动,是一个迭代的过程。
- 架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
2)架构描述语言ADL
- 是一种为明确说明软件系统的概念架构和对这些概念架构建模提供功能的语言。
- ADL主要包括以下组成部分:组件、组件接口、连接件和架构配置。
二. 软件架构的重要性
1)是项目干系人之间交流的平台
- 架构提供了一个共同语言或者说是公共参考点
- 项目干系人以此作为彼此理解,协商,达成共识或相互沟通的基础。
2)早期设计决策
- 架构明确了对系统实现的约束条件,是总体设计的体现,是对系统实现的各方面进行权衡的结果。
- 架构可以用来预测系统的质量,同时架构为维护决策也提供了依据。
- 架构还有助于原型化的开发。
3)在较高的层面上实现软件复用
- 基于架构的开发强调对各元素的组合或装配
- 产品线往往共享一个架构,产品线的架构是开发组织的核心资产之一。
- 架构使基于模版的开发成为可能,有利于开发规范化和一致性。
4)架构对开发的指导和规范意义不容忽略
- 架构可以作为培训的基础,有利于培养开发团队和培训相关人员
三. 软件架构的作用
1)项目管理维度
- 能够降低成本、改进质量、按时和按需交付产品。
- 能够使得不同的利益相关人(stakeholders) 达成一致的目标;
- 能够支持项目计划和项目管理等活动;