UML电梯系统建模

合集下载

【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、停⽌楼层按钮被扩展的⽤例⽆描述项说明。

电梯控制模型

电梯控制模型

状态转换图
状态转换图(简称为状态图)通过描绘系统的状态 及引起系统状态转换的事件,来表示系统的行为。
状态是任何可以被观察到的系统行为模式,一个 状态代表系统的一种行为模式。在状态图中用圆形框 或椭圆框表示状态,通常在框内标上状态名。状态规 定了系统对事件的响应方式。系统对事件的响应,既 可以是做一个(或一系列)动作,也可以是仅仅改变系 统本身的状态。通常,在表示状态的框内用关键字 do(后接冒号)标明进入该状态时系统的行为(即所做的 动作)。
3. 把策略形式化
在以上这段描述非形式化策略的文字中,共有八 个不同的名词:按钮、电梯、楼层、运动、大厦、指 示灯、请求和门。这些名词所代表的事物可作为控制 对象的初步候选者。其中,楼层和大厦是处于问题边 界之外的,因此可以忽略;运动、指示灯、请求和门 可以作为其他类的属性,例如,指示灯(的状态)可作 为按钮类的属性,门(的状态)可作为电梯类的属性。 经过上述筛选后只剩下两个候选类,即电梯和按钮。 补充了电梯控制器类之后,得到了图1所示的对象 模型。
图1电梯系统对象模型的第一次迭代
图2 电梯系统对象模型的第二次迭代
三、
建立动态模型
1. 编写脚本 这一步的目的是,决定每一个类应该做的操作。 达到这个目的的一种有效的方法,是列出用户和系统
之间相互作用的典型情况,即写出脚本(包括正常情况
脚本和异常情况脚本)。表1和表2分别是正常情况脚本 和异常情况脚本。
事件是在某个特定时刻发生的事情,它是对引起 系统从一个状态转换到另一个状态的外界事件的抽象。 简而言之,事件就是引起系统状态转换的控制信息。 在状态图中,从一个状态到另一个状态的转换用 箭头线表示,箭头表明转换方向,箭头线上标上事件
名。必要时可在事件名后面加一个方括号,括号内写

课件—UML系统建模与分析设计(5)

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

uml基本原理

uml基本原理

uml基本原理UML基本原理UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它提供了一套丰富的符号和规范,用于描述软件系统的结构、行为和交互。

UML的设计遵循一些基本原理,这些原理不仅为软件开发人员提供了一种统一的建模方式,还能提高软件系统的可理解性和可维护性。

本文将围绕UML的基本原理展开阐述。

1. 抽象与详细化UML通过抽象和详细化的方式来描述软件系统。

在建模过程中,我们可以从整体上抽象出系统的结构和行为,然后逐步详细化,直至得到具体的实现模型。

这种抽象与详细化的方式使得我们能够以不同层次的抽象度来描述软件系统,从而更好地理解和分析系统的各个方面。

2. 分解与组合UML支持将复杂的系统分解为较小的部分,以便更好地理解和管理系统。

通过分解,我们可以将系统划分为多个模块或组件,每个模块或组件负责特定的功能或任务。

同时,UML也支持将这些部分重新组合成一个整体系统。

这种分解与组合的方式使得软件系统的设计和开发更加模块化,提高了系统的可维护性和复用性。

3. 关注点分离UML提供了一种关注点分离的机制,使得建模人员能够将不同的关注点分开进行建模。

在建模过程中,我们可以将系统的结构、行为和交互等不同方面进行分离,从而使得每个关注点的描述更加清晰和准确。

这种关注点分离的机制有助于降低建模的复杂度,提高建模人员的效率。

4. 可视化表示UML提供了一套丰富的图形符号,用于可视化地表示软件系统的结构和行为。

通过使用这些图形符号,我们可以将抽象的概念转化为直观的图形表示,从而更好地理解和沟通系统的设计和实现。

常用的UML图形包括类图、用例图、活动图、时序图等,它们分别用于表示系统的静态结构、功能需求、流程行为和时序交互。

5. 模型驱动开发UML支持模型驱动开发(Model-Driven Development,简称MDD),这是一种基于模型的软件开发方法。

在MDD中,我们首先通过建模工具创建软件系统的模型,然后通过模型转换和代码生成等技术自动生成系统的代码。

uml的特点和用途

uml的特点和用途

uml的特点和用途UML(Unified Modeling Language)是一种用于软件系统建模的标准化语言,它具有以下特点和用途。

