UML电梯系统建模
【UML用例图实例】电梯控制系统用例图

【UML⽤例图实例】电梯控制系统⽤例图电梯控制系统⽤例图⼀、案例要求设计电梯控制系统⽤例图,写出其中三个⽤例的描述每部电梯轿厢内都有楼层按钮,每⼀楼层有⼀组上下⾏按钮,乘客进⼊电梯后按下楼层按钮,按钮被按下时会闪亮,然后通知电梯运⾏到⽬的层,等电梯到了⽇的层后,按钮停⽌闪亮。
乘客在必要时候按下紧急救助按钮,该按钮会⾃动发出电梯需要技术修复的求救信号。
技术⼈员可以通过⼀个控制键来激活或者停⽌电梯所有楼层按钮。
处于安全考虑,只有保安可以通过⼀个控制键打开地下室楼层按钮,所有的电梯都是通过中⼼机房控制。
⼆、案例设计三、案例描述描述项说明⽤例名称指定楼层⽤例描述当乘客进⼊电梯时就是这个⽤例的开始。
它指定了乘客想要去往的楼层,当乘客按下所选择的楼层按钮后这个案例就结束了参与者乘客优先级1前置条件乘客进⼊电梯后置条件电梯接收信号基本操作流程1、乘客进⼊电梯 2、乘客选择想去的楼层 3、到达乘客所选楼层乘客离开电梯可选操作流程1、乘客进⼊电梯选择⼀个想去楼层 2、乘客选择多个楼层 3、乘客进⼊电梯电梯故障不能选择楼层被泛化的⽤例⽆被包含的⽤例⽆被扩展的⽤例⽆描述项说明⽤例名称接受救助信号⽤例描述乘客进⼊电梯发⽣紧急情况,乘客按下紧急求救按钮申请救援,此时就是这个⽤例的开始,电梯发送乘客的求救信号,保安接收到乘客的求救信号,⽤例结束。
参与者保安优先级1前置条件乘客寻求救助后置条件⽆基本操作流程1、乘客进⼊电梯 2、乘客在电梯中发⽣紧急事件按下电梯⾥紧急求救按钮 3、电梯发送乘客的求救信号 4、保安接收到乘客的求救信号可选操作流程1、乘客按下紧急求救按钮,保安接收到求救信号被泛化的⽤例⽆被包含的⽤例⽆被扩展的⽤例⽆描述项说明⽤例名称控制电梯⽤例描述当乘客在电梯中遭遇紧急情况时,保安接收到乘客的求救信号是此⽤例的开始此时联系技术⼈员控制电梯来选择是激活所有楼层按钮还是停⽌所有楼层按钮⽤例结束参与者技术⼈员优先级1前置条件保安接收信号后置条件⽆基本操作流程1、当乘客在电梯中遭遇紧急情况2、保安接收到乘客的求救信号3、技术⼈员控制电梯可选操作流程1、按下电梯控制按钮激活所有楼层2、按下电梯按钮停⽌所有楼层流程1、按下电梯控制按钮激活所有楼层2、按下电梯按钮停⽌所有楼层被泛化的⽤例⽆被包含的⽤例1、激活楼层按钮2、停⽌楼层按钮被扩展的⽤例⽆描述项说明。
电梯简易UML图

