当前位置: 首页 > ai >正文

【系统架构设计(15)】软件架构设计一:软件架构概念与基于架构的软件开发

文章目录

    • 一、核心思想
    • 二、软件架构概念:系统设计的高级抽象
    • 三、软件架构设计与生命周期:架构在开发流程中的演进
    • 四、架构描述语言ADL:架构的标准化表达
    • 五、4+1视图:多角度的架构展现
    • 六、基于架构的软件开发概念:架构驱动的开发理念:ABSD
    • 七、基于架构的软件开发过程:从需求到实现的完整流程
      • ABSD开发过程的整体特征
      • 架构需求过程:从需求到构件的转换
      • 架构设计过程:构建系统蓝图
      • 架构实现过程:从设计到可运行系统
      • 架构演化过程:适应变化的持续改进
      • ABSD方法的核心价值

一、核心思想

软件架构是对复杂软件系统的高级抽象,它通过结构化的方式定义系统的组件、关系和约束;而基于架构的软件开发则是将这种抽象设计转化为可执行软件的系统化方法。

这就像建造一座摩天大楼:

  • 软件架构是建筑设计图纸,定义了楼层结构、功能分区和基础设施布局;
  • 架构描述语言是绘制图纸的标准规范;
  • 4+1视图是从不同专业角度(结构工程师、电气工程师、装修设计师等)审视同一栋建筑;
  • 而基于架构的软件开发则是按图施工的完整流程,从地基挖掘到装修交付的全过程管理。

为什么这个体系如此重要?

  1. 软件系统的复杂性已经超出了人类直接理解和管理的能力。架构提供了必要的抽象层次,让我们能够在宏观层面把握系统全貌,同时为不同角色提供了有效的沟通语言。
  2. 这个体系建立了从需求到实现的可追溯链条:需求分析确定"要做什么",软件架构回答"怎样组织",详细设计解决"如何实现"。没有这个中间层,复杂系统的开发将陷入混乱。

 

二、软件架构概念:系统设计的高级抽象

软件架构的概念包括架构的本质、作用和在软件开发中的桥梁位置,是理解整个架构体系的基础。
在这里插入图片描述

概念要素定义与特点应用场景重要性说明
高级抽象对系统结构、行为、属性的高层概括
不涉及具体实现细节
微服务架构抽象出服务边界
分层架构定义层次职责
提供宏观视角
降低理解复杂度
惯用模式与约束特定领域的常用架构风格
定义专业术语和协作规则
互联网应用的微服务模式
企业应用的分层模式
提供设计指导
确保架构一致性
交流手段不同角色基于架构进行沟通
理解系统整体设计
开发、测试、业务团队协作
技术方案评审
统一认知基础
提高沟通效率
可传递复用模型架构可在项目间传递复用
支持质量预估和问题发现
电商平台架构复用
金融系统架构模板
降低设计成本
提升系统质量
桥梁作用连接需求分析与软件设计
实现需求到组件的分配
将用户需求分配到具体组件
确定组件职责和协作关系
填补设计鸿沟
确保需求可追溯

在这里插入图片描述

 

三、软件架构设计与生命周期:架构在开发流程中的演进

软件架构设计贯穿整个软件生命周期,从需求分析到后开发阶段都发挥着关键作用。
在这里插入图片描述

生命周期阶段核心任务关键方法与工具与架构的关系
需求分析阶段需求模型到架构模型的转换
确保转换过程可追溯
需求建模技术
可追溯性矩阵
架构设计的输入基础
确保需求完整覆盖
设计阶段使用ADL和4+1视图描述架构
从多视角展现架构设计
架构描述语言(ADL)
4+1视图方法
架构研究的核心阶段
产生正式架构文档
实现阶段依据架构进行代码编写
将设计转化为可运行代码
编程语言和框架
代码生成工具
架构设计的具体落地
验证架构可行性
构件组装阶段在高层次组装已有构件
提高开发效率
构件库管理
集成测试工具
体现架构组合特性
实现架构复用
部署阶段架构提供部署指导
确定系统在硬件环境中的部署
容器化技术
自动化部署工具
架构的物理实现
保障系统稳定运行
后开发阶段动态架构调整
架构恢复与重建
架构演化工具
重构技术
支持架构持续改进
适应需求变化

 

四、架构描述语言ADL:架构的标准化表达

架构描述语言为软件架构提供形式化的描述方法,确保架构设计的精确性和一致性。
在这里插入图片描述

