高级软件架构师——软件架构设计
2021-11-24 16:54:36 0 举报
高级软件架构师——软件架构设计
作者其他创作
大纲/内容
软件架构概述<br>
从软件需求分析到软件设计之间的过渡过程成为软件架构
软件架构就是为软件系统提供了一个结构、行为和属性的高级抽象,由构件的描述、构件的相互作用(连接件)、指导构件集成的模式以及这些模式的约束组成。
架构设计概念<br>
软件架构设计包含提出机构模型、产生架构设计和进行设计评审等活动,是一个迭代的过程。架构设计主要关注软件组件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构
构件与对象<br>
构件
定义:构件是一个独立可交付的功能单元,外界通过接口访问其提供的服务。
软件架构建模<br>
结构模型
框架模型
动态模型
过程模型
功能模型
4+1视图<br>
逻辑视图
开发视图
进程视图
物理视图
场景
软件架构风格<br>
数据流风格
调用/返回风格
独立构建风格
虚拟机风格
仓库风格
基本架构风格<br>
闭环控制(过程控制)
C2架构风格
层次架构风格<br>
两层C/S架构
三层C/S架构
三层B/S架构
混合架构风格
富互联网架构RIA
面向服务的架构风格SOA<br>
定义
关键技术
发现服务 UDDI、DISCO
服务描述 WSDL、XML Schema
消息格式层 SOAP、REST
编码格式层 XML(DOM、SAX)
传输协议层 HTTP、TCP/IP 、SMTP
实现方式
WEB Service (服务提供、服务注册、服务调用)
企业服务总线ESB
架构描述语言ADL(Architecture Description Langurage)<br>
定义
构成要素
架构描述语言
特定领域软件架构DSSA(Domain Specific Software Architecture)<br>
定义
基本活动
领域分析
领域设计
领域实现
角色人员
领域专家
领域分析人员
领域设计人员
领域实现人员
建立DSSA的过程
三层次模型
领域开发环境
领域特定的应用开发环境
应用执行环境
基于架构的软件开发ABSD(Architecture-Based Software Design)<br>
定义
开发过程
架构需求
架构设计
架构文档化
架构复审
架构实现
架构优化
质量属性
性能
可靠性
可用性
安全性
可修改性
功能性
可变性
互操作性
软件架构评估<br>
评价内容
敏感点
平衡点
风险点和非风险点
评估方式
基于调查问卷(检查表)的方式
基于度量的方式
基于场景的方式
基于场景的架构分析方法SAAM(Scenario-based Architecture Analysis Method)
架构权衡分析方法ATAM(Architachture Tradeoff Analysis Method)
成本效益分析法CBAM(Cost Benefit Analysis Method)
软件产品线<br>
定义:软件产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足特定场景的特定需求。
过程模型
双生命周期模型
领域工程
应用工程
三生命周期模型
领域工程
应用工程
企业工程
资源管理
建立方式
将现有产品演化为产品线
用软件产品替换现有产品集
全新软件产品的演化
全新软件产品的开发
成功因素
对该领域具备长期和深厚的经验
一个用于构建产品的好的核心资源库
好的产品线架构
好的管理(软件资源、人员组织、过程)支持
中间件技术<br>
定义:中间件是一种独立的软件系统或服务程序,可以帮助分布式应用在不同的技术之间共享资源
中间件种类
远程过程调用RPC
对象请求代理ORB
远程方法调用RMI
面向消息的中间件MON
事件处理监控器TPM
公共对象请求代理体系结构Common ObjectRequest Broker Architecture(CORBA)
实体
加工
会话
服务
典型应用架构J2EE
分布式多层应用程序
JAVA企业应用框架
Struts
Spring
Hibernate
重量级与轻量级之争
典型应用架构.NET
只能使用在macrosoft系统
.NET与J2EE之争
Web架构设计<br>
应用技术分类
Web技术演进
负载均衡技术
读写分类技术
有状态和无技术
CDN
Web架构
MVC
MVP
MVVM
REST
微服务
缓存技术
XML
JSON
Web应用服务器
响应式Web设计
0 条评论
下一页