目录
(1)数据流风格
软件架构重要考点
*软件架构的概念(***)
*软件架构风格(*****)
*架构描述语言ADL(***)
*特定领域软件架构(***)
*基于架构的软件开发(****)
*软件质量属性(*****)
*软件架构评估(*****)
*软件产品线(***)
*构件与中间件技术(****)
*Web架构设计(*****)
一、软件架构的概念
二、软件架构风格
(1)数据流风格
批处理序列
管道-过滤器
早期编译器就是采用的这种架构。要一步一处理的,均可考虑采用此架构风格
(2)调用/返回风格
主程序/子程序
面向对象
层次结构
(3)独立构件风格
进程通信
事件驱动系统(隐式调用)
(4)虚拟机风格
解释器
基于规则的系统
(5)仓库风格
数据库系统
黑板系统
超文本系统
现代集成编译环境一般采用这个这种架构风格
上面说的五种风格是主要的,后面的架构风格也要求掌握
(1)闭环控制架构(过程控制)
(2)C2风格
(3)层次架构风格
MVC架构风格
MVP架构风格
MVVM风格
(4)富互联网应用(RIA)
(5)基于服务的架构(SOA)
SOA的实现方式——Web Service
SOA的实现方式——ESB
(6)微服务架构
微服务和SOA区别
微服务 | SOA |
---|---|
能拆分就拆分 | 是整体的,服务能放在一起就都放在一起 |
纵向业务拆分 | 是水平分多层 |
由单一组织负责 | 按层级划分不同部门的组织负责 |
细粒度 | 粗粒度 |
两句话可以解释明白 | 几百字只相当于SOA的目录 |
独立的子公司 | 类似大公司里面划分了一些业务单元 |
组件小 | 存在较复杂的组件 |
业务逻辑存在于每一个服务中 | 业务逻辑横跨多个业务领域 |
使用轻量级的通信方式,如HTTP | 企业服务总线(ESB)充当了服务之间通信的角色 |
(7)MDA风格
三、架构描述语言(ADL)
四、特定领域软件架构(DSSA)
DSSA——三层次模型
四、基于架构的软件开发
基于架构的软件开发方法——基于架构的软件设计(ABSD)
基于架构的软件开发方法——开发过程
五、质量属性
六、软件架构评估
软件架构评估——基于场景的方式
七、软件产品线
软件产品线的建立方式
演化方式 | 革命方式 | |
---|---|---|
基于现有产品 | 基于现有产品架构设计产品线的架构,经演化现有构件,开发产品线构件(将现有产品演化为产品线) | 核心资源的开发基于现有产品集的需求和可预测的,将来需求的超集(用软件产品线替代现有产品集) |
全新产品线 | 产品线核心资源随产品新成员的需求而演化(全新软件产品线的演化) | 开发满足所有预期产品线成员的需求的核心资源(全新软件产品线的开发) |
软件产品线——组织结构
八、构件与中间件技术
构件
构件的复用
中间件技术
具体的中间件技术
Corba(公共对象请求代理体系结构)
九、Web架构设计
从架构来看 | MVC,MVP,MVVM,REST,Webservice,微服务,中台 |
从缓存来看 | MemCache,Redis,Squid |
从并发分流来看 | 集群(负载均衡),CDN |
从数据库来看 | 主从库(主从复制),内存数据库,反规范化技术,NoSQL,分区(分表)技术,视图与物化视图 |
从持久化来看 | Hibernatr,Mybatis |
从分布存出来看 | Hadoop,FastDFS,区块链 |
从数据编码来看 | XML,JSON |
从Web应用服务器来看 | Apache,,WebService,WebLogic,Tomcat,JBOSS。 |
其他 | 静态化,有状态与无状态,响应式Web设计 |