ADL类型核心特点适用场景基本元素
C2SADL基于组件和消息
聚焦消息传递交互
事件驱动系统
消息中间件架构
构件:计算或数据存储单元
连接件:构件交互建模
Wright适用分布、并发系统
关注并发执行逻辑
分布式系统
高并发应用
架构配置:构件连接关系图
ACME架构互换语言
强调转换和互操作性
架构集成项目
多系统协作
支持架构复用和集成
UniCon基于组件和连接
注重连接关系建模
传统企业应用
模块化系统
清晰展现架构拓扑结构
Rapide基于事件驱动
关注事件触发响应机制
实时系统
响应式应用
以事件为核心的架构描述

 

五、4+1视图:多角度的架构展现

4+1视图方法从不同涉众的关注角度全面展现软件架构,确保架构设计满足各方需求。
在这里插入图片描述

视图类型关注者核心关注点描述内容
逻辑视图最终用户功能需求实现
系统逻辑结构
类与对象层面的系统结构
功能实现方式
实现/开发视图程序员配置装配
代码组织结构
代码组织和模块划分
编码和集成依据
进程视图系统集成人员性能、可伸缩性
并发处理能力
运行时进程交互
资源分配方案
部署/物理视图系统工程人员发布安装
物理拓扑结构
物理环境部署方式
系统部署实施指导
用例视图/场景分析人员、测试人员用例场景
用户交互方式
系统功能和交互场景
需求分析和测试依据

 

六、基于架构的软件开发概念:架构驱动的开发理念:ABSD

基于架构的软件开发(ABSD)强调架构在软件开发中的核心驱动作用,建立了系统化的开发方法。

在这里插入图片描述

核心概念定义与特点实施方法价值体现
架构驱动理念架构由业务、质量、功能需求共同驱动
兼顾多维度需求
需求分析时同时考虑
业务目标和质量属性
确保架构满足
全面的系统需求
三个基础
功能分解运用模块内聚和耦合技术
高内聚低耦合设计
模块化设计原则
接口标准化
提高系统灵活性
和可扩展性
架构风格选择根据需求选择合适架构风格
满足质量和业务需求
分层架构、微服务架构
等风格的合理选择
架构与需求的
最佳匹配
软件模板使用提供通用架构框架
保证架构一致性
开源框架模板
企业架构标准
提高开发效率
保障质量一致性
视角与视图
多视角需求捕获功能需求用用例捕获
质量需求用场景捕获
用例建模
质量场景设计
全面准确捕获
各类系统需求

 

七、基于架构的软件开发过程:从需求到实现的完整流程

ABSD开发过程的整体特征

自顶向下的递归细化方法:ABSD方法采用自顶向下、逐步细化的开发策略,从高层架构逐步深入到具体的软件构件和类。这种方法能很好地支持软件重用,通过架构模板和构件库的使用,显著提高开发效率和软件质量。

迭代与反馈机制:整个开发过程具有强烈的迭代特征,每个阶段都包含评审环节(0:N或0:M表示可能的多次迭代),确保质量控制和持续改进。

在这里插入图片描述

开发阶段核心活动关键输出质量保障
架构需求需求获取、类图生成
构件打包、需求评审
构件化的需求模型
需求评审报告
多次需求评审(0:N)
确保需求完整性
架构设计提出架构模型、构件映射
分析构件交互、产生架构
完整软件架构
构件交互模型
多次设计评审(0:M)
保证架构质量
架构文档化记录架构设计成果
形成多份文档
架构设计文档
构件规格说明
文档标准化
便于团队协作
架构实现构件实现、构件组装
系统测试
可运行软件系统
测试报告
全面系统测试
验证架构设计
架构演化需求变化归类、演化计划
构件变动、技术评审
演化后的架构
更新的构件库
多次技术评审(0:N)
适应需求变化

 

架构需求过程:从需求到构件的转换

在这里插入图片描述

需求分析的系统化方法:

  1. 需求获取:从需求库中收集各类需求,需求库的存在体现了知识积累和复用的重要性
  2. 生成类图:将需求转化为面向对象的类图表示,建立系统的静态结构模型
  3. 对类进行分组:根据功能相关性将类进行逻辑分组,为后续构件化奠定基础
  4. 把类打包成构件:将分组后的类封装成可独立部署和复用的构件
  5. 需求评审:通过0:N次评审确保需求的完整性和准确性

核心价值:这个过程实现了从抽象需求到具体构件的可追溯转换,为后续的架构设计提供了结构化的输入。

 

