软件架构设计
2021-02-06 14:38:49 790 举报
AI智能生成
软件架构设计是软件开发过程中的关键步骤,它涉及到如何将复杂的系统分解为可管理的部分,并定义这些部分之间的交互方式。这个过程需要考虑多种因素,包括系统的功能性需求、性能需求、安全性需求、可用性需求等。软件架构设计的目标是创建一个既灵活又稳定的系统结构,以便于未来的扩展和维护。在设计过程中,通常会使用一些常见的架构模式,如分层架构、微服务架构、事件驱动架构等。此外,软件架构设计还需要考虑到技术的选择和组合,以满足系统的需求并保证其可靠性和效率。
作者其他创作
大纲/内容
6、软件架构评估
质量属性
性能
指系统的响应能力,即经过多长时间才能对某个事件做出响应。
设计策略:资源调度、优先队列
可用性
系统能够正常运行的时间比例。经常用两次故障之间的时间长度或
在出现故障时系统能够恢复正常的速度类表示。
在出现故障时系统能够恢复正常的速度类表示。
设计策略:冗余、心跳
可靠性
可修改性
指能够快速地以较高的性能价格对系统进行变更的能力。
设计策略:信息隐藏、接口实现隔离
安全性
指系统在向合法用户提供服务的同时能够
阻止非授权用户使用的企图或拒绝服务的能力。
阻止非授权用户使用的企图或拒绝服务的能力。
设计策略:追踪审计
评估方式
重要概念
风险点
指架构设计中潜在的、存在问题的架构决策所带来的隐患。
敏感点
为实现某种特定的质量属性,一个或多个构件所具有的特性。
权衡点
影响多个质量属性的特性,是多个质量属性的敏感点。
评估方法:基于场景的方式
软件架构分析法SAAM
形成场景
描述架构
对场景的分类和确定优先级
对场景进行单个评估
评估场景的相互作用
形成总体评价
架构权衡分析法ATAM
场景和需求收集
描述和介绍阶段
架构视图和场景实现
调查和分析阶段
属性模型分析和构造
测试阶段
属性模型折中
报告阶段
7、产品线
模型
双生命周期模型
现有系统需求
领域分析
领域设计
领域实现
新系统需求
需求分析
系统设计
系统实现
SEI模型
领域工程
应用工程
三生命周期模型
企业工程
领域工程
应用工程
建立方式
演化方式
逐步演化
减少风险
增入较大
革命方式
直接替换
风险较大
增入较少
成功因素
对该领域具备长期和深厚的经验
一个用于构建产品的好的核心资源库
好的产品线架构
好的管理支持
8、构件与中间技术
构件与对象概念
构件
独立部署单元
作为第三方的组装单元
没有可见状态
对象
一个实例单元,具有唯一的标志。
封装了自己的状态和行为
可能具有状态,此状态外部可见。
构件复用
检索与提取构件
理解与评价构件
修改构件
组装构件
基于功能的组装技术
基于数据的组装技术
面向对象的组装技术
组装失配
由构件引起的失配
由连接子引起的失配
由于系统成分对全局
体系结构的假设存在
冲突引起的失配等。
体系结构的假设存在
冲突引起的失配等。
中间件优点
面向需求:精力于业务逻辑本身
接口与实现隔离:构件对外发生作用或构件间的交豆,都是通过接口进行的 ,构件使用
者只需要知道构件的接口,而不必关心其内部实现,这是设计与实现分离的关键。
者只需要知道构件的接口,而不必关心其内部实现,这是设计与实现分离的关键。
业务的分隔和包容性:可按照不同的业务进行功能划分
设计与实现隔离
软件复用
负责连接和通信,高效通信机制
提供互操作机制
屏蔽差异
中间件技术Corba
伺服对象Servant:Corba的真正实现,负责完成客户端请求
对象适配器POA:用于屏蔽ORB内核的实现细节,为服务器对象的实现者提供抽象接口
对象请求代理ORB:负责在分布式环境中透明地收发请求和响应
9、Web架构设计
架构
MVC、MVP、MVVM、REST、Webservice、微服务
缓存
Redis、MemCache、Squid
并发分流
集群、CDN
数据库
主从复制、内存数据库、反规范化技术、NoSQL、分库分表
持久化
Mybatis、Hibernate
分布存储
Hadoop、FastDFS、区块链
1、软件架构的概念
软件架构风格是描述一特定应用领域中
系统组织方式的惯用模式。架构风格定义
一个系统家族,即一个体系结构定义一个
词汇表和一组约束。词汇表中包含一些
构件和连接件类型,而这组约束指出系统
是如何将这些构件和连接件组合起来的。
系统组织方式的惯用模式。架构风格定义
一个系统家族,即一个体系结构定义一个
词汇表和一组约束。词汇表中包含一些
构件和连接件类型,而这组约束指出系统
是如何将这些构件和连接件组合起来的。
软件架构的作用
是项目关系人进行交流的手段
是早期设计决策的体现
是可传递和可重用的模型
对开发的指导和规范化意义不容忽略
软件架构建模
结构建模
框架建模
动态建模
过程建模
功能建模
软件架构建模(类UML)
逻辑视图
最终用户:功能需求
UML:逻辑视图
开发视图
编程人员:软件管理
UML:实现视图
进程视图
系统集成人员:性能,可扩充性,吞吐量
UML:进程视图
物理视图
系统工程人员:安装,通信
UML:部署视图
场景
UML:用例视图
2、软件架构风格
架构设计的一个核心问题是能否达到架构级的软
件复用。
件复用。
架构风格反映了领域中众多系统所共有的结构和
语义特性,并指导如何将各个构件有效地组织成
一个完整的系统。
语义特性,并指导如何将各个构件有效地组织成
一个完整的系统。
5大类
数据流风格
批处理序列
管道-过滤器
调用/返回风格
主程序/子程序
面向对象
层次结构
独立构件
进程通信
事件驱动系统(隐式调用)
虚拟机风格
解释器
基于规则的系统
仓库风格
数据库系统
黑板系统
超文本系统
3、架构描述语言ADL
三个基本元素
构件
连接件
架构配置
4、特定领域软件架构DSSA
基本活动
领域分析
目的:建立领域模型
领域设计
目的:获取DSSA
领域实现
目的:开发和组织可复用信息
领域分析人员
领域专家
提供领域中系统的需求规约和实现的知识
领域分析人员
领域设计人员
领域实现人员
三层次模型
领域开发环境
领域架构师
领域特定的应用开发环境
应用工程师
应用执行环境
操作员
5、基于架构的软件开发方法ABSD
是架构驱动的,强调由业务、质量和功能需求组合的架构设计
ABSD方法是递归的,且迭代的每一个步骤都是清晰地定义的
三个基础
功能分解
选择架构风格实现质量和业务需求
软件模板的使用
开发过程
架构需求
需求获取
标识构件
生成类图
对类进行分组
把类打包成构件
需求评审
架构设计
提出架构模型
将标识的构件映射到模型中
分析构件的相互作用
生成软件架构
设计评审
架构文档化
架构复审
架构实现
分析与设计
构件实现
构件组装
系统测试
架构演化
需求变化归类
制定演化计划
构件变动
更新构件的相互作用
构件组装与测试
技术评审
0 条评论
下一页