电梯简易UML图⼀、⾯向对象技术概述软件危机:1.软件开发过程中出现的难题:复杂程度⾼、研制周期长、正确性难以保证2.表现形式:需求不明确、变更过多,开发进度难以控制;软件成本增加,但质量差;维护困难3.原因:需求不充分,⽆计划性;开发过程不规范;软件⽆评测⼿段4.解决途径:加强软件开发过程管理;推⼴使⽤开发软件的成功技术、⽅法和⼯具软件开发的现状:1.软件⼯程学科不断发展2.软件危机依然存在3.中⼩型软件开发较为成熟,⼤型的仍存在问题常⽤软件开发⽅法:1.瀑布模型2.快速原型3.螺旋模型软件⼯程的⽬的:在规定的时间、规定的费⽤内开发出满⾜⽤户需求的(低错误率,易⽤,可维护,课重⽤,可移植)⾼质量软件系统。
软件与硬件的区别:1.产品需求2. ⽣产⽅式3. 表现形式4. 维护⽅式软件复杂性原因:1.现有硬件系统体系结构造成的2.软件开发很难描述软件的本质规律和特征3.软件系统中各元素之间的关系具有不确定性4.软件需求的不断变化5.软件⽣命周期中需要适应不同硬件环境基本⽅法:1.分解,“分⽽治之”2.抽象,抽取本质特征(过程抽象,和数据抽象)3.模块化,⾼内聚,低耦合4.信息隐藏结构化VS⾯向对象⾯向对象的优点1.易于理解,直接模拟问题空间中的对象属性和⾏为2.稳定性较⾼、适应性好(⽤较稳定的把不稳定的包起来)3.可靠性⾼,灵活性好,可复⽤封装提供两种保护:1.保护对象,防⽌直接访问对象内部细节2.保护客户,防⽌对象实现部分的变化影响客户对象消息是类与类之间通信的桥梁,包括:1.同步消息,请求者需要等待响应者返回2.异步消息,请求者不需要等待响应者返回,发出消息后可以继续⾃⼰的⼯作⼆、 UML概述Unified Modeling Language:1.U: 统⼀各种表⽰有差别的建模⽅法,并集其所长。
2.M: 模型从全局上把握系统的全貌机器部件之间的关系3.L: 是⾯向对象的建模语⾔UML是⼀个通⽤的、可视化的建模语⾔标准,可以⽤来可视化、描述、构造、和⽂档化软件系统的各种⼯作UML的特点:1.统⼀的标准2.⾯向对象3.可视化4.独⽴于开发过程,可适⽤于不同软件过程5.概念明确,表⽰简洁,结构清晰,容易学习掌握UML构成:构造块,UML规则,公共机制构造块:建模元素,模型主体,包括事物,关系,图a.事物:(1)结构事物:类、接⼝、⽤例、组件、节点等(2)⾏为事物:交互、状态机(3)分组事物:把语义上相关的建模元素分组为内聚单元(4)注解事物:捕获特殊信息b.关系(1)关联对象间的⼀组链接(2)依赖事物的改变引起依赖事物的语义改变(3)泛化⼀个元素以另外⼀个元素的特化,⽽且可以取代更⼀般的元素c.图1234为结构,其中12为静态图,34为实现图56789为⾏为,其中56为交互图,78为⾏为图,9为⽤例图注:各种图见UML概述PPTUML中的4+1视图三、⽤例与⽤例图组成元素:1.参与者,⽤例,表⽰关系的连接线2.参与者与⽤例的关系:⼀根线表⽰3.⽤例之间的关系:包含、扩展、泛化⽤例的建模过程:a.获取原始需求b.识别参与者c.识别⽤例d.识别⽤例之间的关系e.描述脚本f.构建⽤例图g.⽤例描述a.获取原始需求:技巧:实地观察,⽤户指导,原型制作等b.识别参与者:指系统之外,透过系统边界与系统进⾏有意义交互的事物,参与者的确定代表系统边界的确定,就知道哪些外部对象在与系统交互参与者不仅可以由⼈承担,也可以是其他系统,设备,时间等技巧:参与者使⽤功能、改变系统数据、获取系统信息、利⽤系统完成⽇常任务、维护管理系统并保证其资产运⾏、与系统交互、利⽤系统产⽣的结果、或者为时间、⽓温等外部条件参与者的泛化:表⽰⼀个⼀般性参与者(⽗参与者)与⼀个更为特殊的参与者(⼦参与者)之间的联系,⼦参与者继承⽗参与者的⾏为和含义并且增加⾃⼰的特有的⾏为和含义。
课件—UML系统建模与分析设计(5)

系统设计与对象动态交互模型
动态模型主要描述系统的动态行为和控制结构。动态行 为包括系统中对象生存期内可能的状态以及事件发生时状态 的转移,对象之间动态合作关系,显示对象之间的交互过程 以及交互顺序,同时描述了为满足用例要求所进行的活动以 及活动间的约束关系。 在动态模型中,对象间的交互是通过对象间消息的传递来 完成的。对象通过相互间的通信(消息传递)进行合作,并在其 生命周期中根据通信的结果不断改变自身的状态。
16
5.2.1 一个简单的顺序图例子
17
顺序图有两个坐标: 垂直坐标--时间(从上到下),水平坐标—对象。
对象
生存线
时间
18
激活期
消息
顺序图和用例图、类图的关系
19
5.2.2顺序图的主要元素:
(1)对象:顺序图中所包含的每个对象用一个 对象框(短式)表示,对象名需带下划线。
对象图
(2)生存线:对象框下画的一条垂直虚线,称 为该对象的生存线,表示对象的生存时间。 (3)激活期:对象生存线上的一个细长方形框, 表示该对象的激活时间段,即活动期间。一 个激活的对象要么正在执行自己的代码,要 么等待另一个对象的返回。 (4)消息:对象之间消息的发送和接收用两个 对象生存线(激活期)之间的消息箭头线。
28
5.3
对象之间的同步与异步操作
1.对象之间的同步操作
同步消息的发送者把进程控制传递给消息 的接收者,然后暂停活动,等待消息的接收者 放弃或返回控制; 同步消息的接收者执行所请求的操作,如 果需要的话,可以把控制传递给另一个对象角 色,请求做某个操作,并且当该操作完成后把 控制返回给原来的同步消息的发送者; 同步消息的接收者也可以直接返回或发送 信息给原来的消息发送者。
UML综合实验报告

