状态图和顺序图

合集下载

软件工程---交互建模之交互图,顺序图与协作图

软件工程---交互建模之交互图,顺序图与协作图

2.5 消息
格式
[前缀][守卫条件][顺序表达式][返回值:=]消息名([参数列表])
例:
2: display ()
简单消息
1.3.1: p:=find()
带返回值的嵌套消息
[x<0] 4: invert(x, color) 条件消息
3.1 *[x = 1..10] : update() 循环消息
[ 条件子句 ] 条件子句一般用来表示分枝而不是用作守卫条件[x<0]是两个可
以用来分枝的条件子句这两个条件只能有一个为真因而只有一 个分枝被执行(即发送与分枝有关的消息) 条件子句和循环子句都可以用伪代码或真正的编程语言来表示 序列表达式用冒号结束
返回值、消息名和参数表
返回值表示一个操作调用(即一个消息)的结 果
顺序图中消息编号可显示,也可不显示。 协作图中必须显示Procedure Call) 异步(Asynchronous) 返回(Return) 自关联消息(Self Message)
2.5 消息
UML三种消息:
调用(Procedure Call) 发送者把消息发送后,等待直到接收者返回控制, 可以表示同步(synchronous message); 实心箭头符号
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
2.3 生命线
生命线(Lifeline):
每个对象都有自己的生命线,用来表示在该用例中一个对象在一段时 间内的存在
垂直的虚线 如果对象生命期结束, 则用注销符号表示 对象默认的位置在图 顶部,表示对象在交互 之前已经存在 如果是在交互过程中 由另外的对象所创建, 则位于图的中间某处。
顺序图
面向时间描述对象交互的图
协作图

UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能

UML各种图例齐全—用例图、类图、状态图、包图、协作图、顺序图详细说明书画法和功能

UML各种图例面向对象的问题的处理的关键是建模问题.建模可以把在复杂世界的许多重要的细节给抽象出.许多建模工具封装了UML(也就是Unified Modeling Language ™),这篇课程的目的是展示出UML的精彩之处.UML中有九种建模的图标,即:∙用例图∙类图∙对象图∙顺序图∙协作图∙状态图∙活动图∙组件图∙配置图本课程中的某些部分包含了这些图的细节信息的页面链接.而且每个部分都有一个小问题,测试一下你对这个部分的理解.为什么UML很重要?为了回答这个问题,我们看看建筑行业.设计师设计出房子.施工人员使用这个设计来建造房子.建筑越复杂,设计师和施工人员之间的交流就越重要.蓝图就成标准文档为了这个行业中的设计师和施工人员的必修课.写软件就好像建造建筑物一样.系统越复杂,参与编写与配置软件的人员之间的交流也就越重要.在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”.现在它已经成为了软件行业的一部分了.UML提供了分析师,设计师和程序员之间在软件设计时的通用语言.UML被应用到面向对象的问题的解决上.想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的.一个模型model就是根本问题的抽象.域domain就是问题所处的真实世界.模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的.记住把一个对象想象成“活着的”.对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations).对象的属性的值决定了它的状态state.类Classes是对象的“蓝图”.一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数).对象是类的实例instances.用例图用例图Use case diagrams描述了作为一个外部的观察者的视角对系统的印象.强调这个系统是什么而不是这个系统怎么工作.用例图与情节紧紧相关的.情节scenario是指当某个人与系统进行互动时发生的情况.下面是一个医院门诊部的情节.“一个病人打电话给门诊部预约一年一次的身体检查.接待员找出在预约记录本上找出最近的没有预约过的时间,并记上那个时间的预约记录.”用例Use case是为了完成一个工作或者达到一个目的的一系列情节的总和.角色actor是发动与这个工作有关的事件的人或者事情.角色简单的扮演着人或者对象的作用.下面的图是一个门诊部Make Appointment用例.角色是病人.角色与用例的联系是通讯联系communication association(或简称通讯communication)标准文档角色是人状的图标,用例是一个椭圆,通讯是连接角色和用例的线.一个用例图是角色,用例,和它们之间的联系的集合.我们已经把Make Appointment作为一个含有四个角色和四个用例的图的一部分.注意一个单独的用例可以有多个角色.用例图在三个领域很有作用.决定特征(需求).当系统已经分析好并且设计成型时,新的用例产生新的需求标准文档∙客户通讯.使用用例图很容易表示开发者与客户之间的联系.∙产生测试用例.一个用例的情节可能产生这些情节的一批测试用例.类图类图Class diagram通过显示出系统的类以及这些类之间的关系来表示系统.类图是静态的-它们显示出什么可以产生影响但不会告诉你什么时候产生影响.下面是一个顾客从零售商处预定商品的模型的类图.中心的类是Order.连接它的是购买货物的Customer和Payment.Payment有三种形式:Cash,Check,或者Credit.订单包括OrderDetails(line item),每个这种类都连着Item.标准文档UML类的符号是一个被划分成三块的方框:类名,属性,和操作.抽象类的名字,像Payment是斜体的.类之间的关系是连接线.类图有三种关系.关联association-表示两种类的实例间的关系.如果一个类的实例必须要用另一个类的实例才能完成工作时就要用关联.在图中,关联用两个类之间的连线表示.标准文档标准文档为了简单地表示出复杂的类图,可以把类组合成包packages.一个包是UML上有逻辑关系的元件的集合.下面这个图是是一个把类组合成包的一个商业模型.dependencies关系.如果另一个的包B改变可能会导致一个包A改变,则包A依赖包B.包是用一个在上方带有小标签的矩形表示的.包名写在标签上或者在矩形里面.点化线箭头表示依赖对象图Object diagrams用来表示类的实例.他们在解释复杂关系的细小问题时(特别是递归关系时)很有用.这个类图示一个大学的Department可以包括其他很多的Departments.标准文档这个对象图示上面类图的实例.用了很多具体的例子.UML中实例名带有下划线.只要意思清楚,类或实例名可以在对象图中被省略.标准文档每个类图的矩形对应了一个单独的实例.实例名称中所强调的UML图表.类或实例的名称可能是省略对象图表只要图的意义仍然是明确的.顺序图类图和对象图是静态模型的视图.交互图是动态的.他们描述了对象间的交互作用.顺序图将交互关系表示为一个二维图.纵向是时间轴,时间沿竖线向下延伸.横向轴代表了在协作中各独立对象的类元角色.类元角色用生命线表示.当对象存在时,角色用一条虚线表示,当对象的过程处于激活状态时,生命线是一个双道线.消息用从一个对象的生命线到另一个对象生命线的箭头表示.箭头以时间顺序在图中从上到下排列.标准文档协作图协作图也是互动的图表.他们像序列图一样也传递相同的信息,但他们不关心什么时候消息被传递,只关心对象的角色.在序列图中,对象的角色放在上面而消息则是连接线.标准文档对象角色矩形上标有类或对象名(或者都有).类名前面有个冒号(:).协作图的每个消息都有一个序列号.顶层消息的数字是1.同一个等级的消息(也就是同一个调用中的消息)有同样的数字前缀,再根据他们出现的顺序增加一个后缀1,2等等.状态图对象拥有行为和状态.对象的状态是由对象当前的行动和条件决定的.状态图statechart diagram显示出了对象可能的状态以及由状态改变而导致的转移.标准文档我们的模型例图建立了一个银行的在线登录系统.登录过程包括输入合法的密码和个人账号,再提交给系统验证信息.登录系统可以被划分为四种不重叠的状态:Getting SSN, Getting PIN, Validating, 以及 Rejecting.每个状态都有一套完整的转移transitions来决定状态的顺序.标准文档状态是用圆角矩形来表示的.转移则是使用带箭头的连线表示.触发转移的事件或者条件写在箭头的旁边.我们的图上有两个自转移.一个是在Getting SSN,另一个则在上Getting PIN.初始状态(黑色圆圈)是开始动作的虚拟开始.结束状态也是动作的虚拟结束.事件或条件触发动作时用(/动作)表示.当进入Validating状态时,对象并不等外部事件触发转移.取而代之,它产生一个动作.动作的结果决定了下一步的状态.活动图活动图activity diagram是一个很特别的流程图.活动图和状态图之间是有关系的.状态图把焦点集中在过程中的对象身上,而活动图则集中在一个单独过程动作流程.活动图告诉了我们活动之间的依赖关系.对我们的例子来说,我们使用如下的过程.“通过ATM来取钱.”这个活动有三个类Customer, ATM和 Bank.整个过程从黑色圆圈开始到黑白的同心圆结束.活动用圆角矩形表示.标准文档标准文档标准文档。

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

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