特点:1. 统一性:UML是一种统一的建模语言,它将多种建模技术整合在一起,包括结构建模、行为建模和交互建模等,使得不同的模型之间可以进行无缝的集成和协作。

2. 易学易用:UML采用图形符号和文本描述相结合的方式,使得它的语法和语义非常直观和易于理解,从而降低了学习和使用的难度。

3. 可扩展性:UML提供了一种扩展机制,允许用户根据具体的需求和场景进行定制和扩展,从而满足不同的建模需求。

4. 高度表达性:UML提供了丰富的图形符号和符号组合方式,可以灵活地表达不同的建模概念和语义,使得模型具有更高的表达性和可读性。

5. 易于工具支持:由于UML已成为行业标准,因此有许多建模工具和开发环境提供了对UML的良好支持,便于开发人员进行建模、分析和设计工作。

用途:1. 需求分析:通过使用用例图、活动图和状态图等UML图形,可以帮助分析师和开发团队更好地理解用户需求,明确系统功能和行为,并对需求进行有效的沟通和验证。

2. 系统设计:UML提供了类图、对象图和组件图等建模工具,可以帮助开发人员进行系统结构设计和模块划分,明确系统的组成部分和它们之间的关系,从而指导代码的编写和开发过程。

3. 架构设计:通过使用包图、部署图和组合结构图等UML图形,可以帮助架构师对系统进行整体设计和布局,明确系统的组织结构和部署方案,从而提高系统的可扩展性和可维护性。

4. 测试和验证:UML提供了序列图和协作图等建模工具,可以帮助测试人员进行系统测试和验证工作,明确系统的行为和交互方式,并根据模型生成测试用例和测试脚本,提高测试效率和覆盖率。

5. 文档生成:UML模型可以作为软件系统的文档,包含了系统的结构、行为和交互等信息,可以通过工具自动生成文档,提高文档的可读性和维护性。

6. 项目管理:UML可以作为项目管理工具的一部分,用于描述系统的工作流程、任务分配和资源调度等信息,帮助项目经理进行进度控制和资源管理。

uml建模实例100例

uml建模实例100例

uml建模实例100例UML(统一建模语言)是一种用于软件开发的标准建模语言,它可以帮助开发人员更好地理解、设计和实现软件系统。

下面是100个UML建模实例。

1. 用例图:描述系统功能和外部用户的行为。

2. 活动图:描述系统中的过程和活动,通常用来描述系统的业务流程。

3. 类图:描述系统中的类、属性和方法、关系等。

4. 对象图:描述系统中的对象及其关系。

5. 状态图:描述系统中的对象或类的状态和状态转换。

6. 序列图:描述系统中的对象或类之间的交互过程。

7. 协作图:描述系统中的对象或类之间的协作过程。

8. 构件图:描述系统的组成部分和它们之间的关系。

9. 部署图:描述系统的物理部署结构和组件之间的关系。

10. 通信图:描述系统中的对象之间的消息传递。

11. 包图:描述系统中的包和它们之间的关系。

12. 组合结构图:描述系统中的组成部分和它们之间的组合关系。

13. 时序图:描述系统中的对象或类之间的时间关系。

14. 交互概述图:描述系统中的对象或类之间的协作过程。

15. 系统顺序图:描述系统中的对象或类之间的时间关系。

16. 概念图:描述系统中的概念和它们之间的关系。

17. 数据流图:描述系统中的数据流和处理过程。

18. 流程图:描述系统中的过程和流程。

19. 参与者图:描述系统中的参与者和它们之间的关系。

20. 视图图:描述系统中的视图和它们之间的关系。

21. 规则图:描述系统中的规则和它们之间的关系。

22. 用例图扩展点:描述用例图中的扩展点和它们之间的关系。

23. 活动图扩展点:描述活动图中的扩展点和它们之间的关系。

24. 类图扩展点:描述类图中的扩展点和它们之间的关系。

25. 对象图扩展点:描述对象图中的扩展点和它们之间的关系。

26. 状态图扩展点:描述状态图中的扩展点和它们之间的关系。

27. 序列图扩展点:描述序列图中的扩展点和它们之间的关系。

28. 协作图扩展点:描述协作图中的扩展点和它们之间的关系。

数据结构设计--电梯模拟系统

数据结构设计--电梯模拟系统