苏州大学实验报告院、系计算机学院年级专业12软件工程(嵌入式学术型)姓名潘致远学号1227403088 课程名称Web应用开发成绩用例描述:(1)用例名称:锁住楼层锁用例描述:当电梯出现故障,为保证安全,打开楼层锁,防止电梯停于本层。
参与者:电梯管理员前置条件:电梯出现故障后置条件:无基本操作流:1.找到故障电梯所在位置2.在故障电梯的向下一层和向上一层锁住楼层锁(2)用例名称:按动上下按钮用例描述:当乘客需要上行或者下行时,按动上行或下行按钮。
参与者:乘客前置条件:电梯正常运行后置条件:无基本操作流:1.按动上行按钮可选操作流:按动下行按钮(3)用例名称:按动楼层按钮用例描述:当乘客需要到达某层按钮时,按动某层的按钮参与者:乘客前置条件:电梯正常运行后置条件:无基本操作流:按动某层按钮(4)3.对象图:对类图的实例化,是系统详细状态在某一时刻的快照。
此对象图在如下特定状态:Lock: state=0: 未上锁; floor=1: 1层UpDownLight: state=0: 指示灯关闭GroundFloorLight: floor=1:显示 1层ButtonLight: state=0: 指示灯未亮; floor=1:1层Owtest: isOverweight=false: 电梯未超重QueryList: state=1: 有请求状态FloorButton: state=0: 未有按钮按下; floor=1: 1层的按钮Door: state=1: 门开CloseDoorTimer: autoclosetime=5000: 自动关门的延时为5sBackGroundTimer: autoreturntime=60*1000: 自动到达1层的延时为1minLglifter: state=1: 处于运行中; position=1: 在1层; isOverweight=false: 未超重4.时序图:描述电梯为了完成确定事务,对象之间按照时间消息交互的顺序关系。
UML系统建模与分析设计--系统体系结构建模

7.2.5 构件图建模的方法和技巧
1.构件描述的方法与技巧
(1)一个结构良好的构件应具备的特点
从物理结构上对软件系统进行抽象; 从物理结构上对软件系统进行抽象; 提供一组小的、定义完整的接口实现; 提供一组小的、定义完整的接口实现; 构件应包含与其功能有关的一组类,以便满足接口要求; 构件应包含与其功能有关的一组类,以便满足接口要求; 与其它构件相对独立, 与其它构件相对独立,构件之间一般只有依赖和实现的关 系。
( 1
二者都有名称; 都可以实现一组接口; 都可以参与依赖、继承、 关联等关系和交互; 都可以被嵌套; 都可以有实例。
( 2 抽象的方式不同; 抽象的级别不同; 访问方式不同; 与包的关系。
2010-12-23
UML系统建模与分析设计
9
3.软件构件的特点
(1)接口。 (2)操作。 (3)实例化。 (4)与配置环境的亲合性。 (5)能与同环境下其它构件进行交互。 (6)构件可以是可执行代码、二进制代码和源代码形式。 (7)可替换的物理实体。 (8)系统的组成部分。 (9)构件是软件复用的基本单元。
2010-12-23 UML系统建模与分析设计 6
7.2
软件系统体系结构模型
7.2.1 软件构件的图符表示和特点
1.软件构件的图符表示:
图7-2 构件的图符表示
2010-12-23 UML系统建模与分析设计 7
2.构件与类的比较
7-3 构件与包含的类有依赖关系
2010-12-23 UML系统建模与分析设计 8
2010-12-23
UML系统建模与分析设计
29
“诊疗管理 诊疗管理” 图7-14 “诊疗管理”子系统源代码到执行代码过程的构件图
UML(UnifiedModelingLanguage统一建模语言)

UML(UnifiedModelingLanguage统⼀建模语⾔)UML(Unified Modeling Language 统⼀建模语⾔),⼜称标准建模语⾔。
是⽤来对软件密集系统进⾏可视化建模的⼀种语⾔。
UML是⼀种⾯向对象的建模语⾔,它可以实现⼤型复杂系统各种成分描述的可视化、说明并构造系统模型,以及建⽴各种所需的⽂档,是⼀种定义良好、易于表达、功能强⼤且普遍适⽤的建模语⾔。
UML基本内容详述(1)视图 视图是表达系统的某⼀⽅⾯特征的UML建模元素的⼦集;试图并不是图,它是由⼀个或多个图组成的对系统某个⾓度的抽象。
1)⽤例视图(核⼼视图) 强调从⽤户的⾓度看到的或需要的系统功能。
2)逻辑视图 该视图⽤于描述系统内实现的逻辑功能,展现系统的静态或结构组成及特征。
3)组件视图 该视图从系统实现的⾓度来描述模型对象间的关系。
4)配置视图 该视图⽤于说明系统的物理配置。
(2)图表 图表是描述视图内容的图。
1)⽤例图 ⽤于描述外部项与系统提供的使⽤事件之间的联系。
⼀个使⽤事件是系统提供的功能的具体描述,是系统分析⼈员从⽤户⾓度描述系统的功能,是功能与功能之间以及功能与⽤户之间的关系。
使⽤事件定义了系统的功能需求。
简单理解:⽤来描述系统的功能。
2)类图 ⽤于描述系统的静态结构。
类可以⽤不同⽅式连接,主要包括联合、依赖、独⽴和包装。
⼀个系统⼀般有多张类图,⼀个类可在不同的视图中出现。
3)对象图 ⽤于表述系统在某个时刻的静态结构。
对象图也可作为协作图的⼀部分,说明⼀组对象之间的动态协作关系。
对象图与类图的区别:对象图表⽰的是类中的许多对象实例,⽽不是类本⾝。
4)状态图 ⽤于说明类中的对象可能具有的状态,以及由时间引起的状态的改变。
简单理解:描述了系统元素的状态条件和响应。
5)顺序图(时序图) ⽤于描述对象间的动态协作关系。
表达了对象间发⾏消息的时序,同时也表达出对象间的相互作⽤,以及当系统执⾏到某个特定位置时可能会发⽣的事。
UML建模实例分析PPT课件