事件跟踪图+状态图

事件跟踪图+状态图
软件工程
第九周
回顾
类图
三种模型
对象模型………………….对谁做 表示静态的、结构化的系统的“数据”性质。 动态模型…………………….何时做 表示瞬时的、行为化的系统的“控制”性质, 它规定了对象模型中的对象的合法变化序列。
功能模型……………………….做什么 表示变化的系统的“功能”性质,它指明了 系统应该“做什么”。
定义服务
常规行为
读、写类属性的操作。无需在对象图中显式表示
从事件导出的操作
状态图中发往对象的事件 ATM:“中止”“打印账单” 分行:“请分行验卡”“验证卡号”
利用继承减少冗余操作
第9周研讨
动态建模实例分析
实例1:实验九 实例2:
自行车租赁管理系统”规定:每个客户 最多可同时租赁3辆自行车;注销客户必须归 还所有租赁的自行车。画出“客户”的状态 图。
事件“user selects book”是否影响“订单”的状态? 现有用户首先必须输入什么个人信息?
何种情况下,向新用户显示消息“Secure Area”? 如何用户要将一本书送给他人,应该在什么时候进行?
一旦支付后,用户能否改变主意取消订购?
课堂练习
练习:当有新同学入学时,将会给新同学创建一个新的账 号,新同学可以用这个账号去选课。一般来说,每个人的 选课数目是有限的,如选择6门课程后将不能再选课。如 果已经选了6门课程还要再选课,就必须删除已选的课程 。直到这位同学毕业,将其账号删除。请创建学生账号类 的状态图。
(1)一个图书馆藏有图书和期刊杂志两大类书籍,每种图书/ 杂志可以有多册。
(2)图书馆可以维护(注册、更新和删除)图书资料。 (3)图书管理员在系统支持下,为借书者进行借还图书服务。 (4)所有人员可以网上浏览图书馆的图书信息和各种告示。 (5)借书者可以预约暂时借阅不到的书或杂志。 (6)系统能够在所有流行的技术环境下运行,有一个良好的图 形交互界面。 (7)系统应该具有良好的可扩展性。

