【UML用户指南】-30-对体系结构建模-模式和框架

news2024/11/26 18:43:19

目录

1、机制

2、框架

3、常用建模技术

3.1、对设计模式建模

3.2、对体系结构模式建模


 

用模式来详述形成系统体系结构的机制和框架。通过清晰地标识模式的槽、标签、按钮和刻度盘

在UML中,

设计模式(也叫做机制)建模,将它们表示为协作。

将体系结构模式建模为框架,将它们表示为衍型化的包。


8afcae74c7b24a73b0702b0dd281887f.png

模式 (pattern)是对给定语境中共同问题的通用解决方案。

机制(mechanism)是应用于类群体的设计模式。

框架 (framework)是为领域中的应用系统提供可扩充模板的体系结构模式。
 

例如,如果正在建立一个用户密集型系统,一种经过考验的组织抽象的方法是使用模型——视图——控制器模式,用这种模式将对象(模型)和它们的表示(视图)以及协调二者同步工作的代理(控制器)清楚地分离开来。与此类似,如果是在建立一个破解密码的系统,一种经过考验的组织系统的方法是使用黑板体系结构,它很适合以机会主义的方式来解决难处理的问题。
 

1、机制

机制只是应用于类群体的设计模式的一个别名。

 

1)第一种方式:一个机制仅仅是为一组共同工作来完成一些共同而有意义的行为的抽象指定一个名称。因为它只是对类的群体命名,所以可将它建模为简单的协作。展开这个协作,可以看到它的结构方面(通常用类图表示)和行为方面(通常用交互图表示)。像这样的协作将交叉引用系统中的个体抽象;一个给定的类可能成为多个协作的成员。
689a271373e742c39b198dc04d3a5af2.png

2)第二种方式:一个机制是给一组共同工作来完成公共而有意义的行为的抽象指定一个模板的名称。可以将这种机制建模为参数化协作,它在UML中的画法与模板类的画法相似。展开协作,可以看到它的结构方面和行为方面。

压缩协作,可以看到模式是如何将协作的模板部件和系统中存在的抽象绑定在一起而应用于系统的。将机制建模为参数化协作时,要标识一些选项,如槽、标签、按钮和刻度盘等,利用这些选项通过模板的参数来调整模式。像这样的协作可以绑定到不同的抽象集而在系统中反复出现。在这个例子中,模式的Subject 和Observer类分别与具体类CallQueue和SliderBar绑定。
 

606d9ff327364524bda9b4eeafb5a504.png

 

2、框架

框架是为一个领域中的应用系统提供可扩充模板的体系结构模式。

例如,在实时系统中一种常见的体系结构模式是循环执行模式,它将时间划分为一些帧和子帧,其间的处理要在严格的期限内发生。

框架比机制的规模大。

在UML中,把框架建模为衍型化的包。展开包,看到存在于系统体系结构的各个视图中的机制。

下图描述了一个名为CyclicExecutive的框架。此框架有一个包含一组事件类的协作(CommonEvents)和一个以循环的方式处理这些事件的机制(EventHandler)。在这个框架上进行构造的客户(如Pacemaker),可以通过建立子类而使用CommonEvents中的抽象,并且也能应用EventHandler机制的实例。
 

952e2c05a2fb4845b157fe890638b25b.png

3、常用建模技术

3.1、对设计模式建模

        从外部看,设计模式被表示成一个参数化协作。作为协作,模式提供了一组抽象,其结构和行为共同工作,以完成一些有用的功能。协作的参数命名了该模式的用户必须绑定的元素。这使得设计模式成为一个模板,通过提供与模板参数相匹配的元素来将它用于特定的语境。

        从内部看,设计模式只是一个协作,用它的结构部分和行为部分表示。通常可以用一组类图(结构方面)和一组交互图(行为方面)对这种协作的内部建模。协作的参数命名了其中一些结构元素,当设计模式被绑定到具体语境中时,就被来自该语境的抽象实例化。

下图表示命令模式“将请求封装成对象,从而可以用不同的请求(队列或日志请求)将客户参数化,并支持可以取消的操作”。

在每种情况下必须

把参数 AbstractCommand 绑定到同一个抽象超类。

在不同的绑定中,把参数 ConcreteCommand 绑定到不同的特殊类;

把参数 Receiver 绑定到该命令作用于其上的类。

