电梯系统的UML文档14

对于 HallButtonControl,我们有二个状态:

"门厅灯开 " 和 " 门厅灯关"。
从给出的初始信息,初始的状态应该是"门厅灯关"。行为定义: " 当 HallCall[f,d]是真,则指令
HallLight[f,d] 为 On ",这是第一个状态变化从on 到off;同样地,"如果DesiredFloor.d 是Stop,则命令两个 HallLight 切换到off",改变状态从on 到off。在此,状态机停下来等一个新的门厅呼叫。

第 4 步:
我们决定增加每个状态机的前置条件、 后置条件、行动、入口码和退出码,这些状态机是从约束和行为相关的需求文档得到。
第 5 步:
检查事件的组合是否覆盖所有状态。
第 6 步:
检查是否有死状态,没有 ( 组合) 事件可以使状态机从该状态变换到其他状态。
第 7 步:
一项项地按照行为运行状态机,确定所有的需求条件被覆盖,而且状态机改变状态,采取行动,正确地修改变量。确定没有遗漏和冗余。第 8 步:
正确地画出每一个对象的状态图、标示状态、守卫条件、进出码和过渡,记录用于跟踪的相应需求。

6 结论

在这份报告中,给出了一个模拟电梯控制系统详细的 UML 文档。这个文档中用到的 UML 图包括用例图、类图表、顺序图和状态图。在课程项目设计过程中,实时系统中如何使用UML 图得到了大量的关注,我们项目的成功对这个问题给出了一个很好的答案。由于当前UML 版本的流行和广泛的符号化,OO 技术可以在实时系统开发中得到适度的发展。

目前面向对象分析和设计方法重心只是在系统的软件。对于实时系统不是完全合适,实时系统需要对系统开发作出整体苛刻的要求而不仅仅是软件。

实时系统的一些方面:
·硬件元件的定义和他们的特性·任务的定义和任务的通信·时间限制·网络的建模。

如果适当地注意系统的实时特征和不同点的组合,对实时系统的设计和分析有很大的帮助。
为了描述硬件元素和对网络建模,我们用三种不同的视图对系统结构建模。对象构造和软件结构都将重点放在系统的软件结构上,而从系统结构角度给出了一个系统硬件的略图和系统组件间的通信方法。为了描述时间约束给出了顺序图和协作图,通过消息和对象的名称标识时间约束标识系统的实时特征。每个图表仅仅是系统的一些方面的一个图形表示。没有单个图表可以覆盖一个系统设计的所有东西。图表结合起来表达实时系统的完全描述。系统类图的三个不同的视图有助于了解系统的结构。

本文给出的一些我的项目经验实用方法,可能有助于填补需求和设计之间的间隙。当建立系统的图表的时,已经存在一些组件,如系统结构和状态图。不清楚上面总结的方法在一般系统的分析和设计过程中是否仍会有效。

举例来说,系统架构 -类图是以Phil Koopman的电梯架构为基础的 (这个报告的附件),它使用非标准的UML语言。

这里的问题是:UML语言有没有好到,在没有架构图时仍然可以设计系统架构 ?
本文中电梯系统的功能描述仍然限制在课程项目。而在真实世界中更可能需要一些其他特征,例如一个火警按钮、或一个风扇锁。然而,给出了系统的框架,这些附加的功能可以被毫不费力的增加到系统的静态和动态的描述中。

7 参考文献
[1] Hermann Kopetz. Real-Time Systems,Design Principles for Distributed Embedded Applications.
[2] Grady Booch,James Rumbaugh and Ivar Jacobson. The Unified Modeling Language User Guide.
[3] Perdita Stevens and Rob Pooley. Using UML,Software Engineering with Objects and Components.
[4] Martin Fowler and Kendall Scott. UML Distilled,A Brief Guide to the Standard Object Modeling Language.
[5] Bruce Powel Douglass. Doing Hard Time: Developing Real-time Ssystems with UML,Objects,Frameworks,and Patterns.
[6] Desmond F. D’Souza and Ala n Cameron Wills. Objects,Components,and Frameworks with UML.
[7] Alan Moore and Niall Cooling. Developing Real-Time Systems using Object Technology,A white paper from Artisan Software Tools.

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【初阶数据结构和算法】八大排序算法之插入排序(直接插入排序、希尔排序及其对比)

文章目录 一、常见排序算法分类一、直接插入排序二、希尔排序三、直接插入排序和希尔排序性能对比 一、常见排序算法分类 常见的排序算法有八种,我们简单盘点一下 插入排序:直接插入排序、希尔排序选择排序:直接选择排序、堆排序交换排序&am…

大模型综述一镜到底(全文八万字) ——《Large Language Models: A Survey》

论文链接:https://arxiv.org/abs/2402.06196 摘要:自2022年11月ChatGPT发布以来,大语言模型(LLMs)因其在广泛的自然语言任务上的强大性能而备受关注。正如缩放定律所预测的那样,大语言模型通过在大量文本数…

4种架构的定义和关联

文章目录 **1. 各架构的定义****业务架构(Business Architecture)****应用架构(Application Architecture)****数据架构(Data Architecture)****技术架构(Technology Architecture)*…

实时波形与频谱分析———傅立叶变换

实时波形与频谱分析:一个交互式动画演示 在信号处理领域,时域波形和频域频谱是理解信号特性的重要工具。通过时域波形,我们可以直观地观察信号随时间的变化,而频域频谱则揭示了信号中所包含的频率成分及其幅值。为了帮助大家更好…