UML之顺序图

UML之顺序图

UML之顺序图⼀定义顺序图是将交互关系表⽰为⼀个⼆维图。

纵向是时间轴(⽣命线),时间沿竖线向下延伸。

横向轴代表了在协作中各独⽴对象的类元⾓⾊。

类元⾓⾊⽤⽣命线表⽰。

当对象存在时,⾓⾊⽤⼀条虚线表⽰,当对象的过程处于激活状态时,⽣命线是⼀个双道线;⼆顺序图的要素活动者,对象、⽣命线、控制焦点、消息活动者:活动的发起⼈活着活动的承受者。

对象:活动中交互的实体,三种表⽰如下:⽣命线:描述对象的⽣存周期,对象下⽅的虚线就是⽣命线,如上图。

控制焦点:指活动者或对象执⾏状态的时间段:消息:消息⽤于描述对象间交互的⽅式和内容:1.同步消息:⼀个对象向另⼀个对象发出同步消息后,将处于阻塞状态,⼀直等到另⼀个对象的回应。

2.异步消息:⼀个对象向另⼀个对象发出异步消息后,这个对象可以进⾏其他的操作,不需要等到另⼀个对象的响应。

3.返回消息:同步消息的返回消息4.⾃关联消息:⽤来描述对象内部函数的互相调⽤。

1.条件判断:⽤于描述代码中if…else…这种结构标记为“alt” 例如:2.可选:是⼀种特殊的“条件判断”,它只是⼀个if,没有else if或else 可选的标记为:opt 例如:3.循环:是指代码中的for、while之类的语句块。

循环的标记为:loop例如:下图中[m,n]是指⾄少执⾏m次,最多执⾏n次4.同步:⽤于描述多线程的情况。

同步的标记是:par 例如:顺序图的引⽤:在⼀个顺序图中,可以引⽤另⼀个顺序图,其引⽤⽅式类似于复合⽚段,标签为:ref 例如:三:画顺序图的步骤1. 确定交互的范围2. 确定参与交互的活动者与对象3. 确定活动者、对象的⽣存周期4. 确定交互中产⽣的消息5. 细化消息的内容四:酒店预订的⼀个⽤例(寻找酒店)代码实例:五:⽤例图、活动图、时序图之间的关系六:类图与时序图之间的关系类图描述系统的静态结构,时序图描述系统的动态⾏为。

若出现了⼀个新的消息(不是类中的操作),则需要为类添加⼀个新的操作。

状态图和顺序图

状态图和顺序图
的。 • 交互图中大量的消息是异步消息。 • 异步消息的接收者必须是一个主动对象。
27
异步方式
• 异步方式的时间问题。 • 因为供应商不需要等待
销售商(存储价格)的处 理所以节省了2秒钟时 间。
28
异步方式
• 在许多情况下客户端 与服务器联系后,并 不需要等待应答或不 需要立即应答。
• 客户建立异步联系后 (只需建立对异步回 答的监听)可以做自 已另外的事情。
receiveSoda(selection)
用例“买饮料”的最理想场景建模的顺序图31
饮料销售机
:Customer
:Front
:Register
:Dispenser
accept(cash,selection) getCustomerInput(cash,selection) checkAvailability(selection) Sold Out
状态图
(state diagram) 主要内容:
• 1 什么是状态图,如何使用 • 2 如何使用事件、动作和保护条件
1
状态图的应用概念
• 行为元素:能够展示UML模型如何随时 间变化。
• 状态图:对象生命周期中各个时期的状 态以及引起变化的事件。
捕获系统动态行为(面向事件的)
2
状态图的应用概念
• 对于一个在一段时间内连续运行的软件 系统,一定是由许多对象在不断地交互, 在交互过程中只有对象在不断改变状态 其交互才具有意义,并且对用户具有价 值。
updateReserve(cash,selection)
releaseSoda(selection) receiveSoda(selection)
饮料销售机的一般顺序图(部分) 34

UML中共有5种静态图

UML中共有5种静态图

UML中共有5种静态图:用例图,类图,对象图,组件图和配置图。

(1)用例图Use Case Diagram用例图展现了一组用例、参与者以及它们之间的关系可以用来描述系统的静态使用情况。

上图中小人形状的用户和ATM是参与者、椭圆形状的如插入卡、输入密码等是用例(2)类图Class Diagram类图展示了一组类、接口、子类以及他们之间的关系,在建模中最常用到的图就是类图;可以用类图说明系统的静态设计视图,包含主动类的类图。

上图中反应了5个类之间的关联关系,人民币账户和美元帐户从账户继承,账户和ATM相关联,两种账户和用户相关联(3)对象图Object Diagram对象图展示了一组对象和他们间的关系,可以用来说明类图中翻译的事物实例的数据结构和静态快照,表达了系统的静态设计视图和静态过程视图,除了显示和原型方面的因素外,它与类图的作用是相同的。

(4)组件图Component Diagram组件图,又名构件图,展现了一组组件之间的组织和依赖,用于对源代码、可执行的发布、物理数据库和可调整的系统建模。

