系统架构设计
上午题15到20
案例分析一题
论文一题
软件架构的概述
架构设计是在需求分析和软件设计之间的过渡阶段
构件可以看成一个具体的功能。
连接件连接不同的构件
在面向对象中,构件由多个对象,多个类组成
软件架构的组成:构件,连接件,模式,模式约束
软件架构显示了需求和构件之间的对应关系
研究软件架构的根本目的:软件复用(软件级别的复用),质量,维护
技术人员:软件设计人员
非技术人员:需求分析人员
软件架构设计与生命周期
SA:软件架构
需求分析:问题空间
架构设计SA:解空间
需求->软件架构设计->系统设计
由此存在如何根据需求模型构件SA模型,如果保证模型转换的可追踪性
设计阶段:
- SA模型的描述:SA基本概念,体系结构描述语言,SA模型的多视图表示
- SA模型的设计与分析方法
- 对SA设计经验的总结与复用
构件
架构就是描述构件和连接件之间的关系
对象
模块
原子构件
构件
服务
粒度是越来越大的
一个构建可包含多个类元素,但是一个类元素只能属于一个构件
构件标准
构件流派:
EJB常考
会话Bean
实体Bean
消息驱动Bean
COM微软
CORBA
对象请求代理 ORB
公共对象服务
公共设施
软件架构风格(重点)
选择题考挖空
架构风格:一个架构定义,词汇表,约束(术语表,规则)
架构风格:众多系统的共有结构和语义特性,将模块和子系统组织成一个完整的系统
架构级软件复用
五种架构风格
数据流风格
调用/返回风格
独立构件风格
虚拟机风格
仓库风格
数据流风格
区分批处理序列和管道-过滤器
区别:
批处理:前一个执行完成才能执行下一个
管道过滤器:前面的执行到部分可以执行下一个
调用返回风格
主程序/子程序(显示调用):程序就是构件,过程调用是连接件
面向对象:构件是对象,连接件是对象之间的交互方式
层次结构:构件是层次结构,连接件是层之间的交互协议
独立构件风格
进程通信:
构件是进程,连接件是消息传递
消息传递方式:点对点,异步同步,远程过程调用
事件驱动系统:
虚拟机凤格
解释器
基于规则的系统
用于人工智能领域和DSS(决策支持)
仓库(数据共享)风格
数据库系统
黑板系统
语言识别,知识推理
超文本系统:
- 属于仓库风格
- 应用于互联网领域
IDE一般采用数据仓库架构风格
其他架构风格
闭环控制
C2体系风格
构件和构件之间不能直接连接,需要通过连接件来连接
构件的顶部连接到连接件的底部
构件的底部连接到连接件的顶部
架构风格汇总(选择题考)
记忆关键词
a,,b
c
引入对象管理层,降低了性能
a
自定义规则
a
连接件绑定
构件之间不能有直接的交互
a
前一个阶段,下一个阶段
d
业务灵活组合
层次架构风格 (案例分析)
选择提主要就是考察上面的那个表,这个层次架构风格不怎么考察
这个层次架构风格主要是在案例分析里面考察
两层C/S架构
表示层 (客户端使用)
数据层 (服务器)
客户端和服务器都存在业务处理
表示层(客户端) ,客户机
数据层(只包含数据存储) ,数据库服务器
功能层(包含数据层和表示层的业务处理功能)专门处理业务逻辑的 ,应用服务器
三层B/S架构
浏览器-服务器模式
浏览器
WEB服务器
数据库服务器
C/S:内部人员,修改
B/S:外部人员,查询
富有互联网应用RIA
本质是基于B/S三层架构
没有客户端
使用互联网传输,现场搭建客户端
结合了B/S架构和C/S架构的优点
类似于微信小程序
MVC架构
案例分析里面常考的
视图和用户交互
控制器是处理用户交互的
模型是数据层(数据读取和业务逻辑处理)
最后的模型直接给视图(用户)返回数据了
MVP架构
prensenter
MVVM架构
ViewModel
面向服务的架构风格
对象
构件
服务
粒度越来越粗
ESB企业服务总线
服务是为了满足业务需求的操作,规则的逻辑组合
实现企业IT资产重用最大化
基于服务的构件和传统构件的区别
- 粗粒度
- 接口是标准的
- 实现与语言无关
- 通过构件容器提供QoS的服务
SOA中的关键技术
功能和协议需要记忆一下
SOA的实现方式
- WEB Service
- 服务注册表
- ESB
c
传递消息:远程调用d
架构复用
软件产品线是面向业务流的
对核心资产进行集成复用
机会复用:没有规划
系统复用:有规划
复用的基本过程:
- 构造/获取可复用的软件资产
- 管理这些资产
- 针对特定的需求,从这些资产中选择可复用的部分
DSSA
特定领域的软件架构:DSSA
重要
- 适用于特定的领域
- 软件构件的集合
垂直域:一个特定领域
水平域:多个特定领域
领域分析
领域设计
领域实现
考察较多
领域专家:懂技术,懂业务
领域分析人员
领域设计人员
领域实现人员
领域专家,领域分析人员:领域模型
领域设计人员:特定领域的软件开发(DSSA)
领域实现人员:开发具体的架构
考察较多
考察较少
前两个是领域分析,
3,4 是领域设计
5 是领域实现
c
c
c
d
b
领域分析:领域模型
领域设计:特定领域软件重用模型
领域实现:开发组织软件重用,实现基础架构
ABSD
重要
基于架构的软件开发
架构驱动
业务,质量,功能需求 驱动架构设计
视角和视图 描述软件架构
用例和质量属性场景 描述需求
- 用例:功能需求
- 质量属性场景:质量需求
考察定义
需求,设计,文档化,复审,实现,演化
架构就是由一个一个的构件和连接件组成
类,构件,架构
架构文档化生成:
架构规格说明
测试架构需求的质量设计说明书
b
c
c
a
软件系统的质量属性
很少考察
开发阶段(开发人员)
运行阶段(用户)
软件架构评估 (重点)
系统架构评估的质量属性:
在上午题考察5分,在案例分析考察5到10分
质量属性的定义
质量属性所包含的子特性
使用什么设计策略达到相关的质量属性
可靠性和可用性优先可用性
后面三个考察较少
质量属性场景
刺激源:主体
刺激:操作
环境:条件
制品:客体
响应:客体对主体刺激的响应
响应度量:
软件架构评估
敏感点:一种特定的质量属性
权衡点:多个质量属性
风险点:可能引起风险的因素
非风险点:可行可接受的
软件架构评估的概念:架构设计之后,系统设计之前(评估所采用的架构是否解决软件系统需求,质量,成本)
系统架构评估方式
调查问卷方式
度量方式
场景方式
场景方式:
- 确定应用领域的功能和软件架构的结构之间的映射
- 体现待评估质量属性的场景
- 分析软件架构对场景的支持程度
刺激:输入
响应:输出
环境:真实的场景
基于场景的评估方法
SAAM
了解就行
ATAM(重要)
ATAM在选择题和案例分析题中经常考察到
右边的文字选择题考察
左边的图像是论文中思路
评估小组
项目决策者
其他项目相关人
场景和需求收集
体系结构视图和场景实现
属性模型构造和分析
折中
属性作为架构评估的核心概念(质量属性):性能,可用性,安全性,可修改性
关于左边的图:
描述和介绍阶段
调查和分析阶段
测试阶段
CBAM
几乎不考
b
d
可靠性,可用性之间优先可用性
c
c
b
a
c
a
c
相关质量属性
d (不属于之前所学习的8个质量属性中的)
a (控制和调试)
d
c
下面的不重要
中间件
中间件
- 分布式系统环境
- 操作系统和应用程序之间的软件
中间件分类:
- 数据库访问中间件
- 远程过程调用RPC
- 面向消息中间件
- 分布式对象中间件
- 事务中间件
J2EE
JAVA
.NET
微软