【软考系统架构设计师】系统架构师必知必会上篇(系统架构设计)

【软考系统架构设计师】系统架构师必知必会上篇(系统架构设计)

一. 软件架构的概念

  1. 体系结构就是架构。架构连接起了需求分析和软件设计之间的鸿沟。
  2. 架构设计就是需求分配,即将满足需求的职责分配到组件上
  3. 软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式。架构风格定义了一个系统家族,即一个体系结构的定义的一个词汇表和一组约束。词汇表中包含一些构件和连接件的类型,而这组约束指出系统是如何将这组构件和连接件组合起来的。
  4. 软件架构为软件系统提供了一个结构,行为和属性的高级抽象。由构成系统的描述,这些元素的相互作用,指导元素集成的模式,以及这些模式的约束组成。
  5. 软件架构是项目干系人进行交流的手段。明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性。
  6. 软件架构使推理和控制的更改更加的简单,有助于循序渐进的原型设计,可以作为培训的基础。
  7. 软件架构是可以传递和可以复用的模型。通过研究软件架构,可能预测软件的质量。
软件架构的发展史
  1. 汇编语言:无架构阶段
  2. 程序结构设计:萌芽阶段
  3. 统一建模语言:初级阶段
  4. 4+1视图:高级阶段

二. 软件架构风格

  1. 架构设计的一个核心问题是能否达到架构级的软件复用。
  2. 架构风格反映了领域中众多系统所共有的结构和语义特征,并指导如何将这些构件有效地组织成一个完整的系统。
  3. 架构风格定义了用于描述系统的术语表和一组指导构建系统的规则。
1. 数据流风格
  • 批处理序列和管道过滤器。
1.1 批处理序列
  1. 构件为一系列固定顺序的计算单元,构件之间只通过数据传递交互,每个处理步骤是一个独立的程序,每一步必须在前一步结束以后才能开始。数据必须是完整的以整体的方式进行传递
1.2 管道过滤器
  1. 每个构件都有一组输入和输出。构件读输入的数据流经过内部处理,然后产生输出数据流,这个过程通常是通过对输入数据流的变换或计算来完成的。包括通过计算和增加信息以丰富数据,通过浓缩和删除以精简数据,通过改变记录方式以转化数据和递增的转化数据等,这里的构件称为过滤器,连接件就是数据传输的管道。
  2. 将一个过滤器的输出传到另一个过滤器的输入。早期的编译器就是采用这种架构,一步一步的处理的,均可以考虑使用这种架构风格。
2. 调用返回风格
  • 主程序子程序,面向对象,层次结构风格
2.1 主程序子程序
  1. 单线程控制,把问题划分为若干处理的步骤,构件即为主程序和子程序。
  2. 子程序通常合成为模版。过程调用作为交互机制,即充当连接件的角色,通用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
2.2 面向对象
  1. 构件就是对象,对象是抽象数据类型的实例。
  2. 在抽象数据类型当中,数据的表示和相应的操作被封装起来,对象的行为体现在其接受和请求的动作。连接件即是对象间交互的方式。
  3. 对象是通过函数和过程的调用来交互的。
2.3 分层架构
  1. 构件组成一个层次结构。连接件通过决定层间如何交互的协议来定义。每层为上一层提供服务,使用下一层的服务,只能见到与自己邻接的层,通过层次结构可以将大的问题分解为若干渐进的小的问题逐步解决,可以隐藏问题的复杂度,修改某一层,最多影响其相邻的两层,通常只有上层。
  2. 优点:
    1. 这种风格支持基于可增加抽象层的设计,允许将一个复杂问题分解成一个增量步骤序列来实现。
    2. 不同的层次处于不同抽象级别。越靠近底层则抽象层级越高,同理越靠近顶层抽象等级越低。
    3. 由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件复用提供强大的支持。
  3. 缺点:
    1. 并不是每个系统都可以很容易的划分为分层的模型。
    2. 很难找到一个合适的正确的层次抽象方法
3.独立构件风格
  • 进程通信,基于事件的调用(隐式调用)
3.1 进程通信
  1. 构件是独立的过程,连接件是消息的传递。
  2. 构件通常是命名过程,消息传递的方式可以是点对点异步或者同步的方式,以及远程过程方法调用等。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