上图中组件1和组件3依赖于组件2(5)配置图Deployment Diagram配置图展现了对运行时处理节点以及其中组件的配属,它描述系统硬件的物理拓扑结构,以及在此结构上执行的软件。

用配置图说明系统结构的静态配置视图,即说明分布、交互和安装的物理系统。

上图中,三个处理机与两个涉笔,相互之间是关联的关系UML中动态图有四种,分别是:时序图、协作图、状态图和活动图。

(1)时序图Sequence Diagram时序图展现了一组对象和由这组对象收发的信息,用于按时间顺序对控制流建模。

可以用时序图来说明系统的动态视图。

这里貌似有不同的说法Visual Paradigm里面叫时序图为Timing Diagram,而我参照的教材里边没有这种图,按理说是应该有的。

上图反应了用户与ATM交互的整个过程。

(2)协作图Collaboration Diagram协作图展现了一组对象之间的链接以及这组对象收发的消息,强调收发消息对象的组织结构,按组织结构对控制流建模。

UML:图的分类及作用(共5类图,有9种图形)

UML:图的分类及作用(共5类图,有9种图形)

UML:图的分类及作⽤(共5类图,有9种图形)第⼀类:⽤例图:从⽤户⾓度描述系统功能,并指出各功能的操作者。

第⼆类:静态图:包括类图、对象图和包图。

1、类图:表⽰类之间的联系如关联、依赖、聚合等,包括类的内部结构(类的属性和操作)。

在系统的整个⽣命周期都是有效的 2、对象图:表⽰类图的⼀个实例,对象图只能在系统某⼀时间段存在。

3、包图:表⽰包与包之间的关系。

包图⽤于描述系统的分层结构。

第三类:⾏为图:状态图、活动图。

描述系统的动态模型和组成对象间的交互关系。

1、状态图:是对类图的补充,描述类的对象所有可能的状态以及事件发⽣时状态的转移条件。

在实⽤上并不需要为所有的类画状态图,仅为那些有多个状态其⾏为受外界环境的影响并且发⽣改变的类画状态图。

2、描述满⾜⽤例要求所要进⾏的活动以及活动间的约束关系,有利于识别并⾏活动。

第四类:交互图:包括顺序图 ,协作图(即合作图) 1、顺序图:强调的是时间和顺序的关系 2、协作图:强调的是上下级关系第五类:实现图:构件图,描述代码部件的物理结构及各部件之间的依赖关系。

从应⽤的⾓度看,当采⽤⾯向对象技术设计系统时,⾸先是描述需求;其次根据需求建⽴系统的静态模型,以构造系统的结构;第三步是描述系统的⾏为。

其中在第⼀步与第⼆步中所建⽴的模型都是静态的,包括⽤例图、类图(包含包)、对象图、组件图和配置图等五个图形,是标准建模语⾔UML的静态建模机制。

其中第三步中所建⽴的模型或者可以执⾏,或者表⽰执⾏时的时序状态或交互关系。

它包括状态图、活动图、顺序图和合作图等四个图形,是标准建模语⾔UML的动态建模机制。

因此,标准建模语⾔UML的主要内容也可以归纳为静态建模机制和动态建模机制两⼤类。

总结:1、静态图:包括⽤例图、类图(包含包)、对象图、组件图和配置图等五个图形,⾸先是描述需求;其次根据需求建⽴系统的静态模型,以构造系统的结构; 2、动态图:包括状态图、活动图、顺序图和合作图等四个图形,是描述系统的⾏为;。

ATM(自动取款机)的用例图

ATM(自动取款机)的用例图

ATM(自动取款机)的用例图、类图、顺序图、状态图、活动图及协作图1 用例图参与者"银行储户"和ATM机。

简化后的ATM机仅有取款、存款及其余功能。

其余功能不做详细说明。

2 类图图2所示的银行系统类图和图5是类似的,只是将工作人员换成了ATM。

整个银行系统包括了帐户库、银行储户库及ATM系统。

许多单个的帐户组成了帐户库。

帐户具有帐户类型、帐户号、余额三个属性,均为private,其类型分别为char,int,double。

六个操作分别为setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance、getBalance,除caculateBalance为protected其余均为public。

setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型。

getType获取帐户类型,返回类型为char,无参数。

setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号。

getAccountNumbe获取帐户号,返回类型为int,无参数。

caculateBalance计算余额,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输出。

getBalance获取帐户余额,返回类型为double,无参数。

许多银行储户组成了储户库。

ATM系统包含了许多ATM机。

银行储户及ATM 机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。

更多的属性及操作都可以一一加上,使这个类图更详细更完整,从而使参与项目的每个成员都能无歧义的明了整个设计的类的结构。

同样对于一个真正的银行系统,这个类图过于简单。

比如帐户类型我们可以先定义一个abstract class,它包含一个帐户最基本的属性及操作。

第5章动态交互模型-顺序图

第5章动态交互模型-顺序图