[目录1.引言 ...................................................... 错误!未定义书签。

2.需求分析................................................... 错误!未定义书签。

3. 概要设计.................................................. 错误!未定义书签。

数据结构描述............................................. 错误!未定义书签。

模块设计................................................. 错误!未定义书签。

电梯的模拟流程图......................................... 错误!未定义书签。

4详细设计及实现............................................. 错误!未定义书签。

%全局变量的定义........................................... 错误!未定义书签。

人具体情况的定义......................................... 错误!未定义书签。

队、栈的类型............................................. 错误!未定义书签。

.电梯类型................................................ 错误!未定义书签。

系统类的定义............................................. 错误!未定义书签。

5.调试分析................................................... 错误!未定义书签。

为简易的电梯建立状态图

为简易的电梯建立状态图
协同策略 多部电梯之间通过协同算法,实现最优的乘客分配和电梯调度,提高整体运行效率。
案例三
状态定义
不同类型的电梯定义了各自的状态,包括普通电梯的待机、运行、开门和关门状态,以及无障碍电梯的额外 状态如残疾人呼叫等。
状态转换
各类型电梯在接收到乘客呼叫后,根据呼叫类型和当前电梯状态进行相应的状态转换。
随着人工智能和机器学习技术的发 展,未来的状态图将具备更强的自 主学习和优化能力,能够根据电梯 的实际运行情况进行自我调整和优 化。
目前的研究主要集中在单电梯的控 制上,未来随着高层建筑和智能建 筑的发展,多电梯协同控制将成为 研究热点,状态图将在其中发挥重 要作用。
电梯控制系统将更加 安全可靠
电梯作为现代建筑中不可或缺的交 通工具,其安全性至关重要。未来 的电梯控制系统将更加注重安全性 和可靠性,采用更加先进的控制算 法和安全保护措施,确保乘客的安 全。
控制逻辑
电梯控制系统根据乘客呼叫和当前电梯状态,决定电梯的运行方 向和停靠楼层。
案例二:某智能楼宇中多部电梯协同工作策略
状态定义
每部电梯定义了独立的状态,包括空闲状态、上行状态、下行状态和维修状态。
状态转换
电梯在空闲状态下接收到乘客呼叫后,根据呼叫方向和当前电梯位置,进入上行或下行状态;到达指定楼层并完成乘客接送 后,回到空闲状态;若电梯出现故障,则进入维修状态。
电梯状态转换条件及动作
03
待机至运行状态转换条件及动作
动作
启动电机,使电梯开始运行。
转换条件:电梯门关闭且收到有效的楼层指令。 显示当前楼层和目标楼层。
运行至停止状态转换条件及动作
转换条件:电梯到达目标楼层且速度减为零。
如果有其他楼层指令,则进入待机状态等待 下一次运行;否则保持停止状态。

电梯控制模型ppt课件

电梯控制模型ppt课件

在一个m层楼的大厦里,用每层楼的按钮和电梯内 的按钮来控制n
精选PPT课件
3
2.
为了提出一种解决上述问题的非形式化策略,必 须确定问题的约束条件。在上面已经对电梯问题提出 了三种约束。最好能用一小段文字把非形式化策略清 楚地表达出来,对电梯问题来说,解决问题的非形式
在一幢有m层楼的大厦里,用电梯内的和每个楼 层的按钮来控制n部电梯的运动。当按下电梯按钮以请 求在某一指定楼层停下时,按钮指示灯亮;当请求获 得满足时,指示灯熄灭。当电梯无升降操作时,关门
精选PPT课件
13
图3 电梯控精制选P器PT课类件的动态模型
14Leabharlann 精选PPT课件15
精选PPT课件
16
五、 根据从功能模型中获得的信息,重新审查对象模型
(图2)和动态模型(图3),以便进一步完善控制对象分 析的结果。
增加了“电梯门”类和“请求”类之后,得到对象 模型的第三次求精结果,如图5所示。
修改了对象模型之后,必须重新审查动态模型和 功能模型,看看是否需要进一步求精。显然,必须修 改功能模型,把数据存储“电梯门”和“请求”标识 为可做类.
精选PPT课件
17
图5 电梯系统对象模型的第三次迭代
精选PPT课件
18
在一幢有m
n 部电
梯的产品,要求这n部电梯根据下列约束条件在楼层间
精选PPT课件
1
C1:每部电梯有m个按钮,每个按钮代表一个楼层。当按 下一个按钮时该按钮指示灯亮,同时电梯驶向相应的 楼层,当到达由按钮指定的楼层时指示灯熄灭。
C2:除了大厦的最低层和最高层之外,每层楼都有两个 按钮分别指示电梯上行和下行。当这两个按钮之一被 按下时相应的指示灯亮,当电梯到达此楼层时灯熄灭,

UML建模课程设计(史上最全)

UML建模课程设计(史上最全)

UML建模课程设计目录1 引言 (4)2 UML概述 (4)2.1 UML简介 (4)2.2 UML模型图的构成 (4)2.3UML事物 (4)2.3.1构件事物 (5)2.3.2行为事物 (5)2.3.3分组事物 (5)2.3.4注释事物 (6)2.4 UML图及特征 (6)2.4.1 用例图 (6)2.4.2 类图 (6)2.4.3 对象图 (6)2.4.4 时序图 (6)2.4.5 协作图 (7)2.4.6状态图 (7)2.4.7活动图 (7)2.4.8组件图 (7)2.4.9配置图 (8)3 UML结合实例分析 (8)3.1 需求分析 (8)3.1.1系统开发需求 (8)3.1.2系统功能需求 (8)3.2 UML建模分析 (9)3.2.2类图 (10)3.2.3 活动图 (11)3.2.4 顺序图 (12)3.2.5 协作图 (13)3.2.6 状态图 (14)3.2.7 组件图 (15)3.2.8 部署图 (15)4 总结 (16)1 引言建模是开发优秀软件所有活动的核心部分。

在开发中利用UML来编制系统蓝图,并与仓库管理系统开发的特色相结合,提出了自己的一套UML的建模过程。

基于这个过程来进行系统的分析,设计,实现与测试。

运用UML建模思想与各种模型对仓库管理系统进行详细的描述。

2 UML概述2.1 UML简介UML (Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。

适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。

UML的定义包括UML语义和UML表示法两个部分。

UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。

UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。

2.2 UML模型图的构成事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象关系(Relationships):关系把事物紧密联系在一起图(Diagrams ):图是事物和关系的可视化表示2.3UML事物UML语言的事物,包括四类:结构事物:语言的静态构成要素,有7种:类和对象、接口、主动类、用例、协作、构件、节点。

UML系统建模从入门到实战

UML系统建模从入门到实战

UML系统建模从入门到实战1 概述1.1 课程概述•汇集uml及其相关的一些话题•回顾uml相关的符号与概念•以电商订单相关业务为例,借助uml完成系统建模•将uml变成提升建模效率,表达架构思想的工具1.2 什么是umlUnified Modeling Language 统一建模语言,又称标准建模语言。

是用来对软件密集系统进行可视化建模的一种语言。

语言,也就是一个表达思想的符号约定。

1.3 uml的发展与版本•建模语言出现在二十世纪70年代,80年代末开始迅速发展,建模语言达到了50多种,百家争鸣•后来,Rumbaugh 于1994年加入Booch所在的Rational公司,他们一起研究一种统一的方法•一年后,Unified Method 0.8诞生•经过他们三年的共同努力,UML0.9和UML0.91于1996年相继面世。

•此后UML创始人Booch等人,邀请计算机界的知名人士与企业IBM,HP,Microsoft,Oracle等对UML进行评论,听取意见。

•1997年1月,Rational公司向OMG(对象管理组织)提交了UML1.0•1997年11月,OMG宣布接受UML,认定为标准的建模语言•1998年发布了UML 1.2•1999年发布了UML 1.3•2003年3月发布了UML 1.5•2004年推出UML2.01.4 uml可以做什么从命名上分析:统一、建模、语言统一:没有规矩不成方圆,它指定了一种标准,一种约束,使得大家的表达变得一致。

它被OMG(ObjectManagement Group)所认可。

建模:复杂业务系统建模,即建立软件系统模型。

uml的创始人之一Booch,曾用建一座摩天大楼来比喻uml的必要性。

简单系统下,可有可无,系统复杂或大到一定程度,建模和文档成为系统周期里非常重要的一环。

语言:面向对象思想的表达。

互相之间的沟通工具。

一种按照特定规则和模式组成的符号系统。

UML(ATM系统)动态建模

UML(ATM系统)动态建模

实验3 动态建模一、实验目的与要求1 掌握分析ATM系统用例中用例的流程,分析对象之间的交互关系2 掌握用UML设计参与对象之间的交互,用状态图、时序图、协作图和活动图来描述系统的行为。

二、实验设备、环境PC(一台),Windows 2000或以上版本,安装Microsoft Visio 2003三、实验内容及步骤1 交互图:实现ATM系统的序列关系图和通信(协作)关系图;2 分析设计软件系统的状态图。

((1)和(2)选做一个状态图);(1)A TM系统(2)具体题目如下:某销售POS机,它的工作流程是:当客户到收银台后,收银员逐一输入用户购买的商品,输入完之后,计算出总金额,然后等待用户付款,确定支付成功之后,完成收银,等待下一个客户。

请为其绘制出相应的状态机图。

3分析设计ATM系统的活动图(选做1个活动图)。

建立动态模型:建立序列关系图、状态图、活动图步骤:●编写脚本●确定各个对象之间的事件●构造事件追踪图(交互图)●构造状态图●添加活动和动作一、时序关系图1)ATM系统的正常情况脚本●ATM请储户插卡;储户插入一张现金兑换卡。

●ATM接受该卡并读它上面的卡号。

●ATM要求储户输入密码;储户输入自己的密码“1234”等数字。

●ATM请求系统验证卡号和密码;核对储户密码,然后通知显示器显示说这张卡有效。

●ATM要求储户选择事务类型(取款、转账、查询等);储户选择“取款”。

●ATM要求储户输入取款额;储户输入“880”。

●ATM确认取款额在预先规定的限额内,然后要求处理这个事务;成功处理完这项事务并返回该账户的新余额。

●ATM吐出现金并请储户拿走这些现金;储户拿走现金。

●ATM问储户是否继续这项事务;储户回答“不”。

●ATM打印账单,退出现金兑换卡,请储户拿走它们;储户取走账单和卡。

●ATM请储户插卡。

2)ATM系统的异常情况脚本●ATM请储户插卡;储户插入一张现金兑换卡。