UML建模 实例分析
-
1
电梯控制监视系统
背景
18层楼,2部电梯 (m层楼,n部电梯)
需求
控制:电梯上下运行载客至指定楼层 监视:当前电梯位置及状态
-
2
主要需求描述
初始所有电梯停在1楼,处于等待服务 状态
乘客通过按动每层楼的按钮呼叫电梯 当电梯到达所请求的楼层的时候,它
将打开门5秒钟,然后关上门 乘客通过按动电梯内控制面板上的按
-
14
课内实验
要求: 学习体系结构设计思路 掌握UML模型图画法(用例图、类图、
活动图、状态图、协作图、序列图) 提交设计说明文档
-
15
钮来与电梯系统进行交互
-
3
主要需求描述
如果乘客在电梯内按了去第X层的按钮, 电梯将移向第X层
如果没有新的呼叫,电梯将停在最后 到达的楼层
其他更多需求描述
中途呼叫请求的处理 多部电梯响应的协调 服务效率与能耗的平衡
-
4
建模总流程
需求分析 关键问题识别 体系结构设计 初始模型设计 主体模型设计 模型评估与改进 模型细化与完善
-
8
初始模型设计
目的:以粗颗粒度、粗线条方式来对 系统进行初步设计
途径:没有固定的套路,根据所设计 的系统特点,可以有不同的构思方法
一般情况下,可以从用例图、类图、 活动图开始着手
-
9
用例图 类图 活动图 状态图 协作图 序列图
主体模型设计
-
10
模型评估与改进
模型是否正确 模型是否一致 模型是否便于维护 模型是否能进一步改进
-
5
需求分析 明确系统边界
哪些该做,哪些不该做
使用UML对系统进行建模

使用UML对系统进行建模面向对象的软件工程,同传统的面向过程的软件工程相比,在需求的获取、系统分析、设计和实现方面都有着很大的区别。
UML是OOA和OOD的常用工具。
使用UML来构建软件的面向对象的软件工程的过程,就是一个对系统进行不断精化的建模的过程。
这些模型包括用例模型、分析模型、设计模型,然后,我们需要使用具体的计算机语言来建立系统的实现模型。
当然,在整个软件工程中,我们还需要建立系统的测试模型,以保证软件产品的质量。
使用面向对象的工具来构建系统,就应该使用面向对象的软件工程方法。
然我,我们经常会发现,在实际的开发过程中,很多开发人员虽然能够理解UML的所有图形,却仍然不能得心应手的使用UML来构建整个项目,其很大的原因,是仍然在使用原有的软件工程方法,而不清楚如何使用UML来建立系统的这些模型,不清楚分析和设计的区别,以及他们之间的转化。
应用软件系统,就其本质来说,是使用计算机对现实世界进行的数字化模拟。
应用软件的制造过程,按照UML的方法,就是建立这一些列模型的过程。
本文将就一个图书馆系统,说明如何使用UML来对系统进行这一系列的建模。
关于这个图书馆系统,基本的需求比较简单,就是允许学生可以在图书馆借阅和归还图书,另外,也可以通过网络或者图书馆的终端来查阅和预订书。
当然,图书馆管理员也可以对图书进行管理。
为了简化系统,我们没有把图书馆中的人员作细分。
之所以采用这个相对简单案例,是因为很多人都对图书馆系统有很强的感性认识,这样,读者不需要花很多的时间来理解系统包含的业务知识。
同时,也因为本文只是对使用UML 的过程做一个探讨,着眼于使用UML进行建模的过程,说明各个层次的模型之间的区别和联系,展示系统演进的过程,而不会深入UML的细节方面。
对于更加复杂的系统,其分析和设计的方法是相通的,可以举一反三。
用例模型——系统需求的获取用例模型定义系统做什么,是用来获取系统需求的有效手段。
用例模型由“角色”和“用例”组成。
电梯建模