铃声停止 电话连通
电话断开 打电话者挂机
铃声 受话方回答 铃声停止 电话连通 受话方挂机 电话断开
顺序图的相关概念
• UML的交互图是用户系统动态方面的建模,交互图可分为顺序图和协 作图。
• 顺序图(Sequence Diagram)描述了对象之间传递消息的时间顺序, 它用来表示用例中的行为顺序,是强调消息时间顺序的交互图。顺序 图描述类系统中类和类之间的交互,它将这些交互建模成消息交换, 也就是说,顺序图描述了类以及类间相互交换以完成期望行为的消息。 • 顺序图包括了4个元素,分别是对象(Object)、生命线(Lifeline)、 激活(Activation)和消息(Message)。
– 1.对象(Object) – 2.链(Link)
– 3.消息(Message)

• 链是关联的实例,当一个类与另一个类之间有关联时,这两个类的实
例之间就有链,一个对象就能向另一个对象发送消息。所以链是对象
间的发送消息的路径。 • 要在通信图中增加消息,必须先建立对象之间的链接。
• 链接一般建立在两个对象或者两个类实例之间,也可以建立反身链接。
2 : 下 单 ()
3 : 做 菜 ()
4:菜 5:菜
6 : 结 帐 () 7 : 通 知 结 帐 () 8 : 账 单 结 算 () 9 : 账单 10 : 账 单 11 : 信 用 卡 12 : 信 用 卡 13 : 刷 卡 () 14 : 刷 卡 单
15 : 刷 卡 单
16 : 签 字 () 17 : 签 字 的 刷 卡 单
顾客服务员厨师继续用顺序图画出顾客指示买单和刷卡结帐顾客服务员厨师前台收款账单10账单11信用卡12信用卡13刷卡14刷卡单15刷卡单16签字17签字的刷卡单18签字的刷卡单19核对签名确认20存根21存根活动图与顺序图1假设自动售票机只接收硬币我们需要先找到地铁的工作人员询问到某站需要多少钱然后拿出纸币兑换硬2在自动售票机上选择要去的目的地和票数投币售票机给出地铁票顺序图乘客工作人员售票机强调角色之间的交互信息传递明确

图书馆管理系统UML

图书馆管理系统UML

图书馆管理系统一、用例图该图书馆管理系统的用例图如下:图1:图书馆管理系统的用例图二、系统的顺序图(1)借书顺序图(2)还书顺序图(3)罚款顺序图1、借书顺序图图2:图书馆管理系统借书顺序图顺序图说明:(1)login():登录系统。

(2)checkstu_card():对读者信息进行验证,检查是否符合本图书馆借书条件。

(3)showinformation():显示该读者的基本信息函数。

(4)borrow():读者借书函数。

(5)getreaders():取得读者信息函数。

看该读者是否符合借书条件,若符合,则返回可借信息。

(6)gettitle():取得书目信息。

(7)getreservation():检验书籍是否被预订函数。

(8)getnoreservation():书籍没被预订或取消预订函数。

(9)create(borrower,item):创建书籍外借函数。

2、还书顺序图图3:图书馆管理系统还书顺序图顺序图说明:(1)login():登录系统。

(2)getitem():取得书籍条目信息。

(3)update():对图书馆书籍条目和借阅者信息进行更新条目。

3、罚款顺序图图4:图书馆管理系统的罚款顺序图顺序图说明:管理员扫描图书,图书显示过期天数,罚款金额按过期天数累加三、系统的状态图图5:图书馆的书籍状态图四、系统的活动图1.借书活动图管理员首先要扫描读者的借书证,检验证件是否符合图书馆借书条件,若该读者的借书数量还未达到最大规定数量,并且其所借书籍均未属于过期范围,则符合借书条件。

则再扫描书籍条形码,检查书籍是否是不可借书籍或者已经被预订,若被预订,则取消预订,方可借书。

在这些条件都符合时则更新书籍信息和读者的借阅信息,记录好借书的时间。

图6:图书馆管理系统的借书活动图2、还书活动图图书管理员对书籍进行扫描,若书籍已经过期,则要求读者还请欠款才能还书,读者缴应交罚款后,更新书目信息和读者信息。

顺序图

顺序图

顺序图1.概述顺序图(Sequence Diagram)是交互图的一种,它按照交互发生的时间顺序,利用对象的“生命线”和消息描述对象之间的交互。

通常用来描述一个用例的行为,完成对系统的动态行为建模。

顺序图主要目的是定义事件序列,产生一些希望的输出,其重点不是消息本身,而是消息产生的顺序。

一个典型的顺序图如图1所示,图1. 顺序图2.基本元素顺序图的基本元素有生命线、消息、活动者、对象、组合片断。

2.1 生命线(Lifeline)一条生命线代表着顺序图中的一个参与者,表示建模的角色或对象实例。

在UML中,生命线画作一个方格,一条虚线从上而下,通过底部边界的中心,生命线对象的名字放置在方格里,如图2所示,图2. 生命线(1)通常,顺序图属于某个用例时,顺序图中会包含有参与者的生命线。

边界类、控制类、实体类都可以拥有生命线,如图3所示,图3. 生命线(2)2.2消息(Messages)消息是对象之间的一种通信,它可以传递信息并期望相关的动作被执行。

顺序图的第一个消息总是从顶端开始,并且一般位于图的左边。

然后继发的消息加入图中,稍微比前面的消息低些。

在UML中,一个对象传递一个消息给另一个对象,画一条线指向接收对象,包括一个实心箭头(表示同步调用操作)或一个棍形箭头(表示一个异步信号)。

消息或方法名字放置在带箭头的线上面。