●ATM接受该卡并顺序读它上面的数字。

电梯简易UML图

电梯简易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.识别参与者:指系统之外,透过系统边界与系统进⾏有意义交互的事物,参与者的确定代表系统边界的确定,就知道哪些外部对象在与系统交互参与者不仅可以由⼈承担,也可以是其他系统,设备,时间等技巧:参与者使⽤功能、改变系统数据、获取系统信息、利⽤系统完成⽇常任务、维护管理系统并保证其资产运⾏、与系统交互、利⽤系统产⽣的结果、或者为时间、⽓温等外部条件参与者的泛化:表⽰⼀个⼀般性参与者(⽗参与者)与⼀个更为特殊的参与者(⼦参与者)之间的联系,⼦参与者继承⽗参与者的⾏为和含义并且增加⾃⼰的特有的⾏为和含义。

电梯建模

电梯建模

电梯建模分析与设计问题描述:在一座10层高的宾馆大厅内,有4部由一个控制器控制的电梯。

乘客随时在各层选择要去的楼层。

要求:(1)设计一个电梯算法,满足乘客的要求(侯时应较少)。

(2)区分电梯的状态,如空运行、载入运行、超重、当前有故障等。

(3)在电梯全部无人乘坐时,电梯要按一定条件分布在各层。

