软件架构设计概述

article/2025/9/18 18:29:55

1、软件架构设计

软件架构的研究内容主要涉及软件架构描述软件架构设计、软件架构风格、软件架构评价软件架构的形成方法等。

软件架构设计解决好软件的设计、复用、质量和维护等方面的实际问题;解决各类关键的重复问题的通用方案(复用性),以及系统设计中影响深远(架构敏感)的各项重要决策(一旦贯彻,更改的代价昂贵)。

在较高层面上实现软件复用。软件架构作为系统的抽象模型,可以在多个系统间传递(复用),特别是比较容易地应用到具有相似质量属性和功能需求的系统中。 产品线的架构是开发组织的核心资产之一,利用架构及其范例进行多系统的开发,在开发时间、成本、生产率和产品质量方面具有极大的回报。基于架构的开发强调对各元素的组合或装配。

基于架构的软件开发模型则明确地把整个软件过程划分为架构需求、设计、文档化、评审(评估)、实现、演化等 6 个子过程。

1.1、架构模型

软件架构归纳成 5 种模型:结构模型、框架模型、动态模型、过程模型和功能模型

(1)结构模型。这是一个最直观、最普遍的建模方法。这种方法以架构的构件、连接件和其他概念来刻画结构,并力图通过结构来反映系统的重要语义内容,包括系统的配置、约束、隐含的假设条件、风格、性质。研究结构模型的核心是架构描述语言。

(2)框架模型。框架模型与结构模型类似,但它不太侧重描述结构的细节而更侧重于整体的结构。框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构

(3)动态模型。动态模型是对结构或框架模型的补充,研究系统“大颗粒”的行为性质。例如,描述系统的重新配置或演化。动态可能指系统总体结构的配置、建立或拆除通信通道或计算的过程。

(4)过程模型。过程模型研究构造系统的步骤和过程。因而结构是遵循某些过程脚本的结果。

(5)功能模型。该模型认为架构由一组功能构件按层次组成,且下层向上层提供服务。它可以看作是一种特殊的框架模型 。

1.2、“4+1”的视图模型

5 个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。

(1)逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。

(2)开发视图:也称为模块视图,主要侧重于软件模块的组织和管理。 提供给开发人员,应用于软件管理;

(3)进程视图:侧重于系统的运行特性,主要关注一些非功能性的需求,例如系统的性能和可用性。进程视图强调并发性、分布性、系统集成性和容错能力,以及逻辑视图中的主要抽象的进程结构。它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。进程视图可以描述成多层抽象,每个级别分别关注不同的方面。

(4)物理视图:主要考虑如何把软件映射到硬件上,它通常要考虑到解决系统拓扑结构、系统安装、通信等问题。

(5)场景:可以看作是那些重要系统活动的抽象,它使四个视图有机地联系起来,从某种意义上说,场景是最重要的需求抽象。

 

逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。

对于实时控制系统来说,则比较注重于从进程视图和物理视图来描述系统。


http://chatgpt.dhexx.cn/article/KLohrL8C.shtml

相关文章

软件设计师-5.软件工程基础知识

5.1 软件工程概述 5.1.1 软件生存周期 软件:包含程序、数据及相关文档。 软件工程:涉及到软件开发、维护、管理等多方面的原理、工具与环境。最终的目的是开发高质量的软件。 目的:提高软件生产率、提高软件质量、降低软件成本。 声明周…

软件设计文档示例模板 - 学习/实践

1.应用场景 主要用于学习,以及书写软件设计文档。 2.学习/操作 1.文档阅读 加餐 | 软件设计文档示例模板-极客时间 2.整理输出 在第9篇文章中,我讲了每种UML模型图的画法,以及这些画法分别适用于什么样的设计阶段,我们也可以将…

来给你的CSDN博客换个皮肤~

进入CDSN官网,登录自己的账号,点击内容管理。 进入首页,选择博客设置 进入页面后,可修改博客标题、添加博客描述、修改博客皮肤,还可以修改默认编辑器。 来呀,一起换皮肤啊~

cdsn怎么查看我的关注(我关注过谁)

登录后点开链接 https://my.csdn.net/my/follow 如下图:

CDPN解读

关于6-DoF的一些基础的知识点请看上一篇博客。 Related work 从RGB图像中识别6-DoF的方法分为直接法和间接法。 1. 间接法 即不是直接的从RGB图像中恢复出6-DoF的信息,而是现在2维RGB图像和它的3维的模型上建立点到点的对应关系,然后通过数学的方法将…

