架构分析
架构(Architecture)分析的过程就是定义系统高层组织结构和核心架构机制的过程,从具体活动上,架构分析主要包含以下四个方面
- 定义系统的备选架构来描述系统的高层组织结构,以用例组织后续的分析模型
- 确定分析机制以记录系统中的通用问题
- 提取系统的关键抽象以揭示系统必须能够处理的核心概念
- 创建用例实现来启动用例分析
备选架构
架构模式定义:“架构模式表示了对软件系统的一个基础结构”
1.备选架构模式
软件类别 |
架构模式 |
特点和用途 |
系统软件 |
层(Layer) |
将系统划分为不同的抽象层次,每个抽象层次封装不同层次关注的问题,以处理系统不同方面的问题 |
管道和过滤器(Pipes and Filters) |
关注系统数据流的处理,数据通过管道流入不同的过滤器,并处理获取最后结果 |
|
黑板(Blackboard) |
面向数据结构的处理策略,系统由中心数据结构和相互独立的处理构件组成,通过构件来操作数据 |
|
分布式软件 |
客户/服务器(Client/Server) |
在传统的客户/服务器模式中,服务器负责监听并响应客户端请求,客户端主动连接到服务器 |
代理人(Broker) |
客户和服务器通过中间代理进行通信,通过代理人协调客户和服务器之间的操作 |
|
点对点(peer to peer) |
各节点之间处于平等地位,可以相互连接;一般有中心节点负责发现和管理节点资源 |
|
交互软件 |
模型-视图-控制器(Model-View-Controller) |
将软件抽象成模型、视图、控制器三类构件,从而能够有效的分离用户逻辑和业务逻辑,以适应需求变化 |
自适应软件 |
反射(Reflection) |
将应用程序分成元层次和基本层次两个部分,元层次提供系统属性的相关信息,而基本层次包括应用程序逻辑,其实现建立在元层次之上,从而可以动态地改变基本层次以满足系统结构和行为的变更 |
微核(Microkernel) |
将最小功能核与扩展功能和特定客户功能分离出来,以提供一个“即插即用”的软件环境,使得用户很容易连接扩展部分并把它们与系统的核心服务集成在一起;主要应用于对不同平台具有高度适应性并能满足客户定制需求的系统 |
2.B-C-E三层架构
在
- 边界类(Boundary Layer)负责系统与参与者之间的交互 即UI界面 Ps:具体来说每一对参与者和用例产生一个边界类
- 控制类(Control Layer)即系统逻辑 Ps:具体来说每一个用例至少产生一个控制类
- 实体类(Entity Layer )是对系统业务中低端实体对象的归纳与抽象 即业务实体 PS:具体来说实体类代表了待开发系统的核心概念模型(使用实体类使数据库建立)
分析机制
1.架构机制
根据所关注的阶段和详细程度不同,共有三类架构机制,即分析机制、实现机制、设计机制
- 分析机制 以与实现无关的方式捕获解决方案的关键部分。它们可能表示行为模式或结构模式,或是同时表示这两者。它们主要用于在分析过程中向设计人员提供简短的表述。分析机制通常源于对一个或多个架构模式或分析模式的实例化
- 设计机制
- 实现机制
eg:
分析机制
设计机制
实现机制
持久性
关系型数据库
JDBC
面向对象数据库
Object Store
分布
远程方法调用
JAVA SE 6 MRI
安全性
RBAC身份认证
C++算法实现
2.确定分析机制
分析机制 |
特 征 |
含 义 |
持久性 |
粒度 |
单个持久对象的大小 |
容量 |
所需存储的持久性对象的个数 |
|
访问频率 |
对对象进行CRUD等操作的频率 |
|
访问机制 |
如何唯一的标识和检索对象 |
|
存储时间 |
对象需要保存的时间 |
|
分布 |
分布机制 |
分布式访问的方式或协议的约束 |
通信方式 |
同步或异步访问 |
|
通信协议 |
消息的大小、浏览控制、缓存等相关通信约束 |
|
安全性 |
安全规则 |
使用何种安全访问规则 |
授权策略 |
CRUD等其他操作权限 |
|
数据粒度 |
数据访问权限的粒度,如包级、类级、属性级 |
|
用户粒度 |
用户权限的定义级别,如单一用户、角色/分组用户 |
|
遗留接口 |
响应时间 |
要求的访问响应时间 |
持续时间 |
每次访问遗留系统的持续时间 |
|
访问机制 |
访问方式或协议 |
|
访问频率 |
访问遗留系统的频率 |