电梯建模分析与设计问题描述:在一座10层高的宾馆大厅内,有4部由一个控制器控制的电梯。
乘客随时在各层选择要去的楼层。
要求:(1)设计一个电梯算法,满足乘客的要求(侯时应较少)。
(2)区分电梯的状态,如空运行、载入运行、超重、当前有故障等。
(3)在电梯全部无人乘坐时,电梯要按一定条件分布在各层。
(4)保存一个星期内个电梯的运行记录。
问题分析:本问题中可以设计一个电梯控制系统对电梯进行调度,电梯控制系统是一个实时系统,一般来说,实时系统是复杂的,因为它必须处理很多外部并发事件,这些事件的到来次序和几率通常是不可预测的,而且系统必须在事先设定好的时限内做出相应的响应。
1、需求分析1.1 系统描述随着社会的发展,电梯作为一种不可缺少的垂直交通工具,应用越来越广泛,因此有必要开发一个电梯控制系统对电梯进行最优调度。
本电梯系统用来控制4部运行于一个具有10层的宾馆的电梯,每一架电梯都有一个编号,以方便监控与维修。
控制器控制四台电梯,主要负责控制电梯上下,向电梯发送启动、制动、加速、减速、开关电梯门的信号。
若电梯发生故障,还应向相应的电梯负责人发送求救信号。
大楼的每一层都有:(1)两个指示灯:这两个指示灯分别用于指示电梯当前所在的层数和电梯当前的状态(上行、下行或停止)。
(2)按钮:在每一层,都有调用按钮,除了顶层和底层之外,都有两个按钮,一个是向上呼叫按钮,一个是向下呼叫按钮。
在顶层,只有向下呼叫按钮,在底层只有向上呼叫按钮。
(3)电梯锁:用于将本层的电梯门锁住,并使本层的电梯按钮失效,电梯里相应的按钮也失效,使得电梯不能也不可能停在本层。
电梯里面有:(1)标示从“1”到“10”的10个按钮,用于让乘客选择所要到的的层数。
(2)关门按钮:当乘客按下此按钮时,电梯门如果开着将关上,否则不执行任何操作。
(3)开门按钮:当乘客按下此按钮时,电梯如果停止某一层,电梯门将打开,否则不执行任何操作。
(4)超重测试和警报装置:电梯的地面有超重感应装置,当电梯载重达到某一个值时,电梯“超重警报铃”发出超重警报,并且电梯不执行关门操作。
UML练习-状态图

�
UML练习 UML练习
状态图
1,电梯的状态建模
电梯的第一层有向上按钮,最高层有向下 电梯的第一层有向上按钮, 按钮,中间各层都有向上或向下的按钮. 按钮,中间各层都有向上或向下的按钮. 平时电梯处于第一层, 平时电梯处于第一层,当有人按了向上按 钮时,电梯向上移动到指定的楼层, 钮时,电梯向上移动到指定的楼层,到达 后电梯处于闲置状态, 后电梯处于闲置状态,此时可以接收向上 移动或向下移动请求.若闲置时间超过3 移动或向下移动请求.若闲置时间超过3分 则电梯自动移动到第一层. 钟,则电梯自动移动到第一层.
取款时,用户首先输入取款金额,系统进 取款时,用户首先输入取款金额, 行判断,若余额不足则回到输入金额界面, 行判断,若余额不足则回到输入金额界面, 否则ATM吐出现金 吐出现金, 否则ATM吐出现金,然后提示是否打印凭 选择是则打印, 据.选择是则打印,打印完毕提示是直接 退卡还是继续服务. 退卡还是继续服务.
2,ATM自动取款机的状态建 ATM自动取款机的状态建 模
ATM取款机平时处于闲置状态. ATM取款机平时处于闲置状态.用户需要 取款机平时处于闲置状态 取钱时,首先插入银行卡,此时ATM要求 取钱时,首先插入银行卡,此时ATM要求 用户输入密码,若连续输入3 用户输入密码,若连续输入3次错误则自动 退卡.若输入正确则进入选择服务界户可以选择查询,取款等服务.取款完 用户可以选择继续服务, 毕,用户可以选择继续服务,也可以选择 直接退卡. 直接退卡.
UML系统建模与分析设计系统分析与对象类建模

规则(续):
(4)类型:可以是系统固有的类型,如整型、实型等,
也可以是用户自定义的类型。 (5)=初始值:任选项,初值可作为创建该类对象时这个 属性的默认值。 (6)类属性:用下划线标识的属性名,该类的所有对象 之间共享该属性。 (7)/:只读,可以与“+”、“-”或“#”同时使用,缺省 表示 可读可写。
2019/3/29 UML系统建模与分析设计 13
2019/3/29
UML系统建模与分析设计
14
(2)关联类 把类之间的关联定义成类,称为关联类。 关联类也有属性、操作并与其他的类关联。
2019/3/29
UML系统建模与分析设计
15
2019/3/29
UML系统建模与分析设计
16
2.多重关联
两个以上的类之间也可以互相关联。
2019/3/29
线段和交点两个对象之间关系的长式与短式对象图
UML系统建模与分析设计 9
4.3 描述对象类
4.3.1 类的属性描述
语法格式: 可见性 属性名[多重性]:类型[=初始值] 规则: (1)可见性:描述了该属性在哪些范围内可以使用。 +:表示其为公有成员,其它类可以访问(可见); -:表示其为私有成员,不能被其他类访问(不可见),可缺省; #:表示其为保护成员,一般用于继承,只能被本类及派生类使 用。 (2)属性名:代表属性的一个标识符。 (3)多重性:任选项,用多值表达式表示,格式为:低值..高值。 低值、高值为正整数,表示该类的实例对象的属性个数; 0..*表示从0个到无限多个; 可缺省,表示1..1,只有一个。
36
4.8.3 根据类之间的关系绘制类图
电梯系统实时控制软件建模及PLC实现

