码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 系统架构设计师(第二版)学习笔记----系统架构概述


    【原文链接】系统架构设计师(第二版)学习笔记----系统架构概述

    文章目录

    • 一、系统架构的定义与发展历程
      • 1.1 架构的定义
      • 1.2 架构设计的作用
      • 1.3 架构设计产生的背景
      • 1.4 软件架构的发展历程
      • 1.5 模块化开发方法
      • 1.6 模块法方法分解模块遵循的原则
      • 1.7 软件工程领域研究重点
      • 1.8 架构分析常用的方法
      • 1.9 架构设计常用的方法
      • 1.10 架构测试策略
      • 1.11 架构测试方法
      • 1.12 架构风格
      • 1.13 软件架构影响开发的各个阶段
    • 二、软件架构的常用分类及建模方法
      • 2.1 软件架构的常用分类
      • 2.2 分层架构最常见的四层架构
      • 2.3 事件驱动架构的四个主要部分
      • 2.4 微核架构
      • 2.5 微服务架构三种实现模式
      • 2.6 云架构
      • 2.7 系统架构常用建模方法
      • 2.8 常见软件架构风格的使用场景

    一、系统架构的定义与发展历程

    1.1 架构的定义

    系统架构是系统的一种整体的高层次的结构表示,是系统的骨架、根基,支撑和链接各个部分

    1.2 架构设计的作用

    • 解决相对复杂的需求问题
    • 解决非功能属性在系统占据重要位置的设计问题
    • 解决生命周期长、扩展性需求高的系统整体结构问题
    • 解决系统基于组件需要的集成问题
    • 解决业务流程再造难的问题

    1.3 架构设计产生的背景

    • 软件复杂、易变,其行为特征难以预见,软件开发过程中需求和设计之间缺乏有效的转换,导致软件开发过程困难和不可控
    • 随着软件系统的规模越来越大、越来越复杂,整个系统的结构和规格说明就显得越来越重要
    • 对于大规模的复杂软件系统,相较于对计算算法和数据结构的选择,系统的整体结构设计和规格说明已经变得明显重要的多
    • 对软件系统结构的深入研究将会成为提高软件生产率和解决软件维护问题的最有希望的新途径

    1.4 软件架构的发展历程

    • 基础研究阶段(1968-1994)
    • 概念体系和核心技术形成阶段(1999-2000)
    • 理论体系完善和发展阶段(1996-至今)
    • 普及应用阶段(2000-至今)

    1.5 模块化开发方法

    模块化开发方法是指把一个待开发的软件分解为若干个小的而且简单的部分,采用对复杂事物分而治之的经典原则。

    1.6 模块法方法分解模块遵循的原则

    • 最高模块内聚
    • 最低耦合
    • 模块大小适合
    • 模块调用链的深度不可过多
    • 接口简单、精炼(扇入扇出不宜太大),具有信息隐蔽能力
    • 尽可能地复用已有模块

    1.7 软件工程领域研究重点

    • 软件架构描述和表示
    • 软件架构分析、设计与测试
    • 软件架构发现、演化与重用
    • 基于软件架构的开发方法
    • 软件架构风格
    • 动态软件架构

    1.8 架构分析常用的方法

    • 软件架构分析方法SAAM
    • 架构权衡分析法ATAM
    • 成本效益分析法CBAM
    • 基于场景的架构再工程SBAR
    • 架构层析的软件可维护性预测ALSPM
    • 软件架构评估模型SAEM

    1.9 架构设计常用的方法

    • 从工件描述中提取架构描述的工件驱动方法
    • 从用例导出架构抽象的用例驱动
    • 从模式导出架构的模式驱动方法
    • 从领域模型导出架构抽象的域驱动方法
    • 从设计过程中获得架构质量属性需求的属性驱动设计方法

    1.10 架构测试策略

    • 单元
    • 子系统
    • 集成
    • 验收

    1.11 架构测试方法

    • 架构测试覆盖方法
    • 组件设计正确性验证方法
    • 基于CHAM的架构动态语义验证方法

    1.12 架构风格

    • 数据流风格
    • 调用/返回风格
    • 独立组件风格
    • 虚拟机风格
    • 仓库风格

    1.13 软件架构影响开发的各个阶段

    • 需求阶段
    • 设计阶段
    • 实现阶段
    • 维护阶段

    二、软件架构的常用分类及建模方法

    2.1 软件架构的常用分类

    • 分层架构
    • 事件驱动架构
    • 微核架构
    • 微服务架构
    • 云架构

    2.2 分层架构最常见的四层架构

    • 表现层
    • 业务层
    • 持久层
    • 数据库

    2.3 事件驱动架构的四个主要部分

    • 事件队列
    • 分发器
    • 事件通道
    • 事件处理器

    2.4 微核架构

    微核架构又称为插件架构,是指软件的内核相对较小,主要功能和业务逻辑都通过插件实现

    2.5 微服务架构三种实现模式

    • Restful API模式
    • Restful 应用模式
    • 集中消息模式

    2.6 云架构


    云架构主要分成两部分

    • 处理单元
    • 虚拟中间件

    虚拟中间件包含4个组件

    • 消息中间件(Messageing Grid)
    • 数据中间件(Data Grid)
    • 处理中间件(Processing Grid)
    • 部署中间件(Deployment Manager)

    2.7 系统架构常用建模方法

    • 结构模型
    • 框架模型
    • 动态模型
    • 过程模型

    2.8 常见软件架构风格的使用场景

    • 管道-过滤器风格适用于将系统分成若干独立的步骤
    • 主程序/子系统和面向对象的架构风格适用于对组件内部进行设计
    • 虚拟机风格适用于构造解释器或专家系统
    • C/S和B/S风格适合于数据和处理分布在一定范围,通过网络连接构成系统
    • 平台/插件风格适用于具有插件扩展功能的应用程序
    • MVC风格被广泛应用于用户交互程序的设计
    • SOA风格适用于在企业集成等方面
    • C2风格适用于GUI软件开发,用以构建灵活和可扩展的应用系统
  • 相关阅读:
    【性能优化】面试题:现在有25个键值对,怎么样存HashMap效率最高?
    代码交付自动化 4项非常重要
    Principle of the Hardware-in-the-Loop (HIL)
    Git的学习
    近地面无人机植被定量遥感与生理参数反演实践技术应用
    MySQL——进阶
    【同时完成超分和MEF】
    【云原生之Docker实战】使用Docker部署jpress开源网站
    驱动开发:内核字符串拷贝与比较
    网络攻击中常见掩盖真实IP的攻击方式及虚假IP地址追踪溯源方法
  • 原文地址:https://blog.csdn.net/redrose2100/article/details/132680106
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号