推荐,资料太大存放在网盘中,需要可下载观看。含教材。 第一部分 考试简介 1.1 考试大纲要求 1.2 考试科目介绍 第二部分 信息系统基础 2.1 信息系统工程总体规划 2.2 政府信息化与电子政务 2.3 企业信息化与电子商务 2.4 信息资源管理 2.5 信息化的标准、法律和规定 第三部分 系统开始基础 3.1 系统规划 3.2 软件开发方法 3.3 需求工程 3.4 软件系统建模 3.5 系统设计 3.6 测试与评审 3.7 软件开发环境与工具 3.8 系统运行与评价 第四部分 操作系统 4.1进程管理 4.2存储管理 4.3文件管理 4.4作业管理 4.5设备管理 第五部分 数据库系统 5.1数据库模式 5.2数据库完整性约束 5.3并发控制 5.4数据库设计 5.4.1数据库设计阶段 5.4.2ER模型 5.5数据库安全 5.6备份与恢复技术 5.7分布式数据库 5.8数据仓库 5.9数据挖掘 第六部分 计算机网络 6.1开放系统互连参考模型 6.2 TCP/IP协议族 6.3网络规划与设计 6.4计算机网络分类 6.5网络接入技术 6.6网络存储技术 6.7虚拟局域网(VLAN) 第七部分 软件架构设计 7.1 软件架构的概念 7.2 软件架构风格 7.3 面向服务的架构 7.4 特定领域软件架构 7.5 基于架构的软件开发方法 7.6 软件架构评估 7.7 软件产品线 第八部分 基于构件的开发 8.1 中间件技术 8.1.1 中间件的概念 8.1.2 主要的中间件 8.2 典型应用架构 8.3 企业应用集成 第九部分 应用数学 9.1 概率统计应用 9.2 图论应用 9.3 组合分析 9.4 算法的选择与应用 9.5 运筹方法 9.6 数学建模 第十部分 系统安全性与保密性设计 10.1安全与保密基础技术 10.2网络安全 10.3安全体系结构 10.3.1OSI安全模型 10.3.2MIS+S、S-MIS、S2-MIS 10.4安全审计 10.5安全策略 10.5.1核心 - 七定 10.5.2安全策略设计原则 第十一部分 系统配置与性能评价 11.1系统故障模型 11.2系统配置方法 11.3可靠性分析与可靠度计算 11.4性能评价方法 11.5软件容错 第十二部分 知识产权与标准化 12.1知识产权 12.1.1保护期限 12.1.2知识产权人确定 12.1.3侵权判断 12.1.4标准的分类 12.2标准化 12.2.1标准的分类 12.2.2标准类型的识别 第十三部分 多媒体基础知识 13.1多媒体技术基本概念 13.1.1音频相关概念 13.1.2图像相关概念 13.1.3媒体的种类 13.2多媒体相关计算问题 13.2.1图像容量计算 13.2.2音频容量计算 13.2.3视频容量计算 13.3常见多媒体标准 13.4数据压缩技术 13.4.1数据压缩基础 13.4.2有损压缩与无损压缩 第十四部分 嵌入式系统 14.1 嵌入式系统的特点 14.2 嵌入式系统的基本架构 14.3 嵌入式系统网络 14.4 嵌入式系统数据库 14.5 实时任务调度和多任务设计 14.5.1 调度算法分类 14.5.2 单调执行速率调度法 14.5.3 时间轮转调度 14.5.4 最早截止时间优先调度算法 14.5.5 优先级反转 14.6 中断处理和异常处理 14.7 嵌入式系统开发设计 14.7.1 交叉开发环境 14.7.2 开发过程 14.7.3 调试方法 第十五部分 开发管理 15.1 范围管理 15.2 时间管理 15.3 成本管理 15.4 文档管理 15.4.1 软件文档管理指南 15.4.2 计算机软件文档编制规范 15.5 软件配置管理 15.6 软件质量管理 15.6.1 质量管理的概念 15.6.2 质量模型 15.6.3 质量管理过程 15.6.4 质量保证与质量控制 15.7 风险管理 15.8 软件过程改进 15.8.1 CMM 15.8.2 CMMI 15.8.3 ISO/IEC 15504 15.8.4 SJ/T 11234-2001 第十六部分 系统架构设计案例分析 16.1 考点分析 16.2 如何解答试题 16.3 试题解答实例 16.3.1 质量属性与软件架构策略 16.3.2 数据流图与流程图 16.3.3 嵌入式系统设计 16.3.4 软件架构风格的选择 16.3.4 信息系统安全设计 第十七部分 系统架构设计论文 17.1 考点分析 17.2 做好准备工作 17.3 论文写作格式 17.4 如何解答试题 17.5 如何写好摘要 17.6 如何写好正文 17.7 常见问题及解决办法 17.8 论文评分标

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

进击的横打

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值