《系统架构设计师教程(第2版)》第12章-信息系统架构设计理论与实践-01-信息系统架构(ISA)基本概念及发展

文章目录

  • [1. 概述](#1. 概述)
  • [2. 发展](#2. 发展)
  • [3. 定义](#3. 定义)
  • [4. 其他概念](#4. 其他概念)

1. 概述

  • 概念
    • Information System Architecture
    • 指对某一特定内容里的信息进行统筹、规划、设计、安排等一系列有机处理的活动
    • 是关于软件系统的结构、行为和属性的高级抽象
      • 描述阶段:
        • 其对象是直接构成系统的抽象组件以及各个组件之间的连接规则
        • 特别是应当细致地描述组件之间的通信
      • 实现阶段:抽象组件被细化为实际的组件(如具体类或者对象)
  • 两个层次
    • 概念层次:包含了艺术、科学、方法和建设风格
    • 物理层次:架构工作之后产生的物理结构及相关结果

2. 发展

本段没有要掌握的内容。

3. 定义

  • 定义1:

    • 信息系统架构是该系统的一个(或多个)结构

    • 由软件元素、元素的外部可见属性及它们之间的关系组成

      • 软件元素:指比"构件"更一般的抽象
      • 元素的外部可见属性:如,它所提供的服务、性能特征等

      吐槽:此处教材原文:"元素的外部可见属性是指其他元素对该元素所做的假设"。这实在不像正常人的认知,感觉是翻译软件干的事情,大老爷们应该也不校对。

      如下解释应该比较合理:元素的外部可见属性是指可以被其他软件元素或系统外部观察到或使用的属性

  • 定义2:

    • 信息系统架构为软件系统提供了一个结构、行为和属性的高级抽象
    • 由构成系统元素的描述、这些元素的相互作用、指导元素集成的模式及这些模式的约束组成

4. 其他概念

  • 仅与内部具体实现有关的细节是不属于架构
    • 原因:定义中强调了元素的外部可见属性
  • 整体中的个别结构不能代表信息系统架构
    • 原因:定义中强调,它是由该系统的一个或多个结构组成
  • 任何软件都存在架构,架构可以独立于架构的描述而存在
    • 原因:不管你写不写文档,架构都在那里
  • 抽象的两个方面
    • 静态方面,关注系统的宏观总体结构。如,分层
    • 动态方面:关注系统内关键行为的共同特征
  • 架构具有"基础"性
    • 通常涉复用性,及影响深远的重要决策

以下,在讲架构的时候都说过,教材这里再次提到,随便看一下即可

  • 影响架构的因素
    • 软件系统的项目干系人对软件系统有不同的要求
    • 开发组织有不同的人员知识结构
    • 架构设计师的素质与经验
    • 当前的技术环境等
  • 这些因素如何影响架构:
    • 通过功能性需求、非功能性需求、约束条件等影响架构设计师的决策,从而影响架构。
  • 架构对上述诸因素具有反作用
    • 如,架构影响开发组织的结构:按架构进行分工,将项目组分为几个工作组
    • 如,影响开发组织的目标:好的架构为开发组织提供了新的商机

相关推荐
学软件的小铃铛8 小时前
ELK日志管理框架介绍
elk·系统架构
HAPPY酷1 天前
Kafka 和Redis 在系统架构中的位置
redis·kafka·系统架构
掘金-我是哪吒2 天前
分布式微服务系统架构第144集:FastAPI全栈开发教育系统
分布式·微服务·架构·系统架构·fastapi
半桔2 天前
【Linux手册】冯诺依曼体系结构
linux·缓存·职场和发展·系统架构
蓝天居士3 天前
软考 系统架构设计师系列知识点之杂项集萃(82)
系统架构
小马哥编程3 天前
【iSAQB软件架构】软件架构中构建块的视图:黑箱、灰箱和白箱及其交互机制
microsoft·架构·系统架构·交互
WispX8883 天前
【设计模式】门面/外观模式
java·开发语言·设计模式·系统架构·外观模式·插件·架构设计
慧一居士3 天前
ShardingSphere-JDBC 与 Sharding-JDBC 的对比与区别
分布式·系统架构
小马哥编程3 天前
【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
分布式·kafka·系统架构·linq
大咖分享课3 天前
实时数据湖架构设计:从批处理到流处理的企业数据战略升级
系统架构