如图4所示,第一个消息是一个同步消息,隐式返回。

第二个消息表示异步,第三个消息即是异步消息的返回的消息。

图4. 消息生命线上的瘦矩形表示消息执行发生或一个控制焦点的激活,表明对象在某一时间点开始执行活动。

在图4中,有三个执行发生。

调用本身的消息可用于表示一个操作的递归调用,或者同一对象中一个方法对另一个方法的调用,如图5所示,图5. 调用自身消息2.3约束(Constraints)当为对象的交互建模时,有时候,必须满足一个条件,消息才会传递给对象。

约束在各个不同的UML图中,用于控制流。

电子商务系统分析与设计0306-UML-时序图-序列图

电子商务系统分析与设计0306-UML-时序图-序列图

35
可以通过更加具体的描述来确定工作流程,基本的工作流程 如下:
① 李老师希望通过系统查询某名学生的学科成绩。 ② 李老师通过用户界面录入学生的学号。 ③ 用户界面根据学生的学号向数据库访问层请求学生信息。 ④ 数据库访问层根据学生的学号加载学生信息。 ⑤ 数据库访问层根据学生信息和学科科目获取该名学生的分数信息。 ⑥ 数据库访问层将学生信息和分数信息提供给用户界面。 ⑦ 用户界面将学生信息和分数信息显示出来。
12:56
11
12:56
12
①活动者
活动者和对象按照从左到右的顺序排列 一般最多两个活动者,他们分列两端。启动这个用例的活动者
往往排在最左边;接收消息的活动者则排在最右端; 对象从左到右按照重要性排列或按照消息先后顺序排列。
12:56
②对象
对象的命名方式有三种:
包括对象名和类名 类名(匿名对象) 对象名(不关心类)
Seq
弱顺序 有两个或更多操作数片段。 涉及同一生命线的消息必须以片段的顺序发生。 如果消息涉及的生
命线不同,来自不同片段的消息可能会并行交错。
Strict 强顺序 有两个或更多操作数片段。 这些片段必须按给定顺序发生。
25
a.抉择(Alt)
抉择在任何场合下只发生一个序列。 可以在每个片段中设置一 个临界来指示该片段可以运行的条件。 else 的临界指示其他 任何临界都不为 True 时应运行的片段。 如果所有临界都为 False 并且没有 else,则不执行任何片段。
37
12:56
38
12:56
39
12:56
练习
40
请绘制读者借阅图书的时序图
12:56
41
12:56

什么是顺序图有哪些组成

什么是顺序图有哪些组成

1、什么是顺序图?有哪些组成。

答:顺序图是强调消息时间顺序的交互图。

它是描述系统中类和类之间的交互,将这些交互建模成消息交互,也就是说,顺序图描述了类相互协作的完成预期行为的动态过程。

顺序图由类角色、生命线、激活期和消息组成。

2、什么是协作图?有哪些组成。

答:协作图作为另一种交互图而言,强调的是参加交互的对象的组织。

协作图只对相互间有交互作用的对象间的对象和这些对象间的关系建模,而忽略了其他没有交互的对象和关联。

协作图由类角色、关联角色和消息流组成。

3、借书流程
答:还没有借书时,系统处于空闲状态(idle)。

当用户准备借书时,输入书目编号查询(finding)书目,如果查询失败,则返回空闲状态(idle);如果查询成功则调取书籍信息并开始进入借书状态,如果结束成功(success)则返回到结束状态;如果书籍已被借出,则进入预约状态(reservation),随后返回到结束状态;如果要取消预约则进入取消预约状态(remove reservation),如果取消预约失败,则进入失败状态(failure)并返回到结束状态;如果取消预约成功则返回到借书状态(lending)。

4、还书流程
答:还没有归还借书时,系统处于空闲状态(idle)。

当用户还书时,管理员先输入图书编号查询进入查询状态(finding),如果查询成功,则调出借书信息,并开始还书(reversion),结果归还成功(success)或归还失败(failure),最后结束。

StarUML工具介绍

StarUML工具介绍
UML语义 UML表示法
面向对象分析、设计和建模的思想 软件工程方法
1.2 UML可视框图
用例图
从用户角度、以用例方式描述系统功能,
指出各功能的操作者及交互关系
静态图
包括类图、对象图和包图
行为图
状态图:类图的补充,描述对象可能得状
态及事件发生时状态转移条件 幵发的活劢
活劢图:状态图的变体,描述一组顺序或
StarUML 工具介绍
王站 GMC事业部
前言
内容
UML基本语法介绍
StarUMLU工具介绍
范围:
顺序图
类图
目录
UML介绍
目 录
StarUML工具介绍
问题解答
1、UML介绍
1.1 UML是什么
Unified Modeling Language 描述、构造和文档化系统制品的可视化 语言
2.2 StarUML使用:创建工程
2.2 StarUML使用:创建工程
2.3 StarUML使用:顺序图
组成 参与者(Actor) 对象(Object)
生命线(LifeLine)
控制焦点(Focus Of Control)
消息(Message)
交互片段(Interaction Frame)
框图(Frame)
2.3 StarUML使用:顺序图
循环片段(loop) 选择Combined Fragment,将 operator改为opt,可写入循环条件
2.3 StarUML使用:顺序图
StarUML支持的其他交互片段 break:中断 assert:断言
Ignoห้องสมุดไป่ตู้e:忽略
2.3 StarUML使用:顺序图

