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