软件架构设计
2025-08-23 17:04:22 1 举报
AI智能生成
核心内容:本软件架构设计采用微服务架构模式,以模块化的方式将复杂的应用分解为一组小型、独立的服务,每个服务负责一个特定功能。这种设计强调服务之间的松耦合,每个服务可以使用不同的编程语言和数据库技术独立开发和部署。 文件类型:软件架构设计文档(SAD)通常采用文本格式,如Microsoft Word (.docx) 或 Adobe PDF (.pdf) 文件类型,确保内容的可读性和通用性。 修饰语:详尽的、模块化的、高度集成的、可扩展的、企业级的。这些词汇准确地传达了本架构设计的特性,强调了其专业性和适用范围,同时为未来功能的增加和维护提供了灵活性。
作者其他创作
大纲/内容
ABSD<br>Architecture-Based Software Design<br>基于体系结构(架构)的软件分析方法<br>
介绍
ABSD 是一个 <b>自顶向下</b>,递归细化的软件开发方法,软件系统的体系结构通过该方法得到细化,<br>直到能产生软件 <b>构件和类</b>
使用 <b>视角和视图</b> 描述软件<b>架构</b><br>
<b>用例和质量场景</b> 描述 <b>需求</b><br>
强调:<b>商业</b>、<b>质量</b>和<b>功能需求</b><br>
体系结构需求获取
系统的质量目标
系统的商业目标
开发人员的商业目标<br>
3个基础
功能的分解
质量和商业需求
通过选择<b>体系结构风格</b>来实现质量和商业需求<br>
关键字:<b>架构风格</b>
软件模板的使用<br>
6 个主要活动<br>ABSDM<br>6个过程
体系结构需求<br>
架构设计<br>
文档化
输出
体系结构<b>规格</b>说明书
<b>质量</b>设计说明书
从<b>使用者</b>的角度进行编写
架构复审
目的:早期发现设计中的缺陷和错误<br>
复审人员:外部人员(用户代表和领域专家)
架构实现
以文档化的<b>体系结构规格说明书</b>为基础
演化
DSSA<br>Domain Specific Software Architecture<br>特定领域软件架构<br>
介绍
以一个特定问题领域为对象,形成由<b>领域参考模型</b>、<b>参考需求</b>、<b>参考架构 </b>等组成的开发基础架构
3个基本活动
领域分析
目的: 获得领域模型、领域需求<br>
领域设计
目的:获取 DSSA
领域实现
目的:实现软件架构
3个层次<br>
领域开发环境
领域架构师<br>
领域特定应用开发环境<br>
应用工程师<br>
应用执行环境<br>
操作员
4个角色
领域专家
提供有关领域中<b>系统需求规格</b>和实现知识,维护领域字典和复审领域模型和 DSSA 等<br>
领域分析师
负责整个<b>领域分析</b>过程控制以及将<b>从领域专家处获得的知识组织到领域模型</b>中
领域设计人员
根据领域模型和现有系统开发出 DSSA 以及建立领域模型和 DSSA 之间的联系<br><b>输出:DSSA</b>
领域实现人员
根据领域模型和DSSA进行软件实现以及对可重用构件进行验证
ATAM<br>Architecture Tradeoff Analysis Method<br>架构权衡分析方法<br><b>架构评估</b><br>
介绍
架构权衡分析方法主要针对系统开发之前对<b>质量属性</b>进行<b>评价</b>和<b>折中</b>
<b>属性</b> 作为架构评估的<b>核心概念</b>
4个质量属性<br>
可用性
可修改性
性能
安全性
4个阶段(步骤)<br>
场景、需求收集
<span style="font-weight:normal;">架构</span>视图<span style="font-weight:normal;">描述和</span>场景实现<br>
属性模型构造和分析<br>
架构决策、<b>折中</b><br>
质量属性
采用<b>效用树</b>对质量属性进行<b>刻画与排序</b><br>
效用树结构:树根、质量属性、属性分类,质量属性场景<br>
架构评估<br>4个关键点
风险点
有隐患,有可能导致一些问题,则为风险点
非风险点
某件事是可行的、可接受的,则为非风险点
敏感点
敏感点是一个或多个构件的特性<br>
权衡点
权衡点是影响多个质量属性的特性,是多个质量属性的敏感点
架构评估
质量属性
可修改性
可维护性、可扩展性、结构重构和可移植性<br>
易用性
开发期
易理解
可扩展
可重用
可测试性
可维护
可移植
运行期
性能
策略
资源调度
安全性
策略
追踪审计
检测攻击
互操作性
可用性
策略
主动冗余
心跳
Ping/Echo
可靠性
从系统开始运行到某个时刻,这个时间段内正常运行的概率
鲁棒性
容错性、健壮性
指系统在不确定性和干扰下保持性能的能力
信息隐蔽
通过信息隐蔽可以提高软件的<b>可修改性</b>、<b>可测试性</b>和<b>可移植性</b>,它也是现代软件设计的一个关键性原则
质量属性场景
场景是从 <b>风险承担者 </b>的角度对与系统交互的描述,一般采用 <b>刺激、环境、响应</b> 三方面来对场景进行描述<br>
使用<b>质量属性场景 </b>描述质量属性
分类
刺激源<br>
某个生成该刺激的实体(人、计算机系统或者任何其他刺激器)<br>
刺激<br>
该刺激是当刺激到达系统时需要考虑的条件<br>
环境
该刺激在某些条件内发生。当激励发生时,系统可能处于过载、运行或者其他情况<br>
制品
刺激的对象。这可能是整个系统,也可能是系统的一部分。
响应
该响应是在激励到达后所采取的行动
响应度量
当响应发生时,应当能够以某种方式对其进行度量,以对需求进行测试
可靠性
MTTR
平均故障修理时间<br>
MTTF
平均无故障时间<br>
MTBF
故障间隔时间
SAAM<br>基于场景的架构分析方法<br><b>架构评估</b><br>
介绍
SAAM 的主要输入问题是<b>问题描述</b>、<b>需求声明</b>和<b>体系结构描述</b><br>
5个步骤
场景开发
体系结构描述
单个场景评估
场景交互
总体评估
4+1 视图<br><b>架构建模</b><br>
多视图指从不同<b>角度和视角</b>描述系统体系结构,以获得多个视图,并将其组合在一起以描述整体模型。<br>多视图反映了<b>关注点分离</b>的思想,每个视图只关注系统的一个侧面
版本1
逻辑视图
记录设计元素的功能和概念接口,设计元素的功能定义了它本身在系统中的角色,这些角色包括功能、性能等
进程(过程)视图
开发视图
物理视图
统一场景(场景视图)
ps
部署视图-对应 物理视图。还有一个 配置视图,假如出现视角之类的,选择配置视图<br>
版本2
逻辑视图
进程(过程)视图<br>
实现视图
部署视图
用例视图
<b>软件架构风格</b><br>
介绍
描述某一特定领域中的系统组织方式和惯用模式,反映了领域中众多系统所共有的 <b>结构和语义</b> 特征
定义了一个<b>词汇表</b>和一组<b>约束</b>,包含<b>构件和连接件</b>类型
<b>研究和实践</b>软件体系结构风格可以促进<b>设计</b>的重用
分类
数据流
关键字:一步一步执行,上个流程的输出是下个流程的输入
子风格
批处理
<b>关键字:整体</b>
管道-过滤
开发环境
调用/返回风格<br>
子风格
主程序、子程序
面向对象
层次结构<br>
物联网
3层
感知层
负责识别物体、采集信息<br>
网络层
负责传递和处理信息<br>
应用层
解决信息处理与人机交互问题
二层及三层 C/S 架构
3层
表示层
关键字:用户、交互
应用程序层(功能层)<br>
关键字:业务处理<br>
数据层
关键字:对<b>数据库</b>数据的<b>读写</b>
独立构件
子风格
进程通讯
事件驱动(隐式调用)<br>
新闻、关注、推送
虚拟机
关键字:用户自定义
子风格
规则系统
包括规则集、规则解释器、规则/数据选择器、工作内存<br>
解释器
关键字:<b>灵活组合</b>
仓库、数据中心
子风格
数据库系统
关键字:数据库、大量数据
黑板系统
关键字:语音识别、知识推理、求解过程不确定<br>
超文本系统
两种构件
中央数据结构
说明当前数据的状态
独立构件
在中央数据存储上执行<br>
C2
关键字:并行构件
C2 是一种并行构件网络,通过连接件按照一组规则绑定在一起。系统中的构件和连接件都有一个顶部和一个底部,构件的顶部应连接到某连接件的底部,构件的底部则应连接到某连接件的顶部
0 条评论
下一页