数据结构:时间复杂度

文章目录 为什么需要时间复杂度分析?一、大O表示法:复杂度的语言1.1 什么是大O?1.2 常见复杂度速查表 二、实战分析:解剖C语言代码2.1 循环结构的三重境界单层循环:线性时间双重循环:平方时间动态边界循环&…

基于Springboot+vue的租车网站系统

基于SpringbootVue的租车网站系统是一个现代化的在线租车平台,它结合了Springboot的后端开发能力和Vue的前端交互优势,为用户和汽车租赁公司提供了一个高效、便捷、易用的租车体验和管理工具。以下是对该系统的详细介绍: 一、系统架构 后…

[x86 ubuntu22.04]进入S4失败

目录 1 问题描述 2 解决过程 2.1 查看内核日志 2.2 新建一个交换分区 2.3 指定交换分区的位置 1 问题描述 CPU:G6900E OS:ubuntu22.04 Kernel:6.8.0-49-generic 使用“echo disk > /sys/power/state”命令进入 S4,但是无法…

Java 大视界 -- Java 大数据在智慧文旅中的应用与体验优化(74)

💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…

使用Python和TensorFlow/Keras构建一个简单的CNN模型来识别手写数字

一个简单的图像识别项目代码示例,使用Python和TensorFlow/Keras库来训练一个基本的CNN模型,用于识别MNIST手写数字数据集,并将测试结果输出到HTML。 代码运行效果截图: 具体操作步骤: 1. 安装所需的库 首先,确保你已经安装了所需的Python库: pip install tensorflow…

Redis --- 使用zset处理排行榜和计数问题

在处理计数业务时,我们一般会使用一个数据结构,既是集合又可以保证唯一性,所以我们会选择Redis中的set集合: 业务逻辑: 用户点击点赞按钮,需要再set集合内判断是否已点赞,未点赞则需要将点赞数1…

kamailio-osp模块

该文档详细讲解了如何在Kamailio中配置和使用OSP模块(Open Settlement Protocol Module),以实现基于ETSI标准的安全多边对等互联(Secure Multi-Lateral Peering)。以下是核心内容的总结: 1. 模块功能 OSP模…

北大AGI与具身智能评估新范式!Tong测试:基于动态具身物理和社会互动的评估标准

作者:Yujia Peng, Jiaheng Han, Zhenliang Zhang, Lifeng Fan, Tengyu Liu, Siyuan Qi, Xue Feng, Yuxi Ma, Yizhou Wang, Song-Chun Zhu 单位:北京通用人工智能研究院国家通用人工智能重点实验室,北京大学人工智能研究所,北京大…

开发板上Qt运行的环境变量的三条设置语句的详解

在终端中运行下面三句命令用于配置开发板上Qt运行的环境变量: export QT_QPA_GENERIC_PLUGINStslib:/dev/input/event1 export QT_QPA_PLATFORMlinuxfb:fb/dev/fb0 export QT_QPA_FONTDIR/usr/lib/fonts/设置成功后可以用下面的语句检查设置成功没有 echo $QT_QPA…

一文讲解Spring如何解决循环依赖

Spring 通过三级缓存机制来解决循环依赖: 一级缓存:存放完全初始化好的单例 Bean。 二级缓存:存放正在创建但未完全初始化的 Bean 实例。 三级缓存:存放 Bean 工厂对象,用于提前暴露 Bean。 试问:三级缓存解决循环依…

Linux+Docer 容器化部署之 Shell 语法入门篇 【Shell 替代】

🎀🎀Shell语法入门篇 系列篇 🎀🎀 LinuxDocer 容器化部署之 Shell 语法入门篇 【准备阶段】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell变量】LinuxDocer 容器化部署之 Shell 语法入门篇 【Shell数组与函数】LinuxDocer 容…

[c语言日寄]赋值操作对内存的影响

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋:这是一个专注于C语言刷题的专栏,精选题目,搭配详细题解、拓展算法。从基础语法到复杂算法,题目涉及的知识点全面覆盖,助力你系统提升。无论你是初学者,还是…

HTML5 教程之标签(3)

HTML5 <center> 标签 (已废弃) 定义和用法 <center> 标签对其包围的文本进行水平居中处理。HTML5不支持使用<center>标签&#xff0c;因此有关该标签的更多信息&#xff0c;请参考“HTML <center>标签”部分&#xff01; 示例: <center>这个…

SQL 秒变 ER 图 sql转er图

&#x1f680;SQL 秒变 ER 图&#xff0c;校园小助手神了&#xff01; 学数据库的宝子们集合&#x1f64b;‍♀️ 是不是每次碰到 SQL 转 ER 图就头皮发麻&#xff1f;看着密密麻麻的代码&#xff0c;脑子直接死机&#xff0c;好不容易理清一点头绪&#xff0c;又被复杂的表关…

大语言模型轻量化:知识蒸馏的范式迁移与工程实践

大语言模型轻量化&#xff1a;知识蒸馏的范式迁移与工程实践 &#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 摘要 在大型语言模型&#xff…

RabbitMQ:python基础调用

前言 紧接上回在windows上安装了最新版的RabbitMQ&#xff1a; RabbitMQ&#xff1a;windows最新版本4.0.5安装方案-CSDN博客 这是官方给出的使用文档&#xff1a;How to Use RabbitMQ | RabbitMQ 这里我给出通过AI学习到的python使用方法 理论截图 python直接使用pip安装pi…