本文由南瓜乌梅条贡献pdf文档可能在WAP端浏览体验不佳。
建议您优先选择TXT,或下载源文件到本机查看。
2009年I1月控制工程Nov.2009V01.16.No.6第16卷96期ControlEngineeringofChina文章编号:1671-7848【2009)06-0787-04电梯系统实时控制软件建模及PLC实现马殷元1。
姚闯2(1.兰州交通大学机电技术研究所,甘肃兰州730070;2.兰州铁路局兰州车辆段.甘肃兰州730000)摘要:为降低开发难度、提高开发效率,提出把基于层次化状态图的建模技术和框架技术应用于PIE实时控制软件的开发。
以电梯控制为例说明了把此技术应用于PLC实时控制软件开发的过程。
首先根据电梯控制要求和电梯算法建立了系统顶层状态图模型。
然后分析了系统任务特性,根据任务特性提出了把控制任务分成局部顺序任务、全局实时任务和异步并发任务的系统分析方法,给出了任务间通信的方法。
提出了用函数封装任务实现状态嵌套、用置位或复位函数的“使能输八端”进行任务调度的软件实现方法。
最后给出了在西门子PLC上实现的电梯控制的主要程序和解决定时器失效问题的方法。
实现的软件具有较高的实时-】生,设计的PLC程序可作为类似控制软件的框架。
关键词:实时控制;建模;框架;PI£;电梯中图分类号:TP315文献标识码:AReal..TimeControlSoftwareModellingandPLC..CodeImplementationforElevatorSystemMAYin—yll,ao,,YA0Chuang(1.MechatroniealT&RInstitute,hmzhouJiaotongUniversity,Lanzhou730070,China;2.LanzhouRollingStockDepot,LⅢ.hollRailwayBureau,Lanzhou730000,China)Abstract:ToreducethedifficultyindevelopingPLCsoftwareforreal—timecontrolsystem,amodellingandframeworktechnologyin¥oftwm'eengineeringisadoptedindevelopingprocess.whichisdemonstratedbythedevelopmentof∞elevatorcontrolsystem.Thesys—establishedaccordingtotern-levelmodelofelevatorcontrolsystemistasksarethecontroldemandsandtheelevatoralgorithm.Thecontrollinglabelledbytheirpropertiesastheprivate—sequential—controltask.thepublic—real—timetaskandtheasynchronous—concurrentsettingortask.Theinter.taskcommunicationmethodis“Enableinputbit”.apr000蒯.Byonencapsulatingthetasksintosubroutines.andbyresettingtheispres?straetumlizedtoprogrambasedthemodelisdeveloped.Themainprogramofanelevatorcontrolsystemented.Andandcanthemethodsolvethemalfunctionofthetimerisintroduced.TheP比programimplementedDossosscshigherefficiency,beused∞aframeworkofthePIEsoftwareforreal—timecontrolsystem.Keywords:real.timecontrol;modelling;framework;PLC;elevator1引言的应用。
UML电梯实例

编写脚本
目的是决定每一个类应该做的操作,达到这个目 的的一种有效方法是列出用户和系统之间相互作 用的典型情况,即写出脚本。
画状态转换图(或事件跟踪图)
建立动态模型
用户A在3楼按上行按钮呼叫电梯,用户A希望到7楼去 上行按钮指示灯亮 一部电梯到达3楼,电梯内的用户B已按下了到9楼的按钮 上行按钮指示灯熄灭 电梯开门 用户A进入电梯 用户A按下电梯内到7楼的按钮 7楼按钮指示灯亮 电梯关门 电梯达到7楼 7楼按钮指示灯熄灭 电梯开门 用户A走出电梯 电梯在等待时间到后关门 电梯载着用户B继续上行到达9楼
实例—电梯系统
在一幢有m层楼的大厦中需要一套控制n部电梯的产 品,要求这n部电梯根据下列约束条件在楼层间移动。 每部电梯有m个按钮,每个按钮代表一个楼层。当按 下一个按钮时该按钮指示灯亮,同时电梯驶向相应的 楼层,当到达由按钮指定的楼层时指示灯熄灭。 除了大厦的最底层和最高层之外,每层楼都有两个按 钮分别指示电梯上行和下行。当这两个按钮之一被按 下时相应的指示灯亮,当电梯到达此楼层时灯熄灭, 电梯向请求的方向移动。 当电梯无升降动作时,关门并停在当前楼层。
确定类之间的关联
按钮
电梯按钮
楼层按钮
确定类的属性
1.分析 通常修饰名次的形容词可以表示类的属性。 同时还需要借助分析人员的领域知识,才能 分析除需要的属性。在分析过程中,首先找 出最重要的属性,以后再逐渐添加。 2.选择 从确定的属性中删掉不正确的或不必要的属 性。
确定属性
按钮
指示灯
电梯系统异常情况脚本
使用UML状态图进行系统状态建模