(4)保存一个星期内个电梯的运行记录。

问题分析:本问题中可以设计一个电梯控制系统对电梯进行调度,电梯控制系统是一个实时系统,一般来说,实时系统是复杂的,因为它必须处理很多外部并发事件,这些事件的到来次序和几率通常是不可预测的,而且系统必须在事先设定好的时限内做出相应的响应。

1、需求分析1.1 系统描述随着社会的发展,电梯作为一种不可缺少的垂直交通工具,应用越来越广泛,因此有必要开发一个电梯控制系统对电梯进行最优调度。

本电梯系统用来控制4部运行于一个具有10层的宾馆的电梯,每一架电梯都有一个编号,以方便监控与维修。

控制器控制四台电梯,主要负责控制电梯上下,向电梯发送启动、制动、加速、减速、开关电梯门的信号。

若电梯发生故障,还应向相应的电梯负责人发送求救信号。

大楼的每一层都有:(1)两个指示灯:这两个指示灯分别用于指示电梯当前所在的层数和电梯当前的状态(上行、下行或停止)。

(2)按钮:在每一层,都有调用按钮,除了顶层和底层之外,都有两个按钮,一个是向上呼叫按钮,一个是向下呼叫按钮。

在顶层,只有向下呼叫按钮,在底层只有向上呼叫按钮。