类Command可以由模式创建,但是把它作为一个允许创建多个命令层次的参数。
 

e93c716273b9491dab86125a935f3ffe.png

下图表示该设计模式的类图。使用被命名为模式参数的类。

9ec6aba46fb649c694c4ecb0b870d54a.png

下图表示命令模式的顺序图

246a9c7dd538471d92fa95af878f2a99.png

3.2、对体系结构模式建模

框架实际上就是对体系结构的描述,尽管它是不完整的而且可能是参数化的。

下图给出了Blackboard(黑板)体系结构模式的规约,这个模式“解决了那些从原始数据转换为高层数据结构时没有可行的确定性的解决方案的问题”。

这个体系结构的核心是Blackboard(黑板)设计模式,它规定了KnowledgeSources(知识源)、Blackboard(黑板)和Controller(控制器)如何协作。

这个框架中还包含设计模式Reasoning engine(推理引擎),它描述了每个KnowledgeSource如何被驱动。

最后,这个框架还显示了一个用况,即Apply newknowledge sources(应用新知识源),它解释客户如何去调整框架本身。
 

a1d0ad28ec61489bbe02b119055440aa.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1904706.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端必修技能:高手进阶核心知识分享 - CSS 阴影属性详解

CSS 涉及设计到阴影的相关内容包括三个方面:box-shadow属性(盒子阴影)、 text-shadow属性(文本阴影)、drop-shadow滤镜。 本篇文章旨在详细介绍和分析三种阴影的具体参数设置和典型用例。 box-shadow属性(…

1958.力扣每日一题7/7 Java(100%解)

博客主页:音符犹如代码系列专栏:算法练习关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ 目录 思路 解题方法 时间复杂度 空间复杂度 Code 思路 首先将指定位…

【ubuntu中关于驱动得问题】—— 如何将nouveau驱动程序加入黑名单和安装NVIDIA显卡驱动

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、nouveau驱动程序加入黑名单二、安装NVIDIA显卡驱动总结 前言 NVIDIA显卡驱动是用于支持和优化NVIDIA显卡在计算机系统中运行的关键软件组件。该驱动程序能…

2024 WAIC|第四范式胡时伟分享通往AGI之路:行业大模型汇聚成海

7月4日,2024世界人工智能大会(WAIC)正式开幕。此次大会围绕核心技术、智能终端、应用赋能等板块展开,展览规模、参展企业数均达历史最高。第四范式受邀参展,集中展示公司十年来在行业大模型产业应用方面的实践。在当天…

Django 查询数据

模型参考上一章内容: Django QuerySet对象,filter()方法-CSDN博客 查询数据可以通过以下方法: Book.objects.all() Book.objects.filter() Book.objects.get() 1,添加视图函数 Test/app11/views.py from django.shortcuts im…

【QT中堆栈布局的实现】

学习分享 1、环境设置,头文件2、.h文件2.1、主界面.h文件2.2、对话界面1.h文件2.3、对话界面2.h文件 3、.cpp文件3.1、对话界面1.cpp3.2、对话界面2.cpp3.3、主界面.cpp3.4、main.cpp 1、环境设置,头文件 该示例使用C14实现,因此在QT项目pro文…

实战:搭建一款属于自己的个人知识库~docusaurus(强大且丝滑)-2024.7.7(测试成功)

目录 文章目录 目录docusaurus简介效果专题链接👏环境源码1、安装基础环境2、拉取代码3、安装坚果云并同步md核心文件4、构建运行5、配置脚本环境1.配置vscode终端到ecs的免密2.配置win10 vscode终端环境变量 6、构建并推送静态文件到ecs关于我最后最后 docusaurus简…

基于CentOS Stream 9平台搭建RabbitMQ3.13.4以及开机自启

1. erlang与RabbitMQ对应版本参考:https://www.rabbitmq.com/which-erlang.html 2. 安装erlang 官网:https://www.erlang.org/downloads GitHub: https://github.com/rabbitmq/erlang-rpm/releases 2.1 安装依赖: yum -y install gcc glib…

BigDecimal(double)和BigDecimal(String)有什么区别?BigDecimal如何精确计数?

BigDecimal(double)和BigDecimal(String)的区别 double是不精确的,所以使用一个不精确的数字来创建BigDecimal,得到的数字也是不精确的。如0.1这个数字,double只能表示他的近似值。所以,当我们使用new BigDecimal(0.1)创建一个Bi…

算法简介:什么是算法?——定义、历史与应用详解

引言 在现代计算机科学中,算法是一个核心概念。无论是编程还是数据分析,算法都扮演着至关重要的角色。在这篇博客中,我们将深入探讨算法的定义、历史背景以及它在计算机科学中的地位和实际应用。 什么是算法? 算法是解决特定问题…

STM32基础篇:GPIO

GPIO简介 GPIO:即General Purpose Input/Output,通用目的输入/输出。就是一种片上外设(内部模块)。 对于STM32的芯片来说,周围有一圈引脚,有时需要对引脚进行读写(读:从外部输入一…

数字信号处理及MATLAB仿真(3)——量化的其他概念

上回书说到AD转换的两个步骤——量化与采样两个步骤。现在更加深入的去了解以下对应的概念。学无止境,要不断地努力才有好的收获。万丈高楼平地起,唯有打好基础,才能踏实前行。 不说了,今天咱们继续说说这两个步骤,首先…

51单片机-第一节-LED和独立按键

一、点亮LED&#xff1a; 首先包含头文件 <REGX52.H> 随后令P2为0xFE。(此时二进制对应1111 1110&#xff0c;为0 的LED亮&#xff0c;故八个灯中的最后一个亮起)。 注&#xff1a;P2为控制LED的8位寄存器。 void main() {P2 0xFE;//1111 1110while(1){} } 二、L…

非同步升压转换器,效率95%你信吗?ETA1611输出电流2A, 22V DCDC

前言&#xff1a; 截止24年7月7日某创报价&#xff1a;500&#xff1a; &#xffe5;0.7856 / 个 建议使用前同时了解下方器件。 2毛钱的SOT23-5封装28V、1.5A、1.2MHz DCDC转换器用于LCD偏置电源和白光LED驱动等MT3540升压芯片 描述 ETA1611 SOT23-6封装 丝印GVYW&#xff0…

基于java语言+ Vue+ElementUI+ MySQL8.0.36数字化产科管理平台源码,妇幼信息化整体解决方案

基于java语言 VueElementUI MySQL8.0.36数字化产科管理平台源码&#xff0c;妇幼信息化整体解决方案 数字化产科管理平台是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。该系统由门诊系统、住院系统、数据统计模块三部分组…

MSPM0G3507——滴答定时器和普通定时

滴答定时器定时&#xff1a;&#xff08;放在主函数即可&#xff09; volatile unsigned int delay_times 0;//搭配滴答定时器实现的精确ms延时 void delay_ms(unsigned int ms) {delay_times ms;while( delay_times ! 0 ); } //滴答定时器中断 void SysTick_Handler(…

【2024_CUMCM】时间序列算法ARMA

目录 2023-c-问题二 问题分析 介绍 单位根检验 白噪声检验 自相关和偏自相关图 利用信息准则定阶 构建AMIMA模型 D-W检验 预测 代码 2023-c-问题二 问题分析 ARMA适合多个领域的时间序列分析&#xff0c;不同时间的定价策略属于这类问题。 介绍 ARMA模型&…

一.2.(4)放大电路静态工作点的稳定;(未完待续)

1.Rb对Q点及Au的影响 输入特性曲线&#xff1a;Rb减少&#xff0c;IBQ&#xff0c;UBEQ增大 输出特性曲线&#xff1a;ICQ增大&#xff0c;UCEQ减少 AUUO/Ui分子减少&#xff0c;分母增大&#xff0c;但由于分子带负号&#xff0c;所以|Au|减少 2.Rc对Q点及Au的影响 输入特性曲…

2024暑假集训

Day1——枚举 Day2——测试 Day3——贪心 Day4、5——测试 ——————————————————————————————————————————— Day3T7&Day5T7:没思路 Day3T8:不知道怎么排序筛选 Day5T5:没有算法难度&#xff0c;但是不知道怎么处理2队奶牛的情…

【大数据综合试验区1008】揭秘企业数字化转型:大数据试验区政策数据集大公开!

今天给大家分享的是国内顶级期刊中国工业经济2023年发布的最新期刊《政策赋能、数字生态与企业数字化转型——基于国家大数据综合试验区的准自然实验》文章中所使用到的数据集——国家大数据综合试验区政策数据集以及工具变量数据&#xff0c;该文章基于2009-2019年中国上市企业…