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

家用报警器的UML 设计及其在C++和VxWorks 上的实现01

M.W.Richardson 著,liuweiw

论文描述了如何运用 UML(统一建模语言)设计一个简单的家用报警器,并实现到 VxWorks 操作系统上。本文分两个部分,第一部分描述了如何用 UML 设计和验证家用报警器的模型,以使其独立于特定的硬件和操作系统。第二部分则细节地描述如何将此模型实现于运行VxWorks 操作系统的 486 硬件平台上。模型的设计、开发和验证使用了 I-Logix 公司的可视化编程环境“Rhapsody”。

第一部分:设计一个独立于操作系统的家用报警器

一个好的面向对象设计力图将不变的东西与变化的东西相互分开。在家用报警器的设计中,一个可能的变化是实际的硬件平台。本文描述了如何用 UML 设计这个模型,以使它可以容易地应用到不同的硬件结构中去。文中也表现了如何通过“Rhapsody”工具,可以由模型产生全部代码,并通过“设计级调试”进行验证。设计级调试使我们可以运用描述模型中用到的相同图示来进行调试,基本上可以让状态图和消息序列图活动起来。这样就可以使我们快速地验证所设计的模型。

需求

我们要设计的家用报警器有如下需求:

可以通过遥控器或者简单的小键盘进入戒备/取消戒备状态。当用小键盘设置戒备时,一个四位数字密码必须输入随着要按下 ON 键。如要取消戒备时,一个四位数字密码必须输入随着要按下 OFF 键。密码应该可以改变。当在警戒时检测到情况,马上会发声报警。设置警戒时,将有一个延时供户主离开。警戒状态时开门,会有一个入门延时,这时户主可以取消警戒,如果不能消除警戒警报就要响了。

报警器要有两个 LED,一个为绿色,另一个为红色。红色的 LED 表示报警器处于激活状态,在报警器激活时或者报警器已激活且门打开时闪烁。绿色的 LED 显示报警器启动并且在密码成功修改后闪动四次。

一个未来的需求是家用报警系统应可以通过开关电灯模拟房间被闯入。

设计 UML 模型

用例图

第一步是根据需求建立用例图。下面的用例图表明了两件事:一个显示了主要用处(或用例)即试图给“家用报警器(home alarm)”建模。另一个表示谁使用家用报警器;有两个主要的角色或者用户,即户主(homeowner)和闯入者(intruder)。用例是系统功能反映给角色的可观察的结果但并不揭示系统的内部构造。

http://www.lryc.cn/news/533197.html

相关文章:

  • k8s常见面试题2
  • CSS 伪类(Pseudo-classes)的详细介绍
  • 将Deepseek接入pycharm 进行AI编程
  • 【Ollama】一、介绍
  • ASP.NET Core JWT
  • 查询引擎:它们是什么以及为什么重要
  • 03/29 使用 海康SDK 对接时使用的 MysqlUtils
  • 2025.2.7 Python开发岗面试复盘
  • 一个sql只能有一个order by
  • Windows Docker笔记-在容器中运行项目
  • postgreSQL16.6源码安装
  • 寒假2.5
  • 定期删除一周前的数据,日志表的表空间会增长吗?
  • yum 安装mysql
  • Servlet笔记(下)
  • Windows 中学习Docker环境准备3、在Ubuntu中安装Docker
  • 【centOS】搭建公司内网git环境-GitLab 社区版(GitLab CE)
  • Unity DoTween使用文档
  • 【办公类-99-01】20250201学具PDF打印会缩小一圈——解决办法:换一个PDF阅读器
  • 组合总和II(力扣40)
  • 基于HTML生成网页有什么优势
  • php 接入扣子的 token获取
  • Redis02 - 持久化
  • 【力扣】240.搜索二维矩阵 II
  • RabbitMQ 从入门到精通:从工作模式到集群部署实战(二)
  • 编程AI深度实战:大模型哪个好? Mistral vs Qwen vs Deepseek vs Llama
  • 11.kafka开启jmx
  • 基于钉钉API的连接器实现:企业数据集成与自动化管理
  • JAVA 二维列表的基础操作与异常
  • 将仓库A分支同步到仓库B分支,并且同步commit提交