2023年7月江苏/北京/深圳CDGA/CDGP数据治理认证招生

DAMA认证为数据管理专业人士提供职业目标晋升规划,彰显了职业发展里程碑及发展阶梯定义,帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力,促进开展工作实践应用及实际问题解决,形成企业所需的新数字经济下的核心职业…

CDSN发文章

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

CDC-ECM 和 RNDIS

HomeCategoriesTagsAboutFeed CDC-ECM 和 RNDIS Category: network Tags: network linux wifi ###1. USB-CDC USB协议中的的CDC类是USB通信设备类 (Communication Device Class) 的简称, CDC类是USB组织定义的一类专门给各种通信设备(电信通信设备和中…

CDC

CDC CDC(clock domain crossing) 思维导图: 跨时钟域处理方法总结如下: 1、有关系的时钟之间传单bit数据,理论上只需要源数据保持足够长的时间(clk2的两个周期)即可; 2、无关系的时钟之间传单bit数据,必须要使用同步器; 3、不管有无关系的时钟进行单bit传输,脉冲同…

2023年3月全国DAMA-CDGA/CDGP数据治理认证招生简章

弘博创新是DAMA中国授权的数据治理人才培养基地,贴合市场需求定制教学体系,采用行业资深名师授课,理论与实践案例相结合,快速全面提升个人/企业数据治理专业知识与实践经验,通过考试还能获得数据专业领域证书。 DAMA认…

cdsn的code使用方法

今天无意间发现了csdn的code,刚好前两天因为校园网对github的限制苦恼,这下来了精神,迫不及待的尝试了一下! 网上搜了很多使用方法,在这里做个总结,感谢网上的各位贴友。 code感觉就是github的大陆版,各种功能都蛮像的,希望是一个经得起考验的版本控制器。 下面是方…

CDSN格式

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

CDSN使用教程

欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持&#x…

Mysql中去重的语法_MySQL去重distinct

去重 在MySQL中需要查询表中不重复的记录时,可以使用distinct关键字过滤重复记录。 语法: select distinct [,...,] from ; 数据表如下: mysql> select * from emp; +-------+--------+------------+------+------------+------+------+--------+ | empno | ename | job …

mysql去重统计

第一种使用 DISTINCT 去重统计 SELECT COUNT(DISTINCT record_id) FROM assessment_record_date WHERE date_type 1 and DATE_FORMAT( the_date,%Y-%m) DATE_FORMAT(NOW(),%Y-%m) 结果是去重之后的总数量 第二种使用 GROUP BY 去重统计 SELECT COUNT(record_id) FROM a…

mysql查询去重后的总数

mysql 查询去重 建议以后给出列名、数据示例,这样我们写的SQL你可以粘贴运行~ SELECTDISTINCT表1.列2,表1.列1 FROM表1 WHERE表1.列2IN(SELECT列1FROM表2) 更多追问追答 谢谢你,我补充了一下,我想粘贴的多点,但是太多了…

mysql去重查询方法优化

前言 说起来开始进行面试是年前倒数第二周,上午9点,我还在去公司的公交上,突然收到蚂蚁的面试电话,其实算不上真正的面试。面试官只是和我聊了下他们在做的事情(主要是做双十一这里大促的稳定性保障,偏中间件吧),说的很详细,然后和我沟通了下是否有兴趣,我表示有兴趣…

Mysql去重查询---DISTINCT、group by

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 DISTINCT语法:关键词 distinct用于返回唯一不同的值。 表结构案例SELECT DISTINCT age FROM emp1SELECT DISTINCT age ,NAME FROM emp1SELECT DISTINCT * FROM emp1…

MYSQL去重方法汇总

表数据 备注: id: 任务id;name: 参与人name; 1:distinct 1.1 -- 根据任务ID去重 SELECT DISTINCT id FROM test;1.2 -- 任务总数 SELECT COUNT(DISTINCT id) FROM test;1.3 distinct 通常效率较低。它不适合用来展示去重后具体的值,一般与…

mysql 怎么去重2维数组,mysql去重查询

在使用MySQL时,有时需要查询出某个字段不重复的记录,这时可以使用mysql提供的distinct这个关键字来过滤重复的记录,但是实际中我们往往用distinct来返回不重复字段的条数(count(distinct id)),其原因是distinct只能返回他的目标字段&#xff…