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

电梯系统的UML文档01

Lu Luo 著,王君 译

1 简介

这是一份Carnegie Mellon 大学博士课程(分布式嵌入系统)项目报告。整个课程完成了一个分布式实时系统的设计、搭建和模拟。设计时用到了OOA 和OOD,特别是UML。

系统的大多数类省略了很多细节。现在看到的这份电梯系统的UML 文档和真实的电梯系统有很大的不同。因此不是很清楚UML 是否能真正地完成电梯系统的设计。这份报告基于当前的系统设计给出了一个教学项目严谨UML文档包。

分布式实时系统中如何使用UML,报告从不同的视图给出了三组UML 图。这些图分别从对象结构、软件结构和系统结构三个角度着眼,不同主要集中在各自的类图上。

接下来的第二节和第三节分别是UML 和分布式系统的简介。第四节是从静态结构的角度来描述我们的电梯系统的设计,例如从用例图和类图来描述和分析。第五节的用例图和状态图主要描述系统的动态方面,而第六节是结论。

2 UML 简介

统一建模语言(UML)是描述、形象化、构建及文档化软件系统和其他非软件系统构件的工业建模语言。它简化了软件设计的复杂过程,为构造建立了“蓝图”。并且,现在是软件构造的标准符号语言。

UML 提供了系统的结构图和行为图。一组包含不同图形元素的图表是UML 最具表现力的核心部分。UML 包括9 种图。为了把握电梯系统设计最典型的部分,在本文中只用UML 图表来分析:
用例图描述一组用例和角色(一种特殊的类)以及它们的关系。用例图用在一个系统的静态用例视图中,这些图在一个系统行为的组织和建模中是重要的。

类图描述了一组类、接口、协作以及它们的关系。它在面向对象系统建模中是最常用的图。类图用于系统的静态设计视图。

顺序图是一种交互图。交互图用于系统的动态视图。在UML 中,除了顺序图,协作图也是交互图。顺序图着重于系统中对象间消息传递的时间顺序,而协作图着重于发送和接受消息的对象的结构组织。它们是异形同构的,可以从一个转换为另一个。虽然它们都是对我们系统同样的扩展理解,但顺序图给出了时间,这是实时系统的要素,所以本报告中只给出顺序图。

状态图由状态、转换、事件和活动组成,它表明了状态机制。状态图用于一个系统的动态视图。状态图在接口、类或协作的建模时特别重要。它突出了一个对象的事件顺序行为,这在交互式系统建模中非常有用。

其他的四种UML 图是:对象图-描述一组对象和它们的关系;活动图-一种特殊的状态图,描述一个系统中从一个活动到另一个的流程;组件图-描述一组组件的组织和依赖关系;而实施图描述运行时处理点的结构和依附于它们的组件。

3 实时分布嵌入式系统总览

在讨论用UML 设计我们的电梯系统的细节问题之前,必须先对实时分布式嵌入系统的定义做一个界定。简述用UML 进行完全面向对象的设计和分析时,它和一般的软件不同。接下来,本文将对在实时分布式嵌入系统的设计中使用UML 的优缺点作大量的讨论。

Kopetz 说过实时计算机系统行为的正确性不仅和计算的逻辑结果而且和结果产生的物理及时性有关 [1]。谚云:“过时的正确结果是无效的”。在实时系统中性能要求和功能要求同样重要,我们不仅要完成正确的功能,还要有必须完成这些功能的清晰系统边界。嵌入式计算机系统用一台计算机作为组件,但是它的主要功能不是一台计算机。

作为一种面向对象技术,UML 用于实时系统的开发基本上是适合的。UML 中的方法自然地适合于描述和设计实时系统。用例图描述的是人及外部设备和系统的相互作用。对象的顺序图描述的是包含时间的用例、引起相互作用的事件和系统回应的细节。

类图帮助我们将系统的组件相互分开并定义它们之间的接口。这些技术足够用于捕获处理场景和识别可靠的时间问题。


http://www.kler.cn/a/502062.html

相关文章:

  • 【AI游戏】基于OpenAI打造自动生成剧情的 Python 游戏
  • 从零搭建一个Vue3 + Typescript的脚手架——day1
  • 软件测试面试题整理
  • 银河麒麟服务器操作系统桌面任务栏网络图标消失问题
  • java -jar启动项目报错:XXX.jar中没有主清单属性
  • 使用Deepseek搭建类Cursor编辑器
  • 【机器学习】主动学习-增加标签的操作方法-流式选择性采样(Stream-based selective sampling)
  • 48_Lua错误处理
  • Solidity入门: 函数
  • 小程序自定义底部tabbar,并且解决遮罩层无法遮挡住底部tabbar问题
  • type 属性的用途和实现方式(图标,表单,数据可视化,自定义组件)
  • 《零基础Go语言算法实战》【题目 2-8】defer 和 return 语句
  • 逆向分析的小短文
  • 6Hive Sql 大全-Hive 函数
  • 【MySQL】基础语法详解:SELECT, INSERT, UPDATE, DELETE轻松上手
  • leetcode(hot100)10、11、12
  • 【HTML+CSS+JS+VUE】web前端教程-29-清除浮动
  • Spring Data Elasticsearch简介
  • 鸿蒙UI开发——颜色选择器
  • 【Ubuntu与Linux操作系统:七、系统高级管理】
  • 【论文速读】| 利用大语言模型在灰盒模糊测试中生成初始种子
  • Django Admin 中为自定义操作添加权限控制
  • Folder Icons v2.0.2 文件/文件夹图标美化 支持M、Intel芯片
  • 【南京工业大学主办 | JPCS独立出版 | 高届数、会议历史好 | 投稿领域广泛】第八届智能制造与自动化国际学术会议(IMA 2025)
  • Rank-Analysis——LOL 排位战绩查询分析器
  • 【LeetCode: 763. 划分字母区间 + 贪心】