使用UML状态图进行系统状态建模在软件开发过程中,对系统进行状态建模是非常重要的一步。
状态建模可以帮助开发人员更好地理解系统的行为和状态转换,从而更好地设计和开发软件。
而UML状态图作为一种常用的状态建模工具,可以清晰地描述系统的状态及其之间的转换关系。
本文将介绍如何使用UML状态图进行系统状态建模。
1. 系统状态的定义系统状态是指系统在特定时间点上的属性和行为。
一个系统可以有多个状态,每个状态都具有一些特定的属性和行为。
在进行系统状态建模之前,我们首先需要明确系统的状态定义。
例如,对于一个电梯系统来说,可以定义以下几个状态:停止、运行、开门、关门等。
2. 状态的表示在UML状态图中,状态通过一个矩形框来表示。
矩形框中包含状态的名称,以及状态的属性和行为。
状态的属性和行为可以通过附加的标签来表示。
例如,对于停止状态,可以在矩形框中添加一个“停止”标签。
3. 状态之间的转换系统的状态不是静止的,而是会根据一定的条件和事件进行转换。
在UML状态图中,状态之间的转换通过箭头来表示。
箭头表示状态之间的转换条件和事件。
例如,对于电梯系统来说,可以通过箭头表示从停止状态到运行状态的转换,以及从运行状态到开门状态的转换。
4. 转换条件和事件的表示在UML状态图中,转换条件和事件可以通过标签来表示。
标签可以包含转换条件和事件的描述。
例如,对于从停止状态到运行状态的转换,可以在箭头上添加一个“按下上行按钮”标签,表示需要按下上行按钮才能进行状态转换。
5. 并发状态有些系统可能存在多个并发的状态,即多个状态同时存在。
在UML状态图中,可以使用水平的分支线来表示并发状态。
分支线从一个状态中分出多个状态,表示这些状态是并发的。
例如,对于电梯系统来说,可以使用分支线将停止状态和开门状态分开,表示这两个状态是并发的。
6. 子状态和超状态有时候,一个状态可以进一步细分为多个子状态。
在UML状态图中,可以使用嵌套的矩形框来表示子状态。
UML的设计模式和UML建模

