1. 概述
- 概念
- Information System Architecture
- 指对某一特定内容里的信息进行统筹、规划、设计、安排等一系列有机处理的活动
- 是关于软件系统的结构、行为和属性的高级抽象
- 描述阶段:
- 其对象是直接构成系统的抽象组件以及各个组件之间的连接规则
- 特别是应当细致地描述组件之间的通信
- 实现阶段:抽象组件被细化为实际的组件(如具体类或者对象)
- 描述阶段:
- 两个层次
- 概念层次:包含了艺术、科学、方法和建设风格
- 物理层次:架构工作之后产生的物理结构及相关结果
2. 发展
本段没有要掌握的内容。
3. 定义
定义1:
- 信息系统架构是该系统的一个(或多个)结构
- 由软件元素、元素的外部可见属性及它们之间的关系组成
- 软件元素:指比“构件”更一般的抽象
- 元素的外部可见属性:如,它所提供的服务、性能特征等
吐槽:此处教材原文:“元素的外部可见属性是指其他元素对该元素所做的假设”。这实在不像正常人的认知,感觉是翻译软件干的事情,大老爷们应该也不校对。
如下解释应该比较合理:元素的外部可见属性是指可以被其他软件元素或系统外部观察到或使用的属性
定义2:
- 信息系统架构为软件系统提供了一个结构、行为和属性的高级抽象
- 由构成系统元素的描述、这些元素的相互作用、指导元素集成的模式及这些模式的约束组成
4. 其他概念
- 仅与内部具体实现有关的细节是不属于架构
- 原因:定义中强调了元素的
外部可见属性
- 原因:定义中强调了元素的
- 整体中的个别结构不能代表信息系统架构
- 原因:定义中强调,它是由该系统的一个或多个结构组成
- 任何软件都存在架构,架构可以独立于架构的描述而存在
- 原因:不管你写不写文档,架构都在那里
- 抽象的两个方面
- 静态方面,关注系统的宏观总体结构。如,分层
- 动态方面:关注系统内关键行为的共同特征
- 架构具有“基础”性
- 通常涉复用性,及影响深远的重要决策
以下,在讲架构的时候都说过,教材这里再次提到,随便看一下即可
- 影响架构的因素
- 软件系统的项目干系人对软件系统有不同的要求
- 开发组织有不同的人员知识结构
- 架构设计师的素质与经验
- 当前的技术环境等
- 这些因素如何影响架构:
- 通过功能性需求、非功能性需求、约束条件等影响架构设计师的决策,从而影响架构。
- 架构对上述诸因素具有反作用
- 如,架构影响开发组织的结构:按架构进行分工,将项目组分为几个工作组
- 如,影响开发组织的目标:好的架构为开发组织提供了新的商机