利用visio在软件开发中各种图

利用visio在软件开发中各种图

UML--示范.(用例图、类图、序列图、时序图、包图....)2010-12-19 14:39中文版:面向对象的问题的处理的关键是建模问题。

建模可以把在复杂世界的许多重要的细节给抽象出。

许多建模工具封装了UML(也就是Unified Modeling Language™),这篇课程的目的是展示出UML的精彩之处。

UML中有九种建模的图标,即:l用例图l类图l对象图l顺序图l协作图l状态图l活动图l组件图l配置图本课程中的某些部分包含了这些图的细节信息的页面链接。

而且每个部分都有一个小问题,测试一下你对这个部分的理解。

―――――――――――――――――――――――――――――――――――――――为什么UML很重要?为了回答这个问题,我们看看建筑行业。

设计师设计出房子。

施工人员使用这个设计来建造房子。

建筑越复杂,设计师和施工人员之间的交流就越重要。

蓝图就成为了这个行业中的设计师和施工人员的必修课。

写软件就好像建造建筑物一样。

系统越复杂,参与编写与配置软件的人员之间的交流也就越重要。

在过去十年里UML就成为分析师,设计师和程序员之间的“建筑蓝图”。

现在它已经成为了软件行业的一部分了。

UML提供了分析师,设计师和程序员之间在软件设计时的通用语言。

UML被应用到面向对象的问题的解决上。

想要学习UML必须熟悉面向对象解决问题的根本原则――都是从模型的建造开始的。

一个模型model就是根本问题的抽象。

域domain就是问题所处的真实世界。

模型是由对象objects组成的,它们之间通过相互发送消息messages来相互作用的。

记住把一个对象想象成“活着的”。

对象有他们知道的事(属性attributes)和他们可以做的事(行为或操作behaviors or operations)。

对象的属性的值决定了它的状态state。

类Classes是对象的“蓝图”。

一个类在一个单独的实体中封装了属性(数据)和行为(方法或函数)。

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