(3)电梯锁:用于将本层的电梯门锁住,并使本层的电梯按钮失效,电梯里相应的按钮也失效,使得电梯不能也不可能停在本层。

电梯里面有:(1)标示从“1”到“10”的10个按钮,用于让乘客选择所要到的的层数。

(2)关门按钮:当乘客按下此按钮时,电梯门如果开着将关上,否则不执行任何操作。

(3)开门按钮:当乘客按下此按钮时,电梯如果停止某一层,电梯门将打开,否则不执行任何操作。

(4)超重测试和警报装置:电梯的地面有超重感应装置,当电梯载重达到某一个值时,电梯“超重警报铃”发出超重警报,并且电梯不执行关门操作。

UML电梯实例

UML电梯实例

编写脚本

目的是决定每一个类应该做的操作,达到这个目 的的一种有效方法是列出用户和系统之间相互作 用的典型情况,即写出脚本。

画状态转换图(或事件跟踪图)
建立动态模型




用户A在3楼按上行按钮呼叫电梯,用户A希望到7楼去 上行按钮指示灯亮 一部电梯到达3楼,电梯内的用户B已按下了到9楼的按钮 上行按钮指示灯熄灭 电梯开门 用户A进入电梯 用户A按下电梯内到7楼的按钮 7楼按钮指示灯亮 电梯关门 电梯达到7楼 7楼按钮指示灯熄灭 电梯开门 用户A走出电梯 电梯在等待时间到后关门 电梯载着用户B继续上行到达9楼
实例—电梯系统



在一幢有m层楼的大厦中需要一套控制n部电梯的产 品,要求这n部电梯根据下列约束条件在楼层间移动。 每部电梯有m个按钮,每个按钮代表一个楼层。当按 下一个按钮时该按钮指示灯亮,同时电梯驶向相应的 楼层,当到达由按钮指定的楼层时指示灯熄灭。 除了大厦的最底层和最高层之外,每层楼都有两个按 钮分别指示电梯上行和下行。当这两个按钮之一被按 下时相应的指示灯亮,当电梯到达此楼层时灯熄灭, 电梯向请求的方向移动。 当电梯无升降动作时,关门并停在当前楼层。
确定类之间的关联
按钮
电梯按钮
楼层按钮
确定类的属性


1.分析 通常修饰名次的形容词可以表示类的属性。 同时还需要借助分析人员的领域知识,才能 分析除需要的属性。在分析过程中,首先找 出最重要的属性,以后再逐渐添加。 2.选择 从确定的属性中删掉不正确的或不必要的属 性。
确定属性
按钮
指示灯
电梯系统异常情况脚本


相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.需求陈述
一个无人值守电梯的轿箱通常停放在大楼的第一层.当某楼层有乘客按下按钮,电梯轿箱便会按照指令上升到该楼层接乘客,然后按照乘客的指令升降到指定楼层,到达后的乘客走下电梯。

电梯轿箱停在该楼层,等待下一个乘客的按钮指令。

系统对于等待的时间有一定的限制,在时间限制之内又有乘客按下按钮,电梯则重复前面的动作,电梯轿箱仍按照指令上升或下降到指定楼层,到达后,电梯轿箱继续等待下一个乘客的按钮指令,在每次的等待中,如果等待时间超过限制,电梯轿箱会自动返回到大楼的第一层,在那里继续等待乘客。

2.1 用例图
电梯系统用例图如下,主要包括用例、角色和关系。

用例图
乘客作为电梯里的角色,参与系统的5个用例,呼叫电梯、指定楼层、打开电梯门、关闭电梯门和拨打报警电话。

工作人员参与接受报警的用例。

2.2 类图
类图对系统进行静态建模,静态图主要描述系统功能需求-系统给最终用户提供服务。

类图描述一组类、接口和协作,及他们的关系。

类图
各类的详细声明如下:
(1)Button类
一个抽象类,电梯停或启动的指示器。

(2)E levator_button
电梯内的人需要到达的楼层。

(3)B uilding_button
处于某楼层的人需要进入电梯上行或下行的指示。

(4)help_button
紧急情况下的报警。

(5)controlor
用来控制电梯的上行、下行、关门、开门以及电梯调度工作等。

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分钟。

乘客分析
●ﻩ乘客的需求分为“上”和“下”两种。

此外乘客还有当前层数fl
oor_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;
ﻩﻩcase1:
ﻩﻩ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>f loor_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 负责状态图实现及实验报告。

相关文档
最新文档