代理模式
代理模式是一种 设计模式,用于 控制对对象的访 问。
代理模式可以提 供对对象的访问 控制,例如,可 以限制对对象的 访问权限,或者 可以提供对对象 的访问日志记录。
代理模式可以提 供对对象的访问 优化,例如,可 以缓存对象的数 据,或者可以提 供对对象的访问 负载均衡。
代理模式可以提 供对对象的访问 扩展,例如,可 以提供对对象的 访问权限控制, 或者可以提供对 对象的访问日志 记录。
UML建模的常用工具
Rational Rose:IBM公司开 发的UML建模工具,支持多 种UML图
ArgoUML:开源的UML建模 工具,支持多种UML图
StarUML:开源的UML建模 工具,支持多种UML图
Enterprise Architect: Sparx Systems公司开发 的UML建模工具,支持多 种UML图
UML的设计模式和UML 建模
XX,a click to unlimited possibilities
汇报人:XX
目录
01 添 加 目 录 项 标 题 03 U M L 建 模 的 基 本 概 念
02 U M L 设 计 模 式 概 述 04 U M L 设 计 模 式 的 常 见 类 型
05 U M L 建 模 的 实 践 方 法 07 U M L 建 模 的 最 佳 实 践 和 未 来
Part Three
UML建模的基本概 念
UML建模的定义和目的
UML建模是一种图形化的建模语言,用于描述和设计软件系统
UML建模的目的是为了更好地理解和描述软件系统的结构和行为,提高软件开发的效 率和质量
UML建模可以帮助软件开发人员更好地理解和沟通软件系统的需求和设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 需求陈述
一个无人值守电梯的轿箱通常停放在大楼的第一层.当某楼层有乘客按下按钮,电梯轿箱便会按照指令上升到该楼层接乘客,然后按照乘客的指令升降到指定楼层,到达后的乘客走下电梯。
电梯轿箱停在该楼层,等待下一个乘客的按钮指令。
系统对于等待的时间有一定的限制,在时间限制之内又有乘客按下按钮,电梯则重复前面的动作,电梯轿箱仍按照指令上升或下降到指定楼层,到达后,电梯轿箱继续等待下一个乘客的按钮指令,在每次的等待中,如果等待时间超过限制,电梯轿箱会自动返回到大楼的第一层,在那里继续等待乘客。
2.1 用例图
电梯系统用例图如下,主要包括用例、角色和关系。
用例图
乘客作为电梯里的角色,参与系统的5个用例,呼叫电梯、指定楼层、打开电梯门、关闭电梯门和拨打报警电话。
工作人员参与接受报警的用例。
2.2 类图
类图对系统进行静态建模,静态图主要描述系统功能需求-系统给最终用户提供服务。
类图描述一组类、接口和协作,及他们的关系。
类图
各类的详细声明如下:
(1)B utton类
一个抽象类,电梯停或启动的指示器。
(2)E levator_button
电梯内的人需要到达的楼层。
(3)B uilding_button
处于某楼层的人需要进入电梯上行或下行的指示。
(4)h elp_button
紧急情况下的报警。
(5)c ontrolor
用来控制电梯的上行、下行、关门、开门以及电梯调度工作等。
BState:电梯或楼层按钮的状态,若按下,则给控制器发送一个上行下行命令,否则,控制器控制电梯开门或停止。
3.1建动态模型
●用户A在3楼按上行按钮呼叫电梯,用户希望到7楼去
●上行按钮指示灯亮
●一部电梯到达3楼,电梯内的用户B已按下到9楼的按钮
●上行按钮指示灯熄灭
●电梯开门
●用户A进入电梯
●用户A按下电梯内到7楼的按钮
●7楼按钮指示灯亮
●电梯关门
●电梯到达7楼
●7楼按钮指示灯熄灭
●电梯开门
●用户B走出电梯
●电梯在等待超时到后关门
●电梯载着用户A继续下行到达1楼
3.2异常情况
●用户A在3楼按上行按钮呼叫电梯,用户A希望到1楼去●上行按钮指示灯亮
●一部电梯到达3楼,电梯内的用户B已按下了到9楼的按钮●上行按钮指示灯熄灭
●电梯开门
●用户A进入电梯
●用户A按下电梯内到1楼的按钮
●1楼按钮指示灯亮
●电梯在等待超时后关门
●电梯上行到9楼
●电梯内9楼按钮指示灯熄灭
●电梯开门
●用户B走出电梯
●电梯在等待超时后关门
●电梯载着用户A继续下行到达1楼
3.3状态图
状态图4.1序列图
序列图
4.2协作图
协作图
5. 其它工作及部分代码:
电梯设置
●电梯分为三种状态:静止,上升,下降。
跟随着电梯还有一个数
据,就是电梯当前所在楼层数floor_lift,其中floor_lift<=30&&floor_lift>=1。
●在系统中我们用数组来保存进入电梯的乘客的信息,即目标层数。
●关于超时问题,我们定义时间上限为30分钟。
乘客分析
●乘客的需求分为“上”和“下”两种。
此外乘客还有当前层数
floor_from以及目标层数floor_to。
当然floor_from、floor_to 也是在1~30之间的整数。
初始化
●电梯需要初始化,其中状态为静止state=0,层数floor_lift
设置为1。
目标层数数组需要初始化,即: for(i=0;i<30,i++) ●floor[i]=0;
电梯工作分析
电梯的上升下降
电梯的上升下降设置为一秒一层,即
Switch(state) //state分为0—静止,1—下降,2—上升
{
case 0:
break;
case 1:
floor_lift-=1;
break;
case 2:
floor_lift+=1;
break;
default:
cout<<”error state”<<endl;
}
静止状态检测
当数组全部为0时,将state设置为0.
电梯为静止状态时
用户输入,信息分为direction和floor_from。
Floor_from跟电梯所在楼层floor_lift进行比较,floor_from>floor_lift,那么把电梯状态改为上升,相对的当小于时改为下降。
当floor_from=floor_lift的时候,将乘客的信息加入数组,将乘客目标层数对应的数组元素设置为1。
即floor[floor_to-1]=1。
此时将电梯的状态改为用户的目标方向,即state==direction。
电梯为上升或下降状态时
将用户输入与电梯状态相比:
if((direction==state)&&(floor_lift==floor_from)) //用户目标方向与电梯方向一致时
floor[floor_to-1]=1; //允许用户进入并且输入目标层数
超时设置
当电梯的状态state为0时开始计时
While(i<1800) //每秒检测一次,静止状态保持30分钟则回到一层
{
If(state=!0) //检测状态,一旦状态改变,则停止计时break;
Sleep(1000);
i++;
}
State=1; //设置为下降状态,目标层数改为1楼
floor[0]=1;
6. 设计总结
经过了一个学期的学习和小组成员的共同努力,终于完成了这个作业。
由于我们只是在系统的设计思想上进行了统一的分析,并没有进行系统代码的设计,所以每人负责部分的方法可能名字上有些出入,不影响实际设计。
虽然完成的效果可能不是很好,但是小组的每个成员都很努力了,我们觉得还是有很多收获的。
由于刚刚学习UML这种统一建模语言,对很多概念和问题的理解不是很到位,所以肯定会犯很多错误,希望老师多多指正。
不过,虽然遇到好多不懂的问题,但是小组的每一位成员都能主动地去查阅相关资料了解并在一起讨论,通过这次作业,不仅让我们学到了知识,而且培养了团队协作精
神,我想这也是我们在课堂里面学不到的东西吧。
7.小组成员信息:
姓名学号
李洪岩2012110238 负责序列图及协作图
李东豫2012110021 负责用例分析及类图建模张建华2012111177 负责状态图实现及实验报告。