架构设计过程:构建系统蓝图

架构设计过程,体现了系统化的设计方法:

  1. 提出架构模型:基于需求分析结果,选择合适的架构风格和基本框架
  2. 映射构件:将需求阶段产生的构件映射到架构模型中,确定构件在系统中的位置
  3. 分析构件相互作用:研究构件间的交互方式、依赖关系和协作机制
  4. 产生架构:综合以上步骤,形成完整的软件架构设计
  5. 设计评审:通过0:M次评审保证架构的合理性和可行性

关键特点:设计过程强调构件间关系的分析,这是ABSD方法区别于传统开发方法的重要特征。

 

架构实现过程:从设计到可运行系统

在这里插入图片描述

设计到实现的转化:

  1. 分析与设计:基于复审后的架构文档进行详细分析,可以利用构件库中的已有构件
  2. 构件实现:编写代码实现各个构件的具体功能
  3. 构件组装:将实现的构件按照架构设计进行组装,构件库在此阶段发挥重要作用
  4. 系统测试:对组装后的系统进行全面测试,验证架构设计的正确性

构件库的作用:构件库贯穿整个实现过程,体现了软件重用的核心思想,提高了开发效率并保证了质量一致性。

 

架构演化过程:适应变化的持续改进

架构演化过程,体现了系统的可持续发展:

  1. 需求变化归类:对变更需求进行分类分析,明确变化的性质和影响范围
  2. 架构演化计划:制定有序的演化策略,规划演化步骤和资源配置
  3. 构件变动:从构件库获取或修改相关构件,实现架构调整
  4. 更新构件相互作用:调整构件变动后的交互关系,维护系统完整性
  5. 构件组装与测试:重新组装并测试,验证演化效果
  6. 技术评审:通过0:N次技术评审确保演化质量

演化特点:演化过程形成闭环,演化后的架构可以继续适应新的需求变化,体现了ABSD方法的可持续性。

 

ABSD方法的核心价值

通过这三个阶段的有机结合,ABSD方法实现了:

  1. 系统化的开发流程:从需求到实现再到演化的完整链条
  2. 强大的复用能力:需求库和构件库支撑的多层次复用
  3. 质量保障机制:多次评审确保每个阶段的质量
  4. 持续改进能力:演化过程支持系统的长期发展

这种方法特别适合大型、复杂的软件系统开发,通过架构驱动的方式确保了开发过程的可控性和最终产品的高质量。

http://www.xdnf.cn/news/19858.html

相关文章:

  • PDF Reader 编辑阅读工具(Mac中文)
  • Linux 常用命令全解析:从入门到实战的必备指南
  • TypeScript 增强功能大纲 (相对于 ECMAScript)
  • 如何轻松地将联系人从 Mac 同步到 iPhone
  • SQLmap 完整使用指南:环境搭建 + 命令详解 + 实操案例
  • SQL Server服务管理
  • 处理省市区excel数据加工成SQL
  • 常用的几种测试工具:selenium,jmeter,jenkins
  • 【IO】进程间通信(IPC)练习
  • Unity 的游戏循环机制
  • 66车载诊断架构 --- 从架构系统角度怎么确保整车DTC的完整性?
  • (二)文件管理-基础命令-pwd命令的使用
  • 计算机视觉(六):腐蚀操作
  • 电脑城老板不会告诉你的装机秘籍:建造者模式让你的代码高配起飞!
  • 基于深度学习的医疗器械生产备案凭证识别技术,实现从图像到结构化数据的智能转化
  • pytorch初级
  • 八、算法设计与分析
  • 新后端漏洞(上)- Python unpickle 造成任意命令执行漏洞
  • 惠普HP Color LaserJet Pro MFP M277dw打印有横条维修案例1
  • RoPE位置编码缩放因子的最优解:频率维度与位置敏感度的精妙权衡
  • SpringBoot项目package报错 PKIX path building failed 终极解决方案:Nexus私服证书导入JDK证书库
  • C++对象构造与析构
  • 2.插值法
  • Spring Boot 实现数据库表变更监听的 Redis 消息队列方案
  • 技术方案之Mysql部署架构
  • uni app 的app 端调用tts 进行文字转语音
  • GDAL 下载安装
  • C题目训练【三连击】
  • Vue3 + Ant Design Vue 实现多选下拉组件(支持分组、搜索与标签省略)
  • Ollama大模型 本地部署+使用教程