用例“买饮料”的最理想场景建模的顺序图31
饮料销售机
:Customer :Front :Register :Dispenser accept(cash,selection)
getCustomerInput(cash,selection) checkAvailability(selection) Sold Out returnCash(cash) display("sold out")
同步消息
• 调用者发出消息后必须等待消息返回(暂 停活动),只有消息接收者处理消息的操 作执行完毕后(或放弃)返回控制,调用者 才可继续执行自己的操作。 • 一般一个同步消息必有一个配对的返回 消息(也可省略)。 • 同步消息的接收者必须是一个被动对象。
23
同步方式
• 客户端与服务器联系后, 即等待应答(如ATM)。 • 应答信息不会涉及到客户 凭猜测所做的工作。 • 应答信息对客户是较重要 的。 • 客户可以确定服务器确实 处理了它的请求。
饮料销售机的一般顺序图(部分)
34
实例:移动电话
• • • • • • • 1. 2. 3. 4. 5. 6. 7. 拨对方的电话号码 按OK送出号码 连接移动电话基站 基站通过移动网络连接对方手机 对方接起移动电话 接通谈话 断线
35
36
Turn Pc on
Initailizing
do/ Bootup
Working
Shut Down
Shutting Down
9
增加转移的细节:保护条件
• 保护条件:当满足这个条件时,转移才 能发生。
Turn Pc on Initailizing
do/ Bootup
Working
Shut Down
Shutting Down
11
电话机状态图
• 电话机平时处于闲臵状态,当有人拿起 听筒拨号时转为拨号状态,线路拨通以 后便转为通话状态;通话结束挂断电话 电话机转回闲臵状态。
12
顺序图
主要内容:
(state diagram)
• 1 什么是顺序图 • 2 如何应用顺序图
13
顺序图的元素
1.顺序图展示了几个对象之间的动态协作 关系,显示了对象之间的交互,即系统执 行的某一特定时间点所发生的事。 2.用来显示对象之间发送的消息以及发送 消息的时间顺序。
[ Timeout ]
keystroke or mouse movement
Screensavin g
10
2 状态图的基本要素
(画状态图的步骤)
• 1. 一个对象在活动期内所有可能出现的状态 有哪些。 –(列出可能的所有状态) • 2. 一个状态向另一个状态的转移。 –源状态、目标状态、事件、条件、动作。
30
2 饮料销售机
:Customer :Front :Register :Dispenser accept(cash,selection) getCustomerInput(cash,selection) checkAvailability(selection)
updateReserve(cash,selection) releaseSoda(selection) receiveSoda(selection)
状态图
主要内容:
(state diagram)
• 1 什么是状态图,如何使用 • 2 如何使用事件、动作和保护条件
1
状态图的应用概念
• 行为元素:能够展示UML模型如何随时 间变化。 • 状态图:对象生命周期中各个时期的状 态以及引起变化的事件。
捕获系统动态行为(面向事件的)
2
状态图的应用概念
• 对于一个在一段时间内连续运行的软件 系统,一定是由许多对象在不断地交互, 在交互过程中只有对象在不断改变状态 其交互才具有意义,并且对用户具有价 值。
14
1 什么是顺序图
• 多数情况下,使用顺序图来阐明用例实 现,即说明对象如何通过交互来执行全 部或部分用例的行为。 • 可以用一个或多个顺序图来阐明实现用 例的对象交互过程。 • 在典型的组织结构中,主事件流将有一 个顺序图,而每个独立的用例分支流都 分别有一个顺序图。
15
对象
• 对象(通常是用例、对象、类或参与者)
6
状态图标中增加细节
• 入口动作:系统进入该状态时要发生的动作。 • 出口动作:系统离开该状态时要发生的动作。 • 动作:系统处于该状态时要发生的动作。
7
状态图标中增加细节
Faxing
entry/ key in remote fax number exit/ complete transmission do/ add datestamp do/ add owner
:Web客户端 :Web服务器
请求一个页面
24
同步方式
• 同步方式的时间问题: • 如果供应商(计算价 格)和销售商(存储价 格)都需要1秒钟来处 理消息(不考虑网络 连接通讯时间),至 少需要4秒。
25
同步方式
26
异步消息
• 表示异步控制流或并发。 • 当调用者发出消息后不用等待消息的返 回即可继续执行自己的操作。 • 异步消息的发送者和接收者是并发工作 的。 • 交互图中大量的消息是异步消息。 • 异步消息的接收者必须是一个主动对象。
19
消息
• 对象之间的交互通过 互发消息来实现。 • 一个对象到另一个对 象的消息用跨越对象 生命线的消息表示。
:对象1
消息
:对象2
20
消息类型有三种
1. 简单消息 2. 同步消息(调用) 3. 异步消息
21
简单消息
表示简单的控制流。用于描述控制如何 在对象间进行传递,而不考虑通信的细节。
22
3
1 什么是状态图
• 状态图通常是对类描述的补充,它说明该类的 对象所有可能的状态以及哪些事件将导致状态 的改变。 • 状态图只是对单个对象建立模型。表达单个对 象所处的可能状态及状态之间的转移。 • 一个事件可以是另一个对象向它发送的一条消 息,或者是满足了某些条件。 • 状态的改变称为迁移(transition).一个状态 迁移还可以有与之相关的动作,该动作指出状 态迁移时应做什么。
:Name
顺序图中对象的表示
16
对象、生命线
• 顺序图是一个二维图形,水平轴 为对象的排列,垂直轴表示时间。 :Name1 • 对象从左至右布在顺序图顶部。 • 每个对象向下方伸展的虚线称为 对象的生命线。用于表示该对象 在某段时间内是存在的。两条生 命线之间的区域称为活动区,进 行信息的传递。
:Name2
用例“买饮料”的sold-out场景建模的顺序图 32
3 顺序图:一般顺序图
• 保护条件 • 省略返回消息 • 每个场景最终的消息前加<<transaction over>>
33
:Customer
:Front
:Register
:Dispenser
accept(cash,selection) getCustomerInput(cash,selection) checkAvailability(selection) Sold Out [sold out]returnCash(cash) <<transaction over>>[sold out]display("sold out") updateReserve(cash,selection) releaseSoda(selection) receiveSoda(selection)
4
状态所具有的属性
• • • • 对象在交互中具有不同的状态。 状态可以转换或变换、转移。 状态的变换需要事件触发。 触发一个状态变换完成需要执行一个动 作。
5
状态图的基本符号集
• 初态: 状态图的起始点。 • 终态: 状态图的终点。 • 转移: 用于说明两个对象间存在着某种关系, 即如果满足某个条件并当某一事件发生时,对 象将从一个状态变迁到另一个状态并同时完成 一些活动。
27
异步方式
• 异步方式的时间问题。 • 因为供应商不需要等待 销售商(存储价格)的处 理所以节省了2秒钟时 间。
28
异步方式
• 在许多情况下客户端 与服务器联系后,并 不需要等待应答或不 需要立即应答。 • 客户建立异步联系后 (只需建立对异步回 答的监听)可以做自 已另外的事情。
29
消息
• 对象可以发消息给自己。 • 简单消息从一个对象到另一 个对象的控制流的转移 • 同步消息需要等待对方对消 息的回答后才能继续自已的 操作 • 异步消息不需要等待对方对 消息的回答便可以继续自已 的操作 • 返回消息表示从同步消息创 建的激活返回到调用者激活
17
激活
• 生命线上的窄矩形条被称 为激活生命线(也称为控 制焦点或方法调用框,表 明正在由目标对象/类执 行处理,以完成消息), 激活矩形的长度表示激活 的持续时间。表示对象处 于激活状态。 • 在对象的生命线之间发送 消息的同时即创建激活。
:Name1 :Name2
18
对象在顺序图中的安排
• 作为交互的发起者, 主角实例通常由顺序 图中的第一条(最左 侧)生命线来表示。 • 如果在同一顺序图中 有多个主角实例,就 应尽量使它们位于最 左侧或最右侧的生命 线。
Idle
entry/ fax complete exit/ begin fax do/ show date do/ show time
8
增加转移的细节:事件和动作
• 触发器事件:引起转移发生的事件。 • 动作:引起状态变化所需执行的计算。 • 无触发器转移:事件引起的没有相关动作的状 态转移,或转移是由于某个状态完成了它的活 动所引起。
相关文档
最新文档